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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (863) hide show
  1. package/README.md +1 -1
  2. package/cjs/boot/displayAlreadyInitializedError.js +6 -7
  3. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
  4. package/cjs/boot/init.js +26 -34
  5. package/cjs/boot/init.js.map +1 -1
  6. package/cjs/browser/addEventListener.d.ts +10 -8
  7. package/cjs/browser/addEventListener.js +107 -50
  8. package/cjs/browser/addEventListener.js.map +1 -1
  9. package/cjs/browser/browser.types.d.ts +91 -4
  10. package/cjs/browser/cookie.d.ts +0 -1
  11. package/cjs/browser/cookie.js +65 -92
  12. package/cjs/browser/cookie.js.map +1 -1
  13. package/cjs/browser/cookieAccess.d.ts +16 -0
  14. package/cjs/browser/cookieAccess.js +114 -0
  15. package/cjs/browser/cookieAccess.js.map +1 -0
  16. package/cjs/browser/fetch.d.ts +9 -0
  17. package/cjs/browser/fetch.js +18 -0
  18. package/cjs/browser/fetch.js.map +1 -0
  19. package/cjs/browser/fetchObservable.d.ts +3 -3
  20. package/cjs/browser/fetchObservable.js +80 -92
  21. package/cjs/browser/fetchObservable.js.map +1 -1
  22. package/cjs/browser/pageMayExitObservable.d.ts +1 -2
  23. package/cjs/browser/pageMayExitObservable.js +41 -40
  24. package/cjs/browser/pageMayExitObservable.js.map +1 -1
  25. package/cjs/browser/runOnReadyState.d.ts +2 -3
  26. package/cjs/browser/runOnReadyState.js +18 -17
  27. package/cjs/browser/runOnReadyState.js.map +1 -1
  28. package/cjs/browser/xhrObservable.d.ts +8 -3
  29. package/cjs/browser/xhrObservable.js +65 -77
  30. package/cjs/browser/xhrObservable.js.map +1 -1
  31. package/cjs/domain/allowedTrackingOrigins.d.ts +1 -1
  32. package/cjs/domain/allowedTrackingOrigins.js +25 -23
  33. package/cjs/domain/allowedTrackingOrigins.js.map +1 -1
  34. package/cjs/domain/bufferedData.d.ts +20 -6
  35. package/cjs/domain/bufferedData.js +41 -19
  36. package/cjs/domain/bufferedData.js.map +1 -1
  37. package/cjs/domain/configuration/configuration.d.ts +44 -43
  38. package/cjs/domain/configuration/configuration.js +122 -125
  39. package/cjs/domain/configuration/configuration.js.map +1 -1
  40. package/cjs/domain/configuration/endpointBuilder.d.ts +42 -7
  41. package/cjs/domain/configuration/endpointBuilder.js +67 -74
  42. package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
  43. package/cjs/domain/configuration/index.d.ts +2 -3
  44. package/cjs/domain/connectivity/connectivity.d.ts +1 -7
  45. package/cjs/domain/connectivity/connectivity.js +11 -11
  46. package/cjs/domain/connectivity/connectivity.js.map +1 -1
  47. package/cjs/domain/console/consoleObservable.d.ts +1 -1
  48. package/cjs/domain/console/consoleObservable.js +59 -74
  49. package/cjs/domain/console/consoleObservable.js.map +1 -1
  50. package/cjs/domain/context/contextConstants.js +24 -15
  51. package/cjs/domain/context/contextConstants.js.map +1 -1
  52. package/cjs/domain/context/contextManager.js +49 -54
  53. package/cjs/domain/context/contextManager.js.map +1 -1
  54. package/cjs/domain/context/contextUtils.js +11 -12
  55. package/cjs/domain/context/contextUtils.js.map +1 -1
  56. package/cjs/domain/context/defineContextMethod.d.ts +2 -2
  57. package/cjs/domain/context/defineContextMethod.js +15 -16
  58. package/cjs/domain/context/defineContextMethod.js.map +1 -1
  59. package/cjs/domain/context/storeContextManager.d.ts +1 -2
  60. package/cjs/domain/context/storeContextManager.js +30 -33
  61. package/cjs/domain/context/storeContextManager.js.map +1 -1
  62. package/cjs/domain/contexts/accountContext.d.ts +2 -2
  63. package/cjs/domain/contexts/accountContext.js +26 -29
  64. package/cjs/domain/contexts/accountContext.js.map +1 -1
  65. package/cjs/domain/contexts/globalContext.d.ts +2 -2
  66. package/cjs/domain/contexts/globalContext.js +17 -17
  67. package/cjs/domain/contexts/globalContext.js.map +1 -1
  68. package/cjs/domain/contexts/tabContext.d.ts +4 -0
  69. package/cjs/domain/contexts/tabContext.js +27 -0
  70. package/cjs/domain/contexts/tabContext.js.map +1 -0
  71. package/cjs/domain/contexts/telemetrySessionContext.d.ts +4 -0
  72. package/cjs/domain/contexts/telemetrySessionContext.js +17 -0
  73. package/cjs/domain/contexts/telemetrySessionContext.js.map +1 -0
  74. package/cjs/domain/contexts/userContext.d.ts +8 -3
  75. package/cjs/domain/contexts/userContext.js +29 -41
  76. package/cjs/domain/contexts/userContext.js.map +1 -1
  77. package/cjs/domain/deflate/deflate.types.js +11 -2
  78. package/cjs/domain/deflate/deflate.types.js.map +1 -1
  79. package/cjs/domain/error/error.d.ts +1 -1
  80. package/cjs/domain/error/error.js +62 -60
  81. package/cjs/domain/error/error.js.map +1 -1
  82. package/cjs/domain/error/error.types.d.ts +1 -1
  83. package/cjs/domain/error/error.types.js +24 -11
  84. package/cjs/domain/error/error.types.js.map +1 -1
  85. package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
  86. package/cjs/domain/error/trackRuntimeError.js +41 -41
  87. package/cjs/domain/error/trackRuntimeError.js.map +1 -1
  88. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +33 -38
  89. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
  90. package/cjs/domain/extension/extensionUtils.js +18 -25
  91. package/cjs/domain/extension/extensionUtils.js.map +1 -1
  92. package/cjs/domain/intakeSites.d.ts +3 -3
  93. package/cjs/domain/intakeSites.js +23 -10
  94. package/cjs/domain/intakeSites.js.map +1 -1
  95. package/cjs/domain/report/reportObservable.d.ts +1 -2
  96. package/cjs/domain/report/reportObservable.js +73 -85
  97. package/cjs/domain/report/reportObservable.js.map +1 -1
  98. package/cjs/domain/resourceUtils.js +19 -17
  99. package/cjs/domain/resourceUtils.js.map +1 -1
  100. package/cjs/domain/sampler.d.ts +11 -0
  101. package/cjs/domain/sampler.js +40 -0
  102. package/cjs/domain/sampler.js.map +1 -0
  103. package/cjs/domain/session/sessionConstants.d.ts +1 -0
  104. package/cjs/domain/session/sessionConstants.js +19 -13
  105. package/cjs/domain/session/sessionConstants.js.map +1 -1
  106. package/cjs/domain/session/sessionManager.d.ts +13 -13
  107. package/cjs/domain/session/sessionManager.js +219 -193
  108. package/cjs/domain/session/sessionManager.js.map +1 -1
  109. package/cjs/domain/session/sessionState.d.ts +10 -1
  110. package/cjs/domain/session/sessionState.js +70 -55
  111. package/cjs/domain/session/sessionState.js.map +1 -1
  112. package/cjs/domain/session/sessionStateValidation.js +7 -8
  113. package/cjs/domain/session/sessionStateValidation.js.map +1 -1
  114. package/cjs/domain/session/sessionStore.d.ts +4 -33
  115. package/cjs/domain/session/sessionStore.js +42 -180
  116. package/cjs/domain/session/sessionStore.js.map +1 -1
  117. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +7 -11
  118. package/cjs/domain/session/storeStrategies/sessionInCookie.js +89 -95
  119. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
  120. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +1 -4
  121. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +39 -38
  122. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
  123. package/cjs/domain/session/storeStrategies/sessionInMemory.d.ts +12 -0
  124. package/cjs/domain/session/storeStrategies/sessionInMemory.js +35 -0
  125. package/cjs/domain/session/storeStrategies/sessionInMemory.js.map +1 -0
  126. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -7
  127. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +7 -4
  128. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -1
  129. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
  130. package/cjs/domain/synthetics/syntheticsWorkerValues.js +33 -25
  131. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
  132. package/cjs/domain/tags.d.ts +0 -1
  133. package/cjs/domain/tags.js +22 -58
  134. package/cjs/domain/tags.js.map +1 -1
  135. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +8 -7
  136. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -1
  137. package/cjs/domain/telemetry/telemetry.d.ts +8 -8
  138. package/cjs/domain/telemetry/telemetry.js +196 -211
  139. package/cjs/domain/telemetry/telemetry.js.map +1 -1
  140. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +97 -17
  141. package/cjs/domain/trackingConsent.d.ts +1 -0
  142. package/cjs/domain/trackingConsent.js +35 -24
  143. package/cjs/domain/trackingConsent.js.map +1 -1
  144. package/cjs/index.d.ts +25 -22
  145. package/cjs/index.js +281 -194
  146. package/cjs/tools/abstractLifeCycle.js +19 -26
  147. package/cjs/tools/abstractLifeCycle.js.map +1 -1
  148. package/cjs/tools/catchUserErrors.js +12 -12
  149. package/cjs/tools/catchUserErrors.js.map +1 -1
  150. package/cjs/tools/display.d.ts +1 -35
  151. package/cjs/tools/display.js +11 -43
  152. package/cjs/tools/display.js.map +1 -1
  153. package/cjs/tools/encoder.js +36 -37
  154. package/cjs/tools/encoder.js.map +1 -1
  155. package/cjs/tools/experimentalFeatures.d.ts +1 -4
  156. package/cjs/tools/experimentalFeatures.js +29 -40
  157. package/cjs/tools/experimentalFeatures.js.map +1 -1
  158. package/cjs/tools/getZoneJsOriginalValue.d.ts +1 -1
  159. package/cjs/tools/getZoneJsOriginalValue.js +22 -25
  160. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -1
  161. package/cjs/tools/globalObject.d.ts +16 -15
  162. package/cjs/tools/globalObject.js +7 -43
  163. package/cjs/tools/globalObject.js.map +1 -1
  164. package/cjs/tools/instrumentMethod.d.ts +58 -1
  165. package/cjs/tools/instrumentMethod.js +174 -112
  166. package/cjs/tools/instrumentMethod.js.map +1 -1
  167. package/cjs/tools/matchOption.js +25 -29
  168. package/cjs/tools/matchOption.js.map +1 -1
  169. package/cjs/tools/mockable.d.ts +22 -0
  170. package/cjs/tools/mockable.js +28 -0
  171. package/cjs/tools/mockable.js.map +1 -0
  172. package/cjs/tools/monitor.d.ts +5 -7
  173. package/cjs/tools/monitor.js +13 -58
  174. package/cjs/tools/monitor.js.map +1 -1
  175. package/cjs/tools/observable.d.ts +3 -1
  176. package/cjs/tools/observable.js +75 -85
  177. package/cjs/tools/observable.js.map +1 -1
  178. package/cjs/tools/queueMicrotask.js +9 -14
  179. package/cjs/tools/queueMicrotask.js.map +1 -1
  180. package/cjs/tools/readBytesFromStream.d.ts +1 -6
  181. package/cjs/tools/readBytesFromStream.js +18 -25
  182. package/cjs/tools/readBytesFromStream.js.map +1 -1
  183. package/cjs/tools/requestIdleCallback.js +22 -29
  184. package/cjs/tools/requestIdleCallback.js.map +1 -1
  185. package/cjs/tools/sendToExtension.js +10 -8
  186. package/cjs/tools/sendToExtension.js.map +1 -1
  187. package/cjs/tools/serialisation/jsonStringify.js +37 -42
  188. package/cjs/tools/serialisation/jsonStringify.js.map +1 -1
  189. package/cjs/tools/serialisation/sanitize.d.ts +1 -0
  190. package/cjs/tools/serialisation/sanitize.js +111 -167
  191. package/cjs/tools/serialisation/sanitize.js.map +1 -1
  192. package/cjs/tools/serialisation/stringify.d.ts +2 -0
  193. package/cjs/tools/serialisation/stringify.js +18 -0
  194. package/cjs/tools/serialisation/stringify.js.map +1 -0
  195. package/cjs/tools/stackTrace/computeStackTrace.js +121 -159
  196. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -1
  197. package/cjs/tools/stackTrace/handlingStack.d.ts +1 -1
  198. package/cjs/tools/stackTrace/handlingStack.js +39 -38
  199. package/cjs/tools/stackTrace/handlingStack.js.map +1 -1
  200. package/cjs/tools/taskQueue.js +40 -49
  201. package/cjs/tools/taskQueue.js.map +1 -1
  202. package/cjs/tools/timer.d.ts +2 -1
  203. package/cjs/tools/timer.js +14 -13
  204. package/cjs/tools/timer.js.map +1 -1
  205. package/cjs/tools/utils/arrayUtils.d.ts +1 -0
  206. package/cjs/tools/utils/arrayUtils.js +17 -13
  207. package/cjs/tools/utils/arrayUtils.js.map +1 -1
  208. package/cjs/tools/utils/browserDetection.d.ts +1 -0
  209. package/cjs/tools/utils/browserDetection.js +25 -23
  210. package/cjs/tools/utils/browserDetection.js.map +1 -1
  211. package/cjs/tools/utils/byteUtils.js +20 -28
  212. package/cjs/tools/utils/byteUtils.js.map +1 -1
  213. package/cjs/tools/utils/functionUtils.js +33 -40
  214. package/cjs/tools/utils/functionUtils.js.map +1 -1
  215. package/cjs/tools/utils/numberUtils.js +15 -14
  216. package/cjs/tools/utils/numberUtils.js.map +1 -1
  217. package/cjs/tools/utils/objectUtils.d.ts +2 -0
  218. package/cjs/tools/utils/objectUtils.js +27 -14
  219. package/cjs/tools/utils/objectUtils.js.map +1 -1
  220. package/cjs/tools/utils/polyfills.js +12 -16
  221. package/cjs/tools/utils/polyfills.js.map +1 -1
  222. package/cjs/tools/utils/responseUtils.js +11 -12
  223. package/cjs/tools/utils/responseUtils.js.map +1 -1
  224. package/cjs/tools/utils/stringUtils.js +56 -77
  225. package/cjs/tools/utils/stringUtils.js.map +1 -1
  226. package/cjs/tools/utils/timezone.js +9 -10
  227. package/cjs/tools/utils/timezone.js.map +1 -1
  228. package/cjs/tools/utils/urlPolyfill.js +42 -46
  229. package/cjs/tools/utils/urlPolyfill.js.map +1 -1
  230. package/cjs/tools/valueHistory.d.ts +9 -1
  231. package/cjs/tools/valueHistory.js +110 -99
  232. package/cjs/tools/valueHistory.js.map +1 -1
  233. package/cjs/transport/batch.js +73 -106
  234. package/cjs/transport/batch.js.map +1 -1
  235. package/cjs/transport/eventBridge.d.ts +6 -2
  236. package/cjs/transport/eventBridge.js +53 -38
  237. package/cjs/transport/eventBridge.js.map +1 -1
  238. package/cjs/transport/flushController.d.ts +2 -12
  239. package/cjs/transport/flushController.js +98 -117
  240. package/cjs/transport/flushController.js.map +1 -1
  241. package/cjs/transport/httpRequest.d.ts +0 -1
  242. package/cjs/transport/httpRequest.js +51 -85
  243. package/cjs/transport/httpRequest.js.map +1 -1
  244. package/cjs/transport/index.d.ts +1 -0
  245. package/cjs/transport/sendWithRetryStrategy.js +133 -146
  246. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  247. package/esm/boot/displayAlreadyInitializedError.mjs +9 -0
  248. package/esm/boot/displayAlreadyInitializedError.mjs.map +1 -0
  249. package/esm/boot/init.mjs +30 -0
  250. package/esm/boot/init.mjs.map +1 -0
  251. package/esm/browser/addEventListener.mjs +107 -0
  252. package/esm/browser/addEventListener.mjs.map +1 -0
  253. package/esm/browser/cookie.mjs +81 -0
  254. package/esm/browser/cookie.mjs.map +1 -0
  255. package/esm/browser/cookieAccess.mjs +111 -0
  256. package/esm/browser/cookieAccess.mjs.map +1 -0
  257. package/esm/browser/fetch.mjs +18 -0
  258. package/esm/browser/fetch.mjs.map +1 -0
  259. package/esm/browser/fetchObservable.mjs +90 -0
  260. package/esm/browser/fetchObservable.mjs.map +1 -0
  261. package/esm/browser/pageMayExitObservable.mjs +44 -0
  262. package/esm/browser/pageMayExitObservable.mjs.map +1 -0
  263. package/esm/browser/runOnReadyState.mjs +19 -0
  264. package/esm/browser/runOnReadyState.mjs.map +1 -0
  265. package/esm/browser/xhrObservable.mjs +74 -0
  266. package/esm/browser/xhrObservable.mjs.map +1 -0
  267. package/esm/domain/allowedTrackingOrigins.mjs +27 -0
  268. package/esm/domain/allowedTrackingOrigins.mjs.map +1 -0
  269. package/esm/domain/bufferedData.mjs +43 -0
  270. package/esm/domain/bufferedData.mjs.map +1 -0
  271. package/esm/domain/configuration/configuration.mjs +131 -0
  272. package/esm/domain/configuration/configuration.mjs.map +1 -0
  273. package/esm/domain/configuration/endpointBuilder.mjs +72 -0
  274. package/esm/domain/configuration/endpointBuilder.mjs.map +1 -0
  275. package/esm/domain/connectivity/connectivity.mjs +14 -0
  276. package/esm/domain/connectivity/connectivity.mjs.map +1 -0
  277. package/esm/domain/console/consoleObservable.mjs +69 -0
  278. package/esm/domain/console/consoleObservable.mjs.map +1 -0
  279. package/esm/domain/context/contextConstants.mjs +25 -0
  280. package/esm/domain/context/contextConstants.mjs.map +1 -0
  281. package/esm/domain/context/contextManager.mjs +55 -0
  282. package/esm/domain/context/contextManager.mjs.map +1 -0
  283. package/esm/domain/context/contextUtils.mjs +15 -0
  284. package/esm/domain/context/contextUtils.mjs.map +1 -0
  285. package/esm/domain/context/defineContextMethod.mjs +19 -0
  286. package/esm/domain/context/defineContextMethod.mjs.map +1 -0
  287. package/esm/domain/context/storeContextManager.mjs +36 -0
  288. package/esm/domain/context/storeContextManager.mjs.map +1 -0
  289. package/esm/domain/contexts/accountContext.mjs +29 -0
  290. package/esm/domain/contexts/accountContext.mjs.map +1 -0
  291. package/esm/domain/contexts/globalContext.mjs +20 -0
  292. package/esm/domain/contexts/globalContext.mjs.map +1 -0
  293. package/esm/domain/contexts/tabContext.mjs +27 -0
  294. package/esm/domain/contexts/tabContext.mjs.map +1 -0
  295. package/esm/domain/contexts/telemetrySessionContext.mjs +17 -0
  296. package/esm/domain/contexts/telemetrySessionContext.mjs.map +1 -0
  297. package/esm/domain/contexts/userContext.mjs +32 -0
  298. package/esm/domain/contexts/userContext.mjs.map +1 -0
  299. package/esm/domain/deflate/deflate.types.mjs +12 -0
  300. package/esm/domain/deflate/deflate.types.mjs.map +1 -0
  301. package/esm/domain/error/error.mjs +73 -0
  302. package/esm/domain/error/error.mjs.map +1 -0
  303. package/esm/domain/error/error.types.mjs +24 -0
  304. package/esm/domain/error/error.types.mjs.map +1 -0
  305. package/esm/domain/error/trackRuntimeError.mjs +48 -0
  306. package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
  307. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +36 -0
  308. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs.map +1 -0
  309. package/esm/domain/extension/extensionUtils.mjs +23 -0
  310. package/esm/domain/extension/extensionUtils.mjs.map +1 -0
  311. package/esm/domain/intakeSites.mjs +18 -0
  312. package/esm/domain/intakeSites.mjs.map +1 -0
  313. package/esm/domain/report/reportObservable.mjs +86 -0
  314. package/esm/domain/report/reportObservable.mjs.map +1 -0
  315. package/esm/domain/resourceUtils.mjs +21 -0
  316. package/esm/domain/resourceUtils.mjs.map +1 -0
  317. package/esm/domain/sampler.mjs +37 -0
  318. package/esm/domain/sampler.mjs.map +1 -0
  319. package/esm/domain/session/sessionConstants.mjs +18 -0
  320. package/esm/domain/session/sessionConstants.mjs.map +1 -0
  321. package/esm/domain/session/sessionManager.mjs +225 -0
  322. package/esm/domain/session/sessionManager.mjs.map +1 -0
  323. package/esm/domain/session/sessionState.mjs +76 -0
  324. package/esm/domain/session/sessionState.mjs.map +1 -0
  325. package/esm/domain/session/sessionStateValidation.mjs +9 -0
  326. package/esm/domain/session/sessionStateValidation.mjs.map +1 -0
  327. package/esm/domain/session/sessionStore.mjs +46 -0
  328. package/esm/domain/session/sessionStore.mjs.map +1 -0
  329. package/esm/domain/session/storeStrategies/sessionInCookie.mjs +97 -0
  330. package/esm/domain/session/storeStrategies/sessionInCookie.mjs.map +1 -0
  331. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs +42 -0
  332. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs.map +1 -0
  333. package/esm/domain/session/storeStrategies/sessionInMemory.mjs +33 -0
  334. package/esm/domain/session/storeStrategies/sessionInMemory.mjs.map +1 -0
  335. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs +7 -0
  336. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs.map +1 -0
  337. package/esm/domain/synthetics/syntheticsWorkerValues.mjs +37 -0
  338. package/esm/domain/synthetics/syntheticsWorkerValues.mjs.map +1 -0
  339. package/esm/domain/tags.mjs +28 -0
  340. package/esm/domain/tags.mjs.map +1 -0
  341. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs +10 -0
  342. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs.map +1 -0
  343. package/esm/domain/telemetry/telemetry.mjs +219 -0
  344. package/esm/domain/telemetry/telemetry.mjs.map +1 -0
  345. package/esm/domain/trackingConsent.mjs +38 -0
  346. package/esm/domain/trackingConsent.mjs.map +1 -0
  347. package/esm/index.mjs +81 -0
  348. package/esm/tools/abstractLifeCycle.mjs +21 -0
  349. package/esm/tools/abstractLifeCycle.mjs.map +1 -0
  350. package/esm/tools/catchUserErrors.mjs +15 -0
  351. package/esm/tools/catchUserErrors.mjs.map +1 -0
  352. package/esm/tools/display.mjs +10 -0
  353. package/esm/tools/display.mjs.map +1 -0
  354. package/esm/tools/encoder.mjs +39 -0
  355. package/esm/tools/encoder.mjs.map +1 -0
  356. package/esm/tools/experimentalFeatures.mjs +35 -0
  357. package/esm/tools/experimentalFeatures.mjs.map +1 -0
  358. package/esm/tools/getZoneJsOriginalValue.mjs +26 -0
  359. package/esm/tools/getZoneJsOriginalValue.mjs.map +1 -0
  360. package/esm/tools/globalObject.mjs +7 -0
  361. package/esm/tools/globalObject.mjs.map +1 -0
  362. package/esm/tools/instrumentMethod.mjs +178 -0
  363. package/esm/tools/instrumentMethod.mjs.map +1 -0
  364. package/esm/tools/matchOption.mjs +30 -0
  365. package/esm/tools/matchOption.mjs.map +1 -0
  366. package/esm/tools/mockable.mjs +28 -0
  367. package/esm/tools/mockable.mjs.map +1 -0
  368. package/esm/tools/monitor.mjs +13 -0
  369. package/esm/tools/monitor.mjs.map +1 -0
  370. package/esm/tools/observable.mjs +77 -0
  371. package/esm/tools/observable.mjs.map +1 -0
  372. package/esm/tools/queueMicrotask.mjs +12 -0
  373. package/esm/tools/queueMicrotask.mjs.map +1 -0
  374. package/esm/tools/readBytesFromStream.mjs +21 -0
  375. package/esm/tools/readBytesFromStream.mjs.map +1 -0
  376. package/esm/tools/requestIdleCallback.mjs +28 -0
  377. package/esm/tools/requestIdleCallback.mjs.map +1 -0
  378. package/esm/tools/sendToExtension.mjs +13 -0
  379. package/esm/tools/sendToExtension.mjs.map +1 -0
  380. package/esm/tools/serialisation/jsonStringify.mjs +42 -0
  381. package/esm/tools/serialisation/jsonStringify.mjs.map +1 -0
  382. package/esm/tools/serialisation/sanitize.mjs +131 -0
  383. package/esm/tools/serialisation/sanitize.mjs.map +1 -0
  384. package/esm/tools/serialisation/stringify.mjs +17 -0
  385. package/esm/tools/serialisation/stringify.mjs.map +1 -0
  386. package/esm/tools/stackTrace/computeStackTrace.mjs +148 -0
  387. package/esm/tools/stackTrace/computeStackTrace.mjs.map +1 -0
  388. package/esm/tools/stackTrace/handlingStack.mjs +45 -0
  389. package/esm/tools/stackTrace/handlingStack.mjs.map +1 -0
  390. package/esm/tools/taskQueue.mjs +45 -0
  391. package/esm/tools/taskQueue.mjs.map +1 -0
  392. package/esm/tools/timer.mjs +20 -0
  393. package/esm/tools/timer.mjs.map +1 -0
  394. package/esm/tools/utils/arrayUtils.mjs +21 -0
  395. package/esm/tools/utils/arrayUtils.mjs.map +1 -0
  396. package/esm/tools/utils/browserDetection.mjs +31 -0
  397. package/esm/tools/utils/browserDetection.mjs.map +1 -0
  398. package/esm/tools/utils/byteUtils.mjs +23 -0
  399. package/esm/tools/utils/byteUtils.mjs.map +1 -0
  400. package/esm/tools/utils/functionUtils.mjs +35 -0
  401. package/esm/tools/utils/functionUtils.mjs.map +1 -0
  402. package/esm/tools/utils/numberUtils.mjs +22 -0
  403. package/esm/tools/utils/numberUtils.mjs.map +1 -0
  404. package/esm/tools/utils/objectUtils.mjs +31 -0
  405. package/esm/tools/utils/objectUtils.mjs.map +1 -0
  406. package/esm/tools/utils/polyfills.mjs +17 -0
  407. package/esm/tools/utils/polyfills.mjs.map +1 -0
  408. package/esm/tools/utils/responseUtils.mjs +15 -0
  409. package/esm/tools/utils/responseUtils.mjs.map +1 -0
  410. package/esm/tools/utils/stringUtils.mjs +66 -0
  411. package/esm/tools/utils/stringUtils.mjs.map +1 -0
  412. package/esm/tools/utils/timezone.mjs +12 -0
  413. package/esm/tools/utils/timezone.mjs.map +1 -0
  414. package/esm/tools/utils/urlPolyfill.mjs +51 -0
  415. package/esm/tools/utils/urlPolyfill.mjs.map +1 -0
  416. package/esm/tools/valueHistory.mjs +114 -0
  417. package/esm/tools/valueHistory.mjs.map +1 -0
  418. package/esm/transport/batch.mjs +77 -0
  419. package/esm/transport/batch.mjs.map +1 -0
  420. package/esm/transport/eventBridge.mjs +58 -0
  421. package/esm/transport/eventBridge.mjs.map +1 -0
  422. package/esm/transport/flushController.mjs +104 -0
  423. package/esm/transport/flushController.mjs.map +1 -0
  424. package/esm/transport/httpRequest.mjs +60 -0
  425. package/esm/transport/httpRequest.mjs.map +1 -0
  426. package/esm/transport/sendWithRetryStrategy.mjs +149 -0
  427. package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
  428. package/package.json +16 -5
  429. package/src/boot/init.ts +2 -2
  430. package/src/browser/addEventListener.ts +37 -5
  431. package/src/browser/browser.types.ts +127 -13
  432. package/src/browser/cookie.ts +21 -27
  433. package/src/browser/cookieAccess.ts +150 -0
  434. package/src/browser/fetch.ts +14 -0
  435. package/src/browser/fetchObservable.ts +22 -22
  436. package/src/browser/pageMayExitObservable.ts +7 -4
  437. package/src/browser/runOnReadyState.ts +3 -8
  438. package/src/browser/xhrObservable.ts +22 -12
  439. package/src/domain/allowedTrackingOrigins.ts +5 -5
  440. package/src/domain/bufferedData.ts +41 -14
  441. package/src/domain/configuration/configuration.ts +87 -72
  442. package/src/domain/configuration/endpointBuilder.ts +82 -52
  443. package/src/domain/configuration/index.ts +2 -2
  444. package/src/domain/connectivity/connectivity.ts +3 -15
  445. package/src/domain/console/consoleObservable.ts +3 -3
  446. package/src/domain/context/contextManager.ts +1 -1
  447. package/src/domain/context/contextUtils.ts +1 -1
  448. package/src/domain/context/defineContextMethod.ts +3 -3
  449. package/src/domain/context/storeContextManager.ts +9 -6
  450. package/src/domain/contexts/accountContext.ts +5 -5
  451. package/src/domain/contexts/globalContext.ts +4 -5
  452. package/src/domain/contexts/tabContext.ts +43 -0
  453. package/src/domain/contexts/telemetrySessionContext.ts +26 -0
  454. package/src/domain/contexts/userContext.ts +7 -11
  455. package/src/domain/error/error.ts +53 -23
  456. package/src/domain/error/error.types.ts +1 -1
  457. package/src/domain/error/trackRuntimeError.ts +11 -4
  458. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +1 -1
  459. package/src/domain/intakeSites.ts +8 -3
  460. package/src/domain/report/reportObservable.ts +11 -7
  461. package/src/domain/sampler.ts +64 -0
  462. package/src/domain/session/sessionConstants.ts +2 -1
  463. package/src/domain/session/sessionManager.ts +281 -176
  464. package/src/domain/session/sessionState.ts +64 -8
  465. package/src/domain/session/sessionStore.ts +57 -223
  466. package/src/domain/session/storeStrategies/sessionInCookie.ts +121 -107
  467. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +33 -21
  468. package/src/domain/session/storeStrategies/sessionInMemory.ts +55 -0
  469. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +28 -6
  470. package/src/domain/synthetics/syntheticsWorkerValues.ts +44 -13
  471. package/src/domain/tags.ts +0 -16
  472. package/src/domain/telemetry/telemetry.ts +38 -34
  473. package/src/domain/telemetry/telemetryEvent.types.ts +116 -20
  474. package/src/domain/trackingConsent.ts +18 -3
  475. package/src/index.ts +51 -31
  476. package/src/tools/display.ts +2 -50
  477. package/src/tools/experimentalFeatures.ts +1 -4
  478. package/src/tools/getZoneJsOriginalValue.ts +3 -3
  479. package/src/tools/globalObject.ts +27 -41
  480. package/src/tools/instrumentMethod.ts +230 -20
  481. package/src/tools/matchOption.ts +3 -1
  482. package/src/tools/mockable.ts +32 -0
  483. package/src/tools/monitor.ts +14 -62
  484. package/src/tools/observable.ts +9 -1
  485. package/src/tools/queueMicrotask.ts +6 -1
  486. package/src/tools/readBytesFromStream.ts +3 -12
  487. package/src/tools/requestIdleCallback.ts +1 -1
  488. package/src/tools/serialisation/sanitize.ts +67 -65
  489. package/src/tools/serialisation/stringify.ts +18 -0
  490. package/src/tools/stackTrace/computeStackTrace.ts +15 -13
  491. package/src/tools/stackTrace/handlingStack.ts +14 -1
  492. package/src/tools/taskQueue.ts +5 -3
  493. package/src/tools/timer.ts +7 -6
  494. package/src/tools/utils/arrayUtils.ts +7 -0
  495. package/src/tools/utils/browserDetection.ts +8 -0
  496. package/src/tools/utils/byteUtils.ts +1 -5
  497. package/src/tools/utils/functionUtils.ts +2 -2
  498. package/src/tools/utils/objectUtils.ts +20 -0
  499. package/src/tools/utils/stringUtils.ts +4 -1
  500. package/src/tools/utils/urlPolyfill.ts +5 -4
  501. package/src/tools/valueHistory.ts +39 -6
  502. package/src/transport/batch.ts +9 -18
  503. package/src/transport/eventBridge.ts +23 -10
  504. package/src/transport/flushController.ts +17 -24
  505. package/src/transport/httpRequest.ts +4 -36
  506. package/src/transport/index.ts +1 -0
  507. package/src/transport/sendWithRetryStrategy.ts +1 -1
  508. package/cjs/browser/browser.types.js +0 -6
  509. package/cjs/browser/browser.types.js.map +0 -1
  510. package/cjs/domain/configuration/index.js +0 -16
  511. package/cjs/domain/configuration/index.js.map +0 -1
  512. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -20
  513. package/cjs/domain/configuration/transportConfiguration.js +0 -54
  514. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  515. package/cjs/domain/connectivity/index.js +0 -18
  516. package/cjs/domain/connectivity/index.js.map +0 -1
  517. package/cjs/domain/contexts/rumInternalContext.type.js +0 -3
  518. package/cjs/domain/contexts/rumInternalContext.type.js.map +0 -1
  519. package/cjs/domain/deflate/index.js +0 -18
  520. package/cjs/domain/deflate/index.js.map +0 -1
  521. package/cjs/domain/report/browser.types.js +0 -3
  522. package/cjs/domain/report/browser.types.js.map +0 -1
  523. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  524. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  525. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  526. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -12
  527. package/cjs/domain/session/sessionStoreOperations.js +0 -119
  528. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  529. package/cjs/domain/telemetry/index.js +0 -28
  530. package/cjs/domain/telemetry/index.js.map +0 -1
  531. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  532. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  533. package/cjs/index.js.map +0 -1
  534. package/cjs/tools/abstractHooks.d.ts +0 -24
  535. package/cjs/tools/abstractHooks.js +0 -41
  536. package/cjs/tools/abstractHooks.js.map +0 -1
  537. package/cjs/tools/boundedBuffer.d.ts +0 -16
  538. package/cjs/tools/boundedBuffer.js +0 -32
  539. package/cjs/tools/boundedBuffer.js.map +0 -1
  540. package/cjs/tools/mergeInto.d.ts +0 -25
  541. package/cjs/tools/mergeInto.js +0 -98
  542. package/cjs/tools/mergeInto.js.map +0 -1
  543. package/cjs/tools/serialisation/context.js +0 -3
  544. package/cjs/tools/serialisation/context.js.map +0 -1
  545. package/cjs/tools/utils/timeUtils.d.ts +0 -53
  546. package/cjs/tools/utils/timeUtils.js +0 -101
  547. package/cjs/tools/utils/timeUtils.js.map +0 -1
  548. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  549. package/cjs/tools/utils/typeUtils.js +0 -16
  550. package/cjs/tools/utils/typeUtils.js.map +0 -1
  551. package/cjs/transport/index.js +0 -15
  552. package/cjs/transport/index.js.map +0 -1
  553. package/esm/boot/displayAlreadyInitializedError.d.ts +0 -2
  554. package/esm/boot/displayAlreadyInitializedError.js +0 -7
  555. package/esm/boot/displayAlreadyInitializedError.js.map +0 -1
  556. package/esm/boot/init.d.ts +0 -14
  557. package/esm/boot/init.js +0 -35
  558. package/esm/boot/init.js.map +0 -1
  559. package/esm/browser/addEventListener.d.ts +0 -87
  560. package/esm/browser/addEventListener.js +0 -51
  561. package/esm/browser/addEventListener.js.map +0 -1
  562. package/esm/browser/browser.types.d.ts +0 -51
  563. package/esm/browser/browser.types.js +0 -5
  564. package/esm/browser/browser.types.js.map +0 -1
  565. package/esm/browser/cookie.d.ts +0 -28
  566. package/esm/browser/cookie.js +0 -103
  567. package/esm/browser/cookie.js.map +0 -1
  568. package/esm/browser/fetchObservable.d.ts +0 -38
  569. package/esm/browser/fetchObservable.js +0 -99
  570. package/esm/browser/fetchObservable.js.map +0 -1
  571. package/esm/browser/pageMayExitObservable.d.ts +0 -14
  572. package/esm/browser/pageMayExitObservable.js +0 -40
  573. package/esm/browser/pageMayExitObservable.js.map +0 -1
  574. package/esm/browser/runOnReadyState.d.ts +0 -5
  575. package/esm/browser/runOnReadyState.js +0 -16
  576. package/esm/browser/runOnReadyState.js.map +0 -1
  577. package/esm/browser/xhrObservable.d.ts +0 -24
  578. package/esm/browser/xhrObservable.js +0 -83
  579. package/esm/browser/xhrObservable.js.map +0 -1
  580. package/esm/domain/allowedTrackingOrigins.d.ts +0 -4
  581. package/esm/domain/allowedTrackingOrigins.js +0 -21
  582. package/esm/domain/allowedTrackingOrigins.js.map +0 -1
  583. package/esm/domain/bufferedData.d.ts +0 -14
  584. package/esm/domain/bufferedData.js +0 -19
  585. package/esm/domain/bufferedData.js.map +0 -1
  586. package/esm/domain/configuration/configuration.d.ts +0 -312
  587. package/esm/domain/configuration/configuration.js +0 -132
  588. package/esm/domain/configuration/configuration.js.map +0 -1
  589. package/esm/domain/configuration/endpointBuilder.d.ts +0 -12
  590. package/esm/domain/configuration/endpointBuilder.js +0 -77
  591. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  592. package/esm/domain/configuration/index.d.ts +0 -5
  593. package/esm/domain/configuration/index.js +0 -4
  594. package/esm/domain/configuration/index.js.map +0 -1
  595. package/esm/domain/configuration/transportConfiguration.d.ts +0 -20
  596. package/esm/domain/configuration/transportConfiguration.js +0 -50
  597. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  598. package/esm/domain/connectivity/connectivity.d.ts +0 -14
  599. package/esm/domain/connectivity/connectivity.js +0 -11
  600. package/esm/domain/connectivity/connectivity.js.map +0 -1
  601. package/esm/domain/connectivity/index.d.ts +0 -1
  602. package/esm/domain/connectivity/index.js +0 -2
  603. package/esm/domain/connectivity/index.js.map +0 -1
  604. package/esm/domain/console/consoleObservable.d.ts +0 -21
  605. package/esm/domain/console/consoleObservable.js +0 -80
  606. package/esm/domain/console/consoleObservable.js.map +0 -1
  607. package/esm/domain/context/contextConstants.d.ts +0 -21
  608. package/esm/domain/context/contextConstants.js +0 -15
  609. package/esm/domain/context/contextConstants.js.map +0 -1
  610. package/esm/domain/context/contextManager.d.ts +0 -19
  611. package/esm/domain/context/contextManager.js +0 -57
  612. package/esm/domain/context/contextManager.js.map +0 -1
  613. package/esm/domain/context/contextUtils.d.ts +0 -5
  614. package/esm/domain/context/contextUtils.js +0 -13
  615. package/esm/domain/context/contextUtils.js.map +0 -1
  616. package/esm/domain/context/defineContextMethod.d.ts +0 -6
  617. package/esm/domain/context/defineContextMethod.js +0 -17
  618. package/esm/domain/context/defineContextMethod.js.map +0 -1
  619. package/esm/domain/context/storeContextManager.d.ts +0 -6
  620. package/esm/domain/context/storeContextManager.js +0 -35
  621. package/esm/domain/context/storeContextManager.js.map +0 -1
  622. package/esm/domain/contexts/accountContext.d.ts +0 -26
  623. package/esm/domain/contexts/accountContext.js +0 -29
  624. package/esm/domain/contexts/accountContext.js.map +0 -1
  625. package/esm/domain/contexts/globalContext.d.ts +0 -18
  626. package/esm/domain/contexts/globalContext.js +0 -17
  627. package/esm/domain/contexts/globalContext.js.map +0 -1
  628. package/esm/domain/contexts/rumInternalContext.type.d.ts +0 -14
  629. package/esm/domain/contexts/rumInternalContext.type.js +0 -2
  630. package/esm/domain/contexts/rumInternalContext.type.js.map +0 -1
  631. package/esm/domain/contexts/userContext.d.ts +0 -29
  632. package/esm/domain/contexts/userContext.js +0 -41
  633. package/esm/domain/contexts/userContext.js.map +0 -1
  634. package/esm/domain/deflate/deflate.types.d.ts +0 -40
  635. package/esm/domain/deflate/deflate.types.js +0 -2
  636. package/esm/domain/deflate/deflate.types.js.map +0 -1
  637. package/esm/domain/deflate/index.d.ts +0 -1
  638. package/esm/domain/deflate/index.js +0 -2
  639. package/esm/domain/deflate/index.js.map +0 -1
  640. package/esm/domain/error/error.d.ts +0 -23
  641. package/esm/domain/error/error.js +0 -65
  642. package/esm/domain/error/error.js.map +0 -1
  643. package/esm/domain/error/error.types.d.ts +0 -47
  644. package/esm/domain/error/error.types.js +0 -10
  645. package/esm/domain/error/error.types.js.map +0 -1
  646. package/esm/domain/error/trackRuntimeError.d.ts +0 -11
  647. package/esm/domain/error/trackRuntimeError.js +0 -43
  648. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  649. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  650. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -38
  651. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  652. package/esm/domain/extension/extensionUtils.d.ts +0 -10
  653. package/esm/domain/extension/extensionUtils.js +0 -25
  654. package/esm/domain/extension/extensionUtils.js.map +0 -1
  655. package/esm/domain/intakeSites.d.ts +0 -8
  656. package/esm/domain/intakeSites.js +0 -8
  657. package/esm/domain/intakeSites.js.map +0 -1
  658. package/esm/domain/report/browser.types.d.ts +0 -34
  659. package/esm/domain/report/browser.types.js +0 -2
  660. package/esm/domain/report/browser.types.js.map +0 -1
  661. package/esm/domain/report/reportObservable.d.ts +0 -14
  662. package/esm/domain/report/reportObservable.js +0 -95
  663. package/esm/domain/report/reportObservable.js.map +0 -1
  664. package/esm/domain/resourceUtils.d.ts +0 -18
  665. package/esm/domain/resourceUtils.js +0 -17
  666. package/esm/domain/resourceUtils.js.map +0 -1
  667. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  668. package/esm/domain/session/oldCookiesMigration.js +0 -36
  669. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  670. package/esm/domain/session/sessionConstants.d.ts +0 -15
  671. package/esm/domain/session/sessionConstants.js +0 -13
  672. package/esm/domain/session/sessionConstants.js.map +0 -1
  673. package/esm/domain/session/sessionManager.d.ts +0 -28
  674. package/esm/domain/session/sessionManager.js +0 -196
  675. package/esm/domain/session/sessionManager.js.map +0 -1
  676. package/esm/domain/session/sessionState.d.ts +0 -16
  677. package/esm/domain/session/sessionState.js +0 -60
  678. package/esm/domain/session/sessionState.js.map +0 -1
  679. package/esm/domain/session/sessionStateValidation.d.ts +0 -3
  680. package/esm/domain/session/sessionStateValidation.js +0 -7
  681. package/esm/domain/session/sessionStateValidation.js.map +0 -1
  682. package/esm/domain/session/sessionStore.d.ts +0 -38
  683. package/esm/domain/session/sessionStore.js +0 -179
  684. package/esm/domain/session/sessionStore.js.map +0 -1
  685. package/esm/domain/session/sessionStoreOperations.d.ts +0 -12
  686. package/esm/domain/session/sessionStoreOperations.js +0 -114
  687. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  688. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -12
  689. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -98
  690. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  691. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -6
  692. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -37
  693. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  694. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -16
  695. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  696. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  697. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -12
  698. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -24
  699. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  700. package/esm/domain/tags.d.ts +0 -6
  701. package/esm/domain/tags.js +0 -60
  702. package/esm/domain/tags.js.map +0 -1
  703. package/esm/domain/telemetry/index.d.ts +0 -4
  704. package/esm/domain/telemetry/index.js +0 -3
  705. package/esm/domain/telemetry/index.js.map +0 -1
  706. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -18
  707. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -6
  708. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  709. package/esm/domain/telemetry/telemetry.d.ts +0 -56
  710. package/esm/domain/telemetry/telemetry.js +0 -228
  711. package/esm/domain/telemetry/telemetry.js.map +0 -1
  712. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -866
  713. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  714. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  715. package/esm/domain/trackingConsent.d.ts +0 -13
  716. package/esm/domain/trackingConsent.js +0 -24
  717. package/esm/domain/trackingConsent.js.map +0 -1
  718. package/esm/index.d.ts +0 -100
  719. package/esm/index.js +0 -76
  720. package/esm/index.js.map +0 -1
  721. package/esm/tools/abstractHooks.d.ts +0 -24
  722. package/esm/tools/abstractHooks.js +0 -37
  723. package/esm/tools/abstractHooks.js.map +0 -1
  724. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  725. package/esm/tools/abstractLifeCycle.js +0 -24
  726. package/esm/tools/abstractLifeCycle.js.map +0 -1
  727. package/esm/tools/boundedBuffer.d.ts +0 -16
  728. package/esm/tools/boundedBuffer.js +0 -29
  729. package/esm/tools/boundedBuffer.js.map +0 -1
  730. package/esm/tools/catchUserErrors.d.ts +0 -1
  731. package/esm/tools/catchUserErrors.js +0 -12
  732. package/esm/tools/catchUserErrors.js.map +0 -1
  733. package/esm/tools/display.d.ts +0 -38
  734. package/esm/tools/display.js +0 -41
  735. package/esm/tools/display.js.map +0 -1
  736. package/esm/tools/encoder.d.ts +0 -54
  737. package/esm/tools/encoder.js +0 -37
  738. package/esm/tools/encoder.js.map +0 -1
  739. package/esm/tools/experimentalFeatures.d.ts +0 -21
  740. package/esm/tools/experimentalFeatures.js +0 -42
  741. package/esm/tools/experimentalFeatures.js.map +0 -1
  742. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  743. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  744. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  745. package/esm/tools/globalObject.d.ts +0 -19
  746. package/esm/tools/globalObject.js +0 -40
  747. package/esm/tools/globalObject.js.map +0 -1
  748. package/esm/tools/instrumentMethod.d.ts +0 -75
  749. package/esm/tools/instrumentMethod.js +0 -114
  750. package/esm/tools/instrumentMethod.js.map +0 -1
  751. package/esm/tools/matchOption.d.ts +0 -8
  752. package/esm/tools/matchOption.js +0 -31
  753. package/esm/tools/matchOption.js.map +0 -1
  754. package/esm/tools/mergeInto.d.ts +0 -25
  755. package/esm/tools/mergeInto.js +0 -93
  756. package/esm/tools/mergeInto.js.map +0 -1
  757. package/esm/tools/monitor.d.ts +0 -9
  758. package/esm/tools/monitor.js +0 -52
  759. package/esm/tools/monitor.js.map +0 -1
  760. package/esm/tools/observable.d.ts +0 -30
  761. package/esm/tools/observable.js +0 -83
  762. package/esm/tools/observable.js.map +0 -1
  763. package/esm/tools/queueMicrotask.d.ts +0 -1
  764. package/esm/tools/queueMicrotask.js +0 -14
  765. package/esm/tools/queueMicrotask.js.map +0 -1
  766. package/esm/tools/readBytesFromStream.d.ts +0 -10
  767. package/esm/tools/readBytesFromStream.js +0 -25
  768. package/esm/tools/readBytesFromStream.js.map +0 -1
  769. package/esm/tools/requestIdleCallback.d.ts +0 -12
  770. package/esm/tools/requestIdleCallback.js +0 -30
  771. package/esm/tools/requestIdleCallback.js.map +0 -1
  772. package/esm/tools/sendToExtension.d.ts +0 -3
  773. package/esm/tools/sendToExtension.js +0 -8
  774. package/esm/tools/sendToExtension.js.map +0 -1
  775. package/esm/tools/serialisation/context.d.ts +0 -9
  776. package/esm/tools/serialisation/context.js +0 -2
  777. package/esm/tools/serialisation/context.js.map +0 -1
  778. package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
  779. package/esm/tools/serialisation/jsonStringify.js +0 -44
  780. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  781. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  782. package/esm/tools/serialisation/sanitize.js +0 -185
  783. package/esm/tools/serialisation/sanitize.js.map +0 -1
  784. package/esm/tools/stackTrace/computeStackTrace.d.ts +0 -25
  785. package/esm/tools/stackTrace/computeStackTrace.js +0 -183
  786. package/esm/tools/stackTrace/computeStackTrace.js.map +0 -1
  787. package/esm/tools/stackTrace/handlingStack.d.ts +0 -10
  788. package/esm/tools/stackTrace/handlingStack.js +0 -41
  789. package/esm/tools/stackTrace/handlingStack.js.map +0 -1
  790. package/esm/tools/taskQueue.d.ts +0 -15
  791. package/esm/tools/taskQueue.js +0 -50
  792. package/esm/tools/taskQueue.js.map +0 -1
  793. package/esm/tools/timer.d.ts +0 -5
  794. package/esm/tools/timer.js +0 -16
  795. package/esm/tools/timer.js.map +0 -1
  796. package/esm/tools/utils/arrayUtils.d.ts +0 -3
  797. package/esm/tools/utils/arrayUtils.js +0 -15
  798. package/esm/tools/utils/arrayUtils.js.map +0 -1
  799. package/esm/tools/utils/browserDetection.d.ts +0 -8
  800. package/esm/tools/utils/browserDetection.js +0 -28
  801. package/esm/tools/utils/browserDetection.js.map +0 -1
  802. package/esm/tools/utils/byteUtils.d.ts +0 -8
  803. package/esm/tools/utils/byteUtils.js +0 -29
  804. package/esm/tools/utils/byteUtils.js.map +0 -1
  805. package/esm/tools/utils/functionUtils.d.ts +0 -8
  806. package/esm/tools/utils/functionUtils.js +0 -39
  807. package/esm/tools/utils/functionUtils.js.map +0 -1
  808. package/esm/tools/utils/numberUtils.d.ts +0 -9
  809. package/esm/tools/utils/numberUtils.js +0 -18
  810. package/esm/tools/utils/numberUtils.js.map +0 -1
  811. package/esm/tools/utils/objectUtils.d.ts +0 -10
  812. package/esm/tools/utils/objectUtils.js +0 -17
  813. package/esm/tools/utils/objectUtils.js.map +0 -1
  814. package/esm/tools/utils/polyfills.d.ts +0 -7
  815. package/esm/tools/utils/polyfills.js +0 -18
  816. package/esm/tools/utils/polyfills.js.map +0 -1
  817. package/esm/tools/utils/responseUtils.d.ts +0 -2
  818. package/esm/tools/utils/responseUtils.js +0 -13
  819. package/esm/tools/utils/responseUtils.js.map +0 -1
  820. package/esm/tools/utils/stringUtils.d.ts +0 -23
  821. package/esm/tools/utils/stringUtils.js +0 -84
  822. package/esm/tools/utils/stringUtils.js.map +0 -1
  823. package/esm/tools/utils/timeUtils.d.ts +0 -53
  824. package/esm/tools/utils/timeUtils.js +0 -84
  825. package/esm/tools/utils/timeUtils.js.map +0 -1
  826. package/esm/tools/utils/timezone.d.ts +0 -1
  827. package/esm/tools/utils/timezone.js +0 -10
  828. package/esm/tools/utils/timezone.js.map +0 -1
  829. package/esm/tools/utils/typeUtils.d.ts +0 -4
  830. package/esm/tools/utils/typeUtils.js +0 -13
  831. package/esm/tools/utils/typeUtils.js.map +0 -1
  832. package/esm/tools/utils/urlPolyfill.d.ts +0 -5
  833. package/esm/tools/utils/urlPolyfill.js +0 -52
  834. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  835. package/esm/tools/valueHistory.d.ts +0 -27
  836. package/esm/tools/valueHistory.js +0 -100
  837. package/esm/tools/valueHistory.js.map +0 -1
  838. package/esm/transport/batch.d.ts +0 -16
  839. package/esm/transport/batch.js +0 -106
  840. package/esm/transport/batch.js.map +0 -1
  841. package/esm/transport/eventBridge.d.ts +0 -21
  842. package/esm/transport/eventBridge.js +0 -41
  843. package/esm/transport/eventBridge.js.map +0 -1
  844. package/esm/transport/flushController.d.ts +0 -65
  845. package/esm/transport/flushController.js +0 -119
  846. package/esm/transport/flushController.js.map +0 -1
  847. package/esm/transport/httpRequest.d.ts +0 -56
  848. package/esm/transport/httpRequest.js +0 -89
  849. package/esm/transport/httpRequest.js.map +0 -1
  850. package/esm/transport/index.d.ts +0 -7
  851. package/esm/transport/index.js +0 -5
  852. package/esm/transport/index.js.map +0 -1
  853. package/esm/transport/sendWithRetryStrategy.d.ts +0 -41
  854. package/esm/transport/sendWithRetryStrategy.js +0 -158
  855. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  856. package/src/domain/configuration/transportConfiguration.ts +0 -78
  857. package/src/domain/session/oldCookiesMigration.ts +0 -42
  858. package/src/domain/session/sessionStoreOperations.ts +0 -131
  859. package/src/tools/abstractHooks.ts +0 -72
  860. package/src/tools/boundedBuffer.ts +0 -45
  861. package/src/tools/mergeInto.ts +0 -177
  862. package/src/tools/utils/timeUtils.ts +0 -117
  863. package/src/tools/utils/typeUtils.ts +0 -12
