@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
@@ -1,188 +1,132 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sanitize = sanitize;
4
- const display_1 = require("../display");
5
- const byteUtils_1 = require("../utils/byteUtils");
6
- const jsonStringify_1 = require("./jsonStringify");
7
- // The maximum size of a single event is 256KiB. By default, we ensure that user-provided data
8
- // going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...
9
- const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * byteUtils_1.ONE_KIBI_BYTE;
10
- // Symbol for the root element of the JSONPath used for visited objects
11
- const JSON_PATH_ROOT_ELEMENT = '$';
12
- // When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as "key".
13
- // With the separator (:), we need to add 3 characters to the count.
1
+ const require_display = require("../display.js");
2
+ const require_byteUtils = require("../utils/byteUtils.js");
3
+ const require_jsonStringify = require("./jsonStringify.js");
4
+ //#region src/tools/serialisation/sanitize.ts
5
+ const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * require_byteUtils.ONE_KIBI_BYTE;
6
+ const JSON_PATH_ROOT_ELEMENT = "$";
14
7
  const KEY_DECORATION_LENGTH = 3;
15
8
  function sanitize(source, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {
16
- // Unbind any toJSON function we may have on [] or {} prototypes
17
- const restoreObjectPrototypeToJson = (0, jsonStringify_1.detachToJsonMethod)(Object.prototype);
18
- const restoreArrayPrototypeToJson = (0, jsonStringify_1.detachToJsonMethod)(Array.prototype);
19
- // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object
20
- const containerQueue = [];
21
- const visitedObjectsWithPath = new WeakMap();
22
- const sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);
23
- const serializedSanitizedData = JSON.stringify(sanitizedData);
24
- let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;
25
- if (accumulatedCharacterCount > maxCharacterCount) {
26
- warnOverCharacterLimit(maxCharacterCount, 'discarded', source);
27
- return undefined;
28
- }
29
- while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {
30
- const containerToProcess = containerQueue.shift();
31
- let separatorLength = 0; // 0 for the first element, 1 for subsequent elements
32
- // Arrays and Objects have to be handled distinctly to ensure
33
- // we do not pick up non-numerical properties from Arrays
34
- if (Array.isArray(containerToProcess.source)) {
35
- for (let key = 0; key < containerToProcess.source.length; key++) {
36
- const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);
37
- if (targetData !== undefined) {
38
- accumulatedCharacterCount += JSON.stringify(targetData).length;
39
- }
40
- else {
41
- // When an element of an Array (targetData) is undefined, it is serialized as null:
42
- // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters
43
- accumulatedCharacterCount += 4;
44
- }
45
- accumulatedCharacterCount += separatorLength;
46
- separatorLength = 1;
47
- if (accumulatedCharacterCount > maxCharacterCount) {
48
- warnOverCharacterLimit(maxCharacterCount, 'truncated', source);
49
- break;
50
- }
51
- ;
52
- containerToProcess.target[key] = targetData;
53
- }
54
- }
55
- else {
56
- for (const key in containerToProcess.source) {
57
- if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
58
- const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);
59
- // When a property of an object has an undefined value, it will be dropped during serialization:
60
- // JSON.stringify({a:undefined}) => '{}'
61
- if (targetData !== undefined) {
62
- accumulatedCharacterCount +=
63
- JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;
64
- separatorLength = 1;
65
- }
66
- if (accumulatedCharacterCount > maxCharacterCount) {
67
- warnOverCharacterLimit(maxCharacterCount, 'truncated', source);
68
- break;
69
- }
70
- ;
71
- containerToProcess.target[key] = targetData;
72
- }
73
- }
74
- }
75
- }
76
- // Rebind detached toJSON functions
77
- restoreObjectPrototypeToJson();
78
- restoreArrayPrototypeToJson();
79
- return sanitizedData;
9
+ const restoreObjectPrototypeToJson = require_jsonStringify.detachToJsonMethod(Object.prototype);
10
+ const restoreArrayPrototypeToJson = require_jsonStringify.detachToJsonMethod(Array.prototype);
11
+ try {
12
+ const containerQueue = [];
13
+ const visitedObjectsWithPath = /* @__PURE__ */ new WeakMap();
14
+ const sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, void 0, containerQueue, visitedObjectsWithPath);
15
+ const serializedSanitizedData = JSON.stringify(sanitizedData);
16
+ let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0;
17
+ if (accumulatedCharacterCount > maxCharacterCount) {
18
+ warnOverCharacterLimit(maxCharacterCount, "discarded", source);
19
+ return;
20
+ }
21
+ while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {
22
+ const containerToProcess = containerQueue.shift();
23
+ let separatorLength = 0;
24
+ if (Array.isArray(containerToProcess.source)) for (let key = 0; key < containerToProcess.source.length; key++) {
25
+ const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);
26
+ if (targetData !== void 0) accumulatedCharacterCount += JSON.stringify(targetData).length;
27
+ else accumulatedCharacterCount += 4;
28
+ accumulatedCharacterCount += separatorLength;
29
+ separatorLength = 1;
30
+ if (accumulatedCharacterCount > maxCharacterCount) {
31
+ warnOverCharacterLimit(maxCharacterCount, "truncated", source);
32
+ break;
33
+ }
34
+ containerToProcess.target[key] = targetData;
35
+ }
36
+ else for (const key in containerToProcess.source) if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
37
+ const targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);
38
+ if (targetData !== void 0) {
39
+ accumulatedCharacterCount += JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;
40
+ separatorLength = 1;
41
+ }
42
+ if (accumulatedCharacterCount > maxCharacterCount) {
43
+ warnOverCharacterLimit(maxCharacterCount, "truncated", source);
44
+ break;
45
+ }
46
+ containerToProcess.target[key] = targetData;
47
+ }
48
+ }
49
+ return sanitizedData;
50
+ } finally {
51
+ restoreObjectPrototypeToJson();
52
+ restoreArrayPrototypeToJson();
53
+ }
80
54
  }
81
55
  /**
82
- * Internal function to factorize the process common to the
83
- * initial call to sanitize, and iterations for Arrays and Objects
84
- *
85
- */
56
+ * Internal function to factorize the process common to the
57
+ * initial call to sanitize, and iterations for Arrays and Objects
58
+ *
59
+ */
86
60
  function sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {
87
- // Start by handling toJSON, as we want to sanitize its output
88
- const sourceToSanitize = tryToApplyToJSON(source);
89
- if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {
90
- return sanitizePrimitivesAndFunctions(sourceToSanitize);
91
- }
92
- const sanitizedSource = sanitizeObjects(sourceToSanitize);
93
- if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {
94
- return sanitizedSource;
95
- }
96
- // Handle potential cyclic references
97
- // We need to use source as sourceToSanitize could be a reference to a new object
98
- // At this stage, we know the source is an object type
99
- const sourceAsObject = source;
100
- if (visitedObjectsWithPath.has(sourceAsObject)) {
101
- return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)}]`;
102
- }
103
- // Add processed source to queue
104
- const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath;
105
- const target = Array.isArray(sourceToSanitize) ? [] : {};
106
- visitedObjectsWithPath.set(sourceAsObject, currentPath);
107
- queue.push({ source: sourceToSanitize, target, path: currentPath });
108
- return target;
61
+ const sourceToSanitize = tryToApplyToJSON(source);
62
+ if (!sourceToSanitize || typeof sourceToSanitize !== "object") return sanitizePrimitivesAndFunctions(sourceToSanitize);
63
+ const sanitizedSource = sanitizeObjects(sourceToSanitize);
64
+ if (sanitizedSource !== "[Object]" && sanitizedSource !== "[Array]" && sanitizedSource !== "[Error]") return sanitizedSource;
65
+ const sourceAsObject = source;
66
+ if (visitedObjectsWithPath.has(sourceAsObject)) return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)}]`;
67
+ const currentPath = key !== void 0 ? `${parentPath}.${key}` : parentPath;
68
+ const target = Array.isArray(sourceToSanitize) ? [] : {};
69
+ visitedObjectsWithPath.set(sourceAsObject, currentPath);
70
+ queue.push({
71
+ source: sourceToSanitize,
72
+ target,
73
+ path: currentPath
74
+ });
75
+ return target;
109
76
  }
110
77
  /**
111
- * Handles sanitization of simple, non-object types
112
- *
113
- */
78
+ * Handles sanitization of simple, non-object types
79
+ *
80
+ */
114
81
  function sanitizePrimitivesAndFunctions(value) {
115
- // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation
116
- if (typeof value === 'bigint') {
117
- return `[BigInt] ${value.toString()}`;
118
- }
119
- // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted
120
- // so it won't prevent stringify from serializing later
121
- if (typeof value === 'function') {
122
- return `[Function] ${value.name || 'unknown'}`;
123
- }
124
- // JSON.stringify() does not serialize symbols.
125
- if (typeof value === 'symbol') {
126
- return `[Symbol] ${value.description || value.toString()}`;
127
- }
128
- return value;
82
+ if (typeof value === "bigint") return `[BigInt] ${value.toString()}`;
83
+ if (typeof value === "function") return `[Function] ${value.name || "unknown"}`;
84
+ if (typeof value === "symbol") return `[Symbol] ${value.description || value.toString()}`;
85
+ return value;
129
86
  }
130
87
  /**
131
- * Handles sanitization of object types
132
- *
133
- * LIMITATIONS
134
- * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.
135
- * To avoid this, a toJSON method can be defined.
136
- */
88
+ * Handles sanitization of object types
89
+ *
90
+ * LIMITATIONS
91
+ * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.
92
+ * To avoid this, a toJSON method can be defined.
93
+ */
137
94
  function sanitizeObjects(value) {
138
- try {
139
- if (value instanceof Event) {
140
- return sanitizeEvent(value);
141
- }
142
- if (value instanceof RegExp) {
143
- return `[RegExp] ${value.toString()}`;
144
- }
145
- // Handle all remaining object types in a generic way
146
- const result = Object.prototype.toString.call(value);
147
- const match = result.match(/\[object (.*)\]/);
148
- if (match && match[1]) {
149
- return `[${match[1]}]`;
150
- }
151
- }
152
- catch (_a) {
153
- // If the previous serialization attempts failed, and we cannot convert using
154
- // Object.prototype.toString, declare the value unserializable
155
- }
156
- return '[Unserializable]';
95
+ try {
96
+ if (value instanceof Event) return sanitizeEvent(value);
97
+ if (value instanceof RegExp) return `[RegExp] ${value.toString()}`;
98
+ const match = Object.prototype.toString.call(value).match(/\[object (.*)\]/);
99
+ if (match?.[1]) return `[${match[1]}]`;
100
+ } catch {}
101
+ return "[Unserializable]";
157
102
  }
158
103
  function sanitizeEvent(event) {
159
- return {
160
- type: event.type,
161
- isTrusted: event.isTrusted,
162
- currentTarget: event.currentTarget ? sanitizeObjects(event.currentTarget) : null,
163
- target: event.target ? sanitizeObjects(event.target) : null,
164
- };
104
+ return {
105
+ type: event.type,
106
+ isTrusted: event.isTrusted,
107
+ currentTarget: event.currentTarget ? sanitizeObjects(event.currentTarget) : null,
108
+ target: event.target ? sanitizeObjects(event.target) : null
109
+ };
165
110
  }
166
111
  /**
167
- * Checks if a toJSON function exists and tries to execute it
168
- *
169
- */
112
+ * Checks if a toJSON function exists and tries to execute it
113
+ *
114
+ */
170
115
  function tryToApplyToJSON(value) {
171
- const object = value;
172
- if (object && typeof object.toJSON === 'function') {
173
- try {
174
- return object.toJSON();
175
- }
176
- catch (_a) {
177
- // If toJSON fails, we continue by trying to serialize the value manually
178
- }
179
- }
180
- return value;
116
+ const object = value;
117
+ if (object && typeof object.toJSON === "function") try {
118
+ return object.toJSON();
119
+ } catch {}
120
+ return value;
181
121
  }
182
122
  /**
183
- * Helper function to display the warning when the accumulated character count is over the limit
184
- */
123
+ * Helper function to display the warning when the accumulated character count is over the limit
124
+ */
185
125
  function warnOverCharacterLimit(maxCharacterCount, changeType, source) {
186
- display_1.display.warn(`The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`, source);
126
+ require_display.display.warn(`The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`, source);
187
127
  }
128
+ //#endregion
129
+ exports.SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT;
130
+ exports.sanitize = sanitize;
131
+
188
132
  //# sourceMappingURL=sanitize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/tools/serialisation/sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitize.js","names":["ONE_KIBI_BYTE","detachToJsonMethod"],"sources":["../../../src/tools/serialisation/sanitize.ts"],"sourcesContent":["import { display } from '../display'\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils'\nimport type { Context, ContextArray, ContextValue } from './context'\nimport type { ObjectWithToJsonMethod } from './jsonStringify'\nimport { detachToJsonMethod } from './jsonStringify'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\ntype PrimitivesAndFunctions = string | number | boolean | undefined | null | symbol | bigint | Function\ntype ExtendedContextValue = PrimitivesAndFunctions | ExtendedContext | ExtendedContextArray\ninterface ExtendedContext {\n [key: string]: ExtendedContextValue\n}\ntype ExtendedContextArray = ExtendedContextValue[]\n\ninterface ContainerElementToProcess {\n source: ExtendedContextArray | ExtendedContext\n target: ContextArray | Context\n path: string\n}\n\ninterface SanitizedEvent extends Context {\n type: string\n isTrusted: boolean\n currentTarget: string | null | undefined\n target: string | null | undefined\n}\n\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nexport const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE\n\n// Symbol for the root element of the JSONPath used for visited objects\nconst JSON_PATH_ROOT_ELEMENT = '$'\n\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nconst KEY_DECORATION_LENGTH = 3\n\n/**\n * Ensures user-provided data is 'safe' for the SDK\n * - Deep clones data\n * - Removes cyclic references\n * - Transforms unserializable types to a string representation\n *\n * LIMITATIONS:\n * - Size is in characters, not byte count (may differ according to character encoding)\n * - Size does not take into account indentation that can be applied to JSON.stringify\n * - Non-numerical properties of Arrays are ignored. Same behavior as JSON.stringify\n *\n * @param source - User-provided data meant to be serialized using JSON.stringify\n * @param maxCharacterCount - Maximum number of characters allowed in serialized form\n */\nexport function sanitize(source: string, maxCharacterCount?: number): string | undefined\nexport function sanitize(source: Context, maxCharacterCount?: number): Context\nexport function sanitize(source: unknown, maxCharacterCount?: number): ContextValue\nexport function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {\n // Unbind any toJSON function we may have on [] or {} prototypes\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n\n try {\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n const containerQueue: ContainerElementToProcess[] = []\n const visitedObjectsWithPath = new WeakMap<object, string>()\n const sanitizedData = sanitizeProcessor(\n source as ExtendedContextValue,\n JSON_PATH_ROOT_ELEMENT,\n undefined,\n containerQueue,\n visitedObjectsWithPath\n )\n const serializedSanitizedData = JSON.stringify(sanitizedData)\n let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0\n\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source)\n return undefined\n }\n\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n const containerToProcess = containerQueue.shift()!\n let separatorLength = 0 // 0 for the first element, 1 for subsequent elements\n\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (let key = 0; key < containerToProcess.source.length; key++) {\n const targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length\n } else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4\n }\n accumulatedCharacterCount += separatorLength\n separatorLength = 1\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n ;(containerToProcess.target as ContextArray)[key] = targetData\n }\n } else {\n for (const key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n const targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH\n separatorLength = 1\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n ;(containerToProcess.target as Context)[key] = targetData\n }\n }\n }\n }\n\n return sanitizedData\n } finally {\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n }\n}\n\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(\n source: ExtendedContextValue,\n parentPath: string,\n key: string | number | undefined,\n queue: ContainerElementToProcess[],\n visitedObjectsWithPath: WeakMap<object, string>\n) {\n // Start by handling toJSON, as we want to sanitize its output\n const sourceToSanitize = tryToApplyToJSON(source)\n\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize)\n }\n\n const sanitizedSource = sanitizeObjects(sourceToSanitize)\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource\n }\n\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n const sourceAsObject = source as object\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)!}]`\n }\n\n // Add processed source to queue\n const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath\n const target = Array.isArray(sourceToSanitize) ? ([] as ContextArray) : ({} as Context)\n visitedObjectsWithPath.set(sourceAsObject, currentPath)\n queue.push({ source: sourceToSanitize, target, path: currentPath })\n\n return target\n}\n\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value: PrimitivesAndFunctions) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return `[BigInt] ${value.toString()}`\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return `[Function] ${value.name || 'unknown'}`\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n // symbol.description is part of ES2019+\n type symbolWithDescription = symbol & { description: string }\n return `[Symbol] ${(value as symbolWithDescription).description || value.toString()}`\n }\n\n return value\n}\n\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n */\nfunction sanitizeObjects(value: object): string | SanitizedEvent {\n try {\n if (value instanceof Event) {\n return sanitizeEvent(value)\n }\n\n if (value instanceof RegExp) {\n return `[RegExp] ${value.toString()}`\n }\n\n // Handle all remaining object types in a generic way\n const result = Object.prototype.toString.call(value)\n const match = result.match(/\\[object (.*)\\]/)\n if (match?.[1]) {\n return `[${match[1]}]`\n }\n } catch {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]'\n}\n\nfunction sanitizeEvent(event: Event): SanitizedEvent {\n return {\n type: event.type,\n isTrusted: event.isTrusted,\n currentTarget: event.currentTarget ? (sanitizeObjects(event.currentTarget) as string) : null,\n target: event.target ? (sanitizeObjects(event.target) as string) : null,\n }\n}\n\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value: ExtendedContextValue) {\n const object = value as ObjectWithToJsonMethod\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON() as ExtendedContextValue\n } catch {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n\n return value\n}\n\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount: number, changeType: 'discarded' | 'truncated', source: unknown) {\n display.warn(\n `The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`,\n source\n )\n}\n"],"mappings":";;;;AA6BA,MAAa,uCAAuC,MAAMA,kBAAAA;AAG1D,MAAM,yBAAyB;AAI/B,MAAM,wBAAwB;AAmB9B,SAAgB,SAAS,QAAiB,oBAAoB,sCAAsC;CAElG,MAAM,+BAA+BC,sBAAAA,mBAAmB,OAAO,SAAS;CACxE,MAAM,8BAA8BA,sBAAAA,mBAAmB,MAAM,SAAS;CAEtE,IAAI;EAEF,MAAM,iBAA8C,CAAC;EACrD,MAAM,yCAAyB,IAAI,QAAwB;EAC3D,MAAM,gBAAgB,kBACpB,QACA,wBACA,KAAA,GACA,gBACA,sBACF;EACA,MAAM,0BAA0B,KAAK,UAAU,aAAa;EAC5D,IAAI,4BAA4B,0BAA0B,wBAAwB,SAAS;EAE3F,IAAI,4BAA4B,mBAAmB;GACjD,uBAAuB,mBAAmB,aAAa,MAAM;GAC7D;EACF;EAEA,OAAO,eAAe,SAAS,KAAK,4BAA4B,mBAAmB;GACjF,MAAM,qBAAqB,eAAe,MAAM;GAChD,IAAI,kBAAkB;GAItB,IAAI,MAAM,QAAQ,mBAAmB,MAAM,GACzC,KAAK,IAAI,MAAM,GAAG,MAAM,mBAAmB,OAAO,QAAQ,OAAO;IAC/D,MAAM,aAAa,kBACjB,mBAAmB,OAAO,MAC1B,mBAAmB,MACnB,KACA,gBACA,sBACF;IAEA,IAAI,eAAe,KAAA,GACjB,6BAA6B,KAAK,UAAU,UAAU,CAAC,CAAC;SAIxD,6BAA6B;IAE/B,6BAA6B;IAC7B,kBAAkB;IAClB,IAAI,4BAA4B,mBAAmB;KACjD,uBAAuB,mBAAmB,aAAa,MAAM;KAC7D;IACF;IACC,mBAAoB,OAAwB,OAAO;GACtD;QAEA,KAAK,MAAM,OAAO,mBAAmB,QACnC,IAAI,OAAO,UAAU,eAAe,KAAK,mBAAmB,QAAQ,GAAG,GAAG;IACxE,MAAM,aAAa,kBACjB,mBAAmB,OAAO,MAC1B,mBAAmB,MACnB,KACA,gBACA,sBACF;IAGA,IAAI,eAAe,KAAA,GAAW;KAC5B,6BACE,KAAK,UAAU,UAAU,CAAC,CAAC,SAAS,kBAAkB,IAAI,SAAS;KACrE,kBAAkB;IACpB;IACA,IAAI,4BAA4B,mBAAmB;KACjD,uBAAuB,mBAAmB,aAAa,MAAM;KAC7D;IACF;IACC,mBAAoB,OAAmB,OAAO;GACjD;EAGN;EAEA,OAAO;CACT,UAAU;EAER,6BAA6B;EAC7B,4BAA4B;CAC9B;AACF;;;;;;AAOA,SAAS,kBACP,QACA,YACA,KACA,OACA,wBACA;CAEA,MAAM,mBAAmB,iBAAiB,MAAM;CAEhD,IAAI,CAAC,oBAAoB,OAAO,qBAAqB,UACnD,OAAO,+BAA+B,gBAAgB;CAGxD,MAAM,kBAAkB,gBAAgB,gBAAgB;CACxD,IAAI,oBAAoB,cAAc,oBAAoB,aAAa,oBAAoB,WACzF,OAAO;CAMT,MAAM,iBAAiB;CACvB,IAAI,uBAAuB,IAAI,cAAc,GAC3C,OAAO,sBAAsB,uBAAuB,IAAI,cAAc,EAAG;CAI3E,MAAM,cAAc,QAAQ,KAAA,IAAY,GAAG,WAAW,GAAG,QAAQ;CACjE,MAAM,SAAS,MAAM,QAAQ,gBAAgB,IAAK,CAAC,IAAsB,CAAC;CAC1E,uBAAuB,IAAI,gBAAgB,WAAW;CACtD,MAAM,KAAK;EAAE,QAAQ;EAAkB;EAAQ,MAAM;CAAY,CAAC;CAElE,OAAO;AACT;;;;;AAMA,SAAS,+BAA+B,OAA+B;CAErE,IAAI,OAAO,UAAU,UACnB,OAAO,YAAY,MAAM,SAAS;CAIpC,IAAI,OAAO,UAAU,YACnB,OAAO,cAAc,MAAM,QAAQ;CAGrC,IAAI,OAAO,UAAU,UAGnB,OAAO,YAAa,MAAgC,eAAe,MAAM,SAAS;CAGpF,OAAO;AACT;;;;;;;;AASA,SAAS,gBAAgB,OAAwC;CAC/D,IAAI;EACF,IAAI,iBAAiB,OACnB,OAAO,cAAc,KAAK;EAG5B,IAAI,iBAAiB,QACnB,OAAO,YAAY,MAAM,SAAS;EAKpC,MAAM,QADS,OAAO,UAAU,SAAS,KAAK,KAC3B,CAAC,CAAC,MAAM,iBAAiB;EAC5C,IAAI,QAAQ,IACV,OAAO,IAAI,MAAM,GAAG;CAExB,QAAQ,CAGR;CACA,OAAO;AACT;AAEA,SAAS,cAAc,OAA8B;CACnD,OAAO;EACL,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,eAAe,MAAM,gBAAiB,gBAAgB,MAAM,aAAa,IAAe;EACxF,QAAQ,MAAM,SAAU,gBAAgB,MAAM,MAAM,IAAe;CACrE;AACF;;;;;AAMA,SAAS,iBAAiB,OAA6B;CACrD,MAAM,SAAS;CACf,IAAI,UAAU,OAAO,OAAO,WAAW,YACrC,IAAI;EACF,OAAO,OAAO,OAAO;CACvB,QAAQ,CAER;CAGF,OAAO;AACT;;;;AAKA,SAAS,uBAAuB,mBAA2B,YAAuC,QAAiB;CACjH,gBAAA,QAAQ,KACN,8BAA8B,WAAW,8BAA8B,kBAAkB,eACzF,MACF;AACF"}
