@cloudcare/rum-uniapp 1.0.2 → 2.0.2
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/README.md +11 -8
- package/cjs/boot/buildEnv.js +1 -1
- package/cjs/boot/rum.entry.js +65 -2
- package/cjs/boot/rum.js +11 -2
- package/cjs/core/baseInfo.js +0 -6
- package/cjs/core/boundedBuffer.js +28 -0
- package/cjs/core/configuration.js +26 -1
- package/cjs/core/dataMap.js +5 -1
- package/cjs/core/errorCollection.js +5 -6
- package/cjs/core/errorFilter.js +47 -0
- package/cjs/core/errorTools.js +2 -1
- package/cjs/core/lifeCycle.js +1 -0
- package/cjs/core/sdk.js +0 -1
- package/cjs/core/sessionManagement.js +45 -0
- package/cjs/core/transport.js +114 -69
- package/cjs/core/xhrProxy.js +3 -2
- package/cjs/helper/enums.js +20 -6
- package/cjs/helper/limitModification.js +83 -0
- package/cjs/helper/tracekit.js +1 -1
- package/cjs/helper/utils.js +274 -6
- package/cjs/rumEventsCollection/app/appCollection.js +0 -1
- package/cjs/rumEventsCollection/assembly.js +41 -14
- package/cjs/rumEventsCollection/error/errorCollection.js +37 -5
- package/cjs/rumEventsCollection/internalContext.js +34 -0
- package/cjs/rumEventsCollection/page/index.js +2 -11
- package/cjs/rumEventsCollection/requestCollection.js +9 -2
- package/cjs/rumEventsCollection/resource/resourceCollection.js +20 -2
- package/cjs/rumEventsCollection/tracing/ddtraceTracer.js +50 -0
- package/cjs/rumEventsCollection/tracing/jaegerTracer.js +58 -0
- package/cjs/rumEventsCollection/tracing/skywalkingTracer.js +75 -0
- package/cjs/rumEventsCollection/tracing/tracer.js +108 -0
- package/cjs/rumEventsCollection/tracing/w3cTraceParentTracer.js +51 -0
- package/cjs/rumEventsCollection/tracing/zipkinMultiTracer.js +58 -0
- package/cjs/rumEventsCollection/tracing/zipkinSingleTracer.js +51 -0
- package/esm/boot/buildEnv.js +1 -1
- package/esm/boot/rum.entry.js +64 -3
- package/esm/boot/rum.js +9 -2
- package/esm/core/baseInfo.js +0 -5
- package/esm/core/boundedBuffer.js +20 -0
- package/esm/core/configuration.js +28 -3
- package/esm/core/dataMap.js +5 -1
- package/esm/core/errorCollection.js +5 -6
- package/esm/core/errorFilter.js +38 -0
- package/esm/core/errorTools.js +2 -1
- package/esm/core/lifeCycle.js +1 -0
- package/esm/core/sdk.js +0 -1
- package/esm/core/sessionManagement.js +20 -0
- package/esm/core/transport.js +111 -70
- package/esm/core/xhrProxy.js +3 -2
- package/esm/helper/enums.js +14 -1
- package/esm/helper/limitModification.js +57 -0
- package/esm/helper/tracekit.js +1 -1
- package/esm/helper/utils.js +236 -5
- package/esm/rumEventsCollection/app/appCollection.js +0 -1
- package/esm/rumEventsCollection/assembly.js +40 -15
- package/esm/rumEventsCollection/error/errorCollection.js +36 -5
- package/esm/rumEventsCollection/internalContext.js +27 -0
- package/esm/rumEventsCollection/page/index.js +2 -11
- package/esm/rumEventsCollection/requestCollection.js +8 -2
- package/esm/rumEventsCollection/resource/resourceCollection.js +21 -3
- package/esm/rumEventsCollection/tracing/ddtraceTracer.js +42 -0
- package/esm/rumEventsCollection/tracing/jaegerTracer.js +50 -0
- package/esm/rumEventsCollection/tracing/skywalkingTracer.js +66 -0
- package/esm/rumEventsCollection/tracing/tracer.js +90 -0
- package/esm/rumEventsCollection/tracing/w3cTraceParentTracer.js +43 -0
- package/esm/rumEventsCollection/tracing/zipkinMultiTracer.js +50 -0
- package/esm/rumEventsCollection/tracing/zipkinSingleTracer.js +43 -0
- package/package.json +5 -1
package/cjs/helper/enums.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.MpHook = exports.ActionType = exports.RequestType = exports.RumEventType = exports.CLIENT_ID_TOKEN = exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
|
|
6
|
+
exports.ErrorHandling = exports.TraceType = exports.MpHook = exports.ActionType = exports.RequestType = exports.RumEventType = exports.CLIENT_ID_TOKEN = exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = void 0;
|
|
7
|
+
|
|
8
|
+
var _RumEventType;
|
|
7
9
|
|
|
8
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
11
|
|
|
@@ -17,16 +19,14 @@ var ONE_KILO_BYTE = 1024;
|
|
|
17
19
|
exports.ONE_KILO_BYTE = ONE_KILO_BYTE;
|
|
18
20
|
var CLIENT_ID_TOKEN = 'datafluxRum:client:id';
|
|
19
21
|
exports.CLIENT_ID_TOKEN = CLIENT_ID_TOKEN;
|
|
20
|
-
|
|
21
|
-
var RumEventType = _defineProperty({
|
|
22
|
+
var RumEventType = (_RumEventType = {
|
|
22
23
|
ACTION: 'action',
|
|
23
24
|
ERROR: 'error',
|
|
24
25
|
LONG_TASK: 'long_task',
|
|
25
26
|
VIEW: 'view',
|
|
26
27
|
RESOURCE: 'resource',
|
|
27
28
|
APP: 'app'
|
|
28
|
-
}, "ACTION", 'action');
|
|
29
|
-
|
|
29
|
+
}, _defineProperty(_RumEventType, "ACTION", 'action'), _defineProperty(_RumEventType, "LOGGER", 'logger'), _RumEventType);
|
|
30
30
|
exports.RumEventType = RumEventType;
|
|
31
31
|
var RequestType = {
|
|
32
32
|
XHR: 'network',
|
|
@@ -52,4 +52,18 @@ var MpHook = {
|
|
|
52
52
|
onHide: 1,
|
|
53
53
|
onUnload: 1
|
|
54
54
|
};
|
|
55
|
-
exports.MpHook = MpHook;
|
|
55
|
+
exports.MpHook = MpHook;
|
|
56
|
+
var TraceType = {
|
|
57
|
+
DDTRACE: 'ddtrace',
|
|
58
|
+
ZIPKIN_MULTI_HEADER: 'zipkin',
|
|
59
|
+
ZIPKIN_SINGLE_HEADER: 'zipkin_single_header',
|
|
60
|
+
W3C_TRACEPARENT: 'w3c_traceparent',
|
|
61
|
+
SKYWALKING_V3: 'skywalking_v3',
|
|
62
|
+
JAEGER: 'jaeger'
|
|
63
|
+
};
|
|
64
|
+
exports.TraceType = TraceType;
|
|
65
|
+
var ErrorHandling = {
|
|
66
|
+
HANDLED: 'handled',
|
|
67
|
+
UNHANDLED: 'unhandled'
|
|
68
|
+
};
|
|
69
|
+
exports.ErrorHandling = ErrorHandling;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.limitModification = limitModification;
|
|
7
|
+
|
|
8
|
+
var _utils = require("./utils");
|
|
9
|
+
|
|
10
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
11
|
+
|
|
12
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
13
|
+
|
|
14
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
+
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Current limitations:
|
|
20
|
+
* - field path do not support array, 'a.b.c' only
|
|
21
|
+
* - modifiable fields type must be string
|
|
22
|
+
*/
|
|
23
|
+
function limitModification(object, modifiableFieldPaths, modifier) {
|
|
24
|
+
var clone = (0, _utils.extend2Lev)({}, object);
|
|
25
|
+
var result = modifier(clone);
|
|
26
|
+
(0, _utils.each)(modifiableFieldPaths, function (path) {
|
|
27
|
+
var originalValue = get(object, path);
|
|
28
|
+
var newValue = get(clone, path);
|
|
29
|
+
|
|
30
|
+
if (typeof originalValue === 'string' && typeof newValue === 'string') {
|
|
31
|
+
set(object, path, newValue);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function get(object, path) {
|
|
38
|
+
var current = object;
|
|
39
|
+
|
|
40
|
+
var _iterator = _createForOfIteratorHelper(path.split('.')),
|
|
41
|
+
_step;
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
45
|
+
var field = _step.value;
|
|
46
|
+
|
|
47
|
+
if (!isValidObjectContaining(current, field)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
current = current[field];
|
|
52
|
+
}
|
|
53
|
+
} catch (err) {
|
|
54
|
+
_iterator.e(err);
|
|
55
|
+
} finally {
|
|
56
|
+
_iterator.f();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return current;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function set(object, path, value) {
|
|
63
|
+
var current = object;
|
|
64
|
+
var fields = path.split('.');
|
|
65
|
+
|
|
66
|
+
for (var i = 0; i < fields.length; i += 1) {
|
|
67
|
+
var field = fields[i];
|
|
68
|
+
|
|
69
|
+
if (!isValidObjectContaining(current, field)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (i !== fields.length - 1) {
|
|
74
|
+
current = current[field];
|
|
75
|
+
} else {
|
|
76
|
+
current[field] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isValidObjectContaining(object, field) {
|
|
82
|
+
return _typeof(object) === 'object' && object !== null && field in object;
|
|
83
|
+
}
|
package/cjs/helper/tracekit.js
CHANGED
|
@@ -919,7 +919,7 @@ exports.computeStackTrace = computeStackTrace;
|
|
|
919
919
|
var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;
|
|
920
920
|
|
|
921
921
|
function extractMessage(ex) {
|
|
922
|
-
var message = ex && ex.message;
|
|
922
|
+
var message = ex && ex.message;
|
|
923
923
|
|
|
924
924
|
if (!message) {
|
|
925
925
|
return 'No error message';
|
package/cjs/helper/utils.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.round = round;
|
|
7
|
+
exports.toServerDuration = toServerDuration;
|
|
7
8
|
exports.msToNs = msToNs;
|
|
8
9
|
exports.UUID = UUID;
|
|
9
10
|
exports.jsonStringify = jsonStringify;
|
|
@@ -19,7 +20,13 @@ exports.withSnakeCaseKeys = withSnakeCaseKeys;
|
|
|
19
20
|
exports.deepSnakeCase = deepSnakeCase;
|
|
20
21
|
exports.toSnakeCase = toSnakeCase;
|
|
21
22
|
exports.escapeRowData = escapeRowData;
|
|
22
|
-
exports.
|
|
23
|
+
exports.getOrigin = getOrigin;
|
|
24
|
+
exports.createContextManager = createContextManager;
|
|
25
|
+
exports.getActivePage = getActivePage;
|
|
26
|
+
exports.findCommaSeparatedValue = findCommaSeparatedValue;
|
|
27
|
+
exports.defineGlobal = defineGlobal;
|
|
28
|
+
exports.getGlobalObject = getGlobalObject;
|
|
29
|
+
exports.ONE_KILO_BYTE = exports.ONE_HOUR = exports.ONE_MINUTE = exports.ONE_SECOND = exports.deepMixObject = exports.defineObject = exports.getOwnObjectKeys = exports.urlParse = exports.throttle = exports.now = exports.safeJSONParse = exports.isJSONString = exports.isEmptyObject = exports.isObject = exports.trim = exports.extend2Lev = exports.extend = exports.getURLSearchParams = exports.getQueryParamsFromUrl = exports.base64Encode = exports.utf8Encode = exports.areInOrder = exports.toArray = exports.isArray = exports.isNumber = exports.isBoolean = exports.isDate = exports.isString = exports.isUndefined = exports.indexOf = exports.keys = exports.values = exports.each = exports.isArguments = void 0;
|
|
23
30
|
|
|
24
31
|
var _enums = require("./enums");
|
|
25
32
|
|
|
@@ -32,6 +39,7 @@ var hasOwnProperty = ObjProto.hasOwnProperty;
|
|
|
32
39
|
var slice = ArrayProto.slice;
|
|
33
40
|
var toString = ObjProto.toString;
|
|
34
41
|
var nativeForEach = ArrayProto.forEach;
|
|
42
|
+
var nativeIsArray = Array.isArray;
|
|
35
43
|
var breaker = false;
|
|
36
44
|
|
|
37
45
|
var isArguments = function isArguments(obj) {
|
|
@@ -79,10 +87,51 @@ var values = function values(obj) {
|
|
|
79
87
|
|
|
80
88
|
exports.values = values;
|
|
81
89
|
|
|
90
|
+
var keys = function keys(obj) {
|
|
91
|
+
var results = [];
|
|
92
|
+
|
|
93
|
+
if (obj === null) {
|
|
94
|
+
return results;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
each(obj, function (value, key) {
|
|
98
|
+
results[results.length] = key;
|
|
99
|
+
});
|
|
100
|
+
return results;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
exports.keys = keys;
|
|
104
|
+
|
|
105
|
+
var indexOf = function indexOf(arr, target) {
|
|
106
|
+
var indexOf = arr.indexOf;
|
|
107
|
+
|
|
108
|
+
if (indexOf) {
|
|
109
|
+
return indexOf.call(arr, target);
|
|
110
|
+
} else {
|
|
111
|
+
for (var i = 0; i < arr.length; i++) {
|
|
112
|
+
if (target === arr[i]) {
|
|
113
|
+
return i;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return -1;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
exports.indexOf = indexOf;
|
|
122
|
+
|
|
82
123
|
function round(num, decimals) {
|
|
83
124
|
return +num.toFixed(decimals);
|
|
84
125
|
}
|
|
85
126
|
|
|
127
|
+
function toServerDuration(duration) {
|
|
128
|
+
if (!isNumber(duration)) {
|
|
129
|
+
return duration;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return round(duration * 1e6, 0);
|
|
133
|
+
}
|
|
134
|
+
|
|
86
135
|
function msToNs(duration) {
|
|
87
136
|
if (typeof duration !== 'number') {
|
|
88
137
|
return duration;
|
|
@@ -121,6 +170,12 @@ var isNumber = function isNumber(obj) {
|
|
|
121
170
|
|
|
122
171
|
exports.isNumber = isNumber;
|
|
123
172
|
|
|
173
|
+
var isArray = nativeIsArray || function (obj) {
|
|
174
|
+
return toString.call(obj) === '[object Array]';
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
exports.isArray = isArray;
|
|
178
|
+
|
|
124
179
|
var toArray = function toArray(iterable) {
|
|
125
180
|
if (!iterable) return [];
|
|
126
181
|
|
|
@@ -210,6 +265,98 @@ function jsonStringify(value, replacer, space) {
|
|
|
210
265
|
return result;
|
|
211
266
|
}
|
|
212
267
|
|
|
268
|
+
var utf8Encode = function utf8Encode(string) {
|
|
269
|
+
string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
270
|
+
var utftext = '',
|
|
271
|
+
start,
|
|
272
|
+
end;
|
|
273
|
+
var stringl = 0,
|
|
274
|
+
n;
|
|
275
|
+
start = end = 0;
|
|
276
|
+
stringl = string.length;
|
|
277
|
+
|
|
278
|
+
for (n = 0; n < stringl; n++) {
|
|
279
|
+
var c1 = string.charCodeAt(n);
|
|
280
|
+
var enc = null;
|
|
281
|
+
|
|
282
|
+
if (c1 < 128) {
|
|
283
|
+
end++;
|
|
284
|
+
} else if (c1 > 127 && c1 < 2048) {
|
|
285
|
+
enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);
|
|
286
|
+
} else {
|
|
287
|
+
enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (enc !== null) {
|
|
291
|
+
if (end > start) {
|
|
292
|
+
utftext += string.substring(start, end);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
utftext += enc;
|
|
296
|
+
start = end = n + 1;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (end > start) {
|
|
301
|
+
utftext += string.substring(start, string.length);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
return utftext;
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
exports.utf8Encode = utf8Encode;
|
|
308
|
+
|
|
309
|
+
var base64Encode = function base64Encode(data) {
|
|
310
|
+
data = String(data);
|
|
311
|
+
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
312
|
+
var o1,
|
|
313
|
+
o2,
|
|
314
|
+
o3,
|
|
315
|
+
h1,
|
|
316
|
+
h2,
|
|
317
|
+
h3,
|
|
318
|
+
h4,
|
|
319
|
+
bits,
|
|
320
|
+
i = 0,
|
|
321
|
+
ac = 0,
|
|
322
|
+
enc = '',
|
|
323
|
+
tmp_arr = [];
|
|
324
|
+
|
|
325
|
+
if (!data) {
|
|
326
|
+
return data;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
data = utf8Encode(data);
|
|
330
|
+
|
|
331
|
+
do {
|
|
332
|
+
o1 = data.charCodeAt(i++);
|
|
333
|
+
o2 = data.charCodeAt(i++);
|
|
334
|
+
o3 = data.charCodeAt(i++);
|
|
335
|
+
bits = o1 << 16 | o2 << 8 | o3;
|
|
336
|
+
h1 = bits >> 18 & 0x3f;
|
|
337
|
+
h2 = bits >> 12 & 0x3f;
|
|
338
|
+
h3 = bits >> 6 & 0x3f;
|
|
339
|
+
h4 = bits & 0x3f;
|
|
340
|
+
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
|
341
|
+
} while (i < data.length);
|
|
342
|
+
|
|
343
|
+
enc = tmp_arr.join('');
|
|
344
|
+
|
|
345
|
+
switch (data.length % 3) {
|
|
346
|
+
case 1:
|
|
347
|
+
enc = enc.slice(0, -2) + '==';
|
|
348
|
+
break;
|
|
349
|
+
|
|
350
|
+
case 2:
|
|
351
|
+
enc = enc.slice(0, -1) + '=';
|
|
352
|
+
break;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
return enc;
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
exports.base64Encode = base64Encode;
|
|
359
|
+
|
|
213
360
|
function hasToJSON(value) {
|
|
214
361
|
return _typeof(value) === 'object' && value !== null && value.hasOwnProperty('toJSON');
|
|
215
362
|
}
|
|
@@ -258,6 +405,32 @@ var getQueryParamsFromUrl = function getQueryParamsFromUrl(url) {
|
|
|
258
405
|
|
|
259
406
|
exports.getQueryParamsFromUrl = getQueryParamsFromUrl;
|
|
260
407
|
|
|
408
|
+
var getURLSearchParams = function getURLSearchParams(queryString) {
|
|
409
|
+
queryString = queryString || '';
|
|
410
|
+
|
|
411
|
+
var decodeParam = function decodeParam(str) {
|
|
412
|
+
return decodeURIComponent(str);
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
var args = {};
|
|
416
|
+
var query = queryString.substring(1);
|
|
417
|
+
var pairs = query.split('&');
|
|
418
|
+
|
|
419
|
+
for (var i = 0; i < pairs.length; i++) {
|
|
420
|
+
var pos = pairs[i].indexOf('=');
|
|
421
|
+
if (pos === -1) continue;
|
|
422
|
+
var name = pairs[i].substring(0, pos);
|
|
423
|
+
var value = pairs[i].substring(pos + 1);
|
|
424
|
+
name = decodeParam(name);
|
|
425
|
+
value = decodeParam(value);
|
|
426
|
+
args[name] = value;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
return args;
|
|
430
|
+
};
|
|
431
|
+
|
|
432
|
+
exports.getURLSearchParams = getURLSearchParams;
|
|
433
|
+
|
|
261
434
|
function isPercentage(value) {
|
|
262
435
|
return isNumber(value) && value >= 0 && value <= 100;
|
|
263
436
|
}
|
|
@@ -456,7 +629,12 @@ function toSnakeCase(word) {
|
|
|
456
629
|
}
|
|
457
630
|
|
|
458
631
|
function escapeRowData(str) {
|
|
459
|
-
if (
|
|
632
|
+
if (_typeof(str) === 'object' && str) {
|
|
633
|
+
str = jsonStringify(str);
|
|
634
|
+
} else if (!isString(str)) {
|
|
635
|
+
return str;
|
|
636
|
+
}
|
|
637
|
+
|
|
460
638
|
var reg = /[\s=,"]/g;
|
|
461
639
|
return String(str).replace(reg, function (word) {
|
|
462
640
|
return '\\' + word;
|
|
@@ -527,8 +705,8 @@ var urlParse = function urlParse(para) {
|
|
|
527
705
|
|
|
528
706
|
URLParser.prototype.getUrl = function () {
|
|
529
707
|
var url = '';
|
|
530
|
-
url += this._values.Origin;
|
|
531
|
-
|
|
708
|
+
url += this._values.Origin; // url += this._values.Port ? ':' + this._values.Port : ''
|
|
709
|
+
|
|
532
710
|
url += this._values.Path;
|
|
533
711
|
url += this._values.QueryString ? '?' + this._values.QueryString : '';
|
|
534
712
|
return url;
|
|
@@ -549,8 +727,9 @@ var urlParse = function urlParse(para) {
|
|
|
549
727
|
}
|
|
550
728
|
}
|
|
551
729
|
|
|
730
|
+
this._values['Path'] = this._values['Path'] || '/';
|
|
552
731
|
this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
|
|
553
|
-
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'];
|
|
732
|
+
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
|
|
554
733
|
};
|
|
555
734
|
|
|
556
735
|
return new URLParser(para);
|
|
@@ -617,4 +796,93 @@ var deepMixObject = function deepMixObject(targetObj) {
|
|
|
617
796
|
return targetObj;
|
|
618
797
|
};
|
|
619
798
|
|
|
620
|
-
exports.deepMixObject = deepMixObject;
|
|
799
|
+
exports.deepMixObject = deepMixObject;
|
|
800
|
+
|
|
801
|
+
function getOrigin(url) {
|
|
802
|
+
return urlParse(url).getParse().Origin;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
function createContextManager() {
|
|
806
|
+
var context = {};
|
|
807
|
+
return {
|
|
808
|
+
get: function get() {
|
|
809
|
+
return context;
|
|
810
|
+
},
|
|
811
|
+
add: function add(key, value) {
|
|
812
|
+
if (isString(key)) {
|
|
813
|
+
context[key] = value;
|
|
814
|
+
} else {
|
|
815
|
+
console.error('key 需要传递字符串类型');
|
|
816
|
+
}
|
|
817
|
+
},
|
|
818
|
+
remove: function remove(key) {
|
|
819
|
+
delete context[key];
|
|
820
|
+
},
|
|
821
|
+
set: function set(newContext) {
|
|
822
|
+
if (isObject(newContext)) {
|
|
823
|
+
context = newContext;
|
|
824
|
+
} else {
|
|
825
|
+
console.error('content 需要传递对象类型数据');
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
};
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
function getActivePage() {
|
|
832
|
+
var curPages = typeof getCurrentPages === 'function' ? getCurrentPages() : [];
|
|
833
|
+
|
|
834
|
+
if (curPages.length) {
|
|
835
|
+
return curPages[curPages.length - 1];
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
return {};
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
function findCommaSeparatedValue(rawString, name) {
|
|
842
|
+
var matches = rawString.match('(?:^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
|
|
843
|
+
return matches ? matches[1] : undefined;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
var ONE_SECOND = 1000;
|
|
847
|
+
exports.ONE_SECOND = ONE_SECOND;
|
|
848
|
+
var ONE_MINUTE = 60 * ONE_SECOND;
|
|
849
|
+
exports.ONE_MINUTE = ONE_MINUTE;
|
|
850
|
+
var ONE_HOUR = 60 * ONE_MINUTE;
|
|
851
|
+
exports.ONE_HOUR = ONE_HOUR;
|
|
852
|
+
var ONE_KILO_BYTE = 1024;
|
|
853
|
+
exports.ONE_KILO_BYTE = ONE_KILO_BYTE;
|
|
854
|
+
|
|
855
|
+
function defineGlobal(global, name, api) {
|
|
856
|
+
global[name] = api;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
function getGlobalObject() {
|
|
860
|
+
if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === 'object') {
|
|
861
|
+
return globalThis;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
Object.defineProperty(Object.prototype, '_dd_temp_', {
|
|
865
|
+
get: function get() {
|
|
866
|
+
return this;
|
|
867
|
+
},
|
|
868
|
+
configurable: true
|
|
869
|
+
}); // @ts-ignore
|
|
870
|
+
|
|
871
|
+
var globalObject = _dd_temp_; // @ts-ignore
|
|
872
|
+
|
|
873
|
+
delete Object.prototype._dd_temp_;
|
|
874
|
+
|
|
875
|
+
if (_typeof(globalObject) !== 'object') {
|
|
876
|
+
// on safari _dd_temp_ is available on window but not globally
|
|
877
|
+
// fallback on other browser globals check
|
|
878
|
+
if ((typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object') {
|
|
879
|
+
globalObject = self;
|
|
880
|
+
} else if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object') {
|
|
881
|
+
globalObject = window;
|
|
882
|
+
} else {
|
|
883
|
+
globalObject = {};
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
return globalObject;
|
|
888
|
+
}
|
|
@@ -13,28 +13,31 @@ var _enums = require("../helper/enums");
|
|
|
13
13
|
|
|
14
14
|
var _baseInfo = _interopRequireDefault(require("../core/baseInfo"));
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
var _sessionManagement = require("../core/sessionManagement");
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
return (0, _utils.performDraw)(configuration.sampleRate);
|
|
20
|
-
}
|
|
18
|
+
var _errorFilter = require("../core/errorFilter");
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
SYNTHETICS: 'synthetics',
|
|
24
|
-
USER: 'user'
|
|
25
|
-
};
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
26
21
|
|
|
27
|
-
function startRumAssembly(applicationId, configuration, lifeCycle, parentContexts) {
|
|
22
|
+
function startRumAssembly(applicationId, configuration, session, lifeCycle, parentContexts, getCommonContext) {
|
|
23
|
+
var errorFilter = (0, _errorFilter.createErrorFilter)(configuration, function (error) {
|
|
24
|
+
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RAW_ERROR_COLLECTED, {
|
|
25
|
+
error: error
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
28
|
lifeCycle.subscribe(_lifeCycle.LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, function (data) {
|
|
29
29
|
var startTime = data.startTime;
|
|
30
30
|
var rawRumEvent = data.rawRumEvent;
|
|
31
31
|
var viewContext = parentContexts.findView(startTime);
|
|
32
|
+
var savedCommonContext = data.savedGlobalContext;
|
|
33
|
+
var customerContext = data.customerContext;
|
|
32
34
|
var deviceContext = {
|
|
33
35
|
device: _baseInfo["default"].deviceInfo
|
|
34
36
|
};
|
|
35
37
|
|
|
36
|
-
if (isTracked(
|
|
38
|
+
if (session.isTracked() && (viewContext || rawRumEvent.type === _enums.RumEventType.APP)) {
|
|
37
39
|
var actionContext = parentContexts.findAction(startTime);
|
|
40
|
+
var commonContext = savedCommonContext || getCommonContext();
|
|
38
41
|
var rumContext = {
|
|
39
42
|
_dd: {
|
|
40
43
|
sdkName: configuration.sdkName,
|
|
@@ -49,17 +52,41 @@ function startRumAssembly(applicationId, configuration, lifeCycle, parentContext
|
|
|
49
52
|
device: {},
|
|
50
53
|
date: new Date().getTime(),
|
|
51
54
|
session: {
|
|
52
|
-
id:
|
|
53
|
-
type: SessionType.USER
|
|
55
|
+
id: session.getSessionId(),
|
|
56
|
+
type: _sessionManagement.SessionType.USER
|
|
54
57
|
},
|
|
55
58
|
user: {
|
|
56
|
-
|
|
59
|
+
id: configuration.user_id || _baseInfo["default"].getClientID(),
|
|
57
60
|
is_signin: configuration.user_id ? 'T' : 'F'
|
|
58
61
|
}
|
|
59
62
|
};
|
|
60
63
|
var rumEvent = (0, _utils.extend2Lev)(rumContext, deviceContext, viewContext, actionContext, rawRumEvent);
|
|
61
64
|
var serverRumEvent = (0, _utils.withSnakeCaseKeys)(rumEvent);
|
|
62
|
-
|
|
65
|
+
var context = (0, _utils.extend2Lev)(commonContext.context, customerContext);
|
|
66
|
+
|
|
67
|
+
if (!(0, _utils.isEmptyObject)(context)) {
|
|
68
|
+
serverRumEvent.tags = context;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (!(0, _utils.isEmptyObject)(commonContext.user)) {
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
73
|
+
serverRumEvent.user = (0, _utils.extend2Lev)({
|
|
74
|
+
id: _baseInfo["default"].getClientID(),
|
|
75
|
+
is_signin: 'T'
|
|
76
|
+
}, commonContext.user);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (shouldSend(serverRumEvent, errorFilter)) {
|
|
80
|
+
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RUM_EVENT_COLLECTED, serverRumEvent);
|
|
81
|
+
}
|
|
63
82
|
}
|
|
64
83
|
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function shouldSend(event, errorFilter) {
|
|
87
|
+
if (event.type === _enums.RumEventType.ERROR) {
|
|
88
|
+
return !errorFilter.isLimitReached();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return true;
|
|
65
92
|
}
|
|
@@ -15,14 +15,46 @@ var _lifeCycle = require("../../core/lifeCycle");
|
|
|
15
15
|
var _utils = require("../../helper/utils");
|
|
16
16
|
|
|
17
17
|
function startErrorCollection(lifeCycle, configuration) {
|
|
18
|
-
return doStartErrorCollection(
|
|
18
|
+
// return doStartErrorCollection(
|
|
19
|
+
// lifeCycle,
|
|
20
|
+
// configuration,
|
|
21
|
+
// startAutomaticErrorCollection(configuration),
|
|
22
|
+
// )
|
|
23
|
+
(0, _errorCollection.startAutomaticErrorCollection)(configuration).subscribe(function (error) {
|
|
24
|
+
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RAW_ERROR_COLLECTED, {
|
|
25
|
+
error: error
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
return doStartErrorCollection(lifeCycle);
|
|
19
29
|
}
|
|
20
30
|
|
|
21
|
-
function doStartErrorCollection(lifeCycle
|
|
22
|
-
|
|
23
|
-
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, processError(error));
|
|
31
|
+
function doStartErrorCollection(lifeCycle) {
|
|
32
|
+
lifeCycle.subscribe(_lifeCycle.LifeCycleEventType.RAW_ERROR_COLLECTED, function (error) {
|
|
33
|
+
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, processError(error.error));
|
|
24
34
|
});
|
|
25
|
-
|
|
35
|
+
return {
|
|
36
|
+
addError: function addError(customError, savedCommonContext) {// var rawError = computeRawError(
|
|
37
|
+
// customError.error,
|
|
38
|
+
// customError.startTime,
|
|
39
|
+
// customError.source
|
|
40
|
+
// )
|
|
41
|
+
// lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, {
|
|
42
|
+
// customerContext: customError.context,
|
|
43
|
+
// savedCommonContext: savedCommonContext,
|
|
44
|
+
// error: rawError
|
|
45
|
+
// })
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
} // function computeRawError(error, handlingStack, startClocks) {
|
|
49
|
+
// const stackTrace = error instanceof Error ? computeStackTrace(error) : undefined
|
|
50
|
+
// return extend({
|
|
51
|
+
// startClocks,
|
|
52
|
+
// source: ErrorSource.CUSTOM,
|
|
53
|
+
// originalError: error,
|
|
54
|
+
// handling: ErrorHandling.HANDLED
|
|
55
|
+
// }, formatUnknownError(stackTrace, error, 'Provided', handlingStack) )
|
|
56
|
+
// }
|
|
57
|
+
|
|
26
58
|
|
|
27
59
|
function processError(error) {
|
|
28
60
|
var resource = error.resource;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startInternalContext = startInternalContext;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal context keep returning v1 format
|
|
10
|
+
* to not break compatibility with logs data format
|
|
11
|
+
*/
|
|
12
|
+
function startInternalContext(applicationId, session, parentContexts) {
|
|
13
|
+
return {
|
|
14
|
+
get: function get(startTime) {
|
|
15
|
+
var viewContext = parentContexts.findView(startTime);
|
|
16
|
+
|
|
17
|
+
if (session.isTracked() && viewContext) {
|
|
18
|
+
var actionContext = parentContexts.findAction(startTime);
|
|
19
|
+
return {
|
|
20
|
+
application: {
|
|
21
|
+
id: applicationId
|
|
22
|
+
},
|
|
23
|
+
session: {
|
|
24
|
+
id: session.getSessionId()
|
|
25
|
+
},
|
|
26
|
+
userAction: actionContext ? {
|
|
27
|
+
id: actionContext.userAction.id
|
|
28
|
+
} : undefined,
|
|
29
|
+
page: viewContext.page
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|