@cloudcare/browser-core 3.0.29 → 3.1.0

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 (264) hide show
  1. package/cjs/browser/addEventListener.js +3 -8
  2. package/cjs/browser/addEventListener.js.map +1 -0
  3. package/cjs/browser/cookie.js +3 -14
  4. package/cjs/browser/cookie.js.map +1 -0
  5. package/cjs/browser/fetchObservable.js +4 -21
  6. package/cjs/browser/fetchObservable.js.map +1 -0
  7. package/cjs/browser/htmlDomUtils.js +3 -9
  8. package/cjs/browser/htmlDomUtils.js.map +1 -0
  9. package/cjs/browser/pageExitObservable.js +3 -9
  10. package/cjs/browser/pageExitObservable.js.map +1 -0
  11. package/cjs/browser/runOnReadyState.js +2 -4
  12. package/cjs/browser/runOnReadyState.js.map +1 -0
  13. package/cjs/browser/scroll.js +32 -0
  14. package/cjs/browser/scroll.js.map +1 -0
  15. package/cjs/browser/xhrObservable.js +2 -21
  16. package/cjs/browser/xhrObservable.js.map +1 -0
  17. package/cjs/configuration/configuration.js +9 -20
  18. package/cjs/configuration/configuration.js.map +1 -0
  19. package/cjs/configuration/transportConfiguration.js +6 -20
  20. package/cjs/configuration/transportConfiguration.js.map +1 -0
  21. package/cjs/console/consoleObservable.js +3 -21
  22. package/cjs/console/consoleObservable.js.map +1 -0
  23. package/cjs/dataMap.js +24 -10
  24. package/cjs/dataMap.js.map +1 -0
  25. package/cjs/error/trackRuntimeError.js +3 -7
  26. package/cjs/error/trackRuntimeError.js.map +1 -0
  27. package/cjs/helper/boundedBuffer.js +2 -6
  28. package/cjs/helper/boundedBuffer.js.map +1 -0
  29. package/cjs/helper/byteUtils.js +6 -16
  30. package/cjs/helper/byteUtils.js.map +1 -0
  31. package/cjs/helper/catchUserErrors.js +2 -4
  32. package/cjs/helper/catchUserErrors.js.map +1 -0
  33. package/cjs/helper/contextHistory.js +21 -37
  34. package/cjs/helper/contextHistory.js.map +1 -0
  35. package/cjs/helper/createEventRateLimiter.js +2 -10
  36. package/cjs/helper/createEventRateLimiter.js.map +1 -0
  37. package/cjs/helper/deviceInfo.js +10 -64
  38. package/cjs/helper/deviceInfo.js.map +1 -0
  39. package/cjs/helper/display.js +2 -5
  40. package/cjs/helper/display.js.map +1 -0
  41. package/cjs/helper/enums.js +8 -2
  42. package/cjs/helper/enums.js.map +1 -0
  43. package/cjs/helper/errorTools.js +32 -38
  44. package/cjs/helper/errorTools.js.map +1 -0
  45. package/cjs/helper/eventEmitter.js +2 -6
  46. package/cjs/helper/eventEmitter.js.map +1 -0
  47. package/cjs/helper/getZoneJsOriginalValue.js +2 -5
  48. package/cjs/helper/getZoneJsOriginalValue.js.map +1 -0
  49. package/cjs/helper/instrumentMethod.js +10 -22
  50. package/cjs/helper/instrumentMethod.js.map +1 -0
  51. package/cjs/helper/lifeCycle.js +2 -9
  52. package/cjs/helper/lifeCycle.js.map +1 -0
  53. package/cjs/helper/limitModification.js +4 -22
  54. package/cjs/helper/limitModification.js.map +1 -0
  55. package/cjs/helper/mobileUtil.js +2 -20
  56. package/cjs/helper/mobileUtil.js.map +1 -0
  57. package/cjs/helper/monitor.js +2 -11
  58. package/cjs/helper/monitor.js.map +1 -0
  59. package/cjs/helper/observable.js +2 -9
  60. package/cjs/helper/observable.js.map +1 -0
  61. package/cjs/helper/readBytesFromStream.js +4 -14
  62. package/cjs/helper/readBytesFromStream.js.map +1 -0
  63. package/cjs/helper/sanitize.js +38 -61
  64. package/cjs/helper/sanitize.js.map +1 -0
  65. package/cjs/helper/serialisation/contextManager.js +5 -15
  66. package/cjs/helper/serialisation/contextManager.js.map +1 -0
  67. package/cjs/helper/serialisation/heavyCustomerDataWarning.js +2 -7
  68. package/cjs/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
  69. package/cjs/helper/serialisation/jsonStringify.js +6 -12
  70. package/cjs/helper/serialisation/jsonStringify.js.map +1 -0
  71. package/cjs/helper/serialisation/rowData.js +3 -10
  72. package/cjs/helper/serialisation/rowData.js.map +1 -0
  73. package/cjs/helper/timer.js +2 -8
  74. package/cjs/helper/timer.js.map +1 -0
  75. package/cjs/helper/tools.js +57 -444
  76. package/cjs/helper/tools.js.map +1 -0
  77. package/cjs/helper/urlPolyfill.js +5 -18
  78. package/cjs/helper/urlPolyfill.js.map +1 -0
  79. package/cjs/index.js +24 -95
  80. package/cjs/index.js.map +1 -0
  81. package/cjs/init.js +14 -20
  82. package/cjs/init.js.map +1 -0
  83. package/cjs/report/reportObservable.js +5 -24
  84. package/cjs/report/reportObservable.js.map +1 -0
  85. package/cjs/session/sessionConstants.js +2 -3
  86. package/cjs/session/sessionConstants.js.map +1 -0
  87. package/cjs/session/sessionCookieStore.js +11 -46
  88. package/cjs/session/sessionCookieStore.js.map +1 -0
  89. package/cjs/session/sessionManagement.js +2 -19
  90. package/cjs/session/sessionManagement.js.map +1 -0
  91. package/cjs/session/sessionStore.js +3 -28
  92. package/cjs/session/sessionStore.js.map +1 -0
  93. package/cjs/synthetics/syntheticsWorkerValues.js +2 -6
  94. package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -0
  95. package/cjs/synthetics/usr.js +2 -8
  96. package/cjs/synthetics/usr.js.map +1 -0
  97. package/cjs/telemetry/telemetry.js +125 -0
  98. package/cjs/telemetry/telemetry.js.map +1 -0
  99. package/cjs/telemetry/types.js +17 -0
  100. package/cjs/telemetry/types.js.map +1 -0
  101. package/cjs/tracekit/computeStackTrace.js +4 -34
  102. package/cjs/tracekit/computeStackTrace.js.map +1 -0
  103. package/cjs/tracekit/index.js +2 -3
  104. package/cjs/tracekit/index.js.map +1 -0
  105. package/cjs/tracekit/tracekit.js +3 -18
  106. package/cjs/tracekit/tracekit.js.map +1 -0
  107. package/cjs/transport/batch.js +5 -54
  108. package/cjs/transport/batch.js.map +1 -0
  109. package/cjs/transport/eventBridge.js +2 -7
  110. package/cjs/transport/eventBridge.js.map +1 -0
  111. package/cjs/transport/flushController.js +8 -21
  112. package/cjs/transport/flushController.js.map +1 -0
  113. package/cjs/transport/httpRequest.js +4 -18
  114. package/cjs/transport/httpRequest.js.map +1 -0
  115. package/cjs/transport/index.js +2 -6
  116. package/cjs/transport/index.js.map +1 -0
  117. package/cjs/transport/sendWithRetryStrategy.js +4 -23
  118. package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
  119. package/cjs/transport/startBatchWithReplica.js +2 -7
  120. package/cjs/transport/startBatchWithReplica.js.map +1 -0
  121. package/cjs/user/index.js +2 -3
  122. package/cjs/user/index.js.map +1 -0
  123. package/cjs/user/user.js +3 -8
  124. package/cjs/user/user.js.map +1 -0
  125. package/cjs/worker.js +2 -2
  126. package/cjs/worker.js.map +1 -0
  127. package/esm/browser/addEventListener.js +3 -3
  128. package/esm/browser/addEventListener.js.map +1 -0
  129. package/esm/browser/cookie.js +3 -6
  130. package/esm/browser/cookie.js.map +1 -0
  131. package/esm/browser/fetchObservable.js +4 -14
  132. package/esm/browser/fetchObservable.js.map +1 -0
  133. package/esm/browser/htmlDomUtils.js +3 -2
  134. package/esm/browser/htmlDomUtils.js.map +1 -0
  135. package/esm/browser/pageExitObservable.js +3 -2
  136. package/esm/browser/pageExitObservable.js.map +1 -0
  137. package/esm/browser/runOnReadyState.js +2 -1
  138. package/esm/browser/runOnReadyState.js.map +1 -0
  139. package/esm/browser/scroll.js +25 -0
  140. package/esm/browser/scroll.js.map +1 -0
  141. package/esm/browser/xhrObservable.js +2 -14
  142. package/esm/browser/xhrObservable.js.map +1 -0
  143. package/esm/configuration/configuration.js +9 -9
  144. package/esm/configuration/configuration.js.map +1 -0
  145. package/esm/configuration/transportConfiguration.js +6 -17
  146. package/esm/configuration/transportConfiguration.js.map +1 -0
  147. package/esm/console/consoleObservable.js +3 -11
  148. package/esm/console/consoleObservable.js.map +1 -0
  149. package/esm/dataMap.js +24 -8
  150. package/esm/dataMap.js.map +1 -0
  151. package/esm/error/trackRuntimeError.js +4 -3
  152. package/esm/error/trackRuntimeError.js.map +1 -0
  153. package/esm/helper/boundedBuffer.js +2 -4
  154. package/esm/helper/boundedBuffer.js.map +1 -0
  155. package/esm/helper/byteUtils.js +6 -13
  156. package/esm/helper/byteUtils.js.map +1 -0
  157. package/esm/helper/catchUserErrors.js +2 -2
  158. package/esm/helper/catchUserErrors.js.map +1 -0
  159. package/esm/helper/contextHistory.js +21 -33
  160. package/esm/helper/contextHistory.js.map +1 -0
  161. package/esm/helper/createEventRateLimiter.js +2 -6
  162. package/esm/helper/createEventRateLimiter.js.map +1 -0
  163. package/esm/helper/deviceInfo.js +10 -62
  164. package/esm/helper/deviceInfo.js.map +1 -0
  165. package/esm/helper/display.js +2 -3
  166. package/esm/helper/display.js.map +1 -0
  167. package/esm/helper/enums.js +6 -1
  168. package/esm/helper/enums.js.map +1 -0
  169. package/esm/helper/errorTools.js +30 -25
  170. package/esm/helper/errorTools.js.map +1 -0
  171. package/esm/helper/eventEmitter.js +2 -5
  172. package/esm/helper/eventEmitter.js.map +1 -0
  173. package/esm/helper/getZoneJsOriginalValue.js +2 -4
  174. package/esm/helper/getZoneJsOriginalValue.js.map +1 -0
  175. package/esm/helper/instrumentMethod.js +10 -16
  176. package/esm/helper/instrumentMethod.js.map +1 -0
  177. package/esm/helper/lifeCycle.js +2 -5
  178. package/esm/helper/lifeCycle.js.map +1 -0
  179. package/esm/helper/limitModification.js +5 -20
  180. package/esm/helper/limitModification.js.map +1 -0
  181. package/esm/helper/mobileUtil.js +2 -16
  182. package/esm/helper/mobileUtil.js.map +1 -0
  183. package/esm/helper/monitor.js +2 -3
  184. package/esm/helper/monitor.js.map +1 -0
  185. package/esm/helper/observable.js +2 -7
  186. package/esm/helper/observable.js.map +1 -0
  187. package/esm/helper/readBytesFromStream.js +4 -12
  188. package/esm/helper/readBytesFromStream.js.map +1 -0
  189. package/esm/helper/sanitize.js +40 -57
  190. package/esm/helper/sanitize.js.map +1 -0
  191. package/esm/helper/serialisation/contextManager.js +5 -9
  192. package/esm/helper/serialisation/contextManager.js.map +1 -0
  193. package/esm/helper/serialisation/heavyCustomerDataWarning.js +5 -4
  194. package/esm/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
  195. package/esm/helper/serialisation/jsonStringify.js +7 -10
  196. package/esm/helper/serialisation/jsonStringify.js.map +1 -0
  197. package/esm/helper/serialisation/rowData.js +3 -4
  198. package/esm/helper/serialisation/rowData.js.map +1 -0
  199. package/esm/helper/timer.js +2 -1
  200. package/esm/helper/timer.js.map +1 -0
  201. package/esm/helper/tools.js +57 -256
  202. package/esm/helper/tools.js.map +1 -0
  203. package/esm/helper/urlPolyfill.js +5 -9
  204. package/esm/helper/urlPolyfill.js.map +1 -0
  205. package/esm/index.js +4 -1
  206. package/esm/index.js.map +1 -0
  207. package/esm/init.js +14 -14
  208. package/esm/init.js.map +1 -0
  209. package/esm/report/reportObservable.js +5 -16
  210. package/esm/report/reportObservable.js.map +1 -0
  211. package/esm/session/sessionConstants.js +2 -1
  212. package/esm/session/sessionConstants.js.map +1 -0
  213. package/esm/session/sessionCookieStore.js +11 -38
  214. package/esm/session/sessionCookieStore.js.map +1 -0
  215. package/esm/session/sessionManagement.js +2 -8
  216. package/esm/session/sessionManagement.js.map +1 -0
  217. package/esm/session/sessionStore.js +4 -22
  218. package/esm/session/sessionStore.js.map +1 -0
  219. package/esm/synthetics/syntheticsWorkerValues.js +2 -1
  220. package/esm/synthetics/syntheticsWorkerValues.js.map +1 -0
  221. package/esm/synthetics/usr.js +2 -3
  222. package/esm/synthetics/usr.js.map +1 -0
  223. package/esm/telemetry/telemetry.js +111 -0
  224. package/esm/telemetry/telemetry.js.map +1 -0
  225. package/esm/telemetry/types.js +9 -0
  226. package/esm/telemetry/types.js.map +1 -0
  227. package/esm/tracekit/computeStackTrace.js +4 -31
  228. package/esm/tracekit/computeStackTrace.js.map +1 -0
  229. package/esm/tracekit/index.js +2 -1
  230. package/esm/tracekit/index.js.map +1 -0
  231. package/esm/tracekit/tracekit.js +5 -14
  232. package/esm/tracekit/tracekit.js.map +1 -0
  233. package/esm/transport/batch.js +7 -45
  234. package/esm/transport/batch.js.map +1 -0
  235. package/esm/transport/eventBridge.js +2 -5
  236. package/esm/transport/eventBridge.js.map +1 -0
  237. package/esm/transport/flushController.js +11 -20
  238. package/esm/transport/flushController.js.map +1 -0
  239. package/esm/transport/httpRequest.js +4 -15
  240. package/esm/transport/httpRequest.js.map +1 -0
  241. package/esm/transport/index.js +2 -1
  242. package/esm/transport/index.js.map +1 -0
  243. package/esm/transport/sendWithRetryStrategy.js +4 -17
  244. package/esm/transport/sendWithRetryStrategy.js.map +1 -0
  245. package/esm/transport/startBatchWithReplica.js +2 -3
  246. package/esm/transport/startBatchWithReplica.js.map +1 -0
  247. package/esm/user/index.js.map +1 -0
  248. package/esm/user/user.js +4 -5
  249. package/esm/user/user.js.map +1 -0
  250. package/esm/worker.js.map +1 -0
  251. package/package.json +2 -2
  252. package/src/browser/scroll.js +25 -0
  253. package/src/configuration/configuration.js +16 -0
  254. package/src/configuration/transportConfiguration.js +2 -2
  255. package/src/dataMap.js +17 -3
  256. package/src/error/trackRuntimeError.js +2 -2
  257. package/src/helper/contextHistory.js +3 -3
  258. package/src/helper/enums.js +4 -0
  259. package/src/helper/errorTools.js +49 -19
  260. package/src/helper/tools.js +1 -0
  261. package/src/index.js +3 -0
  262. package/src/report/reportObservable.js +3 -3
  263. package/src/telemetry/telemetry.js +164 -0
  264. package/src/telemetry/types.js +9 -0
