@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,55 @@
1
+ import { catchUserErrors } from '../tools/catchUserErrors'
2
+ import { setDebugMode } from '../tools/monitor'
3
+ import { display } from '../tools/display'
4
+
5
+ // replaced at build time
6
+ declare const __BUILD_ENV__SDK_VERSION__: string
7
+
8
+ export interface PublicApi {
9
+ /**
10
+ * Version of the Logs browser SDK
11
+ */
12
+ version: string
13
+
14
+ /**
15
+ * For CDN async setup: Early RUM API calls must be wrapped in the `window.DD_RUM.onReady()` callback. This ensures the code only gets executed once the SDK is properly loaded.
16
+ *
17
+ * See [CDN async setup](https://docs.datadoghq.com/real_user_monitoring/browser/#cdn-async) for further information.
18
+ */
19
+ onReady: (callback: () => void) => void
20
+ }
21
+
22
+ export function makePublicApi<T extends PublicApi>(stub: Omit<T, keyof PublicApi>): T {
23
+ const publicApi = {
24
+ version: __BUILD_ENV__SDK_VERSION__,
25
+ // This API method is intentionally not monitored, since the only thing executed is the
26
+ // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and
27
+ // we don't want to interfere with the user uncaught exceptions.
28
+ onReady(callback: () => void) {
29
+ callback()
30
+ },
31
+ ...stub,
32
+ }
33
+
34
+ // Add a "hidden" property to set debug mode. We define it that way to hide it
35
+ // as much as possible but of course it's not a real protection.
36
+ Object.defineProperty(publicApi, '_setDebug', {
37
+ get() {
38
+ return setDebugMode
39
+ },
40
+ enumerable: false,
41
+ })
42
+
43
+ return publicApi as T
44
+ }
45
+
46
+ export function defineGlobal<Global, Name extends keyof Global>(global: Global, name: Name, api: Global[Name]) {
47
+ const existingGlobalVariable = global[name] as { q?: Array<() => void>; version?: string } | undefined
48
+ if (existingGlobalVariable && !existingGlobalVariable.q && existingGlobalVariable.version) {
49
+ display.warn('SDK is loaded more than once. This is unsupported and might have unexpected behavior.')
50
+ }
51
+ global[name] = api
52
+ if (existingGlobalVariable && existingGlobalVariable.q) {
53
+ existingGlobalVariable.q.forEach((fn) => catchUserErrors(fn, 'onReady callback threw an error:')())
54
+ }
55
+ }
@@ -0,0 +1,145 @@
1
+ import { monitor } from '../tools/monitor'
2
+ import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue'
3
+ import type { CookieStore, CookieStoreEventMap, VisualViewport, VisualViewportEventMap } from './browser.types'
4
+
5
+ export type TrustableEvent<E extends Event = Event> = E & { __ddIsTrusted?: boolean }
6
+
7
+ export const enum DOM_EVENT {
8
+ BEFORE_UNLOAD = 'beforeunload',
9
+ CLICK = 'click',
10
+ DBL_CLICK = 'dblclick',
11
+ KEY_DOWN = 'keydown',
12
+ LOAD = 'load',
13
+ POP_STATE = 'popstate',
14
+ SCROLL = 'scroll',
15
+ TOUCH_START = 'touchstart',
16
+ TOUCH_END = 'touchend',
17
+ TOUCH_MOVE = 'touchmove',
18
+ VISIBILITY_CHANGE = 'visibilitychange',
19
+ PAGE_SHOW = 'pageshow',
20
+ FREEZE = 'freeze',
21
+ RESUME = 'resume',
22
+ DOM_CONTENT_LOADED = 'DOMContentLoaded',
23
+ POINTER_DOWN = 'pointerdown',
24
+ POINTER_UP = 'pointerup',
25
+ POINTER_CANCEL = 'pointercancel',
26
+ HASH_CHANGE = 'hashchange',
27
+ PAGE_HIDE = 'pagehide',
28
+ MOUSE_DOWN = 'mousedown',
29
+ MOUSE_UP = 'mouseup',
30
+ MOUSE_MOVE = 'mousemove',
31
+ FOCUS = 'focus',
32
+ BLUR = 'blur',
33
+ CONTEXT_MENU = 'contextmenu',
34
+ RESIZE = 'resize',
35
+ CHANGE = 'change',
36
+ INPUT = 'input',
37
+ PLAY = 'play',
38
+ PAUSE = 'pause',
39
+ SECURITY_POLICY_VIOLATION = 'securitypolicyviolation',
40
+ SELECTION_CHANGE = 'selectionchange',
41
+ STORAGE = 'storage',
42
+ }
43
+
44
+ interface AddEventListenerOptions {
45
+ once?: boolean
46
+ capture?: boolean
47
+ passive?: boolean
48
+ }
49
+
50
+ type EventMapFor<T> = T extends Window
51
+ ? WindowEventMap & {
52
+ // TS 4.9.5 does not support `freeze` and `resume` events yet
53
+ freeze: Event
54
+ resume: Event
55
+ // TS 4.9.5 does not define `visibilitychange` on Window (only Document)
56
+ visibilitychange: Event
57
+ }
58
+ : T extends Document
59
+ ? DocumentEventMap
60
+ : T extends HTMLElement
61
+ ? HTMLElementEventMap
62
+ : T extends VisualViewport
63
+ ? VisualViewportEventMap
64
+ : T extends ShadowRoot
65
+ ? // ShadowRootEventMap is not yet defined in our supported TS version. Instead, use
66
+ // GlobalEventHandlersEventMap which is more than enough as we only need to listen for events bubbling
67
+ // through the ShadowRoot like "change" or "input"
68
+ GlobalEventHandlersEventMap
69
+ : T extends XMLHttpRequest
70
+ ? XMLHttpRequestEventMap
71
+ : T extends Performance
72
+ ? PerformanceEventMap
73
+ : T extends Worker
74
+ ? WorkerEventMap
75
+ : T extends CookieStore
76
+ ? CookieStoreEventMap
77
+ : Record<never, never>
78
+
79
+ /**
80
+ * Add an event listener to an event target object (Window, Element, mock object...). This provides
81
+ * a few conveniences compared to using `element.addEventListener` directly:
82
+ *
83
+ * * supports IE11 by: using an option object only if needed and emulating the `once` option
84
+ *
85
+ * * wraps the listener with a `monitor` function
86
+ *
87
+ * * returns a `stop` function to remove the listener
88
+ */
89
+ export function addEventListener<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(
90
+ configuration: { allowUntrustedEvents?: boolean | undefined },
91
+ eventTarget: Target,
92
+ eventName: EventName,
93
+ listener: (event: EventMapFor<Target>[EventName] & { type: EventName }) => void,
94
+ options?: AddEventListenerOptions
95
+ ) {
96
+ return addEventListeners(configuration, eventTarget, [eventName], listener, options)
97
+ }
98
+
99
+ /**
100
+ * Add event listeners to an event target object (Window, Element, mock object...). This provides
101
+ * a few conveniences compared to using `element.addEventListener` directly:
102
+ *
103
+ * * supports IE11 by: using an option object only if needed and emulating the `once` option
104
+ *
105
+ * * wraps the listener with a `monitor` function
106
+ *
107
+ * * returns a `stop` function to remove the listener
108
+ *
109
+ * * with `once: true`, the listener will be called at most once, even if different events are listened
110
+ */
111
+ export function addEventListeners<Target extends EventTarget, EventName extends keyof EventMapFor<Target> & string>(
112
+ configuration: { allowUntrustedEvents?: boolean | undefined },
113
+ eventTarget: Target,
114
+ eventNames: EventName[],
115
+ listener: (event: EventMapFor<Target>[EventName] & { type: EventName }) => void,
116
+ { once, capture, passive }: AddEventListenerOptions = {}
117
+ ) {
118
+ const listenerWithMonitor = monitor((event: TrustableEvent) => {
119
+ if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {
120
+ return
121
+ }
122
+ if (once) {
123
+ stop()
124
+ }
125
+ listener(event as unknown as EventMapFor<Target>[EventName] & { type: EventName })
126
+ })
127
+
128
+ const options = passive ? { capture, passive } : capture
129
+
130
+ // Use the window.EventTarget.prototype when possible to avoid wrong overrides (e.g: https://github.com/salesforce/lwc/issues/1824)
131
+ const listenerTarget =
132
+ window.EventTarget && eventTarget instanceof EventTarget ? window.EventTarget.prototype : eventTarget
133
+
134
+ const add = getZoneJsOriginalValue(listenerTarget, 'addEventListener')
135
+ eventNames.forEach((eventName) => add.call(eventTarget, eventName, listenerWithMonitor, options))
136
+
137
+ function stop() {
138
+ const remove = getZoneJsOriginalValue(listenerTarget, 'removeEventListener')
139
+ eventNames.forEach((eventName) => remove.call(eventTarget, eventName, listenerWithMonitor, options))
140
+ }
141
+
142
+ return {
143
+ stop,
144
+ }
145
+ }
@@ -0,0 +1,82 @@
1
+ // Those types come from the official TypeScript DOM library, but are not included in our minimal
2
+ // supported TS version.
3
+ // https://github.com/microsoft/TypeScript/blob/13c374a868c926f6a907666a5599992c1351b773/src/lib/dom.generated.d.ts#L15399-L15418
4
+
5
+ export interface VisualViewportEventMap {
6
+ resize: Event
7
+ scroll: Event
8
+ }
9
+
10
+ export interface VisualViewport extends EventTarget {
11
+ readonly height: number
12
+ readonly offsetLeft: number
13
+ readonly offsetTop: number
14
+ onresize: ((this: VisualViewport, ev: Event) => any) | null
15
+ onscroll: ((this: VisualViewport, ev: Event) => any) | null
16
+ readonly pageLeft: number
17
+ readonly pageTop: number
18
+ readonly scale: number
19
+ readonly width: number
20
+ addEventListener<K extends keyof VisualViewportEventMap>(
21
+ type: K,
22
+ listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any,
23
+ options?: boolean | AddEventListenerOptions
24
+ ): void
25
+ addEventListener(
26
+ type: string,
27
+ listener: EventListenerOrEventListenerObject,
28
+ options?: boolean | AddEventListenerOptions
29
+ ): void
30
+ removeEventListener<K extends keyof VisualViewportEventMap>(
31
+ type: K,
32
+ listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any,
33
+ options?: boolean | EventListenerOptions
34
+ ): void
35
+ removeEventListener(
36
+ type: string,
37
+ listener: EventListenerOrEventListenerObject,
38
+ options?: boolean | EventListenerOptions
39
+ ): void
40
+ }
41
+
42
+ export interface WeakRef<T extends object> {
43
+ readonly [Symbol.toStringTag]: 'WeakRef'
44
+
45
+ deref(): T | undefined
46
+ }
47
+
48
+ export interface WeakRefConstructor {
49
+ readonly prototype: WeakRef<any>
50
+
51
+ new <T extends object>(target: T): WeakRef<T>
52
+ }
53
+
54
+ export interface CookieStore extends EventTarget {
55
+ get(name: string): Promise<unknown>
56
+ getAll(name?: string): Promise<
57
+ Array<{
58
+ name: string
59
+ value: string
60
+ domain?: string
61
+ path?: string
62
+ expires?: number
63
+ secure?: boolean
64
+ sameSite?: 'strict' | 'lax' | 'none'
65
+ partitioned?: boolean
66
+ }>
67
+ >
68
+ }
69
+
70
+ export interface CookieStoreEventMap {
71
+ change: CookieChangeEvent
72
+ }
73
+
74
+ export interface CookieChangeItem {
75
+ name: string
76
+ value: string | undefined
77
+ }
78
+
79
+ export type CookieChangeEvent = Event & {
80
+ changed: CookieChangeItem[]
81
+ deleted: CookieChangeItem[]
82
+ }
@@ -0,0 +1,107 @@
1
+ import { display } from '../tools/display'
2
+ import { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils'
3
+ import { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils'
4
+ import { buildUrl } from '../tools/utils/urlPolyfill'
5
+
6
+ export interface CookieOptions {
7
+ secure?: boolean
8
+ crossSite?: boolean
9
+ partitioned?: boolean
10
+ domain?: string
11
+ }
12
+
13
+ export function setCookie(name: string, value: string, expireDelay: number = 0, options?: CookieOptions) {
14
+ const date = new Date()
15
+ date.setTime(date.getTime() + expireDelay)
16
+ const expires = `expires=${date.toUTCString()}`
17
+ const sameSite = options && options.crossSite ? 'none' : 'strict'
18
+ const domain = options && options.domain ? `;domain=${options.domain}` : ''
19
+ const secure = options && options.secure ? ';secure' : ''
20
+ const partitioned = options && options.partitioned ? ';partitioned' : ''
21
+ document.cookie = `${name}=${value};${expires};path=/;samesite=${sameSite}${domain}${secure}${partitioned}`
22
+ }
23
+
24
+ export function getCookie(name: string) {
25
+ return findCommaSeparatedValue(document.cookie, name)
26
+ }
27
+
28
+ let initCookieParsed: Map<string, string> | undefined
29
+
30
+ /**
31
+ * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)
32
+ * to avoid accessing document.cookie multiple times.
33
+ */
34
+ export function getInitCookie(name: string) {
35
+ if (!initCookieParsed) {
36
+ initCookieParsed = findCommaSeparatedValues(document.cookie)
37
+ }
38
+ return initCookieParsed.get(name)
39
+ }
40
+
41
+ export function resetInitCookies() {
42
+ initCookieParsed = undefined
43
+ }
44
+
45
+ export function deleteCookie(name: string, options?: CookieOptions) {
46
+ setCookie(name, '', 0, options)
47
+ }
48
+
49
+ export function areCookiesAuthorized(options: CookieOptions): boolean {
50
+ if (document.cookie === undefined || document.cookie === null) {
51
+ return false
52
+ }
53
+ try {
54
+ // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
55
+ // the test cookie lifetime
56
+ const testCookieName = `dd_cookie_test_${generateUUID()}`
57
+ const testCookieValue = 'test'
58
+ setCookie(testCookieName, testCookieValue, ONE_MINUTE, options)
59
+ const isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue
60
+ deleteCookie(testCookieName, options)
61
+ return isCookieCorrectlySet
62
+ } catch (error) {
63
+ display.error(error)
64
+ return false
65
+ }
66
+ }
67
+
68
+ /**
69
+ * No API to retrieve it, number of levels for subdomain and suffix are unknown
70
+ * strategy: find the minimal domain on which cookies are allowed to be set
71
+ * https://web.dev/same-site-same-origin/#site
72
+ */
73
+ let getCurrentSiteCache: string | undefined
74
+ export function getCurrentSite(hostname = location.hostname, referrer = document.referrer): string | undefined {
75
+ if (getCurrentSiteCache === undefined) {
76
+ const defaultHostName = getCookieDefaultHostName(hostname, referrer)
77
+ if (defaultHostName) {
78
+ // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
79
+ // the test cookie lifetime
80
+ const testCookieName = `dd_site_test_${generateUUID()}`
81
+ const testCookieValue = 'test'
82
+
83
+ const domainLevels = defaultHostName.split('.')
84
+ let candidateDomain = domainLevels.pop()!
85
+ while (domainLevels.length && !getCookie(testCookieName)) {
86
+ candidateDomain = `${domainLevels.pop()!}.${candidateDomain}`
87
+ setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain })
88
+ }
89
+ deleteCookie(testCookieName, { domain: candidateDomain })
90
+ getCurrentSiteCache = candidateDomain
91
+ }
92
+ }
93
+
94
+ return getCurrentSiteCache
95
+ }
96
+
97
+ function getCookieDefaultHostName(hostname: string, referrer: string) {
98
+ try {
99
+ return hostname || buildUrl(referrer).hostname
100
+ } catch {
101
+ // Ignore
102
+ }
103
+ }
104
+
105
+ export function resetGetCurrentSite() {
106
+ getCurrentSiteCache = undefined
107
+ }
@@ -0,0 +1,127 @@
1
+ import type { InstrumentedMethodCall } from '../tools/instrumentMethod'
2
+ import { instrumentMethod } from '../tools/instrumentMethod'
3
+ import { monitor } from '../tools/monitor'
4
+ import { Observable } from '../tools/observable'
5
+ import type { ClocksState } from '../tools/utils/timeUtils'
6
+ import { clocksNow } from '../tools/utils/timeUtils'
7
+ import { normalizeUrl } from '../tools/utils/urlPolyfill'
8
+ import type { GlobalObject } from '../tools/globalObject'
9
+ import { globalObject } from '../tools/globalObject'
10
+
11
+ interface FetchContextBase {
12
+ method: string
13
+ startClocks: ClocksState
14
+ input: unknown
15
+ init?: RequestInit
16
+ url: string
17
+ handlingStack?: string
18
+ }
19
+
20
+ export interface FetchStartContext extends FetchContextBase {
21
+ state: 'start'
22
+ }
23
+
24
+ export interface FetchResolveContext extends FetchContextBase {
25
+ state: 'resolve'
26
+ status: number
27
+ response?: Response
28
+ responseType?: string
29
+ isAborted: boolean
30
+ error?: Error
31
+ }
32
+
33
+ export type FetchContext = FetchStartContext | FetchResolveContext
34
+
35
+ let fetchObservable: Observable<FetchContext> | undefined
36
+
37
+ export function initFetchObservable() {
38
+ if (!fetchObservable) {
39
+ fetchObservable = createFetchObservable()
40
+ }
41
+ return fetchObservable
42
+ }
43
+
44
+ export function resetFetchObservable() {
45
+ fetchObservable = undefined
46
+ }
47
+
48
+ function createFetchObservable() {
49
+ return new Observable<FetchContext>((observable) => {
50
+ if (!globalObject.fetch) {
51
+ return
52
+ }
53
+
54
+ const { stop } = instrumentMethod(globalObject, 'fetch', (call) => beforeSend(call, observable), {
55
+ computeHandlingStack: true,
56
+ })
57
+
58
+ return stop
59
+ })
60
+ }
61
+
62
+ function beforeSend(
63
+ { parameters, onPostCall, handlingStack }: InstrumentedMethodCall<GlobalObject, 'fetch'>,
64
+ observable: Observable<FetchContext>
65
+ ) {
66
+ const [input, init] = parameters
67
+ let methodFromParams = init && init.method
68
+
69
+ if (methodFromParams === undefined && input instanceof Request) {
70
+ methodFromParams = input.method
71
+ }
72
+
73
+ const method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET'
74
+ const url = input instanceof Request ? input.url : normalizeUrl(String(input))
75
+ const startClocks = clocksNow()
76
+
77
+ const context: FetchStartContext = {
78
+ state: 'start',
79
+ init,
80
+ input,
81
+ method,
82
+ startClocks,
83
+ url,
84
+ handlingStack,
85
+ }
86
+
87
+ observable.notify(context)
88
+
89
+ // Those properties can be changed by observable subscribers
90
+ parameters[0] = context.input as RequestInfo | URL
91
+ parameters[1] = context.init
92
+
93
+ onPostCall((responsePromise) => afterSend(observable, responsePromise, context))
94
+ }
95
+
96
+ function afterSend(
97
+ observable: Observable<FetchContext>,
98
+ responsePromise: Promise<Response>,
99
+ startContext: FetchStartContext
100
+ ) {
101
+ const context = startContext as unknown as FetchResolveContext
102
+
103
+ function reportFetch(partialContext: Partial<FetchResolveContext>) {
104
+ context.state = 'resolve'
105
+ Object.assign(context, partialContext)
106
+ observable.notify(context)
107
+ }
108
+
109
+ responsePromise.then(
110
+ monitor((response) => {
111
+ reportFetch({
112
+ response,
113
+ responseType: response.type,
114
+ status: response.status,
115
+ isAborted: false,
116
+ })
117
+ }),
118
+ monitor((error: Error) => {
119
+ reportFetch({
120
+ status: 0,
121
+ isAborted:
122
+ context.init?.signal?.aborted || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),
123
+ error,
124
+ })
125
+ })
126
+ )
127
+ }
@@ -0,0 +1,56 @@
1
+ import { Observable } from '../tools/observable'
2
+ import { objectValues } from '../tools/utils/polyfills'
3
+ import type { Configuration } from '../domain/configuration'
4
+ import { addEventListeners, addEventListener, DOM_EVENT } from './addEventListener'
5
+
6
+ export const PageExitReason = {
7
+ HIDDEN: 'visibility_hidden',
8
+ UNLOADING: 'before_unload',
9
+ PAGEHIDE: 'page_hide',
10
+ FROZEN: 'page_frozen',
11
+ } as const
12
+
13
+ export type PageExitReason = (typeof PageExitReason)[keyof typeof PageExitReason]
14
+
15
+ export interface PageMayExitEvent {
16
+ reason: PageExitReason
17
+ }
18
+
19
+ export function createPageMayExitObservable(configuration: Configuration): Observable<PageMayExitEvent> {
20
+ return new Observable<PageMayExitEvent>((observable) => {
21
+ const { stop: stopListeners } = addEventListeners(
22
+ configuration,
23
+ window,
24
+ [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE],
25
+ (event) => {
26
+ if (event.type === DOM_EVENT.VISIBILITY_CHANGE && document.visibilityState === 'hidden') {
27
+ /**
28
+ * Only event that guarantee to fire on mobile devices when the page transitions to background state
29
+ * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
30
+ */
31
+ observable.notify({ reason: PageExitReason.HIDDEN })
32
+ } else if (event.type === DOM_EVENT.FREEZE) {
33
+ /**
34
+ * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)
35
+ * Allow to collect events happening between hidden and frozen state.
36
+ */
37
+ observable.notify({ reason: PageExitReason.FROZEN })
38
+ }
39
+ },
40
+ { capture: true }
41
+ )
42
+
43
+ const stopBeforeUnloadListener = addEventListener(configuration, window, DOM_EVENT.BEFORE_UNLOAD, () => {
44
+ observable.notify({ reason: PageExitReason.UNLOADING })
45
+ }).stop
46
+
47
+ return () => {
48
+ stopListeners()
49
+ stopBeforeUnloadListener()
50
+ }
51
+ })
52
+ }
53
+
54
+ export function isPageExitReason(reason: string): reason is PageExitReason {
55
+ return objectValues(PageExitReason).includes(reason as PageExitReason)
56
+ }
@@ -0,0 +1,25 @@
1
+ import type { Configuration } from '../domain/configuration'
2
+ import { noop } from '../tools/utils/functionUtils'
3
+ import { DOM_EVENT, addEventListener } from './addEventListener'
4
+
5
+ export function runOnReadyState(
6
+ configuration: Configuration,
7
+ expectedReadyState: 'complete' | 'interactive',
8
+ callback: () => void
9
+ ): { stop: () => void } {
10
+ if (document.readyState === expectedReadyState || document.readyState === 'complete') {
11
+ callback()
12
+ return { stop: noop }
13
+ }
14
+ const eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED
15
+ return addEventListener(configuration, window, eventName, callback, { once: true })
16
+ }
17
+
18
+ export function asyncRunOnReadyState(
19
+ configuration: Configuration,
20
+ expectedReadyState: 'complete' | 'interactive'
21
+ ): Promise<void> {
22
+ return new Promise((resolve) => {
23
+ runOnReadyState(configuration, expectedReadyState, resolve)
24
+ })
25
+ }