@cloudcare/browser-core 3.1.2 → 3.1.5

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.
Files changed (67) hide show
  1. package/cjs/browser/cookie.js +18 -2
  2. package/cjs/browser/cookie.js.map +1 -1
  3. package/cjs/browser/htmlDomUtils.js +4 -1
  4. package/cjs/browser/htmlDomUtils.js.map +1 -1
  5. package/cjs/configuration/configuration.js +20 -1
  6. package/cjs/configuration/configuration.js.map +1 -1
  7. package/cjs/configuration/transportConfiguration.js +15 -6
  8. package/cjs/configuration/transportConfiguration.js.map +1 -1
  9. package/cjs/dataMap.js +7 -3
  10. package/cjs/dataMap.js.map +1 -1
  11. package/cjs/helper/deviceInfo.js +23 -21
  12. package/cjs/helper/deviceInfo.js.map +1 -1
  13. package/cjs/helper/errorTools.js +2 -1
  14. package/cjs/helper/errorTools.js.map +1 -1
  15. package/cjs/helper/monitor.js +1 -0
  16. package/cjs/helper/monitor.js.map +1 -1
  17. package/cjs/helper/serialisation/rowData.js +7 -5
  18. package/cjs/helper/serialisation/rowData.js.map +1 -1
  19. package/cjs/helper/tools.js +67 -18
  20. package/cjs/helper/tools.js.map +1 -1
  21. package/cjs/transport/batch.js +23 -10
  22. package/cjs/transport/batch.js.map +1 -1
  23. package/cjs/transport/httpRequest.js +31 -12
  24. package/cjs/transport/httpRequest.js.map +1 -1
  25. package/cjs/transport/startBatchWithReplica.js +2 -2
  26. package/cjs/transport/startBatchWithReplica.js.map +1 -1
  27. package/esm/browser/cookie.js +17 -3
  28. package/esm/browser/cookie.js.map +1 -1
  29. package/esm/browser/htmlDomUtils.js +3 -1
  30. package/esm/browser/htmlDomUtils.js.map +1 -1
  31. package/esm/configuration/configuration.js +19 -1
  32. package/esm/configuration/configuration.js.map +1 -1
  33. package/esm/configuration/transportConfiguration.js +15 -6
  34. package/esm/configuration/transportConfiguration.js.map +1 -1
  35. package/esm/dataMap.js +7 -3
  36. package/esm/dataMap.js.map +1 -1
  37. package/esm/helper/deviceInfo.js +23 -21
  38. package/esm/helper/deviceInfo.js.map +1 -1
  39. package/esm/helper/errorTools.js +1 -0
  40. package/esm/helper/errorTools.js.map +1 -1
  41. package/esm/helper/monitor.js +1 -0
  42. package/esm/helper/monitor.js.map +1 -1
  43. package/esm/helper/serialisation/rowData.js +8 -6
  44. package/esm/helper/serialisation/rowData.js.map +1 -1
  45. package/esm/helper/tools.js +63 -17
  46. package/esm/helper/tools.js.map +1 -1
  47. package/esm/transport/batch.js +24 -11
  48. package/esm/transport/batch.js.map +1 -1
  49. package/esm/transport/httpRequest.js +31 -12
  50. package/esm/transport/httpRequest.js.map +1 -1
  51. package/esm/transport/startBatchWithReplica.js +2 -2
  52. package/esm/transport/startBatchWithReplica.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/browser/cookie.js +22 -3
  55. package/src/browser/htmlDomUtils.js +3 -1
  56. package/src/configuration/configuration.js +29 -2
  57. package/src/configuration/transportConfiguration.js +19 -13
  58. package/src/dataMap.js +9 -3
  59. package/src/helper/deviceInfo.js +23 -20
  60. package/src/helper/errorTools.js +1 -0
  61. package/src/helper/monitor.js +1 -0
  62. package/src/helper/serialisation/rowData.js +9 -6
  63. package/src/helper/tools.js +71 -18
  64. package/src/transport/batch.js +28 -12
  65. package/src/transport/httpRequest.js +46 -11
  66. package/src/transport/startBatchWithReplica.js +3 -1
  67. package/src/.DS_Store +0 -0
@@ -1,6 +1,6 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
2
  import { jsonStringify } from './jsonStringify';
3
- import { isString } from '../tools';
3
+ import { isString, isNumber } from '../tools';
4
4
  export function escapeRowData(str) {
5
5
  if (_typeof(str) === 'object' && str) {
6
6
  str = jsonStringify(str);
@@ -12,12 +12,14 @@ export function escapeRowData(str) {
12
12
  return '\\' + word;
13
13
  });
14
14
  }