@@ -4,26 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.processedMessageByDataMap = exports.Batch = void 0;
7
-
8
7
  var _display = require("../helper/display");
9
-
10
8
  var _tools = require("../helper/tools");
11
-
12
9
  var _rowData = require("../helper/serialisation/rowData");
13
-
14
10
  var _dataMap = require("../dataMap");
15
-
16
11
  var _enums = require("../helper/enums");
17
-
18
12
  var _byteUtils = require("../helper/byteUtils");
19
-
20
13
  var _pageExitObservable = require("../browser/pageExitObservable");
21
-
22
14
  // https://en.wikipedia.org/wiki/UTF-8
23
15
  // eslint-disable-next-line no-control-regex
24
16
  var HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/;
25
17
  var CUSTOM_KEYS = 'custom_keys';
26
-
27
18
  var processedMessageByDataMap = function processedMessageByDataMap(message) {
28
19
  if (!message || !message.type) return {
29
20
  rowStr: '',
@@ -42,12 +33,9 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
42
33
  var tagsStr = [];
43
34
  var tags = (0, _tools.extend)({}, _dataMap.commonTags, value.tags);
44
35
  var filterFileds = ['date', 'type', CUSTOM_KEYS]; // 已经在datamap中定义过的fields和tags
45
-
46
36
  (0, _tools.each)(tags, function (value_path, _key) {
47
37
  var _value = (0, _tools.findByPath)(message, value_path);
48
-
49
38
  filterFileds.push(_key);
50
-
51
39
  if (_value || (0, _tools.isNumber)(_value)) {
52
40
  rowData.tags[_key] = (0, _rowData.escapeJsonValue)(_value);
53
41
  tagsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowData)(_value));
@@ -58,29 +46,21 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
58
46
  (0, _tools.each)(fields, function (_value, _key) {
59
47
  if ((0, _tools.isArray)(_value) && _value.length === 2) {
60
48
  var value_path = _value[1];
61
-
62
49
  var _valueData = (0, _tools.findByPath)(message, value_path);
63
-
64
50
  filterFileds.push(_key);
65
-
66
51
  if (_valueData !== undefined && _valueData !== null) {
67
52
  rowData.fields[_key] = _valueData; // 这里不需要转译
68
-
69
53
  fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_valueData));
70
54
  }
71
55
  } else if ((0, _tools.isString)(_value)) {
72
56
  var _valueData = (0, _tools.findByPath)(message, _value);
73
-
74
57
  filterFileds.push(_key);
75
-
76
58
  if (_valueData !== undefined && _valueData !== null) {
77
59
  rowData.fields[_key] = _valueData; // 这里不需要转译
78
-
79
60
  fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_valueData));
80
61
  }
81
62
  }
82
63
  });
