@openobserve/browser-core 0.3.4 → 0.4.0-beta.2

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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionUtils.mjs","names":[],"sources":["../../../src/tools/utils/functionUtils.ts"],"sourcesContent":["import type { TimeoutId } from '../timer'\nimport { setTimeout, clearTimeout } from '../timer'\n\n// use lodash API\nexport function throttle<T extends (...args: any[]) => void>(\n fn: T,\n wait: number,\n options?: { leading?: boolean; trailing?: boolean }\n) {\n const needLeadingExecution = options?.leading !== undefined ? options.leading : true\n const needTrailingExecution = options?.trailing !== undefined ? options.trailing : true\n let inWaitPeriod = false\n let pendingExecutionWithParameters: Parameters<T> | undefined\n let pendingTimeoutId: TimeoutId\n\n return {\n throttled: (...parameters: Parameters<T>) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters\n return\n }\n if (needLeadingExecution) {\n fn(...parameters)\n } else {\n pendingExecutionWithParameters = parameters\n }\n inWaitPeriod = true\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters)\n }\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }, wait)\n },\n cancel: () => {\n clearTimeout(pendingTimeoutId)\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n },\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"mappings":";;AAIA,SAAgB,SACd,IACA,MACA,SACA;CACA,MAAM,uBAAuB,SAAS,YAAY,KAAA,IAAY,QAAQ,UAAU;CAChF,MAAM,wBAAwB,SAAS,aAAa,KAAA,IAAY,QAAQ,WAAW;CACnF,IAAI,eAAe;CACnB,IAAI;CACJ,IAAI;CAEJ,OAAO;EACL,YAAY,GAAG,eAA8B;GAC3C,IAAI,cAAc;IAChB,iCAAiC;IACjC;GACF;GACA,IAAI,sBACF,GAAG,GAAG,UAAU;QAEhB,iCAAiC;GAEnC,eAAe;GACf,mBAAmB,iBAAiB;IAClC,IAAI,yBAAyB,gCAC3B,GAAG,GAAG,8BAA8B;IAEtC,eAAe;IACf,iCAAiC,KAAA;GACnC,GAAG,IAAI;EACT;EACA,cAAc;GACZ,aAAa,gBAAgB;GAC7B,eAAe;GACf,iCAAiC,KAAA;EACnC;CACF;AACF;AAGA,SAAgB,OAAO,CAAC"}
@@ -0,0 +1,22 @@
1
+ //#region src/tools/utils/numberUtils.ts
2
+ /**
3
+ * Return true if the draw is successful
4
+ *
5
+ * @param threshold - Threshold between 0 and 100
6
+ */
7
+ function performDraw(threshold) {
8
+ return threshold !== 0 && Math.random() * 100 <= threshold;
9
+ }
10
+ function round(num, decimals) {
11
+ return +num.toFixed(decimals);
12
+ }
13
+ function isPercentage(value) {
14
+ return isNumber(value) && value >= 0 && value <= 100;
15
+ }
16
+ function isNumber(value) {
17
+ return typeof value === "number";
18
+ }
19
+ //#endregion
20
+ export { isNumber, isPercentage, performDraw, round };
21
+
22
+ //# sourceMappingURL=numberUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberUtils.mjs","names":[],"sources":["../../../src/tools/utils/numberUtils.ts"],"sourcesContent":["/**\n * Return true if the draw is successful\n *\n * @param threshold - Threshold between 0 and 100\n */\nexport function performDraw(threshold: number): boolean {\n return threshold !== 0 && Math.random() * 100 <= threshold\n}\n\nexport function round(num: number, decimals: 0 | 1 | 2 | 3 | 4) {\n return +num.toFixed(decimals)\n}\n\nexport function isPercentage(value: unknown) {\n return isNumber(value) && value >= 0 && value <= 100\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n"],"mappings":";;;;;;AAKA,SAAgB,YAAY,WAA4B;CACtD,OAAO,cAAc,KAAK,KAAK,OAAO,IAAI,OAAO;AACnD;AAEA,SAAgB,MAAM,KAAa,UAA6B;CAC9D,OAAO,CAAC,IAAI,QAAQ,QAAQ;AAC9B;AAEA,SAAgB,aAAa,OAAgB;CAC3C,OAAO,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AACnD;AAEA,SAAgB,SAAS,OAAiC;CACxD,OAAO,OAAO,UAAU;AAC1B"}
@@ -0,0 +1,31 @@
1
+ //#region src/tools/utils/objectUtils.ts
2
+ const stripDangerousKeys = (key, value) => key === "__proto__" ? void 0 : value;
3
+ function tryJsonParse(text) {
4
+ try {
5
+ return JSON.parse(text, stripDangerousKeys);
6
+ } catch {}
7
+ }
8
+ function shallowClone(object) {
9
+ return { ...object };
10
+ }
11
+ function objectHasValue(object, value) {
12
+ return Object.keys(object).some((key) => object[key] === value);
13
+ }
14
+ function isEmptyObject(object) {
15
+ return Object.keys(object).length === 0;
16
+ }
17
+ function mapValues(object, fn) {
18
+ const newObject = {};
19
+ for (const key of Object.keys(object)) newObject[key] = fn(object[key]);
20
+ return newObject;
21
+ }
22
+ function getConstructorName(value) {
23
+ try {
24
+ const name = value?.constructor?.name;
25
+ return typeof name === "string" && name ? name : void 0;
26
+ } catch {}
27
+ }
28
+ //#endregion
29
+ export { getConstructorName, isEmptyObject, mapValues, objectHasValue, shallowClone, tryJsonParse };
30
+
31
+ //# sourceMappingURL=objectUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectUtils.mjs","names":[],"sources":["../../../src/tools/utils/objectUtils.ts"],"sourcesContent":["// Prevent prototype pollution: __proto__ as an own property in parsed JSON can corrupt Object.prototype\nconst stripDangerousKeys = (key: string, value: unknown) => (key === '__proto__' ? undefined : value)\n\nexport function tryJsonParse<T = unknown>(text: string): T | undefined {\n try {\n return JSON.parse(text, stripDangerousKeys) as T\n } catch {\n // ignore\n }\n}\n\nexport function shallowClone<T>(object: T): T & Record<string, never> {\n return { ...object } as T & Record<string, never>\n}\n\nexport function objectHasValue<T extends { [key: string]: unknown }>(object: T, value: unknown): value is T[keyof T] {\n return Object.keys(object).some((key) => object[key] === value)\n}\n\nexport function isEmptyObject(object: object) {\n return Object.keys(object).length === 0\n}\n\nexport function mapValues<A, B>(object: { [key: string]: A }, fn: (arg: A) => B) {\n const newObject: { [key: string]: B } = {}\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key])\n }\n return newObject\n}\n\nexport function getConstructorName(value: unknown): string | undefined {\n try {\n const name = (value as { constructor?: { name?: unknown } } | null | undefined)?.constructor?.name\n return typeof name === 'string' && name ? name : undefined\n } catch {\n // ignore: accessing `constructor` can throw on hostile objects\n }\n}\n"],"mappings":";AACA,MAAM,sBAAsB,KAAa,UAAoB,QAAQ,cAAc,KAAA,IAAY;AAE/F,SAAgB,aAA0B,MAA6B;CACrE,IAAI;EACF,OAAO,KAAK,MAAM,MAAM,kBAAkB;CAC5C,QAAQ,CAER;AACF;AAEA,SAAgB,aAAgB,QAAsC;CACpE,OAAO,EAAE,GAAG,OAAO;AACrB;AAEA,SAAgB,eAAqD,QAAW,OAAqC;CACnH,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,QAAQ,OAAO,SAAS,KAAK;AAChE;AAEA,SAAgB,cAAc,QAAgB;CAC5C,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,WAAW;AACxC;AAEA,SAAgB,UAAgB,QAA8B,IAAmB;CAC/E,MAAM,YAAkC,CAAC;CACzC,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,UAAU,OAAO,GAAG,OAAO,IAAI;CAEjC,OAAO;AACT;AAEA,SAAgB,mBAAmB,OAAoC;CACrE,IAAI;EACF,MAAM,OAAQ,OAAmE,aAAa;EAC9F,OAAO,OAAO,SAAS,YAAY,OAAO,OAAO,KAAA;CACnD,QAAQ,CAER;AACF"}
@@ -0,0 +1,17 @@
1
+ //#region src/tools/utils/polyfills.ts
2
+ function findLast(array, predicate) {
3
+ for (let i = array.length - 1; i >= 0; i -= 1) {
4
+ const item = array[i];
5
+ if (predicate(item, i, array)) return item;
6
+ }
7
+ }
8
+ function objectValues(object) {
9
+ return Object.values(object);
10
+ }
11
+ function objectEntries(object) {
12
+ return Object.entries(object);
13
+ }
14
+ //#endregion
15
+ export { findLast, objectEntries, objectValues };
16
+
17
+ //# sourceMappingURL=polyfills.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfills.mjs","names":[],"sources":["../../../src/tools/utils/polyfills.ts"],"sourcesContent":["export function findLast<T, S extends T>(\n array: readonly T[],\n predicate: (item: T, index: number, array: readonly T[]) => item is S\n): S | undefined {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\n\n// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using\n// the native Object.values and Object.entries directly\n\nexport function objectValues<T = unknown>(object: { [key: string]: T }) {\n return Object.values(object)\n}\n\nexport function objectEntries<T = unknown>(object: { [key: string]: T }): Array<[string, T]> {\n return Object.entries(object)\n}\n"],"mappings":";AAAA,SAAgB,SACd,OACA,WACe;CACf,KAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;EAC7C,MAAM,OAAO,MAAM;EACnB,IAAI,UAAU,MAAM,GAAG,KAAK,GAC1B,OAAO;CAEX;AAEF;AAKA,SAAgB,aAA0B,QAA8B;CACtE,OAAO,OAAO,OAAO,MAAM;AAC7B;AAEA,SAAgB,cAA2B,QAAkD;CAC3F,OAAO,OAAO,QAAQ,MAAM;AAC9B"}
@@ -0,0 +1,15 @@
1
+ //#region src/tools/utils/responseUtils.ts
2
+ function isServerError(status) {
3
+ return status >= 500;
4
+ }
5
+ function tryToClone(response) {
6
+ try {
7
+ return response.clone();
8
+ } catch {
9
+ return;
10
+ }
11
+ }
12
+ //#endregion
13
+ export { isServerError, tryToClone };
14
+
15
+ //# sourceMappingURL=responseUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseUtils.mjs","names":[],"sources":["../../../src/tools/utils/responseUtils.ts"],"sourcesContent":["export function isServerError(status: number) {\n return status >= 500\n}\n\nexport function tryToClone(response: Response): Response | undefined {\n try {\n return response.clone()\n } catch {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return\n }\n}\n"],"mappings":";AAAA,SAAgB,cAAc,QAAgB;CAC5C,OAAO,UAAU;AACnB;AAEA,SAAgB,WAAW,UAA0C;CACnE,IAAI;EACF,OAAO,SAAS,MAAM;CACxB,QAAQ;EAEN;CACF;AACF"}
@@ -0,0 +1,66 @@
1
+ //#region src/tools/utils/stringUtils.ts
2
+ /**
3
+ * UUID v4
4
+ * from https://gist.github.com/jed/982883
5
+ */
6
+ function generateUUID(placeholder) {
7
+ return placeholder ? (parseInt(placeholder, 10) ^ Math.random() * 16 >> parseInt(placeholder, 10) / 4).toString(16) : `10000000-1000-4000-8000-100000000000`.replace(/[018]/g, generateUUID);
8
+ }
9
+ const COMMA_SEPARATED_KEY_VALUE = /(\S+?)\s*=\s*(.*?)(?:;|$)/g;
10
+ /**
11
+ * Returns the value of the key with the given name
12
+ * If there are multiple values with the same key, returns the first one
13
+ */
14
+ function findCommaSeparatedValue(rawString, name) {
15
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
16
+ while (true) {
17
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
18
+ if (match) {
19
+ if (match[1] === name) return match[2];
20
+ } else break;
21
+ }
22
+ }
23
+ /**
24
+ * Returns a map of all the values with the given key
25
+ * If there are multiple values with the same key, returns all the values
26
+ */
27
+ function findAllCommaSeparatedValues(rawString) {
28
+ const result = /* @__PURE__ */ new Map();
29
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
30
+ while (true) {
31
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
32
+ if (match) {
33
+ const key = match[1];
34
+ const value = match[2];
35
+ if (result.has(key)) result.get(key).push(value);
36
+ else result.set(key, [value]);
37
+ } else break;
38
+ }
39
+ return result;
40
+ }
41
+ /**
42
+ * Returns a map of the values with the given key
43
+ * ⚠️ If there are multiple values with the same key, returns the LAST one
44
+ *
45
+ * @deprecated use `findAllCommaSeparatedValues()` instead
46
+ */
47
+ function findCommaSeparatedValues(rawString) {
48
+ const result = /* @__PURE__ */ new Map();
49
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
50
+ while (true) {
51
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
52
+ if (match) result.set(match[1], match[2]);
53
+ else break;
54
+ }
55
+ return result;
56
+ }
57
+ function safeTruncate(candidate, length, suffix = "") {
58
+ const lastChar = candidate.charCodeAt(length - 1);
59
+ const correctedLength = lastChar >= 55296 && lastChar <= 56319 ? length + 1 : length;
60
+ if (candidate.length <= correctedLength) return candidate;
61
+ return `${candidate.slice(0, correctedLength)}${suffix}`;
62
+ }
63
+ //#endregion
64
+ export { findAllCommaSeparatedValues, findCommaSeparatedValue, findCommaSeparatedValues, generateUUID, safeTruncate };
65
+
66
+ //# sourceMappingURL=stringUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringUtils.mjs","names":[],"sources":["../../../src/tools/utils/stringUtils.ts"],"sourcesContent":["/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder?: string): string {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID)\n}\n\n// Assuming input string is following the HTTP Cookie format defined in\n// https://www.ietf.org/rfc/rfc2616.txt and https://www.ietf.org/rfc/rfc6265.txt, we don't need to\n// be too strict with this regex.\nconst COMMA_SEPARATED_KEY_VALUE = /(\\S+?)\\s*=\\s*(.*?)(?:;|$)/g\n\n/**\n * Returns the value of the key with the given name\n * If there are multiple values with the same key, returns the first one\n */\nexport function findCommaSeparatedValue(rawString: string, name: string): string | undefined {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n if (match[1] === name) {\n return match[2]\n }\n } else {\n break\n }\n }\n}\n\n/**\n * Returns a map of all the values with the given key\n * If there are multiple values with the same key, returns all the values\n */\nexport function findAllCommaSeparatedValues(rawString: string): Map<string, string[]> {\n const result = new Map<string, string[]>()\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n const key = match[1]\n const value = match[2]\n if (result.has(key)) {\n result.get(key)!.push(value)\n } else {\n result.set(key, [value])\n }\n } else {\n break\n }\n }\n return result\n}\n\n/**\n * Returns a map of the values with the given key\n * ⚠️ If there are multiple values with the same key, returns the LAST one\n *\n * @deprecated use `findAllCommaSeparatedValues()` instead\n */\nexport function findCommaSeparatedValues(rawString: string): Map<string, string> {\n const result = new Map<string, string>()\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n result.set(match[1], match[2])\n } else {\n break\n }\n }\n return result\n}\n\nexport function safeTruncate(candidate: string, length: number, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1)\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length\n\n if (candidate.length <= correctedLength) {\n return candidate\n }\n\n return `${candidate.slice(0, correctedLength)}${suffix}`\n}\n"],"mappings":";;;;;AAIA,SAAgB,aAAa,aAA8B;CACzD,OAAO,eAEF,SAAS,aAAa,EAAE,IAAM,KAAK,OAAO,IAAI,MAAQ,SAAS,aAAa,EAAE,IAAI,EAAA,CAAK,SAAS,EAAE,IACnG,uCAAsC,QAAQ,UAAU,YAAY;AAC1E;AAKA,MAAM,4BAA4B;;;;;AAMlC,SAAgB,wBAAwB,WAAmB,MAAkC;CAC3F,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI;OACE,MAAM,OAAO,MACf,OAAO,MAAM;EAAA,OAGf;CAEJ;AACF;;;;;AAMA,SAAgB,4BAA4B,WAA0C;CACpF,MAAM,yBAAS,IAAI,IAAsB;CACzC,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI,OAAO;GACT,MAAM,MAAM,MAAM;GAClB,MAAM,QAAQ,MAAM;GACpB,IAAI,OAAO,IAAI,GAAG,GAChB,OAAO,IAAI,GAAG,CAAC,CAAE,KAAK,KAAK;QAE3B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;EAE3B,OACE;CAEJ;CACA,OAAO;AACT;;;;;;;AAQA,SAAgB,yBAAyB,WAAwC;CAC/E,MAAM,yBAAS,IAAI,IAAoB;CACvC,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI,OACF,OAAO,IAAI,MAAM,IAAI,MAAM,EAAE;OAE7B;CAEJ;CACA,OAAO;AACT;AAEA,SAAgB,aAAa,WAAmB,QAAgB,SAAS,IAAI;CAC3E,MAAM,WAAW,UAAU,WAAW,SAAS,CAAC;CAEhD,MAAM,kBAD0B,YAAY,SAAU,YAAY,QAChB,SAAS,IAAI;CAE/D,IAAI,UAAU,UAAU,iBACtB,OAAO;CAGT,OAAO,GAAG,UAAU,MAAM,GAAG,eAAe,IAAI;AAClD"}
@@ -0,0 +1,12 @@
1
+ //#region src/tools/utils/timezone.ts
2
+ function getTimeZone() {
3
+ try {
4
+ return new Intl.DateTimeFormat().resolvedOptions().timeZone;
5
+ } catch {
6
+ return;
7
+ }
8
+ }
9
+ //#endregion
10
+ export { getTimeZone };
11
+
12
+ //# sourceMappingURL=timezone.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezone.mjs","names":[],"sources":["../../../src/tools/utils/timezone.ts"],"sourcesContent":["export function getTimeZone() {\n try {\n const intl = new Intl.DateTimeFormat()\n\n return intl.resolvedOptions().timeZone\n } catch {\n return undefined\n }\n}\n"],"mappings":";AAAA,SAAgB,cAAc;CAC5B,IAAI;EAGF,OAAO,IAFU,KAAK,eAEZ,CAAC,CAAC,gBAAgB,CAAC,CAAC;CAChC,QAAQ;EACN;CACF;AACF"}
@@ -0,0 +1,51 @@
1
+ import { globalObject } from "../globalObject.mjs";
2
+ //#region src/tools/utils/urlPolyfill.ts
3
+ function normalizeUrl(url) {
4
+ return buildUrl(url, globalObject.location?.href).href;
5
+ }
6
+ function isValidUrl(url) {
7
+ try {
8
+ return !!buildUrl(url);
9
+ } catch {
10
+ return false;
11
+ }
12
+ }
13
+ function getPathName(url) {
14
+ const pathname = buildUrl(url).pathname;
15
+ return pathname[0] === "/" ? pathname : `/${pathname}`;
16
+ }
17
+ function buildUrl(url, base) {
18
+ const { URL } = getPristineWindow();
19
+ try {
20
+ return base !== void 0 ? new URL(url, base) : new URL(url);
21
+ } catch (error) {
22
+ throw new Error(`Failed to construct URL: ${String(error)}`);
23
+ }
24
+ }
25
+ /**
26
+ * Get native URL constructor from a clean iframe
27
+ * This avoids polyfill issues by getting the native implementation from a fresh iframe context
28
+ * Falls back to the original URL constructor if iframe approach fails
29
+ */
30
+ let getPristineGlobalObjectCache;
31
+ function getPristineWindow() {
32
+ if (!getPristineGlobalObjectCache) {
33
+ let iframe;
34
+ let pristineWindow;
35
+ try {
36
+ iframe = document.createElement("iframe");
37
+ iframe.style.display = "none";
38
+ document.body.appendChild(iframe);
39
+ pristineWindow = iframe.contentWindow ?? globalObject;
40
+ } catch {
41
+ pristineWindow = globalObject;
42
+ }
43
+ getPristineGlobalObjectCache = { URL: pristineWindow.URL };
44
+ iframe?.remove();
45
+ }
46
+ return getPristineGlobalObjectCache;
47
+ }
48
+ //#endregion
49
+ export { buildUrl, getPathName, getPristineWindow, isValidUrl, normalizeUrl };
50
+
51
+ //# sourceMappingURL=urlPolyfill.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlPolyfill.mjs","names":[],"sources":["../../../src/tools/utils/urlPolyfill.ts"],"sourcesContent":["import type { GlobalObject } from '../globalObject'\nimport { globalObject } from '../globalObject'\n\nexport function normalizeUrl(url: string) {\n return buildUrl(url, globalObject.location?.href).href\n}\n\nexport function isValidUrl(url: string) {\n try {\n return !!buildUrl(url)\n } catch {\n return false\n }\n}\n\nexport function getPathName(url: string) {\n const pathname = buildUrl(url).pathname\n return pathname[0] === '/' ? pathname : `/${pathname}`\n}\n\nexport function buildUrl(url: string, base?: string) {\n const { URL } = getPristineWindow()\n\n try {\n return base !== undefined ? new URL(url, base) : new URL(url)\n } catch (error) {\n throw new Error(`Failed to construct URL: ${String(error)}`)\n }\n}\n\n/**\n * Get native URL constructor from a clean iframe\n * This avoids polyfill issues by getting the native implementation from a fresh iframe context\n * Falls back to the original URL constructor if iframe approach fails\n */\nlet getPristineGlobalObjectCache: Pick<typeof window, 'URL'> | undefined\n\nexport function getPristineWindow() {\n if (!getPristineGlobalObjectCache) {\n let iframe: HTMLIFrameElement | undefined\n let pristineWindow: GlobalObject\n try {\n iframe = document.createElement('iframe')\n iframe.style.display = 'none'\n document.body.appendChild(iframe)\n pristineWindow = (iframe.contentWindow as GlobalObject | null) ?? globalObject\n } catch {\n pristineWindow = globalObject\n }\n getPristineGlobalObjectCache = {\n URL: pristineWindow.URL,\n }\n iframe?.remove()\n }\n\n return getPristineGlobalObjectCache\n}\n"],"mappings":";;AAGA,SAAgB,aAAa,KAAa;CACxC,OAAO,SAAS,KAAK,aAAa,UAAU,IAAI,CAAC,CAAC;AACpD;AAEA,SAAgB,WAAW,KAAa;CACtC,IAAI;EACF,OAAO,CAAC,CAAC,SAAS,GAAG;CACvB,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,YAAY,KAAa;CACvC,MAAM,WAAW,SAAS,GAAG,CAAC,CAAC;CAC/B,OAAO,SAAS,OAAO,MAAM,WAAW,IAAI;AAC9C;AAEA,SAAgB,SAAS,KAAa,MAAe;CACnD,MAAM,EAAE,QAAQ,kBAAkB;CAElC,IAAI;EACF,OAAO,SAAS,KAAA,IAAY,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG;CAC9D,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,4BAA4B,OAAO,KAAK,GAAG;CAC7D;AACF;;;;;;AAOA,IAAI;AAEJ,SAAgB,oBAAoB;CAClC,IAAI,CAAC,8BAA8B;EACjC,IAAI;EACJ,IAAI;EACJ,IAAI;GACF,SAAS,SAAS,cAAc,QAAQ;GACxC,OAAO,MAAM,UAAU;GACvB,SAAS,KAAK,YAAY,MAAM;GAChC,iBAAkB,OAAO,iBAAyC;EACpE,QAAQ;GACN,iBAAiB;EACnB;EACA,+BAA+B,EAC7B,KAAK,eAAe,IACtB;EACA,QAAQ,OAAO;CACjB;CAEA,OAAO;AACT"}
@@ -0,0 +1,114 @@
1
+ import { clearInterval, setInterval } from "./timer.mjs";
2
+ import { removeItem } from "./utils/arrayUtils.mjs";
3
+ import { ONE_MINUTE, addDuration, relativeNow } from "@openobserve/js-core/time";
4
+ //#region src/tools/valueHistory.ts
5
+ const END_OF_TIMES = Infinity;
6
+ const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;
7
+ let cleanupHistoriesInterval;
8
+ const cleanupTasks = /* @__PURE__ */ new Set();
9
+ function cleanupHistories() {
10
+ cleanupTasks.forEach((task) => task());
11
+ }
12
+ function createValueHistory({ expireDelay, maxEntries }) {
13
+ let entries = [];
14
+ if (!cleanupHistoriesInterval) cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL);
15
+ const clearExpiredValues = () => {
16
+ const oldTimeThreshold = relativeNow() - expireDelay;
17
+ while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) entries.pop();
18
+ };
19
+ cleanupTasks.add(clearExpiredValues);
20
+ /**
21
+ * Add a value to the history associated with a start time. Returns a reference to this newly
22
+ * added entry that can be removed or closed.
23
+ */
24
+ function add(value, startTime) {
25
+ const entry = {
26
+ value,
27
+ startTime,
28
+ endTime: END_OF_TIMES,
29
+ remove: () => {
30
+ removeItem(entries, entry);
31
+ },
32
+ close: (endTime) => {
33
+ entry.endTime = endTime;
34
+ }
35
+ };
36
+ if (maxEntries && entries.length >= maxEntries) entries.pop();
37
+ entries.unshift(entry);
38
+ return entry;
39
+ }
40
+ /**
41
+ * Return the latest value that was active during `startTime`, or the currently active value
42
+ * if no `startTime` is provided. This method assumes that entries are not overlapping.
43
+ *
44
+ * If `option.returnInactive` is true, returns the value at `startTime` (active or not).
45
+ */
46
+ function find(startTime = END_OF_TIMES, options = { returnInactive: false }) {
47
+ for (const entry of entries) if (entry.startTime <= startTime) {
48
+ if (options.returnInactive || startTime <= entry.endTime) return entry.value;
49
+ break;
50
+ }
51
+ }
52
+ /**
53
+ * Helper function to close the currently active value, if any. This method assumes that entries
54
+ * are not overlapping.
55
+ */
56
+ function closeActive(endTime) {
57
+ const latestEntry = entries[0];
58
+ if (latestEntry?.endTime === END_OF_TIMES) latestEntry.close(endTime);
59
+ }
60
+ /**
61
+ * Return all values with an active period overlapping with the duration,
62
+ * or all values that were active during `startTime` if no duration is provided,
63
+ * or all currently active values if no `startTime` is provided.
64
+ */
65
+ function findAll(startTime = END_OF_TIMES, duration = 0) {
66
+ const endTime = addDuration(startTime, duration);
67
+ return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime).map((entry) => entry.value);
68
+ }
69
+ /**
70
+ * Return all entries with an active period overlapping with the duration,
71
+ * or all entries that were active during `startTime` if no duration is provided,
72
+ * or all currently active entries if no `startTime` is provided.
73
+ */
74
+ function findAllEntries(startTime = END_OF_TIMES, duration = 0) {
75
+ const endTime = addDuration(startTime, duration);
76
+ return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime);
77
+ }
78
+ /**
79
+ * Return all the entries whose start time is equal to the given startTime.
80
+ */
81
+ function getEntries(startTime) {
82
+ return entries.filter((entry) => entry.startTime === startTime);
83
+ }
84
+ /**
85
+ * Remove all entries from this collection.
86
+ */
87
+ function reset() {
88
+ entries = [];
89
+ }
90
+ /**
91
+ * Stop internal garbage collection of past entries.
92
+ */
93
+ function stop() {
94
+ cleanupTasks.delete(clearExpiredValues);
95
+ if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {
96
+ clearInterval(cleanupHistoriesInterval);
97
+ cleanupHistoriesInterval = void 0;
98
+ }
99
+ }
100
+ return {
101
+ add,
102
+ find,
103
+ closeActive,
104
+ findAll,
105
+ findAllEntries,
106
+ getEntries,
107
+ reset,
108
+ stop
109
+ };
110
+ }
111
+ //#endregion
112
+ export { CLEAR_OLD_VALUES_INTERVAL, createValueHistory };
113
+
114
+ //# sourceMappingURL=valueHistory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueHistory.mjs","names":[],"sources":["../../src/tools/valueHistory.ts"],"sourcesContent":["import { ONE_MINUTE, addDuration, relativeNow } from '@openobserve/js-core/time'\nimport type { Duration, RelativeTime } from '@openobserve/js-core/time'\nimport { setInterval, clearInterval } from './timer'\nimport type { TimeoutId } from './timer'\nimport { removeItem } from './utils/arrayUtils'\n\nconst END_OF_TIMES = Infinity as RelativeTime\n\nexport interface ValueHistoryEntry<T> {\n startTime: RelativeTime\n endTime: RelativeTime\n value: T\n remove(): void\n close(endTime: RelativeTime): void\n}\n\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE\n\n/**\n * Store and keep track of values spans. This whole cache assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nexport interface ValueHistory<Value> {\n add: (value: Value, startTime: RelativeTime) => ValueHistoryEntry<Value>\n find: (startTime?: RelativeTime, options?: { returnInactive: boolean }) => Value | undefined\n\n closeActive: (endTime: RelativeTime) => void\n findAll: (startTime?: RelativeTime, duration?: Duration) => Value[]\n findAllEntries: (startTime?: RelativeTime, duration?: Duration) => Array<ValueHistoryEntry<Value>>\n getEntries: (startTime: RelativeTime) => Array<ValueHistoryEntry<Value>>\n reset: () => void\n stop: () => void\n}\n\nlet cleanupHistoriesInterval: TimeoutId | undefined\n\nconst cleanupTasks: Set<() => void> = new Set()\n\nfunction cleanupHistories() {\n cleanupTasks.forEach((task) => task())\n}\n\nexport function createValueHistory<Value>({\n expireDelay,\n maxEntries,\n}: {\n expireDelay: number\n maxEntries?: number\n}): ValueHistory<Value> {\n let entries: Array<ValueHistoryEntry<Value>> = []\n\n if (!cleanupHistoriesInterval) {\n cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL)\n }\n\n const clearExpiredValues = () => {\n const oldTimeThreshold = relativeNow() - expireDelay\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n entries.pop()\n }\n }\n\n cleanupTasks.add(clearExpiredValues)\n\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n function add(value: Value, startTime: RelativeTime): ValueHistoryEntry<Value> {\n const entry: ValueHistoryEntry<Value> = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n removeItem(entries, entry)\n },\n close: (endTime: RelativeTime) => {\n entry.endTime = endTime\n },\n }\n\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop()\n }\n\n entries.unshift(entry)\n\n return entry\n }\n\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n *\n * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(\n startTime: RelativeTime = END_OF_TIMES,\n options: { returnInactive: boolean } = { returnInactive: false }\n ): Value | undefined {\n for (const entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value\n }\n break\n }\n }\n }\n\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n function closeActive(endTime: RelativeTime) {\n const latestEntry = entries[0]\n if (latestEntry?.endTime === END_OF_TIMES) {\n latestEntry.close(endTime)\n }\n }\n\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n function findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {\n const endTime = addDuration(startTime, duration)\n return entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value)\n }\n\n /**\n * Return all entries with an active period overlapping with the duration,\n * or all entries that were active during `startTime` if no duration is provided,\n * or all currently active entries if no `startTime` is provided.\n */\n function findAllEntries(\n startTime: RelativeTime = END_OF_TIMES,\n duration = 0 as Duration\n ): Array<ValueHistoryEntry<Value>> {\n const endTime = addDuration(startTime, duration)\n return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n }\n\n /**\n * Return all the entries whose start time is equal to the given startTime.\n */\n function getEntries(startTime: RelativeTime): Array<ValueHistoryEntry<Value>> {\n return entries.filter((entry) => entry.startTime === startTime)\n }\n\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = []\n }\n\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n cleanupTasks.delete(clearExpiredValues)\n if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {\n clearInterval(cleanupHistoriesInterval)\n cleanupHistoriesInterval = undefined\n }\n }\n\n return { add, find, closeActive, findAll, findAllEntries, getEntries, reset, stop }\n}\n\n/**\n * Reset all global state. This is useful for testing to ensure clean state between tests.\n *\n * @internal\n */\nexport function resetValueHistoryGlobals() {\n cleanupTasks.clear()\n clearInterval(cleanupHistoriesInterval)\n cleanupHistoriesInterval = undefined\n}\n"],"mappings":";;;;AAMA,MAAM,eAAe;AAUrB,MAAa,4BAA4B;AAkBzC,IAAI;AAEJ,MAAM,+BAAgC,IAAI,IAAI;AAE9C,SAAS,mBAAmB;CAC1B,aAAa,SAAS,SAAS,KAAK,CAAC;AACvC;AAEA,SAAgB,mBAA0B,EACxC,aACA,cAIsB;CACtB,IAAI,UAA2C,CAAC;CAEhD,IAAI,CAAC,0BACH,2BAA2B,kBAAkB,iBAAiB,GAAG,yBAAyB;CAG5F,MAAM,2BAA2B;EAC/B,MAAM,mBAAmB,YAAY,IAAI;EACzC,OAAO,QAAQ,SAAS,KAAK,QAAQ,QAAQ,SAAS,EAAE,CAAC,UAAU,kBACjE,QAAQ,IAAI;CAEhB;CAEA,aAAa,IAAI,kBAAkB;;;;;CAMnC,SAAS,IAAI,OAAc,WAAmD;EAC5E,MAAM,QAAkC;GACtC;GACA;GACA,SAAS;GACT,cAAc;IACZ,WAAW,SAAS,KAAK;GAC3B;GACA,QAAQ,YAA0B;IAChC,MAAM,UAAU;GAClB;EACF;EAEA,IAAI,cAAc,QAAQ,UAAU,YAClC,QAAQ,IAAI;EAGd,QAAQ,QAAQ,KAAK;EAErB,OAAO;CACT;;;;;;;CAQA,SAAS,KACP,YAA0B,cAC1B,UAAuC,EAAE,gBAAgB,MAAM,GAC5C;EACnB,KAAK,MAAM,SAAS,SAClB,IAAI,MAAM,aAAa,WAAW;GAChC,IAAI,QAAQ,kBAAkB,aAAa,MAAM,SAC/C,OAAO,MAAM;GAEf;EACF;CAEJ;;;;;CAMA,SAAS,YAAY,SAAuB;EAC1C,MAAM,cAAc,QAAQ;EAC5B,IAAI,aAAa,YAAY,cAC3B,YAAY,MAAM,OAAO;CAE7B;;;;;;CAOA,SAAS,QAAQ,YAA0B,cAAc,WAAW,GAAwB;EAC1F,MAAM,UAAU,YAAY,WAAW,QAAQ;EAC/C,OAAO,QACJ,QAAQ,UAAU,MAAM,aAAa,WAAW,aAAa,MAAM,OAAO,CAAC,CAC3E,KAAK,UAAU,MAAM,KAAK;CAC/B;;;;;;CAOA,SAAS,eACP,YAA0B,cAC1B,WAAW,GACsB;EACjC,MAAM,UAAU,YAAY,WAAW,QAAQ;EAC/C,OAAO,QAAQ,QAAQ,UAAU,MAAM,aAAa,WAAW,aAAa,MAAM,OAAO;CAC3F;;;;CAKA,SAAS,WAAW,WAA0D;EAC5E,OAAO,QAAQ,QAAQ,UAAU,MAAM,cAAc,SAAS;CAChE;;;;CAKA,SAAS,QAAQ;EACf,UAAU,CAAC;CACb;;;;CAKA,SAAS,OAAO;EACd,aAAa,OAAO,kBAAkB;EACtC,IAAI,aAAa,SAAS,KAAK,0BAA0B;GACvD,cAAc,wBAAwB;GACtC,2BAA2B,KAAA;EAC7B;CACF;CAEA,OAAO;EAAE;EAAK;EAAM;EAAa;EAAS;EAAgB;EAAY;EAAO;CAAK;AACpF"}
@@ -0,0 +1,77 @@
1
+ import { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from "../tools/display.mjs";
2
+ import { ONE_KIBI_BYTE, computeBytesCount } from "../tools/utils/byteUtils.mjs";
3
+ import { jsonStringify } from "../tools/serialisation/jsonStringify.mjs";
4
+ import { objectValues } from "../tools/utils/polyfills.mjs";
5
+ import { isPageExitReason } from "../browser/pageMayExitObservable.mjs";
6
+ //#region src/transport/batch.ts
7
+ const MESSAGE_BYTES_LIMIT = 256 * ONE_KIBI_BYTE;
8
+ function createBatch({ encoder, request, flushController }) {
9
+ let upsertBuffer = {};
10
+ const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event));
11
+ function push(serializedMessage, estimatedMessageBytesCount, key) {
12
+ if (key !== void 0) {
13
+ let bytesDiff;
14
+ if (upsertBuffer[key] !== void 0) bytesDiff = estimatedMessageBytesCount - encoder.estimateEncodedBytesCount(upsertBuffer[key]);
15
+ else {
16
+ flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);
17
+ bytesDiff = 0;
18
+ }
19
+ upsertBuffer[key] = serializedMessage;
20
+ flushController.notifyAfterAddMessage(bytesDiff);
21
+ } else {
22
+ flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);
23
+ encoder.write(encoder.isEmpty ? serializedMessage : `\n${serializedMessage}`, (realMessageBytesCount) => {
24
+ flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);
25
+ });
26
+ }
27
+ }
28
+ function addOrUpdate(message, key) {
29
+ const serializedMessage = jsonStringify(message);
30
+ const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage);
31
+ if (estimatedMessageBytesCount >= MESSAGE_BYTES_LIMIT) {
32
+ display.warn(`Discarded a message whose size was bigger than the maximum allowed size ${MESSAGE_BYTES_LIMIT / ONE_KIBI_BYTE}KiB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`);
33
+ return;
34
+ }
35
+ push(serializedMessage, estimatedMessageBytesCount, key);
36
+ }
37
+ function flush(event) {
38
+ const upsertMessages = objectValues(upsertBuffer).join("\n");
39
+ upsertBuffer = {};
40
+ const pageMightExit = isPageExitReason(event.reason);
41
+ const send = pageMightExit ? request.sendOnExit : request.send;
42
+ if (pageMightExit && encoder.isAsync) {
43
+ const encoderResult = encoder.finishSync();
44
+ if (encoderResult.outputBytesCount) send(formatPayloadFromEncoder(encoderResult));
45
+ const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join("\n");
46
+ if (pendingMessages) send({
47
+ data: pendingMessages,
48
+ bytesCount: computeBytesCount(pendingMessages)
49
+ });
50
+ } else {
51
+ if (upsertMessages) encoder.write(encoder.isEmpty ? upsertMessages : `\n${upsertMessages}`);
52
+ encoder.finish((encoderResult) => {
53
+ send(formatPayloadFromEncoder(encoderResult));
54
+ });
55
+ }
56
+ }
57
+ return {
58
+ flushController,
59
+ add: addOrUpdate,
60
+ upsert: addOrUpdate,
61
+ stop: flushSubscription.unsubscribe
62
+ };
63
+ }
64
+ function formatPayloadFromEncoder(encoderResult) {
65
+ let data;
66
+ if (typeof encoderResult.output === "string") data = encoderResult.output;
67
+ else data = new Blob([encoderResult.output], { type: "text/plain" });
68
+ return {
69
+ data,
70
+ bytesCount: encoderResult.outputBytesCount,
71
+ encoding: encoderResult.encoding
72
+ };
73
+ }
74
+ //#endregion
75
+ export { createBatch };
76
+
77
+ //# sourceMappingURL=batch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.mjs","names":[],"sources":["../../src/transport/batch.ts"],"sourcesContent":["import { DOCS_TROUBLESHOOTING, MORE_DETAILS, display } from '../tools/display'\nimport type { Context } from '../tools/serialisation/context'\nimport { objectValues } from '../tools/utils/polyfills'\nimport { isPageExitReason } from '../browser/pageMayExitObservable'\nimport { jsonStringify } from '../tools/serialisation/jsonStringify'\nimport type { Encoder, EncoderResult } from '../tools/encoder'\nimport { computeBytesCount, ONE_KIBI_BYTE } from '../tools/utils/byteUtils'\nimport type { HttpRequest, Payload } from './httpRequest'\nimport type { FlushController, FlushEvent } from './flushController'\n\nexport const MESSAGE_BYTES_LIMIT = 256 * ONE_KIBI_BYTE\n\nexport interface Batch {\n flushController: FlushController\n add: (message: Context) => void\n upsert: (message: Context, key: string) => void\n stop: () => void\n}\n\nexport function createBatch({\n encoder,\n request,\n flushController,\n}: {\n encoder: Encoder\n request: HttpRequest\n flushController: FlushController\n}): Batch {\n let upsertBuffer: { [key: string]: string } = {}\n const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event))\n\n function push(serializedMessage: string, estimatedMessageBytesCount: number, key?: string) {\n if (key !== undefined) {\n let bytesDiff: number\n if (upsertBuffer[key] !== undefined) {\n bytesDiff = estimatedMessageBytesCount - encoder.estimateEncodedBytesCount(upsertBuffer[key])\n } else {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n bytesDiff = 0\n }\n upsertBuffer[key] = serializedMessage\n flushController.notifyAfterAddMessage(bytesDiff)\n } else {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n encoder.write(encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`, (realMessageBytesCount) => {\n flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount)\n })\n }\n }\n\n function addOrUpdate(message: Context, key?: string) {\n const serializedMessage = jsonStringify(message)!\n\n const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage)\n\n if (estimatedMessageBytesCount >= MESSAGE_BYTES_LIMIT) {\n display.warn(\n `Discarded a message whose size was bigger than the maximum allowed size ${MESSAGE_BYTES_LIMIT / ONE_KIBI_BYTE}KiB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`\n )\n return\n }\n\n push(serializedMessage, estimatedMessageBytesCount, key)\n }\n\n function flush(event: FlushEvent) {\n const upsertMessages = objectValues(upsertBuffer).join('\\n')\n upsertBuffer = {}\n\n const pageMightExit = isPageExitReason(event.reason)\n const send = pageMightExit ? request.sendOnExit : request.send\n\n if (\n pageMightExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync\n ) {\n const encoderResult = encoder.finishSync()\n\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult))\n }\n\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n')\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n })\n }\n } else {\n if (upsertMessages) {\n encoder.write(encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`)\n }\n encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult))\n })\n }\n }\n\n return {\n flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe,\n }\n}\n\nfunction formatPayloadFromEncoder(encoderResult: EncoderResult): Payload {\n let data: string | Blob\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output\n } else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n })\n }\n\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n }\n}\n"],"mappings":";;;;;;AAUA,MAAa,sBAAsB,MAAM;AASzC,SAAgB,YAAY,EAC1B,SACA,SACA,mBAKQ;CACR,IAAI,eAA0C,CAAC;CAC/C,MAAM,oBAAoB,gBAAgB,gBAAgB,WAAW,UAAU,MAAM,KAAK,CAAC;CAE3F,SAAS,KAAK,mBAA2B,4BAAoC,KAAc;EACzF,IAAI,QAAQ,KAAA,GAAW;GACrB,IAAI;GACJ,IAAI,aAAa,SAAS,KAAA,GACxB,YAAY,6BAA6B,QAAQ,0BAA0B,aAAa,IAAI;QACvF;IACL,gBAAgB,uBAAuB,0BAA0B;IACjE,YAAY;GACd;GACA,aAAa,OAAO;GACpB,gBAAgB,sBAAsB,SAAS;EACjD,OAAO;GACL,gBAAgB,uBAAuB,0BAA0B;GACjE,QAAQ,MAAM,QAAQ,UAAU,oBAAoB,KAAK,sBAAsB,0BAA0B;IACvG,gBAAgB,sBAAsB,wBAAwB,0BAA0B;GAC1F,CAAC;EACH;CACF;CAEA,SAAS,YAAY,SAAkB,KAAc;EACnD,MAAM,oBAAoB,cAAc,OAAO;EAE/C,MAAM,6BAA6B,QAAQ,0BAA0B,iBAAiB;EAEtF,IAAI,8BAA8B,qBAAqB;GACrD,QAAQ,KACN,2EAA2E,sBAAsB,cAAc,OAAO,aAAa,GAAG,qBAAqB,wBAC7J;GACA;EACF;EAEA,KAAK,mBAAmB,4BAA4B,GAAG;CACzD;CAEA,SAAS,MAAM,OAAmB;EAChC,MAAM,iBAAiB,aAAa,YAAY,CAAC,CAAC,KAAK,IAAI;EAC3D,eAAe,CAAC;EAEhB,MAAM,gBAAgB,iBAAiB,MAAM,MAAM;EACnD,MAAM,OAAO,gBAAgB,QAAQ,aAAa,QAAQ;EAE1D,IACE,iBAKA,QAAQ,SACR;GACA,MAAM,gBAAgB,QAAQ,WAAW;GAGzC,IAAI,cAAc,kBAChB,KAAK,yBAAyB,aAAa,CAAC;GAI9C,MAAM,kBAAkB,CAAC,cAAc,aAAa,cAAc,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;GAC7F,IAAI,iBACF,KAAK;IACH,MAAM;IACN,YAAY,kBAAkB,eAAe;GAC/C,CAAC;EAEL,OAAO;GACL,IAAI,gBACF,QAAQ,MAAM,QAAQ,UAAU,iBAAiB,KAAK,gBAAgB;GAExE,QAAQ,QAAQ,kBAAkB;IAChC,KAAK,yBAAyB,aAAa,CAAC;GAC9C,CAAC;EACH;CACF;CAEA,OAAO;EACL;EACA,KAAK;EACL,QAAQ;EACR,MAAM,kBAAkB;CAC1B;AACF;AAEA,SAAS,yBAAyB,eAAuC;CACvE,IAAI;CACJ,IAAI,OAAO,cAAc,WAAW,UAClC,OAAO,cAAc;MAErB,OAAO,IAAI,KAAK,CAAC,cAAc,MAAM,GAAG,EAOtC,MAAM,aACR,CAAC;CAGH,OAAO;EACL;EACA,YAAY,cAAc;EAC1B,UAAU,cAAc;CAC1B;AACF"}
@@ -0,0 +1,58 @@
1
+ import { display } from "../tools/display.mjs";
2
+ import { globalObject } from "../tools/globalObject.mjs";
3
+ //#region src/transport/eventBridge.ts
4
+ let BridgeCapability = /* @__PURE__ */ function(BridgeCapability) {
5
+ BridgeCapability["RECORDS"] = "records";
6
+ BridgeCapability["PROFILES"] = "profiles";
7
+ return BridgeCapability;
8
+ }({});
9
+ function getEventBridge() {
10
+ const eventBridgeGlobal = getEventBridgeGlobal();
11
+ if (!eventBridgeGlobal) return;
12
+ return {
13
+ getCapabilities() {
14
+ return JSON.parse(eventBridgeGlobal.getCapabilities?.() || "[]");
15
+ },
16
+ getPrivacyLevel() {
17
+ return eventBridgeGlobal.getPrivacyLevel?.();
18
+ },
19
+ getIsTraceSampled() {
20
+ return JSON.parse(eventBridgeGlobal.getIsTraceSampled?.() || "null");
21
+ },
22
+ getAllowedWebViewHosts() {
23
+ return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());
24
+ },
25
+ send(eventType, event, viewId) {
26
+ const view = viewId ? { id: viewId } : void 0;
27
+ eventBridgeGlobal.send(JSON.stringify({
28
+ eventType,
29
+ event,
30
+ view
31
+ }));
32
+ }
33
+ };
34
+ }
35
+ function bridgeSupports(capability) {
36
+ const bridge = getEventBridge();
37
+ return !!bridge && bridge.getCapabilities().includes(capability);
38
+ }
39
+ function canUseEventBridge(currentHost = globalObject.location?.hostname) {
40
+ return getEventBridge()?.getAllowedWebViewHosts().some((entry) => matchesHostEntry(currentHost, entry)) ?? false;
41
+ }
42
+ function matchesHostEntry(host, entry) {
43
+ if (!entry.includes("*")) return host === entry || host.endsWith(`.${entry}`);
44
+ const parts = entry.split("*");
45
+ if (parts.length !== 2) {
46
+ display.error(`Invalid WebView host pattern "${entry}": only one wildcard (*) is supported.`);
47
+ return false;
48
+ }
49
+ const [prefix, suffix] = parts;
50
+ return host.length > prefix.length + suffix.length && host.startsWith(prefix) && host.endsWith(suffix);
51
+ }
52
+ function getEventBridgeGlobal() {
53
+ return globalObject.DatadogEventBridge;
54
+ }
55
+ //#endregion
56
+ export { BridgeCapability, bridgeSupports, canUseEventBridge, getEventBridge };
57
+
58
+ //# sourceMappingURL=eventBridge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventBridge.mjs","names":[],"sources":["../../src/transport/eventBridge.ts"],"sourcesContent":["import { display } from '../tools/display'\nimport { globalObject } from '../tools/globalObject'\nimport type { DefaultPrivacyLevel } from '../domain/configuration'\n\nexport interface BrowserWindowWithEventBridge {\n DatadogEventBridge?: DatadogEventBridge\n}\n\nexport interface DatadogEventBridge {\n getCapabilities?(): string\n getPrivacyLevel?(): DefaultPrivacyLevel\n getIsTraceSampled?(): 'true' | 'false' | 'null'\n getAllowedWebViewHosts(): string\n send(msg: string): void\n}\n\nexport const enum BridgeCapability {\n RECORDS = 'records',\n PROFILES = 'profiles',\n}\n\nexport function getEventBridge<T, E>() {\n const eventBridgeGlobal = getEventBridgeGlobal()\n\n if (!eventBridgeGlobal) {\n return\n }\n\n return {\n getCapabilities() {\n return JSON.parse(eventBridgeGlobal.getCapabilities?.() || '[]') as BridgeCapability[]\n },\n getPrivacyLevel() {\n return eventBridgeGlobal.getPrivacyLevel?.()\n },\n getIsTraceSampled() {\n return JSON.parse(eventBridgeGlobal.getIsTraceSampled?.() || 'null') as boolean | null\n },\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts()) as string[]\n },\n send(eventType: T, event: E, viewId?: string) {\n const view = viewId ? { id: viewId } : undefined\n eventBridgeGlobal.send(JSON.stringify({ eventType, event, view }))\n },\n }\n}\n\nexport function bridgeSupports(capability: BridgeCapability): boolean {\n const bridge = getEventBridge()\n return !!bridge && bridge.getCapabilities().includes(capability)\n}\n\nexport function canUseEventBridge(currentHost = globalObject.location?.hostname): boolean {\n const bridge = getEventBridge()\n return bridge?.getAllowedWebViewHosts().some((entry) => matchesHostEntry(currentHost, entry)) ?? false\n}\n\nexport function matchesHostEntry(host: string, entry: string): boolean {\n if (!entry.includes('*')) {\n return host === entry || host.endsWith(`.${entry}`)\n }\n const parts = entry.split('*')\n if (parts.length !== 2) {\n display.error(`Invalid WebView host pattern \"${entry}\": only one wildcard (*) is supported.`)\n return false\n }\n const [prefix, suffix] = parts\n return host.length > prefix.length + suffix.length && host.startsWith(prefix) && host.endsWith(suffix)\n}\n\nfunction getEventBridgeGlobal() {\n return (globalObject as BrowserWindowWithEventBridge).DatadogEventBridge\n}\n"],"mappings":";;;AAgBA,IAAkB,mBAAX,yBAAA,kBAAA;CACL,iBAAA,aAAA;CACA,iBAAA,cAAA;;AACF,EAAA,CAAA,CAAA;AAEA,SAAgB,iBAAuB;CACrC,MAAM,oBAAoB,qBAAqB;CAE/C,IAAI,CAAC,mBACH;CAGF,OAAO;EACL,kBAAkB;GAChB,OAAO,KAAK,MAAM,kBAAkB,kBAAkB,KAAK,IAAI;EACjE;EACA,kBAAkB;GAChB,OAAO,kBAAkB,kBAAkB;EAC7C;EACA,oBAAoB;GAClB,OAAO,KAAK,MAAM,kBAAkB,oBAAoB,KAAK,MAAM;EACrE;EACA,yBAAyB;GACvB,OAAO,KAAK,MAAM,kBAAkB,uBAAuB,CAAC;EAC9D;EACA,KAAK,WAAc,OAAU,QAAiB;GAC5C,MAAM,OAAO,SAAS,EAAE,IAAI,OAAO,IAAI,KAAA;GACvC,kBAAkB,KAAK,KAAK,UAAU;IAAE;IAAW;IAAO;GAAK,CAAC,CAAC;EACnE;CACF;AACF;AAEA,SAAgB,eAAe,YAAuC;CACpE,MAAM,SAAS,eAAe;CAC9B,OAAO,CAAC,CAAC,UAAU,OAAO,gBAAgB,CAAC,CAAC,SAAS,UAAU;AACjE;AAEA,SAAgB,kBAAkB,cAAc,aAAa,UAAU,UAAmB;CAExF,OADe,eACH,CAAC,EAAE,uBAAuB,CAAC,CAAC,MAAM,UAAU,iBAAiB,aAAa,KAAK,CAAC,KAAK;AACnG;AAEA,SAAgB,iBAAiB,MAAc,OAAwB;CACrE,IAAI,CAAC,MAAM,SAAS,GAAG,GACrB,OAAO,SAAS,SAAS,KAAK,SAAS,IAAI,OAAO;CAEpD,MAAM,QAAQ,MAAM,MAAM,GAAG;CAC7B,IAAI,MAAM,WAAW,GAAG;EACtB,QAAQ,MAAM,iCAAiC,MAAM,uCAAuC;EAC5F,OAAO;CACT;CACA,MAAM,CAAC,QAAQ,UAAU;CACzB,OAAO,KAAK,SAAS,OAAO,SAAS,OAAO,UAAU,KAAK,WAAW,MAAM,KAAK,KAAK,SAAS,MAAM;AACvG;AAEA,SAAS,uBAAuB;CAC9B,OAAQ,aAA8C;AACxD"}