@@ -1,78 +0,0 @@
1
- import type { Site } from '../intakeSites'
2
- import { INTAKE_SITE_US1, INTAKE_URL_PARAMETERS } from '../intakeSites'
3
- import type { InitConfiguration } from './configuration'
4
- import type { EndpointBuilder } from './endpointBuilder'
5
- import { createEndpointBuilder } from './endpointBuilder'
6
-
7
- export interface TransportConfiguration {
8
- logsEndpointBuilder: EndpointBuilder
9
- rumEndpointBuilder: EndpointBuilder
10
- sessionReplayEndpointBuilder: EndpointBuilder
11
- profilingEndpointBuilder: EndpointBuilder
12
- exposuresEndpointBuilder: EndpointBuilder
13
- datacenter?: string | undefined
14
- replica?: ReplicaConfiguration
15
- site: Site
16
- source: 'browser' | 'flutter' | 'unity'
17
- }
18
-
19
- export interface ReplicaConfiguration {
20
- logsEndpointBuilder: EndpointBuilder
21
- rumEndpointBuilder: EndpointBuilder
22
- }
23
-
24
- export function computeTransportConfiguration(initConfiguration: InitConfiguration): TransportConfiguration {
25
- const site = initConfiguration.site || INTAKE_SITE_US1
26
- const source = validateSource(initConfiguration.source)
27
-
28
- const endpointBuilders = computeEndpointBuilders({ ...initConfiguration, site, source })
29
- const replicaConfiguration = computeReplicaConfiguration({ ...initConfiguration, site, source })
30
-
31
- return {
32
- replica: replicaConfiguration,
33
- site,
34
- source,
35
- ...endpointBuilders,
36
- }
37
- }
38
-
39
- function validateSource(source: string | undefined) {
40
- if (source === 'flutter' || source === 'unity') {
41
- return source
42
- }
43
- return 'browser'
44
- }
45
-
46
- function computeEndpointBuilders(initConfiguration: InitConfiguration) {
47
- return {
48
- logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs'),
49
- rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum'),
50
- profilingEndpointBuilder: createEndpointBuilder(initConfiguration, 'profile'),
51
- sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay'),
52
- exposuresEndpointBuilder: createEndpointBuilder(initConfiguration, 'exposures'),
53
- }
54
- }
55
-
56
- function computeReplicaConfiguration(initConfiguration: InitConfiguration): ReplicaConfiguration | undefined {
57
- if (!initConfiguration.replica) {
58
- return
59
- }
60
-
61
- const replicaConfiguration: InitConfiguration = {
62
- ...initConfiguration,
63
- site: INTAKE_SITE_US1,
64
- clientToken: initConfiguration.replica.clientToken,
65
- }
66
-
67
- return {
68
- logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs'),
69
- rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', [
70
- `application.id=${initConfiguration.replica.applicationId}`,
71
- ]),
72
- }
73
- }
74
-
75
- export function isIntakeUrl(url: string): boolean {
76
- // check if tags is present in the query string
77
- return INTAKE_URL_PARAMETERS.every((param) => url.includes(param))
78
- }
@@ -1,42 +0,0 @@
1
- import { getInitCookie } from '../../browser/cookie'
2
- import type { SessionStoreStrategy } from './storeStrategies/sessionStoreStrategy'
3
- import { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy'
4
- import type { SessionState } from './sessionState'
5
- import { expandSessionState, isSessionStarted } from './sessionState'
6
-
7
- export const OLD_SESSION_COOKIE_NAME = '_oo'
8
- export const OLD_RUM_COOKIE_NAME = '_oo_r'
9
- export const OLD_LOGS_COOKIE_NAME = '_oo_l'
10
-
11
- // duplicate values to avoid dependency issues
12
- export const RUM_SESSION_KEY = 'rum'
13
- export const LOGS_SESSION_KEY = 'logs'
14
-
15
- /**
16
- * This migration should remain in the codebase as long as older versions are available/live
17
- * to allow older sdk versions to be upgraded to newer versions without compatibility issues.
18
- */
19
- export function tryOldCookiesMigration(cookieStoreStrategy: SessionStoreStrategy) {
20
- const sessionString = getInitCookie(SESSION_STORE_KEY)
21
- if (!sessionString) {
22
- const oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME)
23
- const oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME)
24
- const oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME)
25
- const session: SessionState = {}
26
-
27
- if (oldSessionId) {
28
- session.id = oldSessionId
29
- }
30
- if (oldLogsType && /^[01]$/.test(oldLogsType)) {
31
- session[LOGS_SESSION_KEY] = oldLogsType
32
- }
33
- if (oldRumType && /^[012]$/.test(oldRumType)) {
34
- session[RUM_SESSION_KEY] = oldRumType
35
- }
36
-
37
- if (isSessionStarted(session)) {
38
- expandSessionState(session)
39
- cookieStoreStrategy.persistSession(session)
40
- }
41
- }
42
- }
@@ -1,131 +0,0 @@
1
- import { setTimeout } from '../../tools/timer'
2
- import { generateUUID } from '../../tools/utils/stringUtils'
3
- import type { TimeStamp } from '../../tools/utils/timeUtils'
4
- import { elapsed, ONE_SECOND, timeStampNow } from '../../tools/utils/timeUtils'
5
- import type { SessionStoreStrategy } from './storeStrategies/sessionStoreStrategy'
6
- import type { SessionState } from './sessionState'
7
- import { expandSessionState, isSessionInExpiredState } from './sessionState'
8
-
9
- interface Operations {
10
- process: (sessionState: SessionState) => SessionState | undefined
11
- after?: (sessionState: SessionState) => void
12
- }
13
-
14
- export const LOCK_RETRY_DELAY = 10
15
- export const LOCK_MAX_TRIES = 100
16
-
17
- // Locks should be hold for a few milliseconds top, just the time it takes to read and write a
18
- // cookie. Using one second should be enough in most situations.
19
- export const LOCK_EXPIRATION_DELAY = ONE_SECOND
20
- const LOCK_SEPARATOR = '--'
21
-
22
- const bufferedOperations: Operations[] = []
23
- let ongoingOperations: Operations | undefined
24
-
25
- export function processSessionStoreOperations(
26
- operations: Operations,
27
- sessionStoreStrategy: SessionStoreStrategy,
28
- numberOfRetries = 0
29
- ) {
30
- const { isLockEnabled, persistSession, expireSession } = sessionStoreStrategy
31
- const persistWithLock = (session: SessionState) => persistSession({ ...session, lock: currentLock })
32
- const retrieveStore = () => {
33
- const { lock, ...session } = sessionStoreStrategy.retrieveSession()
34
- return {
35
- session,
36
- lock: lock && !isLockExpired(lock) ? lock : undefined,
37
- }
38
- }
39
-
40
- if (!ongoingOperations) {
41
- ongoingOperations = operations
42
- }
43
- if (operations !== ongoingOperations) {
44
- bufferedOperations.push(operations)
45
- return
46
- }
47
- if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {
48
- next(sessionStoreStrategy)
49
- return
50
- }
51
- let currentLock: string
52
- let currentStore = retrieveStore()
53
- if (isLockEnabled) {
54
- // if someone has lock, retry later
55
- if (currentStore.lock) {
56
- retryLater(operations, sessionStoreStrategy, numberOfRetries)
57
- return
58
- }
59
- // acquire lock
60
- currentLock = createLock()
61
- persistWithLock(currentStore.session)
62
- // if lock is not acquired, retry later
63
- currentStore = retrieveStore()
64
- if (currentStore.lock !== currentLock) {
65
- retryLater(operations, sessionStoreStrategy, numberOfRetries)
66
- return
67
- }
68
- }
69
- let processedSession = operations.process(currentStore.session)
70
- if (isLockEnabled) {
71
- // if lock corrupted after process, retry later
72
- currentStore = retrieveStore()
73
- if (currentStore.lock !== currentLock!) {
74
- retryLater(operations, sessionStoreStrategy, numberOfRetries)
75
- return
76
- }
77
- }
78
- if (processedSession) {
79
- if (isSessionInExpiredState(processedSession)) {
80
- expireSession(processedSession)
81
- } else {
82
- expandSessionState(processedSession)
83
- if (isLockEnabled) {
84
- persistWithLock(processedSession)
85
- } else {
86
- persistSession(processedSession)
87
- }
88
- }
89
- }
90
- if (isLockEnabled) {
91
- // correctly handle lock around expiration would require to handle this case properly at several levels
92
- // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it
93
- if (!(processedSession && isSessionInExpiredState(processedSession))) {
94
- // if lock corrupted after persist, retry later
95
- currentStore = retrieveStore()
96
- if (currentStore.lock !== currentLock!) {
97
- retryLater(operations, sessionStoreStrategy, numberOfRetries)
98
- return
99
- }
100
- persistSession(currentStore.session)
101
- processedSession = currentStore.session
102
- }
103
- }
104
- // call after even if session is not persisted in order to perform operations on
105
- // up-to-date session state value => the value could have been modified by another tab
106
- operations.after?.(processedSession || currentStore.session)
107
- next(sessionStoreStrategy)
108
- }
109
-
110
- function retryLater(operations: Operations, sessionStore: SessionStoreStrategy, currentNumberOfRetries: number) {
111
- setTimeout(() => {
112
- processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1)
113
- }, LOCK_RETRY_DELAY)
114
- }
115
-
116
- function next(sessionStore: SessionStoreStrategy) {
117
- ongoingOperations = undefined
118
- const nextOperations = bufferedOperations.shift()
119
- if (nextOperations) {
120
- processSessionStoreOperations(nextOperations, sessionStore)
121
- }
122
- }
123
-
124
- export function createLock(): string {
125
- return generateUUID() + LOCK_SEPARATOR + timeStampNow()
126
- }
127
-
128
- function isLockExpired(lock: string) {
129
- const [, timeStamp] = lock.split(LOCK_SEPARATOR)
130
- return !timeStamp || elapsed(Number(timeStamp) as TimeStamp, timeStampNow()) > LOCK_EXPIRATION_DELAY
131
- }
@@ -1,72 +0,0 @@
1
- import { combine } from './mergeInto'
2
-
3
- export const enum HookNames {
4
- Assemble,
5
- AssembleTelemetry,
6
- }
7
-
8
- // This is a workaround for an issue occurring when the Browser SDK is included in a TypeScript
9
- // project configured with `isolatedModules: true`. Even if the const enum is declared in this
10
- // module, we cannot use it directly to define the EventMap interface keys (TS error: "Cannot access
11
- // ambient const enums when the '--isolatedModules' flag is provided.").
12
- export declare const HookNamesAsConst: {
13
- ASSEMBLE: HookNames.Assemble
14
- ASSEMBLE_TELEMETRY: HookNames.AssembleTelemetry
15
- }
16
-
17
- export type RecursivePartial<T> = {
18
- [P in keyof T]?: T[P] extends Array<infer U>
19
- ? Array<RecursivePartial<U>>
20
- : T[P] extends object | undefined
21
- ? RecursivePartial<T[P]>
22
- : T[P]
23
- }
24
-
25
- // Discards the event from being sent
26
- export const DISCARDED = 'DISCARDED'
27
- // Skips from the assembly of the event
28
- export const SKIPPED = 'SKIPPED'
29
-
30
- export type DISCARDED = typeof DISCARDED
31
- export type SKIPPED = typeof SKIPPED
32
-
33
- export type AbstractHooks = ReturnType<typeof abstractHooks>
34
-
35
- export function abstractHooks<T extends { [K in HookNames]: (...args: any[]) => unknown }>() {
36
- const callbacks: { [K in HookNames]?: Array<T[K]> } = {}
37
-
38
- return {
39
- register<K extends HookNames>(hookName: K, callback: T[K]) {
40
- if (!callbacks[hookName]) {
41
- callbacks[hookName] = []
42
- }
43
- callbacks[hookName]!.push(callback)
44
- return {
45
- unregister: () => {
46
- callbacks[hookName] = callbacks[hookName]!.filter((cb) => cb !== callback)
47
- },
48
- }
49
- },
50
- triggerHook<K extends HookNames>(
51
- hookName: K,
52
- param: Parameters<T[K]>[0]
53
- ): Exclude<ReturnType<T[K]>, SKIPPED> | DISCARDED | undefined {
54
- const hookCallbacks = callbacks[hookName] || []
55
- const results: any[] = []
56
-
57
- for (const callback of hookCallbacks) {
58
- const result = callback(param)
59
- if (result === DISCARDED) {
60
- return DISCARDED
61
- }
62
- if (result === SKIPPED) {
63
- continue
64
- }
65
-
66
- results.push(result)
67
- }
68
-
69
- return combine(...(results as [any, any])) as Exclude<ReturnType<T[K]>, SKIPPED>
70
- },
71
- }
72
- }
@@ -1,45 +0,0 @@
1
- import { removeItem } from './utils/arrayUtils'
2
-
3
- const BUFFER_LIMIT = 500
4
-
5
- /**
6
- * BoundedBuffer is a deprecated interface.
7
- *
8
- * @deprecated Use `BufferedObservable` instead.
9
- */
10
- export interface BoundedBuffer<T = void> {
11
- add: (callback: (arg: T) => void) => void
12
- remove: (callback: (arg: T) => void) => void
13
- drain: (arg: T) => void
14
- }
15
-
16
- /**
17
- * createBoundedBuffer creates a BoundedBuffer.
18
- *
19
- * @deprecated Use `BufferedObservable` instead.
20
- */
21
- export function createBoundedBuffer<T = void>(): BoundedBuffer<T> {
22
- const buffer: Array<(arg: T) => void> = []
23
-
24
- const add: BoundedBuffer<T>['add'] = (callback: (arg: T) => void) => {
25
- const length = buffer.push(callback)
26
- if (length > BUFFER_LIMIT) {
27
- buffer.splice(0, 1)
28
- }
29
- }
30
-
31
- const remove: BoundedBuffer<T>['remove'] = (callback: (arg: T) => void) => {
32
- removeItem(buffer, callback)
33
- }
34
-
35
- const drain = (arg: T) => {
36
- buffer.forEach((callback) => callback(arg))
37
- buffer.length = 0
38
- }
39
-
40
- return {
41
- add,
42
- remove,
43
- drain,
44
- }
45
- }
@@ -1,177 +0,0 @@
1
- import { getType } from './utils/typeUtils'
2
-
3
- type Merged<TDestination, TSource> =
4
- // case 1 - source is undefined - return destination
5
- TSource extends undefined
6
- ? TDestination
7
- : // case 2 - destination is undefined - return source
8
- TDestination extends undefined
9
- ? TSource
10
- : // case 3 - source is an array - see if it merges or overwrites
11
- TSource extends any[]
12
- ? TDestination extends any[]
13
- ? TDestination & TSource
14
- : TSource
15
- : // case 4 - source is an object - see if it merges or overwrites
16
- TSource extends object
17
- ? TDestination extends object
18
- ? TDestination extends any[]
19
- ? TSource
20
- : TDestination & TSource
21
- : TSource
22
- : // case 5 - cannot merge - return source
23
- TSource
24
-
25
- /**
26
- * Iterate over source and affect its sub values into destination, recursively.
27
- * If the source and destination can't be merged, return source.
28
- */
29
- export function mergeInto<D, S>(
30
- destination: D,
31
- source: S,
32
- circularReferenceChecker = createCircularReferenceChecker()
33
- ): Merged<D, S> {
34
- // ignore the source if it is undefined
35
- if (source === undefined) {
36
- return destination as Merged<D, S>
37
- }
38
-
39
- if (typeof source !== 'object' || source === null) {
40
- // primitive values - just return source
41
- return source as Merged<D, S>
42
- } else if (source instanceof Date) {
43
- return new Date(source.getTime()) as unknown as Merged<D, S>
44
- } else if (source instanceof RegExp) {
45
- const flags =
46
- source.flags ||
47
- // old browsers compatibility
48
- [
49
- source.global ? 'g' : '',
50
- source.ignoreCase ? 'i' : '',
51
- source.multiline ? 'm' : '',
52
- source.sticky ? 'y' : '',
53
- source.unicode ? 'u' : '',
54
- ].join('')
55
- return new RegExp(source.source, flags) as unknown as Merged<D, S>
56
- }
57
-
58
- if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {
59
- // remove circular references
60
- return undefined as unknown as Merged<D, S>
61
- } else if (Array.isArray(source)) {
62
- const merged: any[] = Array.isArray(destination) ? destination : []
63
- for (let i = 0; i < source.length; ++i) {
64
- merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker)
65
- }
66
- return merged as unknown as Merged<D, S>
67
- }
68
-
69
- const merged = getType(destination) === 'object' ? (destination as Record<any, any>) : {}
70
- for (const key in source) {
71
- if (Object.prototype.hasOwnProperty.call(source, key)) {
72
- merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker)
73
- }
74
- }
75
- return merged as unknown as Merged<D, S>
76
- }
77
-
78
- /**
79
- * A simplistic implementation of a deep clone algorithm.
80
- * Caveats:
81
- * - It doesn't maintain prototype chains - don't use with instances of custom classes.
82
- * - It doesn't handle Map and Set
83
- */
84
- export function deepClone<T>(value: T): T {
85
- return mergeInto(undefined, value) as T
86
- }
87
-
88
- type Combined<A, B> = A extends null ? B : B extends null ? A : Merged<A, B>
89
-
90
- /*
91
- * Performs a deep merge of objects and arrays.
92
- * - Arguments won't be mutated
93
- * - Object and arrays in the output value are de-referenced ("deep cloned")
94
- * - Arrays values are merged index by index
95
- * - Objects are merged by keys
96
- * - Values get replaced, unless undefined
97
- */
98
- export function combine<A, B>(a: A, b: B): Combined<A, B>
99
- export function combine<A, B, C>(a: A, b: B, c: C): Combined<Combined<A, B>, C>
100
- export function combine<A, B, C, D>(a: A, b: B, c: C, d: D): Combined<Combined<Combined<A, B>, C>, D>
101
- export function combine<A, B, C, D, E>(
102
- a: A,
103
- b: B,
104
- c: C,
105
- d: D,
106
- e: E
107
- ): Combined<Combined<Combined<Combined<A, B>, C>, D>, E>
108
- export function combine<A, B, C, D, E, F>(
109
- a: A,
110
- b: B,
111
- c: C,
112
- d: D,
113
- e: E,
114
- f: F
115
- ): Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>
116
- export function combine<A, B, C, D, E, F, G>(
117
- a: A,
118
- b: B,
119
- c: C,
120
- d: D,
121
- e: E,
122
- f: F,
123
- g: G
124
- ): Combined<Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>, G>
125
- export function combine<A, B, C, D, E, F, G, H>(
126
- a: A,
127
- b: B,
128
- c: C,
129
- d: D,
130
- e: E,
131
- f: F,
132
- g: G,
133
- h: H
134
- ): Combined<Combined<Combined<Combined<Combined<Combined<Combined<A, B>, C>, D>, E>, F>, G>, H>
135
- export function combine(...sources: any[]): unknown {
136
- let destination: any
137
-
138
- for (const source of sources) {
139
- // Ignore any undefined or null sources.
140
- if (source === undefined || source === null) {
141
- continue
142
- }
143
-
144
- destination = mergeInto(destination, source)
145
- }
146
-
147
- return destination as unknown
148
- }
149
-
150
- interface CircularReferenceChecker {
151
- hasAlreadyBeenSeen(value: any): boolean
152
- }
153
-
154
- function createCircularReferenceChecker(): CircularReferenceChecker {
155
- if (typeof WeakSet !== 'undefined') {
156
- const set: WeakSet<any> = new WeakSet()
157
- return {
158
- hasAlreadyBeenSeen(value) {
159
- const has = set.has(value)
160
- if (!has) {
161
- set.add(value)
162
- }
163
- return has
164
- },
165
- }
166
- }
167
- const array: any[] = []
168
- return {
169
- hasAlreadyBeenSeen(value) {
170
- const has = array.indexOf(value) >= 0
171
- if (!has) {
172
- array.push(value)
173
- }
174
- return has
175
- },
176
- }
177
- }
@@ -1,117 +0,0 @@
1
- import { isNumber, round } from './numberUtils'
2
-
3
- export const ONE_SECOND = 1000
4
- export const ONE_MINUTE = 60 * ONE_SECOND
5
- export const ONE_HOUR = 60 * ONE_MINUTE
6
- export const ONE_DAY = 24 * ONE_HOUR
7
- export const ONE_YEAR = 365 * ONE_DAY
8
-
9
- export type Duration = number & { d: 'Duration in ms' }
10
- export type ServerDuration = number & { s: 'Duration in ns' }
11
- export type TimeStamp = number & { t: 'Epoch time' }
12
- export type RelativeTime = number & { r: 'Time relative to navigation start' } & { d: 'Duration in ms' }
13
- export interface ClocksState {
14
- relative: RelativeTime
15
- timeStamp: TimeStamp
16
- }
17
-
18
- export function relativeToClocks(relative: RelativeTime) {
19
- return { relative, timeStamp: getCorrectedTimeStamp(relative) }
20
- }
21
-
22
- export function timeStampToClocks(timeStamp: TimeStamp) {
23
- return { relative: getRelativeTime(timeStamp), timeStamp }
24
- }
25
-
26
- function getCorrectedTimeStamp(relativeTime: RelativeTime) {
27
- const correctedOrigin = (dateNow() - performance.now()) as TimeStamp
28
- // apply correction only for positive drift
29
- if (correctedOrigin > getNavigationStart()) {
30
- return Math.round(addDuration(correctedOrigin, relativeTime)) as TimeStamp
31
- }
32
- return getTimeStamp(relativeTime)
33
- }
34
-
35
- export function currentDrift() {
36
- return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now() as Duration))
37
- }
38
-
39
- export function toServerDuration(duration: Duration): ServerDuration
40
- export function toServerDuration(duration: Duration | undefined): ServerDuration | undefined
41
- export function toServerDuration(duration: Duration | undefined) {
42
- if (!isNumber(duration)) {
43
- return duration
44
- }
45
- return round(duration * 1e6, 0) as ServerDuration
46
- }
47
-
48
- export function dateNow() {
49
- // Do not use `Date.now` because sometimes websites are wrongly "polyfilling" it. For example, we
50
- // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date
51
- // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this
52
- // case ourselves.
53
- // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16
54
- return new Date().getTime()
55
- }
56
-
57
- export function timeStampNow() {
58
- return dateNow() as TimeStamp
59
- }
60
-
61
- export function relativeNow() {
62
- return performance.now() as RelativeTime
63
- }
64
-
65
- export function clocksNow() {
66
- return { relative: relativeNow(), timeStamp: timeStampNow() }
67
- }
68
-
69
- export function clocksOrigin() {
70
- return { relative: 0 as RelativeTime, timeStamp: getNavigationStart() }
71
- }
72
-
73
- export function elapsed(start: TimeStamp, end: TimeStamp): Duration
74
- export function elapsed(start: RelativeTime, end: RelativeTime): Duration
75
- export function elapsed(start: number, end: number) {
76
- return (end - start) as Duration
77
- }
78
-
79
- export function addDuration(a: TimeStamp, b: Duration): TimeStamp
80
- export function addDuration(a: RelativeTime, b: Duration): RelativeTime
81
- export function addDuration(a: Duration, b: Duration): Duration
82
- export function addDuration(a: number, b: number) {
83
- return a + b
84
- }
85
-
86
- // Get the time since the navigation was started.
87
- export function getRelativeTime(timestamp: TimeStamp) {
88
- return (timestamp - getNavigationStart()) as RelativeTime
89
- }
90
-
91
- export function getTimeStamp(relativeTime: RelativeTime) {
92
- return Math.round(addDuration(getNavigationStart(), relativeTime)) as TimeStamp
93
- }
94
-
95
- export function looksLikeRelativeTime(time: RelativeTime | TimeStamp): time is RelativeTime {
96
- return time < ONE_YEAR
97
- }
98
-
99
- /**
100
- * Navigation start slightly change on some rare cases
101
- */
102
- let navigationStart: TimeStamp | undefined
103
-
104
- /**
105
- * Notes: this does not use `performance.timeOrigin` because:
106
- * - It doesn't seem to reflect the actual time on which the navigation has started: it may be much farther in the past,
107
- * at least in Firefox 71. (see: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926)
108
- * - It is not supported in Safari <15
109
- */
110
- function getNavigationStart() {
111
- if (navigationStart === undefined) {
112
- // ServiceWorkers do not support navigationStart (it's deprecated), so we fallback to timeOrigin
113
- navigationStart = (performance.timing?.navigationStart ?? performance.timeOrigin) as TimeStamp
114
- }
115
-
116
- return navigationStart
117
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Similar to `typeof`, but distinguish plain objects from `null` and arrays
3
- */
4
- export function getType(value: unknown) {
5
- if (value === null) {
6
- return 'null'
7
- }
8
- if (Array.isArray(value)) {
9
- return 'array'
10
- }
11
- return typeof value
12
- }