83
-
84
64
  if (message.context && (0, _tools.isObject)(message.context) && !(0, _tools.isEmptyObject)(message.context)) {
85
65
  // 自定义tag, 存储成field
86
66
  var _tagKeys = [];
@@ -88,89 +68,72 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
88
68
  // 如果和之前tag重名,则舍弃
89
69
  if (filterFileds.indexOf(_key) > -1) return;
90
70
  filterFileds.push(_key);
91
-
92
71
  if (_value !== undefined && _value !== null) {
93
72
  _tagKeys.push(_key);
94
-
95
73
  rowData.fields[_key] = _value; // 这里不需要转译
96
-
97
74
  fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_value));
98
75
  }
99
76
  });
100
-
101
77
  if (_tagKeys.length) {
102
78
  rowData.fields[CUSTOM_KEYS] = (0, _rowData.escapeRowField)(_tagKeys);
103
79
  fieldsStr.push((0, _rowData.escapeRowData)(CUSTOM_KEYS) + '=' + (0, _rowData.escapeRowField)(_tagKeys));
104
80
  }
105
81
  }
106
-
107
82
  if (message.type === _enums.RumEventType.LOGGER) {
108
83
  // 这里处理日志类型数据自定义字段
109
84
  (0, _tools.each)(message, function (value, key) {
110
85
  if (filterFileds.indexOf(key) === -1 && value !== undefined && value !== null) {
111
86
  rowData.fields[key] = value; // 这里不需要转译
112
-
113
87
  fieldsStr.push((0, _rowData.escapeRowData)(key) + '=' + (0, _rowData.escapeRowField)(value));
114
88
  }
115
89
  });
116
90
  }