@@ -0,0 +1,2 @@
1
+ export declare function safeToString(value: unknown): string | undefined;
2
+ export declare function safeStringify(value: unknown): string | undefined;
@@ -0,0 +1,18 @@
1
+ const require_jsonStringify = require("./jsonStringify.js");
2
+ const require_sanitize = require("./sanitize.js");
3
+ //#region src/tools/serialisation/stringify.ts
4
+ function safeToString(value) {
5
+ try {
6
+ return String(value);
7
+ } catch {}
8
+ }
9
+ function safeStringify(value) {
10
+ try {
11
+ return require_jsonStringify.jsonStringify(require_sanitize.sanitize(value));
12
+ } catch {}
13
+ }
14
+ //#endregion
15
+ exports.safeStringify = safeStringify;
16
+ exports.safeToString = safeToString;
17
+
18
+ //# sourceMappingURL=stringify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringify.js","names":["jsonStringify","sanitize"],"sources":["../../../src/tools/serialisation/stringify.ts"],"sourcesContent":["import { jsonStringify } from './jsonStringify'\nimport { sanitize } from './sanitize'\n\nexport function safeToString(value: unknown): string | undefined {\n try {\n return String(value)\n } catch {\n // ignore\n }\n}\n\nexport function safeStringify(value: unknown): string | undefined {\n try {\n return jsonStringify(sanitize(value))\n } catch {\n // ignore\n }\n}\n"],"mappings":";;;AAGA,SAAgB,aAAa,OAAoC;CAC/D,IAAI;EACF,OAAO,OAAO,KAAK;CACrB,QAAQ,CAER;AACF;AAEA,SAAgB,cAAc,OAAoC;CAChE,IAAI;EACF,OAAOA,sBAAAA,cAAcC,iBAAAA,SAAS,KAAK,CAAC;CACtC,QAAQ,CAER;AACF"}