@cloudcare/browser-core 3.2.19 → 3.2.24

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 (171) hide show
  1. package/cjs/browser/addEventListener.js +4 -2
  2. package/cjs/browser/addEventListener.js.map +1 -1
  3. package/cjs/browser/asyncClocks.js +68 -0
  4. package/cjs/browser/asyncClocks.js.map +1 -0
  5. package/cjs/browser/pageExitObservable.js +1 -2
  6. package/cjs/browser/pageExitObservable.js.map +1 -1
  7. package/cjs/configuration/configuration.js +1 -2
  8. package/cjs/configuration/configuration.js.map +1 -1
  9. package/cjs/configuration/remoteConfiguration.js +214 -0
  10. package/cjs/configuration/remoteConfiguration.js.map +1 -0
  11. package/cjs/configuration/transportConfiguration.js +1 -0
  12. package/cjs/configuration/transportConfiguration.js.map +1 -1
  13. package/cjs/dataMap.js +4 -7
  14. package/cjs/dataMap.js.map +1 -1
  15. package/cjs/helper/byteUtils.js +2 -4
  16. package/cjs/helper/byteUtils.js.map +1 -1
  17. package/cjs/helper/createEventRateLimiter.js.map +1 -1
  18. package/cjs/helper/deviceInfo.js +11 -7
  19. package/cjs/helper/deviceInfo.js.map +1 -1
  20. package/cjs/helper/display.js +4 -8
  21. package/cjs/helper/display.js.map +1 -1
  22. package/cjs/helper/encoder.js.map +1 -1
  23. package/cjs/helper/enums.js +11 -22
  24. package/cjs/helper/enums.js.map +1 -1
  25. package/cjs/helper/errorTools.js +2 -4
  26. package/cjs/helper/errorTools.js.map +1 -1
  27. package/cjs/helper/eventEmitter.js +1 -2
  28. package/cjs/helper/eventEmitter.js.map +1 -1
  29. package/cjs/helper/getZoneJsOriginalValue.js +2 -1
  30. package/cjs/helper/getZoneJsOriginalValue.js.map +1 -1
  31. package/cjs/helper/instrumentMethod.js.map +1 -1
  32. package/cjs/helper/lifeCycle.js +1 -2
  33. package/cjs/helper/lifeCycle.js.map +1 -1
  34. package/cjs/helper/limitModification.js +7 -7
  35. package/cjs/helper/limitModification.js.map +1 -1
  36. package/cjs/helper/mobileUtil.js +5 -10
  37. package/cjs/helper/mobileUtil.js.map +1 -1
  38. package/cjs/helper/observable.js +1 -2
  39. package/cjs/helper/observable.js.map +1 -1
  40. package/cjs/helper/requestIdleCallback.js +1 -2
  41. package/cjs/helper/requestIdleCallback.js.map +1 -1
  42. package/cjs/helper/sanitize.js +1 -1
  43. package/cjs/helper/sanitize.js.map +1 -1
  44. package/cjs/helper/serialisation/const.js +1 -2
  45. package/cjs/helper/serialisation/const.js.map +1 -1
  46. package/cjs/helper/serialisation/contextManager.js +15 -15
  47. package/cjs/helper/serialisation/contextManager.js.map +1 -1
  48. package/cjs/helper/serialisation/customerDataTracker.js +4 -8
  49. package/cjs/helper/serialisation/customerDataTracker.js.map +1 -1
  50. package/cjs/helper/serialisation/jsonStringify.js +1 -1
  51. package/cjs/helper/serialisation/jsonStringify.js.map +1 -1
  52. package/cjs/helper/serialisation/rowData.js +1 -1
  53. package/cjs/helper/serialisation/rowData.js.map +1 -1
  54. package/cjs/helper/taskQueue.js +1 -2
  55. package/cjs/helper/taskQueue.js.map +1 -1
  56. package/cjs/helper/tools.js +74 -145
  57. package/cjs/helper/tools.js.map +1 -1
  58. package/cjs/helper/valueHistory.js +20 -8
  59. package/cjs/helper/valueHistory.js.map +1 -1
  60. package/cjs/index.js +12 -0
  61. package/cjs/index.js.map +1 -1
  62. package/cjs/init.js +1 -1
  63. package/cjs/init.js.map +1 -1
  64. package/cjs/report/reportObservable.js +1 -2
  65. package/cjs/report/reportObservable.js.map +1 -1
  66. package/cjs/session/sessionConstants.js +3 -6
  67. package/cjs/session/sessionConstants.js.map +1 -1
  68. package/cjs/session/sessionInCookie.js.map +1 -1
  69. package/cjs/session/sessionManagement.js +1 -2
  70. package/cjs/session/sessionManagement.js.map +1 -1
  71. package/cjs/session/sessionState.js +6 -7
  72. package/cjs/session/sessionState.js.map +1 -1
  73. package/cjs/session/sessionStore.js +2 -3
  74. package/cjs/session/sessionStore.js.map +1 -1
  75. package/cjs/session/sessionStoreOperations.js +6 -8
  76. package/cjs/session/sessionStoreOperations.js.map +1 -1
  77. package/cjs/synthetics/syntheticsWorkerValues.js +3 -6
  78. package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
  79. package/cjs/telemetry/telemetry.js +1 -2
  80. package/cjs/telemetry/telemetry.js.map +1 -1
  81. package/cjs/telemetry/types.js +2 -4
  82. package/cjs/telemetry/types.js.map +1 -1
  83. package/cjs/tracekit/computeStackTrace.js +2 -4
  84. package/cjs/tracekit/computeStackTrace.js.map +1 -1
  85. package/cjs/tracekit/tracekit.js.map +1 -1
  86. package/cjs/transport/batch.js +1 -3
  87. package/cjs/transport/batch.js.map +1 -1
  88. package/cjs/transport/eventBridge.js +36 -3
  89. package/cjs/transport/eventBridge.js.map +1 -1
  90. package/cjs/transport/flushController.js.map +1 -1
  91. package/cjs/transport/httpRequest.js.map +1 -1
  92. package/cjs/transport/index.js +12 -0
  93. package/cjs/transport/index.js.map +1 -1
  94. package/cjs/transport/sendWithRetryStrategy.js +5 -10
  95. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  96. package/cjs/transport/startBatchWithReplica.js.map +1 -1
  97. package/esm/browser/addEventListener.js +4 -2
  98. package/esm/browser/addEventListener.js.map +1 -1
  99. package/esm/browser/asyncClocks.js +60 -0
  100. package/esm/browser/asyncClocks.js.map +1 -0
  101. package/esm/configuration/remoteConfiguration.js +205 -0
  102. package/esm/configuration/remoteConfiguration.js.map +1 -0
  103. package/esm/configuration/transportConfiguration.js +1 -1
  104. package/esm/configuration/transportConfiguration.js.map +1 -1
  105. package/esm/dataMap.js +1 -1
  106. package/esm/dataMap.js.map +1 -1
  107. package/esm/helper/createEventRateLimiter.js.map +1 -1
  108. package/esm/helper/deviceInfo.js +10 -5
  109. package/esm/helper/deviceInfo.js.map +1 -1
  110. package/esm/helper/encoder.js.map +1 -1
  111. package/esm/helper/eventEmitter.js.map +1 -1
  112. package/esm/helper/getZoneJsOriginalValue.js +2 -1
  113. package/esm/helper/getZoneJsOriginalValue.js.map +1 -1
  114. package/esm/helper/instrumentMethod.js.map +1 -1
  115. package/esm/helper/lifeCycle.js.map +1 -1
  116. package/esm/helper/limitModification.js +7 -7
  117. package/esm/helper/mobileUtil.js.map +1 -1
  118. package/esm/helper/observable.js.map +1 -1
  119. package/esm/helper/requestIdleCallback.js.map +1 -1
  120. package/esm/helper/sanitize.js +1 -1
  121. package/esm/helper/serialisation/contextManager.js +15 -15
  122. package/esm/helper/serialisation/contextManager.js.map +1 -1
  123. package/esm/helper/serialisation/customerDataTracker.js.map +1 -1
  124. package/esm/helper/serialisation/jsonStringify.js +1 -1
  125. package/esm/helper/serialisation/rowData.js +1 -1
  126. package/esm/helper/taskQueue.js.map +1 -1
  127. package/esm/helper/tools.js +10 -8
  128. package/esm/helper/tools.js.map +1 -1
  129. package/esm/helper/valueHistory.js +19 -6
  130. package/esm/helper/valueHistory.js.map +1 -1
  131. package/esm/index.js +1 -0
  132. package/esm/index.js.map +1 -1
  133. package/esm/init.js +1 -1
  134. package/esm/init.js.map +1 -1
  135. package/esm/session/sessionInCookie.js.map +1 -1
  136. package/esm/session/sessionManagement.js.map +1 -1
  137. package/esm/session/sessionState.js +5 -5
  138. package/esm/session/sessionStore.js +1 -1
  139. package/esm/session/sessionStore.js.map +1 -1
  140. package/esm/session/sessionStoreOperations.js +4 -4
  141. package/esm/session/sessionStoreOperations.js.map +1 -1
  142. package/esm/telemetry/telemetry.js.map +1 -1
  143. package/esm/tracekit/computeStackTrace.js +2 -4
  144. package/esm/tracekit/computeStackTrace.js.map +1 -1
  145. package/esm/tracekit/tracekit.js.map +1 -1
  146. package/esm/transport/batch.js +0 -1
  147. package/esm/transport/batch.js.map +1 -1
  148. package/esm/transport/eventBridge.js +34 -3
  149. package/esm/transport/eventBridge.js.map +1 -1
  150. package/esm/transport/flushController.js.map +1 -1
  151. package/esm/transport/httpRequest.js.map +1 -1
  152. package/esm/transport/index.js +1 -1
  153. package/esm/transport/index.js.map +1 -1
  154. package/esm/transport/sendWithRetryStrategy.js.map +1 -1
  155. package/esm/transport/startBatchWithReplica.js.map +1 -1
  156. package/package.json +24 -24
  157. package/src/browser/addEventListener.js +7 -2
  158. package/src/browser/asyncClocks.js +69 -0
  159. package/src/configuration/remoteConfiguration.js +213 -0
  160. package/src/configuration/transportConfiguration.js +1 -1
  161. package/src/dataMap.js +1 -0
  162. package/src/helper/deviceInfo.js +6 -1
  163. package/src/helper/getZoneJsOriginalValue.js +2 -1
  164. package/src/helper/valueHistory.js +18 -6
  165. package/src/index.js +1 -0
  166. package/src/session/sessionStore.js +1 -1
  167. package/src/session/sessionStoreOperations.js +4 -16
  168. package/src/tracekit/computeStackTrace.js +2 -1
  169. package/src/transport/eventBridge.js +56 -4
  170. package/src/transport/index.js +6 -1
  171. package/types/index.d.ts +8 -0
