@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,118 +1,180 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.instrumentMethod = instrumentMethod;
4
- exports.instrumentSetter = instrumentSetter;
5
- const timer_1 = require("./timer");
6
- const monitor_1 = require("./monitor");
7
- const functionUtils_1 = require("./utils/functionUtils");
8
- const handlingStack_1 = require("./stackTrace/handlingStack");
1
+ const require_monitor = require("./monitor.js");
2
+ const require_timer = require("./timer.js");
3
+ const require_functionUtils = require("./utils/functionUtils.js");
4
+ const require_handlingStack = require("./stackTrace/handlingStack.js");
5
+ //#region src/tools/instrumentMethod.ts
9
6
  /**
10
- * Instruments a method on a object, calling the given callback before the original method is
11
- * invoked. The callback receives an object with information about the method call.
12
- *
13
- * This function makes sure that we are "good citizens" regarding third party instrumentations: when
14
- * removing the instrumentation, the original method is usually restored, but if a third party
15
- * instrumentation was set after ours, we keep it in place and just replace our instrumentation with
16
- * a noop.
17
- *
18
- * Note: it is generally better to instrument methods that are "owned" by the object instead of ones
19
- * that are inherited from the prototype chain. Example:
20
- * * do: `instrumentMethod(Array.prototype, 'push', ...)`
21
- * * don't: `instrumentMethod([], 'push', ...)`
22
- *
23
- * This method is also used to set event handler properties (ex: window.onerror = ...), as it has
24
- * the same requirements as instrumenting a method:
25
- * * if the event handler is already set by a third party, we need to call it and not just blindly
26
- * override it.
27
- * * if the event handler is set by a third party after us, we need to keep it in place when
28
- * removing ours.
29
- *
30
- * @example
31
- *
32
- * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {
33
- * console.log('Before calling fetch on', target, 'with parameters', parameters)
34
- *
35
- * onPostCall((result) => {
36
- * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)
37
- * })
38
- * })
39
- */
7
+ * Instruments a method on a object, calling the given callback before the original method is
8
+ * invoked. The callback receives an object with information about the method call.
9
+ *
10
+ * This function makes sure that we are "good citizens" regarding third party instrumentations: when
11
+ * removing the instrumentation, the original method is usually restored, but if a third party
12
+ * instrumentation was set after ours, we keep it in place and just replace our instrumentation with
13
+ * a noop.
14
+ *
15
+ * Note: it is generally better to instrument methods that are "owned" by the object instead of ones
16
+ * that are inherited from the prototype chain. Example:
17
+ * * do: `instrumentMethod(Array.prototype, 'push', ...)`
18
+ * * don't: `instrumentMethod([], 'push', ...)`
19
+ *
20
+ * This method is also used to set event handler properties (ex: window.onerror = ...), as it has
21
+ * the same requirements as instrumenting a method:
22
+ * * if the event handler is already set by a third party, we need to call it and not just blindly
23
+ * override it.
24
+ * * if the event handler is set by a third party after us, we need to keep it in place when
25
+ * removing ours.
26
+ *
27
+ * To instrument a constructor @see {@link instrumentConstructor}.
28
+ *
29
+ * @example
30
+ *
31
+ * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {
32
+ * console.log('Before calling fetch on', target, 'with parameters', parameters)
33
+ *
34
+ * onPostCall((result) => {
35
+ * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)
36
+ * })
37
+ * })
38
+ */
40
39
  function instrumentMethod(targetPrototype, method, onPreCall, { computeHandlingStack } = {}) {
41
- let original = targetPrototype[method];
42
- if (typeof original !== 'function') {
43
- if (method in targetPrototype && method.startsWith('on')) {
44
- original = functionUtils_1.noop;
45
- }
46
- else {
47
- return { stop: functionUtils_1.noop };
48
- }
49
- }
50
- let stopped = false;
51
- const instrumentation = function () {
52
- if (stopped) {
53
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
54
- return original.apply(this, arguments);
55
- }
56
- const parameters = Array.from(arguments);
57
- let postCallCallback;
58
- (0, monitor_1.callMonitored)(onPreCall, null, [
59
- {
60
- target: this,
61
- parameters,
62
- onPostCall: (callback) => {
63
- postCallCallback = callback;
64
- },
65
- handlingStack: computeHandlingStack ? (0, handlingStack_1.createHandlingStack)('instrumented method') : undefined,
66
- },
67
- ]);
68
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
69
- const result = original.apply(this, parameters);
70
- if (postCallCallback) {
71
- (0, monitor_1.callMonitored)(postCallCallback, null, [result]);
72
- }
73
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
74
- return result;
75
- };
76
- targetPrototype[method] = instrumentation;
77
- return {
78
- stop: () => {
79
- stopped = true;
80
- // If the instrumentation has been removed by a third party, keep the last one
81
- if (targetPrototype[method] === instrumentation) {
82
- targetPrototype[method] = original;
83
- }
84
- },
85
- };
40
+ let original = targetPrototype[method];
41
+ if (typeof original !== "function") if (method in targetPrototype && typeof method === "string" && method.startsWith("on")) original = require_functionUtils.noop;
42
+ else return { stop: require_functionUtils.noop };
43
+ let stopped = false;
44
+ const instrumentation = function() {
45
+ if (stopped) return original.apply(this, arguments);
46
+ const parameters = Array.from(arguments);
47
+ return notifyInstrumentation(onPreCall, {
48
+ target: this,
49
+ parameters,
50
+ handlingStack: computeHandlingStack ? require_handlingStack.createHandlingStack("instrumented method") : void 0
51
+ }, () => original.apply(this, parameters));
52
+ };
53
+ const { stop: restoreOriginal } = replaceWithInstrumentation(targetPrototype, method, original, instrumentation);
54
+ return { stop: () => {
55
+ stopped = true;
56
+ restoreOriginal();
57
+ } };
58
+ }
59
+ /**
60
+ * Instruments a constructor on an object (typically a global, e.g. `window.WebSocket`), calling the
61
+ * given callback before the original constructor is invoked. The callback receives an object with
62
+ * information about the constructor call, and can register an `onPostCall` callback to be notified
63
+ * with the constructed instance.
64
+ *
65
+ * Like `instrumentMethod`, this is a "good citizen" regarding third party instrumentations: stopping
66
+ * restores the original constructor unless a third party replaced it afterwards.
67
+ *
68
+ * The wrapper preserves the original prototype (so `instanceof` keeps working), the original
69
+ * `new.target` (so constructors that inspect it behave as if not instrumented), the original
70
+ * static members (e.g. `WebSocket.OPEN`), and `instance.constructor ===` so checks like
71
+ * `new WebSocket(url).constructor === WebSocket` stay true.
72
+ *
73
+ * @see {@link preserveConstructorShape} for limitations on static members preservation.
74
+ * @example
75
+ *
76
+ * instrumentConstructor(window, 'WebSocket', ({ parameters, onPostCall }) => {
77
+ * console.log('Before constructing WebSocket with parameters', parameters)
78
+ *
79
+ * onPostCall((instance) => {
80
+ * console.log('Constructed WebSocket instance', instance)
81
+ * })
82
+ * })
83
+ */
84
+ function instrumentConstructor(container, constructor, onPreCall, { computeHandlingStack } = {}) {
85
+ const original = container[constructor];
86
+ if (typeof original !== "function") return { stop: require_functionUtils.noop };
87
+ let stopped = false;
88
+ const instrumentation = function() {
89
+ if (!new.target) return Reflect.apply(original, this, Array.from(arguments));
90
+ const newTarget = new.target === instrumentation ? original : new.target;
91
+ if (stopped) return Reflect.construct(original, arguments, newTarget);
92
+ const parameters = Array.from(arguments);
93
+ return notifyInstrumentation(onPreCall, {
94
+ parameters,
95
+ handlingStack: computeHandlingStack ? require_handlingStack.createHandlingStack("instrumented constructor") : void 0
96
+ }, () => Reflect.construct(original, parameters, newTarget));
97
+ };
98
+ const restorePrototypeConstructor = preserveConstructorShape(instrumentation, original);
99
+ const { stop: restoreOriginal } = replaceWithInstrumentation(container, constructor, original, instrumentation);
100
+ return { stop: () => {
101
+ stopped = true;
102
+ restorePrototypeConstructor();
103
+ restoreOriginal();
104
+ } };
105
+ }
106
+ /**
107
+ * Replaces `targetPrototype[method]` with the provided instrumentation and
108
+ * returns a `stop` function restoring the original (unless a third party replaced us afterwards).
109
+ */
110
+ function replaceWithInstrumentation(targetPrototype, method, original, instrumentation) {
111
+ targetPrototype[method] = instrumentation;
112
+ return { stop: () => {
113
+ if (targetPrototype[method] === instrumentation) targetPrototype[method] = original;
114
+ } };
115
+ }
116
+ /**
117
+ * Runs the pre-call callback (injecting the `onPostCall` registration), invokes the original
118
+ * method/constructor, then runs the registered post-call callback with the result.
119
+ *
120
+ * Note: the handling stack must be computed by the caller (at the topmost position of the call
121
+ * stack), so it is part of `baseCallInfo` rather than computed here.
122
+ */
123
+ function notifyInstrumentation(onPreCall, baseCallInfo, invokeOriginal) {
124
+ let postCallCallback;
125
+ require_monitor.callMonitored(onPreCall, null, [{
126
+ ...baseCallInfo,
127
+ onPostCall: (callback) => {
128
+ postCallCallback = callback;
129
+ }
130
+ }]);
131
+ const result = invokeOriginal();
132
+ if (postCallCallback) require_monitor.callMonitored(postCallCallback, null, [result]);
133
+ return result;
134
+ }
135
+ /**
136
+ * Copies the original constructor prototype and other static members onto the instrumentation, so that
137
+ * `instanceof` checks keep working and statics such as `WebSocket.OPEN` remain available while
138
+ * instrumented.
139
+ *
140
+ * Returns a function that restores `prototype.constructor` to its prior descriptor; call it
141
+ * before restoring the global property in `stop()`.
142
+ */
143
+ function preserveConstructorShape(instrumentation, original) {
144
+ /**
145
+ * Limitation: Only the original's *own* static members are copied. Statics inherited through the
146
+ * constructor's prototype chain (e.g. `class Child extends Parent` where `Parent` defines statics)
147
+ * are not preserved, since the instrumentation still inherits from `Function.prototype`. This is
148
+ * acceptable for the globals we instrument (e.g. `WebSocket`, whose own statics are the only ones
149
+ * that matter), but we would need to delegate the static prototype chain to support subclassed
150
+ * constructors with meaningful inherited statics.
151
+ */
152
+ for (const key of [].concat(Object.getOwnPropertyNames(original), Object.getOwnPropertySymbols(original))) Object.defineProperty(instrumentation, key, Object.getOwnPropertyDescriptor(original, key));
153
+ const { stop: restoreOriginalConstructor } = replaceWithInstrumentation(original.prototype, "constructor", original.prototype.constructor, instrumentation);
154
+ return restoreOriginalConstructor;
86
155
  }