117
-
118
91
  if (tagsStr.length) {
119
92
  rowStr += tagsStr.join(',');
120
93
  }
121
-
122
94
  if (fieldsStr.length) {
123
95
  rowStr += ' ';
124
96
  rowStr += fieldsStr.join(',');
125
97
  hasFileds = true;
126
98
  }
127
-
128
99
  rowStr = rowStr + ' ' + message.date;
129
100
  rowData.time = (0, _tools.toServerDuration)(message.date); // 这里不需要转译
130
101
  }
131
102
  });
103
+
132
104
  return {
133
105
  rowStr: hasFileds ? rowStr : '',
134
106
  rowData: hasFileds ? rowData : undefined
135
107
  };
136
108
  };
137
-
138
109
  exports.processedMessageByDataMap = processedMessageByDataMap;
139
-
140
110
  var batch = function batch(request, flushController, messageBytesLimit) {
141
111
  this.pushOnlyBuffer = [];
142
112
  this.upsertBuffer = {};
143
113
  this.request = request;
144
114
  this.flushController = flushController;
145
115
  this.messageBytesLimit = messageBytesLimit;
146
-
147
116
  var _this = this;
148
-
149
117
  this.flushController.flushObservable.subscribe(function (event) {
150
118
  _this.flush(event);
151
119
  });
152
120
  };
153
-
154
121
  batch.prototype.add = function (message) {
155
122
  this.addOrUpdate(message);
156
123
  };
157
-
158
124
  batch.prototype.upsert = function (message, key) {
159
125
  this.addOrUpdate(message, key);
160
126
  };
161
-
162
127
  batch.prototype.flush = function (event) {
163
128
  var messages = this.pushOnlyBuffer.concat((0, _tools.values)(this.upsertBuffer));
164
129
  this.pushOnlyBuffer = [];
165
130
  this.upsertBuffer = {};
166
-
167
131
  if (messages.length > 0) {
168
132
  var payload = {
169
133
  data: messages.join('\n'),
170
134
  bytesCount: event.bytesCount,
171
135
  flushReason: event.reason
172
136
  };
173
-
174
137
  if ((0, _pageExitObservable.isPageExitReason)(event.reason)) {
175
138
  this.request.sendOnExit(payload);
176
139
  } else {
@@ -178,26 +141,19 @@ batch.prototype.flush = function (event) {
178
141
  }
179
142
  }
180
143
  };
181
-
182
144
  batch.prototype.addOrUpdate = function (message, key) {
183
145
  var _process = this.process(message);
184
-
185
146
  var processedMessage = _process.processedMessage;
186
147
  var messageBytesCount = _process.messageBytesCount;
187
-
188
148
  if (messageBytesCount >= this.messageBytesLimit) {
189
149
  _display.display.warn('Discarded a message whose size was bigger than the maximum allowed size ' + this.messageBytesLimit + 'KB.');
190
-
191
150
  return;
192
151
  }
193
-
194
152
  if (this.hasMessageFor(key)) {
195
153
  this.remove(key);
196
154
  }
197
-
198
155
  this.push(processedMessage, messageBytesCount, key);
199
156
  };
200
-
201
157
  batch.prototype.process = function (message) {
202
158
  var processedMessage = processedMessageByDataMap(message).rowStr;
203
159
  var messageBytesCount = (0, _byteUtils.computeBytesCount)(processedMessage);
@@ -206,32 +162,27 @@ batch.prototype.process = function (message) {
206
162
  messageBytesCount: messageBytesCount
207
163
  };
208
164
  };
209
-
210
165
  batch.prototype.push = function (processedMessage, messageBytesCount, key) {
211
166
  var separatorBytesCount = this.flushController.getMessagesCount() > 0 ? 1 : 0;
212
167
  this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);
213
-
214
168
  if (key !== undefined) {
215
169
  this.upsertBuffer[key] = processedMessage;
216
170
  } else {
217
171
  this.pushOnlyBuffer.push(processedMessage);
218
172
  }
219
-
220
173
  this.flushController.notifyAfterAddMessage();
221
174
  };
222
-
223
175
  batch.prototype.remove = function (key) {
224
176
  var removedMessage = this.upsertBuffer[key];
225
177
  delete this.upsertBuffer[key];
226
- var messageBytesCount = (0, _byteUtils.computeBytesCount)(removedMessage); // If there are other messages, a '\n' will be added at serialization
227
-
178
+ var messageBytesCount = (0, _byteUtils.computeBytesCount)(removedMessage);
179
+ // If there are other messages, a '\n' will be added at serialization
228
180
  var separatorBytesCount = this.flushController.getMessagesCount() > 1 ? 1 : 0;
229
181
  this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);
230
182
  };
