@openobserve/browser-core 0.3.4 → 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 (934) 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 +15 -4
  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/boot/displayAlreadyInitializedError.spec.ts +0 -18
  857. package/src/boot/init.spec.ts +0 -50
  858. package/src/browser/addEventListener.spec.ts +0 -141
  859. package/src/browser/cookie.spec.ts +0 -53
  860. package/src/browser/fetchObservable.spec.ts +0 -334
  861. package/src/browser/pageMayExitObservable.spec.ts +0 -56
  862. package/src/browser/xhrObservable.spec.ts +0 -405
  863. package/src/domain/allowedTrackingOrigins.spec.ts +0 -210
  864. package/src/domain/bufferedData.spec.ts +0 -34
  865. package/src/domain/configuration/configuration.spec.ts +0 -236
  866. package/src/domain/configuration/endpointBuilder.spec.ts +0 -173
  867. package/src/domain/configuration/transportConfiguration.spec.ts +0 -130
  868. package/src/domain/configuration/transportConfiguration.ts +0 -78
  869. package/src/domain/connectivity/connectivity.spec.ts +0 -50
  870. package/src/domain/console/consoleObservable.spec.ts +0 -151
  871. package/src/domain/context/contextManager.spec.ts +0 -152
  872. package/src/domain/context/contextUtils.spec.ts +0 -26
  873. package/src/domain/context/storeContextManager.spec.ts +0 -103
  874. package/src/domain/contexts/accountContext.spec.ts +0 -99
  875. package/src/domain/contexts/globalContext.spec.ts +0 -88
  876. package/src/domain/contexts/userContext.spec.ts +0 -156
  877. package/src/domain/error/error.spec.ts +0 -294
  878. package/src/domain/error/trackRuntimeError.spec.ts +0 -343
  879. package/src/domain/eventRateLimiter/createEventRateLimiter.spec.ts +0 -119
  880. package/src/domain/extension/extensionUtils.spec.ts +0 -47
  881. package/src/domain/report/reportObservable.spec.ts +0 -71
  882. package/src/domain/session/oldCookiesMigration.spec.ts +0 -76
  883. package/src/domain/session/oldCookiesMigration.ts +0 -42
  884. package/src/domain/session/sessionManager.spec.ts +0 -684
  885. package/src/domain/session/sessionState.spec.ts +0 -88
  886. package/src/domain/session/sessionStore.spec.ts +0 -647
  887. package/src/domain/session/sessionStoreOperations.spec.ts +0 -234
  888. package/src/domain/session/sessionStoreOperations.ts +0 -131
  889. package/src/domain/session/storeStrategies/sessionInCookie.spec.ts +0 -228
  890. package/src/domain/session/storeStrategies/sessionInLocalStorage.spec.ts +0 -75
  891. package/src/domain/synthetics/syntheticsWorkerValues.spec.ts +0 -82
  892. package/src/domain/tags.spec.ts +0 -74
  893. package/src/domain/telemetry/telemetry.spec.ts +0 -494
  894. package/src/domain/trackingConsent.spec.ts +0 -44
  895. package/src/tools/abstractHooks.spec.ts +0 -76
  896. package/src/tools/abstractHooks.ts +0 -72
  897. package/src/tools/abstractLifeCycle.spec.ts +0 -46
  898. package/src/tools/boundedBuffer.spec.ts +0 -40
  899. package/src/tools/boundedBuffer.ts +0 -45
  900. package/src/tools/catchUserErrors.spec.ts +0 -20
  901. package/src/tools/encoder.spec.ts +0 -112
  902. package/src/tools/experimentalFeatures.spec.ts +0 -60
  903. package/src/tools/getZoneJsOriginalValue.spec.ts +0 -36
  904. package/src/tools/instrumentMethod.spec.ts +0 -381
  905. package/src/tools/matchOption.spec.ts +0 -41
  906. package/src/tools/mergeInto.spec.ts +0 -198
  907. package/src/tools/mergeInto.ts +0 -177
  908. package/src/tools/monitor.spec.ts +0 -172
  909. package/src/tools/observable.spec.ts +0 -259
  910. package/src/tools/queueMicrotask.spec.ts +0 -24
  911. package/src/tools/readBytesFromStream.spec.ts +0 -62
  912. package/src/tools/requestIdleCallback.spec.ts +0 -65
  913. package/src/tools/serialisation/jsonStringify.spec.ts +0 -76
  914. package/src/tools/serialisation/sanitize.spec.ts +0 -284
  915. package/src/tools/stackTrace/capturedExceptions.specHelper.ts +0 -316
  916. package/src/tools/stackTrace/computeStackTrace.spec.ts +0 -1007
  917. package/src/tools/stackTrace/handlingStack.spec.ts +0 -20
  918. package/src/tools/taskQueue.spec.ts +0 -60
  919. package/src/tools/timer.spec.ts +0 -76
  920. package/src/tools/utils/browserDetection.spec.ts +0 -120
  921. package/src/tools/utils/byteUtils.spec.ts +0 -29
  922. package/src/tools/utils/functionUtils.spec.ts +0 -229
  923. package/src/tools/utils/numberUtils.spec.ts +0 -27
  924. package/src/tools/utils/stringUtils.spec.ts +0 -74
  925. package/src/tools/utils/timeUtils.ts +0 -117
  926. package/src/tools/utils/typeUtils.spec.ts +0 -25
  927. package/src/tools/utils/typeUtils.ts +0 -12
  928. package/src/tools/utils/urlPolyfill.spec.ts +0 -55
  929. package/src/tools/valueHistory.spec.ts +0 -180
  930. package/src/transport/batch.spec.ts +0 -261
  931. package/src/transport/eventBridge.spec.ts +0 -90
  932. package/src/transport/flushController.spec.ts +0 -267
  933. package/src/transport/httpRequest.spec.ts +0 -400
  934. package/src/transport/sendWithRetryStrategy.spec.ts +0 -393