87
156
  function instrumentSetter(targetPrototype, property, after) {
88
- const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);
89
- if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {
90
- return { stop: functionUtils_1.noop };
91
- }
92
- const stoppedInstrumentation = functionUtils_1.noop;
93
- let instrumentation = (target, value) => {
94
- // put hooked setter into event loop to avoid of set latency
95
- (0, timer_1.setTimeout)(() => {
96
- if (instrumentation !== stoppedInstrumentation) {
97
- after(target, value);
98
- }
99
- }, 0);
100
- };
101
- const instrumentationWrapper = function (value) {
102
- originalDescriptor.set.call(this, value);
103
- instrumentation(this, value);
104
- };
105
- Object.defineProperty(targetPrototype, property, {
106
- set: instrumentationWrapper,
107
- });
108
- return {
109
- stop: () => {
110
- var _a;
111
- if (((_a = Object.getOwnPropertyDescriptor(targetPrototype, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {
112
- Object.defineProperty(targetPrototype, property, originalDescriptor);
113
- }
114
- instrumentation = stoppedInstrumentation;
115
- },
116
- };
157
+ const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property);
158
+ if (!originalDescriptor?.set || !originalDescriptor.configurable) return { stop: require_functionUtils.noop };
159
+ const stoppedInstrumentation = require_functionUtils.noop;
160
+ let instrumentation = (target, value) => {
161
+ require_timer.setTimeout(() => {
162
+ if (instrumentation !== stoppedInstrumentation) after(target, value);
163
+ }, 0);
164
+ };
165
+ const instrumentationWrapper = function(value) {
166
+ originalDescriptor.set.call(this, value);
167
+ instrumentation(this, value);
168
+ };
169
+ Object.defineProperty(targetPrototype, property, { set: instrumentationWrapper });
170
+ return { stop: () => {
171
+ if (Object.getOwnPropertyDescriptor(targetPrototype, property)?.set === instrumentationWrapper) Object.defineProperty(targetPrototype, property, originalDescriptor);
172
+ instrumentation = stoppedInstrumentation;
173
+ } };
117
174
  }
175
+ //#endregion
176
+ exports.instrumentConstructor = instrumentConstructor;
177
+ exports.instrumentMethod = instrumentMethod;
178
+ exports.instrumentSetter = instrumentSetter;
179
+
118
180
  //# sourceMappingURL=instrumentMethod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentMethod.js","sourceRoot":"","sources":["../../src/tools/instrumentMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentMethod.js","names":["noop","createHandlingStack"],"sources":["../../src/tools/instrumentMethod.ts"],"sourcesContent":["import { setTimeout } from './timer'\nimport { callMonitored } from './monitor'\nimport { noop } from './utils/functionUtils'\nimport { createHandlingStack } from './stackTrace/handlingStack'\n\n/**\n * Object passed to the callback of an instrumented method call. See `instrumentMethod` for more\n * info.\n */\nexport interface InstrumentedMethodCall<TARGET extends { [key: string]: any }, METHOD extends keyof TARGET> {\n /**\n * The target object on which the method was called.\n */\n target: TARGET\n\n /**\n * The parameters with which the method was called.\n *\n * Note: if needed, parameters can be mutated by the instrumentation\n */\n parameters: Parameters<TARGET[METHOD]>\n\n /**\n * Registers a callback that will be called after the original method is called, with the method\n * result passed as argument.\n */\n onPostCall: (callback: PostCallCallback<TARGET, METHOD>) => void\n\n /**\n * The stack trace of the method call.\n */\n handlingStack?: string\n}\n\ntype PostCallCallback<TARGET extends { [key: string]: any }, METHOD extends keyof TARGET> = (\n result: ReturnType<TARGET[METHOD]>\n) => void\n\ntype ConstructorParametersOf<CONSTRUCTOR> = CONSTRUCTOR extends new (...args: infer P) => any ? P : never\ntype ConstructorInstanceOf<CONSTRUCTOR> = CONSTRUCTOR extends new (...args: any[]) => infer R ? R : never\n\ntype AnyConstructor = abstract new (...args: any[]) => any\n\n/**\n * Object passed to the callback of an instrumented constructor call. See `instrumentConstructor`\n * for more info.\n */\nexport interface InstrumentedConstructorCall<CONSTRUCTOR> {\n /**\n * The parameters with which the constructor was called.\n *\n * Note: if needed, parameters can be mutated by the instrumentation\n */\n parameters: ConstructorParametersOf<CONSTRUCTOR>\n\n /**\n * Registers a callback that will be called after the original constructor is called, with the\n * constructed instance passed as argument.\n */\n onPostCall: (callback: (result: ConstructorInstanceOf<CONSTRUCTOR>) => void) => void\n\n /**\n * The stack trace of the constructor call.\n */\n handlingStack?: string\n}\n\n/**\n * Instruments a method on a object, calling the given callback before the original method is\n * invoked. The callback receives an object with information about the method call.\n *\n * This function makes sure that we are \"good citizens\" regarding third party instrumentations: when\n * removing the instrumentation, the original method is usually restored, but if a third party\n * instrumentation was set after ours, we keep it in place and just replace our instrumentation with\n * a noop.\n *\n * Note: it is generally better to instrument methods that are \"owned\" by the object instead of ones\n * that are inherited from the prototype chain. Example:\n * * do: `instrumentMethod(Array.prototype, 'push', ...)`\n * * don't: `instrumentMethod([], 'push', ...)`\n *\n * This method is also used to set event handler properties (ex: window.onerror = ...), as it has\n * the same requirements as instrumenting a method:\n * * if the event handler is already set by a third party, we need to call it and not just blindly\n * override it.\n * * if the event handler is set by a third party after us, we need to keep it in place when\n * removing ours.\n *\n * To instrument a constructor @see {@link instrumentConstructor}.\n *\n * @example\n *\n * instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {\n * console.log('Before calling fetch on', target, 'with parameters', parameters)\n *\n * onPostCall((result) => {\n * console.log('After fetch calling on', target, 'with parameters', parameters, 'and result', result)\n * })\n * })\n */\nexport function instrumentMethod<TARGET extends { [key: string]: any }, METHOD extends keyof TARGET>(\n targetPrototype: TARGET,\n method: METHOD,\n onPreCall: (this: null, callInfos: InstrumentedMethodCall<TARGET, METHOD>) => void,\n { computeHandlingStack }: { computeHandlingStack?: boolean } = {}\n) {\n let original = targetPrototype[method]\n\n if (typeof original !== 'function') {\n if (method in targetPrototype && typeof method === 'string' && method.startsWith('on')) {\n original = noop as TARGET[METHOD]\n } else {\n return { stop: noop }\n }\n }\n\n let stopped = false\n\n const instrumentation = function (this: TARGET): ReturnType<TARGET[METHOD]> {\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return original.apply(this, arguments)\n }\n\n const parameters = Array.from(arguments) as Parameters<TARGET[METHOD]>\n\n return notifyInstrumentation<InstrumentedMethodCall<TARGET, METHOD>, ReturnType<TARGET[METHOD]>>(\n onPreCall,\n {\n target: this,\n parameters,\n handlingStack: computeHandlingStack ? createHandlingStack('instrumented method') : undefined,\n },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call -- TARGET[METHOD] is any under the index signature; value is verified as a function above\n () => original.apply(this, parameters)\n )\n } as TARGET[METHOD]\n\n const { stop: restoreOriginal } = replaceWithInstrumentation(targetPrototype, method, original, instrumentation)\n\n return {\n stop: () => {\n stopped = true\n restoreOriginal()\n },\n }\n}\n\n/**\n * Instruments a constructor on an object (typically a global, e.g. `window.WebSocket`), calling the\n * given callback before the original constructor is invoked. The callback receives an object with\n * information about the constructor call, and can register an `onPostCall` callback to be notified\n * with the constructed instance.\n *\n * Like `instrumentMethod`, this is a \"good citizen\" regarding third party instrumentations: stopping\n * restores the original constructor unless a third party replaced it afterwards.\n *\n * The wrapper preserves the original prototype (so `instanceof` keeps working), the original\n * `new.target` (so constructors that inspect it behave as if not instrumented), the original\n * static members (e.g. `WebSocket.OPEN`), and `instance.constructor ===` so checks like\n * `new WebSocket(url).constructor === WebSocket` stay true.\n *\n * @see {@link preserveConstructorShape} for limitations on static members preservation.\n * @example\n *\n * instrumentConstructor(window, 'WebSocket', ({ parameters, onPostCall }) => {\n * console.log('Before constructing WebSocket with parameters', parameters)\n *\n * onPostCall((instance) => {\n * console.log('Constructed WebSocket instance', instance)\n * })\n * })\n */\nexport function instrumentConstructor<CONTAINER extends { [key: string]: any }, CONSTRUCTOR extends keyof CONTAINER>(\n container: CONTAINER,\n constructor: CONSTRUCTOR,\n onPreCall: (this: null, callInfos: InstrumentedConstructorCall<CONTAINER[CONSTRUCTOR]>) => void,\n { computeHandlingStack }: { computeHandlingStack?: boolean } = {}\n) {\n const original = container[constructor]\n\n if (typeof original !== 'function') {\n return { stop: noop }\n }\n\n let stopped = false\n\n const instrumentation = function (this: unknown): ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]> {\n // Bare `[[Call]]` (no `new`): delegate through `[[Call]]` and skip `onPreCall`. Otherwise we\n // would notify instrumentation before the original rejects or returns, unlike the native\n // constructor (e.g. `WebSocket(url)` or `class {}()` without `new`).\n if (!new.target) {\n return Reflect.apply(original, this, Array.from(arguments)) as ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]>\n }\n\n // When `new` is used on this instrumented property, `new.target` is this wrapper. Passing\n // it through to Reflect.construct would expose the wrong new.target inside the original\n // body. If a subclass extends the wrapper, or a third party wraps us and their class is\n // instantiated, `new.target` is that outer constructor and must be preserved.\n const newTarget = new.target === instrumentation ? original : new.target\n\n if (stopped) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return Reflect.construct(\n original,\n arguments as unknown as ConstructorParametersOf<CONTAINER[CONSTRUCTOR]>,\n newTarget\n )\n }\n\n const parameters = Array.from(arguments) as ConstructorParametersOf<CONTAINER[CONSTRUCTOR]>\n\n return notifyInstrumentation<\n InstrumentedConstructorCall<CONTAINER[CONSTRUCTOR]>,\n ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]>\n >(\n onPreCall,\n {\n parameters,\n handlingStack: computeHandlingStack ? createHandlingStack('instrumented constructor') : undefined,\n },\n () =>\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n Reflect.construct(original, parameters, newTarget)\n )\n } as CONTAINER[CONSTRUCTOR]\n\n const restorePrototypeConstructor = preserveConstructorShape(instrumentation, original)\n const { stop: restoreOriginal } = replaceWithInstrumentation(container, constructor, original, instrumentation)\n\n return {\n stop: () => {\n stopped = true\n restorePrototypeConstructor()\n restoreOriginal()\n },\n }\n}\n\n/**\n * Replaces `targetPrototype[method]` with the provided instrumentation and\n * returns a `stop` function restoring the original (unless a third party replaced us afterwards).\n */\nfunction replaceWithInstrumentation<TARGET extends { [key: string]: any }, METHOD extends keyof TARGET>(\n targetPrototype: TARGET,\n method: METHOD,\n original: TARGET[METHOD],\n instrumentation: TARGET[METHOD]\n) {\n targetPrototype[method] = instrumentation\n\n return {\n stop: () => {\n // If the instrumentation has been removed by a third party, keep the last one\n if (targetPrototype[method] === instrumentation) {\n targetPrototype[method] = original\n }\n },\n }\n}\n\n/**\n * Runs the pre-call callback (injecting the `onPostCall` registration), invokes the original\n * method/constructor, then runs the registered post-call callback with the result.\n *\n * Note: the handling stack must be computed by the caller (at the topmost position of the call\n * stack), so it is part of `baseCallInfo` rather than computed here.\n */\nfunction notifyInstrumentation<CALL_INFO extends InstrumentationCallbacks<RESULT>, RESULT>(\n onPreCall: (this: null, callInfo: CALL_INFO) => void,\n baseCallInfo: Omit<CALL_INFO, 'onPostCall'>,\n invokeOriginal: () => RESULT\n): RESULT {\n let postCallCallback: ((result: RESULT) => void) | undefined\n\n callMonitored(onPreCall, null, [\n {\n ...baseCallInfo,\n onPostCall: (callback: (result: RESULT) => void) => {\n postCallCallback = callback\n },\n } as CALL_INFO,\n ])\n\n const result = invokeOriginal()\n\n if (postCallCallback) {\n callMonitored(postCallCallback, null, [result])\n }\n\n return result\n}\n\ninterface InstrumentationCallbacks<RESULT> {\n onPostCall: (callback: (result: RESULT) => void) => void\n handlingStack?: string\n}\n\n/**\n * Copies the original constructor prototype and other static members onto the instrumentation, so that\n * `instanceof` checks keep working and statics such as `WebSocket.OPEN` remain available while\n * instrumented.\n *\n * Returns a function that restores `prototype.constructor` to its prior descriptor; call it\n * before restoring the global property in `stop()`.\n */\nfunction preserveConstructorShape(instrumentation: AnyConstructor, original: AnyConstructor): () => void {\n /**\n * Limitation: Only the original's *own* static members are copied. Statics inherited through the\n * constructor's prototype chain (e.g. `class Child extends Parent` where `Parent` defines statics)\n * are not preserved, since the instrumentation still inherits from `Function.prototype`. This is\n * acceptable for the globals we instrument (e.g. `WebSocket`, whose own statics are the only ones\n * that matter), but we would need to delegate the static prototype chain to support subclassed\n * constructors with meaningful inherited statics.\n */\n for (const key of ([] as PropertyKey[]).concat(\n Object.getOwnPropertyNames(original),\n Object.getOwnPropertySymbols(original)\n )) {\n const descriptor = Object.getOwnPropertyDescriptor(original, key) as PropertyDescriptor\n Object.defineProperty(instrumentation, key, descriptor)\n }\n\n /*\n * Limitation: Repointing `constructor` on this shared prototype affects every instance whose\n * `[[Prototype]]` is this object, including instances created before instrumentation, because\n * `constructor` is inherited rather than snapshotted per instance. Code that held `original` (or\n * whatever was in `prototype.constructor` before) as the canonical constructor and expects reference\n * equality to that value for the lifetime of the page can observe a behavior change while RUM is\n * active; restoring on `stop()` fixes this. In practice the SDK initializes as early as possible,\n * which narrows the window where pre-instrument instances exist.\n */\n const { stop: restoreOriginalConstructor } = replaceWithInstrumentation(\n original.prototype,\n 'constructor',\n original.prototype.constructor,\n instrumentation\n )\n\n return restoreOriginalConstructor\n}\n\nexport function instrumentSetter<TARGET extends { [key: string]: any }, PROPERTY extends keyof TARGET>(\n targetPrototype: TARGET,\n property: PROPERTY,\n after: (target: TARGET, value: TARGET[PROPERTY]) => void\n) {\n const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property)\n if (!originalDescriptor?.set || !originalDescriptor.configurable) {\n return { stop: noop }\n }\n\n const stoppedInstrumentation = noop\n let instrumentation = (target: TARGET, value: TARGET[PROPERTY]) => {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n if (instrumentation !== stoppedInstrumentation) {\n after(target, value)\n }\n }, 0)\n }\n\n const instrumentationWrapper = function (this: TARGET, value: TARGET[PROPERTY]) {\n originalDescriptor.set!.call(this, value)\n instrumentation(this, value)\n }\n\n Object.defineProperty(targetPrototype, property, {\n set: instrumentationWrapper,\n })\n\n return {\n stop: () => {\n if (Object.getOwnPropertyDescriptor(targetPrototype, property)?.set === instrumentationWrapper) {\n Object.defineProperty(targetPrototype, property, originalDescriptor)\n }\n instrumentation = stoppedInstrumentation\n },\n }\n}\n"],"mappings":"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"}
@@ -1,35 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMatchOption = isMatchOption;
4
- exports.matchList = matchList;
5
- const display_1 = require("./display");
6
- const typeUtils_1 = require("./utils/typeUtils");
1
+ const require_display = require("./display.js");
2
+ let _openobserve_js_core_util = require("@openobserve/js-core/util");
3
+ //#region src/tools/matchOption.ts
7
4
  function isMatchOption(item) {
8
- const itemType = (0, typeUtils_1.getType)(item);
9
- return itemType === 'string' || itemType === 'function' || item instanceof RegExp;
5
+ const itemType = (0, _openobserve_js_core_util.getType)(item);
6
+ return itemType === "string" || itemType === "function" || item instanceof RegExp;
10
7
  }
11
8
  /**
12
- * Returns true if value can be matched by at least one of the provided MatchOptions.
13
- * When comparing strings, setting useStartsWith to true will compare the value with the start of
14
- * the option, instead of requiring an exact match.
15
- */
9
+ * Returns true if value can be matched by at least one of the provided MatchOptions.
10
+ * When comparing strings, setting useStartsWith to true will compare the value with the start of
11
+ * the option, instead of requiring an exact match.
12
+ */
16
13
  function matchList(list, value, useStartsWith = false) {
17
- return list.some((item) => {
18
- try {
19
- if (typeof item === 'function') {
20
- return item(value);
21
- }
22
- else if (item instanceof RegExp) {
23
- return item.test(value);
24
- }
25
- else if (typeof item === 'string') {
26
- return useStartsWith ? value.startsWith(item) : item === value;
27
- }
28
- }
29
- catch (e) {
30
- display_1.display.error(e);
31
- }
32
- return false;
33
- });
14
+ return list.some((item) => {
15
+ try {
16
+ if (typeof item === "function") return item(value);
17
+ else if (item instanceof RegExp) {
18
+ item.lastIndex = 0;
19
+ return item.test(value);
20
+ } else if (typeof item === "string") return useStartsWith ? value.startsWith(item) : item === value;
21
+ } catch (e) {
22
+ require_display.display.error(e);
23
+ }
24
+ return false;
25
+ });
34
26
  }
27
+ //#endregion
28
+ exports.isMatchOption = isMatchOption;
29
+ exports.matchList = matchList;
30
+
35
31
  //# sourceMappingURL=matchOption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchOption.js","sourceRoot":"","sources":["../../src/tools/matchOption.ts"],"names":[],"mappings":";;AAKA,sCAGC;AAOD,8BAeC;AA9BD,uCAAmC;AACnC,iDAA2C;AAI3C,SAAgB,aAAa,CAAC,IAAa;IACzC,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,UAAU,IAAI,IAAI,YAAY,MAAM,CAAA;AACnF,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAmB,EAAE,KAAa,EAAE,aAAa,GAAG,KAAK;IACjF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;iBAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAA;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"matchOption.js","names":[],"sources":["../../src/tools/matchOption.ts"],"sourcesContent":["import { getType } from '@openobserve/js-core/util'\nimport { display } from './display'\n\nexport type MatchOption = string | RegExp | ((value: string) => boolean)\n\nexport function isMatchOption(item: unknown): item is MatchOption {\n const itemType = getType(item)\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp\n}\n\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list: MatchOption[], value: string, useStartsWith = false): boolean {\n return list.some((item) => {\n try {\n if (typeof item === 'function') {\n return item(value)\n } else if (item instanceof RegExp) {\n // Prevent stateful matching\n item.lastIndex = 0\n return item.test(value)\n } else if (typeof item === 'string') {\n return useStartsWith ? value.startsWith(item) : item === value\n }\n } catch (e) {\n display.error(e)\n }\n return false\n })\n}\n"],"mappings":";;;AAKA,SAAgB,cAAc,MAAoC;CAChE,MAAM,YAAA,GAAA,0BAAA,QAAA,CAAmB,IAAI;CAC7B,OAAO,aAAa,YAAY,aAAa,cAAc,gBAAgB;AAC7E;;;;;;AAOA,SAAgB,UAAU,MAAqB,OAAe,gBAAgB,OAAgB;CAC5F,OAAO,KAAK,MAAM,SAAS;EACzB,IAAI;GACF,IAAI,OAAO,SAAS,YAClB,OAAO,KAAK,KAAK;QACZ,IAAI,gBAAgB,QAAQ;IAEjC,KAAK,YAAY;IACjB,OAAO,KAAK,KAAK,KAAK;GACxB,OAAO,IAAI,OAAO,SAAS,UACzB,OAAO,gBAAgB,MAAM,WAAW,IAAI,IAAI,SAAS;EAE7D,SAAS,GAAG;GACV,gBAAA,QAAQ,MAAM,CAAC;EACjB;EACA,OAAO;CACT,CAAC;AACH"}
@@ -0,0 +1,22 @@
1
+ export declare const mockableReplacements: Map<unknown, unknown>;
2
+ /**
3
+ * Wraps a value to make it mockable in tests. In production builds, this is a no-op
4
+ * that returns the value as-is. In test builds, it checks if a mock replacement has
5
+ * been registered and returns that instead.
6
+ *
7
+ * @example
8
+ * // In source file:
9
+ * import { mockable } from '../tools/mockable'
10
+ * export function formatNavigationEntry(): string {
11
+ * const navigationEntry = mockable(getNavigationEntry)()
12
+ * ...
13
+ * }
14
+ *
15
+ * // In test file:
16
+ * import { replaceMockable } from '@openobserve/browser-core/test'
17
+ * it('...', () => {
18
+ * replaceMockable(getNavigationEntry, () => FAKE_NAVIGATION_ENTRY)
19
+ * expect(formatNavigationEntry()).toEqual(...)
20
+ * })
21
+ */
22
+ export declare function mockable<T>(value: T): T;
@@ -0,0 +1,28 @@
1
+ //#region src/tools/mockable.ts
2
+ /**
3
+ * Wraps a value to make it mockable in tests. In production builds, this is a no-op
4
+ * that returns the value as-is. In test builds, it checks if a mock replacement has
5
+ * been registered and returns that instead.
6
+ *
7
+ * @example
8
+ * // In source file:
9
+ * import { mockable } from '../tools/mockable'
10
+ * export function formatNavigationEntry(): string {
11
+ * const navigationEntry = mockable(getNavigationEntry)()
12
+ * ...
13
+ * }
14
+ *
15
+ * // In test file:
16
+ * import { replaceMockable } from '@openobserve/browser-core/test'
17
+ * it('...', () => {
18
+ * replaceMockable(getNavigationEntry, () => FAKE_NAVIGATION_ENTRY)
19
+ * expect(formatNavigationEntry()).toEqual(...)
20
+ * })
21
+ */
22
+ function mockable(value) {
23
+ return value;
24
+ }
25
+ //#endregion
26
+ exports.mockable = mockable;
27
+
28
+ //# sourceMappingURL=mockable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockable.js","names":[],"sources":["../../src/tools/mockable.ts"],"sourcesContent":["declare const __BUILD_ENV__SDK_VERSION__: string\n\nexport const mockableReplacements = new Map<unknown, unknown>()\n\n/**\n * Wraps a value to make it mockable in tests. In production builds, this is a no-op\n * that returns the value as-is. In test builds, it checks if a mock replacement has\n * been registered and returns that instead.\n *\n * @example\n * // In source file:\n * import { mockable } from '../tools/mockable'\n * export function formatNavigationEntry(): string {\n * const navigationEntry = mockable(getNavigationEntry)()\n * ...\n * }\n *\n * // In test file:\n * import { replaceMockable } from '@openobserve/browser-core/test'\n * it('...', () => {\n * replaceMockable(getNavigationEntry, () => FAKE_NAVIGATION_ENTRY)\n * expect(formatNavigationEntry()).toEqual(...)\n * })\n */\nexport function mockable<T>(value: T): T {\n // In test builds, return a wrapper that checks for mocks at call time\n if (__BUILD_ENV__SDK_VERSION__ === 'test' && mockableReplacements.has(value)) {\n return mockableReplacements.get(value)! as T\n }\n // In production, return the value as-is\n return value\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,SAAY,OAAa;CAMvC,OAAO;AACT"}
@@ -1,9 +1,7 @@
1
+ declare const monitored: <T extends (...params: any[]) => unknown>(_: any, __: string, descriptor: TypedPropertyDescriptor<T>) => void, monitor: <T extends (...args: any[]) => unknown>(fn: T) => T, callMonitored: {
2
+ <T extends (...args: any[]) => unknown>(fn: T, context: ThisParameterType<T>, args: Parameters<T>): ReturnType<T> | undefined;
3
+ <T extends (this: void) => unknown>(fn: T): ReturnType<T> | undefined;
4
+ }, monitorError: (e: unknown) => void;
5
+ export { monitored, monitor, callMonitored, monitorError };
1
6
  export declare function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void): void;
2
- export declare function setDebugMode(newDebugMode: boolean): void;
3
7
  export declare function resetMonitor(): void;
4
- export declare function monitored<T extends (...params: any[]) => unknown>(_: any, __: string, descriptor: TypedPropertyDescriptor<T>): void;
5
- export declare function monitor<T extends (...args: any[]) => any>(fn: T): T;
6
- export declare function callMonitored<T extends (...args: any[]) => any>(fn: T, context: ThisParameterType<T>, args: Parameters<T>): ReturnType<T> | undefined;
7
- export declare function callMonitored<T extends (this: void) => any>(fn: T): ReturnType<T> | undefined;
8
- export declare function monitorError(e: unknown): void;
9
- export declare function displayIfDebugEnabled(...args: any[]): void;
@@ -1,62 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startMonitorErrorCollection = startMonitorErrorCollection;
4
- exports.setDebugMode = setDebugMode;
5
- exports.resetMonitor = resetMonitor;
6
- exports.monitored = monitored;
7
- exports.monitor = monitor;
8
- exports.callMonitored = callMonitored;
9
- exports.monitorError = monitorError;
10
- exports.displayIfDebugEnabled = displayIfDebugEnabled;
11
- const display_1 = require("./display");
1
+ const require_display = require("./display.js");
2
+ require("@openobserve/js-core/util");
3
+ let _openobserve_js_core_monitor = require("@openobserve/js-core/monitor");
4
+ //#region src/tools/monitor.ts
12
5
  let onMonitorErrorCollected;
13
- let debugMode = false;
6
+ const { monitored, monitor, callMonitored, monitorError } = (0, _openobserve_js_core_monitor.createMonitor)(require_display.display, (error) => onMonitorErrorCollected?.(error));
14
7
  function startMonitorErrorCollection(newOnMonitorErrorCollected) {
15
- onMonitorErrorCollected = newOnMonitorErrorCollected;
16
- }
17
- function setDebugMode(newDebugMode) {
18
- debugMode = newDebugMode;
19
- }
20
- function resetMonitor() {
21
- onMonitorErrorCollected = undefined;
22
- debugMode = false;
23
- }
24
- function monitored(_, __, descriptor) {
25
- const originalMethod = descriptor.value;
26
- descriptor.value = function (...args) {
27
- const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;
28
- return decorated.apply(this, args);
29
- };
30
- }
31
- function monitor(fn) {
32
- return function () {
33
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
34
- return callMonitored(fn, this, arguments);
35
- }; // consider output type has input type
36
- }
37
- function callMonitored(fn, context, args) {
38
- try {
39
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
40
- return fn.apply(context, args);
41
- }
42
- catch (e) {
43
- monitorError(e);
44
- }
45
- }
46
- function monitorError(e) {
47
- displayIfDebugEnabled(e);
48
- if (onMonitorErrorCollected) {
49
- try {
50
- onMonitorErrorCollected(e);
51
- }
52
- catch (e) {
53
- displayIfDebugEnabled(e);
54
- }
55
- }
56
- }
57
- function displayIfDebugEnabled(...args) {
58
- if (debugMode) {
59
- display_1.display.error('[MONITOR]', ...args);
60
- }
8
+ onMonitorErrorCollected = newOnMonitorErrorCollected;
61
9
  }
10
+ //#endregion
11
+ exports.callMonitored = callMonitored;
12
+ exports.monitor = monitor;
13
+ exports.monitorError = monitorError;
14
+ exports.monitored = monitored;
15
+ exports.startMonitorErrorCollection = startMonitorErrorCollection;
16
+
62
17
  //# sourceMappingURL=monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":";;AAKA,kEAEC;AAED,oCAEC;AAED,oCAGC;AAED,8BAUC;AAED,0BAKC;AAQD,sCAWC;AAED,oCASC;AAED,sDAIC;AAvED,uCAAmC;AAEnC,IAAI,uBAA+D,CAAA;AACnE,IAAI,SAAS,GAAG,KAAK,CAAA;AAErB,SAAgB,2BAA2B,CAAC,0BAAoD;IAC9F,uBAAuB,GAAG,0BAA0B,CAAA;AACtD,CAAC;AAED,SAAgB,YAAY,CAAC,YAAqB;IAChD,SAAS,GAAG,YAAY,CAAA;AAC1B,CAAC;AAED,SAAgB,YAAY;IAC1B,uBAAuB,GAAG,SAAS,CAAA;IACnC,SAAS,GAAG,KAAK,CAAA;AACnB,CAAC;AAED,SAAgB,SAAS,CACvB,CAAM,EACN,EAAU,EACV,UAAsC;IAEtC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAM,CAAA;IACxC,UAAU,CAAC,KAAK,GAAG,UAAqB,GAAG,IAAmB;QAC5D,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QACpF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAkB,CAAA;IACrD,CAAM,CAAA;AACR,CAAC;AAED,SAAgB,OAAO,CAAoC,EAAK;IAC9D,OAAO;QACL,+DAA+D;QAC/D,OAAO,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,SAAqC,CAAC,CAAA;IACvE,CAAiB,CAAA,CAAC,sCAAsC;AAC1D,CAAC;AAQD,SAAgB,aAAa,CAC3B,EAAK,EACL,OAAa,EACb,IAAU;IAEV,IAAI,CAAC;QACH,+DAA+D;QAC/D,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,CAAU;IACrC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,uBAAuB,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,uBAAuB,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAG,IAAW;IAClD,IAAI,SAAS,EAAE,CAAC;QACd,iBAAO,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAA;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"monitor.js","names":["display"],"sources":["../../src/tools/monitor.ts"],"sourcesContent":["/* eslint-disable local-rules/disallow-side-effects */\nimport { createMonitor } from '@openobserve/js-core/monitor'\nimport { setDebugMode } from '@openobserve/js-core/util'\nimport { display } from './display'\n\n// The error-collection callback is wired lazily (via `startMonitorErrorCollection`, during telemetry\n// init), so we pass a stable forwarding function to `createMonitor` and keep the real callback in a\n// mutable holder.\nlet onMonitorErrorCollected: ((error: unknown) => void) | undefined\n\nconst { monitored, monitor, callMonitored, monitorError } = createMonitor(display, (error) =>\n onMonitorErrorCollected?.(error)\n)\n\nexport { monitored, monitor, callMonitored, monitorError }\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n setDebugMode(false)\n}\n"],"mappings":";;;;AAQA,IAAI;AAEJ,MAAM,EAAE,WAAW,SAAS,eAAe,kBAAA,GAAA,6BAAA,cAAA,CAA+BA,gBAAAA,UAAU,UAClF,0BAA0B,KAAK,CACjC;AAIA,SAAgB,4BAA4B,4BAAsD;CAChG,0BAA0B;AAC5B"}
@@ -15,8 +15,10 @@ export declare class Observable<T> {
15
15
  export declare function mergeObservables<T>(...observables: Array<Observable<T>>): Observable<T>;
16
16
  export declare class BufferedObservable<T> extends Observable<T> {
17
17
  private maxBufferSize;
18
+ private onDrop?;
18
19
  private buffer;
19
- constructor(maxBufferSize: number);
20
+ private droppedCount;
21
+ constructor(maxBufferSize: number, onDrop?: ((count: number) => void) | undefined);
20
22
  notify(data: T): void;
21
23
  subscribe(observer: Observer<T>): Subscription;
22
24
  /**