@cloudcare/rum-uniapp 1.0.3 → 2.1.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 +73 -2
- package/cjs/boot/rum.js +15 -3
- 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 +22 -7
- package/cjs/helper/limitModification.js +83 -0
- package/cjs/helper/tracekit.js +1 -1
- package/cjs/helper/utils.js +248 -6
- package/cjs/rumEventsCollection/action/actionCollection.js +19 -1
- 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 +71 -3
- package/esm/boot/rum.js +13 -3
- 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 +16 -2
- package/esm/helper/limitModification.js +57 -0
- package/esm/helper/tracekit.js +1 -1
- package/esm/helper/utils.js +213 -5
- package/esm/rumEventsCollection/action/actionCollection.js +20 -2
- 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 +1 -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',
|
|
@@ -36,7 +36,8 @@ exports.RequestType = RequestType;
|
|
|
36
36
|
var ActionType = {
|
|
37
37
|
tap: 'tap',
|
|
38
38
|
longpress: 'longpress',
|
|
39
|
-
longtap: 'longtap'
|
|
39
|
+
longtap: 'longtap',
|
|
40
|
+
custom: 'custom'
|
|
40
41
|
};
|
|
41
42
|
exports.ActionType = ActionType;
|
|
42
43
|
var MpHook = {
|
|
@@ -52,4 +53,18 @@ var MpHook = {
|
|
|
52
53
|
onHide: 1,
|
|
53
54
|
onUnload: 1
|
|
54
55
|
};
|
|
55
|
-
exports.MpHook = MpHook;
|
|
56
|
+
exports.MpHook = MpHook;
|
|
57
|
+
var TraceType = {
|
|
58
|
+
DDTRACE: 'ddtrace',
|
|
59
|
+
ZIPKIN_MULTI_HEADER: 'zipkin',
|
|
60
|
+
ZIPKIN_SINGLE_HEADER: 'zipkin_single_header',
|
|
61
|
+
W3C_TRACEPARENT: 'w3c_traceparent',
|
|
62
|
+
SKYWALKING_V3: 'skywalking_v3',
|
|
63
|
+
JAEGER: 'jaeger'
|
|
64
|
+
};
|
|
65
|
+
exports.TraceType = TraceType;
|
|
66
|
+
var ErrorHandling = {
|
|
67
|
+
HANDLED: 'handled',
|
|
68
|
+
UNHANDLED: 'unhandled'
|
|
69
|
+
};
|
|
70
|
+
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
|
}
|
|
@@ -482,7 +629,12 @@ function toSnakeCase(word) {
|
|
|
482
629
|
}
|
|
483
630
|
|
|
484
631
|
function escapeRowData(str) {
|
|
485
|
-
if (
|
|
632
|
+
if (_typeof(str) === 'object' && str) {
|
|
633
|
+
str = jsonStringify(str);
|
|
634
|
+
} else if (!isString(str)) {
|
|
635
|
+
return str;
|
|
636
|
+
}
|
|
637
|
+
|
|
486
638
|
var reg = /[\s=,"]/g;
|
|
487
639
|
return String(str).replace(reg, function (word) {
|
|
488
640
|
return '\\' + word;
|
|
@@ -553,8 +705,8 @@ var urlParse = function urlParse(para) {
|
|
|
553
705
|
|
|
554
706
|
URLParser.prototype.getUrl = function () {
|
|
555
707
|
var url = '';
|
|
556
|
-
url += this._values.Origin;
|
|
557
|
-
|
|
708
|
+
url += this._values.Origin; // url += this._values.Port ? ':' + this._values.Port : ''
|
|
709
|
+
|
|
558
710
|
url += this._values.Path;
|
|
559
711
|
url += this._values.QueryString ? '?' + this._values.QueryString : '';
|
|
560
712
|
return url;
|
|
@@ -575,8 +727,9 @@ var urlParse = function urlParse(para) {
|
|
|
575
727
|
}
|
|
576
728
|
}
|
|
577
729
|
|
|
730
|
+
this._values['Path'] = this._values['Path'] || '/';
|
|
578
731
|
this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
|
|
579
|
-
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 : '');
|
|
580
733
|
};
|
|
581
734
|
|
|
582
735
|
return new URLParser(para);
|
|
@@ -643,4 +796,93 @@ var deepMixObject = function deepMixObject(targetObj) {
|
|
|
643
796
|
return targetObj;
|
|
644
797
|
};
|
|
645
798
|
|
|
646
|
-
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
|
+
}
|
|
@@ -21,10 +21,18 @@ function startActionCollection(lifeCycle, configuration, Vue) {
|
|
|
21
21
|
if (configuration.trackInteractions) {
|
|
22
22
|
(0, _trackActions.trackActions)(lifeCycle, Vue);
|
|
23
23
|
}
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
addAction: function addAction(action, savedCommonContext) {
|
|
27
|
+
lifeCycle.notify(_lifeCycle.LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, (0, _utils.extend2Lev)({
|
|
28
|
+
savedCommonContext: savedCommonContext
|
|
29
|
+
}, processAction(action)));
|
|
30
|
+
}
|
|
31
|
+
};
|
|
24
32
|
}
|
|
25
33
|
|
|
26
34
|
function processAction(action) {
|
|
27
|
-
var autoActionProperties = {
|
|
35
|
+
var autoActionProperties = isAutoAction(action) ? {
|
|
28
36
|
action: {
|
|
29
37
|
error: {
|
|
30
38
|
count: action.counts.errorCount
|
|
@@ -38,7 +46,12 @@ function processAction(action) {
|
|
|
38
46
|
count: action.counts.resourceCount
|
|
39
47
|
}
|
|
40
48
|
}
|
|
49
|
+
} : {
|
|
50
|
+
action: {
|
|
51
|
+
loadingTime: 0
|
|
52
|
+
}
|
|
41
53
|
};
|
|
54
|
+
var customerContext = !isAutoAction(action) ? action.context : undefined;
|
|
42
55
|
var actionEvent = (0, _utils.extend2Lev)({
|
|
43
56
|
action: {
|
|
44
57
|
target: {
|
|
@@ -50,7 +63,12 @@ function processAction(action) {
|
|
|
50
63
|
type: _enums.RumEventType.ACTION
|
|
51
64
|
}, autoActionProperties);
|
|
52
65
|
return {
|
|
66
|
+
customerContext: customerContext,
|
|
53
67
|
rawRumEvent: actionEvent,
|
|
54
68
|
startTime: action.startClocks
|
|
55
69
|
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function isAutoAction(action) {
|
|
73
|
+
return action.type !== _enums.ActionType.custom;
|
|
56
74
|
}
|
|
@@ -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.savedCommonContext;
|
|
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;
|