@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,64 @@
1
+ import type { AbstractHooks } from '../../tools/abstractHooks'
2
+ import { CustomerDataType } from '../context/contextConstants'
3
+ import { storeContextManager } from '../context/storeContextManager'
4
+ import { HookNames, SKIPPED } from '../../tools/abstractHooks'
5
+ import { createContextManager } from '../context/contextManager'
6
+ import type { Configuration } from '../configuration'
7
+ import { isEmptyObject } from '../../tools/utils/objectUtils'
8
+ import type { RelativeTime } from '../../tools/utils/timeUtils'
9
+
10
+ export interface User {
11
+ id?: string | undefined
12
+ email?: string | undefined
13
+ name?: string | undefined
14
+ [key: string]: unknown
15
+ }
16
+
17
+ export function startUserContext(
18
+ hooks: AbstractHooks,
19
+ configuration: Configuration,
20
+ sessionManager: {
21
+ findTrackedSession: (startTime?: RelativeTime) => { anonymousId?: string } | undefined
22
+ },
23
+ productKey: string
24
+ ) {
25
+ const userContextManager = buildUserContextManager()
26
+
27
+ if (configuration.storeContextsAcrossPages) {
28
+ storeContextManager(configuration, userContextManager, productKey, CustomerDataType.User)
29
+ }
30
+
31
+ hooks.register(HookNames.Assemble, ({ eventType, startTime }) => {
32
+ const user = userContextManager.getContext()
33
+ const session = sessionManager.findTrackedSession(startTime)
34
+
35
+ if (session && session.anonymousId && !user.anonymous_id && !!configuration.trackAnonymousUser) {
36
+ user.anonymous_id = session.anonymousId
37
+ }
38
+
39
+ if (isEmptyObject(user)) {
40
+ return SKIPPED
41
+ }
42
+
43
+ return {
44
+ type: eventType,
45
+ usr: user,
46
+ }
47
+ })
48
+
49
+ hooks.register(HookNames.AssembleTelemetry, ({ startTime }) => ({
50
+ anonymous_id: sessionManager.findTrackedSession(startTime)?.anonymousId,
51
+ }))
52
+
53
+ return userContextManager
54
+ }
55
+
56
+ export function buildUserContextManager() {
57
+ return createContextManager('user', {
58
+ propertiesConfig: {
59
+ id: { type: 'string' },
60
+ name: { type: 'string' },
61
+ email: { type: 'string' },
62
+ },
63
+ })
64
+ }
@@ -0,0 +1,57 @@
1
+ import type { Encoder } from '../../tools/encoder'
2
+ import type { Uint8ArrayBuffer } from '../../tools/utils/byteUtils'
3
+
4
+ export type DeflateWorkerAction =
5
+ // Action to send when creating the worker to check if the communication is working correctly.
6
+ // The worker should respond with a 'initialized' response.
7
+ | {
8
+ action: 'init'
9
+ }
10
+ // Action to send when writing some unfinished data. The worker will respond with a 'wrote'
11
+ // response, with the same id and measurements of the wrote data bytes count.
12
+ | {
13
+ action: 'write'
14
+ id: number
15
+ streamId: number
16
+ data: string
17
+ }
18
+ // Action to send when all data has been written and the state of the stream needs to be reset.
19
+ | {
20
+ action: 'reset'
21
+ streamId: number
22
+ }
23
+
24
+ export type DeflateWorkerResponse =
25
+ // Response to 'init' action
26
+ | {
27
+ type: 'initialized'
28
+ version: string
29
+ }
30
+ // Response to 'write' action
31
+ | {
32
+ type: 'wrote'
33
+ id: number
34
+ streamId: number
35
+ result: Uint8ArrayBuffer
36
+ trailer: Uint8ArrayBuffer
37
+ additionalBytesCount: number
38
+ }
39
+ // Could happen at any time when something goes wrong in the worker
40
+ | {
41
+ type: 'errored'
42
+ streamId?: number
43
+ error: Error | string
44
+ }
45
+
46
+ export interface DeflateWorker extends Worker {
47
+ postMessage(message: DeflateWorkerAction): void
48
+ }
49
+
50
+ export type DeflateEncoder = Encoder<Uint8ArrayBuffer> & { stop: () => void }
51
+
52
+ export const enum DeflateEncoderStreamId {
53
+ REPLAY = 1,
54
+ RUM = 2,
55
+ TELEMETRY = 4,
56
+ PROFILING = 6,
57
+ }
@@ -0,0 +1 @@
1
+ export * from './deflate.types'
@@ -0,0 +1,103 @@
1
+ import { sanitize } from '../../tools/serialisation/sanitize'
2
+ import type { ClocksState } from '../../tools/utils/timeUtils'
3
+ import type { Context } from '../../tools/serialisation/context'
4
+ import { jsonStringify } from '../../tools/serialisation/jsonStringify'
5
+ import type { StackTrace } from '../../tools/stackTrace/computeStackTrace'
6
+ import { computeStackTrace } from '../../tools/stackTrace/computeStackTrace'
7
+ import { toStackTraceString } from '../../tools/stackTrace/handlingStack'
8
+ import type { ErrorSource, ErrorHandling, RawError, RawErrorCause, ErrorWithCause, NonErrorPrefix } from './error.types'
9
+
10
+ export const NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error'
11
+
12
+ interface RawErrorParams {
13
+ stackTrace?: StackTrace
14
+ originalError: unknown
15
+ handlingStack?: string
16
+ componentStack?: string
17
+ startClocks: ClocksState
18
+ nonErrorPrefix: NonErrorPrefix
19
+ useFallbackStack?: boolean
20
+ source: ErrorSource
21
+ handling: ErrorHandling
22
+ }
23
+
24
+ export function computeRawError({
25
+ stackTrace,
26
+ originalError,
27
+ handlingStack,
28
+ componentStack,
29
+ startClocks,
30
+ nonErrorPrefix,
31
+ useFallbackStack = true,
32
+ source,
33
+ handling,
34
+ }: RawErrorParams): RawError {
35
+ const isErrorInstance = isError(originalError)
36
+ if (!stackTrace && isErrorInstance) {
37
+ stackTrace = computeStackTrace(originalError)
38
+ }
39
+
40
+ return {
41
+ startClocks,
42
+ source,
43
+ handling,
44
+ handlingStack,
45
+ componentStack,
46
+ originalError,
47
+ type: stackTrace ? stackTrace.name : undefined,
48
+ message: computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError),
49
+ stack: stackTrace ? toStackTraceString(stackTrace) : useFallbackStack ? NO_ERROR_STACK_PRESENT_MESSAGE : undefined,
50
+ causes: isErrorInstance ? flattenErrorCauses(originalError as ErrorWithCause, source) : undefined,
51
+ fingerprint: tryToGetFingerprint(originalError),
52
+ context: tryToGetErrorContext(originalError),
53
+ }
54
+ }
55
+
56
+ function computeMessage(
57
+ stackTrace: StackTrace | undefined,
58
+ isErrorInstance: boolean,
59
+ nonErrorPrefix: NonErrorPrefix,
60
+ originalError: unknown
61
+ ) {
62
+ // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)
63
+ // TODO rework tracekit integration to avoid scattering error building logic
64
+ return stackTrace?.message && stackTrace?.name
65
+ ? stackTrace.message
66
+ : !isErrorInstance
67
+ ? `${nonErrorPrefix} ${jsonStringify(sanitize(originalError))!}`
68
+ : 'Empty message'
69
+ }
70
+
71
+ export function tryToGetFingerprint(originalError: unknown) {
72
+ return isError(originalError) && 'dd_fingerprint' in originalError ? String(originalError.dd_fingerprint) : undefined
73
+ }
74
+
75
+ export function tryToGetErrorContext(originalError: unknown) {
76
+ if (originalError !== null && typeof originalError === 'object' && 'dd_context' in originalError) {
77
+ return originalError.dd_context as Context
78
+ }
79
+ }
80
+
81
+ export function getFileFromStackTraceString(stack: string) {
82
+ return /@ (.+)/.exec(stack)?.[1]
83
+ }
84
+
85
+ export function isError(error: unknown): error is Error {
86
+ return error instanceof Error || Object.prototype.toString.call(error) === '[object Error]'
87
+ }
88
+
89
+ export function flattenErrorCauses(error: ErrorWithCause, parentSource: ErrorSource): RawErrorCause[] | undefined {
90
+ let currentError = error
91
+ const causes: RawErrorCause[] = []
92
+ while (isError(currentError?.cause) && causes.length < 10) {
93
+ const stackTrace = computeStackTrace(currentError.cause)
94
+ causes.push({
95
+ message: currentError.cause.message,
96
+ source: parentSource,
97
+ type: stackTrace?.name,
98
+ stack: stackTrace && toStackTraceString(stackTrace),
99
+ })
100
+ currentError = currentError.cause
101
+ }
102
+ return causes.length ? causes : undefined
103
+ }
@@ -0,0 +1,64 @@
1
+ import type { Context } from '../../tools/serialisation/context'
2
+ import type { ClocksState } from '../../tools/utils/timeUtils'
3
+
4
+ // TS v4.6 introduced Error.cause[1] typed as `Error`. TS v4.8 changed Error.cause to be
5
+ // `unknown`[2].
6
+ //
7
+ // Because we still support TS 3.8, we need to declare our own type. We can remove it once we drop
8
+ // support for TS v4.7 and before. The 'cause' property defined by TS needs to be omitted because
9
+ // we define it with a type `unknown` which is incompatible with TS 4.6 and 4.7.
10
+ //
11
+ // [1]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/#target-es2022
12
+ // [2]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/#lib-d-ts-updates
13
+ export interface ErrorWithCause extends Omit<Error, 'cause'> {
14
+ cause?: unknown
15
+ }
16
+
17
+ export interface RawErrorCause {
18
+ message: string
19
+ source: ErrorSource
20
+ type?: string
21
+ stack?: string
22
+ }
23
+
24
+ export interface Csp {
25
+ disposition: 'enforce' | 'report'
26
+ }
27
+
28
+ export interface RawError {
29
+ startClocks: ClocksState
30
+ message: string
31
+ type?: string
32
+ stack?: string
33
+ source: ErrorSource
34
+ originalError?: unknown
35
+ handling?: ErrorHandling
36
+ handlingStack?: string
37
+ componentStack?: string
38
+ causes?: RawErrorCause[]
39
+ fingerprint?: string
40
+ csp?: Csp
41
+ context?: Context
42
+ }
43
+
44
+ export const ErrorSource = {
45
+ AGENT: 'agent',
46
+ CONSOLE: 'console',
47
+ CUSTOM: 'custom',
48
+ LOGGER: 'logger',
49
+ NETWORK: 'network',
50
+ SOURCE: 'source',
51
+ REPORT: 'report',
52
+ } as const
53
+
54
+ export const enum NonErrorPrefix {
55
+ UNCAUGHT = 'Uncaught',
56
+ PROVIDED = 'Provided',
57
+ }
58
+
59
+ export const enum ErrorHandling {
60
+ HANDLED = 'handled',
61
+ UNHANDLED = 'unhandled',
62
+ }
63
+
64
+ export type ErrorSource = (typeof ErrorSource)[keyof typeof ErrorSource]
@@ -0,0 +1,50 @@
1
+ import { instrumentMethod } from '../../tools/instrumentMethod'
2
+ import { Observable } from '../../tools/observable'
3
+ import { clocksNow } from '../../tools/utils/timeUtils'
4
+ import type { StackTrace } from '../../tools/stackTrace/computeStackTrace'
5
+ import { computeStackTraceFromOnErrorMessage } from '../../tools/stackTrace/computeStackTrace'
6
+ import { getGlobalObject } from '../../tools/globalObject'
7
+ import { computeRawError, isError } from './error'
8
+ import type { RawError } from './error.types'
9
+ import { ErrorHandling, ErrorSource, NonErrorPrefix } from './error.types'
10
+
11
+ export type UnhandledErrorCallback = (originalError: unknown, stackTrace?: StackTrace) => any
12
+
13
+ export function trackRuntimeError() {
14
+ return new Observable<RawError>((observer) => {
15
+ const handleRuntimeError = (originalError: unknown, stackTrace?: StackTrace) => {
16
+ const rawError = computeRawError({
17
+ stackTrace,
18
+ originalError,
19
+ startClocks: clocksNow(),
20
+ nonErrorPrefix: NonErrorPrefix.UNCAUGHT,
21
+ source: ErrorSource.SOURCE,
22
+ handling: ErrorHandling.UNHANDLED,
23
+ })
24
+ observer.notify(rawError)
25
+ }
26
+ const { stop: stopInstrumentingOnError } = instrumentOnError(handleRuntimeError)
27
+ const { stop: stopInstrumentingOnUnhandledRejection } = instrumentUnhandledRejection(handleRuntimeError)
28
+
29
+ return () => {
30
+ stopInstrumentingOnError()
31
+ stopInstrumentingOnUnhandledRejection()
32
+ }
33
+ })
34
+ }
35
+
36
+ export function instrumentOnError(callback: UnhandledErrorCallback) {
37
+ return instrumentMethod(getGlobalObject(), 'onerror', ({ parameters: [messageObj, url, line, column, errorObj] }) => {
38
+ let stackTrace
39
+ if (!isError(errorObj)) {
40
+ stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column)
41
+ }
42
+ callback(errorObj ?? messageObj, stackTrace)
43
+ })
44
+ }
45
+
46
+ export function instrumentUnhandledRejection(callback: UnhandledErrorCallback) {
47
+ return instrumentMethod(getGlobalObject(), 'onunhandledrejection', ({ parameters: [e] }) => {
48
+ callback(e.reason || 'Empty reason')
49
+ })
50
+ }
@@ -0,0 +1,46 @@
1
+ import { setTimeout } from '../../tools/timer'
2
+ import { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils'
3
+ import type { RawError } from '../error/error.types'
4
+ import { ErrorSource } from '../error/error.types'
5
+
6
+ export type EventRateLimiter = ReturnType<typeof createEventRateLimiter>
7
+
8
+ export function createEventRateLimiter(
9
+ eventType: string,
10
+ limit: number,
11
+ onLimitReached: (limitError: RawError) => void
12
+ ) {
13
+ let eventCount = 0
14
+ let allowNextEvent = false
15
+
16
+ return {
17
+ isLimitReached() {
18
+ if (eventCount === 0) {
19
+ setTimeout(() => {
20
+ eventCount = 0
21
+ }, ONE_MINUTE)
22
+ }
23
+
24
+ eventCount += 1
25
+ if (eventCount <= limit || allowNextEvent) {
26
+ allowNextEvent = false
27
+ return false
28
+ }
29
+
30
+ if (eventCount === limit + 1) {
31
+ allowNextEvent = true
32
+ try {
33
+ onLimitReached({
34
+ message: `Reached max number of ${eventType}s by minute: ${limit}`,
35
+ source: ErrorSource.AGENT,
36
+ startClocks: clocksNow(),
37
+ })
38
+ } finally {
39
+ allowNextEvent = false
40
+ }
41
+ }
42
+
43
+ return true
44
+ },
45
+ }
46
+ }
@@ -0,0 +1,28 @@
1
+ export const EXTENSION_PREFIXES = ['chrome-extension://', 'moz-extension://']
2
+
3
+ export function containsExtensionUrl(str: string): boolean {
4
+ return EXTENSION_PREFIXES.some((prefix) => str.includes(prefix))
5
+ }
6
+
7
+ /**
8
+ * Utility function to detect if the SDK is being initialized in an unsupported browser extension environment.
9
+ *
10
+ * @param windowLocation - The current window location to check
11
+ * @param stack - The error stack to check for extension URLs
12
+ * @returns true if running in an unsupported browser extension environment
13
+ */
14
+ export function isUnsupportedExtensionEnvironment(windowLocation: string, stack: string = '') {
15
+ // If the page itself is an extension page.
16
+ if (containsExtensionUrl(windowLocation)) {
17
+ return false
18
+ }
19
+
20
+ // Since we generate the error on the init, we check the 2nd frame line.
21
+ const frameLines = stack.split('\n').filter((line) => {
22
+ const trimmedLine = line.trim()
23
+ return trimmedLine.length && /^at\s+|@/.test(trimmedLine)
24
+ })
25
+ const target = frameLines[1] || ''
26
+
27
+ return containsExtensionUrl(target)
28
+ }
@@ -0,0 +1,17 @@
1
+ export type Site =
2
+ | 'datadoghq.com'
3
+ | 'us3.datadoghq.com'
4
+ | 'us5.datadoghq.com'
5
+ | 'datadoghq.eu'
6
+ | 'ddog-gov.com'
7
+ | 'ap1.datadoghq.com'
8
+ | 'ap2.datadoghq.com'
9
+
10
+ export const INTAKE_SITE_STAGING: Site = 'datad0g.com' as Site
11
+ export const INTAKE_SITE_FED_STAGING: Site = 'dd0g-gov.com' as Site
12
+ export const INTAKE_SITE_US1: Site = 'datadoghq.com'
13
+ export const INTAKE_SITE_EU1: Site = 'datadoghq.eu'
14
+ export const INTAKE_SITE_US1_FED: Site = 'ddog-gov.com'
15
+
16
+ export const PCI_INTAKE_HOST_US1 = 'pci.browser-intake-datadoghq.com'
17
+ export const INTAKE_URL_PARAMETERS = ['ddsource', 'dd-api-key', 'dd-request-id']
@@ -0,0 +1,38 @@
1
+ export type ReportType = DeprecationReport['type'] | InterventionReport['type']
2
+
3
+ interface Report {
4
+ type: ReportType
5
+ url: string
6
+ body: DeprecationReportBody | InterventionReportBody
7
+ toJSON(): any
8
+ }
9
+
10
+ interface ReportBody {
11
+ toJSON(): any
12
+ }
13
+
14
+ export interface DeprecationReport extends Report {
15
+ type: 'deprecation'
16
+ body: DeprecationReportBody
17
+ }
18
+ export interface DeprecationReportBody extends ReportBody {
19
+ id: string
20
+ message: string
21
+ lineNumber: number | null
22
+ columnNumber: number | null
23
+ sourceFile: string | null
24
+ anticipatedRemoval: Date | null
25
+ }
26
+
27
+ export interface InterventionReport extends Report {
28
+ type: 'intervention'
29
+ body: InterventionReportBody
30
+ }
31
+
32
+ export interface InterventionReportBody extends ReportBody {
33
+ id: string
34
+ message: string
35
+ lineNumber: number | null
36
+ columnNumber: number | null
37
+ sourceFile: string | null
38
+ }
@@ -0,0 +1,133 @@
1
+ import { toStackTraceString } from '../../tools/stackTrace/handlingStack'
2
+ import { monitor } from '../../tools/monitor'
3
+ import { mergeObservables, Observable } from '../../tools/observable'
4
+ import { addEventListener, DOM_EVENT } from '../../browser/addEventListener'
5
+ import { safeTruncate } from '../../tools/utils/stringUtils'
6
+ import type { Configuration } from '../configuration'
7
+ import type { RawError } from '../error/error.types'
8
+ import { ErrorHandling, ErrorSource } from '../error/error.types'
9
+ import { clocksNow } from '../../tools/utils/timeUtils'
10
+ import type { ReportType, InterventionReport, DeprecationReport } from './browser.types'
11
+
12
+ export const RawReportType = {
13
+ intervention: 'intervention',
14
+ deprecation: 'deprecation',
15
+ cspViolation: 'csp_violation',
16
+ } as const
17
+
18
+ export type RawReportType = (typeof RawReportType)[keyof typeof RawReportType]
19
+
20
+ export type RawReportError = RawError & {
21
+ originalError: SecurityPolicyViolationEvent | DeprecationReport | InterventionReport
22
+ }
23
+
24
+ export function initReportObservable(configuration: Configuration, apis: RawReportType[]) {
25
+ const observables: Array<Observable<RawReportError>> = []
26
+
27
+ if (apis.includes(RawReportType.cspViolation)) {
28
+ observables.push(createCspViolationReportObservable(configuration))
29
+ }
30
+
31
+ const reportTypes = apis.filter((api: RawReportType): api is ReportType => api !== RawReportType.cspViolation)
32
+ if (reportTypes.length) {
33
+ observables.push(createReportObservable(reportTypes))
34
+ }
35
+
36
+ return mergeObservables(...observables)
37
+ }
38
+
39
+ function createReportObservable(reportTypes: ReportType[]) {
40
+ return new Observable<RawReportError>((observable) => {
41
+ if (!window.ReportingObserver) {
42
+ return
43
+ }
44
+
45
+ const handleReports = monitor((reports: Array<DeprecationReport | InterventionReport>, _: ReportingObserver) =>
46
+ reports.forEach((report) => observable.notify(buildRawReportErrorFromReport(report)))
47
+ ) as ReportingObserverCallback
48
+
49
+ const observer = new window.ReportingObserver(handleReports, {
50
+ types: reportTypes,
51
+ buffered: true,
52
+ })
53
+
54
+ observer.observe()
55
+ return () => {
56
+ observer.disconnect()
57
+ }
58
+ })
59
+ }
60
+
61
+ function createCspViolationReportObservable(configuration: Configuration) {
62
+ return new Observable<RawReportError>((observable) => {
63
+ const { stop } = addEventListener(configuration, document, DOM_EVENT.SECURITY_POLICY_VIOLATION, (event) => {
64
+ observable.notify(buildRawReportErrorFromCspViolation(event))
65
+ })
66
+
67
+ return stop
68
+ })
69
+ }
70
+
71
+ function buildRawReportErrorFromReport(report: DeprecationReport | InterventionReport): RawReportError {
72
+ const { type, body } = report
73
+
74
+ return buildRawReportError({
75
+ type: body.id,
76
+ message: `${type}: ${body.message}`,
77
+ originalError: report,
78
+ stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),
79
+ })
80
+ }
81
+
82
+ function buildRawReportErrorFromCspViolation(event: SecurityPolicyViolationEvent): RawReportError {
83
+ const message = `'${event.blockedURI}' blocked by '${event.effectiveDirective}' directive`
84
+ return buildRawReportError({
85
+ type: event.effectiveDirective,
86
+ message: `${RawReportType.cspViolation}: ${message}`,
87
+ originalError: event,
88
+ csp: {
89
+ disposition: event.disposition,
90
+ },
91
+ stack: buildStack(
92
+ event.effectiveDirective,
93
+ event.originalPolicy
94
+ ? `${message} of the policy "${safeTruncate(event.originalPolicy, 100, '...')}"`
95
+ : 'no policy',
96
+ event.sourceFile,
97
+ event.lineNumber,
98
+ event.columnNumber
99
+ ),
100
+ })
101
+ }
102
+
103
+ function buildRawReportError(partial: Omit<RawReportError, 'startClocks' | 'source' | 'handling'>): RawReportError {
104
+ return {
105
+ startClocks: clocksNow(),
106
+ source: ErrorSource.REPORT,
107
+ handling: ErrorHandling.UNHANDLED,
108
+ ...partial,
109
+ }
110
+ }
111
+
112
+ function buildStack(
113
+ name: string,
114
+ message: string,
115
+ sourceFile: string | null,
116
+ lineNumber: number | null,
117
+ columnNumber: number | null
118
+ ): string | undefined {
119
+ return sourceFile
120
+ ? toStackTraceString({
121
+ name,
122
+ message,
123
+ stack: [
124
+ {
125
+ func: '?',
126
+ url: sourceFile,
127
+ line: lineNumber ?? undefined,
128
+ column: columnNumber ?? undefined,
129
+ },
130
+ ],
131
+ })
132
+ : undefined
133
+ }
@@ -0,0 +1,21 @@
1
+ export const ResourceType = {
2
+ DOCUMENT: 'document',
3
+ XHR: 'xhr',
4
+ BEACON: 'beacon',
5
+ FETCH: 'fetch',
6
+ CSS: 'css',
7
+ JS: 'js',
8
+ IMAGE: 'image',
9
+ FONT: 'font',
10
+ MEDIA: 'media',
11
+ OTHER: 'other',
12
+ } as const
13
+
14
+ export type ResourceType = (typeof ResourceType)[keyof typeof ResourceType]
15
+
16
+ export const RequestType = {
17
+ FETCH: ResourceType.FETCH,
18
+ XHR: ResourceType.XHR,
19
+ } as const
20
+
21
+ export type RequestType = (typeof RequestType)[keyof typeof RequestType]