15
- export function escapeJsonValue(value) {
16
- if (isString(value)) {
17
- return value;
18
- } else {
19
- return jsonStringify(value);
15
+ export function escapeJsonValue(value, isTag) {
16
+ if (_typeof(value) === 'object' && value) {
17
+ value = jsonStringify(value);
18
+ } else if (isTag) {
19
+ // tag json 只能是字符串
20
+ value = '' + value;
20
21
  }
22
+ return value;
21
23
  }
22
24
  export function escapeFieldValueStr(str) {
23
25
  return '"' + str.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"';
@@ -1 +1 @@
1
- {"version":3,"file":"rowData.js","names":["jsonStringify","isString","escapeRowData","str","_typeof","reg","String","replace","word","escapeJsonValue","value","escapeFieldValueStr","escapeRowField"],"sources":["../../../src/helper/serialisation/rowData.js"],"sourcesContent":["import { jsonStringify } from './jsonStringify'\nimport { isString } from '../tools'\nexport function escapeRowData(str) {\n if (typeof str === 'object' && str) {\n str = jsonStringify(str)\n } else if (!isString(str)) {\n return str\n }\n var reg = /[\\s=,\"]/g\n return String(str).replace(reg, function (word) {\n return '\\\\' + word\n })\n}\n\nexport function escapeJsonValue(value) {\n if (isString(value)) {\n return value\n } else {\n return jsonStringify(value)\n }\n}\n\nexport function escapeFieldValueStr(str) {\n return '\"' + str.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'\n}\nexport function escapeRowField(value) {\n if (typeof value === 'object' && value) {\n return escapeFieldValueStr(jsonStringify(value))\n } else if (isString(value)) {\n return escapeFieldValueStr(value)\n } else {\n return value\n }\n}\n"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,QAAQ,QAAQ,UAAU;AACnC,OAAO,SAASC,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAGH,aAAa,CAACG,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAACF,QAAQ,CAACE,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIE,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACH,GAAG,CAAC,CAACI,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,eAAeA,CAACC,KAAK,EAAE;EACrC,IAAIT,QAAQ,CAACS,KAAK,CAAC,EAAE;IACnB,OAAOA,KAAK;EACd,CAAC,MAAM;IACL,OAAOV,aAAa,CAACU,KAAK,CAAC;EAC7B;AACF;AAEA,OAAO,SAASC,mBAAmBA,CAACR,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACA,OAAO,SAASK,cAAcA,CAACF,KAAK,EAAE;EACpC,IAAIN,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOC,mBAAmB,CAACX,aAAa,CAACU,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAIT,QAAQ,CAACS,KAAK,CAAC,EAAE;IAC1B,OAAOC,mBAAmB,CAACD,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"rowData.js","names":["jsonStringify","isString","isNumber","escapeRowData","str","_typeof","reg","String","replace","word","escapeJsonValue","value","isTag","escapeFieldValueStr","escapeRowField"],"sources":["../../../src/helper/serialisation/rowData.js"],"sourcesContent":["import { jsonStringify } from './jsonStringify'\nimport { isString, isNumber } from '../tools'\nexport function escapeRowData(str) {\n if (typeof str === 'object' && str) {\n str = jsonStringify(str)\n } else if (!isString(str)) {\n return str\n }\n var reg = /[\\s=,\"]/g\n return String(str).replace(reg, function (word) {\n return '\\\\' + word\n })\n}\n\nexport function escapeJsonValue(value, isTag) {\n if (typeof value === 'object' && value) {\n value = jsonStringify(value)\n } else if (isTag) {\n // tag json 只能是字符串\n value = '' + value\n }\n\n return value\n}\n\nexport function escapeFieldValueStr(str) {\n return '\"' + str.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'\n}\nexport function escapeRowField(value) {\n if (typeof value === 'object' && value) {\n return escapeFieldValueStr(jsonStringify(value))\n } else if (isString(value)) {\n return escapeFieldValueStr(value)\n } else {\n return value\n }\n}\n"],"mappings":";AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,UAAU;AAC7C,OAAO,SAASC,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIC,OAAA,CAAOD,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAGJ,aAAa,CAACI,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAACH,QAAQ,CAACG,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIE,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACH,GAAG,CAAC,CAACI,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIP,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtCA,KAAK,GAAGX,aAAa,CAACW,KAAK,CAAC;EAC9B,CAAC,MAAM,IAAIC,KAAK,EAAE;IAChB;IACAD,KAAK,GAAG,EAAE,GAAGA,KAAK;EACpB;EAEA,OAAOA,KAAK;AACd;AAEA,OAAO,SAASE,mBAAmBA,CAACT,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACA,OAAO,SAASM,cAAcA,CAACH,KAAK,EAAE;EACpC,IAAIN,OAAA,CAAOM,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOE,mBAAmB,CAACb,aAAa,CAACW,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAIV,QAAQ,CAACU,KAAK,CAAC,EAAE;IAC1B,OAAOE,mBAAmB,CAACF,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF"}
@@ -226,6 +226,7 @@ export var matchList = function matchList(list, value, useStartsWith) {
226
226
  } catch (e) {
227
227
  display.error(e);
228
228
  }
229
+ return false;
229
230
  });
230
231
  };
231
232
  // https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js
@@ -1345,9 +1346,34 @@ export function getNavigationStart() {
1345
1346
  }
1346
1347
  return navigationStart;
1347
1348
  }
