@openobserve/browser-core 0.3.3 → 0.4.0-beta.1

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 (863) hide show
  1. package/README.md +1 -1
  2. package/cjs/boot/displayAlreadyInitializedError.js +6 -7
  3. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
  4. package/cjs/boot/init.js +26 -34
  5. package/cjs/boot/init.js.map +1 -1
  6. package/cjs/browser/addEventListener.d.ts +10 -8
  7. package/cjs/browser/addEventListener.js +107 -50
  8. package/cjs/browser/addEventListener.js.map +1 -1
  9. package/cjs/browser/browser.types.d.ts +91 -4
  10. package/cjs/browser/cookie.d.ts +0 -1
  11. package/cjs/browser/cookie.js +65 -92
  12. package/cjs/browser/cookie.js.map +1 -1
  13. package/cjs/browser/cookieAccess.d.ts +16 -0
  14. package/cjs/browser/cookieAccess.js +114 -0
  15. package/cjs/browser/cookieAccess.js.map +1 -0
  16. package/cjs/browser/fetch.d.ts +9 -0
  17. package/cjs/browser/fetch.js +18 -0
  18. package/cjs/browser/fetch.js.map +1 -0
  19. package/cjs/browser/fetchObservable.d.ts +3 -3
  20. package/cjs/browser/fetchObservable.js +80 -92
  21. package/cjs/browser/fetchObservable.js.map +1 -1
  22. package/cjs/browser/pageMayExitObservable.d.ts +1 -2
  23. package/cjs/browser/pageMayExitObservable.js +41 -40
  24. package/cjs/browser/pageMayExitObservable.js.map +1 -1
  25. package/cjs/browser/runOnReadyState.d.ts +2 -3
  26. package/cjs/browser/runOnReadyState.js +18 -17
  27. package/cjs/browser/runOnReadyState.js.map +1 -1
  28. package/cjs/browser/xhrObservable.d.ts +8 -3
  29. package/cjs/browser/xhrObservable.js +65 -77
  30. package/cjs/browser/xhrObservable.js.map +1 -1
  31. package/cjs/domain/allowedTrackingOrigins.d.ts +1 -1
  32. package/cjs/domain/allowedTrackingOrigins.js +25 -23
  33. package/cjs/domain/allowedTrackingOrigins.js.map +1 -1
  34. package/cjs/domain/bufferedData.d.ts +20 -6
  35. package/cjs/domain/bufferedData.js +41 -19
  36. package/cjs/domain/bufferedData.js.map +1 -1
  37. package/cjs/domain/configuration/configuration.d.ts +44 -43
  38. package/cjs/domain/configuration/configuration.js +122 -125
  39. package/cjs/domain/configuration/configuration.js.map +1 -1
  40. package/cjs/domain/configuration/endpointBuilder.d.ts +42 -7
  41. package/cjs/domain/configuration/endpointBuilder.js +67 -74
  42. package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
  43. package/cjs/domain/configuration/index.d.ts +2 -3
  44. package/cjs/domain/connectivity/connectivity.d.ts +1 -7
  45. package/cjs/domain/connectivity/connectivity.js +11 -11
  46. package/cjs/domain/connectivity/connectivity.js.map +1 -1
  47. package/cjs/domain/console/consoleObservable.d.ts +1 -1
  48. package/cjs/domain/console/consoleObservable.js +59 -74
  49. package/cjs/domain/console/consoleObservable.js.map +1 -1
  50. package/cjs/domain/context/contextConstants.js +24 -15
  51. package/cjs/domain/context/contextConstants.js.map +1 -1
  52. package/cjs/domain/context/contextManager.js +49 -54
  53. package/cjs/domain/context/contextManager.js.map +1 -1
  54. package/cjs/domain/context/contextUtils.js +11 -12
  55. package/cjs/domain/context/contextUtils.js.map +1 -1
  56. package/cjs/domain/context/defineContextMethod.d.ts +2 -2
  57. package/cjs/domain/context/defineContextMethod.js +15 -16
  58. package/cjs/domain/context/defineContextMethod.js.map +1 -1
  59. package/cjs/domain/context/storeContextManager.d.ts +1 -2
  60. package/cjs/domain/context/storeContextManager.js +30 -33
  61. package/cjs/domain/context/storeContextManager.js.map +1 -1
  62. package/cjs/domain/contexts/accountContext.d.ts +2 -2
  63. package/cjs/domain/contexts/accountContext.js +26 -29
  64. package/cjs/domain/contexts/accountContext.js.map +1 -1
  65. package/cjs/domain/contexts/globalContext.d.ts +2 -2
  66. package/cjs/domain/contexts/globalContext.js +17 -17
  67. package/cjs/domain/contexts/globalContext.js.map +1 -1
  68. package/cjs/domain/contexts/tabContext.d.ts +4 -0
  69. package/cjs/domain/contexts/tabContext.js +27 -0
  70. package/cjs/domain/contexts/tabContext.js.map +1 -0
  71. package/cjs/domain/contexts/telemetrySessionContext.d.ts +4 -0
  72. package/cjs/domain/contexts/telemetrySessionContext.js +17 -0
  73. package/cjs/domain/contexts/telemetrySessionContext.js.map +1 -0
  74. package/cjs/domain/contexts/userContext.d.ts +8 -3
  75. package/cjs/domain/contexts/userContext.js +29 -41
  76. package/cjs/domain/contexts/userContext.js.map +1 -1
  77. package/cjs/domain/deflate/deflate.types.js +11 -2
  78. package/cjs/domain/deflate/deflate.types.js.map +1 -1
  79. package/cjs/domain/error/error.d.ts +1 -1
  80. package/cjs/domain/error/error.js +62 -60
  81. package/cjs/domain/error/error.js.map +1 -1
  82. package/cjs/domain/error/error.types.d.ts +1 -1
  83. package/cjs/domain/error/error.types.js +24 -11
  84. package/cjs/domain/error/error.types.js.map +1 -1
  85. package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
  86. package/cjs/domain/error/trackRuntimeError.js +41 -41
  87. package/cjs/domain/error/trackRuntimeError.js.map +1 -1
  88. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +33 -38
  89. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
  90. package/cjs/domain/extension/extensionUtils.js +18 -25
  91. package/cjs/domain/extension/extensionUtils.js.map +1 -1
  92. package/cjs/domain/intakeSites.d.ts +3 -3
  93. package/cjs/domain/intakeSites.js +23 -10
  94. package/cjs/domain/intakeSites.js.map +1 -1
  95. package/cjs/domain/report/reportObservable.d.ts +1 -2
  96. package/cjs/domain/report/reportObservable.js +73 -85
  97. package/cjs/domain/report/reportObservable.js.map +1 -1
  98. package/cjs/domain/resourceUtils.js +19 -17
  99. package/cjs/domain/resourceUtils.js.map +1 -1
  100. package/cjs/domain/sampler.d.ts +11 -0
  101. package/cjs/domain/sampler.js +40 -0
  102. package/cjs/domain/sampler.js.map +1 -0
  103. package/cjs/domain/session/sessionConstants.d.ts +1 -0
  104. package/cjs/domain/session/sessionConstants.js +19 -13
  105. package/cjs/domain/session/sessionConstants.js.map +1 -1
  106. package/cjs/domain/session/sessionManager.d.ts +13 -13
  107. package/cjs/domain/session/sessionManager.js +219 -193
  108. package/cjs/domain/session/sessionManager.js.map +1 -1
  109. package/cjs/domain/session/sessionState.d.ts +10 -1
  110. package/cjs/domain/session/sessionState.js +70 -55
  111. package/cjs/domain/session/sessionState.js.map +1 -1
  112. package/cjs/domain/session/sessionStateValidation.js +7 -8
  113. package/cjs/domain/session/sessionStateValidation.js.map +1 -1
  114. package/cjs/domain/session/sessionStore.d.ts +4 -33
  115. package/cjs/domain/session/sessionStore.js +42 -180
  116. package/cjs/domain/session/sessionStore.js.map +1 -1
  117. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +7 -11
  118. package/cjs/domain/session/storeStrategies/sessionInCookie.js +89 -95
  119. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
  120. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +1 -4
  121. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +39 -38
  122. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
  123. package/cjs/domain/session/storeStrategies/sessionInMemory.d.ts +12 -0
  124. package/cjs/domain/session/storeStrategies/sessionInMemory.js +35 -0
  125. package/cjs/domain/session/storeStrategies/sessionInMemory.js.map +1 -0
  126. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -7
  127. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +7 -4
  128. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -1
  129. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
  130. package/cjs/domain/synthetics/syntheticsWorkerValues.js +33 -25
  131. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
  132. package/cjs/domain/tags.d.ts +0 -1
  133. package/cjs/domain/tags.js +22 -58
  134. package/cjs/domain/tags.js.map +1 -1
  135. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +8 -7
  136. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -1
  137. package/cjs/domain/telemetry/telemetry.d.ts +8 -8
  138. package/cjs/domain/telemetry/telemetry.js +196 -211
  139. package/cjs/domain/telemetry/telemetry.js.map +1 -1
  140. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +97 -17
  141. package/cjs/domain/trackingConsent.d.ts +1 -0
  142. package/cjs/domain/trackingConsent.js +35 -24
  143. package/cjs/domain/trackingConsent.js.map +1 -1
  144. package/cjs/index.d.ts +25 -22
  145. package/cjs/index.js +281 -194
  146. package/cjs/tools/abstractLifeCycle.js +19 -26
  147. package/cjs/tools/abstractLifeCycle.js.map +1 -1
  148. package/cjs/tools/catchUserErrors.js +12 -12
  149. package/cjs/tools/catchUserErrors.js.map +1 -1
  150. package/cjs/tools/display.d.ts +1 -35
  151. package/cjs/tools/display.js +11 -43
  152. package/cjs/tools/display.js.map +1 -1
  153. package/cjs/tools/encoder.js +36 -37
  154. package/cjs/tools/encoder.js.map +1 -1
  155. package/cjs/tools/experimentalFeatures.d.ts +1 -4
  156. package/cjs/tools/experimentalFeatures.js +29 -40
  157. package/cjs/tools/experimentalFeatures.js.map +1 -1
  158. package/cjs/tools/getZoneJsOriginalValue.d.ts +1 -1
  159. package/cjs/tools/getZoneJsOriginalValue.js +22 -25
  160. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -1
  161. package/cjs/tools/globalObject.d.ts +16 -15
  162. package/cjs/tools/globalObject.js +7 -43
  163. package/cjs/tools/globalObject.js.map +1 -1
  164. package/cjs/tools/instrumentMethod.d.ts +58 -1
  165. package/cjs/tools/instrumentMethod.js +174 -112
  166. package/cjs/tools/instrumentMethod.js.map +1 -1
  167. package/cjs/tools/matchOption.js +25 -29
  168. package/cjs/tools/matchOption.js.map +1 -1
  169. package/cjs/tools/mockable.d.ts +22 -0
  170. package/cjs/tools/mockable.js +28 -0
  171. package/cjs/tools/mockable.js.map +1 -0
  172. package/cjs/tools/monitor.d.ts +5 -7
  173. package/cjs/tools/monitor.js +13 -58
  174. package/cjs/tools/monitor.js.map +1 -1
  175. package/cjs/tools/observable.d.ts +3 -1
  176. package/cjs/tools/observable.js +75 -85
  177. package/cjs/tools/observable.js.map +1 -1
  178. package/cjs/tools/queueMicrotask.js +9 -14
  179. package/cjs/tools/queueMicrotask.js.map +1 -1
  180. package/cjs/tools/readBytesFromStream.d.ts +1 -6
  181. package/cjs/tools/readBytesFromStream.js +18 -25
  182. package/cjs/tools/readBytesFromStream.js.map +1 -1
  183. package/cjs/tools/requestIdleCallback.js +22 -29
  184. package/cjs/tools/requestIdleCallback.js.map +1 -1
  185. package/cjs/tools/sendToExtension.js +10 -8
  186. package/cjs/tools/sendToExtension.js.map +1 -1
  187. package/cjs/tools/serialisation/jsonStringify.js +37 -42
  188. package/cjs/tools/serialisation/jsonStringify.js.map +1 -1
  189. package/cjs/tools/serialisation/sanitize.d.ts +1 -0
  190. package/cjs/tools/serialisation/sanitize.js +111 -167
  191. package/cjs/tools/serialisation/sanitize.js.map +1 -1
  192. package/cjs/tools/serialisation/stringify.d.ts +2 -0
  193. package/cjs/tools/serialisation/stringify.js +18 -0
  194. package/cjs/tools/serialisation/stringify.js.map +1 -0
  195. package/cjs/tools/stackTrace/computeStackTrace.js +121 -159
  196. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -1
  197. package/cjs/tools/stackTrace/handlingStack.d.ts +1 -1
  198. package/cjs/tools/stackTrace/handlingStack.js +39 -38
  199. package/cjs/tools/stackTrace/handlingStack.js.map +1 -1
  200. package/cjs/tools/taskQueue.js +40 -49
  201. package/cjs/tools/taskQueue.js.map +1 -1
  202. package/cjs/tools/timer.d.ts +2 -1
  203. package/cjs/tools/timer.js +14 -13
  204. package/cjs/tools/timer.js.map +1 -1
  205. package/cjs/tools/utils/arrayUtils.d.ts +1 -0
  206. package/cjs/tools/utils/arrayUtils.js +17 -13
  207. package/cjs/tools/utils/arrayUtils.js.map +1 -1
  208. package/cjs/tools/utils/browserDetection.d.ts +1 -0
  209. package/cjs/tools/utils/browserDetection.js +25 -23
  210. package/cjs/tools/utils/browserDetection.js.map +1 -1
  211. package/cjs/tools/utils/byteUtils.js +20 -28
  212. package/cjs/tools/utils/byteUtils.js.map +1 -1
  213. package/cjs/tools/utils/functionUtils.js +33 -40
  214. package/cjs/tools/utils/functionUtils.js.map +1 -1
  215. package/cjs/tools/utils/numberUtils.js +15 -14
  216. package/cjs/tools/utils/numberUtils.js.map +1 -1
  217. package/cjs/tools/utils/objectUtils.d.ts +2 -0
  218. package/cjs/tools/utils/objectUtils.js +27 -14
  219. package/cjs/tools/utils/objectUtils.js.map +1 -1
  220. package/cjs/tools/utils/polyfills.js +12 -16
  221. package/cjs/tools/utils/polyfills.js.map +1 -1
  222. package/cjs/tools/utils/responseUtils.js +11 -12
  223. package/cjs/tools/utils/responseUtils.js.map +1 -1
  224. package/cjs/tools/utils/stringUtils.js +56 -77
  225. package/cjs/tools/utils/stringUtils.js.map +1 -1
  226. package/cjs/tools/utils/timezone.js +9 -10
  227. package/cjs/tools/utils/timezone.js.map +1 -1
  228. package/cjs/tools/utils/urlPolyfill.js +42 -46
  229. package/cjs/tools/utils/urlPolyfill.js.map +1 -1
  230. package/cjs/tools/valueHistory.d.ts +9 -1
  231. package/cjs/tools/valueHistory.js +110 -99
  232. package/cjs/tools/valueHistory.js.map +1 -1
  233. package/cjs/transport/batch.js +73 -106
  234. package/cjs/transport/batch.js.map +1 -1
  235. package/cjs/transport/eventBridge.d.ts +6 -2
  236. package/cjs/transport/eventBridge.js +53 -38
  237. package/cjs/transport/eventBridge.js.map +1 -1
  238. package/cjs/transport/flushController.d.ts +2 -12
  239. package/cjs/transport/flushController.js +98 -117
  240. package/cjs/transport/flushController.js.map +1 -1
  241. package/cjs/transport/httpRequest.d.ts +0 -1
  242. package/cjs/transport/httpRequest.js +51 -85
  243. package/cjs/transport/httpRequest.js.map +1 -1
  244. package/cjs/transport/index.d.ts +1 -0
  245. package/cjs/transport/sendWithRetryStrategy.js +133 -146
  246. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  247. package/esm/boot/displayAlreadyInitializedError.mjs +9 -0
  248. package/esm/boot/displayAlreadyInitializedError.mjs.map +1 -0
  249. package/esm/boot/init.mjs +30 -0
  250. package/esm/boot/init.mjs.map +1 -0
  251. package/esm/browser/addEventListener.mjs +107 -0
  252. package/esm/browser/addEventListener.mjs.map +1 -0
  253. package/esm/browser/cookie.mjs +81 -0
  254. package/esm/browser/cookie.mjs.map +1 -0
  255. package/esm/browser/cookieAccess.mjs +111 -0
  256. package/esm/browser/cookieAccess.mjs.map +1 -0
  257. package/esm/browser/fetch.mjs +18 -0
  258. package/esm/browser/fetch.mjs.map +1 -0
  259. package/esm/browser/fetchObservable.mjs +90 -0
  260. package/esm/browser/fetchObservable.mjs.map +1 -0
  261. package/esm/browser/pageMayExitObservable.mjs +44 -0
  262. package/esm/browser/pageMayExitObservable.mjs.map +1 -0
  263. package/esm/browser/runOnReadyState.mjs +19 -0
  264. package/esm/browser/runOnReadyState.mjs.map +1 -0
  265. package/esm/browser/xhrObservable.mjs +74 -0
  266. package/esm/browser/xhrObservable.mjs.map +1 -0
  267. package/esm/domain/allowedTrackingOrigins.mjs +27 -0
  268. package/esm/domain/allowedTrackingOrigins.mjs.map +1 -0
  269. package/esm/domain/bufferedData.mjs +43 -0
  270. package/esm/domain/bufferedData.mjs.map +1 -0
  271. package/esm/domain/configuration/configuration.mjs +131 -0
  272. package/esm/domain/configuration/configuration.mjs.map +1 -0
  273. package/esm/domain/configuration/endpointBuilder.mjs +72 -0
  274. package/esm/domain/configuration/endpointBuilder.mjs.map +1 -0
  275. package/esm/domain/connectivity/connectivity.mjs +14 -0
  276. package/esm/domain/connectivity/connectivity.mjs.map +1 -0
  277. package/esm/domain/console/consoleObservable.mjs +69 -0
  278. package/esm/domain/console/consoleObservable.mjs.map +1 -0
  279. package/esm/domain/context/contextConstants.mjs +25 -0
  280. package/esm/domain/context/contextConstants.mjs.map +1 -0
  281. package/esm/domain/context/contextManager.mjs +55 -0
  282. package/esm/domain/context/contextManager.mjs.map +1 -0
  283. package/esm/domain/context/contextUtils.mjs +15 -0
  284. package/esm/domain/context/contextUtils.mjs.map +1 -0
  285. package/esm/domain/context/defineContextMethod.mjs +19 -0
  286. package/esm/domain/context/defineContextMethod.mjs.map +1 -0
  287. package/esm/domain/context/storeContextManager.mjs +36 -0
  288. package/esm/domain/context/storeContextManager.mjs.map +1 -0
  289. package/esm/domain/contexts/accountContext.mjs +29 -0
  290. package/esm/domain/contexts/accountContext.mjs.map +1 -0
  291. package/esm/domain/contexts/globalContext.mjs +20 -0
  292. package/esm/domain/contexts/globalContext.mjs.map +1 -0
  293. package/esm/domain/contexts/tabContext.mjs +27 -0
  294. package/esm/domain/contexts/tabContext.mjs.map +1 -0
  295. package/esm/domain/contexts/telemetrySessionContext.mjs +17 -0
  296. package/esm/domain/contexts/telemetrySessionContext.mjs.map +1 -0
  297. package/esm/domain/contexts/userContext.mjs +32 -0
  298. package/esm/domain/contexts/userContext.mjs.map +1 -0
  299. package/esm/domain/deflate/deflate.types.mjs +12 -0
  300. package/esm/domain/deflate/deflate.types.mjs.map +1 -0
  301. package/esm/domain/error/error.mjs +73 -0
  302. package/esm/domain/error/error.mjs.map +1 -0
  303. package/esm/domain/error/error.types.mjs +24 -0
  304. package/esm/domain/error/error.types.mjs.map +1 -0
  305. package/esm/domain/error/trackRuntimeError.mjs +48 -0
  306. package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
  307. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +36 -0
  308. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs.map +1 -0
  309. package/esm/domain/extension/extensionUtils.mjs +23 -0
  310. package/esm/domain/extension/extensionUtils.mjs.map +1 -0
  311. package/esm/domain/intakeSites.mjs +18 -0
  312. package/esm/domain/intakeSites.mjs.map +1 -0
  313. package/esm/domain/report/reportObservable.mjs +86 -0
  314. package/esm/domain/report/reportObservable.mjs.map +1 -0
  315. package/esm/domain/resourceUtils.mjs +21 -0
  316. package/esm/domain/resourceUtils.mjs.map +1 -0
  317. package/esm/domain/sampler.mjs +37 -0
  318. package/esm/domain/sampler.mjs.map +1 -0
  319. package/esm/domain/session/sessionConstants.mjs +18 -0
  320. package/esm/domain/session/sessionConstants.mjs.map +1 -0
  321. package/esm/domain/session/sessionManager.mjs +225 -0
  322. package/esm/domain/session/sessionManager.mjs.map +1 -0
  323. package/esm/domain/session/sessionState.mjs +76 -0
  324. package/esm/domain/session/sessionState.mjs.map +1 -0
  325. package/esm/domain/session/sessionStateValidation.mjs +9 -0
  326. package/esm/domain/session/sessionStateValidation.mjs.map +1 -0
  327. package/esm/domain/session/sessionStore.mjs +46 -0
  328. package/esm/domain/session/sessionStore.mjs.map +1 -0
  329. package/esm/domain/session/storeStrategies/sessionInCookie.mjs +97 -0
  330. package/esm/domain/session/storeStrategies/sessionInCookie.mjs.map +1 -0
  331. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs +42 -0
  332. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs.map +1 -0
  333. package/esm/domain/session/storeStrategies/sessionInMemory.mjs +33 -0
  334. package/esm/domain/session/storeStrategies/sessionInMemory.mjs.map +1 -0
  335. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs +7 -0
  336. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs.map +1 -0
  337. package/esm/domain/synthetics/syntheticsWorkerValues.mjs +37 -0
  338. package/esm/domain/synthetics/syntheticsWorkerValues.mjs.map +1 -0
  339. package/esm/domain/tags.mjs +28 -0
  340. package/esm/domain/tags.mjs.map +1 -0
  341. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs +10 -0
  342. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs.map +1 -0
  343. package/esm/domain/telemetry/telemetry.mjs +219 -0
  344. package/esm/domain/telemetry/telemetry.mjs.map +1 -0
  345. package/esm/domain/trackingConsent.mjs +38 -0
  346. package/esm/domain/trackingConsent.mjs.map +1 -0
  347. package/esm/index.mjs +81 -0
  348. package/esm/tools/abstractLifeCycle.mjs +21 -0
  349. package/esm/tools/abstractLifeCycle.mjs.map +1 -0
  350. package/esm/tools/catchUserErrors.mjs +15 -0
  351. package/esm/tools/catchUserErrors.mjs.map +1 -0
  352. package/esm/tools/display.mjs +10 -0
  353. package/esm/tools/display.mjs.map +1 -0
  354. package/esm/tools/encoder.mjs +39 -0
  355. package/esm/tools/encoder.mjs.map +1 -0
  356. package/esm/tools/experimentalFeatures.mjs +35 -0
  357. package/esm/tools/experimentalFeatures.mjs.map +1 -0
  358. package/esm/tools/getZoneJsOriginalValue.mjs +26 -0
  359. package/esm/tools/getZoneJsOriginalValue.mjs.map +1 -0
  360. package/esm/tools/globalObject.mjs +7 -0
  361. package/esm/tools/globalObject.mjs.map +1 -0
  362. package/esm/tools/instrumentMethod.mjs +178 -0
  363. package/esm/tools/instrumentMethod.mjs.map +1 -0
  364. package/esm/tools/matchOption.mjs +30 -0
  365. package/esm/tools/matchOption.mjs.map +1 -0
  366. package/esm/tools/mockable.mjs +28 -0
  367. package/esm/tools/mockable.mjs.map +1 -0
  368. package/esm/tools/monitor.mjs +13 -0
  369. package/esm/tools/monitor.mjs.map +1 -0
  370. package/esm/tools/observable.mjs +77 -0
  371. package/esm/tools/observable.mjs.map +1 -0
  372. package/esm/tools/queueMicrotask.mjs +12 -0
  373. package/esm/tools/queueMicrotask.mjs.map +1 -0
  374. package/esm/tools/readBytesFromStream.mjs +21 -0
  375. package/esm/tools/readBytesFromStream.mjs.map +1 -0
  376. package/esm/tools/requestIdleCallback.mjs +28 -0
  377. package/esm/tools/requestIdleCallback.mjs.map +1 -0
  378. package/esm/tools/sendToExtension.mjs +13 -0
  379. package/esm/tools/sendToExtension.mjs.map +1 -0
  380. package/esm/tools/serialisation/jsonStringify.mjs +42 -0
  381. package/esm/tools/serialisation/jsonStringify.mjs.map +1 -0
  382. package/esm/tools/serialisation/sanitize.mjs +131 -0
  383. package/esm/tools/serialisation/sanitize.mjs.map +1 -0
  384. package/esm/tools/serialisation/stringify.mjs +17 -0
  385. package/esm/tools/serialisation/stringify.mjs.map +1 -0
  386. package/esm/tools/stackTrace/computeStackTrace.mjs +148 -0
  387. package/esm/tools/stackTrace/computeStackTrace.mjs.map +1 -0
  388. package/esm/tools/stackTrace/handlingStack.mjs +45 -0
  389. package/esm/tools/stackTrace/handlingStack.mjs.map +1 -0
  390. package/esm/tools/taskQueue.mjs +45 -0
  391. package/esm/tools/taskQueue.mjs.map +1 -0
  392. package/esm/tools/timer.mjs +20 -0
  393. package/esm/tools/timer.mjs.map +1 -0
  394. package/esm/tools/utils/arrayUtils.mjs +21 -0
  395. package/esm/tools/utils/arrayUtils.mjs.map +1 -0
  396. package/esm/tools/utils/browserDetection.mjs +31 -0
  397. package/esm/tools/utils/browserDetection.mjs.map +1 -0
  398. package/esm/tools/utils/byteUtils.mjs +23 -0
  399. package/esm/tools/utils/byteUtils.mjs.map +1 -0
  400. package/esm/tools/utils/functionUtils.mjs +35 -0
  401. package/esm/tools/utils/functionUtils.mjs.map +1 -0
  402. package/esm/tools/utils/numberUtils.mjs +22 -0
  403. package/esm/tools/utils/numberUtils.mjs.map +1 -0
  404. package/esm/tools/utils/objectUtils.mjs +31 -0
  405. package/esm/tools/utils/objectUtils.mjs.map +1 -0
  406. package/esm/tools/utils/polyfills.mjs +17 -0
  407. package/esm/tools/utils/polyfills.mjs.map +1 -0
  408. package/esm/tools/utils/responseUtils.mjs +15 -0
  409. package/esm/tools/utils/responseUtils.mjs.map +1 -0
  410. package/esm/tools/utils/stringUtils.mjs +66 -0
  411. package/esm/tools/utils/stringUtils.mjs.map +1 -0
  412. package/esm/tools/utils/timezone.mjs +12 -0
  413. package/esm/tools/utils/timezone.mjs.map +1 -0
  414. package/esm/tools/utils/urlPolyfill.mjs +51 -0
  415. package/esm/tools/utils/urlPolyfill.mjs.map +1 -0
  416. package/esm/tools/valueHistory.mjs +114 -0
  417. package/esm/tools/valueHistory.mjs.map +1 -0
  418. package/esm/transport/batch.mjs +77 -0
  419. package/esm/transport/batch.mjs.map +1 -0
  420. package/esm/transport/eventBridge.mjs +58 -0
  421. package/esm/transport/eventBridge.mjs.map +1 -0
  422. package/esm/transport/flushController.mjs +104 -0
  423. package/esm/transport/flushController.mjs.map +1 -0
  424. package/esm/transport/httpRequest.mjs +60 -0
  425. package/esm/transport/httpRequest.mjs.map +1 -0
  426. package/esm/transport/sendWithRetryStrategy.mjs +149 -0
  427. package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
  428. package/package.json +16 -5
  429. package/src/boot/init.ts +2 -2
  430. package/src/browser/addEventListener.ts +37 -5
  431. package/src/browser/browser.types.ts +127 -13
  432. package/src/browser/cookie.ts +21 -27
  433. package/src/browser/cookieAccess.ts +150 -0
  434. package/src/browser/fetch.ts +14 -0
  435. package/src/browser/fetchObservable.ts +22 -22
  436. package/src/browser/pageMayExitObservable.ts +7 -4
  437. package/src/browser/runOnReadyState.ts +3 -8
  438. package/src/browser/xhrObservable.ts +22 -12
  439. package/src/domain/allowedTrackingOrigins.ts +5 -5
  440. package/src/domain/bufferedData.ts +41 -14
  441. package/src/domain/configuration/configuration.ts +87 -72
  442. package/src/domain/configuration/endpointBuilder.ts +82 -52
  443. package/src/domain/configuration/index.ts +2 -2
  444. package/src/domain/connectivity/connectivity.ts +3 -15
  445. package/src/domain/console/consoleObservable.ts +3 -3
  446. package/src/domain/context/contextManager.ts +1 -1
  447. package/src/domain/context/contextUtils.ts +1 -1
  448. package/src/domain/context/defineContextMethod.ts +3 -3
  449. package/src/domain/context/storeContextManager.ts +9 -6
  450. package/src/domain/contexts/accountContext.ts +5 -5
  451. package/src/domain/contexts/globalContext.ts +4 -5
  452. package/src/domain/contexts/tabContext.ts +43 -0
  453. package/src/domain/contexts/telemetrySessionContext.ts +26 -0
  454. package/src/domain/contexts/userContext.ts +7 -11
  455. package/src/domain/error/error.ts +53 -23
  456. package/src/domain/error/error.types.ts +1 -1
  457. package/src/domain/error/trackRuntimeError.ts +11 -4
  458. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +1 -1
  459. package/src/domain/intakeSites.ts +8 -3
  460. package/src/domain/report/reportObservable.ts +11 -7
  461. package/src/domain/sampler.ts +64 -0
  462. package/src/domain/session/sessionConstants.ts +2 -1
  463. package/src/domain/session/sessionManager.ts +281 -176
  464. package/src/domain/session/sessionState.ts +64 -8
  465. package/src/domain/session/sessionStore.ts +57 -223
  466. package/src/domain/session/storeStrategies/sessionInCookie.ts +121 -107
  467. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +33 -21
  468. package/src/domain/session/storeStrategies/sessionInMemory.ts +55 -0
  469. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +28 -6
  470. package/src/domain/synthetics/syntheticsWorkerValues.ts +44 -13
  471. package/src/domain/tags.ts +0 -16
  472. package/src/domain/telemetry/telemetry.ts +38 -34
  473. package/src/domain/telemetry/telemetryEvent.types.ts +116 -20
  474. package/src/domain/trackingConsent.ts +18 -3
  475. package/src/index.ts +51 -31
  476. package/src/tools/display.ts +2 -50
  477. package/src/tools/experimentalFeatures.ts +1 -4
  478. package/src/tools/getZoneJsOriginalValue.ts +3 -3
  479. package/src/tools/globalObject.ts +27 -41
  480. package/src/tools/instrumentMethod.ts +230 -20
  481. package/src/tools/matchOption.ts +3 -1
  482. package/src/tools/mockable.ts +32 -0
  483. package/src/tools/monitor.ts +14 -62
  484. package/src/tools/observable.ts +9 -1
  485. package/src/tools/queueMicrotask.ts +6 -1
  486. package/src/tools/readBytesFromStream.ts +3 -12
  487. package/src/tools/requestIdleCallback.ts +1 -1
  488. package/src/tools/serialisation/sanitize.ts +67 -65
  489. package/src/tools/serialisation/stringify.ts +18 -0
  490. package/src/tools/stackTrace/computeStackTrace.ts +15 -13
  491. package/src/tools/stackTrace/handlingStack.ts +14 -1
  492. package/src/tools/taskQueue.ts +5 -3
  493. package/src/tools/timer.ts +7 -6
  494. package/src/tools/utils/arrayUtils.ts +7 -0
  495. package/src/tools/utils/browserDetection.ts +8 -0
  496. package/src/tools/utils/byteUtils.ts +1 -5
  497. package/src/tools/utils/functionUtils.ts +2 -2
  498. package/src/tools/utils/objectUtils.ts +20 -0
  499. package/src/tools/utils/stringUtils.ts +4 -1
  500. package/src/tools/utils/urlPolyfill.ts +5 -4
  501. package/src/tools/valueHistory.ts +39 -6
  502. package/src/transport/batch.ts +9 -18
  503. package/src/transport/eventBridge.ts +23 -10
  504. package/src/transport/flushController.ts +17 -24
  505. package/src/transport/httpRequest.ts +4 -36
  506. package/src/transport/index.ts +1 -0
  507. package/src/transport/sendWithRetryStrategy.ts +1 -1
  508. package/cjs/browser/browser.types.js +0 -6
  509. package/cjs/browser/browser.types.js.map +0 -1
  510. package/cjs/domain/configuration/index.js +0 -16
  511. package/cjs/domain/configuration/index.js.map +0 -1
  512. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -20
  513. package/cjs/domain/configuration/transportConfiguration.js +0 -54
  514. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  515. package/cjs/domain/connectivity/index.js +0 -18
  516. package/cjs/domain/connectivity/index.js.map +0 -1
  517. package/cjs/domain/contexts/rumInternalContext.type.js +0 -3
  518. package/cjs/domain/contexts/rumInternalContext.type.js.map +0 -1
  519. package/cjs/domain/deflate/index.js +0 -18
  520. package/cjs/domain/deflate/index.js.map +0 -1
  521. package/cjs/domain/report/browser.types.js +0 -3
  522. package/cjs/domain/report/browser.types.js.map +0 -1
  523. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  524. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  525. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  526. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -12
  527. package/cjs/domain/session/sessionStoreOperations.js +0 -119
  528. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  529. package/cjs/domain/telemetry/index.js +0 -28
  530. package/cjs/domain/telemetry/index.js.map +0 -1
  531. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  532. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  533. package/cjs/index.js.map +0 -1
  534. package/cjs/tools/abstractHooks.d.ts +0 -24
  535. package/cjs/tools/abstractHooks.js +0 -41
  536. package/cjs/tools/abstractHooks.js.map +0 -1
  537. package/cjs/tools/boundedBuffer.d.ts +0 -16
  538. package/cjs/tools/boundedBuffer.js +0 -32
  539. package/cjs/tools/boundedBuffer.js.map +0 -1
  540. package/cjs/tools/mergeInto.d.ts +0 -25
  541. package/cjs/tools/mergeInto.js +0 -98
  542. package/cjs/tools/mergeInto.js.map +0 -1
  543. package/cjs/tools/serialisation/context.js +0 -3
  544. package/cjs/tools/serialisation/context.js.map +0 -1
  545. package/cjs/tools/utils/timeUtils.d.ts +0 -53
  546. package/cjs/tools/utils/timeUtils.js +0 -101
  547. package/cjs/tools/utils/timeUtils.js.map +0 -1
  548. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  549. package/cjs/tools/utils/typeUtils.js +0 -16
  550. package/cjs/tools/utils/typeUtils.js.map +0 -1
  551. package/cjs/transport/index.js +0 -15
  552. package/cjs/transport/index.js.map +0 -1
  553. package/esm/boot/displayAlreadyInitializedError.d.ts +0 -2
  554. package/esm/boot/displayAlreadyInitializedError.js +0 -7
  555. package/esm/boot/displayAlreadyInitializedError.js.map +0 -1
  556. package/esm/boot/init.d.ts +0 -14
  557. package/esm/boot/init.js +0 -35
  558. package/esm/boot/init.js.map +0 -1
  559. package/esm/browser/addEventListener.d.ts +0 -87
  560. package/esm/browser/addEventListener.js +0 -51
  561. package/esm/browser/addEventListener.js.map +0 -1
  562. package/esm/browser/browser.types.d.ts +0 -51
  563. package/esm/browser/browser.types.js +0 -5
  564. package/esm/browser/browser.types.js.map +0 -1
  565. package/esm/browser/cookie.d.ts +0 -28
  566. package/esm/browser/cookie.js +0 -103
  567. package/esm/browser/cookie.js.map +0 -1
  568. package/esm/browser/fetchObservable.d.ts +0 -38
  569. package/esm/browser/fetchObservable.js +0 -99
  570. package/esm/browser/fetchObservable.js.map +0 -1
  571. package/esm/browser/pageMayExitObservable.d.ts +0 -14
  572. package/esm/browser/pageMayExitObservable.js +0 -40
  573. package/esm/browser/pageMayExitObservable.js.map +0 -1
  574. package/esm/browser/runOnReadyState.d.ts +0 -5
  575. package/esm/browser/runOnReadyState.js +0 -16
  576. package/esm/browser/runOnReadyState.js.map +0 -1
  577. package/esm/browser/xhrObservable.d.ts +0 -24
  578. package/esm/browser/xhrObservable.js +0 -83
  579. package/esm/browser/xhrObservable.js.map +0 -1
  580. package/esm/domain/allowedTrackingOrigins.d.ts +0 -4
  581. package/esm/domain/allowedTrackingOrigins.js +0 -21
  582. package/esm/domain/allowedTrackingOrigins.js.map +0 -1
  583. package/esm/domain/bufferedData.d.ts +0 -14
  584. package/esm/domain/bufferedData.js +0 -19
  585. package/esm/domain/bufferedData.js.map +0 -1
  586. package/esm/domain/configuration/configuration.d.ts +0 -312
  587. package/esm/domain/configuration/configuration.js +0 -132
  588. package/esm/domain/configuration/configuration.js.map +0 -1
  589. package/esm/domain/configuration/endpointBuilder.d.ts +0 -12
  590. package/esm/domain/configuration/endpointBuilder.js +0 -77
  591. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  592. package/esm/domain/configuration/index.d.ts +0 -5
  593. package/esm/domain/configuration/index.js +0 -4
  594. package/esm/domain/configuration/index.js.map +0 -1
  595. package/esm/domain/configuration/transportConfiguration.d.ts +0 -20
  596. package/esm/domain/configuration/transportConfiguration.js +0 -50
  597. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  598. package/esm/domain/connectivity/connectivity.d.ts +0 -14
  599. package/esm/domain/connectivity/connectivity.js +0 -11
  600. package/esm/domain/connectivity/connectivity.js.map +0 -1
  601. package/esm/domain/connectivity/index.d.ts +0 -1
  602. package/esm/domain/connectivity/index.js +0 -2
  603. package/esm/domain/connectivity/index.js.map +0 -1
  604. package/esm/domain/console/consoleObservable.d.ts +0 -21
  605. package/esm/domain/console/consoleObservable.js +0 -80
  606. package/esm/domain/console/consoleObservable.js.map +0 -1
  607. package/esm/domain/context/contextConstants.d.ts +0 -21
  608. package/esm/domain/context/contextConstants.js +0 -15
  609. package/esm/domain/context/contextConstants.js.map +0 -1
  610. package/esm/domain/context/contextManager.d.ts +0 -19
  611. package/esm/domain/context/contextManager.js +0 -57
  612. package/esm/domain/context/contextManager.js.map +0 -1
  613. package/esm/domain/context/contextUtils.d.ts +0 -5
  614. package/esm/domain/context/contextUtils.js +0 -13
  615. package/esm/domain/context/contextUtils.js.map +0 -1
  616. package/esm/domain/context/defineContextMethod.d.ts +0 -6
  617. package/esm/domain/context/defineContextMethod.js +0 -17
  618. package/esm/domain/context/defineContextMethod.js.map +0 -1
  619. package/esm/domain/context/storeContextManager.d.ts +0 -6
  620. package/esm/domain/context/storeContextManager.js +0 -35
  621. package/esm/domain/context/storeContextManager.js.map +0 -1
  622. package/esm/domain/contexts/accountContext.d.ts +0 -26
  623. package/esm/domain/contexts/accountContext.js +0 -29
  624. package/esm/domain/contexts/accountContext.js.map +0 -1
  625. package/esm/domain/contexts/globalContext.d.ts +0 -18
  626. package/esm/domain/contexts/globalContext.js +0 -17
  627. package/esm/domain/contexts/globalContext.js.map +0 -1
  628. package/esm/domain/contexts/rumInternalContext.type.d.ts +0 -14
  629. package/esm/domain/contexts/rumInternalContext.type.js +0 -2
  630. package/esm/domain/contexts/rumInternalContext.type.js.map +0 -1
  631. package/esm/domain/contexts/userContext.d.ts +0 -29
  632. package/esm/domain/contexts/userContext.js +0 -41
  633. package/esm/domain/contexts/userContext.js.map +0 -1
  634. package/esm/domain/deflate/deflate.types.d.ts +0 -40
  635. package/esm/domain/deflate/deflate.types.js +0 -2
  636. package/esm/domain/deflate/deflate.types.js.map +0 -1
  637. package/esm/domain/deflate/index.d.ts +0 -1
  638. package/esm/domain/deflate/index.js +0 -2
  639. package/esm/domain/deflate/index.js.map +0 -1
  640. package/esm/domain/error/error.d.ts +0 -23
  641. package/esm/domain/error/error.js +0 -65
  642. package/esm/domain/error/error.js.map +0 -1
  643. package/esm/domain/error/error.types.d.ts +0 -47
  644. package/esm/domain/error/error.types.js +0 -10
  645. package/esm/domain/error/error.types.js.map +0 -1
  646. package/esm/domain/error/trackRuntimeError.d.ts +0 -11
  647. package/esm/domain/error/trackRuntimeError.js +0 -43
  648. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  649. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  650. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -38
  651. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  652. package/esm/domain/extension/extensionUtils.d.ts +0 -10
  653. package/esm/domain/extension/extensionUtils.js +0 -25
  654. package/esm/domain/extension/extensionUtils.js.map +0 -1
  655. package/esm/domain/intakeSites.d.ts +0 -8
  656. package/esm/domain/intakeSites.js +0 -8
  657. package/esm/domain/intakeSites.js.map +0 -1
  658. package/esm/domain/report/browser.types.d.ts +0 -34
  659. package/esm/domain/report/browser.types.js +0 -2
  660. package/esm/domain/report/browser.types.js.map +0 -1
  661. package/esm/domain/report/reportObservable.d.ts +0 -14
  662. package/esm/domain/report/reportObservable.js +0 -95
  663. package/esm/domain/report/reportObservable.js.map +0 -1
  664. package/esm/domain/resourceUtils.d.ts +0 -18
  665. package/esm/domain/resourceUtils.js +0 -17
  666. package/esm/domain/resourceUtils.js.map +0 -1
  667. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  668. package/esm/domain/session/oldCookiesMigration.js +0 -36
  669. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  670. package/esm/domain/session/sessionConstants.d.ts +0 -15
  671. package/esm/domain/session/sessionConstants.js +0 -13
  672. package/esm/domain/session/sessionConstants.js.map +0 -1
  673. package/esm/domain/session/sessionManager.d.ts +0 -28
  674. package/esm/domain/session/sessionManager.js +0 -196
  675. package/esm/domain/session/sessionManager.js.map +0 -1
  676. package/esm/domain/session/sessionState.d.ts +0 -16
  677. package/esm/domain/session/sessionState.js +0 -60
  678. package/esm/domain/session/sessionState.js.map +0 -1
  679. package/esm/domain/session/sessionStateValidation.d.ts +0 -3
  680. package/esm/domain/session/sessionStateValidation.js +0 -7
  681. package/esm/domain/session/sessionStateValidation.js.map +0 -1
  682. package/esm/domain/session/sessionStore.d.ts +0 -38
  683. package/esm/domain/session/sessionStore.js +0 -179
  684. package/esm/domain/session/sessionStore.js.map +0 -1
  685. package/esm/domain/session/sessionStoreOperations.d.ts +0 -12
  686. package/esm/domain/session/sessionStoreOperations.js +0 -114
  687. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  688. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -12
  689. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -98
  690. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  691. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -6
  692. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -37
  693. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  694. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -16
  695. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  696. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  697. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -12
  698. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -24
  699. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  700. package/esm/domain/tags.d.ts +0 -6
  701. package/esm/domain/tags.js +0 -60
  702. package/esm/domain/tags.js.map +0 -1
  703. package/esm/domain/telemetry/index.d.ts +0 -4
  704. package/esm/domain/telemetry/index.js +0 -3
  705. package/esm/domain/telemetry/index.js.map +0 -1
  706. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -18
  707. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -6
  708. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  709. package/esm/domain/telemetry/telemetry.d.ts +0 -56
  710. package/esm/domain/telemetry/telemetry.js +0 -228
  711. package/esm/domain/telemetry/telemetry.js.map +0 -1
  712. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -866
  713. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  714. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  715. package/esm/domain/trackingConsent.d.ts +0 -13
  716. package/esm/domain/trackingConsent.js +0 -24
  717. package/esm/domain/trackingConsent.js.map +0 -1
  718. package/esm/index.d.ts +0 -100
  719. package/esm/index.js +0 -76
  720. package/esm/index.js.map +0 -1
  721. package/esm/tools/abstractHooks.d.ts +0 -24
  722. package/esm/tools/abstractHooks.js +0 -37
  723. package/esm/tools/abstractHooks.js.map +0 -1
  724. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  725. package/esm/tools/abstractLifeCycle.js +0 -24
  726. package/esm/tools/abstractLifeCycle.js.map +0 -1
  727. package/esm/tools/boundedBuffer.d.ts +0 -16
  728. package/esm/tools/boundedBuffer.js +0 -29
  729. package/esm/tools/boundedBuffer.js.map +0 -1
  730. package/esm/tools/catchUserErrors.d.ts +0 -1
  731. package/esm/tools/catchUserErrors.js +0 -12
  732. package/esm/tools/catchUserErrors.js.map +0 -1
  733. package/esm/tools/display.d.ts +0 -38
  734. package/esm/tools/display.js +0 -41
  735. package/esm/tools/display.js.map +0 -1
  736. package/esm/tools/encoder.d.ts +0 -54
  737. package/esm/tools/encoder.js +0 -37
  738. package/esm/tools/encoder.js.map +0 -1
  739. package/esm/tools/experimentalFeatures.d.ts +0 -21
  740. package/esm/tools/experimentalFeatures.js +0 -42
  741. package/esm/tools/experimentalFeatures.js.map +0 -1
  742. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  743. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  744. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  745. package/esm/tools/globalObject.d.ts +0 -19
  746. package/esm/tools/globalObject.js +0 -40
  747. package/esm/tools/globalObject.js.map +0 -1
  748. package/esm/tools/instrumentMethod.d.ts +0 -75
  749. package/esm/tools/instrumentMethod.js +0 -114
  750. package/esm/tools/instrumentMethod.js.map +0 -1
  751. package/esm/tools/matchOption.d.ts +0 -8
  752. package/esm/tools/matchOption.js +0 -31
  753. package/esm/tools/matchOption.js.map +0 -1
  754. package/esm/tools/mergeInto.d.ts +0 -25
  755. package/esm/tools/mergeInto.js +0 -93
  756. package/esm/tools/mergeInto.js.map +0 -1
  757. package/esm/tools/monitor.d.ts +0 -9
  758. package/esm/tools/monitor.js +0 -52
  759. package/esm/tools/monitor.js.map +0 -1
  760. package/esm/tools/observable.d.ts +0 -30
  761. package/esm/tools/observable.js +0 -83
  762. package/esm/tools/observable.js.map +0 -1
  763. package/esm/tools/queueMicrotask.d.ts +0 -1
  764. package/esm/tools/queueMicrotask.js +0 -14
  765. package/esm/tools/queueMicrotask.js.map +0 -1
  766. package/esm/tools/readBytesFromStream.d.ts +0 -10
  767. package/esm/tools/readBytesFromStream.js +0 -25
  768. package/esm/tools/readBytesFromStream.js.map +0 -1
  769. package/esm/tools/requestIdleCallback.d.ts +0 -12
  770. package/esm/tools/requestIdleCallback.js +0 -30
  771. package/esm/tools/requestIdleCallback.js.map +0 -1
  772. package/esm/tools/sendToExtension.d.ts +0 -3
  773. package/esm/tools/sendToExtension.js +0 -8
  774. package/esm/tools/sendToExtension.js.map +0 -1
  775. package/esm/tools/serialisation/context.d.ts +0 -9
  776. package/esm/tools/serialisation/context.js +0 -2
  777. package/esm/tools/serialisation/context.js.map +0 -1
  778. package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
  779. package/esm/tools/serialisation/jsonStringify.js +0 -44
  780. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  781. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  782. package/esm/tools/serialisation/sanitize.js +0 -185
  783. package/esm/tools/serialisation/sanitize.js.map +0 -1
  784. package/esm/tools/stackTrace/computeStackTrace.d.ts +0 -25
  785. package/esm/tools/stackTrace/computeStackTrace.js +0 -183
  786. package/esm/tools/stackTrace/computeStackTrace.js.map +0 -1
  787. package/esm/tools/stackTrace/handlingStack.d.ts +0 -10
  788. package/esm/tools/stackTrace/handlingStack.js +0 -41
  789. package/esm/tools/stackTrace/handlingStack.js.map +0 -1
  790. package/esm/tools/taskQueue.d.ts +0 -15
  791. package/esm/tools/taskQueue.js +0 -50
  792. package/esm/tools/taskQueue.js.map +0 -1
  793. package/esm/tools/timer.d.ts +0 -5
  794. package/esm/tools/timer.js +0 -16
  795. package/esm/tools/timer.js.map +0 -1
  796. package/esm/tools/utils/arrayUtils.d.ts +0 -3
  797. package/esm/tools/utils/arrayUtils.js +0 -15
  798. package/esm/tools/utils/arrayUtils.js.map +0 -1
  799. package/esm/tools/utils/browserDetection.d.ts +0 -8
  800. package/esm/tools/utils/browserDetection.js +0 -28
  801. package/esm/tools/utils/browserDetection.js.map +0 -1
  802. package/esm/tools/utils/byteUtils.d.ts +0 -8
  803. package/esm/tools/utils/byteUtils.js +0 -29
  804. package/esm/tools/utils/byteUtils.js.map +0 -1
  805. package/esm/tools/utils/functionUtils.d.ts +0 -8
  806. package/esm/tools/utils/functionUtils.js +0 -39
  807. package/esm/tools/utils/functionUtils.js.map +0 -1
  808. package/esm/tools/utils/numberUtils.d.ts +0 -9
  809. package/esm/tools/utils/numberUtils.js +0 -18
  810. package/esm/tools/utils/numberUtils.js.map +0 -1
  811. package/esm/tools/utils/objectUtils.d.ts +0 -10
  812. package/esm/tools/utils/objectUtils.js +0 -17
  813. package/esm/tools/utils/objectUtils.js.map +0 -1
  814. package/esm/tools/utils/polyfills.d.ts +0 -7
  815. package/esm/tools/utils/polyfills.js +0 -18
  816. package/esm/tools/utils/polyfills.js.map +0 -1
  817. package/esm/tools/utils/responseUtils.d.ts +0 -2
  818. package/esm/tools/utils/responseUtils.js +0 -13
  819. package/esm/tools/utils/responseUtils.js.map +0 -1
  820. package/esm/tools/utils/stringUtils.d.ts +0 -23
  821. package/esm/tools/utils/stringUtils.js +0 -84
  822. package/esm/tools/utils/stringUtils.js.map +0 -1
  823. package/esm/tools/utils/timeUtils.d.ts +0 -53
  824. package/esm/tools/utils/timeUtils.js +0 -84
  825. package/esm/tools/utils/timeUtils.js.map +0 -1
  826. package/esm/tools/utils/timezone.d.ts +0 -1
  827. package/esm/tools/utils/timezone.js +0 -10
  828. package/esm/tools/utils/timezone.js.map +0 -1
  829. package/esm/tools/utils/typeUtils.d.ts +0 -4
  830. package/esm/tools/utils/typeUtils.js +0 -13
  831. package/esm/tools/utils/typeUtils.js.map +0 -1
  832. package/esm/tools/utils/urlPolyfill.d.ts +0 -5
  833. package/esm/tools/utils/urlPolyfill.js +0 -52
  834. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  835. package/esm/tools/valueHistory.d.ts +0 -27
  836. package/esm/tools/valueHistory.js +0 -100
  837. package/esm/tools/valueHistory.js.map +0 -1
  838. package/esm/transport/batch.d.ts +0 -16
  839. package/esm/transport/batch.js +0 -106
  840. package/esm/transport/batch.js.map +0 -1
  841. package/esm/transport/eventBridge.d.ts +0 -21
  842. package/esm/transport/eventBridge.js +0 -41
  843. package/esm/transport/eventBridge.js.map +0 -1
  844. package/esm/transport/flushController.d.ts +0 -65
  845. package/esm/transport/flushController.js +0 -119
  846. package/esm/transport/flushController.js.map +0 -1
  847. package/esm/transport/httpRequest.d.ts +0 -56
  848. package/esm/transport/httpRequest.js +0 -89
  849. package/esm/transport/httpRequest.js.map +0 -1
  850. package/esm/transport/index.d.ts +0 -7
  851. package/esm/transport/index.js +0 -5
  852. package/esm/transport/index.js.map +0 -1
  853. package/esm/transport/sendWithRetryStrategy.d.ts +0 -41
  854. package/esm/transport/sendWithRetryStrategy.js +0 -158
  855. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  856. package/src/domain/configuration/transportConfiguration.ts +0 -78
  857. package/src/domain/session/oldCookiesMigration.ts +0 -42
  858. package/src/domain/session/sessionStoreOperations.ts +0 -131
  859. package/src/tools/abstractHooks.ts +0 -72
  860. package/src/tools/boundedBuffer.ts +0 -45
  861. package/src/tools/mergeInto.ts +0 -177
  862. package/src/tools/utils/timeUtils.ts +0 -117
  863. package/src/tools/utils/typeUtils.ts +0 -12
