@cloudcare/rum-uniapp 2.2.7 → 2.2.9

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.
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.buildEnv = void 0;
7
7
  var buildEnv = exports.buildEnv = {
8
- sdkVersion: '2.2.7',
8
+ sdkVersion: '2.2.9',
9
9
  sdkName: 'df_uniapp_rum_sdk'
10
10
  };
@@ -40,11 +40,11 @@ function proxyXhr(userConfiguration) {
40
40
  _sdk.sdk.request = function () {
41
41
  var _this = this;
42
42
  var dataflux_xhr = {
43
- method: arguments[0].method || 'GET',
43
+ method: arguments[0].method || "GET",
44
44
  startTime: 0,
45
45
  url: arguments[0].url,
46
46
  type: _enums.RequestType.XHR,
47
- responseType: arguments[0].responseType || 'text',
47
+ responseType: arguments[0].responseType || "text",
48
48
  option: arguments[0]
49
49
  };
50
50
  dataflux_xhr.startTime = (0, _utils.now)();
@@ -52,7 +52,7 @@ function proxyXhr(userConfiguration) {
52
52
  if (originalSuccess) {
53
53
  arguments[0].success = function () {
54
54
  reportXhr(arguments[0]);
55
- if (typeof originalSuccess === 'function') {
55
+ if (typeof originalSuccess === "function") {
56
56
  originalSuccess.apply(_this, arguments);
57
57
  }
58
58
  };
@@ -61,11 +61,20 @@ function proxyXhr(userConfiguration) {
61
61
  if (originalFail) {
62
62
  arguments[0].fail = function () {
63
63
  reportXhr(arguments[0]);
64
- if (typeof originalFail === 'function') {
64
+ if (typeof originalFail === "function") {
65
65
  originalFail.apply(_this, arguments);
66
66
  }
67
67
  };
68
68
  }
69
+ var originalComplete = arguments[0].complete;
70
+ if (originalComplete) {
71
+ arguments[0].complete = function () {
72
+ reportXhr(arguments[0]);
73
+ if (typeof originalComplete === "function") {
74
+ originalComplete.apply(_this, arguments);
75
+ }
76
+ };
77
+ }
69
78
  var hasBeenReported = false;
70
79
  var reportXhr = function reportXhr(res) {
71
80
  if (hasBeenReported) {
@@ -87,7 +96,7 @@ function proxyXhr(userConfiguration) {
87
96
  var result = originalXhrRequest.call(this, dataflux_xhr.option);
88
97
  // 判断结果是否为promise
89
98
  var isPromise = function isPromise(obj) {
90
- return !!obj && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
99
+ return !!obj && (_typeof(obj) === "object" || typeof obj === "function") && typeof obj.then === "function";
91
100
  };
92
101
  if (isPromise(result) && userConfiguration.isVue2) {
93
102
  // vue2 版本,success, fail 都在then返回
@@ -58,7 +58,7 @@ var nativeForEach = ArrayProto.forEach;
58
58
  var nativeIsArray = Array.isArray;
59
59
  var breaker = false;
60
60
  var isArguments = exports.isArguments = function isArguments(obj) {
61
- return !!(obj && hasOwnProperty.call(obj, 'callee'));
61
+ return !!(obj && hasOwnProperty.call(obj, "callee"));
62
62
  };
63
63
  var each = exports.each = function each(obj, iterator, context) {
64
64
  if (obj === null) return false;
@@ -123,7 +123,7 @@ function toServerDuration(duration) {
123
123
  return round(duration * 1e6, 0);
124
124
  }
125
125
  function msToNs(duration) {
126
- if (typeof duration !== 'number') {
126
+ if (typeof duration !== "number") {
127
127
  return duration;
128
128
  }
129
129
  return round(duration * 1e6, 0);
@@ -132,16 +132,16 @@ var isUndefined = exports.isUndefined = function isUndefined(obj) {
132
132
  return obj === void 0;
133
133
  };
134
134
  var isString = exports.isString = function isString(obj) {
135
- return toString.call(obj) === '[object String]';
135
+ return toString.call(obj) === "[object String]";
136
136
  };
137
137
  var isDate = exports.isDate = function isDate(obj) {
138
- return toString.call(obj) === '[object Date]';
138
+ return toString.call(obj) === "[object Date]";
139
139
  };
140
140
  var isBoolean = exports.isBoolean = function isBoolean(obj) {
141
- return toString.call(obj) === '[object Boolean]';
141
+ return toString.call(obj) === "[object Boolean]";
142
142
  };
143
143
  var isNumber = exports.isNumber = function isNumber(obj) {
144
- return toString.call(obj) === '[object Number]' && /[\d\.]+/.test(String(obj));
144
+ return toString.call(obj) === "[object Number]" && /[\d\.]+/.test(String(obj));
145
145
  };
146
146
  var isFunction = exports.isFunction = function isFunction(f) {
147
147
  if (!f) {
@@ -154,7 +154,7 @@ var isFunction = exports.isFunction = function isFunction(f) {
154
154
  }
155
155
  };
156
156
  var isArray = exports.isArray = nativeIsArray || function (obj) {
157
- return toString.call(obj) === '[object Array]';
157
+ return toString.call(obj) === "[object Array]";
158
158
  };
159
159
  var toArray = exports.toArray = function toArray(iterable) {
160
160
  if (!iterable) return [];
@@ -188,8 +188,8 @@ function UUID(placeholder) {
188
188
  (parseInt(placeholder, 10) ^ Math.random() * 16 >> parseInt(placeholder, 10) / 4).toString(16) : "".concat(1e7, "-", 1e3, "-", 4e3, "-", 8e3, "-", 1e11).replace(/[018]/g, UUID);
189
189
  }
190
190
  var utf8Encode = exports.utf8Encode = function utf8Encode(string) {
191
- string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
192
- var utftext = '',
191
+ string = (string + "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
192
+ var utftext = "",
193
193
  start,
194
194
  end;
195
195
  var stringl = 0,
@@ -221,7 +221,7 @@ var utf8Encode = exports.utf8Encode = function utf8Encode(string) {
221
221
  };
222
222
  var base64Encode = exports.base64Encode = function base64Encode(data) {
223
223
  data = String(data);
224
- var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
224
+ var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
225
225
  var o1,
226
226
  o2,
227
227
  o3,
@@ -232,7 +232,7 @@ var base64Encode = exports.base64Encode = function base64Encode(data) {
232
232
  bits,
233
233
  i = 0,
234
234
  ac = 0,
235
- enc = '',
235
+ enc = "",
236
236
  tmp_arr = [];
237
237
  if (!data) {
238
238
  return data;
@@ -249,19 +249,19 @@ var base64Encode = exports.base64Encode = function base64Encode(data) {
249
249
  h4 = bits & 0x3f;
250
250
  tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
251
251
  } while (i < data.length);
252
- enc = tmp_arr.join('');
252
+ enc = tmp_arr.join("");
253
253
  switch (data.length % 3) {
254
254
  case 1:
255
- enc = enc.slice(0, -2) + '==';
255
+ enc = enc.slice(0, -2) + "==";
256
256
  break;
257
257
  case 2:
258
- enc = enc.slice(0, -1) + '=';
258
+ enc = enc.slice(0, -1) + "=";
259
259
  break;
260
260
  }
261
261
  return enc;
262
262
  };
263
263
  function hasToJSON(value) {
264
- return _typeof(value) === 'object' && value !== null && value.hasOwnProperty('toJSON');
264
+ return _typeof(value) === "object" && value !== null && value.hasOwnProperty("toJSON");
265
265
  }
266
266
  function elapsed(start, end) {
267
267
  return end - start;
@@ -269,7 +269,7 @@ function elapsed(start, end) {
269
269
  function getMethods(obj) {
270
270
  var funcs = [];
271
271
  for (var key in obj) {
272
- if (typeof obj[key] === 'function' && !_enums.MpHook[key]) {
272
+ if (typeof obj[key] === "function" && !_enums.MpHook[key]) {
273
273
  funcs.push(key);
274
274
  }
275
275
  }
@@ -278,34 +278,34 @@ function getMethods(obj) {
278
278
  // 替换url包含数字的路由
279
279
  function replaceNumberCharByPath(path) {
280
280
  if (path) {
281
- return path.replace(/\/([^\/]*)\d([^\/]*)/g, '/?');
281
+ return path.replace(/\/([^\/]*)\d([^\/]*)/g, "/?");
282
282
  } else {
283
- return '';
283
+ return "";
284
284
  }
285
285
  }
286
286
  function getStatusGroup(status) {
287
287
  if (!status) return status;
288
- return String(status).substr(0, 1) + String(status).substr(1).replace(/\d*/g, 'x');
288
+ return String(status).substr(0, 1) + String(status).substr(1).replace(/\d*/g, "x");
289
289
  }
290
290
  var getQueryParamsFromUrl = exports.getQueryParamsFromUrl = function getQueryParamsFromUrl(url) {
291
291
  var result = {};
292
- var arr = url.split('?');
293
- var queryString = arr[1] || '';
292
+ var arr = url.split("?");
293
+ var queryString = arr[1] || "";
294
294
  if (queryString) {
295
- result = getURLSearchParams('?' + queryString);
295
+ result = getURLSearchParams("?" + queryString);
296
296
  }
297
297
  return result;
298
298
  };
299
299
  var getURLSearchParams = exports.getURLSearchParams = function getURLSearchParams(queryString) {
300
- queryString = queryString || '';
300
+ queryString = queryString || "";
301
301
  var decodeParam = function decodeParam(str) {
302
302
  return decodeURIComponent(str);
303
303
  };
304
304
  var args = {};
305
305
  var query = queryString.substring(1);
306
- var pairs = query.split('&');
306
+ var pairs = query.split("&");
307
307
  for (var i = 0; i < pairs.length; i++) {
308
- var pos = pairs[i].indexOf('=');
308
+ var pos = pairs[i].indexOf("=");
309
309
  if (pos === -1) continue;
310
310
  var name = pairs[i].substring(0, pos);
311
311
  var value = pairs[i].substring(pos + 1);
@@ -343,11 +343,11 @@ var extend2Lev = exports.extend2Lev = function extend2Lev(obj) {
343
343
  return obj;
344
344
  };
345
345
  var trim = exports.trim = function trim(str) {
346
- return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
346
+ return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
347
347
  };
348
348
  var isObject = exports.isObject = function isObject(obj) {
349
349
  if (obj === null) return false;
350
- return toString.call(obj) === '[object Object]';
350
+ return toString.call(obj) === "[object Object]";
351
351
  };
352
352
  var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) {
353
353
  if (isObject(obj)) {
@@ -424,7 +424,7 @@ function performDraw(threshold) {
424
424
  return threshold !== 0 && Math.random() * 100 <= threshold;
425
425
  }
426
426
  function findByPath(source, path) {
427
- var pathArr = path.split('.');
427
+ var pathArr = path.split(".");
428
428
  while (pathArr.length) {
429
429
  var key = pathArr.shift();
430
430
  if (source && key in source && hasOwnProperty.call(source, key)) {
@@ -448,25 +448,25 @@ function deepSnakeCase(candidate) {
448
448
  return deepSnakeCase(value);
449
449
  });
450
450
  }
451
- if (_typeof(candidate) === 'object' && candidate !== null) {
451
+ if (_typeof(candidate) === "object" && candidate !== null) {
452
452
  return withSnakeCaseKeys(candidate);
453
453
  }
454
454
  return candidate;
455
455
  }
456
456
  function toSnakeCase(word) {
457
457
  return word.replace(/[A-Z]/g, function (uppercaseLetter, index) {
458
- return (index !== 0 ? '_' : '') + uppercaseLetter.toLowerCase();
459
- }).replace(/-/g, '_');
458
+ return (index !== 0 ? "_" : "") + uppercaseLetter.toLowerCase();
459
+ }).replace(/-/g, "_");
460
460
  }
461
461
  function escapeRowData(str) {
462
- if (_typeof(str) === 'object' && str) {
462
+ if (_typeof(str) === "object" && str) {
463
463
  str = (0, _jsonStringify.jsonStringify)(str);
464
464
  } else if (!isString(str)) {
465
465
  return str;
466
466
  }
467
467
  var reg = /[\s=,"]/g;
468
468
  return String(str).replace(reg, function (word) {
469
- return '\\' + word;
469
+ return "\\" + word;
470
470
  });
471
471
  }
472
472
  function escapeJsonValue(value) {
@@ -477,10 +477,10 @@ function escapeJsonValue(value) {
477
477
  }
478
478
  }
479
479
  function escapeFieldValueStr(str) {
480
- return '"' + str.replace(/[\\]*"/g, '"').replace(/"/g, '\\"') + '"';
480
+ return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"';
481
481
  }
482
482
  function escapeRowField(value) {
483
- if (_typeof(value) === 'object' && value) {
483
+ if (_typeof(value) === "object" && value) {
484
484
  return escapeFieldValueStr((0, _jsonStringify.jsonStringify)(value));
485
485
  } else if (isString(value)) {
486
486
  return escapeFieldValueStr(value);
@@ -504,7 +504,7 @@ var urlParse = exports.urlParse = function urlParse(para) {
504
504
  this._values = {};
505
505
  this._regex = null;
506
506
  this._regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
507
- if (typeof a != 'undefined') {
507
+ if (typeof a != "undefined") {
508
508
  this._parse(a);
509
509
  }
510
510
  };
@@ -513,25 +513,25 @@ var urlParse = exports.urlParse = function urlParse(para) {
513
513
  };
514
514
  URLParser.prototype._initValues = function () {
515
515
  for (var a in this._fields) {
516
- this._values[a] = '';
516
+ this._values[a] = "";
517
517
  }
518
518
  };
519
519
  URLParser.prototype.addQueryString = function (queryObj) {
520
- if (_typeof(queryObj) !== 'object') {
520
+ if (_typeof(queryObj) !== "object") {
521
521
  return false;
522
522
  }
523
- var query = this._values.QueryString || '';
523
+ var query = this._values.QueryString || "";
524
524
  for (var i in queryObj) {
525
- if (new RegExp(i + '[^&]+').test(query)) {
526
- query = query.replace(new RegExp(i + '[^&]+'), i + '=' + queryObj[i]);
525
+ if (new RegExp(i + "[^&]+").test(query)) {
526
+ query = query.replace(new RegExp(i + "[^&]+"), i + "=" + queryObj[i]);
527
527
  } else {
528
- if (query.slice(-1) === '&') {
529
- query = query + i + '=' + queryObj[i];
528
+ if (query.slice(-1) === "&") {
529
+ query = query + i + "=" + queryObj[i];
530
530
  } else {
531
- if (query === '') {
532
- query = i + '=' + queryObj[i];
531
+ if (query === "") {
532
+ query = i + "=" + queryObj[i];
533
533
  } else {
534
- query = query + '&' + i + '=' + queryObj[i];
534
+ query = query + "&" + i + "=" + queryObj[i];
535
535
  }
536
536
  }
537
537
  }
@@ -542,27 +542,27 @@ var urlParse = exports.urlParse = function urlParse(para) {
542
542
  return this._values;
543
543
  };
544
544
  URLParser.prototype.getUrl = function () {
545
- var url = '';
545
+ var url = "";
546
546
  url += this._values.Origin;
547
547
  // url += this._values.Port ? ':' + this._values.Port : ''
548
548
  url += this._values.Path;
549
- url += this._values.QueryString ? '?' + this._values.QueryString : '';
549
+ url += this._values.QueryString ? "?" + this._values.QueryString : "";
550
550
  return url;
551
551
  };
552
552
  URLParser.prototype._parse = function (a) {
553
553
  this._initValues();
554
554
  var b = this._regex.exec(a);
555
555
  if (!b) {
556
- throw 'DPURLParser::_parse -> Invalid URL';
556
+ throw "DPURLParser::_parse -> Invalid URL";
557
557
  }
558
558
  for (var c in this._fields) {
559
- if (typeof b[this._fields[c]] != 'undefined') {
559
+ if (typeof b[this._fields[c]] != "undefined") {
560
560
  this._values[c] = b[this._fields[c]];
561
561
  }
562
562
  }
563
- this._values['Path'] = this._values['Path'] || '/';
564
- this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
565
- this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
563
+ this._values["Path"] = this._values["Path"] || "/";
564
+ this._values["Hostname"] = this._values["Host"].replace(/:\d+$/, "");
565
+ this._values["Origin"] = this._values["Protocol"] + "://" + this._values["Hostname"] + (this._values.Port ? ":" + this._values.Port : "");
566
566
  };
567
567
  return new URLParser(para);
568
568
  };
@@ -615,18 +615,18 @@ function getOrigin(url) {
615
615
  return urlParse(url).getParse().Origin;
616
616
  }
617
617
  function getActivePage() {
618
- var curPages = typeof getCurrentPages === 'function' ? getCurrentPages() : [];
618
+ var curPages = typeof getCurrentPages === "function" ? getCurrentPages() : [];
619
619
  if (curPages.length) {
620
620
  return curPages[curPages.length - 1];
621
621
  }
622
622
  return {};
623
623
  }
624
624
  function findCommaSeparatedValue(rawString, name) {
625
- var matches = rawString.match('(?:^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
625
+ var matches = rawString.match("(?:^|;)\\s*" + name + "\\s*=\\s*([^;]+)");
626
626
  return matches ? matches[1] : undefined;
627
627
  }
628
628
  function createCircularReferenceChecker() {
629
- if (typeof WeakSet !== 'undefined') {
629
+ if (typeof WeakSet !== "undefined") {
630
630
  var set = new WeakSet();
631
631
  return {
632
632
  hasAlreadyBeenSeen: function hasAlreadyBeenSeen(value) {
@@ -654,10 +654,10 @@ function createCircularReferenceChecker() {
654
654
  */
655
655
  function getType(value) {
656
656
  if (value === null) {
657
- return 'null';
657
+ return "null";
658
658
  }
659
659
  if (Array.isArray(value)) {
660
- return 'array';
660
+ return "array";
661
661
  }
662
662
  return _typeof(value);
663
663
  }
@@ -667,13 +667,13 @@ function getType(value) {
667
667
  */
668
668
  function mergeInto(destination, source, circularReferenceChecker) {
669
669
  // ignore the source if it is undefined
670
- if (typeof circularReferenceChecker === 'undefined') {
670
+ if (typeof circularReferenceChecker === "undefined") {
671
671
  circularReferenceChecker = createCircularReferenceChecker();
672
672
  }
673
673
  if (source === undefined) {
674
674
  return destination;
675
675
  }
676
- if (_typeof(source) !== 'object' || source === null) {
676
+ if (_typeof(source) !== "object" || source === null) {
677
677
  // primitive values - just return source
678
678
  return source;
679
679
  } else if (source instanceof Date) {
@@ -681,7 +681,7 @@ function mergeInto(destination, source, circularReferenceChecker) {
681
681
  } else if (source instanceof RegExp) {
682
682
  var flags = source.flags ||
683
683
  // old browsers compatibility
684
- [source.global ? 'g' : '', source.ignoreCase ? 'i' : '', source.multiline ? 'm' : '', source.sticky ? 'y' : '', source.unicode ? 'u' : ''].join('');
684
+ [source.global ? "g" : "", source.ignoreCase ? "i" : "", source.multiline ? "m" : "", source.sticky ? "y" : "", source.unicode ? "u" : ""].join("");
685
685
  return new RegExp(source.source, flags);
686
686
  }
687
687
  if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {
@@ -694,7 +694,7 @@ function mergeInto(destination, source, circularReferenceChecker) {
694
694
  }
695
695
  return merged;
696
696
  }
697
- var merged = getType(destination) === 'object' ? destination : {};
697
+ var merged = getType(destination) === "object" ? destination : {};
698
698
  for (var key in source) {
699
699
  if (Object.prototype.hasOwnProperty.call(source, key)) {
700
700
  merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);
@@ -719,10 +719,10 @@ function defineGlobal(global, name, api) {
719
719
  global[name] = api;
720
720
  }
721
721
  function getGlobalObject() {
722
- if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === 'object') {
722
+ if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") {
723
723
  return globalThis;
724
724
  }
725
- Object.defineProperty(Object.prototype, '_dd_temp_', {
725
+ Object.defineProperty(Object.prototype, "_dd_temp_", {
726
726
  get: function get() {
727
727
  return this;
728
728
  },
@@ -732,12 +732,12 @@ function getGlobalObject() {
732
732
  var globalObject = _dd_temp_;
733
733
  // @ts-ignore
734
734
  delete Object.prototype._dd_temp_;
735
- if (_typeof(globalObject) !== 'object') {
735
+ if (_typeof(globalObject) !== "object") {
736
736
  // on safari _dd_temp_ is available on window but not globally
737
737
  // fallback on other browser globals check
738
- if ((typeof self === "undefined" ? "undefined" : _typeof(self)) === 'object') {
738
+ if ((typeof self === "undefined" ? "undefined" : _typeof(self)) === "object") {
739
739
  globalObject = self;
740
- } else if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object') {
740
+ } else if ((typeof window === "undefined" ? "undefined" : _typeof(window)) === "object") {
741
741
  globalObject = window;
742
742
  } else {
743
743
  globalObject = {};
@@ -86,6 +86,9 @@ function startParentContexts(lifeCycle) {
86
86
  if (startTime === undefined) {
87
87
  return currentContext ? buildContext() : undefined;
88
88
  }
89
+ if (currentContext && previousContexts.length == 0) {
90
+ return buildContext();
91
+ }
89
92
  if (currentContext && startTime >= currentContext.startTime) {
90
93
  return buildContext();
91
94
  }
@@ -1,4 +1,4 @@
1
1
  export var buildEnv = {
2
- sdkVersion: '2.2.7',
2
+ sdkVersion: '2.2.9',
3
3
  sdkName: 'df_uniapp_rum_sdk'
4
4
  };
@@ -1,6 +1,6 @@
1
- import { sdk } from './sdk';
2
- import { now } from '../helper/utils';
3
- import { RequestType } from '../helper/enums';
1
+ import { sdk } from "./sdk";
2
+ import { now } from "../helper/utils";
3
+ import { RequestType } from "../helper/enums";
4
4
  var xhrProxySingleton;
5
5
  var beforeSendCallbacks = [];
6
6
  var onRequestCompleteCallbacks = [];
@@ -32,11 +32,11 @@ function proxyXhr(userConfiguration) {
32
32
  sdk.request = function () {
33
33
  var _this = this;
34
34
  var dataflux_xhr = {
35
- method: arguments[0].method || 'GET',
35
+ method: arguments[0].method || "GET",
36
36
  startTime: 0,
37
37
  url: arguments[0].url,
38
38
  type: RequestType.XHR,
39
- responseType: arguments[0].responseType || 'text',
39
+ responseType: arguments[0].responseType || "text",
40
40
  option: arguments[0]
41
41
  };
42
42
  dataflux_xhr.startTime = now();
@@ -44,7 +44,7 @@ function proxyXhr(userConfiguration) {
44
44
  if (originalSuccess) {
45
45
  arguments[0].success = function () {
46
46
  reportXhr(arguments[0]);
47
- if (typeof originalSuccess === 'function') {
47
+ if (typeof originalSuccess === "function") {
48
48
  originalSuccess.apply(_this, arguments);
49
49
  }
50
50
  };
@@ -53,11 +53,20 @@ function proxyXhr(userConfiguration) {
53
53
  if (originalFail) {
54
54
  arguments[0].fail = function () {
55
55
  reportXhr(arguments[0]);
56
- if (typeof originalFail === 'function') {
56
+ if (typeof originalFail === "function") {
57
57
  originalFail.apply(_this, arguments);
58
58
  }
59
59
  };
60
60
  }
61
+ var originalComplete = arguments[0].complete;
62
+ if (originalComplete) {
63
+ arguments[0].complete = function () {
64
+ reportXhr(arguments[0]);
65
+ if (typeof originalComplete === "function") {
66
+ originalComplete.apply(_this, arguments);
67
+ }
68
+ };
69
+ }
61
70
  var hasBeenReported = false;
62
71
  var reportXhr = function reportXhr(res) {
63
72
  if (hasBeenReported) {
@@ -79,7 +88,7 @@ function proxyXhr(userConfiguration) {
79
88
  var result = originalXhrRequest.call(this, dataflux_xhr.option);
80
89
  // 判断结果是否为promise
81
90
  var isPromise = function isPromise(obj) {
82
- return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
91
+ return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
83
92
  };
84
93
  if (isPromise(result) && userConfiguration.isVue2) {
85
94
  // vue2 版本,success, fail 都在then返回
@@ -1,5 +1,5 @@
1
- import { MpHook } from './enums';
2
- import { jsonStringify } from '../helper/jsonStringify';
1
+ import { MpHook } from "./enums";
2
+ import { jsonStringify } from "../helper/jsonStringify";
3
3
  var ArrayProto = Array.prototype;
4
4
  var ObjProto = Object.prototype;
5
5
  var ObjProto = Object.prototype;
@@ -10,7 +10,7 @@ var nativeForEach = ArrayProto.forEach;
10
10
  var nativeIsArray = Array.isArray;
11
11
  var breaker = false;
12
12
  export var isArguments = function isArguments(obj) {
13
- return !!(obj && hasOwnProperty.call(obj, 'callee'));
13
+ return !!(obj && hasOwnProperty.call(obj, "callee"));
14
14
  };
15
15
  export var each = function each(obj, iterator, context) {
16
16
  if (obj === null) return false;
@@ -75,7 +75,7 @@ export function toServerDuration(duration) {
75
75
  return round(duration * 1e6, 0);
76
76
  }
77
77
  export function msToNs(duration) {
78
- if (typeof duration !== 'number') {
78
+ if (typeof duration !== "number") {
79
79
  return duration;
80
80
  }
81
81
  return round(duration * 1e6, 0);
@@ -84,16 +84,16 @@ export var isUndefined = function isUndefined(obj) {
84
84
  return obj === void 0;
85
85
  };
86
86
  export var isString = function isString(obj) {
87
- return toString.call(obj) === '[object String]';
87
+ return toString.call(obj) === "[object String]";
88
88
  };
89
89
  export var isDate = function isDate(obj) {
90
- return toString.call(obj) === '[object Date]';
90
+ return toString.call(obj) === "[object Date]";
91
91
  };
92
92
  export var isBoolean = function isBoolean(obj) {
93
- return toString.call(obj) === '[object Boolean]';
93
+ return toString.call(obj) === "[object Boolean]";
94
94
  };
95
95
  export var isNumber = function isNumber(obj) {
96
- return toString.call(obj) === '[object Number]' && /[\d\.]+/.test(String(obj));
96
+ return toString.call(obj) === "[object Number]" && /[\d\.]+/.test(String(obj));
97
97
  };
98
98
  export var isFunction = function isFunction(f) {
99
99
  if (!f) {
@@ -106,7 +106,7 @@ export var isFunction = function isFunction(f) {
106
106
  }
107
107
  };
108
108
  export var isArray = nativeIsArray || function (obj) {
109
- return toString.call(obj) === '[object Array]';
109
+ return toString.call(obj) === "[object Array]";
110
110
  };
111
111
  export var toArray = function toArray(iterable) {
112
112
  if (!iterable) return [];
@@ -140,8 +140,8 @@ export function UUID(placeholder) {
140
140
  (parseInt(placeholder, 10) ^ Math.random() * 16 >> parseInt(placeholder, 10) / 4).toString(16) : "".concat(1e7, "-", 1e3, "-", 4e3, "-", 8e3, "-", 1e11).replace(/[018]/g, UUID);
141
141
  }
142
142
  export var utf8Encode = function utf8Encode(string) {
143
- string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
144
- var utftext = '',
143
+ string = (string + "").replace(/\r\n/g, "\n").replace(/\r/g, "\n");
144
+ var utftext = "",
145
145
  start,
146
146
  end;
147
147
  var stringl = 0,
@@ -173,7 +173,7 @@ export var utf8Encode = function utf8Encode(string) {
173
173
  };
174
174
  export var base64Encode = function base64Encode(data) {
175
175
  data = String(data);
176
- var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
176
+ var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
177
177
  var o1,
178
178
  o2,
179
179
  o3,
@@ -184,7 +184,7 @@ export var base64Encode = function base64Encode(data) {
184
184
  bits,
185
185
  i = 0,
186
186
  ac = 0,
187
- enc = '',
187
+ enc = "",
188
188
  tmp_arr = [];
189
189
  if (!data) {
190
190
  return data;
@@ -201,19 +201,19 @@ export var base64Encode = function base64Encode(data) {
201
201
  h4 = bits & 0x3f;
202
202
  tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
203
203
  } while (i < data.length);
204
- enc = tmp_arr.join('');
204
+ enc = tmp_arr.join("");
205
205
  switch (data.length % 3) {
206
206
  case 1:
207
- enc = enc.slice(0, -2) + '==';
207
+ enc = enc.slice(0, -2) + "==";
208
208
  break;
209
209
  case 2:
210
- enc = enc.slice(0, -1) + '=';
210
+ enc = enc.slice(0, -1) + "=";
211
211
  break;
212
212
  }
213
213
  return enc;
214
214
  };
215
215
  function hasToJSON(value) {
216
- return typeof value === 'object' && value !== null && value.hasOwnProperty('toJSON');
216
+ return typeof value === "object" && value !== null && value.hasOwnProperty("toJSON");
217
217
  }
218
218
  export function elapsed(start, end) {
219
219
  return end - start;
@@ -221,7 +221,7 @@ export function elapsed(start, end) {
221
221
  export function getMethods(obj) {
222
222
  var funcs = [];
223
223
  for (var key in obj) {
224
- if (typeof obj[key] === 'function' && !MpHook[key]) {
224
+ if (typeof obj[key] === "function" && !MpHook[key]) {
225
225
  funcs.push(key);
226
226
  }
227
227
  }
@@ -230,34 +230,34 @@ export function getMethods(obj) {
230
230
  // 替换url包含数字的路由
231
231
  export function replaceNumberCharByPath(path) {
232
232
  if (path) {
233
- return path.replace(/\/([^\/]*)\d([^\/]*)/g, '/?');
233
+ return path.replace(/\/([^\/]*)\d([^\/]*)/g, "/?");
234
234
  } else {
235
- return '';
235
+ return "";
236
236
  }
237
237
  }
238
238
  export function getStatusGroup(status) {
239
239
  if (!status) return status;
240
- return String(status).substr(0, 1) + String(status).substr(1).replace(/\d*/g, 'x');
240
+ return String(status).substr(0, 1) + String(status).substr(1).replace(/\d*/g, "x");
241
241
  }
242
242
  export var getQueryParamsFromUrl = function getQueryParamsFromUrl(url) {
243
243
  var result = {};
244
- var arr = url.split('?');
245
- var queryString = arr[1] || '';
244
+ var arr = url.split("?");
245
+ var queryString = arr[1] || "";
246
246
  if (queryString) {
247
- result = getURLSearchParams('?' + queryString);
247
+ result = getURLSearchParams("?" + queryString);
248
248
  }
249
249
  return result;
250
250
  };
251
251
  export var getURLSearchParams = function getURLSearchParams(queryString) {
252
- queryString = queryString || '';
252
+ queryString = queryString || "";
253
253
  var decodeParam = function decodeParam(str) {
254
254
  return decodeURIComponent(str);
255
255
  };
256
256
  var args = {};
257
257
  var query = queryString.substring(1);
258
- var pairs = query.split('&');
258
+ var pairs = query.split("&");
259
259
  for (var i = 0; i < pairs.length; i++) {
260
- var pos = pairs[i].indexOf('=');
260
+ var pos = pairs[i].indexOf("=");
261
261
  if (pos === -1) continue;
262
262
  var name = pairs[i].substring(0, pos);
263
263
  var value = pairs[i].substring(pos + 1);
@@ -295,11 +295,11 @@ export var extend2Lev = function extend2Lev(obj) {
295
295
  return obj;
296
296
  };
297
297
  export var trim = function trim(str) {
298
- return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
298
+ return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
299
299
  };
300
300
  export var isObject = function isObject(obj) {
301
301
  if (obj === null) return false;
302
- return toString.call(obj) === '[object Object]';
302
+ return toString.call(obj) === "[object Object]";
303
303
  };
304
304
  export var isEmptyObject = function isEmptyObject(obj) {
305
305
  if (isObject(obj)) {
@@ -376,7 +376,7 @@ export function performDraw(threshold) {
376
376
  return threshold !== 0 && Math.random() * 100 <= threshold;
377
377
  }
378
378
  export function findByPath(source, path) {
379
- var pathArr = path.split('.');
379
+ var pathArr = path.split(".");
380
380
  while (pathArr.length) {
381
381
  var key = pathArr.shift();
382
382
  if (source && key in source && hasOwnProperty.call(source, key)) {
@@ -398,25 +398,25 @@ export function deepSnakeCase(candidate) {
398
398
  if (Array.isArray(candidate)) {
399
399
  return candidate.map(value => deepSnakeCase(value));
400
400
  }
401
- if (typeof candidate === 'object' && candidate !== null) {
401
+ if (typeof candidate === "object" && candidate !== null) {
402
402
  return withSnakeCaseKeys(candidate);
403
403
  }
404
404
  return candidate;
405
405
  }
406
406
  export function toSnakeCase(word) {
407
407
  return word.replace(/[A-Z]/g, function (uppercaseLetter, index) {
408
- return (index !== 0 ? '_' : '') + uppercaseLetter.toLowerCase();
409
- }).replace(/-/g, '_');
408
+ return (index !== 0 ? "_" : "") + uppercaseLetter.toLowerCase();
409
+ }).replace(/-/g, "_");
410
410
  }
411
411
  export function escapeRowData(str) {
412
- if (typeof str === 'object' && str) {
412
+ if (typeof str === "object" && str) {
413
413
  str = jsonStringify(str);
414
414
  } else if (!isString(str)) {
415
415
  return str;
416
416
  }
417
417
  var reg = /[\s=,"]/g;
418
418
  return String(str).replace(reg, function (word) {
419
- return '\\' + word;
419
+ return "\\" + word;
420
420
  });
421
421
  }
422
422
  export function escapeJsonValue(value) {
@@ -427,10 +427,10 @@ export function escapeJsonValue(value) {
427
427
  }
428
428
  }
429
429
  export function escapeFieldValueStr(str) {
430
- return '"' + str.replace(/[\\]*"/g, '"').replace(/"/g, '\\"') + '"';
430
+ return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"';
431
431
  }
432
432
  export function escapeRowField(value) {
433
- if (typeof value === 'object' && value) {
433
+ if (typeof value === "object" && value) {
434
434
  return escapeFieldValueStr(jsonStringify(value));
435
435
  } else if (isString(value)) {
436
436
  return escapeFieldValueStr(value);
@@ -454,7 +454,7 @@ export var urlParse = function urlParse(para) {
454
454
  this._values = {};
455
455
  this._regex = null;
456
456
  this._regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
457
- if (typeof a != 'undefined') {
457
+ if (typeof a != "undefined") {
458
458
  this._parse(a);
459
459
  }
460
460
  };
@@ -463,25 +463,25 @@ export var urlParse = function urlParse(para) {
463
463
  };
464
464
  URLParser.prototype._initValues = function () {
465
465
  for (var a in this._fields) {
466
- this._values[a] = '';
466
+ this._values[a] = "";
467
467
  }
468
468
  };
469
469
  URLParser.prototype.addQueryString = function (queryObj) {
470
- if (typeof queryObj !== 'object') {
470
+ if (typeof queryObj !== "object") {
471
471
  return false;
472
472
  }
473
- var query = this._values.QueryString || '';
473
+ var query = this._values.QueryString || "";
474
474
  for (var i in queryObj) {
475
- if (new RegExp(i + '[^&]+').test(query)) {
476
- query = query.replace(new RegExp(i + '[^&]+'), i + '=' + queryObj[i]);
475
+ if (new RegExp(i + "[^&]+").test(query)) {
476
+ query = query.replace(new RegExp(i + "[^&]+"), i + "=" + queryObj[i]);
477
477
  } else {
478
- if (query.slice(-1) === '&') {
479
- query = query + i + '=' + queryObj[i];
478
+ if (query.slice(-1) === "&") {
479
+ query = query + i + "=" + queryObj[i];
480
480
  } else {
481
- if (query === '') {
482
- query = i + '=' + queryObj[i];
481
+ if (query === "") {
482
+ query = i + "=" + queryObj[i];
483
483
  } else {
484
- query = query + '&' + i + '=' + queryObj[i];
484
+ query = query + "&" + i + "=" + queryObj[i];
485
485
  }
486
486
  }
487
487
  }
@@ -492,27 +492,27 @@ export var urlParse = function urlParse(para) {
492
492
  return this._values;
493
493
  };
494
494
  URLParser.prototype.getUrl = function () {
495
- var url = '';
495
+ var url = "";
496
496
  url += this._values.Origin;
497
497
  // url += this._values.Port ? ':' + this._values.Port : ''
498
498
  url += this._values.Path;
499
- url += this._values.QueryString ? '?' + this._values.QueryString : '';
499
+ url += this._values.QueryString ? "?" + this._values.QueryString : "";
500
500
  return url;
501
501
  };
502
502
  URLParser.prototype._parse = function (a) {
503
503
  this._initValues();
504
504
  var b = this._regex.exec(a);
505
505
  if (!b) {
506
- throw 'DPURLParser::_parse -> Invalid URL';
506
+ throw "DPURLParser::_parse -> Invalid URL";
507
507
  }
508
508
  for (var c in this._fields) {
509
- if (typeof b[this._fields[c]] != 'undefined') {
509
+ if (typeof b[this._fields[c]] != "undefined") {
510
510
  this._values[c] = b[this._fields[c]];
511
511
  }
512
512
  }
513
- this._values['Path'] = this._values['Path'] || '/';
514
- this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
515
- this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
513
+ this._values["Path"] = this._values["Path"] || "/";
514
+ this._values["Hostname"] = this._values["Host"].replace(/:\d+$/, "");
515
+ this._values["Origin"] = this._values["Protocol"] + "://" + this._values["Hostname"] + (this._values.Port ? ":" + this._values.Port : "");
516
516
  };
517
517
  return new URLParser(para);
518
518
  };
@@ -565,18 +565,18 @@ export function getOrigin(url) {
565
565
  return urlParse(url).getParse().Origin;
566
566
  }
567
567
  export function getActivePage() {
568
- var curPages = typeof getCurrentPages === 'function' ? getCurrentPages() : [];
568
+ var curPages = typeof getCurrentPages === "function" ? getCurrentPages() : [];
569
569
  if (curPages.length) {
570
570
  return curPages[curPages.length - 1];
571
571
  }
572
572
  return {};
573
573
  }
574
574
  export function findCommaSeparatedValue(rawString, name) {
575
- var matches = rawString.match('(?:^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
575
+ var matches = rawString.match("(?:^|;)\\s*" + name + "\\s*=\\s*([^;]+)");
576
576
  return matches ? matches[1] : undefined;
577
577
  }
578
578
  function createCircularReferenceChecker() {
579
- if (typeof WeakSet !== 'undefined') {
579
+ if (typeof WeakSet !== "undefined") {
580
580
  var set = new WeakSet();
581
581
  return {
582
582
  hasAlreadyBeenSeen: function hasAlreadyBeenSeen(value) {
@@ -604,10 +604,10 @@ function createCircularReferenceChecker() {
604
604
  */
605
605
  export function getType(value) {
606
606
  if (value === null) {
607
- return 'null';
607
+ return "null";
608
608
  }
609
609
  if (Array.isArray(value)) {
610
- return 'array';
610
+ return "array";
611
611
  }
612
612
  return typeof value;
613
613
  }
@@ -617,13 +617,13 @@ export function getType(value) {
617
617
  */
618
618
  export function mergeInto(destination, source, circularReferenceChecker) {
619
619
  // ignore the source if it is undefined
620
- if (typeof circularReferenceChecker === 'undefined') {
620
+ if (typeof circularReferenceChecker === "undefined") {
621
621
  circularReferenceChecker = createCircularReferenceChecker();
622
622
  }
623
623
  if (source === undefined) {
624
624
  return destination;
625
625
  }
626
- if (typeof source !== 'object' || source === null) {
626
+ if (typeof source !== "object" || source === null) {
627
627
  // primitive values - just return source
628
628
  return source;
629
629
  } else if (source instanceof Date) {
@@ -631,7 +631,7 @@ export function mergeInto(destination, source, circularReferenceChecker) {
631
631
  } else if (source instanceof RegExp) {
632
632
  var flags = source.flags ||
633
633
  // old browsers compatibility
634
- [source.global ? 'g' : '', source.ignoreCase ? 'i' : '', source.multiline ? 'm' : '', source.sticky ? 'y' : '', source.unicode ? 'u' : ''].join('');
634
+ [source.global ? "g" : "", source.ignoreCase ? "i" : "", source.multiline ? "m" : "", source.sticky ? "y" : "", source.unicode ? "u" : ""].join("");
635
635
  return new RegExp(source.source, flags);
636
636
  }
637
637
  if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {
@@ -644,7 +644,7 @@ export function mergeInto(destination, source, circularReferenceChecker) {
644
644
  }
645
645
  return merged;
646
646
  }
647
- var merged = getType(destination) === 'object' ? destination : {};
647
+ var merged = getType(destination) === "object" ? destination : {};
648
648
  for (var key in source) {
649
649
  if (Object.prototype.hasOwnProperty.call(source, key)) {
650
650
  merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);
@@ -669,10 +669,10 @@ export function defineGlobal(global, name, api) {
669
669
  global[name] = api;
670
670
  }
671
671
  export function getGlobalObject() {
672
- if (typeof globalThis === 'object') {
672
+ if (typeof globalThis === "object") {
673
673
  return globalThis;
674
674
  }
675
- Object.defineProperty(Object.prototype, '_dd_temp_', {
675
+ Object.defineProperty(Object.prototype, "_dd_temp_", {
676
676
  get: function get() {
677
677
  return this;
678
678
  },
@@ -682,12 +682,12 @@ export function getGlobalObject() {
682
682
  var globalObject = _dd_temp_;
683
683
  // @ts-ignore
684
684
  delete Object.prototype._dd_temp_;
685
- if (typeof globalObject !== 'object') {
685
+ if (typeof globalObject !== "object") {
686
686
  // on safari _dd_temp_ is available on window but not globally
687
687
  // fallback on other browser globals check
688
- if (typeof self === 'object') {
688
+ if (typeof self === "object") {
689
689
  globalObject = self;
690
- } else if (typeof window === 'object') {
690
+ } else if (typeof window === "object") {
691
691
  globalObject = window;
692
692
  } else {
693
693
  globalObject = {};
@@ -1,6 +1,6 @@
1
- import { ONE_MINUTE, ONE_HOUR } from '../helper/enums';
2
- import { each, now } from '../helper/utils';
3
- import { LifeCycleEventType } from '../core/lifeCycle';
1
+ import { ONE_MINUTE, ONE_HOUR } from "../helper/enums";
2
+ import { each, now } from "../helper/utils";
3
+ import { LifeCycleEventType } from "../core/lifeCycle";
4
4
  export var VIEW_CONTEXT_TIME_OUT_DELAY = 4 * ONE_HOUR;
5
5
  export var CLEAR_OLD_CONTEXTS_INTERVAL = ONE_MINUTE;
6
6
  export function startParentContexts(lifeCycle) {
@@ -79,6 +79,9 @@ export function startParentContexts(lifeCycle) {
79
79
  if (startTime === undefined) {
80
80
  return currentContext ? buildContext() : undefined;
81
81
  }
82
+ if (currentContext && previousContexts.length == 0) {
83
+ return buildContext();
84
+ }
82
85
  if (currentContext && startTime >= currentContext.startTime) {
83
86
  return buildContext();
84
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/rum-uniapp",
3
- "version": "2.2.7",
3
+ "version": "2.2.9",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "miniprogram": "cjs",