1349
+ var COMMA_SEPARATED_KEY_VALUE = /([\w-]+)\s*=\s*([^;]+)/g;
1348
1350
  export function findCommaSeparatedValue(rawString, name) {
1349
- var matches = rawString.match('(?:^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
1350
- return matches ? matches[1] : undefined;
1351
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
1352
+ // eslint-disable-next-line no-constant-condition
1353
+ while (true) {
1354
+ var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
1355
+ if (match) {
1356
+ if (match[1] === name) {
1357
+ return match[2];
1358
+ }
1359
+ } else {
1360
+ break;
1361
+ }
1362
+ }
1363
+ }
1364
+ export function findCommaSeparatedValues(rawString) {
1365
+ var result = new Map();
1366
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
1367
+ // eslint-disable-next-line no-constant-condition
1368
+ while (true) {
1369
+ var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
1370
+ if (match) {
1371
+ result.set(match[1], match[2]);
1372
+ } else {
1373
+ break;
1374
+ }
1375
+ }
1376
+ return result;
1351
1377
  }
1352
1378
  export function findByPath(source, path) {
1353
1379
  var pathArr = path.split('.');
@@ -1417,27 +1443,47 @@ export function isPercentage(value) {
1417
1443
  export function getLocationOrigin() {
1418
1444
  return getLinkElementOrigin(window.location);
1419
1445
  }
1420
- var browserIsIE;
1446
+ export var Browser = {
1447
+ IE: 0,
1448
+ CHROMIUM: 1,
1449
+ SAFARI: 2,
1450
+ OTHER: 3
1451
+ };
1421
1452
  export function isIE() {
1422
- if (browserIsIE === undefined) {
1423
- browserIsIE = Boolean(document.documentMode);
1424
- }
1425
- return browserIsIE;
1453
+ return detectBrowserCached() === Browser.IE;
1426
1454
  }
1427
- var browserIsChromium;
1428
1455
  export function isChromium() {
1429
- if (browserIsChromium === undefined) {
1430
- browserIsChromium = !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent);
1431
- }
1432
- return browserIsChromium;
1456
+ return detectBrowserCached() === Browser.CHROMIUM;
1433
1457
  }
1434
- var browserIsSafari;
1435
1458
  export function isSafari() {
1436
- if (browserIsSafari === undefined) {
1437
- browserIsSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
1438
- }
1439
- return browserIsSafari;
1459
+ return detectBrowserCached() === Browser.SAFARI;
1460
+ }
1461
+ var browserCache;
1462
+ function detectBrowserCached() {
1463
+ return isNullUndefinedDefaultValue(browserCache, browserCache = detectBrowser());
1440
1464
  }
1465
+ export function detectBrowser(browserWindow) {
1466
+ var _browserWindow$naviga;
1467
+ if (typeof browserWindow === 'undefined') {
1468
+ browserWindow = window;
1469
+ }
1470
+ var userAgent = browserWindow.navigator.userAgent;
1471
+ if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {
1472
+ return Browser.CHROMIUM;
1473
+ }
1474
+ if (
1475
+ // navigator.vendor is deprecated, but it is the most resilient way we found to detect
1476
+ // "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
1477
+ // useragent test as a semi-working fallback.
1478
+ ((_browserWindow$naviga = browserWindow.navigator.vendor) === null || _browserWindow$naviga === void 0 ? void 0 : _browserWindow$naviga.indexOf('Apple')) === 0 || /safari/i.test(userAgent) && !/chrome|android/i.test(userAgent)) {
1479
+ return Browser.SAFARI;
1480
+ }
1481
+ if (browserWindow.document.documentMode) {
1482
+ return Browser.IE;
1483
+ }
1484
+ return Browser.OTHER;
1485
+ }
1486
+
1441
1487
  /**
1442
1488
  * IE fallback
1443
1489
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin