@pratham.raval/browser-core 6.22.3

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 (710) hide show
  1. package/README.md +3 -0
  2. package/cjs/boot/displayAlreadyInitializedError.d.ts +2 -0
  3. package/cjs/boot/displayAlreadyInitializedError.js +10 -0
  4. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -0
  5. package/cjs/boot/init.d.ts +14 -0
  6. package/cjs/boot/init.js +39 -0
  7. package/cjs/boot/init.js.map +1 -0
  8. package/cjs/browser/addEventListener.d.ts +87 -0
  9. package/cjs/browser/addEventListener.js +55 -0
  10. package/cjs/browser/addEventListener.js.map +1 -0
  11. package/cjs/browser/browser.types.d.ts +51 -0
  12. package/cjs/browser/browser.types.js +6 -0
  13. package/cjs/browser/browser.types.js.map +1 -0
  14. package/cjs/browser/cookie.d.ts +18 -0
  15. package/cjs/browser/cookie.js +101 -0
  16. package/cjs/browser/cookie.js.map +1 -0
  17. package/cjs/browser/fetchObservable.d.ts +25 -0
  18. package/cjs/browser/fetchObservable.js +79 -0
  19. package/cjs/browser/fetchObservable.js.map +1 -0
  20. package/cjs/browser/pageMayExitObservable.d.ts +14 -0
  21. package/cjs/browser/pageMayExitObservable.js +45 -0
  22. package/cjs/browser/pageMayExitObservable.js.map +1 -0
  23. package/cjs/browser/runOnReadyState.d.ts +5 -0
  24. package/cjs/browser/runOnReadyState.js +20 -0
  25. package/cjs/browser/runOnReadyState.js.map +1 -0
  26. package/cjs/browser/xhrObservable.d.ts +23 -0
  27. package/cjs/browser/xhrObservable.js +83 -0
  28. package/cjs/browser/xhrObservable.js.map +1 -0
  29. package/cjs/domain/allowedTrackingOrigins.d.ts +4 -0
  30. package/cjs/domain/allowedTrackingOrigins.js +25 -0
  31. package/cjs/domain/allowedTrackingOrigins.js.map +1 -0
  32. package/cjs/domain/bufferedData.d.ts +14 -0
  33. package/cjs/domain/bufferedData.js +22 -0
  34. package/cjs/domain/bufferedData.js.map +1 -0
  35. package/cjs/domain/configuration/configuration.d.ts +303 -0
  36. package/cjs/domain/configuration/configuration.js +152 -0
  37. package/cjs/domain/configuration/configuration.js.map +1 -0
  38. package/cjs/domain/configuration/endpointBuilder.d.ts +12 -0
  39. package/cjs/domain/configuration/endpointBuilder.js +78 -0
  40. package/cjs/domain/configuration/endpointBuilder.js.map +1 -0
  41. package/cjs/domain/configuration/index.d.ts +5 -0
  42. package/cjs/domain/configuration/index.js +16 -0
  43. package/cjs/domain/configuration/index.js.map +1 -0
  44. package/cjs/domain/configuration/transportConfiguration.d.ts +20 -0
  45. package/cjs/domain/configuration/transportConfiguration.js +54 -0
  46. package/cjs/domain/configuration/transportConfiguration.js.map +1 -0
  47. package/cjs/domain/connectivity/connectivity.d.ts +14 -0
  48. package/cjs/domain/connectivity/connectivity.js +14 -0
  49. package/cjs/domain/connectivity/connectivity.js.map +1 -0
  50. package/cjs/domain/connectivity/index.d.ts +1 -0
  51. package/cjs/domain/connectivity/index.js +18 -0
  52. package/cjs/domain/connectivity/index.js.map +1 -0
  53. package/cjs/domain/console/consoleObservable.d.ts +21 -0
  54. package/cjs/domain/console/consoleObservable.js +84 -0
  55. package/cjs/domain/console/consoleObservable.js.map +1 -0
  56. package/cjs/domain/context/contextConstants.d.ts +21 -0
  57. package/cjs/domain/context/contextConstants.js +18 -0
  58. package/cjs/domain/context/contextConstants.js.map +1 -0
  59. package/cjs/domain/context/contextManager.d.ts +19 -0
  60. package/cjs/domain/context/contextManager.js +60 -0
  61. package/cjs/domain/context/contextManager.js.map +1 -0
  62. package/cjs/domain/context/contextUtils.d.ts +5 -0
  63. package/cjs/domain/context/contextUtils.js +16 -0
  64. package/cjs/domain/context/contextUtils.js.map +1 -0
  65. package/cjs/domain/context/defineContextMethod.d.ts +6 -0
  66. package/cjs/domain/context/defineContextMethod.js +21 -0
  67. package/cjs/domain/context/defineContextMethod.js.map +1 -0
  68. package/cjs/domain/context/storeContextManager.d.ts +6 -0
  69. package/cjs/domain/context/storeContextManager.js +40 -0
  70. package/cjs/domain/context/storeContextManager.js.map +1 -0
  71. package/cjs/domain/contexts/accountContext.d.ts +26 -0
  72. package/cjs/domain/contexts/accountContext.js +33 -0
  73. package/cjs/domain/contexts/accountContext.js.map +1 -0
  74. package/cjs/domain/contexts/globalContext.d.ts +18 -0
  75. package/cjs/domain/contexts/globalContext.js +21 -0
  76. package/cjs/domain/contexts/globalContext.js.map +1 -0
  77. package/cjs/domain/contexts/rumInternalContext.type.d.ts +14 -0
  78. package/cjs/domain/contexts/rumInternalContext.type.js +3 -0
  79. package/cjs/domain/contexts/rumInternalContext.type.js.map +1 -0
  80. package/cjs/domain/contexts/userContext.d.ts +29 -0
  81. package/cjs/domain/contexts/userContext.js +45 -0
  82. package/cjs/domain/contexts/userContext.js.map +1 -0
  83. package/cjs/domain/deflate/deflate.types.d.ts +40 -0
  84. package/cjs/domain/deflate/deflate.types.js +3 -0
  85. package/cjs/domain/deflate/deflate.types.js.map +1 -0
  86. package/cjs/domain/deflate/index.d.ts +1 -0
  87. package/cjs/domain/deflate/index.js +18 -0
  88. package/cjs/domain/deflate/index.js.map +1 -0
  89. package/cjs/domain/error/error.d.ts +23 -0
  90. package/cjs/domain/error/error.js +74 -0
  91. package/cjs/domain/error/error.js.map +1 -0
  92. package/cjs/domain/error/error.types.d.ts +47 -0
  93. package/cjs/domain/error/error.types.js +13 -0
  94. package/cjs/domain/error/error.types.js.map +1 -0
  95. package/cjs/domain/error/trackRuntimeError.d.ts +11 -0
  96. package/cjs/domain/error/trackRuntimeError.js +48 -0
  97. package/cjs/domain/error/trackRuntimeError.js.map +1 -0
  98. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  99. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +39 -0
  100. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  101. package/cjs/domain/extension/extensionUtils.d.ts +10 -0
  102. package/cjs/domain/extension/extensionUtils.js +30 -0
  103. package/cjs/domain/extension/extensionUtils.js.map +1 -0
  104. package/cjs/domain/intakeSites.d.ts +8 -0
  105. package/cjs/domain/intakeSites.js +11 -0
  106. package/cjs/domain/intakeSites.js.map +1 -0
  107. package/cjs/domain/report/browser.types.d.ts +34 -0
  108. package/cjs/domain/report/browser.types.js +3 -0
  109. package/cjs/domain/report/browser.types.js.map +1 -0
  110. package/cjs/domain/report/reportObservable.d.ts +14 -0
  111. package/cjs/domain/report/reportObservable.js +99 -0
  112. package/cjs/domain/report/reportObservable.js.map +1 -0
  113. package/cjs/domain/resourceUtils.d.ts +18 -0
  114. package/cjs/domain/resourceUtils.js +20 -0
  115. package/cjs/domain/resourceUtils.js.map +1 -0
  116. package/cjs/domain/session/oldCookiesMigration.d.ts +11 -0
  117. package/cjs/domain/session/oldCookiesMigration.js +40 -0
  118. package/cjs/domain/session/oldCookiesMigration.js.map +1 -0
  119. package/cjs/domain/session/sessionConstants.d.ts +15 -0
  120. package/cjs/domain/session/sessionConstants.js +16 -0
  121. package/cjs/domain/session/sessionConstants.js.map +1 -0
  122. package/cjs/domain/session/sessionManager.d.ts +28 -0
  123. package/cjs/domain/session/sessionManager.js +185 -0
  124. package/cjs/domain/session/sessionManager.js.map +1 -0
  125. package/cjs/domain/session/sessionState.d.ts +16 -0
  126. package/cjs/domain/session/sessionState.js +76 -0
  127. package/cjs/domain/session/sessionState.js.map +1 -0
  128. package/cjs/domain/session/sessionStateValidation.d.ts +3 -0
  129. package/cjs/domain/session/sessionStateValidation.js +11 -0
  130. package/cjs/domain/session/sessionStateValidation.js.map +1 -0
  131. package/cjs/domain/session/sessionStore.d.ts +38 -0
  132. package/cjs/domain/session/sessionStore.js +181 -0
  133. package/cjs/domain/session/sessionStore.js.map +1 -0
  134. package/cjs/domain/session/sessionStoreOperations.d.ts +12 -0
  135. package/cjs/domain/session/sessionStoreOperations.js +119 -0
  136. package/cjs/domain/session/sessionStoreOperations.js.map +1 -0
  137. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +8 -0
  138. package/cjs/domain/session/storeStrategies/sessionInCookie.js +56 -0
  139. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  140. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -0
  141. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +41 -0
  142. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  143. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  144. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +5 -0
  145. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  146. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  147. package/cjs/domain/synthetics/syntheticsWorkerValues.js +31 -0
  148. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  149. package/cjs/domain/tags.d.ts +6 -0
  150. package/cjs/domain/tags.js +67 -0
  151. package/cjs/domain/tags.js.map +1 -0
  152. package/cjs/domain/telemetry/index.d.ts +4 -0
  153. package/cjs/domain/telemetry/index.js +28 -0
  154. package/cjs/domain/telemetry/index.js.map +1 -0
  155. package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  156. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +9 -0
  157. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  158. package/cjs/domain/telemetry/telemetry.d.ts +56 -0
  159. package/cjs/domain/telemetry/telemetry.js +248 -0
  160. package/cjs/domain/telemetry/telemetry.js.map +1 -0
  161. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +858 -0
  162. package/cjs/domain/telemetry/telemetryEvent.types.js +7 -0
  163. package/cjs/domain/telemetry/telemetryEvent.types.js.map +1 -0
  164. package/cjs/domain/trackingConsent.d.ts +13 -0
  165. package/cjs/domain/trackingConsent.js +28 -0
  166. package/cjs/domain/trackingConsent.js.map +1 -0
  167. package/cjs/index.d.ts +100 -0
  168. package/cjs/index.js +193 -0
  169. package/cjs/index.js.map +1 -0
  170. package/cjs/tools/abstractHooks.d.ts +24 -0
  171. package/cjs/tools/abstractHooks.js +41 -0
  172. package/cjs/tools/abstractHooks.js.map +1 -0
  173. package/cjs/tools/abstractLifeCycle.d.ts +23 -0
  174. package/cjs/tools/abstractLifeCycle.js +28 -0
  175. package/cjs/tools/abstractLifeCycle.js.map +1 -0
  176. package/cjs/tools/boundedBuffer.d.ts +16 -0
  177. package/cjs/tools/boundedBuffer.js +32 -0
  178. package/cjs/tools/boundedBuffer.js.map +1 -0
  179. package/cjs/tools/catchUserErrors.d.ts +1 -0
  180. package/cjs/tools/catchUserErrors.js +15 -0
  181. package/cjs/tools/catchUserErrors.js.map +1 -0
  182. package/cjs/tools/display.d.ts +38 -0
  183. package/cjs/tools/display.js +44 -0
  184. package/cjs/tools/display.js.map +1 -0
  185. package/cjs/tools/encoder.d.ts +54 -0
  186. package/cjs/tools/encoder.js +40 -0
  187. package/cjs/tools/encoder.js.map +1 -0
  188. package/cjs/tools/experimentalFeatures.d.ts +20 -0
  189. package/cjs/tools/experimentalFeatures.js +49 -0
  190. package/cjs/tools/experimentalFeatures.js.map +1 -0
  191. package/cjs/tools/getZoneJsOriginalValue.d.ts +19 -0
  192. package/cjs/tools/getZoneJsOriginalValue.js +29 -0
  193. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -0
  194. package/cjs/tools/globalObject.d.ts +19 -0
  195. package/cjs/tools/globalObject.js +44 -0
  196. package/cjs/tools/globalObject.js.map +1 -0
  197. package/cjs/tools/instrumentMethod.d.ts +75 -0
  198. package/cjs/tools/instrumentMethod.js +118 -0
  199. package/cjs/tools/instrumentMethod.js.map +1 -0
  200. package/cjs/tools/matchOption.d.ts +8 -0
  201. package/cjs/tools/matchOption.js +35 -0
  202. package/cjs/tools/matchOption.js.map +1 -0
  203. package/cjs/tools/mergeInto.d.ts +25 -0
  204. package/cjs/tools/mergeInto.js +98 -0
  205. package/cjs/tools/mergeInto.js.map +1 -0
  206. package/cjs/tools/monitor.d.ts +9 -0
  207. package/cjs/tools/monitor.js +62 -0
  208. package/cjs/tools/monitor.js.map +1 -0
  209. package/cjs/tools/observable.d.ts +30 -0
  210. package/cjs/tools/observable.js +89 -0
  211. package/cjs/tools/observable.js.map +1 -0
  212. package/cjs/tools/queueMicrotask.d.ts +1 -0
  213. package/cjs/tools/queueMicrotask.js +17 -0
  214. package/cjs/tools/queueMicrotask.js.map +1 -0
  215. package/cjs/tools/readBytesFromStream.d.ts +11 -0
  216. package/cjs/tools/readBytesFromStream.js +63 -0
  217. package/cjs/tools/readBytesFromStream.js.map +1 -0
  218. package/cjs/tools/requestIdleCallback.d.ts +12 -0
  219. package/cjs/tools/requestIdleCallback.js +35 -0
  220. package/cjs/tools/requestIdleCallback.js.map +1 -0
  221. package/cjs/tools/sendToExtension.d.ts +3 -0
  222. package/cjs/tools/sendToExtension.js +11 -0
  223. package/cjs/tools/sendToExtension.js.map +1 -0
  224. package/cjs/tools/serialisation/context.d.ts +9 -0
  225. package/cjs/tools/serialisation/context.js +3 -0
  226. package/cjs/tools/serialisation/context.js.map +1 -0
  227. package/cjs/tools/serialisation/jsonStringify.d.ts +13 -0
  228. package/cjs/tools/serialisation/jsonStringify.js +48 -0
  229. package/cjs/tools/serialisation/jsonStringify.js.map +1 -0
  230. package/cjs/tools/serialisation/sanitize.d.ts +18 -0
  231. package/cjs/tools/serialisation/sanitize.js +188 -0
  232. package/cjs/tools/serialisation/sanitize.js.map +1 -0
  233. package/cjs/tools/stackTrace/computeStackTrace.d.ts +25 -0
  234. package/cjs/tools/stackTrace/computeStackTrace.js +187 -0
  235. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -0
  236. package/cjs/tools/stackTrace/handlingStack.d.ts +10 -0
  237. package/cjs/tools/stackTrace/handlingStack.js +46 -0
  238. package/cjs/tools/stackTrace/handlingStack.js.map +1 -0
  239. package/cjs/tools/taskQueue.d.ts +15 -0
  240. package/cjs/tools/taskQueue.js +54 -0
  241. package/cjs/tools/taskQueue.js.map +1 -0
  242. package/cjs/tools/timer.d.ts +5 -0
  243. package/cjs/tools/timer.js +22 -0
  244. package/cjs/tools/timer.js.map +1 -0
  245. package/cjs/tools/utils/arrayUtils.d.ts +3 -0
  246. package/cjs/tools/utils/arrayUtils.js +20 -0
  247. package/cjs/tools/utils/arrayUtils.js.map +1 -0
  248. package/cjs/tools/utils/browserDetection.d.ts +8 -0
  249. package/cjs/tools/utils/browserDetection.js +33 -0
  250. package/cjs/tools/utils/browserDetection.js.map +1 -0
  251. package/cjs/tools/utils/byteUtils.d.ts +8 -0
  252. package/cjs/tools/utils/byteUtils.js +30 -0
  253. package/cjs/tools/utils/byteUtils.js.map +1 -0
  254. package/cjs/tools/utils/functionUtils.d.ts +8 -0
  255. package/cjs/tools/utils/functionUtils.js +43 -0
  256. package/cjs/tools/utils/functionUtils.js.map +1 -0
  257. package/cjs/tools/utils/numberUtils.d.ts +9 -0
  258. package/cjs/tools/utils/numberUtils.js +24 -0
  259. package/cjs/tools/utils/numberUtils.js.map +1 -0
  260. package/cjs/tools/utils/objectUtils.d.ts +10 -0
  261. package/cjs/tools/utils/objectUtils.js +23 -0
  262. package/cjs/tools/utils/objectUtils.js.map +1 -0
  263. package/cjs/tools/utils/polyfills.d.ts +7 -0
  264. package/cjs/tools/utils/polyfills.js +23 -0
  265. package/cjs/tools/utils/polyfills.js.map +1 -0
  266. package/cjs/tools/utils/responseUtils.d.ts +2 -0
  267. package/cjs/tools/utils/responseUtils.js +17 -0
  268. package/cjs/tools/utils/responseUtils.js.map +1 -0
  269. package/cjs/tools/utils/stringUtils.d.ts +8 -0
  270. package/cjs/tools/utils/stringUtils.js +55 -0
  271. package/cjs/tools/utils/stringUtils.js.map +1 -0
  272. package/cjs/tools/utils/timeUtils.d.ts +53 -0
  273. package/cjs/tools/utils/timeUtils.js +101 -0
  274. package/cjs/tools/utils/timeUtils.js.map +1 -0
  275. package/cjs/tools/utils/timezone.d.ts +1 -0
  276. package/cjs/tools/utils/timezone.js +13 -0
  277. package/cjs/tools/utils/timezone.js.map +1 -0
  278. package/cjs/tools/utils/typeUtils.d.ts +4 -0
  279. package/cjs/tools/utils/typeUtils.js +16 -0
  280. package/cjs/tools/utils/typeUtils.js.map +1 -0
  281. package/cjs/tools/utils/urlPolyfill.d.ts +5 -0
  282. package/cjs/tools/utils/urlPolyfill.js +59 -0
  283. package/cjs/tools/utils/urlPolyfill.js.map +1 -0
  284. package/cjs/tools/valueHistory.d.ts +27 -0
  285. package/cjs/tools/valueHistory.js +104 -0
  286. package/cjs/tools/valueHistory.js.map +1 -0
  287. package/cjs/transport/batch.d.ts +16 -0
  288. package/cjs/transport/batch.js +108 -0
  289. package/cjs/transport/batch.js.map +1 -0
  290. package/cjs/transport/eventBridge.d.ts +21 -0
  291. package/cjs/transport/eventBridge.js +46 -0
  292. package/cjs/transport/eventBridge.js.map +1 -0
  293. package/cjs/transport/flushController.d.ts +58 -0
  294. package/cjs/transport/flushController.js +109 -0
  295. package/cjs/transport/flushController.js.map +1 -0
  296. package/cjs/transport/httpRequest.d.ts +51 -0
  297. package/cjs/transport/httpRequest.js +80 -0
  298. package/cjs/transport/httpRequest.js.map +1 -0
  299. package/cjs/transport/index.d.ts +7 -0
  300. package/cjs/transport/index.js +14 -0
  301. package/cjs/transport/index.js.map +1 -0
  302. package/cjs/transport/sendWithRetryStrategy.d.ts +41 -0
  303. package/cjs/transport/sendWithRetryStrategy.js +163 -0
  304. package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
  305. package/esm/boot/displayAlreadyInitializedError.d.ts +2 -0
  306. package/esm/boot/displayAlreadyInitializedError.js +7 -0
  307. package/esm/boot/displayAlreadyInitializedError.js.map +1 -0
  308. package/esm/boot/init.d.ts +14 -0
  309. package/esm/boot/init.js +35 -0
  310. package/esm/boot/init.js.map +1 -0
  311. package/esm/browser/addEventListener.d.ts +87 -0
  312. package/esm/browser/addEventListener.js +51 -0
  313. package/esm/browser/addEventListener.js.map +1 -0
  314. package/esm/browser/browser.types.d.ts +51 -0
  315. package/esm/browser/browser.types.js +5 -0
  316. package/esm/browser/browser.types.js.map +1 -0
  317. package/esm/browser/cookie.d.ts +18 -0
  318. package/esm/browser/cookie.js +91 -0
  319. package/esm/browser/cookie.js.map +1 -0
  320. package/esm/browser/fetchObservable.d.ts +25 -0
  321. package/esm/browser/fetchObservable.js +75 -0
  322. package/esm/browser/fetchObservable.js.map +1 -0
  323. package/esm/browser/pageMayExitObservable.d.ts +14 -0
  324. package/esm/browser/pageMayExitObservable.js +40 -0
  325. package/esm/browser/pageMayExitObservable.js.map +1 -0
  326. package/esm/browser/runOnReadyState.d.ts +5 -0
  327. package/esm/browser/runOnReadyState.js +16 -0
  328. package/esm/browser/runOnReadyState.js.map +1 -0
  329. package/esm/browser/xhrObservable.d.ts +23 -0
  330. package/esm/browser/xhrObservable.js +80 -0
  331. package/esm/browser/xhrObservable.js.map +1 -0
  332. package/esm/domain/allowedTrackingOrigins.d.ts +4 -0
  333. package/esm/domain/allowedTrackingOrigins.js +21 -0
  334. package/esm/domain/allowedTrackingOrigins.js.map +1 -0
  335. package/esm/domain/bufferedData.d.ts +14 -0
  336. package/esm/domain/bufferedData.js +19 -0
  337. package/esm/domain/bufferedData.js.map +1 -0
  338. package/esm/domain/configuration/configuration.d.ts +303 -0
  339. package/esm/domain/configuration/configuration.js +146 -0
  340. package/esm/domain/configuration/configuration.js.map +1 -0
  341. package/esm/domain/configuration/endpointBuilder.d.ts +12 -0
  342. package/esm/domain/configuration/endpointBuilder.js +74 -0
  343. package/esm/domain/configuration/endpointBuilder.js.map +1 -0
  344. package/esm/domain/configuration/index.d.ts +5 -0
  345. package/esm/domain/configuration/index.js +4 -0
  346. package/esm/domain/configuration/index.js.map +1 -0
  347. package/esm/domain/configuration/transportConfiguration.d.ts +20 -0
  348. package/esm/domain/configuration/transportConfiguration.js +50 -0
  349. package/esm/domain/configuration/transportConfiguration.js.map +1 -0
  350. package/esm/domain/connectivity/connectivity.d.ts +14 -0
  351. package/esm/domain/connectivity/connectivity.js +11 -0
  352. package/esm/domain/connectivity/connectivity.js.map +1 -0
  353. package/esm/domain/connectivity/index.d.ts +1 -0
  354. package/esm/domain/connectivity/index.js +2 -0
  355. package/esm/domain/connectivity/index.js.map +1 -0
  356. package/esm/domain/console/consoleObservable.d.ts +21 -0
  357. package/esm/domain/console/consoleObservable.js +80 -0
  358. package/esm/domain/console/consoleObservable.js.map +1 -0
  359. package/esm/domain/context/contextConstants.d.ts +21 -0
  360. package/esm/domain/context/contextConstants.js +15 -0
  361. package/esm/domain/context/contextConstants.js.map +1 -0
  362. package/esm/domain/context/contextManager.d.ts +19 -0
  363. package/esm/domain/context/contextManager.js +57 -0
  364. package/esm/domain/context/contextManager.js.map +1 -0
  365. package/esm/domain/context/contextUtils.d.ts +5 -0
  366. package/esm/domain/context/contextUtils.js +13 -0
  367. package/esm/domain/context/contextUtils.js.map +1 -0
  368. package/esm/domain/context/defineContextMethod.d.ts +6 -0
  369. package/esm/domain/context/defineContextMethod.js +17 -0
  370. package/esm/domain/context/defineContextMethod.js.map +1 -0
  371. package/esm/domain/context/storeContextManager.d.ts +6 -0
  372. package/esm/domain/context/storeContextManager.js +35 -0
  373. package/esm/domain/context/storeContextManager.js.map +1 -0
  374. package/esm/domain/contexts/accountContext.d.ts +26 -0
  375. package/esm/domain/contexts/accountContext.js +29 -0
  376. package/esm/domain/contexts/accountContext.js.map +1 -0
  377. package/esm/domain/contexts/globalContext.d.ts +18 -0
  378. package/esm/domain/contexts/globalContext.js +17 -0
  379. package/esm/domain/contexts/globalContext.js.map +1 -0
  380. package/esm/domain/contexts/rumInternalContext.type.d.ts +14 -0
  381. package/esm/domain/contexts/rumInternalContext.type.js +2 -0
  382. package/esm/domain/contexts/rumInternalContext.type.js.map +1 -0
  383. package/esm/domain/contexts/userContext.d.ts +29 -0
  384. package/esm/domain/contexts/userContext.js +41 -0
  385. package/esm/domain/contexts/userContext.js.map +1 -0
  386. package/esm/domain/deflate/deflate.types.d.ts +40 -0
  387. package/esm/domain/deflate/deflate.types.js +2 -0
  388. package/esm/domain/deflate/deflate.types.js.map +1 -0
  389. package/esm/domain/deflate/index.d.ts +1 -0
  390. package/esm/domain/deflate/index.js +2 -0
  391. package/esm/domain/deflate/index.js.map +1 -0
  392. package/esm/domain/error/error.d.ts +23 -0
  393. package/esm/domain/error/error.js +65 -0
  394. package/esm/domain/error/error.js.map +1 -0
  395. package/esm/domain/error/error.types.d.ts +47 -0
  396. package/esm/domain/error/error.types.js +10 -0
  397. package/esm/domain/error/error.types.js.map +1 -0
  398. package/esm/domain/error/trackRuntimeError.d.ts +11 -0
  399. package/esm/domain/error/trackRuntimeError.js +43 -0
  400. package/esm/domain/error/trackRuntimeError.js.map +1 -0
  401. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  402. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +36 -0
  403. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  404. package/esm/domain/extension/extensionUtils.d.ts +10 -0
  405. package/esm/domain/extension/extensionUtils.js +25 -0
  406. package/esm/domain/extension/extensionUtils.js.map +1 -0
  407. package/esm/domain/intakeSites.d.ts +8 -0
  408. package/esm/domain/intakeSites.js +8 -0
  409. package/esm/domain/intakeSites.js.map +1 -0
  410. package/esm/domain/report/browser.types.d.ts +34 -0
  411. package/esm/domain/report/browser.types.js +2 -0
  412. package/esm/domain/report/browser.types.js.map +1 -0
  413. package/esm/domain/report/reportObservable.d.ts +14 -0
  414. package/esm/domain/report/reportObservable.js +95 -0
  415. package/esm/domain/report/reportObservable.js.map +1 -0
  416. package/esm/domain/resourceUtils.d.ts +18 -0
  417. package/esm/domain/resourceUtils.js +17 -0
  418. package/esm/domain/resourceUtils.js.map +1 -0
  419. package/esm/domain/session/oldCookiesMigration.d.ts +11 -0
  420. package/esm/domain/session/oldCookiesMigration.js +36 -0
  421. package/esm/domain/session/oldCookiesMigration.js.map +1 -0
  422. package/esm/domain/session/sessionConstants.d.ts +15 -0
  423. package/esm/domain/session/sessionConstants.js +13 -0
  424. package/esm/domain/session/sessionConstants.js.map +1 -0
  425. package/esm/domain/session/sessionManager.d.ts +28 -0
  426. package/esm/domain/session/sessionManager.js +180 -0
  427. package/esm/domain/session/sessionManager.js.map +1 -0
  428. package/esm/domain/session/sessionState.d.ts +16 -0
  429. package/esm/domain/session/sessionState.js +66 -0
  430. package/esm/domain/session/sessionState.js.map +1 -0
  431. package/esm/domain/session/sessionStateValidation.d.ts +3 -0
  432. package/esm/domain/session/sessionStateValidation.js +7 -0
  433. package/esm/domain/session/sessionStateValidation.js.map +1 -0
  434. package/esm/domain/session/sessionStore.d.ts +38 -0
  435. package/esm/domain/session/sessionStore.js +175 -0
  436. package/esm/domain/session/sessionStore.js.map +1 -0
  437. package/esm/domain/session/sessionStoreOperations.d.ts +12 -0
  438. package/esm/domain/session/sessionStoreOperations.js +114 -0
  439. package/esm/domain/session/sessionStoreOperations.js.map +1 -0
  440. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +8 -0
  441. package/esm/domain/session/storeStrategies/sessionInCookie.js +50 -0
  442. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  443. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -0
  444. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +37 -0
  445. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  446. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  447. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +2 -0
  448. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  449. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  450. package/esm/domain/synthetics/syntheticsWorkerValues.js +24 -0
  451. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  452. package/esm/domain/tags.d.ts +6 -0
  453. package/esm/domain/tags.js +60 -0
  454. package/esm/domain/tags.js.map +1 -0
  455. package/esm/domain/telemetry/index.d.ts +4 -0
  456. package/esm/domain/telemetry/index.js +3 -0
  457. package/esm/domain/telemetry/index.js.map +1 -0
  458. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  459. package/esm/domain/telemetry/rawTelemetryEvent.types.js +6 -0
  460. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  461. package/esm/domain/telemetry/telemetry.d.ts +56 -0
  462. package/esm/domain/telemetry/telemetry.js +235 -0
  463. package/esm/domain/telemetry/telemetry.js.map +1 -0
  464. package/esm/domain/telemetry/telemetryEvent.types.d.ts +858 -0
  465. package/esm/domain/telemetry/telemetryEvent.types.js +6 -0
  466. package/esm/domain/telemetry/telemetryEvent.types.js.map +1 -0
  467. package/esm/domain/trackingConsent.d.ts +13 -0
  468. package/esm/domain/trackingConsent.js +24 -0
  469. package/esm/domain/trackingConsent.js.map +1 -0
  470. package/esm/index.d.ts +100 -0
  471. package/esm/index.js +76 -0
  472. package/esm/index.js.map +1 -0
  473. package/esm/tools/abstractHooks.d.ts +24 -0
  474. package/esm/tools/abstractHooks.js +37 -0
  475. package/esm/tools/abstractHooks.js.map +1 -0
  476. package/esm/tools/abstractLifeCycle.d.ts +23 -0
  477. package/esm/tools/abstractLifeCycle.js +24 -0
  478. package/esm/tools/abstractLifeCycle.js.map +1 -0
  479. package/esm/tools/boundedBuffer.d.ts +16 -0
  480. package/esm/tools/boundedBuffer.js +29 -0
  481. package/esm/tools/boundedBuffer.js.map +1 -0
  482. package/esm/tools/catchUserErrors.d.ts +1 -0
  483. package/esm/tools/catchUserErrors.js +12 -0
  484. package/esm/tools/catchUserErrors.js.map +1 -0
  485. package/esm/tools/display.d.ts +38 -0
  486. package/esm/tools/display.js +41 -0
  487. package/esm/tools/display.js.map +1 -0
  488. package/esm/tools/encoder.d.ts +54 -0
  489. package/esm/tools/encoder.js +37 -0
  490. package/esm/tools/encoder.js.map +1 -0
  491. package/esm/tools/experimentalFeatures.d.ts +20 -0
  492. package/esm/tools/experimentalFeatures.js +41 -0
  493. package/esm/tools/experimentalFeatures.js.map +1 -0
  494. package/esm/tools/getZoneJsOriginalValue.d.ts +19 -0
  495. package/esm/tools/getZoneJsOriginalValue.js +26 -0
  496. package/esm/tools/getZoneJsOriginalValue.js.map +1 -0
  497. package/esm/tools/globalObject.d.ts +19 -0
  498. package/esm/tools/globalObject.js +40 -0
  499. package/esm/tools/globalObject.js.map +1 -0
  500. package/esm/tools/instrumentMethod.d.ts +75 -0
  501. package/esm/tools/instrumentMethod.js +114 -0
  502. package/esm/tools/instrumentMethod.js.map +1 -0
  503. package/esm/tools/matchOption.d.ts +8 -0
  504. package/esm/tools/matchOption.js +31 -0
  505. package/esm/tools/matchOption.js.map +1 -0
  506. package/esm/tools/mergeInto.d.ts +25 -0
  507. package/esm/tools/mergeInto.js +93 -0
  508. package/esm/tools/mergeInto.js.map +1 -0
  509. package/esm/tools/monitor.d.ts +9 -0
  510. package/esm/tools/monitor.js +52 -0
  511. package/esm/tools/monitor.js.map +1 -0
  512. package/esm/tools/observable.d.ts +30 -0
  513. package/esm/tools/observable.js +83 -0
  514. package/esm/tools/observable.js.map +1 -0
  515. package/esm/tools/queueMicrotask.d.ts +1 -0
  516. package/esm/tools/queueMicrotask.js +14 -0
  517. package/esm/tools/queueMicrotask.js.map +1 -0
  518. package/esm/tools/readBytesFromStream.d.ts +11 -0
  519. package/esm/tools/readBytesFromStream.js +60 -0
  520. package/esm/tools/readBytesFromStream.js.map +1 -0
  521. package/esm/tools/requestIdleCallback.d.ts +12 -0
  522. package/esm/tools/requestIdleCallback.js +30 -0
  523. package/esm/tools/requestIdleCallback.js.map +1 -0
  524. package/esm/tools/sendToExtension.d.ts +3 -0
  525. package/esm/tools/sendToExtension.js +8 -0
  526. package/esm/tools/sendToExtension.js.map +1 -0
  527. package/esm/tools/serialisation/context.d.ts +9 -0
  528. package/esm/tools/serialisation/context.js +2 -0
  529. package/esm/tools/serialisation/context.js.map +1 -0
  530. package/esm/tools/serialisation/jsonStringify.d.ts +13 -0
  531. package/esm/tools/serialisation/jsonStringify.js +44 -0
  532. package/esm/tools/serialisation/jsonStringify.js.map +1 -0
  533. package/esm/tools/serialisation/sanitize.d.ts +18 -0
  534. package/esm/tools/serialisation/sanitize.js +185 -0
  535. package/esm/tools/serialisation/sanitize.js.map +1 -0
  536. package/esm/tools/stackTrace/computeStackTrace.d.ts +25 -0
  537. package/esm/tools/stackTrace/computeStackTrace.js +183 -0
  538. package/esm/tools/stackTrace/computeStackTrace.js.map +1 -0
  539. package/esm/tools/stackTrace/handlingStack.d.ts +10 -0
  540. package/esm/tools/stackTrace/handlingStack.js +41 -0
  541. package/esm/tools/stackTrace/handlingStack.js.map +1 -0
  542. package/esm/tools/taskQueue.d.ts +15 -0
  543. package/esm/tools/taskQueue.js +50 -0
  544. package/esm/tools/taskQueue.js.map +1 -0
  545. package/esm/tools/timer.d.ts +5 -0
  546. package/esm/tools/timer.js +16 -0
  547. package/esm/tools/timer.js.map +1 -0
  548. package/esm/tools/utils/arrayUtils.d.ts +3 -0
  549. package/esm/tools/utils/arrayUtils.js +15 -0
  550. package/esm/tools/utils/arrayUtils.js.map +1 -0
  551. package/esm/tools/utils/browserDetection.d.ts +8 -0
  552. package/esm/tools/utils/browserDetection.js +28 -0
  553. package/esm/tools/utils/browserDetection.js.map +1 -0
  554. package/esm/tools/utils/byteUtils.d.ts +8 -0
  555. package/esm/tools/utils/byteUtils.js +25 -0
  556. package/esm/tools/utils/byteUtils.js.map +1 -0
  557. package/esm/tools/utils/functionUtils.d.ts +8 -0
  558. package/esm/tools/utils/functionUtils.js +39 -0
  559. package/esm/tools/utils/functionUtils.js.map +1 -0
  560. package/esm/tools/utils/numberUtils.d.ts +9 -0
  561. package/esm/tools/utils/numberUtils.js +18 -0
  562. package/esm/tools/utils/numberUtils.js.map +1 -0
  563. package/esm/tools/utils/objectUtils.d.ts +10 -0
  564. package/esm/tools/utils/objectUtils.js +17 -0
  565. package/esm/tools/utils/objectUtils.js.map +1 -0
  566. package/esm/tools/utils/polyfills.d.ts +7 -0
  567. package/esm/tools/utils/polyfills.js +18 -0
  568. package/esm/tools/utils/polyfills.js.map +1 -0
  569. package/esm/tools/utils/responseUtils.d.ts +2 -0
  570. package/esm/tools/utils/responseUtils.js +13 -0
  571. package/esm/tools/utils/responseUtils.js.map +1 -0
  572. package/esm/tools/utils/stringUtils.d.ts +8 -0
  573. package/esm/tools/utils/stringUtils.js +49 -0
  574. package/esm/tools/utils/stringUtils.js.map +1 -0
  575. package/esm/tools/utils/timeUtils.d.ts +53 -0
  576. package/esm/tools/utils/timeUtils.js +84 -0
  577. package/esm/tools/utils/timeUtils.js.map +1 -0
  578. package/esm/tools/utils/timezone.d.ts +1 -0
  579. package/esm/tools/utils/timezone.js +10 -0
  580. package/esm/tools/utils/timezone.js.map +1 -0
  581. package/esm/tools/utils/typeUtils.d.ts +4 -0
  582. package/esm/tools/utils/typeUtils.js +13 -0
  583. package/esm/tools/utils/typeUtils.js.map +1 -0
  584. package/esm/tools/utils/urlPolyfill.d.ts +5 -0
  585. package/esm/tools/utils/urlPolyfill.js +52 -0
  586. package/esm/tools/utils/urlPolyfill.js.map +1 -0
  587. package/esm/tools/valueHistory.d.ts +27 -0
  588. package/esm/tools/valueHistory.js +100 -0
  589. package/esm/tools/valueHistory.js.map +1 -0
  590. package/esm/transport/batch.d.ts +16 -0
  591. package/esm/transport/batch.js +105 -0
  592. package/esm/transport/batch.js.map +1 -0
  593. package/esm/transport/eventBridge.d.ts +21 -0
  594. package/esm/transport/eventBridge.js +41 -0
  595. package/esm/transport/eventBridge.js.map +1 -0
  596. package/esm/transport/flushController.d.ts +58 -0
  597. package/esm/transport/flushController.js +106 -0
  598. package/esm/transport/flushController.js.map +1 -0
  599. package/esm/transport/httpRequest.d.ts +51 -0
  600. package/esm/transport/httpRequest.js +75 -0
  601. package/esm/transport/httpRequest.js.map +1 -0
  602. package/esm/transport/index.d.ts +7 -0
  603. package/esm/transport/index.js +5 -0
  604. package/esm/transport/index.js.map +1 -0
  605. package/esm/transport/sendWithRetryStrategy.d.ts +41 -0
  606. package/esm/transport/sendWithRetryStrategy.js +158 -0
  607. package/esm/transport/sendWithRetryStrategy.js.map +1 -0
  608. package/package.json +31 -0
  609. package/src/boot/displayAlreadyInitializedError.ts +8 -0
  610. package/src/boot/init.ts +55 -0
  611. package/src/browser/addEventListener.ts +145 -0
  612. package/src/browser/browser.types.ts +82 -0
  613. package/src/browser/cookie.ts +107 -0
  614. package/src/browser/fetchObservable.ts +127 -0
  615. package/src/browser/pageMayExitObservable.ts +56 -0
  616. package/src/browser/runOnReadyState.ts +25 -0
  617. package/src/browser/xhrObservable.ts +130 -0
  618. package/src/domain/allowedTrackingOrigins.ts +30 -0
  619. package/src/domain/bufferedData.ts +32 -0
  620. package/src/domain/configuration/configuration.ts +472 -0
  621. package/src/domain/configuration/endpointBuilder.ts +119 -0
  622. package/src/domain/configuration/index.ts +11 -0
  623. package/src/domain/configuration/transportConfiguration.ts +78 -0
  624. package/src/domain/connectivity/connectivity.ts +31 -0
  625. package/src/domain/connectivity/index.ts +1 -0
  626. package/src/domain/console/consoleObservable.ts +118 -0
  627. package/src/domain/context/contextConstants.ts +27 -0
  628. package/src/domain/context/contextManager.ts +85 -0
  629. package/src/domain/context/contextUtils.ts +14 -0
  630. package/src/domain/context/defineContextMethod.ts +31 -0
  631. package/src/domain/context/storeContextManager.ts +55 -0
  632. package/src/domain/contexts/accountContext.ts +47 -0
  633. package/src/domain/contexts/globalContext.ts +30 -0
  634. package/src/domain/contexts/rumInternalContext.type.ts +15 -0
  635. package/src/domain/contexts/userContext.ts +64 -0
  636. package/src/domain/deflate/deflate.types.ts +57 -0
  637. package/src/domain/deflate/index.ts +1 -0
  638. package/src/domain/error/error.ts +103 -0
  639. package/src/domain/error/error.types.ts +64 -0
  640. package/src/domain/error/trackRuntimeError.ts +50 -0
  641. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +46 -0
  642. package/src/domain/extension/extensionUtils.ts +28 -0
  643. package/src/domain/intakeSites.ts +17 -0
  644. package/src/domain/report/browser.types.ts +38 -0
  645. package/src/domain/report/reportObservable.ts +133 -0
  646. package/src/domain/resourceUtils.ts +21 -0
  647. package/src/domain/session/README.md +193 -0
  648. package/src/domain/session/oldCookiesMigration.ts +42 -0
  649. package/src/domain/session/sessionConstants.ts +19 -0
  650. package/src/domain/session/sessionManager.ts +244 -0
  651. package/src/domain/session/sessionState.ts +88 -0
  652. package/src/domain/session/sessionStateValidation.ts +9 -0
  653. package/src/domain/session/sessionStore.ts +244 -0
  654. package/src/domain/session/sessionStoreOperations.ts +131 -0
  655. package/src/domain/session/storeStrategies/sessionInCookie.ts +85 -0
  656. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +44 -0
  657. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +16 -0
  658. package/src/domain/synthetics/syntheticsWorkerValues.ts +38 -0
  659. package/src/domain/tags.ts +76 -0
  660. package/src/domain/telemetry/index.ts +22 -0
  661. package/src/domain/telemetry/rawTelemetryEvent.types.ts +22 -0
  662. package/src/domain/telemetry/telemetry.ts +345 -0
  663. package/src/domain/telemetry/telemetryEvent.types.ts +899 -0
  664. package/src/domain/trackingConsent.ts +34 -0
  665. package/src/index.ts +164 -0
  666. package/src/tools/abstractHooks.ts +72 -0
  667. package/src/tools/abstractLifeCycle.ts +46 -0
  668. package/src/tools/boundedBuffer.ts +45 -0
  669. package/src/tools/catchUserErrors.ts +11 -0
  670. package/src/tools/display.ts +56 -0
  671. package/src/tools/encoder.ts +103 -0
  672. package/src/tools/experimentalFeatures.ts +51 -0
  673. package/src/tools/getZoneJsOriginalValue.ts +38 -0
  674. package/src/tools/globalObject.ts +51 -0
  675. package/src/tools/instrumentMethod.ts +170 -0
  676. package/src/tools/matchOption.ts +31 -0
  677. package/src/tools/mergeInto.ts +177 -0
  678. package/src/tools/monitor.ts +72 -0
  679. package/src/tools/observable.ts +104 -0
  680. package/src/tools/queueMicrotask.ts +13 -0
  681. package/src/tools/readBytesFromStream.ts +77 -0
  682. package/src/tools/requestIdleCallback.ts +40 -0
  683. package/src/tools/sendToExtension.ts +14 -0
  684. package/src/tools/serialisation/context.ts +11 -0
  685. package/src/tools/serialisation/jsonStringify.ts +53 -0
  686. package/src/tools/serialisation/sanitize.ts +273 -0
  687. package/src/tools/stackTrace/computeStackTrace.ts +250 -0
  688. package/src/tools/stackTrace/handlingStack.ts +48 -0
  689. package/src/tools/taskQueue.ts +63 -0
  690. package/src/tools/timer.ts +21 -0
  691. package/src/tools/utils/arrayUtils.ts +15 -0
  692. package/src/tools/utils/browserDetection.ts +39 -0
  693. package/src/tools/utils/byteUtils.ts +35 -0
  694. package/src/tools/utils/functionUtils.ts +45 -0
  695. package/src/tools/utils/numberUtils.ts +20 -0
  696. package/src/tools/utils/objectUtils.ts +19 -0
  697. package/src/tools/utils/polyfills.ts +23 -0
  698. package/src/tools/utils/responseUtils.ts +12 -0
  699. package/src/tools/utils/stringUtils.ts +52 -0
  700. package/src/tools/utils/timeUtils.ts +117 -0
  701. package/src/tools/utils/timezone.ts +9 -0
  702. package/src/tools/utils/typeUtils.ts +12 -0
  703. package/src/tools/utils/urlPolyfill.ts +56 -0
  704. package/src/tools/valueHistory.ts +151 -0
  705. package/src/transport/batch.ts +144 -0
  706. package/src/transport/eventBridge.ts +61 -0
  707. package/src/transport/flushController.ts +144 -0
  708. package/src/transport/httpRequest.ts +164 -0
  709. package/src/transport/index.ts +7 -0
  710. package/src/transport/sendWithRetryStrategy.ts +222 -0