@@ -1,5 +1,5 @@
1
+ import { getType } from '@openobserve/js-core/util'
1
2
  import { display } from './display'
2
- import { getType } from './utils/typeUtils'
3
3
 
4
4
  export type MatchOption = string | RegExp | ((value: string) => boolean)
5
5
 
@@ -19,6 +19,8 @@ export function matchList(list: MatchOption[], value: string, useStartsWith = fa
19
19
  if (typeof item === 'function') {
20
20
  return item(value)
21
21
  } else if (item instanceof RegExp) {
22
+ // Prevent stateful matching
23
+ item.lastIndex = 0
22
24
  return item.test(value)
23
25
  } else if (typeof item === 'string') {
24
26
  return useStartsWith ? value.startsWith(item) : item === value
@@ -0,0 +1,32 @@
1
+ declare const __BUILD_ENV__SDK_VERSION__: string
2
+
3
+ export const mockableReplacements = new Map<unknown, unknown>()
4
+
5
+ /**
6
+ * Wraps a value to make it mockable in tests. In production builds, this is a no-op
7
+ * that returns the value as-is. In test builds, it checks if a mock replacement has
8
+ * been registered and returns that instead.
9
+ *
10
+ * @example
11
+ * // In source file:
12
+ * import { mockable } from '../tools/mockable'
13
+ * export function formatNavigationEntry(): string {
14
+ * const navigationEntry = mockable(getNavigationEntry)()
15
+ * ...
16
+ * }
17
+ *
18
+ * // In test file:
19
+ * import { replaceMockable } from '@openobserve/browser-core/test'
20
+ * it('...', () => {
21
+ * replaceMockable(getNavigationEntry, () => FAKE_NAVIGATION_ENTRY)
22
+ * expect(formatNavigationEntry()).toEqual(...)
23
+ * })
24
+ */
25
+ export function mockable<T>(value: T): T {
26
+ // In test builds, return a wrapper that checks for mocks at call time
27
+ if (__BUILD_ENV__SDK_VERSION__ === 'test' && mockableReplacements.has(value)) {
28
+ return mockableReplacements.get(value)! as T
29
+ }
30
+ // In production, return the value as-is
31
+ return value
32
+ }
@@ -1,72 +1,24 @@
1
+ /* eslint-disable local-rules/disallow-side-effects */
2
+ import { createMonitor } from '@openobserve/js-core/monitor'
3
+ import { setDebugMode } from '@openobserve/js-core/util'
1
4
  import { display } from './display'
2
5
 
3
- let onMonitorErrorCollected: undefined | ((error: unknown) => void)
4
- let debugMode = false
6
+ // The error-collection callback is wired lazily (via `startMonitorErrorCollection`, during telemetry
7
+ // init), so we pass a stable forwarding function to `createMonitor` and keep the real callback in a
8
+ // mutable holder.
9
+ let onMonitorErrorCollected: ((error: unknown) => void) | undefined
10
+
11
+ const { monitored, monitor, callMonitored, monitorError } = createMonitor(display, (error) =>
12
+ onMonitorErrorCollected?.(error)
13
+ )
14
+
15
+ export { monitored, monitor, callMonitored, monitorError }
5
16
 
6
17
  export function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void) {
7
18
  onMonitorErrorCollected = newOnMonitorErrorCollected
8
19
  }
9
20
 
10
- export function setDebugMode(newDebugMode: boolean) {
11
- debugMode = newDebugMode
12
- }
13
-
14
21
  export function resetMonitor() {
15
22
  onMonitorErrorCollected = undefined
16
- debugMode = false
17
- }
18
-
19
- export function monitored<T extends (...params: any[]) => unknown>(
20
- _: any,
21
- __: string,
22
- descriptor: TypedPropertyDescriptor<T>
23
- ) {
24
- const originalMethod = descriptor.value!
25
- descriptor.value = function (this: any, ...args: Parameters<T>) {
26
- const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod
27
- return decorated.apply(this, args) as ReturnType<T>
28
- } as T
29
- }
30
-
31
- export function monitor<T extends (...args: any[]) => any>(fn: T): T {
32
- return function (this: any) {
33
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
34
- return callMonitored(fn, this, arguments as unknown as Parameters<T>)
35
- } as unknown as T // consider output type has input type
36
- }
37
-
38
- export function callMonitored<T extends (...args: any[]) => any>(
39
- fn: T,
40
- context: ThisParameterType<T>,
41
- args: Parameters<T>
42
- ): ReturnType<T> | undefined
43
- export function callMonitored<T extends (this: void) => any>(fn: T): ReturnType<T> | undefined
44
- export function callMonitored<T extends (...args: any[]) => any>(
45
- fn: T,
46
- context?: any,
47
- args?: any
48
- ): ReturnType<T> | undefined {
49
- try {
50
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
51
- return fn.apply(context, args)
52
- } catch (e) {
53
- monitorError(e)
54
- }
55
- }
56
-
57
- export function monitorError(e: unknown) {
58
- displayIfDebugEnabled(e)
59
- if (onMonitorErrorCollected) {
60
- try {
61
- onMonitorErrorCollected(e)
62
- } catch (e) {
63
- displayIfDebugEnabled(e)
64
- }
65
- }
66
- }
67
-
68
- export function displayIfDebugEnabled(...args: any[]) {
69
- if (debugMode) {
70
- display.error('[MONITOR]', ...args)
71
- }
23
+ setDebugMode(false)
72
24
  }
@@ -51,8 +51,12 @@ export function mergeObservables<T>(...observables: Array<Observable<T>>) {
51
51
  // eslint-disable-next-line no-restricted-syntax
52
52
  export class BufferedObservable<T> extends Observable<T> {
53
53
  private buffer: T[] = []
54
+ private droppedCount = 0
54
55
 
55
- constructor(private maxBufferSize: number) {
56
+ constructor(
57
+ private maxBufferSize: number,
58
+ private onDrop?: (count: number) => void
59
+ ) {
56
60
  super()
57
61
  }
58
62
 
@@ -60,6 +64,7 @@ export class BufferedObservable<T> extends Observable<T> {
60
64
  this.buffer.push(data)
61
65
  if (this.buffer.length > this.maxBufferSize) {
62
66
  this.buffer.shift()
67
+ this.droppedCount++
63
68
  }
64
69
  super.notify(data)
65
70
  }
@@ -98,6 +103,9 @@ export class BufferedObservable<T> extends Observable<T> {
98
103
  */
99
104
  unbuffer() {
100
105
  queueMicrotask(() => {
106
+ if (this.droppedCount > 0 && this.onDrop) {
107
+ this.onDrop(this.droppedCount)
108
+ }
101
109
  this.maxBufferSize = this.buffer.length = 0
102
110
  })
103
111
  }
@@ -2,7 +2,12 @@ import { monitor } from './monitor'
2
2
  import { globalObject } from './globalObject'
3
3
 
4
4
  export function queueMicrotask(callback: () => void) {
5
- const nativeImplementation = globalObject.queueMicrotask?.bind(globalObject)
5
+ // Intentionally avoid .bind(globalObject): in some environments (e.g. Selenium GeckoDriver's
6
+ // executeScript), globalThis is not a proper global object, so calling the bound function throws
7
+ // 'queueMicrotask called on an object that does not implement interface Window'. Calling it as an
8
+ // unbound method is fine, as the proper global object will be used implicitly.
9
+ // See https://github.com/mozilla/geckodriver/issues/1798
10
+ const nativeImplementation = globalObject.queueMicrotask
6
11
 
7
12
  if (typeof nativeImplementation === 'function') {
8
13
  nativeImplementation(monitor(callback))
@@ -2,17 +2,10 @@ import type { Uint8ArrayBuffer } from './utils/byteUtils'
2
2
  import { concatBuffers } from './utils/byteUtils'
3
3
  import { noop } from './utils/functionUtils'
4
4
 
5
- interface Options {
6
- // TODO(next-major): always collect stream body when `trackEarlyRequests` is removed, as we don't
7
- // need to use this function to just wait for the end of the stream without collecting it
8
- collectStreamBody?: boolean
9
- }
10
-
11
5
  /**
12
6
  * Read bytes from a ReadableStream until the end of the stream.
13
- * Returns the bytes if collectStreamBody is true, otherwise returns undefined.
14
7
  */
15
- export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffer>, options: Options) {
8
+ export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffer>) {
16
9
  const reader = stream.getReader()
17
10
  const chunks: Uint8ArrayBuffer[] = []
18
11
 
@@ -22,9 +15,7 @@ export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffe
22
15
  break
23
16
  }
24
17
 
25
- if (options.collectStreamBody) {
26
- chunks.push(result.value)
27
- }
18
+ chunks.push(result.value)
28
19
  }
29
20
 
30
21
  reader.cancel().catch(
@@ -33,5 +24,5 @@ export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffe
33
24
  noop
34
25
  )
35
26
 
36
- return options.collectStreamBody ? concatBuffers(chunks) : undefined
27
+ return concatBuffers(chunks)
37
28
  }
@@ -1,6 +1,6 @@
1
+ import { dateNow } from '@openobserve/js-core/time'
1
2
  import { setTimeout, clearTimeout } from './timer'
2
3
  import { monitor } from './monitor'
3
- import { dateNow } from './utils/timeUtils'
4
4
 
5
5
  // This type is not yet supported in TS 3.8. Imported from the TS source until we upgrade the
6
6
  // minimum supported TS version.
@@ -6,7 +6,7 @@ import { detachToJsonMethod } from './jsonStringify'
6
6
 
7
7
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
8
8
  type PrimitivesAndFunctions = string | number | boolean | undefined | null | symbol | bigint | Function
9
- type ExtendedContextValue = PrimitivesAndFunctions | object | ExtendedContext | ExtendedContextArray
9
+ type ExtendedContextValue = PrimitivesAndFunctions | ExtendedContext | ExtendedContextArray
10
10
  interface ExtendedContext {
11
11
  [key: string]: ExtendedContextValue
12
12
  }
@@ -27,7 +27,7 @@ interface SanitizedEvent extends Context {
27
27
 
28
28
  // The maximum size of a single event is 256KiB. By default, we ensure that user-provided data
29
29
  // going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...
30
- const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE
30
+ export const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE
31
31
 
32
32
  // Symbol for the root element of the JSONPath used for visited objects
33
33
  const JSON_PATH_ROOT_ELEMENT = '$'
@@ -58,58 +58,33 @@ export function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_M
58
58
  const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)
59
59
  const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)
60
60
 
61
- // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object
62
- const containerQueue: ContainerElementToProcess[] = []
63
- const visitedObjectsWithPath = new WeakMap<object, string>()
64
- const sanitizedData = sanitizeProcessor(
65
- source as ExtendedContextValue,
66
- JSON_PATH_ROOT_ELEMENT,
67
- undefined,
68
- containerQueue,
69
- visitedObjectsWithPath
70
- )
71
- const serializedSanitizedData = JSON.stringify(sanitizedData)
72
- let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0
73
-
74
- if (accumulatedCharacterCount > maxCharacterCount) {
75
- warnOverCharacterLimit(maxCharacterCount, 'discarded', source)
76
- return undefined
77
- }
61
+ try {
62
+ // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object
63
+ const containerQueue: ContainerElementToProcess[] = []
64
+ const visitedObjectsWithPath = new WeakMap<object, string>()
65
+ const sanitizedData = sanitizeProcessor(
66
+ source as ExtendedContextValue,
67
+ JSON_PATH_ROOT_ELEMENT,
68
+ undefined,
69
+ containerQueue,
70
+ visitedObjectsWithPath
71
+ )
72
+ const serializedSanitizedData = JSON.stringify(sanitizedData)
73
+ let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0
78
74
 
79
- while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {
80
- const containerToProcess = containerQueue.shift()!
81
- let separatorLength = 0 // 0 for the first element, 1 for subsequent elements
75
+ if (accumulatedCharacterCount > maxCharacterCount) {
76
+ warnOverCharacterLimit(maxCharacterCount, 'discarded', source)
77
+ return undefined
78
+ }
82
79
 
83
- // Arrays and Objects have to be handled distinctly to ensure
84
- // we do not pick up non-numerical properties from Arrays
85
- if (Array.isArray(containerToProcess.source)) {
86
- for (let key = 0; key < containerToProcess.source.length; key++) {
87
- const targetData = sanitizeProcessor(
88
- containerToProcess.source[key],
89
- containerToProcess.path,
90
- key,
91
- containerQueue,
92
- visitedObjectsWithPath
93
- )
80
+ while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {
81
+ const containerToProcess = containerQueue.shift()!
82
+ let separatorLength = 0 // 0 for the first element, 1 for subsequent elements
94
83
 
95
- if (targetData !== undefined) {
96
- accumulatedCharacterCount += JSON.stringify(targetData).length
97
- } else {
98
- // When an element of an Array (targetData) is undefined, it is serialized as null:
99
- // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters
100
- accumulatedCharacterCount += 4
101
- }
102
- accumulatedCharacterCount += separatorLength
103
- separatorLength = 1
104
- if (accumulatedCharacterCount > maxCharacterCount) {
105
- warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
106
- break
107
- }
108
- ;(containerToProcess.target as ContextArray)[key] = targetData
109
- }
110
- } else {
111
- for (const key in containerToProcess.source) {
112
- if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
84
+ // Arrays and Objects have to be handled distinctly to ensure
85
+ // we do not pick up non-numerical properties from Arrays
86
+ if (Array.isArray(containerToProcess.source)) {
87
+ for (let key = 0; key < containerToProcess.source.length; key++) {
113
88
  const targetData = sanitizeProcessor(
114
89
  containerToProcess.source[key],
115
90
  containerToProcess.path,
@@ -117,28 +92,55 @@ export function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_M
117
92
  containerQueue,
118
93
  visitedObjectsWithPath
119
94
  )
120
- // When a property of an object has an undefined value, it will be dropped during serialization:
121
- // JSON.stringify({a:undefined}) => '{}'
95
+
122
96
  if (targetData !== undefined) {
123
- accumulatedCharacterCount +=
124
- JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH
125
- separatorLength = 1
97
+ accumulatedCharacterCount += JSON.stringify(targetData).length
98
+ } else {
99
+ // When an element of an Array (targetData) is undefined, it is serialized as null:
100
+ // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters
101
+ accumulatedCharacterCount += 4
126
102
  }
103
+ accumulatedCharacterCount += separatorLength
104
+ separatorLength = 1
127
105
  if (accumulatedCharacterCount > maxCharacterCount) {
128
106
  warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
129
107
  break
130
108
  }
131
- ;(containerToProcess.target as Context)[key] = targetData
109
+ ;(containerToProcess.target as ContextArray)[key] = targetData
110
+ }
111
+ } else {
112
+ for (const key in containerToProcess.source) {
113
+ if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
114
+ const targetData = sanitizeProcessor(
115
+ containerToProcess.source[key],
116
+ containerToProcess.path,
117
+ key,
118
+ containerQueue,
119
+ visitedObjectsWithPath
120
+ )
121
+ // When a property of an object has an undefined value, it will be dropped during serialization:
122
+ // JSON.stringify({a:undefined}) => '{}'
123
+ if (targetData !== undefined) {
124
+ accumulatedCharacterCount +=
125
+ JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH
126
+ separatorLength = 1
127
+ }
128
+ if (accumulatedCharacterCount > maxCharacterCount) {
129
+ warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
130
+ break
131
+ }
132
+ ;(containerToProcess.target as Context)[key] = targetData
133
+ }
132
134
  }
133
135
  }
134
136
  }
135
- }
136
-
137
- // Rebind detached toJSON functions
138
- restoreObjectPrototypeToJson()
139
- restoreArrayPrototypeToJson()
140
137
 
141
- return sanitizedData
138
+ return sanitizedData
139
+ } finally {
140
+ // Rebind detached toJSON functions
141
+ restoreObjectPrototypeToJson()
142
+ restoreArrayPrototypeToJson()
143
+ }
142
144
  }
143
145
 
144
146
  /**
@@ -177,7 +179,7 @@ function sanitizeProcessor(
177
179
  const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath
178
180
  const target = Array.isArray(sourceToSanitize) ? ([] as ContextArray) : ({} as Context)
179
181
  visitedObjectsWithPath.set(sourceAsObject, currentPath)
180
- queue.push({ source: sourceToSanitize as ExtendedContext | ExtendedContextArray, target, path: currentPath })
182
+ queue.push({ source: sourceToSanitize, target, path: currentPath })
181
183
 
182
184
  return target
183
185
  }
@@ -226,7 +228,7 @@ function sanitizeObjects(value: object): string | SanitizedEvent {
226
228
  // Handle all remaining object types in a generic way
227
229
  const result = Object.prototype.toString.call(value)
228
230
  const match = result.match(/\[object (.*)\]/)
229
- if (match && match[1]) {
231
+ if (match?.[1]) {
230
232
  return `[${match[1]}]`
231
233
  }
232
234
  } catch {
@@ -0,0 +1,18 @@
1
+ import { jsonStringify } from './jsonStringify'
2
+ import { sanitize } from './sanitize'
3
+
4
+ export function safeToString(value: unknown): string | undefined {
5
+ try {
6
+ return String(value)
7
+ } catch {
8
+ // ignore
9
+ }
10
+ }
11
+
12
+ export function safeStringify(value: unknown): string | undefined {
13
+ try {
14
+ return jsonStringify(sanitize(value))
15
+ } catch {
16
+ // ignore
17
+ }
18
+ }
@@ -4,6 +4,8 @@
4
4
  * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js
5
5
  */
6
6
 
7
+ import { isIndexableObject } from '@openobserve/js-core/util'
8
+
7
9
  export interface StackFrame {
8
10
  url?: string
9
11
  func?: string
@@ -31,7 +33,7 @@ export function computeStackTrace(ex: unknown): StackTrace {
31
33
 
32
34
  let stackProperty = tryToGetString(ex, 'stack')
33
35
  const exString = String(ex)
34
- if (stackProperty && stackProperty.startsWith(exString)) {
36
+ if (stackProperty?.startsWith(exString)) {
35
37
  stackProperty = stackProperty.slice(exString.length)
36
38
  }
37
39
  if (stackProperty) {
@@ -91,8 +93,8 @@ function parseChromeLine(line: string): StackFrame | undefined {
91
93
  return
92
94
  }
93
95
 
94
- const isNative = parts[2] && parts[2].indexOf('native') === 0 // start of line
95
- const isEval = parts[2] && parts[2].indexOf('eval') === 0 // start of line
96
+ const isNative = parts[2]?.indexOf('native') === 0 // start of line
97
+ const isEval = parts[2]?.indexOf('eval') === 0 // start of line
96
98
  const submatch = CHROME_EVAL_RE.exec(parts[2])
97
99
 
98
100
  if (isEval && submatch) {
@@ -111,7 +113,11 @@ function parseChromeLine(line: string): StackFrame | undefined {
111
113
  }
112
114
  }
113
115
 
114
- const CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\s*$`, 'i')
116
+ const htmlAnonymousPart = '(?:(.*)?(?: @))'
117
+ const CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(
118
+ `^\\s*at\\s*${htmlAnonymousPart}?\\s*${fileUrl}${filePosition}?${filePosition}??\\s*$`,
119
+ 'i'
120
+ )
115
121
 
116
122
  function parseChromeAnonymousLine(line: string): StackFrame | undefined {
117
123
  const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line)
@@ -122,10 +128,10 @@ function parseChromeAnonymousLine(line: string): StackFrame | undefined {
122
128
 
123
129
  return {
124
130
  args: [],
125
- column: parts[3] ? +parts[3] : undefined,
126
- func: UNKNOWN_FUNCTION,
127
- line: parts[2] ? +parts[2] : undefined,
128
- url: parts[1],
131
+ column: parts[4] ? +parts[4] : undefined,
132
+ func: parts[1] || UNKNOWN_FUNCTION,
133
+ line: parts[3] ? +parts[3] : undefined,
134
+ url: parts[2],
129
135
  }
130
136
  }
131
137
 
@@ -177,11 +183,7 @@ function parseGeckoLine(line: string): StackFrame | undefined {
177
183
  }
178
184
 
179
185
  function tryToGetString(candidate: unknown, property: string) {
180
- if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {
181
- return undefined
182
- }
183
- const value = (candidate as { [k: string]: unknown })[property]
184
- return typeof value === 'string' ? value : undefined
186
+ return isIndexableObject(candidate) && typeof candidate[property] === 'string' ? candidate[property] : undefined
185
187
  }
186
188
 
187
189
  export function computeStackTraceFromOnErrorMessage(
@@ -9,7 +9,20 @@ import { computeStackTrace } from './computeStackTrace'
9
9
  * - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.
10
10
  */
11
11
  export function createHandlingStack(
12
- type: 'console error' | 'action' | 'error' | 'instrumented method' | 'log' | 'react error'
12
+ type:
13
+ | 'console error'
14
+ | 'action'
15
+ | 'error'
16
+ | 'instrumented method'
17
+ | 'instrumented constructor'
18
+ | 'log'
19
+ | 'nuxt error'
20
+ | 'react error'
21
+ | 'nextjs error'
22
+ | 'vue error'
23
+ | 'angular error'
24
+ | 'view'
25
+ | 'vital'
13
26
  ): string {
14
27
  /**
15
28
  * Skip the two internal frames:
@@ -1,4 +1,4 @@
1
- import { ONE_SECOND } from './utils/timeUtils'
1
+ import { ONE_SECOND } from '@openobserve/js-core/time'
2
2
  import { requestIdleCallback } from './requestIdleCallback'
3
3
 
4
4
  /**
@@ -28,9 +28,11 @@ type Task = () => void
28
28
  export function createTaskQueue(): TaskQueue {
29
29
  const pendingTasks: Task[] = []
30
30
 
31
- function run(deadline: IdleDeadline) {
31
+ function run(deadline: IdleDeadline | null) {
32
32
  let executionTimeRemaining: () => number
33
- if (deadline.didTimeout) {
33
+ // `deadline` can be null when `requestIdleCallback` is replaced by a page-injected polyfill
34
+ // (e.g. `setTimeout(cb, 0)` in some WKWebViews) that invokes the callback with no argument.
35
+ if (!deadline || deadline.didTimeout) {
34
36
  const start = performance.now()
35
37
  executionTimeRemaining = () => MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start)
36
38
  } else {
@@ -1,21 +1,22 @@
1
1
  import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'
2
2
  import { monitor } from './monitor'
3
- import { getGlobalObject } from './globalObject'
3
+ import type { GlobalObject } from './globalObject'
4
+ import { globalObject } from './globalObject'
4
5
 
5
- export type TimeoutId = ReturnType<typeof globalThis.setTimeout>
6
+ export type TimeoutId = ReturnType<GlobalObject['setTimeout']>
6
7
 
7
8
  export function setTimeout(callback: () => void, delay?: number): TimeoutId {
8
- return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay)
9
+ return getZoneJsOriginalValue(globalObject, 'setTimeout')(monitor(callback), delay)
9
10
  }
10
11
 
11
12
  export function clearTimeout(timeoutId: TimeoutId | undefined) {
12
- getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId)
13
+ getZoneJsOriginalValue(globalObject, 'clearTimeout')(timeoutId)
13
14
  }
14
15
 
15
16
  export function setInterval(callback: () => void, delay?: number): TimeoutId {
16
- return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay)
17
+ return getZoneJsOriginalValue(globalObject, 'setInterval')(monitor(callback), delay)
17
18
  }
18
19
 
19
20
  export function clearInterval(timeoutId: TimeoutId | undefined) {
20
- getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId)
21
+ getZoneJsOriginalValue(globalObject, 'clearInterval')(timeoutId)
21
22
  }
@@ -13,3 +13,10 @@ export function removeItem<T>(array: T[], item: T) {
13
13
  export function isNonEmptyArray<T>(value: unknown): value is T[] {
14
14
  return Array.isArray(value) && value.length > 0
15
15
  }
16
+
17
+ export function mergeArrays<T>(current: T[] | undefined, next: T[] | undefined): T[] | undefined {
18
+ if (!next?.length) {
19
+ return current
20
+ }
21
+ return current ? current.concat(next) : next
22
+ }
@@ -37,3 +37,11 @@ export function detectBrowser(browserWindow: Window = window) {
37
37
 
38
38
  return Browser.OTHER
39
39
  }
40
+
41
+ export function detectVersion() {
42
+ const userAgent = window.navigator.userAgent
43
+ const match = userAgent.match(/(?:chrome|headlesschrome|version)\/(\d+)/i)
44
+ if (match) {
45
+ return parseInt(match[1], 10)
46
+ }
47
+ }
@@ -16,11 +16,7 @@ export function computeBytesCount(candidate: string): number {
16
16
  return candidate.length
17
17
  }
18
18
 
19
- if (window.TextEncoder !== undefined) {
20
- return new TextEncoder().encode(candidate).length
21
- }
22
-
23
- return new Blob([candidate]).size
19
+ return new TextEncoder().encode(candidate).length
24
20
  }
25
21
 
26
22
  export function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer {
@@ -7,8 +7,8 @@ export function throttle<T extends (...args: any[]) => void>(
7
7
  wait: number,
8
8
  options?: { leading?: boolean; trailing?: boolean }
9
9
  ) {
10
- const needLeadingExecution = options && options.leading !== undefined ? options.leading : true
11
- const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true
10
+ const needLeadingExecution = options?.leading !== undefined ? options.leading : true
11
+ const needTrailingExecution = options?.trailing !== undefined ? options.trailing : true
12
12
  let inWaitPeriod = false
13
13
  let pendingExecutionWithParameters: Parameters<T> | undefined
14
14
  let pendingTimeoutId: TimeoutId
@@ -1,3 +1,14 @@
1
+ // Prevent prototype pollution: __proto__ as an own property in parsed JSON can corrupt Object.prototype
2
+ const stripDangerousKeys = (key: string, value: unknown) => (key === '__proto__' ? undefined : value)
3
+
4
+ export function tryJsonParse<T = unknown>(text: string): T | undefined {
5
+ try {
6
+ return JSON.parse(text, stripDangerousKeys) as T
7
+ } catch {
8
+ // ignore
9
+ }
10
+ }
11
+
1
12
  export function shallowClone<T>(object: T): T & Record<string, never> {
2
13
  return { ...object } as T & Record<string, never>
3
14
  }
@@ -17,3 +28,12 @@ export function mapValues<A, B>(object: { [key: string]: A }, fn: (arg: A) => B)
17
28
  }
18
29
  return newObject
19
30
  }
31
+
32
+ export function getConstructorName(value: unknown): string | undefined {
33
+ try {
34
+ const name = (value as { constructor?: { name?: unknown } } | null | undefined)?.constructor?.name
35
+ return typeof name === 'string' && name ? name : undefined
36
+ } catch {
37
+ // ignore: accessing `constructor` can throw on hostile objects
38
+ }
39
+ }