231
-
232
183
  batch.prototype.hasMessageFor = function (key) {
233
184
  return key !== undefined && this.upsertBuffer[key] !== undefined;
234
185
  };
235
-
236
186
  var Batch = batch;
237
- exports.Batch = Batch;
187
+ exports.Batch = Batch;
188
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","HAS_MULTI_BYTES_CHARACTERS","CUSTOM_KEYS","processedMessageByDataMap","message","type","rowStr","rowData","undefined","tags","fields","hasFileds","each","dataMap","value","key","measurement","tagsStr","extend","commonTags","filterFileds","value_path","_key","_value","findByPath","push","isNumber","escapeJsonValue","escapeRowData","fieldsStr","commonFields","isArray","length","_valueData","escapeRowField","isString","context","isObject","isEmptyObject","_tagKeys","indexOf","RumEventType","LOGGER","join","date","time","toServerDuration","exports","batch","request","flushController","messageBytesLimit","pushOnlyBuffer","upsertBuffer","_this","flushObservable","subscribe","event","flush","prototype","add","addOrUpdate","upsert","messages","concat","values","payload","data","bytesCount","flushReason","reason","isPageExitReason","sendOnExit","send","_process","process","processedMessage","messageBytesCount","display","warn","hasMessageFor","remove","computeBytesCount","separatorBytesCount","getMessagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","Batch"],"sources":["../../src/transport/batch.js"],"sourcesContent":["import { display } from '../helper/display'\nimport {\n values,\n findByPath,\n each,\n isNumber,\n isArray,\n extend,\n isString,\n toServerDuration,\n isBoolean,\n isEmptyObject,\n isObject\n} from '../helper/tools'\nimport {\n escapeJsonValue,\n escapeRowField,\n escapeRowData\n} from '../helper/serialisation/rowData'\nimport { commonTags, dataMap, commonFields } from '../dataMap'\nimport { RumEventType } from '../helper/enums'\nimport { computeBytesCount } from '../helper/byteUtils'\nimport { isPageExitReason } from '../browser/pageExitObservable'\n// https://en.wikipedia.org/wiki/UTF-8\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\nvar CUSTOM_KEYS = 'custom_keys'\nexport var processedMessageByDataMap = function (message) {\n if (!message || !message.type)\n return {\n rowStr: '',\n rowData: undefined\n }\n\n var rowData = { tags: {}, fields: {} }\n var hasFileds = false\n var rowStr = ''\n each(dataMap, function (value, key) {\n if (value.type === message.type) {\n rowStr += key + ','\n rowData.measurement = key\n var tagsStr = []\n var tags = extend({}, commonTags, value.tags)\n var filterFileds = ['date', 'type', CUSTOM_KEYS] // 已经在datamap中定义过的fields和tags\n each(tags, function (value_path, _key) {\n var _value = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_value || isNumber(_value)) {\n rowData.tags[_key] = escapeJsonValue(_value)\n tagsStr.push(escapeRowData(_key) + '=' + escapeRowData(_value))\n }\n })\n\n var fieldsStr = []\n var fields = extend({}, commonFields, value.fields)\n each(fields, function (_value, _key) {\n if (isArray(_value) && _value.length === 2) {\n var value_path = _value[1]\n var _valueData = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = _valueData // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n } else if (isString(_value)) {\n var _valueData = findByPath(message, _value)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = _valueData // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n }\n })\n if (\n message.context &&\n isObject(message.context) &&\n !isEmptyObject(message.context)\n ) {\n // 自定义tag, 存储成field\n var _tagKeys = []\n each(message.context, function (_value, _key) {\n // 如果和之前tag重名,则舍弃\n if (filterFileds.indexOf(_key) > -1) return\n filterFileds.push(_key)\n if (_value !== undefined && _value !== null) {\n _tagKeys.push(_key)\n rowData.fields[_key] = _value // 这里不需要转译\n fieldsStr.push(escapeRowData(_key) + '=' + escapeRowField(_value))\n }\n })\n if (_tagKeys.length) {\n rowData.fields[CUSTOM_KEYS] = escapeRowField(_tagKeys)\n fieldsStr.push(\n escapeRowData(CUSTOM_KEYS) + '=' + escapeRowField(_tagKeys)\n )\n }\n }\n if (message.type === RumEventType.LOGGER) {\n // 这里处理日志类型数据自定义字段\n each(message, function (value, key) {\n if (\n filterFileds.indexOf(key) === -1 &&\n value !== undefined &&\n value !== null\n ) {\n rowData.fields[key] = value // 这里不需要转译\n fieldsStr.push(escapeRowData(key) + '=' + escapeRowField(value))\n }\n })\n }\n if (tagsStr.length) {\n rowStr += tagsStr.join(',')\n }\n if (fieldsStr.length) {\n rowStr += ' '\n rowStr += fieldsStr.join(',')\n hasFileds = true\n }\n rowStr = rowStr + ' ' + message.date\n rowData.time = toServerDuration(message.date) // 这里不需要转译\n }\n })\n return {\n rowStr: hasFileds ? rowStr : '',\n rowData: hasFileds ? rowData : undefined\n }\n}\nvar batch = function (request, flushController, messageBytesLimit) {\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n this.request = request\n this.flushController = flushController\n this.messageBytesLimit = messageBytesLimit\n var _this = this\n this.flushController.flushObservable.subscribe(function (event) {\n _this.flush(event)\n })\n}\nbatch.prototype.add = function (message) {\n this.addOrUpdate(message)\n}\nbatch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key)\n}\nbatch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(values(this.upsertBuffer))\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n if (messages.length > 0) {\n var payload = {\n data: messages.join('\\n'),\n bytesCount: event.bytesCount,\n flushReason: event.reason\n }\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload)\n } else {\n this.request.send(payload)\n }\n }\n}\n\nbatch.prototype.addOrUpdate = function (message, key) {\n var _process = this.process(message)\n var processedMessage = _process.processedMessage\n var messageBytesCount = _process.messageBytesCount\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\n 'Discarded a message whose size was bigger than the maximum allowed size ' +\n this.messageBytesLimit +\n 'KB.'\n )\n return\n }\n if (this.hasMessageFor(key)) {\n this.remove(key)\n }\n this.push(processedMessage, messageBytesCount, key)\n}\nbatch.prototype.process = function (message) {\n var processedMessage = processedMessageByDataMap(message).rowStr\n var messageBytesCount = computeBytesCount(processedMessage)\n return {\n processedMessage: processedMessage,\n messageBytesCount: messageBytesCount\n }\n}\n\nbatch.prototype.push = function (processedMessage, messageBytesCount, key) {\n var separatorBytesCount = this.flushController.getMessagesCount() > 0 ? 1 : 0\n this.flushController.notifyBeforeAddMessage(\n messageBytesCount + separatorBytesCount\n )\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage\n } else {\n this.pushOnlyBuffer.push(processedMessage)\n }\n this.flushController.notifyAfterAddMessage()\n}\n\nbatch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key]\n delete this.upsertBuffer[key]\n var messageBytesCount = computeBytesCount(removedMessage)\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.getMessagesCount() > 1 ? 1 : 0\n this.flushController.notifyAfterRemoveMessage(\n messageBytesCount + separatorBytesCount\n )\n}\n\nbatch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined\n}\nexport var Batch = batch\n"],"mappings":"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"}
@@ -5,20 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.canUseEventBridge = canUseEventBridge;
7
7
  exports.getEventBridge = getEventBridge;