@@ -0,0 +1,21 @@
1
+ import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'
2
+ import { monitor } from './monitor'
3
+ import { getGlobalObject } from './globalObject'
4
+
5
+ export type TimeoutId = ReturnType<typeof globalThis.setTimeout>
6
+
7
+ export function setTimeout(callback: () => void, delay?: number): TimeoutId {
8
+ return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay)
9
+ }
10
+
11
+ export function clearTimeout(timeoutId: TimeoutId | undefined) {
12
+ getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId)
13
+ }
14
+
15
+ export function setInterval(callback: () => void, delay?: number): TimeoutId {
16
+ return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay)
17
+ }
18
+
19
+ export function clearInterval(timeoutId: TimeoutId | undefined) {
20
+ getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId)
21
+ }
@@ -0,0 +1,15 @@
1
+ export function removeDuplicates<T>(array: T[]) {
2
+ const set = new Set<T>()
3
+ array.forEach((item) => set.add(item))
4
+ return Array.from(set)
5
+ }
6
+
7
+ export function removeItem<T>(array: T[], item: T) {
8
+ const index = array.indexOf(item)
9
+ if (index >= 0) {
10
+ array.splice(index, 1)
11
+ }
12
+ }
13
+ export function isNonEmptyArray<T>(value: unknown): value is T[] {
14
+ return Array.isArray(value) && value.length > 0
15
+ }
@@ -0,0 +1,39 @@
1
+ // Exported only for tests
2
+ export const enum Browser {
3
+ CHROMIUM,
4
+ SAFARI,
5
+ OTHER,
6
+ }
7
+
8
+ export function isChromium() {
9
+ return detectBrowserCached() === Browser.CHROMIUM
10
+ }
11
+
12
+ export function isSafari() {
13
+ return detectBrowserCached() === Browser.SAFARI
14
+ }
15
+
16
+ let browserCache: Browser | undefined
17
+ function detectBrowserCached() {
18
+ return browserCache ?? (browserCache = detectBrowser())
19
+ }
20
+
21
+ // Exported only for tests
22
+ export function detectBrowser(browserWindow: Window = window) {
23
+ const userAgent = browserWindow.navigator.userAgent
24
+ if ((browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
25
+ return Browser.CHROMIUM
26
+ }
27
+
28
+ if (
29
+ // navigator.vendor is deprecated, but it is the most resilient way we found to detect
30
+ // "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
31
+ // useragent test as a semi-working fallback.
32
+ browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
33
+ (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))
34
+ ) {
35
+ return Browser.SAFARI
36
+ }
37
+
38
+ return Browser.OTHER
39
+ }
@@ -0,0 +1,35 @@
1
+ export const ONE_KIBI_BYTE = 1024
2
+ export const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE
3
+
4
+ // eslint-disable-next-line no-control-regex
5
+ const HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/
6
+
7
+ export interface Uint8ArrayBuffer extends Uint8Array {
8
+ readonly buffer: ArrayBuffer
9
+
10
+ subarray(begin?: number, end?: number): Uint8ArrayBuffer
11
+ }
12
+
13
+ export function computeBytesCount(candidate: string): number {
14
+ // Accurate bytes count computations can degrade performances when there is a lot of events to process
15
+ if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {
16
+ return candidate.length
17
+ }
18
+
19
+ if (window.TextEncoder !== undefined) {
20
+ return new TextEncoder().encode(candidate).length
21
+ }
22
+
23
+ return new Blob([candidate]).size
24
+ }
25
+
26
+ export function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer {
27
+ const length = buffers.reduce((total, buffer) => total + buffer.length, 0)
28
+ const result: Uint8ArrayBuffer = new Uint8Array(length)
29
+ let offset = 0
30
+ for (const buffer of buffers) {
31
+ result.set(buffer, offset)
32
+ offset += buffer.length
33
+ }
34
+ return result
35
+ }
@@ -0,0 +1,45 @@
1
+ import type { TimeoutId } from '../timer'
2
+ import { setTimeout, clearTimeout } from '../timer'
3
+
4
+ // use lodash API
5
+ export function throttle<T extends (...args: any[]) => void>(
6
+ fn: T,
7
+ wait: number,
8
+ options?: { leading?: boolean; trailing?: boolean }
9
+ ) {
10
+ const needLeadingExecution = options && options.leading !== undefined ? options.leading : true
11
+ const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true
12
+ let inWaitPeriod = false
13
+ let pendingExecutionWithParameters: Parameters<T> | undefined
14
+ let pendingTimeoutId: TimeoutId
15
+
16
+ return {
17
+ throttled: (...parameters: Parameters<T>) => {
18
+ if (inWaitPeriod) {
19
+ pendingExecutionWithParameters = parameters
20
+ return
21
+ }
22
+ if (needLeadingExecution) {
23
+ fn(...parameters)
24
+ } else {
25
+ pendingExecutionWithParameters = parameters
26
+ }
27
+ inWaitPeriod = true
28
+ pendingTimeoutId = setTimeout(() => {
29
+ if (needTrailingExecution && pendingExecutionWithParameters) {
30
+ fn(...pendingExecutionWithParameters)
31
+ }
32
+ inWaitPeriod = false
33
+ pendingExecutionWithParameters = undefined
34
+ }, wait)
35
+ },
36
+ cancel: () => {
37
+ clearTimeout(pendingTimeoutId)
38
+ inWaitPeriod = false
39
+ pendingExecutionWithParameters = undefined
40
+ },
41
+ }
42
+ }
43
+
44
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
45
+ export function noop() {}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Return true if the draw is successful
3
+ *
4
+ * @param threshold - Threshold between 0 and 100
5
+ */
6
+ export function performDraw(threshold: number): boolean {
7
+ return threshold !== 0 && Math.random() * 100 <= threshold
8
+ }
9
+
10
+ export function round(num: number, decimals: 0 | 1 | 2 | 3 | 4) {
11
+ return +num.toFixed(decimals)
12
+ }
13
+
14
+ export function isPercentage(value: unknown) {
15
+ return isNumber(value) && value >= 0 && value <= 100
16
+ }
17
+
18
+ export function isNumber(value: unknown): value is number {
19
+ return typeof value === 'number'
20
+ }
@@ -0,0 +1,19 @@
1
+ export function shallowClone<T>(object: T): T & Record<string, never> {
2
+ return { ...object } as T & Record<string, never>
3
+ }
4
+
5
+ export function objectHasValue<T extends { [key: string]: unknown }>(object: T, value: unknown): value is T[keyof T] {
6
+ return Object.keys(object).some((key) => object[key] === value)
7
+ }
8
+
9
+ export function isEmptyObject(object: object) {
10
+ return Object.keys(object).length === 0
11
+ }
12
+
13
+ export function mapValues<A, B>(object: { [key: string]: A }, fn: (arg: A) => B) {
14
+ const newObject: { [key: string]: B } = {}
15
+ for (const key of Object.keys(object)) {
16
+ newObject[key] = fn(object[key])
17
+ }
18
+ return newObject
19
+ }
@@ -0,0 +1,23 @@
1
+ export function findLast<T, S extends T>(
2
+ array: readonly T[],
3
+ predicate: (item: T, index: number, array: readonly T[]) => item is S
4
+ ): S | undefined {
5
+ for (let i = array.length - 1; i >= 0; i -= 1) {
6
+ const item = array[i]
7
+ if (predicate(item, i, array)) {
8
+ return item
9
+ }
10
+ }
11
+ return undefined
12
+ }
13
+
14
+ // Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using
15
+ // the native Object.values and Object.entries directly
16
+
17
+ export function objectValues<T = unknown>(object: { [key: string]: T }) {
18
+ return Object.values(object)
19
+ }
20
+
21
+ export function objectEntries<T = unknown>(object: { [key: string]: T }): Array<[string, T]> {
22
+ return Object.entries(object)
23
+ }
@@ -0,0 +1,12 @@
1
+ export function isServerError(status: number) {
2
+ return status >= 500
3
+ }
4
+
5
+ export function tryToClone(response: Response): Response | undefined {
6
+ try {
7
+ return response.clone()
8
+ } catch {
9
+ // clone can throw if the response has already been used by another instrumentation or is disturbed
10
+ return
11
+ }
12
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * UUID v4
3
+ * from https://gist.github.com/jed/982883
4
+ */
5
+ export function generateUUID(placeholder?: string): string {
6
+ return placeholder
7
+ ? // eslint-disable-next-line no-bitwise
8
+ (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)
9
+ : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID)
10
+ }
11
+
12
+ const COMMA_SEPARATED_KEY_VALUE = /([\w-]+)\s*=\s*([^;]+)/g
13
+
14
+ export function findCommaSeparatedValue(rawString: string, name: string): string | undefined {
15
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
16
+ while (true) {
17
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
18
+ if (match) {
19
+ if (match[1] === name) {
20
+ return match[2]
21
+ }
22
+ } else {
23
+ break
24
+ }
25
+ }
26
+ }
27
+
28
+ export function findCommaSeparatedValues(rawString: string): Map<string, string> {
29
+ const result = new Map<string, string>()
30
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
31
+ while (true) {
32
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
33
+ if (match) {
34
+ result.set(match[1], match[2])
35
+ } else {
36
+ break
37
+ }
38
+ }
39
+ return result
40
+ }
41
+
42
+ export function safeTruncate(candidate: string, length: number, suffix = '') {
43
+ const lastChar = candidate.charCodeAt(length - 1)
44
+ const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff
45
+ const correctedLength = isLastCharSurrogatePair ? length + 1 : length
46
+
47
+ if (candidate.length <= correctedLength) {
48
+ return candidate
49
+ }
50
+
51
+ return `${candidate.slice(0, correctedLength)}${suffix}`
52
+ }
@@ -0,0 +1,117 @@
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
+ }
@@ -0,0 +1,9 @@
1
+ export function getTimeZone() {
2
+ try {
3
+ const intl = new Intl.DateTimeFormat()
4
+
5
+ return intl.resolvedOptions().timeZone
6
+ } catch {
7
+ return undefined
8
+ }
9
+ }
@@ -0,0 +1,12 @@
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
+ }
@@ -0,0 +1,56 @@
1
+ import { globalObject } from '../globalObject'
2
+
3
+ export function normalizeUrl(url: string) {
4
+ return buildUrl(url, location.href).href
5
+ }
6
+
7
+ export function isValidUrl(url: string) {
8
+ try {
9
+ return !!buildUrl(url)
10
+ } catch {
11
+ return false
12
+ }
13
+ }
14
+
15
+ export function getPathName(url: string) {
16
+ const pathname = buildUrl(url).pathname
17
+ return pathname[0] === '/' ? pathname : `/${pathname}`
18
+ }
19
+
20
+ export function buildUrl(url: string, base?: string) {
21
+ const { URL } = getPristineWindow()
22
+
23
+ try {
24
+ return base !== undefined ? new URL(url, base) : new URL(url)
25
+ } catch (error) {
26
+ throw new Error(`Failed to construct URL: ${String(error)}`)
27
+ }
28
+ }
29
+
30
+ /**
31
+ * Get native URL constructor from a clean iframe
32
+ * This avoids polyfill issues by getting the native implementation from a fresh iframe context
33
+ * Falls back to the original URL constructor if iframe approach fails
34
+ */
35
+ let getPristineGlobalObjectCache: Pick<typeof window, 'URL'> | undefined
36
+
37
+ export function getPristineWindow() {
38
+ if (!getPristineGlobalObjectCache) {
39
+ let iframe: HTMLIFrameElement | undefined
40
+ let pristineWindow: Window & typeof globalThis
41
+ try {
42
+ iframe = document.createElement('iframe')
43
+ iframe.style.display = 'none'
44
+ document.body.appendChild(iframe)
45
+ pristineWindow = iframe.contentWindow as Window & typeof globalThis
46
+ } catch {
47
+ pristineWindow = globalObject as unknown as Window & typeof globalThis
48
+ }
49
+ getPristineGlobalObjectCache = {
50
+ URL: pristineWindow.URL,
51
+ }
52
+ iframe?.remove()
53
+ }
54
+
55
+ return getPristineGlobalObjectCache
56
+ }
@@ -0,0 +1,151 @@
1
+ import { setInterval, clearInterval } from './timer'
2
+ import type { TimeoutId } from './timer'
3
+ import { removeItem } from './utils/arrayUtils'
4
+ import type { Duration, RelativeTime } from './utils/timeUtils'
5
+ import { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils'
6
+
7
+ const END_OF_TIMES = Infinity as RelativeTime
8
+
9
+ export interface ValueHistoryEntry<T> {
10
+ startTime: RelativeTime
11
+ endTime: RelativeTime
12
+ value: T
13
+ remove(): void
14
+ close(endTime: RelativeTime): void
15
+ }
16
+
17
+ export const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE
18
+
19
+ /**
20
+ * Store and keep track of values spans. This whole cache assumes that values are added in
21
+ * chronological order (i.e. all entries have an increasing start time).
22
+ */
23
+ export interface ValueHistory<Value> {
24
+ add: (value: Value, startTime: RelativeTime) => ValueHistoryEntry<Value>
25
+ find: (startTime?: RelativeTime, options?: { returnInactive: boolean }) => Value | undefined
26
+
27
+ closeActive: (endTime: RelativeTime) => void
28
+ findAll: (startTime?: RelativeTime, duration?: Duration) => Value[]
29
+ reset: () => void
30
+ stop: () => void
31
+ }
32
+
33
+ let cleanupHistoriesInterval: TimeoutId | null = null
34
+
35
+ const cleanupTasks: Set<() => void> = new Set()
36
+
37
+ function cleanupHistories() {
38
+ cleanupTasks.forEach((task) => task())
39
+ }
40
+
41
+ export function createValueHistory<Value>({
42
+ expireDelay,
43
+ maxEntries,
44
+ }: {
45
+ expireDelay: number
46
+ maxEntries?: number
47
+ }): ValueHistory<Value> {
48
+ let entries: Array<ValueHistoryEntry<Value>> = []
49
+
50
+ if (!cleanupHistoriesInterval) {
51
+ cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL)
52
+ }
53
+
54
+ const clearExpiredValues = () => {
55
+ const oldTimeThreshold = relativeNow() - expireDelay
56
+ while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {
57
+ entries.pop()
58
+ }
59
+ }
60
+
61
+ cleanupTasks.add(clearExpiredValues)
62
+
63
+ /**
64
+ * Add a value to the history associated with a start time. Returns a reference to this newly
65
+ * added entry that can be removed or closed.
66
+ */
67
+ function add(value: Value, startTime: RelativeTime): ValueHistoryEntry<Value> {
68
+ const entry: ValueHistoryEntry<Value> = {
69
+ value,
70
+ startTime,
71
+ endTime: END_OF_TIMES,
72
+ remove: () => {
73
+ removeItem(entries, entry)
74
+ },
75
+ close: (endTime: RelativeTime) => {
76
+ entry.endTime = endTime
77
+ },
78
+ }
79
+
80
+ if (maxEntries && entries.length >= maxEntries) {
81
+ entries.pop()
82
+ }
83
+
84
+ entries.unshift(entry)
85
+
86
+ return entry
87
+ }
88
+
89
+ /**
90
+ * Return the latest value that was active during `startTime`, or the currently active value
91
+ * if no `startTime` is provided. This method assumes that entries are not overlapping.
92
+ *
93
+ * If `option.returnInactive` is true, returns the value at `startTime` (active or not).
94
+ */
95
+ function find(
96
+ startTime: RelativeTime = END_OF_TIMES,
97
+ options: { returnInactive: boolean } = { returnInactive: false }
98
+ ): Value | undefined {
99
+ for (const entry of entries) {
100
+ if (entry.startTime <= startTime) {
101
+ if (options.returnInactive || startTime <= entry.endTime) {
102
+ return entry.value
103
+ }
104
+ break
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Helper function to close the currently active value, if any. This method assumes that entries
111
+ * are not overlapping.
112
+ */
113
+ function closeActive(endTime: RelativeTime) {
114
+ const latestEntry = entries[0]
115
+ if (latestEntry && latestEntry.endTime === END_OF_TIMES) {
116
+ latestEntry.close(endTime)
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Return all values with an active period overlapping with the duration,
122
+ * or all values that were active during `startTime` if no duration is provided,
123
+ * or all currently active values if no `startTime` is provided.
124
+ */
125
+ function findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {
126
+ const endTime = addDuration(startTime, duration)
127
+ return entries
128
+ .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)
129
+ .map((entry) => entry.value)
130
+ }
131
+
132
+ /**
133
+ * Remove all entries from this collection.
134
+ */
135
+ function reset() {
136
+ entries = []
137
+ }
138
+
139
+ /**
140
+ * Stop internal garbage collection of past entries.
141
+ */
142
+ function stop() {
143
+ cleanupTasks.delete(clearExpiredValues)
144
+ if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {
145
+ clearInterval(cleanupHistoriesInterval)
146
+ cleanupHistoriesInterval = null
147
+ }
148
+ }
149
+
150
+ return { add, find, closeActive, findAll, reset, stop }
151
+ }