@@ -8,18 +8,18 @@ var _tools = require("../tools");
8
8
  var _sanitize = require("../sanitize");
9
9
  var _observable = require("../observable");
10
10
  var _display = require("../display");
11
- 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); }
12
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
13
13
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
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
- 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; }
16
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
17
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
22
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
18
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
21
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
23
23
  function ensureProperties(context, propertiesConfig, name) {
24
24
  var newContext = _objectSpread({}, context);
25
25
  for (var _i = 0, _Object$entries = Object.entries(propertiesConfig); _i < _Object$entries.length; _i++) {
@@ -55,7 +55,7 @@ function createContextManager() {
55
55
  setContext: function setContext(newContext) {
56
56
  if ((0, _tools.getType)(newContext) === 'object') {
57
57
  context = (0, _sanitize.sanitize)(ensureProperties(newContext, propertiesConfig, name));
58
- customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);
58
+ customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
59
59
  } else {
60
60
  contextManager.clearContext();
61
61
  }
@@ -63,18 +63,18 @@ function createContextManager() {
63
63
  },
64
64
  setContextProperty: function setContextProperty(key, property) {
65
65
  context[key] = (0, _sanitize.sanitize)(ensureProperties(_defineProperty({}, key, property), propertiesConfig, name)[key]);
66
- customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);
66
+ customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
67
67
  changeObservable.notify();
68
68
  },
69
69
  removeContextProperty: function removeContextProperty(key) {
70
70
  delete context[key];
71
- customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.updateCustomerData(context);
71
+ customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.updateCustomerData(context);
72
72
  ensureProperties(context, propertiesConfig, name);
73
73
  changeObservable.notify();
74
74
  },
75
75
  clearContext: function clearContext() {
76
76
  context = {};
77
- customerDataTracker === null || customerDataTracker === void 0 ? void 0 : customerDataTracker.resetCustomerData();
77
+ customerDataTracker === null || customerDataTracker === void 0 || customerDataTracker.resetCustomerData();
78
78
  changeObservable.notify();
79
79
  },
80
80
  changeObservable: changeObservable
@@ -1 +1 @@
1
- {"version":3,"file":"contextManager.js","names":["_tools","require","_sanitize","_observable","_display","_typeof","obj","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","ensureProperties","context","propertiesConfig","newContext","_Object$entries","entries","_Object$entries$_i","_Object$entries$_i$","required","type","display","warn","concat","createContextManager","_ref","customerDataTracker","_ref$propertiesConfig","changeObservable","Observable","contextManager","getContext","deepClone","setContext","getType","sanitize","updateCustomerData","clearContext","notify","setContextProperty","property","removeContextProperty","resetCustomerData"],"sources":["../../../src/helper/serialisation/contextManager.js"],"sourcesContent":["import { deepClone, getType } from '../tools'\nimport { sanitize } from '../sanitize'\nimport { Observable } from '../observable'\nimport { display } from '../display'\n\nfunction ensureProperties(context, propertiesConfig, name) {\n const newContext = { ...context }\n\n for (const [key, { required, type }] of Object.entries(propertiesConfig)) {\n /**\n * Ensure specified properties are strings as defined here:\n */\n if (type === 'string' && key in newContext) {\n newContext[key] = String(newContext[key])\n }\n\n if (required && !(key in context)) {\n display.warn(\n `The property ${key} of ${name} context is required; context will not be sent to the intake.`\n )\n }\n }\n\n return newContext\n}\n\nexport function createContextManager(\n name = '',\n { customerDataTracker, propertiesConfig = {} } = {}\n) {\n let context = {}\n const changeObservable = new Observable()\n\n const contextManager = {\n getContext: () => deepClone(context),\n\n setContext: (newContext) => {\n if (getType(newContext) === 'object') {\n context = sanitize(ensureProperties(newContext, propertiesConfig, name))\n customerDataTracker?.updateCustomerData(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: (key, property) => {\n context[key] = sanitize(\n ensureProperties({ [key]: property }, propertiesConfig, name)[key]\n )\n customerDataTracker?.updateCustomerData(context)\n changeObservable.notify()\n },\n\n removeContextProperty: (key) => {\n delete context[key]\n customerDataTracker?.updateCustomerData(context)\n ensureProperties(context, propertiesConfig, name)\n changeObservable.notify()\n },\n\n clearContext: () => {\n context = {}\n customerDataTracker?.resetCustomerData()\n changeObservable.notify()\n },\n\n changeObservable\n }\n return contextManager\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"contextManager.js","names":["_tools","require","_sanitize","_observable","_display","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","name","Array","from","test","length","n","l","i","u","f","next","Object","done","push","value","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","ensureProperties","context","propertiesConfig","newContext","_i","_Object$entries","entries","_Object$entries$_i","key","_Object$entries$_i$","required","type","display","warn","concat","createContextManager","undefined","_ref","customerDataTracker","_ref$propertiesConfig","changeObservable","Observable","contextManager","getContext","deepClone","setContext","getType","sanitize","updateCustomerData","clearContext","notify","setContextProperty","property","removeContextProperty","resetCustomerData"],"sources":["../../../src/helper/serialisation/contextManager.js"],"sourcesContent":["import { deepClone, getType } from '../tools'\nimport { sanitize } from '../sanitize'\nimport { Observable } from '../observable'\nimport { display } from '../display'\n\nfunction ensureProperties(context, propertiesConfig, name) {\n const newContext = { ...context }\n\n for (const [key, { required, type }] of Object.entries(propertiesConfig)) {\n /**\n * Ensure specified properties are strings as defined here:\n */\n if (type === 'string' && key in newContext) {\n newContext[key] = String(newContext[key])\n }\n\n if (required && !(key in context)) {\n display.warn(\n `The property ${key} of ${name} context is required; context will not be sent to the intake.`\n )\n }\n }\n\n return newContext\n}\n\nexport function createContextManager(\n name = '',\n { customerDataTracker, propertiesConfig = {} } = {}\n) {\n let context = {}\n const changeObservable = new Observable()\n\n const contextManager = {\n getContext: () => deepClone(context),\n\n setContext: (newContext) => {\n if (getType(newContext) === 'object') {\n context = sanitize(ensureProperties(newContext, propertiesConfig, name))\n customerDataTracker?.updateCustomerData(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: (key, property) => {\n context[key] = sanitize(\n ensureProperties({ [key]: property }, propertiesConfig, name)[key]\n )\n customerDataTracker?.updateCustomerData(context)\n changeObservable.notify()\n },\n\n removeContextProperty: (key) => {\n delete context[key]\n customerDataTracker?.updateCustomerData(context)\n ensureProperties(context, propertiesConfig, name)\n changeObservable.notify()\n },\n\n clearContext: () => {\n context = {}\n customerDataTracker?.resetCustomerData()\n changeObservable.notify()\n },\n\n changeObservable\n }\n return contextManager\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,23 +13,19 @@ var _display = require("../display");
13
13
  // RUM and logs batch bytes limit is 16KB
14
14
  // ensure that we leave room for other event attributes and maintain a decent amount of event per batch
15
15
  // (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB
16
- var CUSTOMER_DATA_BYTES_LIMIT = 3 * _byteUtils.ONE_KIBI_BYTE;
16
+ var CUSTOMER_DATA_BYTES_LIMIT = exports.CUSTOMER_DATA_BYTES_LIMIT = 3 * _byteUtils.ONE_KIBI_BYTE;
17
17
 
18
18
  // We observed that the compression ratio is around 8 in general, but we also want to keep a margin
19
19
  // because some data might not be compressed (ex: last view update on page exit). We chose 16KiB
20
20
  // because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this
21
21
  // is a bit arbitrary.
22
- exports.CUSTOMER_DATA_BYTES_LIMIT = CUSTOMER_DATA_BYTES_LIMIT;
23
- var CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * _byteUtils.ONE_KIBI_BYTE;
24
- exports.CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT;
25
- var BYTES_COMPUTATION_THROTTLING_DELAY = 200;
26
- exports.BYTES_COMPUTATION_THROTTLING_DELAY = BYTES_COMPUTATION_THROTTLING_DELAY;
27
- var CustomerDataCompressionStatus = {
22
+ var CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = exports.CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * _byteUtils.ONE_KIBI_BYTE;
23
+ var BYTES_COMPUTATION_THROTTLING_DELAY = exports.BYTES_COMPUTATION_THROTTLING_DELAY = 200;
24
+ var CustomerDataCompressionStatus = exports.CustomerDataCompressionStatus = {
28
25
  Unknown: 0,
29
26
  Enabled: 1,
30
27
  Disabled: 2
31
28
  };
32
- exports.CustomerDataCompressionStatus = CustomerDataCompressionStatus;
33
29
  function createCustomerDataTrackerManager() {
34
30
  var compressionStatus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : CustomerDataCompressionStatus.Disabled;
35
31
  var customerDataTrackers = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"customerDataTracker.js","names":["_byteUtils","require","_tools","_jsonStringify","_display","CUSTOMER_DATA_BYTES_LIMIT","ONE_KIBI_BYTE","exports","CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT","BYTES_COMPUTATION_THROTTLING_DELAY","CustomerDataCompressionStatus","Unknown","Enabled","Disabled","createCustomerDataTrackerManager","compressionStatus","arguments","length","undefined","customerDataTrackers","Map","alreadyWarned","checkCustomerDataLimit","initialBytesCount","bytesCountLimit","bytesCount","forEach","tracker","getBytesCount","displayCustomerDataLimitReachedWarning","createDetachedTracker","createCustomerDataTracker","getOrCreateTracker","type","has","set","get","setCompressionStatus","newCompressionStatus","getCompressionStatus","stop","clear","bytesCountCache","_throttle","throttle","context","computeBytesCount","jsonStringify","computeBytesCountThrottled","throttled","cancelComputeBytesCount","cancel","resetBytesCount","updateCustomerData","isEmptyObject","resetCustomerData","display","warn","concat"],"sources":["../../../src/helper/serialisation/customerDataTracker.js"],"sourcesContent":["import { ONE_KIBI_BYTE, computeBytesCount } from '../byteUtils'\nimport { throttle, isEmptyObject } from '../tools'\nimport { jsonStringify } from './jsonStringify'\nimport { display } from '../display'\n\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE\n\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport const CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE\n\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport const CustomerDataCompressionStatus = {\n Unknown: 0,\n Enabled: 1,\n Disabled: 2\n}\n\nexport function createCustomerDataTrackerManager(\n compressionStatus = CustomerDataCompressionStatus.Disabled\n) {\n const customerDataTrackers = new Map()\n\n let alreadyWarned = false\n function checkCustomerDataLimit(initialBytesCount = 0) {\n if (\n alreadyWarned ||\n compressionStatus === CustomerDataCompressionStatus.Unknown\n ) {\n return\n }\n\n const bytesCountLimit =\n compressionStatus === CustomerDataCompressionStatus.Disabled\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT\n\n let bytesCount = initialBytesCount\n customerDataTrackers.forEach((tracker) => {\n bytesCount += tracker.getBytesCount()\n })\n\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit)\n alreadyWarned = true\n }\n }\n\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: () => {\n const tracker = createCustomerDataTracker(() =>\n checkCustomerDataLimit(tracker.getBytesCount())\n )\n return tracker\n },\n\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: (type) => {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(\n type,\n createCustomerDataTracker(checkCustomerDataLimit)\n )\n }\n return customerDataTrackers.get(type)\n },\n\n setCompressionStatus: (newCompressionStatus) => {\n if (compressionStatus === CustomerDataCompressionStatus.Unknown) {\n compressionStatus = newCompressionStatus\n checkCustomerDataLimit()\n }\n },\n\n getCompressionStatus: () => compressionStatus,\n\n stop: () => {\n customerDataTrackers.forEach((tracker) => tracker.stop())\n customerDataTrackers.clear()\n }\n }\n}\n\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n let bytesCountCache = 0\n\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n const {\n throttled: computeBytesCountThrottled,\n cancel: cancelComputeBytesCount\n } = throttle((context) => {\n bytesCountCache = computeBytesCount(jsonStringify(context))\n checkCustomerDataLimit()\n }, BYTES_COMPUTATION_THROTTLING_DELAY)\n\n const resetBytesCount = () => {\n cancelComputeBytesCount()\n bytesCountCache = 0\n }\n\n return {\n updateCustomerData: (context) => {\n if (isEmptyObject(context)) {\n resetBytesCount()\n } else {\n computeBytesCountThrottled(context)\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: () => bytesCountCache,\n stop: () => {\n cancelComputeBytesCount()\n }\n }\n}\n\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(\n `Customer data exceeds the recommended ${\n bytesCountLimit / ONE_KIBI_BYTE\n }KiB threshold.`\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"customerDataTracker.js","names":["_byteUtils","require","_tools","_jsonStringify","_display","CUSTOMER_DATA_BYTES_LIMIT","exports","ONE_KIBI_BYTE","CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT","BYTES_COMPUTATION_THROTTLING_DELAY","CustomerDataCompressionStatus","Unknown","Enabled","Disabled","createCustomerDataTrackerManager","compressionStatus","arguments","length","undefined","customerDataTrackers","Map","alreadyWarned","checkCustomerDataLimit","initialBytesCount","bytesCountLimit","bytesCount","forEach","tracker","getBytesCount","displayCustomerDataLimitReachedWarning","createDetachedTracker","createCustomerDataTracker","getOrCreateTracker","type","has","set","get","setCompressionStatus","newCompressionStatus","getCompressionStatus","stop","clear","bytesCountCache","_throttle","throttle","context","computeBytesCount","jsonStringify","computeBytesCountThrottled","throttled","cancelComputeBytesCount","cancel","resetBytesCount","updateCustomerData","isEmptyObject","resetCustomerData","display","warn","concat"],"sources":["../../../src/helper/serialisation/customerDataTracker.js"],"sourcesContent":["import { ONE_KIBI_BYTE, computeBytesCount } from '../byteUtils'\nimport { throttle, isEmptyObject } from '../tools'\nimport { jsonStringify } from './jsonStringify'\nimport { display } from '../display'\n\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE\n\n// We observed that the compression ratio is around 8 in general, but we also want to keep a margin\n// because some data might not be compressed (ex: last view update on page exit). We chose 16KiB\n// because it is also the limit of the 'batchBytesCount' that we use for RUM and Logs data, but this\n// is a bit arbitrary.\nexport const CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT = 16 * ONE_KIBI_BYTE\n\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport const CustomerDataCompressionStatus = {\n Unknown: 0,\n Enabled: 1,\n Disabled: 2\n}\n\nexport function createCustomerDataTrackerManager(\n compressionStatus = CustomerDataCompressionStatus.Disabled\n) {\n const customerDataTrackers = new Map()\n\n let alreadyWarned = false\n function checkCustomerDataLimit(initialBytesCount = 0) {\n if (\n alreadyWarned ||\n compressionStatus === CustomerDataCompressionStatus.Unknown\n ) {\n return\n }\n\n const bytesCountLimit =\n compressionStatus === CustomerDataCompressionStatus.Disabled\n ? CUSTOMER_DATA_BYTES_LIMIT\n : CUSTOMER_COMPRESSED_DATA_BYTES_LIMIT\n\n let bytesCount = initialBytesCount\n customerDataTrackers.forEach((tracker) => {\n bytesCount += tracker.getBytesCount()\n })\n\n if (bytesCount > bytesCountLimit) {\n displayCustomerDataLimitReachedWarning(bytesCountLimit)\n alreadyWarned = true\n }\n }\n\n return {\n /**\n * Creates a detached tracker. The manager will not store a reference to that tracker, and the\n * bytes count will be counted independently from other detached trackers.\n *\n * This is particularly useful when we don't know when the tracker will be unused, so we don't\n * leak memory (ex: when used in Logger instances).\n */\n createDetachedTracker: () => {\n const tracker = createCustomerDataTracker(() =>\n checkCustomerDataLimit(tracker.getBytesCount())\n )\n return tracker\n },\n\n /**\n * Creates a tracker if it doesn't exist, and returns it.\n */\n getOrCreateTracker: (type) => {\n if (!customerDataTrackers.has(type)) {\n customerDataTrackers.set(\n type,\n createCustomerDataTracker(checkCustomerDataLimit)\n )\n }\n return customerDataTrackers.get(type)\n },\n\n setCompressionStatus: (newCompressionStatus) => {\n if (compressionStatus === CustomerDataCompressionStatus.Unknown) {\n compressionStatus = newCompressionStatus\n checkCustomerDataLimit()\n }\n },\n\n getCompressionStatus: () => compressionStatus,\n\n stop: () => {\n customerDataTrackers.forEach((tracker) => tracker.stop())\n customerDataTrackers.clear()\n }\n }\n}\n\nexport function createCustomerDataTracker(checkCustomerDataLimit) {\n let bytesCountCache = 0\n\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n const {\n throttled: computeBytesCountThrottled,\n cancel: cancelComputeBytesCount\n } = throttle((context) => {\n bytesCountCache = computeBytesCount(jsonStringify(context))\n checkCustomerDataLimit()\n }, BYTES_COMPUTATION_THROTTLING_DELAY)\n\n const resetBytesCount = () => {\n cancelComputeBytesCount()\n bytesCountCache = 0\n }\n\n return {\n updateCustomerData: (context) => {\n if (isEmptyObject(context)) {\n resetBytesCount()\n } else {\n computeBytesCountThrottled(context)\n }\n },\n resetCustomerData: resetBytesCount,\n getBytesCount: () => bytesCountCache,\n stop: () => {\n cancelComputeBytesCount()\n }\n }\n}\n\nfunction displayCustomerDataLimitReachedWarning(bytesCountLimit) {\n display.warn(\n `Customer data exceeds the recommended ${\n bytesCountLimit / ONE_KIBI_BYTE\n }KiB threshold.`\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.detachToJsonMethod = detachToJsonMethod;
7
7
  exports.jsonStringify = jsonStringify;
8
8
  var _tools = require("../tools");
9
- 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); }
9
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
10
  /**
11
11
  * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that
12
12
  * because some sites badly override toJSON on certain objects. Removing all toJSON methods from
@@ -1 +1 @@
1
- {"version":3,"file":"jsonStringify.js","names":["_tools","require","_typeof","obj","Symbol","iterator","constructor","prototype","jsonStringify","value","replacer","space","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","Object","restoreArrayPrototypeToJson","Array","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","_unused","object","objectToJson","toJSON","noop"],"sources":["../../../src/helper/serialisation/jsonStringify.js"],"sourcesContent":["import { noop } from '../tools'\n\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value)\n }\n\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n var restoreValuePrototypeToJson = detachToJsonMethod(\n Object.getPrototypeOf(value)\n )\n var restoreValueToJson = detachToJsonMethod(value)\n\n try {\n return JSON.stringify(value, replacer, space)\n } catch {\n return '<error: unable to serialize object>'\n } finally {\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n restoreValuePrototypeToJson()\n restoreValueToJson()\n }\n}\n\nexport function detachToJsonMethod(value) {\n const object = value\n const objectToJson = object.toJSON\n if (objectToJson) {\n delete object.toJSON\n return function () {\n object.toJSON = objectToJson\n }\n }\n return noop\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA+B,SAAAC,QAAAC,GAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAC,MAAA,IAAAD,GAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,GAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,GAAA,KAAAD,OAAA,CAAAC,GAAA;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,aAAaA,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAE;EACpD,IAAIT,OAAA,CAAOO,KAAK,MAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAOG,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC;EAC9B;;EAEA;EACA;EACA,IAAIK,4BAA4B,GAAGC,kBAAkB,CAACC,MAAM,CAACT,SAAS,CAAC;EACvE,IAAIU,2BAA2B,GAAGF,kBAAkB,CAACG,KAAK,CAACX,SAAS,CAAC;EACrE,IAAIY,2BAA2B,GAAGJ,kBAAkB,CAClDC,MAAM,CAACI,cAAc,CAACX,KAAK,CAC7B,CAAC;EACD,IAAIY,kBAAkB,GAAGN,kBAAkB,CAACN,KAAK,CAAC;EAElD,IAAI;IACF,OAAOG,IAAI,CAACC,SAAS,CAACJ,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EAC/C,CAAC,CAAC,OAAAW,OAAA,EAAM;IACN,OAAO,qCAAqC;EAC9C,CAAC,SAAS;IACRR,4BAA4B,CAAC,CAAC;IAC9BG,2BAA2B,CAAC,CAAC;IAC7BE,2BAA2B,CAAC,CAAC;IAC7BE,kBAAkB,CAAC,CAAC;EACtB;AACF;AAEO,SAASN,kBAAkBA,CAACN,KAAK,EAAE;EACxC,IAAMc,MAAM,GAAGd,KAAK;EACpB,IAAMe,YAAY,GAAGD,MAAM,CAACE,MAAM;EAClC,IAAID,YAAY,EAAE;IAChB,OAAOD,MAAM,CAACE,MAAM;IACpB,OAAO,YAAY;MACjBF,MAAM,CAACE,MAAM,GAAGD,YAAY;IAC9B,CAAC;EACH;EACA,OAAOE,WAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"jsonStringify.js","names":["_tools","require","_typeof","o","Symbol","iterator","constructor","prototype","jsonStringify","value","replacer","space","JSON","stringify","restoreObjectPrototypeToJson","detachToJsonMethod","Object","restoreArrayPrototypeToJson","Array","restoreValuePrototypeToJson","getPrototypeOf","restoreValueToJson","_unused","object","objectToJson","toJSON","noop"],"sources":["../../../src/helper/serialisation/jsonStringify.js"],"sourcesContent":["import { noop } from '../tools'\n\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value)\n }\n\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n var restoreValuePrototypeToJson = detachToJsonMethod(\n Object.getPrototypeOf(value)\n )\n var restoreValueToJson = detachToJsonMethod(value)\n\n try {\n return JSON.stringify(value, replacer, space)\n } catch {\n return '<error: unable to serialize object>'\n } finally {\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n restoreValuePrototypeToJson()\n restoreValueToJson()\n }\n}\n\nexport function detachToJsonMethod(value) {\n const object = value\n const objectToJson = object.toJSON\n if (objectToJson) {\n delete object.toJSON\n return function () {\n object.toJSON = objectToJson\n }\n }\n return noop\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAA+B,SAAAC,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,aAAaA,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,EAAE;EACpD,IAAIT,OAAA,CAAOO,KAAK,MAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAOG,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC;EAC9B;;EAEA;EACA;EACA,IAAIK,4BAA4B,GAAGC,kBAAkB,CAACC,MAAM,CAACT,SAAS,CAAC;EACvE,IAAIU,2BAA2B,GAAGF,kBAAkB,CAACG,KAAK,CAACX,SAAS,CAAC;EACrE,IAAIY,2BAA2B,GAAGJ,kBAAkB,CAClDC,MAAM,CAACI,cAAc,CAACX,KAAK,CAC7B,CAAC;EACD,IAAIY,kBAAkB,GAAGN,kBAAkB,CAACN,KAAK,CAAC;EAElD,IAAI;IACF,OAAOG,IAAI,CAACC,SAAS,CAACJ,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EAC/C,CAAC,CAAC,OAAAW,OAAA,EAAM;IACN,OAAO,qCAAqC;EAC9C,CAAC,SAAS;IACRR,4BAA4B,CAAC,CAAC;IAC9BG,2BAA2B,CAAC,CAAC;IAC7BE,2BAA2B,CAAC,CAAC;IAC7BE,kBAAkB,CAAC,CAAC;EACtB;AACF;AAEO,SAASN,kBAAkBA,CAACN,KAAK,EAAE;EACxC,IAAMc,MAAM,GAAGd,KAAK;EACpB,IAAMe,YAAY,GAAGD,MAAM,CAACE,MAAM;EAClC,IAAID,YAAY,EAAE;IAChB,OAAOD,MAAM,CAACE,MAAM;IACpB,OAAO,YAAY;MACjBF,MAAM,CAACE,MAAM,GAAGD,YAAY;IAC9B,CAAC;EACH;EACA,OAAOE,WAAI;AACb","ignoreList":[]}
@@ -9,7 +9,7 @@ exports.escapeRowData = escapeRowData;
9
9
  exports.escapeRowField = escapeRowField;
10
10
  var _jsonStringify = require("./jsonStringify");
11
11
  var _tools = require("../tools");
12
- 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); }
12
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
13
13
  function escapeRowData(str) {
14
14
  if (_typeof(str) === 'object' && str) {
15
15
  str = (0, _jsonStringify.jsonStringify)(str);
@@ -1 +1 @@
1
- {"version":3,"file":"rowData.js","names":["_jsonStringify","require","_tools","_typeof","obj","Symbol","iterator","constructor","prototype","escapeRowData","str","jsonStringify","isString","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,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAA6C,SAAAE,QAAAC,GAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAC,MAAA,IAAAD,GAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,GAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,GAAA,KAAAD,OAAA,CAAAC,GAAA;AACtC,SAASK,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIP,OAAA,CAAOO,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAG,IAAAC,4BAAa,EAACD,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAAC,IAAAE,eAAQ,EAACF,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIG,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACJ,GAAG,CAAC,CAACK,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEO,SAASC,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIhB,OAAA,CAAOe,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtCA,KAAK,GAAG,IAAAP,4BAAa,EAACO,KAAK,CAAC;EAC9B,CAAC,MAAM,IAAIC,KAAK,EAAE;IAChB;IACAD,KAAK,GAAG,EAAE,GAAGA,KAAK;EACpB;EAEA,OAAOA,KAAK;AACd;AAEO,SAASE,mBAAmBA,CAACV,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACO,SAASM,cAAcA,CAACH,KAAK,EAAE;EACpC,IAAIf,OAAA,CAAOe,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOE,mBAAmB,CAAC,IAAAT,4BAAa,EAACO,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAI,IAAAN,eAAQ,EAACM,KAAK,CAAC,EAAE;IAC1B,OAAOE,mBAAmB,CAACF,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF","ignoreList":[]}
1
+ {"version":3,"file":"rowData.js","names":["_jsonStringify","require","_tools","_typeof","o","Symbol","iterator","constructor","prototype","escapeRowData","str","jsonStringify","isString","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,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAA6C,SAAAE,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AACtC,SAASK,aAAaA,CAACC,GAAG,EAAE;EACjC,IAAIP,OAAA,CAAOO,GAAG,MAAK,QAAQ,IAAIA,GAAG,EAAE;IAClCA,GAAG,GAAG,IAAAC,4BAAa,EAACD,GAAG,CAAC;EAC1B,CAAC,MAAM,IAAI,CAAC,IAAAE,eAAQ,EAACF,GAAG,CAAC,EAAE;IACzB,OAAOA,GAAG;EACZ;EACA,IAAIG,GAAG,GAAG,UAAU;EACpB,OAAOC,MAAM,CAACJ,GAAG,CAAC,CAACK,OAAO,CAACF,GAAG,EAAE,UAAUG,IAAI,EAAE;IAC9C,OAAO,IAAI,GAAGA,IAAI;EACpB,CAAC,CAAC;AACJ;AAEO,SAASC,eAAeA,CAACC,KAAK,EAAEC,KAAK,EAAE;EAC5C,IAAIhB,OAAA,CAAOe,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtCA,KAAK,GAAG,IAAAP,4BAAa,EAACO,KAAK,CAAC;EAC9B,CAAC,MAAM,IAAIC,KAAK,EAAE;IAChB;IACAD,KAAK,GAAG,EAAE,GAAGA,KAAK;EACpB;EAEA,OAAOA,KAAK;AACd;AAEO,SAASE,mBAAmBA,CAACV,GAAG,EAAE;EACvC,OAAO,GAAG,GAAGA,GAAG,CAACK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG;AACpE;AACO,SAASM,cAAcA,CAACH,KAAK,EAAE;EACpC,IAAIf,OAAA,CAAOe,KAAK,MAAK,QAAQ,IAAIA,KAAK,EAAE;IACtC,OAAOE,mBAAmB,CAAC,IAAAT,4BAAa,EAACO,KAAK,CAAC,CAAC;EAClD,CAAC,MAAM,IAAI,IAAAN,eAAQ,EAACM,KAAK,CAAC,EAAE;IAC1B,OAAOE,mBAAmB,CAACF,KAAK,CAAC;EACnC,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF","ignoreList":[]}
@@ -22,8 +22,7 @@ var IDLE_CALLBACK_TIMEOUT = _tools.ONE_SECOND;
22
22
  *
23
23
  * Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.
24
24
  */
25
- var MAX_EXECUTION_TIME_ON_TIMEOUT = 30;
26
- exports.MAX_EXECUTION_TIME_ON_TIMEOUT = MAX_EXECUTION_TIME_ON_TIMEOUT;
25
+ var MAX_EXECUTION_TIME_ON_TIMEOUT = exports.MAX_EXECUTION_TIME_ON_TIMEOUT = 30;
27
26
  function createTaskQueue() {
28
27
  var pendingTasks = [];
29
28
  function run(deadline) {
@@ -1 +1 @@
1
- {"version":3,"file":"taskQueue.js","names":["_tools","require","_requestIdleCallback","IDLE_CALLBACK_TIMEOUT","ONE_SECOND","MAX_EXECUTION_TIME_ON_TIMEOUT","exports","createTaskQueue","pendingTasks","run","deadline","executionTimeRemaining","didTimeout","start","performance","now","timeRemaining","bind","length","shift","scheduleNextRun","requestIdleCallback","timeout","push","task"],"sources":["../../src/helper/taskQueue.js"],"sourcesContent":["import { ONE_SECOND } from './tools'\nimport { requestIdleCallback } from './requestIdleCallback'\n\n/**\n * Maximum delay before starting to execute tasks in the queue. We don't want to wait too long\n * before running tasks, as it might hurt reliability (ex: if the user navigates away, we might lose\n * the opportunity to send some data). We also don't want to run tasks too often, as it might hurt\n * performance.\n */\nconst IDLE_CALLBACK_TIMEOUT = ONE_SECOND\n\n/**\n * Maximum amount of time allocated to running tasks when a timeout (`IDLE_CALLBACK_TIMEOUT`) is\n * reached. We should not run tasks for too long as it will hurt performance, but we should still\n * run some tasks to avoid postponing them forever.\n *\n * Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.\n */\nexport const MAX_EXECUTION_TIME_ON_TIMEOUT = 30\n\nexport function createTaskQueue() {\n const pendingTasks = []\n\n function run(deadline) {\n let executionTimeRemaining\n if (deadline.didTimeout) {\n const start = performance.now()\n executionTimeRemaining = function () {\n return MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start)\n }\n } else {\n executionTimeRemaining = deadline.timeRemaining.bind(deadline)\n }\n\n while (executionTimeRemaining() > 0 && pendingTasks.length) {\n pendingTasks.shift()()\n }\n\n if (pendingTasks.length) {\n scheduleNextRun()\n }\n }\n\n function scheduleNextRun() {\n requestIdleCallback(run, { timeout: IDLE_CALLBACK_TIMEOUT })\n }\n\n return {\n push: function (task) {\n if (pendingTasks.push(task) === 1) {\n scheduleNextRun()\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,qBAAqB,GAAGC,iBAAU;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,6BAA6B,GAAG,EAAE;AAAAC,OAAA,CAAAD,6BAAA,GAAAA,6BAAA;AAExC,SAASE,eAAeA,CAAA,EAAG;EAChC,IAAMC,YAAY,GAAG,EAAE;EAEvB,SAASC,GAAGA,CAACC,QAAQ,EAAE;IACrB,IAAIC,sBAAsB;IAC1B,IAAID,QAAQ,CAACE,UAAU,EAAE;MACvB,IAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC/BJ,sBAAsB,GAAG,SAAAA,uBAAA,EAAY;QACnC,OAAON,6BAA6B,IAAIS,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK,CAAC;MACpE,CAAC;IACH,CAAC,MAAM;MACLF,sBAAsB,GAAGD,QAAQ,CAACM,aAAa,CAACC,IAAI,CAACP,QAAQ,CAAC;IAChE;IAEA,OAAOC,sBAAsB,CAAC,CAAC,GAAG,CAAC,IAAIH,YAAY,CAACU,MAAM,EAAE;MAC1DV,YAAY,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB;IAEA,IAAIX,YAAY,CAACU,MAAM,EAAE;MACvBE,eAAe,CAAC,CAAC;IACnB;EACF;EAEA,SAASA,eAAeA,CAAA,EAAG;IACzB,IAAAC,wCAAmB,EAACZ,GAAG,EAAE;MAAEa,OAAO,EAAEnB;IAAsB,CAAC,CAAC;EAC9D;EAEA,OAAO;IACLoB,IAAI,EAAE,SAAAA,KAAUC,IAAI,EAAE;MACpB,IAAIhB,YAAY,CAACe,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC,EAAE;QACjCJ,eAAe,CAAC,CAAC;MACnB;IACF;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"taskQueue.js","names":["_tools","require","_requestIdleCallback","IDLE_CALLBACK_TIMEOUT","ONE_SECOND","MAX_EXECUTION_TIME_ON_TIMEOUT","exports","createTaskQueue","pendingTasks","run","deadline","executionTimeRemaining","didTimeout","start","performance","now","timeRemaining","bind","length","shift","scheduleNextRun","requestIdleCallback","timeout","push","task"],"sources":["../../src/helper/taskQueue.js"],"sourcesContent":["import { ONE_SECOND } from './tools'\nimport { requestIdleCallback } from './requestIdleCallback'\n\n/**\n * Maximum delay before starting to execute tasks in the queue. We don't want to wait too long\n * before running tasks, as it might hurt reliability (ex: if the user navigates away, we might lose\n * the opportunity to send some data). We also don't want to run tasks too often, as it might hurt\n * performance.\n */\nconst IDLE_CALLBACK_TIMEOUT = ONE_SECOND\n\n/**\n * Maximum amount of time allocated to running tasks when a timeout (`IDLE_CALLBACK_TIMEOUT`) is\n * reached. We should not run tasks for too long as it will hurt performance, but we should still\n * run some tasks to avoid postponing them forever.\n *\n * Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.\n */\nexport const MAX_EXECUTION_TIME_ON_TIMEOUT = 30\n\nexport function createTaskQueue() {\n const pendingTasks = []\n\n function run(deadline) {\n let executionTimeRemaining\n if (deadline.didTimeout) {\n const start = performance.now()\n executionTimeRemaining = function () {\n return MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start)\n }\n } else {\n executionTimeRemaining = deadline.timeRemaining.bind(deadline)\n }\n\n while (executionTimeRemaining() > 0 && pendingTasks.length) {\n pendingTasks.shift()()\n }\n\n if (pendingTasks.length) {\n scheduleNextRun()\n }\n }\n\n function scheduleNextRun() {\n requestIdleCallback(run, { timeout: IDLE_CALLBACK_TIMEOUT })\n }\n\n return {\n push: function (task) {\n if (pendingTasks.push(task) === 1) {\n scheduleNextRun()\n }\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,qBAAqB,GAAGC,iBAAU;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,6BAA6B,GAAAC,OAAA,CAAAD,6BAAA,GAAG,EAAE;AAExC,SAASE,eAAeA,CAAA,EAAG;EAChC,IAAMC,YAAY,GAAG,EAAE;EAEvB,SAASC,GAAGA,CAACC,QAAQ,EAAE;IACrB,IAAIC,sBAAsB;IAC1B,IAAID,QAAQ,CAACE,UAAU,EAAE;MACvB,IAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAC/BJ,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAe;QACnC,OAAON,6BAA6B,IAAIS,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK,CAAC;MACpE,CAAC;IACH,CAAC,MAAM;MACLF,sBAAsB,GAAGD,QAAQ,CAACM,aAAa,CAACC,IAAI,CAACP,QAAQ,CAAC;IAChE;IAEA,OAAOC,sBAAsB,CAAC,CAAC,GAAG,CAAC,IAAIH,YAAY,CAACU,MAAM,EAAE;MAC1DV,YAAY,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB;IAEA,IAAIX,YAAY,CAACU,MAAM,EAAE;MACvBE,eAAe,CAAC,CAAC;IACnB;EACF;EAEA,SAASA,eAAeA,CAAA,EAAG;IACzB,IAAAC,wCAAmB,EAACZ,GAAG,EAAE;MAAEa,OAAO,EAAEnB;IAAsB,CAAC,CAAC;EAC9D;EAEA,OAAO;IACLoB,IAAI,EAAE,SAANA,IAAIA,CAAYC,IAAI,EAAE;MACpB,IAAIhB,YAAY,CAACe,IAAI,CAACC,IAAI,CAAC,KAAK,CAAC,EAAE;QACjCJ,eAAe,CAAC,CAAC;MACnB;IACF;EACF,CAAC;AACH","ignoreList":[]}