8
-
9
8
  var _init = require("../init");
10
-
11
9
  function getEventBridgeGlobal() {
12
10
  return (0, _init.getGlobalObject)().FTWebViewJavascriptBridge;
13
11
  }
14
-
15
12
  function getEventBridge() {
16
13
  var eventBridgeGlobal = getEventBridgeGlobal();
17
-
18
14
  if (!eventBridgeGlobal) {
19
15
  return;
20
16
  }
21
-
22
17
  return {
23
18
  send: function send(eventType, event) {
24
19
  eventBridgeGlobal.sendEvent(JSON.stringify({
@@ -28,8 +23,8 @@ function getEventBridge() {
28
23
  }
29
24
  };
30
25
  }
31
-
32
26
  function canUseEventBridge() {
33
27
  var bridge = getEventBridge();
34
28
  return !!bridge;
35
- }
29
+ }
30
+ //# sourceMappingURL=eventBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventBridge.js","names":["_init","require","getEventBridgeGlobal","getGlobalObject","FTWebViewJavascriptBridge","getEventBridge","eventBridgeGlobal","send","eventType","event","sendEvent","JSON","stringify","name","data","canUseEventBridge","bridge"],"sources":["../../src/transport/eventBridge.js"],"sourcesContent":["import { getGlobalObject } from '../init'\n\nfunction getEventBridgeGlobal() {\n return getGlobalObject().FTWebViewJavascriptBridge\n}\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal()\n\n if (!eventBridgeGlobal) {\n return\n }\n\n return {\n send(eventType, event) {\n eventBridgeGlobal.sendEvent(\n JSON.stringify({ name: eventType, data: event })\n )\n }\n }\n}\nexport function canUseEventBridge() {\n var bridge = getEventBridge()\n return !!bridge\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,SAASC,oBAAoBA,CAAA,EAAG;EAC9B,OAAO,IAAAC,qBAAe,EAAC,CAAC,CAACC,yBAAyB;AACpD;AACO,SAASC,cAAcA,CAAA,EAAG;EAC/B,IAAIC,iBAAiB,GAAGJ,oBAAoB,CAAC,CAAC;EAE9C,IAAI,CAACI,iBAAiB,EAAE;IACtB;EACF;EAEA,OAAO;IACLC,IAAI,WAAAA,KAACC,SAAS,EAAEC,KAAK,EAAE;MACrBH,iBAAiB,CAACI,SAAS,CACzBC,IAAI,CAACC,SAAS,CAAC;QAAEC,IAAI,EAAEL,SAAS;QAAEM,IAAI,EAAEL;MAAM,CAAC,CACjD,CAAC;IACH;EACF,CAAC;AACH;AACO,SAASM,iBAAiBA,CAAA,EAAG;EAClC,IAAIC,MAAM,GAAGX,cAAc,CAAC,CAAC;EAC7B,OAAO,CAAC,CAACW,MAAM;AACjB"}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createFlushController = createFlushController;
7
-
8
7
  var _observable = require("../helper/observable");
9
-
10
8
  var _timer = require("../helper/timer");
11
-
12
9
  // type FlushReason = PageExitReason | 'duration_limit' | 'bytes_limit' | 'messages_limit' | 'session_expire'
13
10
 
14
11
  /**
@@ -18,10 +15,10 @@ var _timer = require("../helper/timer");
18
15
  */
19
16
  function createFlushController(_ref) {
20
17
  var messagesLimit = _ref.messagesLimit,
21
- bytesLimit = _ref.bytesLimit,
22
- durationLimit = _ref.durationLimit,
23
- pageExitObservable = _ref.pageExitObservable,
24
- sessionExpireObservable = _ref.sessionExpireObservable;
18
+ bytesLimit = _ref.bytesLimit,
19
+ durationLimit = _ref.durationLimit,
20
+ pageExitObservable = _ref.pageExitObservable,
21
+ sessionExpireObservable = _ref.sessionExpireObservable;
25
22
  var flushObservable = new _observable.Observable();
26
23
  pageExitObservable.subscribe(function (event) {
27
24
  return flush(event.reason);
@@ -31,12 +28,10 @@ function createFlushController(_ref) {
31
28
  });
32
29
  var currentBytesCount = 0;
33
30
  var currentMessagesCount = 0;
34
-
35
31
  function flush(flushReason) {
36
32
  if (currentMessagesCount === 0) {
37
33
  return;
38
34
  }
39
-
40
35
  var messagesCount = currentMessagesCount;
41
36
  var bytesCount = currentBytesCount;
42
37
  currentMessagesCount = 0;
@@ -48,9 +43,7 @@ function createFlushController(_ref) {
48
43
  bytesCount: bytesCount
49
44
  });
50
45
  }
51
-
52
46
  var durationLimitTimeoutId;
53
-
54
47
  function scheduleDurationLimitTimeout() {
55
48
  if (durationLimitTimeoutId === undefined) {
56
49
  durationLimitTimeoutId = (0, _timer.setTimeout)(function () {
@@ -58,18 +51,15 @@ function createFlushController(_ref) {
58
51
  }, durationLimit);
59
52
  }
60
53
  }
61
-
62
54
  function cancelDurationLimitTimeout() {
63
55
  (0, _timer.clearTimeout)(durationLimitTimeoutId);
64
56
  durationLimitTimeoutId = undefined;
65
57
  }
66
-
67
58
  return {
68
59
  flushObservable: flushObservable,
69
60
  getMessagesCount: function getMessagesCount() {
70
61
  return currentMessagesCount;
71
62
  },
72
-
73
63
  /**
74
64
  * Notifies that a message will be added to a pool of pending messages waiting to be flushed.
75
65
  *
@@ -79,16 +69,14 @@ function createFlushController(_ref) {
79
69
  notifyBeforeAddMessage: function notifyBeforeAddMessage(messageBytesCount) {
80
70
  if (currentBytesCount + messageBytesCount >= bytesLimit) {
81
71
  flush('bytes_limit');
82
- } // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no
72
+ }
73
+ // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no
83
74
  // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want
84
75
  // to notify when a flush is needed (for example on page exit).
85
-
86
-
87
76
  currentMessagesCount += 1;
88
77
  currentBytesCount += messageBytesCount;
89
78
  scheduleDurationLimitTimeout();
90
79
  },
91
-
92
80
  /**
93
81
  * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.
94
82
  *
@@ -102,7 +90,6 @@ function createFlushController(_ref) {
102
90
  flush('bytes_limit');
103
91
  }
104
92
  },
105
-
106
93
  /**
107
94
  * Notifies that a message was removed from a pool of pending messages waiting to be flushed.
108
95
  *
@@ -112,10 +99,10 @@ function createFlushController(_ref) {
112
99
  notifyAfterRemoveMessage: function notifyAfterRemoveMessage(messageBytesCount) {
113
100
  currentBytesCount -= messageBytesCount;
114
101
  currentMessagesCount -= 1;
115
-
116
102
  if (currentMessagesCount === 0) {
117
103
  cancelDurationLimitTimeout();
118
104
  }
119
105
  }
120
106
  };
121
- }
107
+ }
108
+ //# sourceMappingURL=flushController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushController.js","names":["_observable","require","_timer","createFlushController","_ref","messagesLimit","bytesLimit","durationLimit","pageExitObservable","sessionExpireObservable","flushObservable","Observable","subscribe","event","flush","reason","currentBytesCount","currentMessagesCount","flushReason","messagesCount","bytesCount","cancelDurationLimitTimeout","notify","durationLimitTimeoutId","scheduleDurationLimitTimeout","undefined","setTimeout","clearTimeout","getMessagesCount","notifyBeforeAddMessage","messageBytesCount","notifyAfterAddMessage","notifyAfterRemoveMessage"],"sources":["../../src/transport/flushController.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { clearTimeout, setTimeout } from '../helper/timer'\n\n// type FlushReason = PageExitReason | 'duration_limit' | 'bytes_limit' | 'messages_limit' | 'session_expire'\n\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({\n messagesLimit,\n bytesLimit,\n durationLimit,\n pageExitObservable,\n sessionExpireObservable\n}) {\n var flushObservable = new Observable()\n\n pageExitObservable.subscribe(function (event) {\n return flush(event.reason)\n })\n sessionExpireObservable.subscribe(function () {\n return flush('session_expire')\n })\n\n var currentBytesCount = 0\n var currentMessagesCount = 0\n\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return\n }\n\n var messagesCount = currentMessagesCount\n var bytesCount = currentBytesCount\n\n currentMessagesCount = 0\n currentBytesCount = 0\n cancelDurationLimitTimeout()\n\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount\n })\n }\n\n var durationLimitTimeoutId\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit')\n }, durationLimit)\n }\n }\n\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId)\n durationLimitTimeoutId = undefined\n }\n\n return {\n flushObservable: flushObservable,\n getMessagesCount: function () {\n return currentMessagesCount\n },\n\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1\n currentBytesCount += messageBytesCount\n scheduleDurationLimitTimeout()\n },\n\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit')\n } else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n },\n\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount\n currentMessagesCount -= 1\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout()\n }\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,qBAAqBA,CAAAC,IAAA,EAMlC;EAAA,IALDC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAClBC,uBAAuB,GAAAL,IAAA,CAAvBK,uBAAuB;EAEvB,IAAIC,eAAe,GAAG,IAAIC,sBAAU,CAAC,CAAC;EAEtCH,kBAAkB,CAACI,SAAS,CAAC,UAAUC,KAAK,EAAE;IAC5C,OAAOC,KAAK,CAACD,KAAK,CAACE,MAAM,CAAC;EAC5B,CAAC,CAAC;EACFN,uBAAuB,CAACG,SAAS,CAAC,YAAY;IAC5C,OAAOE,KAAK,CAAC,gBAAgB,CAAC;EAChC,CAAC,CAAC;EAEF,IAAIE,iBAAiB,GAAG,CAAC;EACzB,IAAIC,oBAAoB,GAAG,CAAC;EAE5B,SAASH,KAAKA,CAACI,WAAW,EAAE;IAC1B,IAAID,oBAAoB,KAAK,CAAC,EAAE;MAC9B;IACF;IAEA,IAAIE,aAAa,GAAGF,oBAAoB;IACxC,IAAIG,UAAU,GAAGJ,iBAAiB;IAElCC,oBAAoB,GAAG,CAAC;IACxBD,iBAAiB,GAAG,CAAC;IACrBK,0BAA0B,CAAC,CAAC;IAE5BX,eAAe,CAACY,MAAM,CAAC;MACrBP,MAAM,EAAEG,WAAW;MACnBC,aAAa,EAAEA,aAAa;MAC5BC,UAAU,EAAEA;IACd,CAAC,CAAC;EACJ;EAEA,IAAIG,sBAAsB;EAC1B,SAASC,4BAA4BA,CAAA,EAAG;IACtC,IAAID,sBAAsB,KAAKE,SAAS,EAAE;MACxCF,sBAAsB,GAAG,IAAAG,iBAAU,EAAC,YAAY;QAC9CZ,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,EAAEP,aAAa,CAAC;IACnB;EACF;EAEA,SAASc,0BAA0BA,CAAA,EAAG;IACpC,IAAAM,mBAAY,EAACJ,sBAAsB,CAAC;IACpCA,sBAAsB,GAAGE,SAAS;EACpC;EAEA,OAAO;IACLf,eAAe,EAAEA,eAAe;IAChCkB,gBAAgB,EAAE,SAAAA,iBAAA,EAAY;MAC5B,OAAOX,oBAAoB;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIY,sBAAsB,EAAE,SAAAA,uBAAUC,iBAAiB,EAAE;MACnD,IAAId,iBAAiB,GAAGc,iBAAiB,IAAIxB,UAAU,EAAE;QACvDQ,KAAK,CAAC,aAAa,CAAC;MACtB;MACA;MACA;MACA;MACAG,oBAAoB,IAAI,CAAC;MACzBD,iBAAiB,IAAIc,iBAAiB;MACtCN,4BAA4B,CAAC,CAAC;IAChC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIO,qBAAqB,EAAE,SAAAA,sBAAA,EAAY;MACjC,IAAId,oBAAoB,IAAIZ,aAAa,EAAE;QACzCS,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,MAAM,IAAIE,iBAAiB,IAAIV,UAAU,EAAE;QAC1CQ,KAAK,CAAC,aAAa,CAAC;MACtB;IACF,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIkB,wBAAwB,EAAE,SAAAA,yBAAUF,iBAAiB,EAAE;MACrDd,iBAAiB,IAAIc,iBAAiB;MACtCb,oBAAoB,IAAI,CAAC;MACzB,IAAIA,oBAAoB,KAAK,CAAC,EAAE;QAC9BI,0BAA0B,CAAC,CAAC;MAC9B;IACF;EACF,CAAC;AACH"}
@@ -5,13 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createHttpRequest = createHttpRequest;
7
7
  exports.fetchKeepAliveStrategy = fetchKeepAliveStrategy;
8
-
9
8
  var _sendWithRetryStrategy = require("./sendWithRetryStrategy");
10
-
11
9
  var _addEventListener = require("../browser/addEventListener");
12
-
13
10
  var _monitor = require("../helper/monitor");
14
-
15
11
  /**
16
12
  * Use POST request without content type to:
17
13
  * - avoid CORS preflight requests
@@ -24,19 +20,15 @@ function addBatchPrecision(url) {
24
20
  if (!url) return url;
25
21
  return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms';
26
22
  }
27
-
28
23
  function createHttpRequest(endpointUrl, bytesLimit, reportError) {
29
24
  var retryState = (0, _sendWithRetryStrategy.newRetryState)();
30
-
31
25
  var sendStrategyForRetry = function sendStrategyForRetry(payload, onResponse) {
32
26
  return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse);
33
27
  };
34
-
35
28
  return {
36
29
  send: function send(payload) {
37
30
  (0, _sendWithRetryStrategy.sendWithRetryStrategy)(payload, retryState, sendStrategyForRetry, endpointUrl, reportError);
38
31
  },
39
-
40
32
  /**
41
33
  * Since fetch keepalive behaves like regular fetch on Firefox,
42
34
  * keep using sendBeaconStrategy on exit
@@ -46,33 +38,28 @@ function createHttpRequest(endpointUrl, bytesLimit, reportError) {
46
38
  }
47
39
  };
48
40
  }
49
-
50
41
  function sendBeaconStrategy(endpointUrl, bytesLimit, payload) {
51
42
  var data = payload.data;
52
43
  var bytesCount = payload.bytesCount;
53
44
  var url = addBatchPrecision(endpointUrl);
54
45
  var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit;
55
-
56
46
  if (canUseBeacon) {
57
47
  try {
58
48
  var isQueued = navigator.sendBeacon(url, data);
59
-
60
49
  if (isQueued) {
61
50
  return;
62
51
  }
63
- } catch (e) {// reportBeaconError(e)
52
+ } catch (e) {
53
+ // reportBeaconError(e)
64
54
  }
65
55
  }
66
-
67
56
  sendXHR(url, data);
68
57
  }
69
-
70
58
  function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
71
59
  var data = payload.data;
72
60
  var bytesCount = payload.bytesCount;
73
61
  var url = addBatchPrecision(endpointUrl);
74
62
  var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit;
75
-
76
63
  if (canUseKeepAlive) {
77
64
  fetch(url, {
78
65
  method: 'POST',
@@ -94,7 +81,6 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
94
81
  sendXHR(url, data, onResponse);
95
82
  }
96
83
  }
97
-
98
84
  function isKeepAliveSupported() {
99
85
  // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors
100
86
  try {
@@ -103,7 +89,6 @@ function isKeepAliveSupported() {
103
89
  return false;
104
90
  }
105
91
  }
106
-
107
92
  function sendXHR(url, data, onResponse) {
108
93
  var request = new XMLHttpRequest();
109
94
  request.open('POST', url, true);
@@ -117,4 +102,5 @@ function sendXHR(url, data, onResponse) {
117
102
  once: true
118
103
  });
119
104
  request.send(data);
120
- }
105
+ }
106
+ //# sourceMappingURL=httpRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRequest.js","names":["_sendWithRetryStrategy","require","_addEventListener","_monitor","addBatchPrecision","url","indexOf","createHttpRequest","endpointUrl","bytesLimit","reportError","retryState","newRetryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendWithRetryStrategy","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","isQueued","e","sendXHR","canUseKeepAlive","isKeepAliveSupported","fetch","method","body","keepalive","mode","then","monitor","response","status","type","window","Request","_unused","request","XMLHttpRequest","open","addEventListener","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url) {\n if (!url) return url\n return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n}\nexport function createHttpRequest(endpointUrl, bytesLimit, reportError) {\n var retryState = newRetryState()\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var isQueued = navigator.sendBeacon(url, data)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n // reportBeaconError(e)\n }\n }\n sendXHR(url, data)\n}\n\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n fetch(url, {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, data, onResponse)\n })\n )\n } else {\n sendXHR(url, data, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, data, onResponse) {\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":"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"}
@@ -45,13 +45,9 @@ Object.defineProperty(exports, "startBatchWithReplica", {
45
45
  return _startBatchWithReplica.startBatchWithReplica;
46
46
  }
47
47
  });
48
-
49
48
  var _httpRequest = require("./httpRequest");
50
-
51
49
  var _batch = require("./batch");
52
-
53
50
  var _startBatchWithReplica = require("./startBatchWithReplica");
54
-
55
51
  var _flushController = require("./flushController");
56
-
57
- var _eventBridge = require("./eventBridge");
52
+ var _eventBridge = require("./eventBridge");
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_httpRequest","require","_batch","_startBatchWithReplica","_flushController","_eventBridge"],"sources":["../../src/transport/index.js"],"sourcesContent":["export { createHttpRequest } from './httpRequest'\nexport { Batch, processedMessageByDataMap } from './batch'\nexport { startBatchWithReplica } from './startBatchWithReplica'\nexport { createFlushController } from './flushController'\nexport { getEventBridge, canUseEventBridge } from './eventBridge'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA"}