@kubesense/kubesense-browser-core 1.0.0

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 (725) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/cjs/boot/displayAlreadyInitializedError.d.ts +2 -0
  4. package/cjs/boot/displayAlreadyInitializedError.js +10 -0
  5. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -0
  6. package/cjs/boot/init.d.ts +13 -0
  7. package/cjs/boot/init.js +39 -0
  8. package/cjs/boot/init.js.map +1 -0
  9. package/cjs/browser/addEventListener.d.ts +87 -0
  10. package/cjs/browser/addEventListener.js +55 -0
  11. package/cjs/browser/addEventListener.js.map +1 -0
  12. package/cjs/browser/browser.types.d.ts +51 -0
  13. package/cjs/browser/browser.types.js +6 -0
  14. package/cjs/browser/browser.types.js.map +1 -0
  15. package/cjs/browser/cookie.d.ts +26 -0
  16. package/cjs/browser/cookie.js +112 -0
  17. package/cjs/browser/cookie.js.map +1 -0
  18. package/cjs/browser/fetchObservable.d.ts +38 -0
  19. package/cjs/browser/fetchObservable.js +103 -0
  20. package/cjs/browser/fetchObservable.js.map +1 -0
  21. package/cjs/browser/pageMayExitObservable.d.ts +14 -0
  22. package/cjs/browser/pageMayExitObservable.js +45 -0
  23. package/cjs/browser/pageMayExitObservable.js.map +1 -0
  24. package/cjs/browser/runOnReadyState.d.ts +5 -0
  25. package/cjs/browser/runOnReadyState.js +20 -0
  26. package/cjs/browser/runOnReadyState.js.map +1 -0
  27. package/cjs/browser/xhrObservable.d.ts +24 -0
  28. package/cjs/browser/xhrObservable.js +86 -0
  29. package/cjs/browser/xhrObservable.js.map +1 -0
  30. package/cjs/domain/allowedTrackingOrigins.d.ts +4 -0
  31. package/cjs/domain/allowedTrackingOrigins.js +25 -0
  32. package/cjs/domain/allowedTrackingOrigins.js.map +1 -0
  33. package/cjs/domain/bufferedData.d.ts +14 -0
  34. package/cjs/domain/bufferedData.js +22 -0
  35. package/cjs/domain/bufferedData.js.map +1 -0
  36. package/cjs/domain/configuration/configuration.d.ts +284 -0
  37. package/cjs/domain/configuration/configuration.js +135 -0
  38. package/cjs/domain/configuration/configuration.js.map +1 -0
  39. package/cjs/domain/configuration/endpointBuilder.d.ts +12 -0
  40. package/cjs/domain/configuration/endpointBuilder.js +66 -0
  41. package/cjs/domain/configuration/endpointBuilder.js.map +1 -0
  42. package/cjs/domain/configuration/index.d.ts +6 -0
  43. package/cjs/domain/configuration/index.js +31 -0
  44. package/cjs/domain/configuration/index.js.map +1 -0
  45. package/cjs/domain/configuration/transportConfiguration.d.ts +21 -0
  46. package/cjs/domain/configuration/transportConfiguration.js +58 -0
  47. package/cjs/domain/configuration/transportConfiguration.js.map +1 -0
  48. package/cjs/domain/connectivity/connectivity.d.ts +14 -0
  49. package/cjs/domain/connectivity/connectivity.js +14 -0
  50. package/cjs/domain/connectivity/connectivity.js.map +1 -0
  51. package/cjs/domain/connectivity/index.d.ts +1 -0
  52. package/cjs/domain/connectivity/index.js +18 -0
  53. package/cjs/domain/connectivity/index.js.map +1 -0
  54. package/cjs/domain/console/consoleObservable.d.ts +21 -0
  55. package/cjs/domain/console/consoleObservable.js +84 -0
  56. package/cjs/domain/console/consoleObservable.js.map +1 -0
  57. package/cjs/domain/context/contextConstants.d.ts +21 -0
  58. package/cjs/domain/context/contextConstants.js +18 -0
  59. package/cjs/domain/context/contextConstants.js.map +1 -0
  60. package/cjs/domain/context/contextManager.d.ts +19 -0
  61. package/cjs/domain/context/contextManager.js +59 -0
  62. package/cjs/domain/context/contextManager.js.map +1 -0
  63. package/cjs/domain/context/contextUtils.d.ts +5 -0
  64. package/cjs/domain/context/contextUtils.js +16 -0
  65. package/cjs/domain/context/contextUtils.js.map +1 -0
  66. package/cjs/domain/context/defineContextMethod.d.ts +6 -0
  67. package/cjs/domain/context/defineContextMethod.js +21 -0
  68. package/cjs/domain/context/defineContextMethod.js.map +1 -0
  69. package/cjs/domain/context/storeContextManager.d.ts +6 -0
  70. package/cjs/domain/context/storeContextManager.js +40 -0
  71. package/cjs/domain/context/storeContextManager.js.map +1 -0
  72. package/cjs/domain/contexts/accountContext.d.ts +26 -0
  73. package/cjs/domain/contexts/accountContext.js +33 -0
  74. package/cjs/domain/contexts/accountContext.js.map +1 -0
  75. package/cjs/domain/contexts/globalContext.d.ts +18 -0
  76. package/cjs/domain/contexts/globalContext.js +21 -0
  77. package/cjs/domain/contexts/globalContext.js.map +1 -0
  78. package/cjs/domain/contexts/rumInternalContext.type.d.ts +14 -0
  79. package/cjs/domain/contexts/rumInternalContext.type.js +3 -0
  80. package/cjs/domain/contexts/rumInternalContext.type.js.map +1 -0
  81. package/cjs/domain/contexts/userContext.d.ts +31 -0
  82. package/cjs/domain/contexts/userContext.js +120 -0
  83. package/cjs/domain/contexts/userContext.js.map +1 -0
  84. package/cjs/domain/deflate/deflate.types.d.ts +40 -0
  85. package/cjs/domain/deflate/deflate.types.js +3 -0
  86. package/cjs/domain/deflate/deflate.types.js.map +1 -0
  87. package/cjs/domain/deflate/index.d.ts +1 -0
  88. package/cjs/domain/deflate/index.js +18 -0
  89. package/cjs/domain/deflate/index.js.map +1 -0
  90. package/cjs/domain/error/error.d.ts +23 -0
  91. package/cjs/domain/error/error.js +81 -0
  92. package/cjs/domain/error/error.js.map +1 -0
  93. package/cjs/domain/error/error.types.d.ts +47 -0
  94. package/cjs/domain/error/error.types.js +13 -0
  95. package/cjs/domain/error/error.types.js.map +1 -0
  96. package/cjs/domain/error/trackRuntimeError.d.ts +11 -0
  97. package/cjs/domain/error/trackRuntimeError.js +48 -0
  98. package/cjs/domain/error/trackRuntimeError.js.map +1 -0
  99. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  100. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +41 -0
  101. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  102. package/cjs/domain/extension/extensionUtils.d.ts +10 -0
  103. package/cjs/domain/extension/extensionUtils.js +30 -0
  104. package/cjs/domain/extension/extensionUtils.js.map +1 -0
  105. package/cjs/domain/intakeSites.d.ts +4 -0
  106. package/cjs/domain/intakeSites.js +7 -0
  107. package/cjs/domain/intakeSites.js.map +1 -0
  108. package/cjs/domain/report/browser.types.d.ts +34 -0
  109. package/cjs/domain/report/browser.types.js +3 -0
  110. package/cjs/domain/report/browser.types.js.map +1 -0
  111. package/cjs/domain/report/reportObservable.d.ts +14 -0
  112. package/cjs/domain/report/reportObservable.js +99 -0
  113. package/cjs/domain/report/reportObservable.js.map +1 -0
  114. package/cjs/domain/resourceUtils.d.ts +18 -0
  115. package/cjs/domain/resourceUtils.js +20 -0
  116. package/cjs/domain/resourceUtils.js.map +1 -0
  117. package/cjs/domain/session/oldCookiesMigration.d.ts +11 -0
  118. package/cjs/domain/session/oldCookiesMigration.js +40 -0
  119. package/cjs/domain/session/oldCookiesMigration.js.map +1 -0
  120. package/cjs/domain/session/sessionConstants.d.ts +15 -0
  121. package/cjs/domain/session/sessionConstants.js +16 -0
  122. package/cjs/domain/session/sessionConstants.js.map +1 -0
  123. package/cjs/domain/session/sessionManager.d.ts +28 -0
  124. package/cjs/domain/session/sessionManager.js +201 -0
  125. package/cjs/domain/session/sessionManager.js.map +1 -0
  126. package/cjs/domain/session/sessionState.d.ts +16 -0
  127. package/cjs/domain/session/sessionState.js +70 -0
  128. package/cjs/domain/session/sessionState.js.map +1 -0
  129. package/cjs/domain/session/sessionStateValidation.d.ts +3 -0
  130. package/cjs/domain/session/sessionStateValidation.js +11 -0
  131. package/cjs/domain/session/sessionStateValidation.js.map +1 -0
  132. package/cjs/domain/session/sessionStore.d.ts +38 -0
  133. package/cjs/domain/session/sessionStore.js +186 -0
  134. package/cjs/domain/session/sessionStore.js.map +1 -0
  135. package/cjs/domain/session/sessionStoreOperations.d.ts +12 -0
  136. package/cjs/domain/session/sessionStoreOperations.js +119 -0
  137. package/cjs/domain/session/sessionStoreOperations.js.map +1 -0
  138. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +12 -0
  139. package/cjs/domain/session/storeStrategies/sessionInCookie.js +104 -0
  140. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  141. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +6 -0
  142. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +42 -0
  143. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  144. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  145. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +5 -0
  146. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  147. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  148. package/cjs/domain/synthetics/syntheticsWorkerValues.js +31 -0
  149. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  150. package/cjs/domain/tags.d.ts +6 -0
  151. package/cjs/domain/tags.js +66 -0
  152. package/cjs/domain/tags.js.map +1 -0
  153. package/cjs/domain/telemetry/index.d.ts +4 -0
  154. package/cjs/domain/telemetry/index.js +28 -0
  155. package/cjs/domain/telemetry/index.js.map +1 -0
  156. package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  157. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +9 -0
  158. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  159. package/cjs/domain/telemetry/telemetry.d.ts +56 -0
  160. package/cjs/domain/telemetry/telemetry.js +245 -0
  161. package/cjs/domain/telemetry/telemetry.js.map +1 -0
  162. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +866 -0
  163. package/cjs/domain/telemetry/telemetryEvent.types.js +7 -0
  164. package/cjs/domain/telemetry/telemetryEvent.types.js.map +1 -0
  165. package/cjs/domain/trackingConsent.d.ts +13 -0
  166. package/cjs/domain/trackingConsent.js +28 -0
  167. package/cjs/domain/trackingConsent.js.map +1 -0
  168. package/cjs/domain/userAgentData/index.d.ts +1 -0
  169. package/cjs/domain/userAgentData/index.js +18 -0
  170. package/cjs/domain/userAgentData/index.js.map +1 -0
  171. package/cjs/domain/userAgentData/userAgentData.d.ts +22 -0
  172. package/cjs/domain/userAgentData/userAgentData.js +109 -0
  173. package/cjs/domain/userAgentData/userAgentData.js.map +1 -0
  174. package/cjs/index.d.ts +101 -0
  175. package/cjs/index.js +199 -0
  176. package/cjs/index.js.map +1 -0
  177. package/cjs/tools/abstractHooks.d.ts +24 -0
  178. package/cjs/tools/abstractHooks.js +41 -0
  179. package/cjs/tools/abstractHooks.js.map +1 -0
  180. package/cjs/tools/abstractLifeCycle.d.ts +23 -0
  181. package/cjs/tools/abstractLifeCycle.js +28 -0
  182. package/cjs/tools/abstractLifeCycle.js.map +1 -0
  183. package/cjs/tools/boundedBuffer.d.ts +16 -0
  184. package/cjs/tools/boundedBuffer.js +32 -0
  185. package/cjs/tools/boundedBuffer.js.map +1 -0
  186. package/cjs/tools/catchUserErrors.d.ts +1 -0
  187. package/cjs/tools/catchUserErrors.js +15 -0
  188. package/cjs/tools/catchUserErrors.js.map +1 -0
  189. package/cjs/tools/display.d.ts +38 -0
  190. package/cjs/tools/display.js +44 -0
  191. package/cjs/tools/display.js.map +1 -0
  192. package/cjs/tools/encoder.d.ts +54 -0
  193. package/cjs/tools/encoder.js +40 -0
  194. package/cjs/tools/encoder.js.map +1 -0
  195. package/cjs/tools/experimentalFeatures.d.ts +21 -0
  196. package/cjs/tools/experimentalFeatures.js +50 -0
  197. package/cjs/tools/experimentalFeatures.js.map +1 -0
  198. package/cjs/tools/getZoneJsOriginalValue.d.ts +19 -0
  199. package/cjs/tools/getZoneJsOriginalValue.js +29 -0
  200. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -0
  201. package/cjs/tools/globalObject.d.ts +19 -0
  202. package/cjs/tools/globalObject.js +44 -0
  203. package/cjs/tools/globalObject.js.map +1 -0
  204. package/cjs/tools/instrumentMethod.d.ts +75 -0
  205. package/cjs/tools/instrumentMethod.js +118 -0
  206. package/cjs/tools/instrumentMethod.js.map +1 -0
  207. package/cjs/tools/matchOption.d.ts +8 -0
  208. package/cjs/tools/matchOption.js +35 -0
  209. package/cjs/tools/matchOption.js.map +1 -0
  210. package/cjs/tools/mergeInto.d.ts +25 -0
  211. package/cjs/tools/mergeInto.js +98 -0
  212. package/cjs/tools/mergeInto.js.map +1 -0
  213. package/cjs/tools/monitor.d.ts +9 -0
  214. package/cjs/tools/monitor.js +61 -0
  215. package/cjs/tools/monitor.js.map +1 -0
  216. package/cjs/tools/observable.d.ts +30 -0
  217. package/cjs/tools/observable.js +89 -0
  218. package/cjs/tools/observable.js.map +1 -0
  219. package/cjs/tools/queueMicrotask.d.ts +1 -0
  220. package/cjs/tools/queueMicrotask.js +17 -0
  221. package/cjs/tools/queueMicrotask.js.map +1 -0
  222. package/cjs/tools/readBytesFromStream.d.ts +10 -0
  223. package/cjs/tools/readBytesFromStream.js +28 -0
  224. package/cjs/tools/readBytesFromStream.js.map +1 -0
  225. package/cjs/tools/requestIdleCallback.d.ts +12 -0
  226. package/cjs/tools/requestIdleCallback.js +35 -0
  227. package/cjs/tools/requestIdleCallback.js.map +1 -0
  228. package/cjs/tools/sendToExtension.d.ts +3 -0
  229. package/cjs/tools/sendToExtension.js +11 -0
  230. package/cjs/tools/sendToExtension.js.map +1 -0
  231. package/cjs/tools/serialisation/context.d.ts +9 -0
  232. package/cjs/tools/serialisation/context.js +3 -0
  233. package/cjs/tools/serialisation/context.js.map +1 -0
  234. package/cjs/tools/serialisation/jsonStringify.d.ts +13 -0
  235. package/cjs/tools/serialisation/jsonStringify.js +48 -0
  236. package/cjs/tools/serialisation/jsonStringify.js.map +1 -0
  237. package/cjs/tools/serialisation/sanitize.d.ts +18 -0
  238. package/cjs/tools/serialisation/sanitize.js +188 -0
  239. package/cjs/tools/serialisation/sanitize.js.map +1 -0
  240. package/cjs/tools/stackTrace/computeStackTrace.d.ts +25 -0
  241. package/cjs/tools/stackTrace/computeStackTrace.js +187 -0
  242. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -0
  243. package/cjs/tools/stackTrace/handlingStack.d.ts +10 -0
  244. package/cjs/tools/stackTrace/handlingStack.js +46 -0
  245. package/cjs/tools/stackTrace/handlingStack.js.map +1 -0
  246. package/cjs/tools/taskQueue.d.ts +15 -0
  247. package/cjs/tools/taskQueue.js +54 -0
  248. package/cjs/tools/taskQueue.js.map +1 -0
  249. package/cjs/tools/timer.d.ts +5 -0
  250. package/cjs/tools/timer.js +22 -0
  251. package/cjs/tools/timer.js.map +1 -0
  252. package/cjs/tools/utils/arrayUtils.d.ts +3 -0
  253. package/cjs/tools/utils/arrayUtils.js +20 -0
  254. package/cjs/tools/utils/arrayUtils.js.map +1 -0
  255. package/cjs/tools/utils/browserDetection.d.ts +8 -0
  256. package/cjs/tools/utils/browserDetection.js +33 -0
  257. package/cjs/tools/utils/browserDetection.js.map +1 -0
  258. package/cjs/tools/utils/byteUtils.d.ts +8 -0
  259. package/cjs/tools/utils/byteUtils.js +34 -0
  260. package/cjs/tools/utils/byteUtils.js.map +1 -0
  261. package/cjs/tools/utils/functionUtils.d.ts +8 -0
  262. package/cjs/tools/utils/functionUtils.js +43 -0
  263. package/cjs/tools/utils/functionUtils.js.map +1 -0
  264. package/cjs/tools/utils/numberUtils.d.ts +8 -0
  265. package/cjs/tools/utils/numberUtils.js +23 -0
  266. package/cjs/tools/utils/numberUtils.js.map +1 -0
  267. package/cjs/tools/utils/objectUtils.d.ts +10 -0
  268. package/cjs/tools/utils/objectUtils.js +23 -0
  269. package/cjs/tools/utils/objectUtils.js.map +1 -0
  270. package/cjs/tools/utils/polyfills.d.ts +7 -0
  271. package/cjs/tools/utils/polyfills.js +23 -0
  272. package/cjs/tools/utils/polyfills.js.map +1 -0
  273. package/cjs/tools/utils/responseUtils.d.ts +2 -0
  274. package/cjs/tools/utils/responseUtils.js +17 -0
  275. package/cjs/tools/utils/responseUtils.js.map +1 -0
  276. package/cjs/tools/utils/stringUtils.d.ts +23 -0
  277. package/cjs/tools/utils/stringUtils.js +91 -0
  278. package/cjs/tools/utils/stringUtils.js.map +1 -0
  279. package/cjs/tools/utils/timeUtils.d.ts +53 -0
  280. package/cjs/tools/utils/timeUtils.js +101 -0
  281. package/cjs/tools/utils/timeUtils.js.map +1 -0
  282. package/cjs/tools/utils/timezone.d.ts +1 -0
  283. package/cjs/tools/utils/timezone.js +13 -0
  284. package/cjs/tools/utils/timezone.js.map +1 -0
  285. package/cjs/tools/utils/typeUtils.d.ts +4 -0
  286. package/cjs/tools/utils/typeUtils.js +16 -0
  287. package/cjs/tools/utils/typeUtils.js.map +1 -0
  288. package/cjs/tools/utils/urlPolyfill.d.ts +5 -0
  289. package/cjs/tools/utils/urlPolyfill.js +59 -0
  290. package/cjs/tools/utils/urlPolyfill.js.map +1 -0
  291. package/cjs/tools/valueHistory.d.ts +27 -0
  292. package/cjs/tools/valueHistory.js +104 -0
  293. package/cjs/tools/valueHistory.js.map +1 -0
  294. package/cjs/transport/batch.d.ts +16 -0
  295. package/cjs/transport/batch.js +110 -0
  296. package/cjs/transport/batch.js.map +1 -0
  297. package/cjs/transport/eventBridge.d.ts +21 -0
  298. package/cjs/transport/eventBridge.js +46 -0
  299. package/cjs/transport/eventBridge.js.map +1 -0
  300. package/cjs/transport/flushController.d.ts +65 -0
  301. package/cjs/transport/flushController.js +123 -0
  302. package/cjs/transport/flushController.js.map +1 -0
  303. package/cjs/transport/httpRequest.d.ts +57 -0
  304. package/cjs/transport/httpRequest.js +107 -0
  305. package/cjs/transport/httpRequest.js.map +1 -0
  306. package/cjs/transport/index.d.ts +7 -0
  307. package/cjs/transport/index.js +15 -0
  308. package/cjs/transport/index.js.map +1 -0
  309. package/cjs/transport/sendWithRetryStrategy.d.ts +41 -0
  310. package/cjs/transport/sendWithRetryStrategy.js +163 -0
  311. package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
  312. package/esm/boot/displayAlreadyInitializedError.d.ts +2 -0
  313. package/esm/boot/displayAlreadyInitializedError.js +7 -0
  314. package/esm/boot/displayAlreadyInitializedError.js.map +1 -0
  315. package/esm/boot/init.d.ts +13 -0
  316. package/esm/boot/init.js +35 -0
  317. package/esm/boot/init.js.map +1 -0
  318. package/esm/browser/addEventListener.d.ts +87 -0
  319. package/esm/browser/addEventListener.js +51 -0
  320. package/esm/browser/addEventListener.js.map +1 -0
  321. package/esm/browser/browser.types.d.ts +51 -0
  322. package/esm/browser/browser.types.js +5 -0
  323. package/esm/browser/browser.types.js.map +1 -0
  324. package/esm/browser/cookie.d.ts +26 -0
  325. package/esm/browser/cookie.js +101 -0
  326. package/esm/browser/cookie.js.map +1 -0
  327. package/esm/browser/fetchObservable.d.ts +38 -0
  328. package/esm/browser/fetchObservable.js +99 -0
  329. package/esm/browser/fetchObservable.js.map +1 -0
  330. package/esm/browser/pageMayExitObservable.d.ts +14 -0
  331. package/esm/browser/pageMayExitObservable.js +40 -0
  332. package/esm/browser/pageMayExitObservable.js.map +1 -0
  333. package/esm/browser/runOnReadyState.d.ts +5 -0
  334. package/esm/browser/runOnReadyState.js +16 -0
  335. package/esm/browser/runOnReadyState.js.map +1 -0
  336. package/esm/browser/xhrObservable.d.ts +24 -0
  337. package/esm/browser/xhrObservable.js +83 -0
  338. package/esm/browser/xhrObservable.js.map +1 -0
  339. package/esm/domain/allowedTrackingOrigins.d.ts +4 -0
  340. package/esm/domain/allowedTrackingOrigins.js +21 -0
  341. package/esm/domain/allowedTrackingOrigins.js.map +1 -0
  342. package/esm/domain/bufferedData.d.ts +14 -0
  343. package/esm/domain/bufferedData.js +19 -0
  344. package/esm/domain/bufferedData.js.map +1 -0
  345. package/esm/domain/configuration/configuration.d.ts +284 -0
  346. package/esm/domain/configuration/configuration.js +129 -0
  347. package/esm/domain/configuration/configuration.js.map +1 -0
  348. package/esm/domain/configuration/endpointBuilder.d.ts +12 -0
  349. package/esm/domain/configuration/endpointBuilder.js +62 -0
  350. package/esm/domain/configuration/endpointBuilder.js.map +1 -0
  351. package/esm/domain/configuration/index.d.ts +6 -0
  352. package/esm/domain/configuration/index.js +5 -0
  353. package/esm/domain/configuration/index.js.map +1 -0
  354. package/esm/domain/configuration/transportConfiguration.d.ts +21 -0
  355. package/esm/domain/configuration/transportConfiguration.js +54 -0
  356. package/esm/domain/configuration/transportConfiguration.js.map +1 -0
  357. package/esm/domain/connectivity/connectivity.d.ts +14 -0
  358. package/esm/domain/connectivity/connectivity.js +11 -0
  359. package/esm/domain/connectivity/connectivity.js.map +1 -0
  360. package/esm/domain/connectivity/index.d.ts +1 -0
  361. package/esm/domain/connectivity/index.js +2 -0
  362. package/esm/domain/connectivity/index.js.map +1 -0
  363. package/esm/domain/console/consoleObservable.d.ts +21 -0
  364. package/esm/domain/console/consoleObservable.js +80 -0
  365. package/esm/domain/console/consoleObservable.js.map +1 -0
  366. package/esm/domain/context/contextConstants.d.ts +21 -0
  367. package/esm/domain/context/contextConstants.js +15 -0
  368. package/esm/domain/context/contextConstants.js.map +1 -0
  369. package/esm/domain/context/contextManager.d.ts +19 -0
  370. package/esm/domain/context/contextManager.js +56 -0
  371. package/esm/domain/context/contextManager.js.map +1 -0
  372. package/esm/domain/context/contextUtils.d.ts +5 -0
  373. package/esm/domain/context/contextUtils.js +13 -0
  374. package/esm/domain/context/contextUtils.js.map +1 -0
  375. package/esm/domain/context/defineContextMethod.d.ts +6 -0
  376. package/esm/domain/context/defineContextMethod.js +17 -0
  377. package/esm/domain/context/defineContextMethod.js.map +1 -0
  378. package/esm/domain/context/storeContextManager.d.ts +6 -0
  379. package/esm/domain/context/storeContextManager.js +35 -0
  380. package/esm/domain/context/storeContextManager.js.map +1 -0
  381. package/esm/domain/contexts/accountContext.d.ts +26 -0
  382. package/esm/domain/contexts/accountContext.js +29 -0
  383. package/esm/domain/contexts/accountContext.js.map +1 -0
  384. package/esm/domain/contexts/globalContext.d.ts +18 -0
  385. package/esm/domain/contexts/globalContext.js +17 -0
  386. package/esm/domain/contexts/globalContext.js.map +1 -0
  387. package/esm/domain/contexts/rumInternalContext.type.d.ts +14 -0
  388. package/esm/domain/contexts/rumInternalContext.type.js +2 -0
  389. package/esm/domain/contexts/rumInternalContext.type.js.map +1 -0
  390. package/esm/domain/contexts/userContext.d.ts +31 -0
  391. package/esm/domain/contexts/userContext.js +116 -0
  392. package/esm/domain/contexts/userContext.js.map +1 -0
  393. package/esm/domain/deflate/deflate.types.d.ts +40 -0
  394. package/esm/domain/deflate/deflate.types.js +2 -0
  395. package/esm/domain/deflate/deflate.types.js.map +1 -0
  396. package/esm/domain/deflate/index.d.ts +1 -0
  397. package/esm/domain/deflate/index.js +2 -0
  398. package/esm/domain/deflate/index.js.map +1 -0
  399. package/esm/domain/error/error.d.ts +23 -0
  400. package/esm/domain/error/error.js +72 -0
  401. package/esm/domain/error/error.js.map +1 -0
  402. package/esm/domain/error/error.types.d.ts +47 -0
  403. package/esm/domain/error/error.types.js +10 -0
  404. package/esm/domain/error/error.types.js.map +1 -0
  405. package/esm/domain/error/trackRuntimeError.d.ts +11 -0
  406. package/esm/domain/error/trackRuntimeError.js +43 -0
  407. package/esm/domain/error/trackRuntimeError.js.map +1 -0
  408. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
  409. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +38 -0
  410. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
  411. package/esm/domain/extension/extensionUtils.d.ts +10 -0
  412. package/esm/domain/extension/extensionUtils.js +25 -0
  413. package/esm/domain/extension/extensionUtils.js.map +1 -0
  414. package/esm/domain/intakeSites.d.ts +4 -0
  415. package/esm/domain/intakeSites.js +4 -0
  416. package/esm/domain/intakeSites.js.map +1 -0
  417. package/esm/domain/report/browser.types.d.ts +34 -0
  418. package/esm/domain/report/browser.types.js +2 -0
  419. package/esm/domain/report/browser.types.js.map +1 -0
  420. package/esm/domain/report/reportObservable.d.ts +14 -0
  421. package/esm/domain/report/reportObservable.js +95 -0
  422. package/esm/domain/report/reportObservable.js.map +1 -0
  423. package/esm/domain/resourceUtils.d.ts +18 -0
  424. package/esm/domain/resourceUtils.js +17 -0
  425. package/esm/domain/resourceUtils.js.map +1 -0
  426. package/esm/domain/session/oldCookiesMigration.d.ts +11 -0
  427. package/esm/domain/session/oldCookiesMigration.js +36 -0
  428. package/esm/domain/session/oldCookiesMigration.js.map +1 -0
  429. package/esm/domain/session/sessionConstants.d.ts +15 -0
  430. package/esm/domain/session/sessionConstants.js +13 -0
  431. package/esm/domain/session/sessionConstants.js.map +1 -0
  432. package/esm/domain/session/sessionManager.d.ts +28 -0
  433. package/esm/domain/session/sessionManager.js +196 -0
  434. package/esm/domain/session/sessionManager.js.map +1 -0
  435. package/esm/domain/session/sessionState.d.ts +16 -0
  436. package/esm/domain/session/sessionState.js +60 -0
  437. package/esm/domain/session/sessionState.js.map +1 -0
  438. package/esm/domain/session/sessionStateValidation.d.ts +3 -0
  439. package/esm/domain/session/sessionStateValidation.js +7 -0
  440. package/esm/domain/session/sessionStateValidation.js.map +1 -0
  441. package/esm/domain/session/sessionStore.d.ts +38 -0
  442. package/esm/domain/session/sessionStore.js +180 -0
  443. package/esm/domain/session/sessionStore.js.map +1 -0
  444. package/esm/domain/session/sessionStoreOperations.d.ts +12 -0
  445. package/esm/domain/session/sessionStoreOperations.js +114 -0
  446. package/esm/domain/session/sessionStoreOperations.js.map +1 -0
  447. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +12 -0
  448. package/esm/domain/session/storeStrategies/sessionInCookie.js +98 -0
  449. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
  450. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +6 -0
  451. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +37 -0
  452. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
  453. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
  454. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +2 -0
  455. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
  456. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
  457. package/esm/domain/synthetics/syntheticsWorkerValues.js +24 -0
  458. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
  459. package/esm/domain/tags.d.ts +6 -0
  460. package/esm/domain/tags.js +59 -0
  461. package/esm/domain/tags.js.map +1 -0
  462. package/esm/domain/telemetry/index.d.ts +4 -0
  463. package/esm/domain/telemetry/index.js +3 -0
  464. package/esm/domain/telemetry/index.js.map +1 -0
  465. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
  466. package/esm/domain/telemetry/rawTelemetryEvent.types.js +6 -0
  467. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
  468. package/esm/domain/telemetry/telemetry.d.ts +56 -0
  469. package/esm/domain/telemetry/telemetry.js +232 -0
  470. package/esm/domain/telemetry/telemetry.js.map +1 -0
  471. package/esm/domain/telemetry/telemetryEvent.types.d.ts +866 -0
  472. package/esm/domain/telemetry/telemetryEvent.types.js +6 -0
  473. package/esm/domain/telemetry/telemetryEvent.types.js.map +1 -0
  474. package/esm/domain/trackingConsent.d.ts +13 -0
  475. package/esm/domain/trackingConsent.js +24 -0
  476. package/esm/domain/trackingConsent.js.map +1 -0
  477. package/esm/domain/userAgentData/index.d.ts +1 -0
  478. package/esm/domain/userAgentData/index.js +2 -0
  479. package/esm/domain/userAgentData/index.js.map +1 -0
  480. package/esm/domain/userAgentData/userAgentData.d.ts +22 -0
  481. package/esm/domain/userAgentData/userAgentData.js +105 -0
  482. package/esm/domain/userAgentData/userAgentData.js.map +1 -0
  483. package/esm/index.d.ts +101 -0
  484. package/esm/index.js +77 -0
  485. package/esm/index.js.map +1 -0
  486. package/esm/tools/abstractHooks.d.ts +24 -0
  487. package/esm/tools/abstractHooks.js +37 -0
  488. package/esm/tools/abstractHooks.js.map +1 -0
  489. package/esm/tools/abstractLifeCycle.d.ts +23 -0
  490. package/esm/tools/abstractLifeCycle.js +24 -0
  491. package/esm/tools/abstractLifeCycle.js.map +1 -0
  492. package/esm/tools/boundedBuffer.d.ts +16 -0
  493. package/esm/tools/boundedBuffer.js +29 -0
  494. package/esm/tools/boundedBuffer.js.map +1 -0
  495. package/esm/tools/catchUserErrors.d.ts +1 -0
  496. package/esm/tools/catchUserErrors.js +12 -0
  497. package/esm/tools/catchUserErrors.js.map +1 -0
  498. package/esm/tools/display.d.ts +38 -0
  499. package/esm/tools/display.js +41 -0
  500. package/esm/tools/display.js.map +1 -0
  501. package/esm/tools/encoder.d.ts +54 -0
  502. package/esm/tools/encoder.js +37 -0
  503. package/esm/tools/encoder.js.map +1 -0
  504. package/esm/tools/experimentalFeatures.d.ts +21 -0
  505. package/esm/tools/experimentalFeatures.js +42 -0
  506. package/esm/tools/experimentalFeatures.js.map +1 -0
  507. package/esm/tools/getZoneJsOriginalValue.d.ts +19 -0
  508. package/esm/tools/getZoneJsOriginalValue.js +26 -0
  509. package/esm/tools/getZoneJsOriginalValue.js.map +1 -0
  510. package/esm/tools/globalObject.d.ts +19 -0
  511. package/esm/tools/globalObject.js +40 -0
  512. package/esm/tools/globalObject.js.map +1 -0
  513. package/esm/tools/instrumentMethod.d.ts +75 -0
  514. package/esm/tools/instrumentMethod.js +114 -0
  515. package/esm/tools/instrumentMethod.js.map +1 -0
  516. package/esm/tools/matchOption.d.ts +8 -0
  517. package/esm/tools/matchOption.js +31 -0
  518. package/esm/tools/matchOption.js.map +1 -0
  519. package/esm/tools/mergeInto.d.ts +25 -0
  520. package/esm/tools/mergeInto.js +93 -0
  521. package/esm/tools/mergeInto.js.map +1 -0
  522. package/esm/tools/monitor.d.ts +9 -0
  523. package/esm/tools/monitor.js +51 -0
  524. package/esm/tools/monitor.js.map +1 -0
  525. package/esm/tools/observable.d.ts +30 -0
  526. package/esm/tools/observable.js +83 -0
  527. package/esm/tools/observable.js.map +1 -0
  528. package/esm/tools/queueMicrotask.d.ts +1 -0
  529. package/esm/tools/queueMicrotask.js +14 -0
  530. package/esm/tools/queueMicrotask.js.map +1 -0
  531. package/esm/tools/readBytesFromStream.d.ts +10 -0
  532. package/esm/tools/readBytesFromStream.js +25 -0
  533. package/esm/tools/readBytesFromStream.js.map +1 -0
  534. package/esm/tools/requestIdleCallback.d.ts +12 -0
  535. package/esm/tools/requestIdleCallback.js +30 -0
  536. package/esm/tools/requestIdleCallback.js.map +1 -0
  537. package/esm/tools/sendToExtension.d.ts +3 -0
  538. package/esm/tools/sendToExtension.js +8 -0
  539. package/esm/tools/sendToExtension.js.map +1 -0
  540. package/esm/tools/serialisation/context.d.ts +9 -0
  541. package/esm/tools/serialisation/context.js +2 -0
  542. package/esm/tools/serialisation/context.js.map +1 -0
  543. package/esm/tools/serialisation/jsonStringify.d.ts +13 -0
  544. package/esm/tools/serialisation/jsonStringify.js +44 -0
  545. package/esm/tools/serialisation/jsonStringify.js.map +1 -0
  546. package/esm/tools/serialisation/sanitize.d.ts +18 -0
  547. package/esm/tools/serialisation/sanitize.js +185 -0
  548. package/esm/tools/serialisation/sanitize.js.map +1 -0
  549. package/esm/tools/stackTrace/computeStackTrace.d.ts +25 -0
  550. package/esm/tools/stackTrace/computeStackTrace.js +183 -0
  551. package/esm/tools/stackTrace/computeStackTrace.js.map +1 -0
  552. package/esm/tools/stackTrace/handlingStack.d.ts +10 -0
  553. package/esm/tools/stackTrace/handlingStack.js +41 -0
  554. package/esm/tools/stackTrace/handlingStack.js.map +1 -0
  555. package/esm/tools/taskQueue.d.ts +15 -0
  556. package/esm/tools/taskQueue.js +50 -0
  557. package/esm/tools/taskQueue.js.map +1 -0
  558. package/esm/tools/timer.d.ts +5 -0
  559. package/esm/tools/timer.js +16 -0
  560. package/esm/tools/timer.js.map +1 -0
  561. package/esm/tools/utils/arrayUtils.d.ts +3 -0
  562. package/esm/tools/utils/arrayUtils.js +15 -0
  563. package/esm/tools/utils/arrayUtils.js.map +1 -0
  564. package/esm/tools/utils/browserDetection.d.ts +8 -0
  565. package/esm/tools/utils/browserDetection.js +28 -0
  566. package/esm/tools/utils/browserDetection.js.map +1 -0
  567. package/esm/tools/utils/byteUtils.d.ts +8 -0
  568. package/esm/tools/utils/byteUtils.js +29 -0
  569. package/esm/tools/utils/byteUtils.js.map +1 -0
  570. package/esm/tools/utils/functionUtils.d.ts +8 -0
  571. package/esm/tools/utils/functionUtils.js +39 -0
  572. package/esm/tools/utils/functionUtils.js.map +1 -0
  573. package/esm/tools/utils/numberUtils.d.ts +8 -0
  574. package/esm/tools/utils/numberUtils.js +17 -0
  575. package/esm/tools/utils/numberUtils.js.map +1 -0
  576. package/esm/tools/utils/objectUtils.d.ts +10 -0
  577. package/esm/tools/utils/objectUtils.js +17 -0
  578. package/esm/tools/utils/objectUtils.js.map +1 -0
  579. package/esm/tools/utils/polyfills.d.ts +7 -0
  580. package/esm/tools/utils/polyfills.js +18 -0
  581. package/esm/tools/utils/polyfills.js.map +1 -0
  582. package/esm/tools/utils/responseUtils.d.ts +2 -0
  583. package/esm/tools/utils/responseUtils.js +13 -0
  584. package/esm/tools/utils/responseUtils.js.map +1 -0
  585. package/esm/tools/utils/stringUtils.d.ts +23 -0
  586. package/esm/tools/utils/stringUtils.js +84 -0
  587. package/esm/tools/utils/stringUtils.js.map +1 -0
  588. package/esm/tools/utils/timeUtils.d.ts +53 -0
  589. package/esm/tools/utils/timeUtils.js +84 -0
  590. package/esm/tools/utils/timeUtils.js.map +1 -0
  591. package/esm/tools/utils/timezone.d.ts +1 -0
  592. package/esm/tools/utils/timezone.js +10 -0
  593. package/esm/tools/utils/timezone.js.map +1 -0
  594. package/esm/tools/utils/typeUtils.d.ts +4 -0
  595. package/esm/tools/utils/typeUtils.js +13 -0
  596. package/esm/tools/utils/typeUtils.js.map +1 -0
  597. package/esm/tools/utils/urlPolyfill.d.ts +5 -0
  598. package/esm/tools/utils/urlPolyfill.js +52 -0
  599. package/esm/tools/utils/urlPolyfill.js.map +1 -0
  600. package/esm/tools/valueHistory.d.ts +27 -0
  601. package/esm/tools/valueHistory.js +100 -0
  602. package/esm/tools/valueHistory.js.map +1 -0
  603. package/esm/transport/batch.d.ts +16 -0
  604. package/esm/transport/batch.js +106 -0
  605. package/esm/transport/batch.js.map +1 -0
  606. package/esm/transport/eventBridge.d.ts +21 -0
  607. package/esm/transport/eventBridge.js +41 -0
  608. package/esm/transport/eventBridge.js.map +1 -0
  609. package/esm/transport/flushController.d.ts +65 -0
  610. package/esm/transport/flushController.js +119 -0
  611. package/esm/transport/flushController.js.map +1 -0
  612. package/esm/transport/httpRequest.d.ts +57 -0
  613. package/esm/transport/httpRequest.js +101 -0
  614. package/esm/transport/httpRequest.js.map +1 -0
  615. package/esm/transport/index.d.ts +7 -0
  616. package/esm/transport/index.js +5 -0
  617. package/esm/transport/index.js.map +1 -0
  618. package/esm/transport/sendWithRetryStrategy.d.ts +41 -0
  619. package/esm/transport/sendWithRetryStrategy.js +158 -0
  620. package/esm/transport/sendWithRetryStrategy.js.map +1 -0
  621. package/package.json +28 -0
  622. package/src/boot/displayAlreadyInitializedError.ts +8 -0
  623. package/src/boot/init.ts +54 -0
  624. package/src/browser/addEventListener.ts +145 -0
  625. package/src/browser/browser.types.ts +84 -0
  626. package/src/browser/cookie.ts +122 -0
  627. package/src/browser/fetchObservable.ts +167 -0
  628. package/src/browser/pageMayExitObservable.ts +56 -0
  629. package/src/browser/runOnReadyState.ts +25 -0
  630. package/src/browser/xhrObservable.ts +134 -0
  631. package/src/domain/allowedTrackingOrigins.ts +29 -0
  632. package/src/domain/bufferedData.ts +32 -0
  633. package/src/domain/configuration/configuration.ts +409 -0
  634. package/src/domain/configuration/endpointBuilder.ts +105 -0
  635. package/src/domain/configuration/index.ts +12 -0
  636. package/src/domain/configuration/transportConfiguration.ts +86 -0
  637. package/src/domain/connectivity/connectivity.ts +31 -0
  638. package/src/domain/connectivity/index.ts +1 -0
  639. package/src/domain/console/consoleObservable.ts +118 -0
  640. package/src/domain/context/contextConstants.ts +27 -0
  641. package/src/domain/context/contextManager.ts +81 -0
  642. package/src/domain/context/contextUtils.ts +14 -0
  643. package/src/domain/context/defineContextMethod.ts +31 -0
  644. package/src/domain/context/storeContextManager.ts +55 -0
  645. package/src/domain/contexts/accountContext.ts +47 -0
  646. package/src/domain/contexts/globalContext.ts +30 -0
  647. package/src/domain/contexts/rumInternalContext.type.ts +15 -0
  648. package/src/domain/contexts/userContext.ts +148 -0
  649. package/src/domain/deflate/deflate.types.ts +57 -0
  650. package/src/domain/deflate/index.ts +1 -0
  651. package/src/domain/error/error.ts +127 -0
  652. package/src/domain/error/error.types.ts +64 -0
  653. package/src/domain/error/trackRuntimeError.ts +50 -0
  654. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +49 -0
  655. package/src/domain/extension/extensionUtils.ts +28 -0
  656. package/src/domain/intakeSites.ts +6 -0
  657. package/src/domain/report/browser.types.ts +38 -0
  658. package/src/domain/report/reportObservable.ts +133 -0
  659. package/src/domain/resourceUtils.ts +21 -0
  660. package/src/domain/session/README.md +193 -0
  661. package/src/domain/session/oldCookiesMigration.ts +42 -0
  662. package/src/domain/session/sessionConstants.ts +19 -0
  663. package/src/domain/session/sessionManager.ts +262 -0
  664. package/src/domain/session/sessionState.ts +83 -0
  665. package/src/domain/session/sessionStateValidation.ts +9 -0
  666. package/src/domain/session/sessionStore.ts +250 -0
  667. package/src/domain/session/sessionStoreOperations.ts +131 -0
  668. package/src/domain/session/storeStrategies/sessionInCookie.ts +146 -0
  669. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +44 -0
  670. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +16 -0
  671. package/src/domain/synthetics/syntheticsWorkerValues.ts +38 -0
  672. package/src/domain/tags.ts +75 -0
  673. package/src/domain/telemetry/index.ts +22 -0
  674. package/src/domain/telemetry/rawTelemetryEvent.types.ts +22 -0
  675. package/src/domain/telemetry/telemetry.ts +344 -0
  676. package/src/domain/telemetry/telemetryEvent.types.ts +907 -0
  677. package/src/domain/trackingConsent.ts +34 -0
  678. package/src/domain/userAgentData/index.ts +1 -0
  679. package/src/domain/userAgentData/userAgentData.ts +163 -0
  680. package/src/index.ts +169 -0
  681. package/src/tools/abstractHooks.ts +72 -0
  682. package/src/tools/abstractLifeCycle.ts +46 -0
  683. package/src/tools/boundedBuffer.ts +44 -0
  684. package/src/tools/catchUserErrors.ts +11 -0
  685. package/src/tools/display.ts +56 -0
  686. package/src/tools/encoder.ts +103 -0
  687. package/src/tools/experimentalFeatures.ts +52 -0
  688. package/src/tools/getZoneJsOriginalValue.ts +38 -0
  689. package/src/tools/globalObject.ts +51 -0
  690. package/src/tools/instrumentMethod.ts +170 -0
  691. package/src/tools/matchOption.ts +31 -0
  692. package/src/tools/mergeInto.ts +177 -0
  693. package/src/tools/monitor.ts +71 -0
  694. package/src/tools/observable.ts +103 -0
  695. package/src/tools/queueMicrotask.ts +13 -0
  696. package/src/tools/readBytesFromStream.ts +37 -0
  697. package/src/tools/requestIdleCallback.ts +40 -0
  698. package/src/tools/sendToExtension.ts +14 -0
  699. package/src/tools/serialisation/context.ts +11 -0
  700. package/src/tools/serialisation/jsonStringify.ts +53 -0
  701. package/src/tools/serialisation/sanitize.ts +273 -0
  702. package/src/tools/stackTrace/computeStackTrace.ts +251 -0
  703. package/src/tools/stackTrace/handlingStack.ts +48 -0
  704. package/src/tools/taskQueue.ts +63 -0
  705. package/src/tools/timer.ts +21 -0
  706. package/src/tools/utils/arrayUtils.ts +16 -0
  707. package/src/tools/utils/browserDetection.ts +39 -0
  708. package/src/tools/utils/byteUtils.ts +40 -0
  709. package/src/tools/utils/functionUtils.ts +45 -0
  710. package/src/tools/utils/numberUtils.ts +19 -0
  711. package/src/tools/utils/objectUtils.ts +19 -0
  712. package/src/tools/utils/polyfills.ts +23 -0
  713. package/src/tools/utils/responseUtils.ts +12 -0
  714. package/src/tools/utils/stringUtils.ts +86 -0
  715. package/src/tools/utils/timeUtils.ts +117 -0
  716. package/src/tools/utils/timezone.ts +9 -0
  717. package/src/tools/utils/typeUtils.ts +12 -0
  718. package/src/tools/utils/urlPolyfill.ts +55 -0
  719. package/src/tools/valueHistory.ts +151 -0
  720. package/src/transport/batch.ts +144 -0
  721. package/src/transport/eventBridge.ts +60 -0
  722. package/src/transport/flushController.ts +150 -0
  723. package/src/transport/httpRequest.ts +191 -0
  724. package/src/transport/index.ts +7 -0
  725. package/src/transport/sendWithRetryStrategy.ts +222 -0