@@ -1,1007 +0,0 @@
1
- import { isSafari } from '../utils/browserDetection'
2
- import * as CapturedExceptions from './capturedExceptions.specHelper'
3
- import { computeStackTrace } from './computeStackTrace'
4
-
5
- describe('computeStackTrace', () => {
6
- it('should not remove anonymous functions from the stack', () => {
7
- // mock up an error object with a stack trace that includes both
8
- // named functions and anonymous functions
9
- const stack = `
10
- Error:
11
- at new <anonymous> (http://example.com/js/test.js:63:1)
12
- at namedFunc0 (http://example.com/js/script.js:10:2)
13
- at http://example.com/js/test.js:65:10
14
- at namedFunc2 (http://example.com/js/script.js:20:5)
15
- at http://example.com/js/test.js:67:5
16
- at namedFunc4 (http://example.com/js/script.js:100001:10002)`
17
- const mockErr: any = { stack }
18
- const stackFrames = computeStackTrace(mockErr)
19
-
20
- expect(stackFrames.stack[0].func).toEqual('new <anonymous>')
21
- expect(stackFrames.stack[0].url).toEqual('http://example.com/js/test.js')
22
- expect(stackFrames.stack[0].line).toEqual(63)
23
- expect(stackFrames.stack[0].column).toEqual(1)
24
- expect(stackFrames.stack[1].func).toEqual('namedFunc0')
25
- expect(stackFrames.stack[1].url).toEqual('http://example.com/js/script.js')
26
- expect(stackFrames.stack[1].line).toEqual(10)
27
- expect(stackFrames.stack[1].column).toEqual(2)
28
-
29
- expect(stackFrames.stack[2].func).toEqual('?')
30
- expect(stackFrames.stack[2].url).toEqual('http://example.com/js/test.js')
31
- expect(stackFrames.stack[2].line).toEqual(65)
32
- expect(stackFrames.stack[2].column).toEqual(10)
33
-
34
- expect(stackFrames.stack[3].func).toEqual('namedFunc2')
35
- expect(stackFrames.stack[3].url).toEqual('http://example.com/js/script.js')
36
- expect(stackFrames.stack[3].line).toEqual(20)
37
- expect(stackFrames.stack[3].column).toEqual(5)
38
-
39
- expect(stackFrames.stack[4].func).toEqual('?')
40
- expect(stackFrames.stack[4].url).toEqual('http://example.com/js/test.js')
41
- expect(stackFrames.stack[4].line).toEqual(67)
42
- expect(stackFrames.stack[4].column).toEqual(5)
43
-
44
- expect(stackFrames.stack[5].func).toEqual('namedFunc4')
45
- expect(stackFrames.stack[5].url).toEqual('http://example.com/js/script.js')
46
- expect(stackFrames.stack[5].line).toEqual(100001)
47
- expect(stackFrames.stack[5].column).toEqual(10002)
48
- })
49
-
50
- it('should handle eval/anonymous strings in Chrome 46', () => {
51
- const stack = `
52
- ReferenceError: baz is not defined
53
- at bar (http://example.com/js/test.js:19:7)
54
- at foo (http://example.com/js/test.js:23:7)
55
- at eval (eval at <anonymous> (http://example.com/js/test.js:26:5)).toEqual(<anonymous>:1:26)
56
- `
57
-
58
- const mockErr: any = { stack }
59
- const stackFrames = computeStackTrace(mockErr)
60
-
61
- expect(stackFrames.stack[0].func).toEqual('bar')
62
- expect(stackFrames.stack[0].url).toEqual('http://example.com/js/test.js')
63
- expect(stackFrames.stack[0].line).toEqual(19)
64
- expect(stackFrames.stack[0].column).toEqual(7)
65
-
66
- expect(stackFrames.stack[1].func).toEqual('foo')
67
- expect(stackFrames.stack[1].url).toEqual('http://example.com/js/test.js')
68
- expect(stackFrames.stack[1].line).toEqual(23)
69
- expect(stackFrames.stack[1].column).toEqual(7)
70
-
71
- expect(stackFrames.stack[2].func).toEqual('eval')
72
- // TODO: fix nested evals
73
- expect(stackFrames.stack[2].url).toEqual('http://example.com/js/test.js')
74
- expect(stackFrames.stack[2].line).toEqual(26)
75
- expect(stackFrames.stack[2].column).toEqual(5)
76
- })
77
-
78
- const stackStr = `
79
- Error: foo
80
- at <anonymous>:2:11
81
- at Object.InjectedScript._evaluateOn (<anonymous>:904:140)
82
- at Object.InjectedScript._evaluateAndWrap (<anonymous>:837:34)
83
- at Object.InjectedScript.evaluate (<anonymous>:693:21)`
84
-
85
- it('should handle a native error object', () => {
86
- const ex = new Error('test')
87
- const stack = computeStackTrace(ex)
88
- expect(stack.name).toEqual('Error')
89
- expect(stack.message).toEqual('test')
90
- })
91
-
92
- it('should handle a native error object stack from Chrome', () => {
93
- const mockErr = { message: 'foo', name: 'Error', stack: stackStr }
94
- const stackFrames = computeStackTrace(mockErr)
95
-
96
- expect(stackFrames.stack[0].url).toEqual('<anonymous>')
97
- })
98
-
99
- it('should handle edge case values', () => {
100
- expect(computeStackTrace({ message: { foo: 'bar' } }).message).toBeUndefined()
101
- expect(computeStackTrace({ name: { foo: 'bar' } }).name).toBeUndefined()
102
- expect(computeStackTrace({ message: { foo: 'bar' }, stack: stackStr }).message).toBeUndefined()
103
- expect(computeStackTrace({ name: { foo: 'bar' }, stack: stackStr }).name).toBeUndefined()
104
- expect(computeStackTrace(2).message).toBeUndefined()
105
- expect(computeStackTrace({ foo: 'bar' }).message).toBeUndefined()
106
- expect(computeStackTrace(undefined).message).toBeUndefined()
107
- expect(computeStackTrace(null).message).toBeUndefined()
108
- })
109
-
110
- it('should get the order of functions called right', () => {
111
- if (isSafari()) {
112
- pending()
113
- }
114
- function foo() {
115
- return bar()
116
- }
117
-
118
- function bar() {
119
- return baz()
120
- }
121
-
122
- function baz() {
123
- return computeStackTrace(new Error())
124
- }
125
-
126
- const trace = foo()
127
- const expected = ['baz', 'bar', 'foo']
128
-
129
- for (let i = 0; i <= 2; i += 1) {
130
- expect(trace.stack[i].func).toEqual(expected[i])
131
- }
132
- })
133
-
134
- it('should parse Safari 6 error', () => {
135
- const stackFrames = computeStackTrace(CapturedExceptions.SAFARI_6)
136
-
137
- expect(stackFrames.stack.length).toEqual(4)
138
- expect(stackFrames.stack[0]).toEqual({
139
- args: [],
140
- column: undefined,
141
- func: '?',
142
- line: 48,
143
- url: 'http://path/to/file.js',
144
- })
145
- expect(stackFrames.stack[1]).toEqual({
146
- args: [],
147
- column: undefined,
148
- func: 'dumpException3',
149
- line: 52,
150
- url: 'http://path/to/file.js',
151
- })
152
- expect(stackFrames.stack[2]).toEqual({
153
- args: [],
154
- column: undefined,
155
- func: 'onclick',
156
- line: 82,
157
- url: 'http://path/to/file.js',
158
- })
159
- expect(stackFrames.stack[3]).toEqual({
160
- args: [],
161
- column: undefined,
162
- func: '?',
163
- line: undefined,
164
- url: '[native code]',
165
- })
166
- })
167
-
168
- it('should parse Safari 7 error', () => {
169
- const stackFrames = computeStackTrace(CapturedExceptions.SAFARI_7)
170
-
171
- expect(stackFrames.stack.length).toEqual(3)
172
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 22, func: '?', line: 48, url: 'http://path/to/file.js' })
173
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 15, func: 'foo', line: 52, url: 'http://path/to/file.js' })
174
- expect(stackFrames.stack[2]).toEqual({
175
- args: [],
176
- column: 107,
177
- func: 'bar',
178
- line: 108,
179
- url: 'http://path/to/file.js',
180
- })
181
- })
182
-
183
- it('should parse Safari 8 error', () => {
184
- const stackFrames = computeStackTrace(CapturedExceptions.SAFARI_8)
185
-
186
- expect(stackFrames.stack.length).toEqual(3)
187
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 22, func: '?', line: 47, url: 'http://path/to/file.js' })
188
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 15, func: 'foo', line: 52, url: 'http://path/to/file.js' })
189
- expect(stackFrames.stack[2]).toEqual({
190
- args: [],
191
- column: 23,
192
- func: 'bar',
193
- line: 108,
194
- url: 'http://path/to/file.js',
195
- })
196
- })
197
-
198
- it('should parse Safari 8 eval error', () => {
199
- // TODO: Take into account the line and column properties
200
- // on the error object and use them for the first stack trace.
201
- const stackFrames = computeStackTrace(CapturedExceptions.SAFARI_8_EVAL)
202
-
203
- expect(stackFrames.stack.length).toEqual(3)
204
- expect(stackFrames.stack[0]).toEqual({
205
- args: [],
206
- column: undefined,
207
- func: 'eval',
208
- line: undefined,
209
- url: '[native code]',
210
- })
211
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 21, func: 'foo', line: 58, url: 'http://path/to/file.js' })
212
- expect(stackFrames.stack[2]).toEqual({
213
- args: [],
214
- column: 91,
215
- func: 'bar',
216
- line: 109,
217
- url: 'http://path/to/file.js',
218
- })
219
- })
220
-
221
- it('should parse Firefox 3 error', () => {
222
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_3)
223
-
224
- expect(stackFrames.stack.length).toEqual(7)
225
- expect(stackFrames.stack[0]).toEqual({
226
- args: [],
227
- column: undefined,
228
- func: '?',
229
- line: 44,
230
- url: 'http://127.0.0.1:8000/js/stacktrace.js',
231
- })
232
- expect(stackFrames.stack[1]).toEqual({
233
- args: ['null'],
234
- column: undefined,
235
- func: '?',
236
- line: 31,
237
- url: 'http://127.0.0.1:8000/js/stacktrace.js',
238
- })
239
- expect(stackFrames.stack[2]).toEqual({
240
- args: [],
241
- column: undefined,
242
- func: 'printStackTrace',
243
- line: 18,
244
- url: 'http://127.0.0.1:8000/js/stacktrace.js',
245
- })
246
- expect(stackFrames.stack[3]).toEqual({
247
- args: ['1'],
248
- column: undefined,
249
- func: 'bar',
250
- line: 13,
251
- url: 'http://127.0.0.1:8000/js/file.js',
252
- })
253
- expect(stackFrames.stack[4]).toEqual({
254
- args: ['2'],
255
- column: undefined,
256
- func: 'bar',
257
- line: 16,
258
- url: 'http://127.0.0.1:8000/js/file.js',
259
- })
260
- expect(stackFrames.stack[5]).toEqual({
261
- args: [],
262
- column: undefined,
263
- func: 'foo',
264
- line: 20,
265
- url: 'http://127.0.0.1:8000/js/file.js',
266
- })
267
- expect(stackFrames.stack[6]).toEqual({
268
- args: [],
269
- column: undefined,
270
- func: '?',
271
- line: 24,
272
- url: 'http://127.0.0.1:8000/js/file.js',
273
- })
274
- })
275
-
276
- it('should parse Firefox 7 error', () => {
277
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_7)
278
-
279
- expect(stackFrames.stack.length).toEqual(7)
280
- expect(stackFrames.stack[0]).toEqual({
281
- args: [],
282
- column: undefined,
283
- func: '?',
284
- line: 44,
285
- url: 'file:///G:/js/stacktrace.js',
286
- })
287
- expect(stackFrames.stack[1]).toEqual({
288
- args: ['null'],
289
- column: undefined,
290
- func: '?',
291
- line: 31,
292
- url: 'file:///G:/js/stacktrace.js',
293
- })
294
- expect(stackFrames.stack[2]).toEqual({
295
- args: [],
296
- column: undefined,
297
- func: 'printStackTrace',
298
- line: 18,
299
- url: 'file:///G:/js/stacktrace.js',
300
- })
301
- expect(stackFrames.stack[3]).toEqual({
302
- args: ['1'],
303
- column: undefined,
304
- func: 'bar',
305
- line: 13,
306
- url: 'file:///G:/js/file.js',
307
- })
308
- expect(stackFrames.stack[4]).toEqual({
309
- args: ['2'],
310
- column: undefined,
311
- func: 'bar',
312
- line: 16,
313
- url: 'file:///G:/js/file.js',
314
- })
315
- expect(stackFrames.stack[5]).toEqual({
316
- args: [],
317
- column: undefined,
318
- func: 'foo',
319
- line: 20,
320
- url: 'file:///G:/js/file.js',
321
- })
322
- expect(stackFrames.stack[6]).toEqual({
323
- args: [],
324
- column: undefined,
325
- func: '?',
326
- line: 24,
327
- url: 'file:///G:/js/file.js',
328
- })
329
- })
330
-
331
- it('should parse Firefox 14 error', () => {
332
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_14)
333
-
334
- expect(stackFrames.stack.length).toEqual(3)
335
- expect(stackFrames.stack[0]).toEqual({
336
- args: [],
337
- column: undefined,
338
- func: '?',
339
- line: 48,
340
- url: 'http://path/to/file.js',
341
- })
342
- expect(stackFrames.stack[1]).toEqual({
343
- args: [],
344
- column: undefined,
345
- func: 'dumpException3',
346
- line: 52,
347
- url: 'http://path/to/file.js',
348
- })
349
- expect(stackFrames.stack[2]).toEqual({
350
- args: [],
351
- column: undefined,
352
- func: 'onclick',
353
- line: 1,
354
- url: 'http://path/to/file.js',
355
- })
356
- })
357
-
358
- it('should parse Firefox 31 error', () => {
359
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_31)
360
-
361
- expect(stackFrames.stack.length).toEqual(3)
362
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 13, func: 'foo', line: 41, url: 'http://path/to/file.js' })
363
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 1, func: 'bar', line: 1, url: 'http://path/to/file.js' })
364
- expect(stackFrames.stack[2]).toEqual({
365
- args: [],
366
- column: 1,
367
- func: '.plugin/e.fn[c]/<',
368
- line: 1,
369
- url: 'http://path/to/file.js',
370
- })
371
- })
372
-
373
- it('should parse Firefox 44 ns exceptions', () => {
374
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_44_NS_EXCEPTION)
375
-
376
- expect(stackFrames.stack.length).toEqual(4)
377
- expect(stackFrames.stack[0]).toEqual({
378
- args: [],
379
- column: 28,
380
- func: '[2]</Bar.prototype._baz/</<',
381
- line: 703,
382
- url: 'http://path/to/file.js',
383
- })
384
- expect(stackFrames.stack[1]).toEqual({
385
- args: [],
386
- column: 2,
387
- func: 'App.prototype.foo',
388
- line: 15,
389
- url: 'file:///path/to/file.js',
390
- })
391
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 3, func: 'bar', line: 20, url: 'file:///path/to/file.js' })
392
- expect(stackFrames.stack[3]).toEqual({
393
- args: [],
394
- column: 1,
395
- func: '?',
396
- line: 23,
397
- url: 'file:///path/to/index.html',
398
- })
399
- })
400
-
401
- it('should parse Chrome error with no location', () => {
402
- const error = { stack: 'error\n at Array.forEach (native)' }
403
- const stackFrames = computeStackTrace(error as Error)
404
- expect(stackFrames.stack.length).toEqual(1)
405
- expect(stackFrames.stack[0]).toEqual({
406
- args: ['native'],
407
- column: undefined,
408
- func: 'Array.forEach',
409
- line: undefined,
410
- url: undefined,
411
- })
412
- })
413
-
414
- it('should parse Chrome error that only contain file name, with no path prefix', () => {
415
- const stack = `Error: RTE Simulation
416
- at foo$bar$oof$rab (events.cljs:1060:12)
417
- at func1$func2$func3$func4 (std_interceptors.js:128:19)
418
- at eval (std_interceptors.jsx:132:29)`
419
-
420
- const stackFrames = computeStackTrace({ stack } as Error)
421
- expect(stackFrames.stack.length).toEqual(3)
422
- expect(stackFrames.stack[0]).toEqual({
423
- args: [],
424
- column: 12,
425
- func: 'foo$bar$oof$rab',
426
- line: 1060,
427
- url: 'events.cljs',
428
- })
429
- expect(stackFrames.stack[1]).toEqual({
430
- args: [],
431
- column: 19,
432
- func: 'func1$func2$func3$func4',
433
- line: 128,
434
- url: 'std_interceptors.js',
435
- })
436
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 29, func: 'eval', line: 132, url: 'std_interceptors.jsx' })
437
- })
438
-
439
- it('should not include error message into stacktrace ', () => {
440
- const stackFrames = computeStackTrace(new Error('bar@http://path/to/file.js:1:1'))
441
-
442
- expect(stackFrames.stack[0]?.url).not.toBe('http://path/to/file.js')
443
- })
444
-
445
- it('should parse Chrome anonymous function errors', () => {
446
- const stack = `Error: RTE Simulation
447
- at https://cloud.openobserve.ai/somefile.js:8489:191
448
- at chrome-extension://<id>/content/index.js:85:37379`
449
-
450
- const stackFrames = computeStackTrace({ stack } as Error)
451
- expect(stackFrames.stack.length).toEqual(2)
452
- expect(stackFrames.stack[0]).toEqual({
453
- args: [],
454
- column: 191,
455
- func: '?',
456
- line: 8489,
457
- url: 'https://cloud.openobserve.ai/somefile.js',
458
- })
459
- expect(stackFrames.stack[1]).toEqual({
460
- args: [],
461
- column: 37379,
462
- func: '?',
463
- line: 85,
464
- url: 'chrome-extension://<id>/content/index.js',
465
- })
466
- })
467
-
468
- it('should parse Chrome 15 error', () => {
469
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_15 as any)
470
-
471
- expect(stackFrames.stack.length).toEqual(4)
472
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 17, func: 'bar', line: 13, url: 'http://path/to/file.js' })
473
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 5, func: 'bar', line: 16, url: 'http://path/to/file.js' })
474
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 5, func: 'foo', line: 20, url: 'http://path/to/file.js' })
475
- expect(stackFrames.stack[3]).toEqual({ args: [], column: 4, func: '?', line: 24, url: 'http://path/to/file.js' })
476
- })
477
-
478
- it('should parse Chrome 36 error with port numbers', () => {
479
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_36)
480
-
481
- expect(stackFrames.stack.length).toEqual(3)
482
- expect(stackFrames.stack[0]).toEqual({
483
- args: [],
484
- column: 27,
485
- func: 'dumpExceptionError',
486
- line: 41,
487
- url: 'http://localhost:8080/file.js',
488
- })
489
- expect(stackFrames.stack[1]).toEqual({
490
- args: [],
491
- column: 146,
492
- func: 'HTMLButtonElement.onclick',
493
- line: 107,
494
- url: 'http://localhost:8080/file.js',
495
- })
496
- expect(stackFrames.stack[2]).toEqual({
497
- args: [],
498
- column: 3651,
499
- func: 'I.e.fn.(anonymous function) [as index]',
500
- line: 10,
501
- url: 'http://localhost:8080/file.js',
502
- })
503
- })
504
-
505
- it('should parse Chrome error with webpack URLs', () => {
506
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_XX_WEBPACK)
507
-
508
- expect(stackFrames.stack.length).toEqual(4)
509
- expect(stackFrames.stack[0]).toEqual({
510
- args: [],
511
- column: 108,
512
- func: 'TESTTESTTEST.eval',
513
- line: 295,
514
- url: 'webpack:///./src/components/test/test.jsx?',
515
- })
516
- expect(stackFrames.stack[1]).toEqual({
517
- args: [],
518
- column: 32,
519
- func: 'TESTTESTTEST.render',
520
- line: 272,
521
- url: 'webpack:///./src/components/test/test.jsx?',
522
- })
523
- expect(stackFrames.stack[2]).toEqual({
524
- args: [],
525
- column: 31,
526
- func: 'TESTTESTTEST.tryRender',
527
- line: 34,
528
- url: 'webpack:///./~/react-transform-catch-errors/lib/index.js?',
529
- })
530
- expect(stackFrames.stack[3]).toEqual({
531
- args: [],
532
- column: 30,
533
- func: 'TESTTESTTEST.proxiedMethod',
534
- line: 44,
535
- url: 'webpack:///./~/react-proxy/modules/createPrototypeProxy.js?',
536
- })
537
- })
538
-
539
- it('should parse Electron schema with Chrome error', () => {
540
- const stackFrames = computeStackTrace(CapturedExceptions.ELECTRON)
541
-
542
- expect(stackFrames.stack.length).toEqual(3)
543
- expect(stackFrames.stack[0]).toEqual({
544
- args: [],
545
- column: 27,
546
- func: 'dumpExceptionError',
547
- line: 41,
548
- url: 'electron://-/file.js',
549
- })
550
- expect(stackFrames.stack[1]).toEqual({
551
- args: [],
552
- column: 146,
553
- func: 'HTMLButtonElement.onclick',
554
- line: 107,
555
- url: 'electron://-/file.js',
556
- })
557
- expect(stackFrames.stack[2]).toEqual({
558
- args: [],
559
- column: 3651,
560
- func: 'I.e.fn.(anonymous function) [as index]',
561
- line: 10,
562
- url: 'electron://-/file.js',
563
- })
564
- })
565
-
566
- it('should parse nested eval() from Chrome', () => {
567
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_48_EVAL)
568
-
569
- expect(stackFrames.stack.length).toEqual(5)
570
- expect(stackFrames.stack[0]).toEqual({
571
- args: [],
572
- column: 17,
573
- func: 'baz',
574
- line: 21,
575
- url: 'http://localhost:8080/file.js',
576
- })
577
- expect(stackFrames.stack[1]).toEqual({
578
- args: [],
579
- column: 17,
580
- func: 'foo',
581
- line: 21,
582
- url: 'http://localhost:8080/file.js',
583
- })
584
- expect(stackFrames.stack[2]).toEqual({
585
- args: [],
586
- column: 17,
587
- func: 'eval',
588
- line: 21,
589
- url: 'http://localhost:8080/file.js',
590
- })
591
- expect(stackFrames.stack[3]).toEqual({
592
- args: [],
593
- column: 17,
594
- func: 'Object.speak',
595
- line: 21,
596
- url: 'http://localhost:8080/file.js',
597
- })
598
- expect(stackFrames.stack[4]).toEqual({
599
- args: [],
600
- column: 13,
601
- func: '?',
602
- line: 31,
603
- url: 'http://localhost:8080/file.js',
604
- })
605
- })
606
-
607
- it('should parse Chrome error with blob URLs', () => {
608
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_48_BLOB)
609
-
610
- expect(stackFrames.stack.length).toEqual(7)
611
- expect(stackFrames.stack[1]).toEqual({
612
- args: [],
613
- column: 29146,
614
- func: 's',
615
- line: 31,
616
- url: 'blob:http%3A//localhost%3A8080/abfc40e9-4742-44ed-9dcd-af8f99a29379',
617
- })
618
- expect(stackFrames.stack[2]).toEqual({
619
- args: [],
620
- column: 30039,
621
- func: 'Object.d [as add]',
622
- line: 31,
623
- url: 'blob:http%3A//localhost%3A8080/abfc40e9-4742-44ed-9dcd-af8f99a29379',
624
- })
625
- expect(stackFrames.stack[3]).toEqual({
626
- args: [],
627
- column: 10978,
628
- func: '?',
629
- line: 15,
630
- url: 'blob:http%3A//localhost%3A8080/d4eefe0f-361a-4682-b217-76587d9f712a',
631
- })
632
- expect(stackFrames.stack[4]).toEqual({
633
- args: [],
634
- column: 6911,
635
- func: '?',
636
- line: 1,
637
- url: 'blob:http%3A//localhost%3A8080/abfc40e9-4742-44ed-9dcd-af8f99a29379',
638
- })
639
- expect(stackFrames.stack[5]).toEqual({
640
- args: [],
641
- column: 3019,
642
- func: 'n.fire',
643
- line: 7,
644
- url: 'blob:http%3A//localhost%3A8080/abfc40e9-4742-44ed-9dcd-af8f99a29379',
645
- })
646
- expect(stackFrames.stack[6]).toEqual({
647
- args: [],
648
- column: 2863,
649
- func: 'n.handle',
650
- line: 7,
651
- url: 'blob:http%3A//localhost%3A8080/abfc40e9-4742-44ed-9dcd-af8f99a29379',
652
- })
653
- })
654
-
655
- it('should parse errors from Chrome Snippets', () => {
656
- const stackFrames = computeStackTrace(CapturedExceptions.CHROME_111_SNIPPET)
657
-
658
- expect(stackFrames.stack.length).toEqual(1)
659
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 13, func: '?', line: 1, url: 'snippet:///snippet_file' })
660
- })
661
-
662
- it('should parse empty IE 9 error', () => {
663
- const stackFrames = computeStackTrace(CapturedExceptions.IE_9)
664
-
665
- if (stackFrames.stack) {
666
- expect(stackFrames.stack.length).toEqual(0)
667
- }
668
- })
669
-
670
- it('should parse IE 10 error', () => {
671
- const stackFrames = computeStackTrace(CapturedExceptions.IE_10 as any)
672
-
673
- expect(stackFrames.stack.length).toEqual(3)
674
- // TODO: func should be normalized
675
- expect(stackFrames.stack[0]).toEqual({
676
- args: [],
677
- column: 13,
678
- func: 'Anonymous function',
679
- line: 48,
680
- url: 'http://path/to/file.js',
681
- })
682
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 9, func: 'foo', line: 46, url: 'http://path/to/file.js' })
683
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 1, func: 'bar', line: 82, url: 'http://path/to/file.js' })
684
- })
685
-
686
- it('should parse IE 11 error', () => {
687
- const stackFrames = computeStackTrace(CapturedExceptions.IE_11)
688
-
689
- expect(stackFrames.stack.length).toEqual(3)
690
- // TODO: func should be normalized
691
- expect(stackFrames.stack[0]).toEqual({
692
- args: [],
693
- column: 21,
694
- func: 'Anonymous function',
695
- line: 47,
696
- url: 'http://path/to/file.js',
697
- })
698
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 13, func: 'foo', line: 45, url: 'http://path/to/file.js' })
699
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 1, func: 'bar', line: 108, url: 'http://path/to/file.js' })
700
- })
701
-
702
- it('should parse IE 11 eval error', () => {
703
- const stackFrames = computeStackTrace(CapturedExceptions.IE_11_EVAL)
704
-
705
- expect(stackFrames.stack.length).toEqual(3)
706
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 1, func: 'eval code', line: 1, url: 'eval code' })
707
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 17, func: 'foo', line: 58, url: 'http://path/to/file.js' })
708
- expect(stackFrames.stack[2]).toEqual({ args: [], column: 1, func: 'bar', line: 109, url: 'http://path/to/file.js' })
709
- })
710
-
711
- it('should parse Opera 25 error', () => {
712
- const stackFrames = computeStackTrace(CapturedExceptions.OPERA_25)
713
-
714
- expect(stackFrames.stack.length).toEqual(3)
715
- expect(stackFrames.stack[0]).toEqual({ args: [], column: 22, func: '?', line: 47, url: 'http://path/to/file.js' })
716
- expect(stackFrames.stack[1]).toEqual({ args: [], column: 15, func: 'foo', line: 52, url: 'http://path/to/file.js' })
717
- expect(stackFrames.stack[2]).toEqual({
718
- args: [],
719
- column: 168,
720
- func: 'bar',
721
- line: 108,
722
- url: 'http://path/to/file.js',
723
- })
724
- })
725
-
726
- it('should parse PhantomJS 1.19 error', () => {
727
- const stackFrames = computeStackTrace(CapturedExceptions.PHANTOMJS_1_19 as Error)
728
-
729
- expect(stackFrames.stack.length).toEqual(3)
730
- expect(stackFrames.stack[0]).toEqual({
731
- args: [],
732
- column: undefined,
733
- func: '?',
734
- line: 878,
735
- url: 'file:///path/to/file.js',
736
- })
737
- expect(stackFrames.stack[1]).toEqual({
738
- args: [],
739
- column: undefined,
740
- func: 'foo',
741
- line: 4283,
742
- url: 'http://path/to/file.js',
743
- })
744
- expect(stackFrames.stack[2]).toEqual({
745
- args: [],
746
- column: undefined,
747
- func: '?',
748
- line: 4287,
749
- url: 'http://path/to/file.js',
750
- })
751
- })
752
-
753
- it('should parse Firefox errors with resource: URLs', () => {
754
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_50_RESOURCE_URL)
755
-
756
- expect(stackFrames.stack.length).toEqual(3)
757
- expect(stackFrames.stack[0]).toEqual({
758
- args: [],
759
- column: 16,
760
- func: 'render',
761
- line: 5529,
762
- url: 'resource://path/data/content/bundle.js',
763
- })
764
- })
765
-
766
- it('should parse Firefox errors with eval URLs', () => {
767
- const stackFrames = computeStackTrace(CapturedExceptions.FIREFOX_43_EVAL as any)
768
-
769
- expect(stackFrames.stack.length).toEqual(5)
770
- expect(stackFrames.stack[0]).toEqual({
771
- args: [],
772
- column: undefined,
773
- func: 'baz',
774
- line: 26,
775
- url: 'http://localhost:8080/file.js',
776
- })
777
- expect(stackFrames.stack[1]).toEqual({
778
- args: [],
779
- column: undefined,
780
- func: 'foo',
781
- line: 26,
782
- url: 'http://localhost:8080/file.js',
783
- })
784
- expect(stackFrames.stack[2]).toEqual({
785
- args: [],
786
- column: undefined,
787
- func: '?',
788
- line: 26,
789
- url: 'http://localhost:8080/file.js',
790
- })
791
- expect(stackFrames.stack[3]).toEqual({
792
- args: [],
793
- column: 17,
794
- func: 'speak',
795
- line: 26,
796
- url: 'http://localhost:8080/file.js',
797
- })
798
- expect(stackFrames.stack[4]).toEqual({
799
- args: [],
800
- column: 9,
801
- func: '?',
802
- line: 33,
803
- url: 'http://localhost:8080/file.js',
804
- })
805
- })
806
-
807
- it('should parse React Native errors on Android', () => {
808
- const stackFrames = computeStackTrace(CapturedExceptions.ANDROID_REACT_NATIVE)
809
-
810
- expect(stackFrames.stack.length).toEqual(8)
811
- expect(stackFrames.stack[0]).toEqual({
812
- args: [],
813
- column: 24,
814
- func: 'render',
815
- line: 78,
816
- url: '/home/username/sample-workspace/sampleapp.collect.react/src/components/GpsMonitorScene.js',
817
- })
818
- expect(stackFrames.stack[7]).toEqual({
819
- args: [],
820
- column: 41,
821
- func: 'this',
822
- line: 74,
823
- url: '/home/username/sample-workspace/sampleapp.collect.react/node_modules/react-native/Libraries/Renderer/src/renderers/native/ReactNativeBaseComponent.js',
824
- })
825
- })
826
-
827
- it('should parse React Native errors on Android Production', () => {
828
- const stackFrames = computeStackTrace(CapturedExceptions.ANDROID_REACT_NATIVE_PROD)
829
-
830
- expect(stackFrames.stack.length).toEqual(37)
831
- expect(stackFrames.stack[0]).toEqual({
832
- args: [],
833
- column: 1917,
834
- func: 'value',
835
- line: 12,
836
- url: 'index.android.bundle',
837
- })
838
- expect(stackFrames.stack[35]).toEqual({
839
- args: [],
840
- column: 927,
841
- func: 'value',
842
- line: 29,
843
- url: 'index.android.bundle',
844
- })
845
- expect(stackFrames.stack[36]).toEqual({
846
- args: [],
847
- column: undefined,
848
- func: '?',
849
- line: undefined,
850
- url: '[native code]',
851
- })
852
- })
853
-
854
- it('should parse iOS capacitor', () => {
855
- const stackFrames = computeStackTrace(CapturedExceptions.IOS_CAPACITOR)
856
-
857
- expect(stackFrames.stack.length).toEqual(2)
858
- expect(stackFrames.stack[0]).toEqual({
859
- args: [],
860
- column: 99546,
861
- func: '?',
862
- line: 34,
863
- url: 'capacitor://localhost/media/dist/bundle.js',
864
- })
865
- expect(stackFrames.stack[1]).toEqual({
866
- args: [],
867
- column: 47950,
868
- func: 'r',
869
- line: 34,
870
- url: 'capacitor://localhost/media/dist/bundle.js',
871
- })
872
- })
873
-
874
- it('should parse Safari WebAssembly stack frames', () => {
875
- const wasmStack = `
876
- RuntimeError: Out of bounds memory access
877
- myModule.wasm-function[crashHandler]@[wasm code]
878
- <?>.wasm-function[42]@[wasm code]
879
- handleError@http://192.168.1.113:3000/:98:25
880
- @http://192.168.1.113:3000/:113:32
881
- `
882
- const mockErr = { message: 'Out of bounds memory access', name: 'RuntimeError', stack: wasmStack }
883
- const stackFrames = computeStackTrace(mockErr)
884
-
885
- expect(stackFrames.stack.length).toBe(4)
886
-
887
- expect(stackFrames.stack[0]).toEqual({
888
- args: [],
889
- func: 'myModule.wasm-function[crashHandler]',
890
- url: '[wasm code]',
891
- column: undefined,
892
- line: undefined,
893
- })
894
-
895
- expect(stackFrames.stack[1]).toEqual({
896
- args: [],
897
- func: '<?>.wasm-function[42]',
898
- url: '[wasm code]',
899
- column: undefined,
900
- line: undefined,
901
- })
902
- })
903
-
904
- it('should parse Safari Wasm stack frames from file URL', () => {
905
- const wasmStack = `
906
- RuntimeError: Some Wasm Error
907
- myModule.wasm-function[crashFunc]@[wasm code]
908
- regularJsFunc@http://example.com/script.js:10:5
909
- `
910
- const mockErr = { message: 'Some Wasm Error', name: 'RuntimeError', stack: wasmStack }
911
- const stackFrames = computeStackTrace(mockErr)
912
-
913
- expect(stackFrames.stack.length).toBe(2)
914
- expect(stackFrames.stack[0]).toEqual({
915
- args: [],
916
- func: 'myModule.wasm-function[crashFunc]',
917
- url: '[wasm code]',
918
- line: undefined,
919
- column: undefined,
920
- })
921
- })
922
-
923
- it('should parse Chrome WebAssembly stack frames', () => {
924
- const wasmStack = `
925
- Error: Wasm Error
926
- at myModule.foo (http://example.com/myModule.wasm:wasm-function[42]:0x1a3b)
927
- at bar (http://example.com/script.js:10:5)
928
- `
929
- const mockErr = { message: 'Wasm Error', name: 'Error', stack: wasmStack }
930
- const stackFrames = computeStackTrace(mockErr)
931
-
932
- expect(stackFrames.stack.length).toBe(2)
933
- expect(stackFrames.stack[0]).toEqual({
934
- args: [],
935
- func: 'myModule.foo',
936
- url: 'http://example.com/myModule.wasm:wasm-function[42]:0x1a3b',
937
- line: undefined,
938
- column: undefined,
939
- })
940
- })
941
-
942
- it('should parse Firefox WebAssembly stack frames', () => {
943
- const wasmStack = `
944
- Error: Wasm Error
945
- myModule.foo@http://example.com/my-module.wasm:wasm-function[42]:0x1a3b
946
- bar@http://example.com/script.js:10:5
947
- `
948
- const mockErr = { message: 'Wasm Error', name: 'Error', stack: wasmStack }
949
- const stackFrames = computeStackTrace(mockErr)
950
-
951
- expect(stackFrames.stack.length).toBe(2)
952
-
953
- expect(stackFrames.stack[0]).toEqual({
954
- args: [],
955
- func: 'myModule.foo',
956
- url: 'http://example.com/my-module.wasm:wasm-function[42]:0x1a3b',
957
- line: undefined,
958
- column: undefined,
959
- })
960
- })
961
-
962
- it('should normalize non native errors stacktraces across browsers', () => {
963
- class DatadogTestCustomError extends Error {
964
- constructor() {
965
- super()
966
- this.name = 'Error' // set name to Error so that no browser would default to the constructor name
967
- }
968
- }
969
- class DatadogTestCustomError2 extends DatadogTestCustomError {}
970
-
971
- const [customError, customErrorWithInheritance, customErrorWithAnonymousInheritance, nativeError] = [
972
- DatadogTestCustomError,
973
- DatadogTestCustomError2,
974
- // this is an anonymous class, which has no name
975
- // we're checking if the stacktrace is correctly reported for this specific case (with the class name missing)
976
- class extends DatadogTestCustomError2 {
977
- constructor() {
978
- super()
979
- this.name = 'Error'
980
- }
981
- },
982
- Error,
983
- ].map((errConstructor) => new errConstructor()) // so that both errors should exactly have the same stacktrace
984
-
985
- expect(computeStackTrace(customError.stack)).toEqual(computeStackTrace(nativeError.stack))
986
- expect(computeStackTrace(customErrorWithInheritance.stack)).toEqual(computeStackTrace(nativeError.stack))
987
- expect(computeStackTrace(customErrorWithAnonymousInheritance.stack)).toEqual(computeStackTrace(nativeError.stack))
988
- })
989
-
990
- it('should skip empty lines in stacktraces', () => {
991
- const wasmStack = `
992
- Error: Wasm Error
993
- myModule.foo@http://example.com/my-module.wasm:wasm-function[42]:0x1a3b\n \n\t\n`
994
- const mockErr = { message: 'Wasm Error', name: 'Error', stack: wasmStack }
995
- const stackFrames = computeStackTrace(mockErr)
996
-
997
- expect(stackFrames.stack.length).toBe(1)
998
-
999
- expect(stackFrames.stack[0]).toEqual({
1000
- args: [],
1001
- func: 'myModule.foo',
1002
- url: 'http://example.com/my-module.wasm:wasm-function[42]:0x1a3b',
1003
- line: undefined,
1004
- column: undefined,
1005
- })
1006
- })
1007
- })