@@ -0,0 +1,83 @@
1
+ import { instrumentMethod } from '../tools/instrumentMethod';
2
+ import { Observable } from '../tools/observable';
3
+ import { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';
4
+ import { normalizeUrl } from '../tools/utils/urlPolyfill';
5
+ import { shallowClone } from '../tools/utils/objectUtils';
6
+ import { addEventListener } from './addEventListener';
7
+ let xhrObservable;
8
+ const xhrContexts = new WeakMap();
9
+ export function initXhrObservable(configuration) {
10
+ if (!xhrObservable) {
11
+ xhrObservable = createXhrObservable(configuration);
12
+ }
13
+ return xhrObservable;
14
+ }
15
+ function createXhrObservable(configuration) {
16
+ return new Observable((observable) => {
17
+ const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr);
18
+ const { stop: stopInstrumentingSend } = instrumentMethod(XMLHttpRequest.prototype, 'send', (call) => {
19
+ sendXhr(call, configuration, observable);
20
+ }, { computeHandlingStack: true });
21
+ const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr);
22
+ return () => {
23
+ stopInstrumentingStart();
24
+ stopInstrumentingSend();
25
+ stopInstrumentingAbort();
26
+ };
27
+ });
28
+ }
29
+ function openXhr({ target: xhr, parameters: [method, url] }) {
30
+ xhrContexts.set(xhr, {
31
+ state: 'open',
32
+ method: String(method).toUpperCase(),
33
+ url: normalizeUrl(String(url)),
34
+ });
35
+ }
36
+ function sendXhr({ target: xhr, parameters: [body], handlingStack }, configuration, observable) {
37
+ const context = xhrContexts.get(xhr);
38
+ if (!context) {
39
+ return;
40
+ }
41
+ const startContext = context;
42
+ startContext.state = 'start';
43
+ startContext.startClocks = clocksNow();
44
+ startContext.isAborted = false;
45
+ startContext.xhr = xhr;
46
+ startContext.handlingStack = handlingStack;
47
+ startContext.requestBody = body;
48
+ let hasBeenReported = false;
49
+ const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, 'onreadystatechange', () => {
50
+ if (xhr.readyState === XMLHttpRequest.DONE) {
51
+ // Try to report the XHR as soon as possible, because the XHR may be mutated by the
52
+ // application during a future event. For example, Angular is calling .abort() on
53
+ // completed requests during an onreadystatechange event, so the status becomes '0'
54
+ // before the request is collected.
55
+ onEnd();
56
+ }
57
+ });
58
+ const onEnd = () => {
59
+ unsubscribeLoadEndListener();
60
+ stopInstrumentingOnReadyStateChange();
61
+ if (hasBeenReported) {
62
+ return;
63
+ }
64
+ hasBeenReported = true;
65
+ const completeContext = context;
66
+ completeContext.state = 'complete';
67
+ completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());
68
+ completeContext.status = xhr.status;
69
+ if (typeof xhr.response === 'string') {
70
+ completeContext.responseBody = xhr.response;
71
+ }
72
+ observable.notify(shallowClone(completeContext));
73
+ };
74
+ const { stop: unsubscribeLoadEndListener } = addEventListener(configuration, xhr, 'loadend', onEnd);
75
+ observable.notify(startContext);
76
+ }
77
+ function abortXhr({ target: xhr }) {
78
+ const context = xhrContexts.get(xhr);
79
+ if (context) {
80
+ context.isAborted = true;
81
+ }
82
+ }
83
+ //# sourceMappingURL=xhrObservable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhrObservable.js","sourceRoot":"","sources":["../../src/browser/xhrObservable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { InitConfiguration } from './configuration';
2
+ export declare const ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN = "Running the Browser SDK in a Web extension content script is forbidden unless the `allowedTrackingOrigins` option is provided.";
3
+ export declare const ERROR_NOT_ALLOWED_TRACKING_ORIGIN = "SDK initialized on a non-allowed domain.";
4
+ export declare function isAllowedTrackingOrigins(configuration: InitConfiguration, errorStack: string, windowOrigin?: string): boolean;
@@ -0,0 +1,21 @@
1
+ import { display } from '../tools/display';
2
+ import { matchList } from '../tools/matchOption';
3
+ import { isUnsupportedExtensionEnvironment } from './extension/extensionUtils';
4
+ export const ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN = 'Running the Browser SDK in a Web extension content script is forbidden unless the `allowedTrackingOrigins` option is provided.';
5
+ export const ERROR_NOT_ALLOWED_TRACKING_ORIGIN = 'SDK initialized on a non-allowed domain.';
6
+ export function isAllowedTrackingOrigins(configuration, errorStack, windowOrigin = typeof location !== 'undefined' ? location.origin : '') {
7
+ const allowedTrackingOrigins = configuration.allowedTrackingOrigins;
8
+ if (!allowedTrackingOrigins) {
9
+ if (isUnsupportedExtensionEnvironment(windowOrigin, errorStack)) {
10
+ display.error(ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN);
11
+ return false;
12
+ }
13
+ return true;
14
+ }
15
+ const isAllowed = matchList(allowedTrackingOrigins, windowOrigin);
16
+ if (!isAllowed) {
17
+ display.error(ERROR_NOT_ALLOWED_TRACKING_ORIGIN);
18
+ }
19
+ return isAllowed;
20
+ }
21
+ //# sourceMappingURL=allowedTrackingOrigins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowedTrackingOrigins.js","sourceRoot":"","sources":["../../src/domain/allowedTrackingOrigins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAA;AAE9E,MAAM,CAAC,MAAM,2CAA2C,GACtD,gIAAgI,CAAA;AAClI,MAAM,CAAC,MAAM,iCAAiC,GAAG,0CAA0C,CAAA;AAE3F,MAAM,UAAU,wBAAwB,CACtC,aAAgC,EAChC,UAAkB,EAClB,YAAY,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IAErE,MAAM,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAA;IACnE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,IAAI,iCAAiC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YAC1D,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { BufferedObservable } from '../tools/observable';
2
+ import type { RawError } from './error/error.types';
3
+ import { trackRuntimeError } from './error/trackRuntimeError';
4
+ export declare const enum BufferedDataType {
5
+ RUNTIME_ERROR = 0
6
+ }
7
+ export interface BufferedData {
8
+ type: BufferedDataType.RUNTIME_ERROR;
9
+ error: RawError;
10
+ }
11
+ export declare function startBufferingData(trackRuntimeErrorImpl?: typeof trackRuntimeError): {
12
+ observable: BufferedObservable<BufferedData>;
13
+ stop: () => void;
14
+ };
@@ -0,0 +1,19 @@
1
+ import { BufferedObservable } from '../tools/observable';
2
+ import { trackRuntimeError } from './error/trackRuntimeError';
3
+ const BUFFER_LIMIT = 500;
4
+ export function startBufferingData(trackRuntimeErrorImpl = trackRuntimeError) {
5
+ const observable = new BufferedObservable(BUFFER_LIMIT);
6
+ const runtimeErrorSubscription = trackRuntimeErrorImpl().subscribe((error) => {
7
+ observable.notify({
8
+ type: 0 /* BufferedDataType.RUNTIME_ERROR */,
9
+ error,
10
+ });
11
+ });
12
+ return {
13
+ observable,
14
+ stop: () => {
15
+ runtimeErrorSubscription.unsubscribe();
16
+ },
17
+ };
18
+ }
19
+ //# sourceMappingURL=bufferedData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferedData.js","sourceRoot":"","sources":["../../src/domain/bufferedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,MAAM,YAAY,GAAG,GAAG,CAAA;AAWxB,MAAM,UAAU,kBAAkB,CAAC,qBAAqB,GAAG,iBAAiB;IAC1E,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAe,YAAY,CAAC,CAAA;IAErE,MAAM,wBAAwB,GAAG,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3E,UAAU,CAAC,MAAM,CAAC;YAChB,IAAI,wCAAgC;YACpC,KAAK;SACN,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,UAAU;QACV,IAAI,EAAE,GAAG,EAAE;YACT,wBAAwB,CAAC,WAAW,EAAE,CAAA;QACxC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,284 @@
1
+ import type { SessionStoreStrategyType } from '../session/storeStrategies/sessionStoreStrategy';
2
+ import { TrackingConsent } from '../trackingConsent';
3
+ import type { SessionPersistence } from '../session/sessionConstants';
4
+ import type { MatchOption } from '../../tools/matchOption';
5
+ import type { TransportConfiguration } from './transportConfiguration';
6
+ import type { Site } from '../intakeSites';
7
+ /**
8
+ * Default privacy level for the browser SDK.
9
+ *
10
+ * [Replay Privacy Options](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/privacy_options) for further information.
11
+ */
12
+ export declare const DefaultPrivacyLevel: {
13
+ readonly ALLOW: "allow";
14
+ readonly MASK: "mask";
15
+ readonly MASK_USER_INPUT: "mask-user-input";
16
+ readonly MASK_UNLESS_ALLOWLISTED: "mask-unless-allowlisted";
17
+ };
18
+ export type DefaultPrivacyLevel = (typeof DefaultPrivacyLevel)[keyof typeof DefaultPrivacyLevel];
19
+ /**
20
+ * Trace context injection option.
21
+ *
22
+ * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
23
+ */
24
+ export declare const TraceContextInjection: {
25
+ readonly ALL: "all";
26
+ readonly SAMPLED: "sampled";
27
+ };
28
+ /**
29
+ * Trace context injection option.
30
+ *
31
+ * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
32
+ *
33
+ */
34
+ export type TraceContextInjection = (typeof TraceContextInjection)[keyof typeof TraceContextInjection];
35
+ export interface InitConfiguration {
36
+ /**
37
+ * The client token for Kubsesense. Required for authenticating your application with Kubsesense.
38
+ *
39
+ * @category Authentication
40
+ */
41
+ clientToken: string;
42
+ /**
43
+ * A callback function that can be used to modify events before they are sent to Kubsesense.
44
+ *
45
+ * @category Data Collection
46
+ */
47
+ beforeSend?: GenericBeforeSendCallback | undefined;
48
+ /**
49
+ * The percentage of sessions tracked. A value between 0 and 100.
50
+ *
51
+ * @category Data Collection
52
+ * @defaultValue 100
53
+ */
54
+ sessionSampleRate?: number | undefined;
55
+ /**
56
+ * The percentage of telemetry events sent. A value between 0 and 100.
57
+ *
58
+ * @category Data Collection
59
+ * @defaultValue 20
60
+ */
61
+ telemetrySampleRate?: number | undefined;
62
+ /**
63
+ * Initialization fails silently if the RUM Browser SDK is already initialized on the page.
64
+ * @defaultValue false
65
+ */
66
+ silentMultipleInit?: boolean | undefined;
67
+ /**
68
+ * Which storage strategy to use for persisting sessions. Can be either 'cookie' or 'local-storage'.
69
+ *
70
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
71
+ *
72
+ * @category Session Persistence
73
+ * @defaultValue "cookie"
74
+ */
75
+ sessionPersistence?: SessionPersistence | undefined;
76
+ /**
77
+ * Allows the use of localStorage when cookies cannot be set. This enables the RUM Browser SDK to run in environments that do not provide cookie support.
78
+ *
79
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
80
+ * @category Session Persistence
81
+ * @deprecated use `sessionPersistence: local-storage` where you want to use localStorage instead
82
+ */
83
+ allowFallbackToLocalStorage?: boolean | undefined;
84
+ /**
85
+ * Allow listening to DOM events dispatched programmatically ([untrusted events](https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted)). Enabling this option can be useful if you heavily rely on programmatic events, such as in an automated UI test environment.
86
+ * @defaultValue false
87
+ */
88
+ allowUntrustedEvents?: boolean | undefined;
89
+ /**
90
+ * Store global context and user context in localStorage to preserve them along the user navigation.
91
+ * @defaultValue false
92
+ */
93
+ storeContextsAcrossPages?: boolean | undefined;
94
+ /**
95
+ * Set the initial user tracking consent state.
96
+ *
97
+ * @category Privacy
98
+ * @defaultValue granted
99
+ */
100
+ trackingConsent?: TrackingConsent | undefined;
101
+ /**
102
+ * List of origins where the SDK is allowed to run when used in a browser extension context.
103
+ * Matches urls against the extensions origin.
104
+ * If not provided and the SDK is running in a browser extension, the SDK will not run.
105
+ */
106
+ allowedTrackingOrigins?: MatchOption[] | undefined;
107
+ /**
108
+ * Optional proxy URL, for example: https://www.proxy.com/path.
109
+ *
110
+ * @category Transport
111
+ */
112
+ proxy?: string | ProxyFn | undefined;
113
+ /**
114
+ *
115
+ * @category Transport
116
+ * @defaultValue rum.kubesense.ai
117
+ */
118
+ kubesenseRumEndpoint?: Site | undefined | null;
119
+ /**
120
+ * The service name for your application.
121
+ *
122
+ * @category Data Collection
123
+ */
124
+ service?: string | undefined | null;
125
+ /**
126
+ * The application’s environment, for example: prod, pre-prod, and staging.
127
+ *
128
+ * @category Data Collection
129
+ */
130
+ env?: string | undefined | null;
131
+ /**
132
+ * The application’s version, for example: 1.2.3, 6c44da20, and 2020.02.13.
133
+ *
134
+ * @category Data Collection
135
+ */
136
+ version?: string | undefined | null;
137
+ /**
138
+ * Use a partitioned secure cross-site session cookie. This allows the RUM Browser SDK to run when the site is loaded from another one (iframe). Implies `useSecureSessionCookie`.
139
+ *
140
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
141
+ * @category Session Persistence
142
+ * @defaultValue false
143
+ */
144
+ usePartitionedCrossSiteSessionCookie?: boolean | undefined;
145
+ /**
146
+ * Use a secure session cookie. This disables RUM events sent on insecure (non-HTTPS) connections.
147
+ *
148
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
149
+ * @category Session Persistence
150
+ * @defaultValue false
151
+ */
152
+ useSecureSessionCookie?: boolean | undefined;
153
+ /**
154
+ * Preserve the session across subdomains for the same site.
155
+ *
156
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
157
+ * @category Session Persistence
158
+ * @defaultValue false
159
+ */
160
+ trackSessionAcrossSubdomains?: boolean | undefined;
161
+ /**
162
+ * Track anonymous user for the same site and extend cookie expiration date
163
+ * @category Data Collection
164
+ * @defaultValue true
165
+ */
166
+ trackAnonymousUser?: boolean | undefined;
167
+ /**
168
+ * Encode cookie options in the cookie value. This can be used as a mitigation for microssession issues.
169
+ * ⚠️ This is a beta feature and may be changed or removed in the future.
170
+ *
171
+ * @category Beta
172
+ * @defaultValue false
173
+ */
174
+ betaEncodeCookieOptions?: boolean | undefined;
175
+ /**
176
+ * [Internal option] Enable experimental features
177
+ * @internal
178
+ */
179
+ enableExperimentalFeatures?: string[] | undefined;
180
+ /**
181
+ * [Internal option] Configure the dual shipping to another datacenter
182
+ * @internal
183
+ */
184
+ replica?: ReplicaUserConfiguration | undefined;
185
+ /**
186
+ * [Internal option] Set the datacenter from where the data is dual shipped
187
+ * @internal
188
+ */
189
+ datacenter?: string;
190
+ /**
191
+ * [Internal option] Kubsesense internal analytics subdomain
192
+ * @internal
193
+ */
194
+ internalAnalyticsSubdomain?: string;
195
+ /**
196
+ * [Internal option] The percentage of telemetry configuration sent. A value between 0 and 100.
197
+ * @internal
198
+ * @defaultValue 5
199
+ */
200
+ telemetryConfigurationSampleRate?: number;
201
+ /**
202
+ * [Internal option] The percentage of telemetry usage sent. A value between 0 and 100.
203
+ * @internal
204
+ * @defaultValue 5
205
+ */
206
+ telemetryUsageSampleRate?: number;
207
+ /**
208
+ * [Internal option] Additional configuration for the SDK.
209
+ *
210
+ * @internal
211
+ */
212
+ source?: 'browser' | 'flutter' | 'unity' | undefined;
213
+ /**
214
+ * [Internal option] Additional configuration for the SDK.
215
+ *
216
+ * @internal
217
+ */
218
+ sdkVersion?: string | undefined;
219
+ /**
220
+ * [Internal option] Additional configuration for the SDK.
221
+ *
222
+ * @internal
223
+ */
224
+ variant?: string | undefined;
225
+ }
226
+ type GenericBeforeSendCallback = (event: any, context?: any) => unknown;
227
+ /**
228
+ * path: /api/vX/product
229
+ * parameters: xxx=yyy&zzz=aaa
230
+ */
231
+ export type ProxyFn = (options: {
232
+ path: string;
233
+ parameters: string;
234
+ }) => string;
235
+ export interface ReplicaUserConfiguration {
236
+ applicationId?: string;
237
+ clientToken: string;
238
+ }
239
+ export interface Configuration extends TransportConfiguration {
240
+ beforeSend: GenericBeforeSendCallback | undefined;
241
+ sessionStoreStrategyType: SessionStoreStrategyType | undefined;
242
+ sessionSampleRate: number;
243
+ telemetrySampleRate: number;
244
+ telemetryConfigurationSampleRate: number;
245
+ telemetryUsageSampleRate: number;
246
+ service: string | undefined;
247
+ version?: string | undefined;
248
+ env?: string | undefined;
249
+ silentMultipleInit: boolean;
250
+ allowUntrustedEvents: boolean;
251
+ trackingConsent: TrackingConsent;
252
+ storeContextsAcrossPages: boolean;
253
+ trackAnonymousUser?: boolean;
254
+ betaEncodeCookieOptions: boolean;
255
+ sdkVersion: string | undefined;
256
+ source: 'browser' | 'flutter' | 'unity';
257
+ variant: string | undefined;
258
+ }
259
+ export declare function isSampleRate(sampleRate: unknown, name: string): boolean;
260
+ export declare function validateAndBuildConfiguration(initConfiguration: InitConfiguration, errorStack?: string): Configuration | undefined;
261
+ export declare function serializeConfiguration(initConfiguration: InitConfiguration): {
262
+ session_sample_rate: number | undefined;
263
+ telemetry_sample_rate: number | undefined;
264
+ telemetry_configuration_sample_rate: number | undefined;
265
+ telemetry_usage_sample_rate: number | undefined;
266
+ use_before_send: boolean;
267
+ use_partitioned_cross_site_session_cookie: boolean | undefined;
268
+ use_secure_session_cookie: boolean | undefined;
269
+ use_proxy: boolean;
270
+ silent_multiple_init: boolean | undefined;
271
+ track_session_across_subdomains: boolean | undefined;
272
+ track_anonymous_user: boolean | undefined;
273
+ session_persistence: SessionPersistence | undefined;
274
+ allow_fallback_to_local_storage: boolean;
275
+ store_contexts_across_pages: boolean;
276
+ allow_untrusted_events: boolean;
277
+ tracking_consent: TrackingConsent | undefined;
278
+ use_allowed_tracking_origins: boolean;
279
+ beta_encode_cookie_options: boolean | undefined;
280
+ source: "browser" | "flutter" | "unity" | undefined;
281
+ sdk_version: string | undefined;
282
+ variant: string | undefined;
283
+ };
284
+ export {};
@@ -0,0 +1,129 @@
1
+ import { catchUserErrors } from '../../tools/catchUserErrors';
2
+ import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display';
3
+ import { isPercentage } from '../../tools/utils/numberUtils';
4
+ import { objectHasValue } from '../../tools/utils/objectUtils';
5
+ import { selectSessionStoreStrategyType } from '../session/sessionStore';
6
+ import { TrackingConsent } from '../trackingConsent';
7
+ import { isAllowedTrackingOrigins } from '../allowedTrackingOrigins';
8
+ import { isWorkerEnvironment } from '../../tools/globalObject';
9
+ import { computeTransportConfiguration } from './transportConfiguration';
10
+ /**
11
+ * Default privacy level for the browser SDK.
12
+ *
13
+ * [Replay Privacy Options](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/privacy_options) for further information.
14
+ */
15
+ export const DefaultPrivacyLevel = {
16
+ ALLOW: 'allow',
17
+ MASK: 'mask',
18
+ MASK_USER_INPUT: 'mask-user-input',
19
+ MASK_UNLESS_ALLOWLISTED: 'mask-unless-allowlisted',
20
+ };
21
+ /**
22
+ * Trace context injection option.
23
+ *
24
+ * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
25
+ */
26
+ export const TraceContextInjection = {
27
+ ALL: 'all',
28
+ SAMPLED: 'sampled',
29
+ };
30
+ function isString(tag, tagName) {
31
+ if (tag !== undefined && tag !== null && typeof tag !== 'string') {
32
+ display.error(`${tagName} must be defined as a string`);
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ function isKubsesenseSite(site) {
38
+ if (site && typeof site === 'string' && !/(kubesense|tyke)/.test(site)) {
39
+ display.error(`Site should be a valid Kubsesense site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`);
40
+ return false;
41
+ }
42
+ return true;
43
+ }
44
+ export function isSampleRate(sampleRate, name) {
45
+ if (sampleRate !== undefined && !isPercentage(sampleRate)) {
46
+ display.error(`${name} Sample Rate should be a number between 0 and 100`);
47
+ return false;
48
+ }
49
+ return true;
50
+ }
51
+ export function validateAndBuildConfiguration(initConfiguration, errorStack) {
52
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
53
+ if (!initConfiguration || !initConfiguration.clientToken) {
54
+ display.error('Client Token is not configured, we will not send any data.');
55
+ return;
56
+ }
57
+ if (initConfiguration.allowedTrackingOrigins !== undefined &&
58
+ !Array.isArray(initConfiguration.allowedTrackingOrigins)) {
59
+ display.error('Allowed Tracking Origins must be an array');
60
+ return;
61
+ }
62
+ if (
63
+ // !isKubsesenseSite(initConfiguration.kubesenseRumEndpoint) ||
64
+ !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||
65
+ !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||
66
+ !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||
67
+ !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||
68
+ !isString(initConfiguration.version, 'Version') ||
69
+ !isString(initConfiguration.env, 'Env') ||
70
+ !isString(initConfiguration.service, 'Service') ||
71
+ !isAllowedTrackingOrigins(initConfiguration, errorStack !== null && errorStack !== void 0 ? errorStack : '')) {
72
+ return;
73
+ }
74
+ if (initConfiguration.trackingConsent !== undefined &&
75
+ !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)) {
76
+ display.error('Tracking Consent should be either "granted" or "not-granted"');
77
+ return;
78
+ }
79
+ return {
80
+ beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
81
+ sessionStoreStrategyType: isWorkerEnvironment ? undefined : selectSessionStoreStrategyType(initConfiguration),
82
+ sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,
83
+ telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,
84
+ telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,
85
+ telemetryUsageSampleRate: (_d = initConfiguration.telemetryUsageSampleRate) !== null && _d !== void 0 ? _d : 5,
86
+ service: (_e = initConfiguration.service) !== null && _e !== void 0 ? _e : undefined,
87
+ env: (_f = initConfiguration.env) !== null && _f !== void 0 ? _f : undefined,
88
+ version: (_g = initConfiguration.version) !== null && _g !== void 0 ? _g : undefined,
89
+ datacenter: (_h = initConfiguration.datacenter) !== null && _h !== void 0 ? _h : undefined,
90
+ silentMultipleInit: !!initConfiguration.silentMultipleInit,
91
+ allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,
92
+ trackingConsent: (_j = initConfiguration.trackingConsent) !== null && _j !== void 0 ? _j : TrackingConsent.GRANTED,
93
+ trackAnonymousUser: (_k = initConfiguration.trackAnonymousUser) !== null && _k !== void 0 ? _k : true,
94
+ storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,
95
+ betaEncodeCookieOptions: !!initConfiguration.betaEncodeCookieOptions,
96
+ /**
97
+ * The source of the SDK, used for support plugins purposes.
98
+ */
99
+ variant: initConfiguration.variant,
100
+ sdkVersion: initConfiguration.sdkVersion,
101
+ ...computeTransportConfiguration(initConfiguration),
102
+ };
103
+ }
104
+ export function serializeConfiguration(initConfiguration) {
105
+ return {
106
+ session_sample_rate: initConfiguration.sessionSampleRate,
107
+ telemetry_sample_rate: initConfiguration.telemetrySampleRate,
108
+ telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,
109
+ telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,
110
+ use_before_send: !!initConfiguration.beforeSend,
111
+ use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,
112
+ use_secure_session_cookie: initConfiguration.useSecureSessionCookie,
113
+ use_proxy: !!initConfiguration.proxy,
114
+ silent_multiple_init: initConfiguration.silentMultipleInit,
115
+ track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,
116
+ track_anonymous_user: initConfiguration.trackAnonymousUser,
117
+ session_persistence: initConfiguration.sessionPersistence,
118
+ allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,
119
+ store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,
120
+ allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,
121
+ tracking_consent: initConfiguration.trackingConsent,
122
+ use_allowed_tracking_origins: Array.isArray(initConfiguration.allowedTrackingOrigins),
123
+ beta_encode_cookie_options: initConfiguration.betaEncodeCookieOptions,
124
+ source: initConfiguration.source,
125
+ sdk_version: initConfiguration.sdkVersion,
126
+ variant: initConfiguration.variant,
127
+ };
128
+ }
129
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/domain/configuration/configuration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Payload } from '../../transport';
2
+ import type { InitConfiguration } from './configuration';
3
+ export type TrackType = 'logs' | 'rum' | 'replay' | 'profile' | 'exposures' | 'flagevaluation';
4
+ export type ApiType = 'fetch-keepalive' | 'fetch' | 'beacon' | 'manual';
5
+ export type EndpointBuilder = ReturnType<typeof createEndpointBuilder>;
6
+ export declare function createEndpointBuilder(initConfiguration: InitConfiguration, trackType: TrackType, extraParameters?: string[]): {
7
+ build(api: ApiType, payload: Payload): string;
8
+ trackType: TrackType;
9
+ };
10
+ export declare function buildEndpointHost(trackType: TrackType, initConfiguration: InitConfiguration & {
11
+ usePciIntake?: boolean;
12
+ }): string | null | undefined;
@@ -0,0 +1,62 @@
1
+ import { timeStampNow } from '../../tools/utils/timeUtils';
2
+ import { normalizeUrl } from '../../tools/utils/urlPolyfill';
3
+ import { generateUUID } from '../../tools/utils/stringUtils';
4
+ export function createEndpointBuilder(initConfiguration, trackType, extraParameters) {
5
+ const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);
6
+ return {
7
+ build(api, payload) {
8
+ const parameters = buildEndpointParameters(initConfiguration, trackType, api, payload, extraParameters);
9
+ return buildUrlWithParameters(parameters);
10
+ },
11
+ trackType,
12
+ };
13
+ }
14
+ /**
15
+ * Create a function used to build a full endpoint url from provided parameters. The goal of this
16
+ * function is to pre-compute some parts of the URL to avoid re-computing everything on every
17
+ * request, as only parameters are changing.
18
+ */
19
+ function createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {
20
+ const path = `/rum/api/v1/${trackType}`;
21
+ const proxy = initConfiguration.proxy;
22
+ if (typeof proxy === 'string') {
23
+ const normalizedProxyUrl = normalizeUrl(proxy);
24
+ return (parameters) => `${normalizedProxyUrl}?kubesense-forward=${encodeURIComponent(`${path}?${parameters}`)}`;
25
+ }
26
+ if (typeof proxy === 'function') {
27
+ return (parameters) => proxy({ path, parameters });
28
+ }
29
+ const host = initConfiguration.kubesenseRumEndpoint;
30
+ return (parameters) => `https://${host}${path}?${parameters}`;
31
+ }
32
+ export function buildEndpointHost(trackType, initConfiguration) {
33
+ const { kubesenseRumEndpoint, internalAnalyticsSubdomain } = initConfiguration;
34
+ return kubesenseRumEndpoint;
35
+ }
36
+ /**
37
+ * Build parameters to be used for an intake request. Parameters should be re-built for each
38
+ * request, as they change randomly.
39
+ */
40
+ function buildEndpointParameters({ clientToken, internalAnalyticsSubdomain, source = 'browser' }, trackType, api, { retry, encoding }, extraParameters = []) {
41
+ const parameters = [
42
+ `ksource=${source}`,
43
+ `kubesense-api-key=${clientToken}`,
44
+ `kubesense-evp-origin-version=${encodeURIComponent("1.0.0")}`,
45
+ 'kubesense-evp-origin=browser',
46
+ `kubesense-request-id=${generateUUID()}`,
47
+ ].concat(extraParameters);
48
+ if (encoding) {
49
+ parameters.push(`kubesense-evp-encoding=${encoding}`);
50
+ }
51
+ if (trackType === 'rum') {
52
+ parameters.push(`batch_time=${timeStampNow()}`, `_kubesense.api=${api}`);
53
+ if (retry) {
54
+ parameters.push(`_kubesense.retry_count=${retry.count}`, `_kubesense.retry_after=${retry.lastFailureStatus}`);
55
+ }
56
+ }
57
+ if (internalAnalyticsSubdomain) {
58
+ parameters.reverse();
59
+ }
60
+ return parameters.join('&');
61
+ }
62
+ //# sourceMappingURL=endpointBuilder.js.map