@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,409 @@
1
+ import { catchUserErrors } from '../../tools/catchUserErrors'
2
+ import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display'
3
+ import type { RawTelemetryConfiguration } from '../telemetry'
4
+ import { isPercentage } from '../../tools/utils/numberUtils'
5
+ import { objectHasValue } from '../../tools/utils/objectUtils'
6
+ import { selectSessionStoreStrategyType } from '../session/sessionStore'
7
+ import type { SessionStoreStrategyType } from '../session/storeStrategies/sessionStoreStrategy'
8
+ import { TrackingConsent } from '../trackingConsent'
9
+ import type { SessionPersistence } from '../session/sessionConstants'
10
+ import type { MatchOption } from '../../tools/matchOption'
11
+ import { isAllowedTrackingOrigins } from '../allowedTrackingOrigins'
12
+ import { isWorkerEnvironment } from '../../tools/globalObject'
13
+ import type { TransportConfiguration } from './transportConfiguration'
14
+ import { computeTransportConfiguration } from './transportConfiguration'
15
+ import type { Site } from '../intakeSites'
16
+
17
+ /**
18
+ * Default privacy level for the browser SDK.
19
+ *
20
+ * [Replay Privacy Options](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/privacy_options) for further information.
21
+ */
22
+ export const DefaultPrivacyLevel = {
23
+ ALLOW: 'allow',
24
+ MASK: 'mask',
25
+ MASK_USER_INPUT: 'mask-user-input',
26
+ MASK_UNLESS_ALLOWLISTED: 'mask-unless-allowlisted',
27
+ } as const
28
+ export type DefaultPrivacyLevel = (typeof DefaultPrivacyLevel)[keyof typeof DefaultPrivacyLevel]
29
+
30
+ /**
31
+ * Trace context injection option.
32
+ *
33
+ * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
34
+ */
35
+ export const TraceContextInjection = {
36
+ ALL: 'all',
37
+ SAMPLED: 'sampled',
38
+ } as const
39
+
40
+ /**
41
+ * Trace context injection option.
42
+ *
43
+ * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
44
+ *
45
+ */
46
+ export type TraceContextInjection = (typeof TraceContextInjection)[keyof typeof TraceContextInjection]
47
+
48
+ export interface InitConfiguration {
49
+ /**
50
+ * The client token for Kubsesense. Required for authenticating your application with Kubsesense.
51
+ *
52
+ * @category Authentication
53
+ */
54
+ clientToken: string
55
+ /**
56
+ * A callback function that can be used to modify events before they are sent to Kubsesense.
57
+ *
58
+ * @category Data Collection
59
+ */
60
+ beforeSend?: GenericBeforeSendCallback | undefined
61
+ /**
62
+ * The percentage of sessions tracked. A value between 0 and 100.
63
+ *
64
+ * @category Data Collection
65
+ * @defaultValue 100
66
+ */
67
+ sessionSampleRate?: number | undefined
68
+ /**
69
+ * The percentage of telemetry events sent. A value between 0 and 100.
70
+ *
71
+ * @category Data Collection
72
+ * @defaultValue 20
73
+ */
74
+ telemetrySampleRate?: number | undefined
75
+ /**
76
+ * Initialization fails silently if the RUM Browser SDK is already initialized on the page.
77
+ * @defaultValue false
78
+ */
79
+ silentMultipleInit?: boolean | undefined
80
+
81
+ /**
82
+ * Which storage strategy to use for persisting sessions. Can be either 'cookie' or 'local-storage'.
83
+ *
84
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
85
+ *
86
+ * @category Session Persistence
87
+ * @defaultValue "cookie"
88
+ */
89
+ sessionPersistence?: SessionPersistence | undefined
90
+
91
+ /**
92
+ * 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.
93
+ *
94
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
95
+ * @category Session Persistence
96
+ * @deprecated use `sessionPersistence: local-storage` where you want to use localStorage instead
97
+ */
98
+ allowFallbackToLocalStorage?: boolean | undefined
99
+
100
+ /**
101
+ * 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.
102
+ * @defaultValue false
103
+ */
104
+ allowUntrustedEvents?: boolean | undefined
105
+ /**
106
+ * Store global context and user context in localStorage to preserve them along the user navigation.
107
+ * @defaultValue false
108
+ */
109
+ storeContextsAcrossPages?: boolean | undefined
110
+ /**
111
+ * Set the initial user tracking consent state.
112
+ *
113
+ * @category Privacy
114
+ * @defaultValue granted
115
+ */
116
+ trackingConsent?: TrackingConsent | undefined
117
+
118
+ /**
119
+ * List of origins where the SDK is allowed to run when used in a browser extension context.
120
+ * Matches urls against the extensions origin.
121
+ * If not provided and the SDK is running in a browser extension, the SDK will not run.
122
+ */
123
+ allowedTrackingOrigins?: MatchOption[] | undefined
124
+
125
+ // transport options
126
+ /**
127
+ * Optional proxy URL, for example: https://www.proxy.com/path.
128
+ *
129
+ * @category Transport
130
+ */
131
+ proxy?: string | ProxyFn | undefined
132
+ /**
133
+ *
134
+ * @category Transport
135
+ * @defaultValue rum.kubesense.ai
136
+ */
137
+ kubesenseRumEndpoint?: Site | undefined | null
138
+
139
+ // tag and context options
140
+ /**
141
+ * The service name for your application.
142
+ *
143
+ * @category Data Collection
144
+ */
145
+ service?: string | undefined | null
146
+ /**
147
+ * The application’s environment, for example: prod, pre-prod, and staging.
148
+ *
149
+ * @category Data Collection
150
+ */
151
+ env?: string | undefined | null
152
+ /**
153
+ * The application’s version, for example: 1.2.3, 6c44da20, and 2020.02.13.
154
+ *
155
+ * @category Data Collection
156
+ */
157
+ version?: string | undefined | null
158
+
159
+ // cookie options
160
+ /**
161
+ * 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`.
162
+ *
163
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
164
+ * @category Session Persistence
165
+ * @defaultValue false
166
+ */
167
+ usePartitionedCrossSiteSessionCookie?: boolean | undefined
168
+ /**
169
+ * Use a secure session cookie. This disables RUM events sent on insecure (non-HTTPS) connections.
170
+ *
171
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
172
+ * @category Session Persistence
173
+ * @defaultValue false
174
+ */
175
+ useSecureSessionCookie?: boolean | undefined
176
+ /**
177
+ * Preserve the session across subdomains for the same site.
178
+ *
179
+ * Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
180
+ * @category Session Persistence
181
+ * @defaultValue false
182
+ */
183
+ trackSessionAcrossSubdomains?: boolean | undefined
184
+ /**
185
+ * Track anonymous user for the same site and extend cookie expiration date
186
+ * @category Data Collection
187
+ * @defaultValue true
188
+ */
189
+ trackAnonymousUser?: boolean | undefined
190
+ /**
191
+ * Encode cookie options in the cookie value. This can be used as a mitigation for microssession issues.
192
+ * ⚠️ This is a beta feature and may be changed or removed in the future.
193
+ *
194
+ * @category Beta
195
+ * @defaultValue false
196
+ */
197
+ betaEncodeCookieOptions?: boolean | undefined
198
+ // internal options
199
+ /**
200
+ * [Internal option] Enable experimental features
201
+ * @internal
202
+ */
203
+ enableExperimentalFeatures?: string[] | undefined
204
+ /**
205
+ * [Internal option] Configure the dual shipping to another datacenter
206
+ * @internal
207
+ */
208
+ replica?: ReplicaUserConfiguration | undefined
209
+ /**
210
+ * [Internal option] Set the datacenter from where the data is dual shipped
211
+ * @internal
212
+ */
213
+ datacenter?: string
214
+ /**
215
+ * [Internal option] Kubsesense internal analytics subdomain
216
+ * @internal
217
+ */
218
+ // TODO next major: remove this option and replace usages by proxyFn
219
+ internalAnalyticsSubdomain?: string
220
+ /**
221
+ * [Internal option] The percentage of telemetry configuration sent. A value between 0 and 100.
222
+ * @internal
223
+ * @defaultValue 5
224
+ */
225
+ telemetryConfigurationSampleRate?: number
226
+ /**
227
+ * [Internal option] The percentage of telemetry usage sent. A value between 0 and 100.
228
+ * @internal
229
+ * @defaultValue 5
230
+ */
231
+ telemetryUsageSampleRate?: number
232
+
233
+ /**
234
+ * [Internal option] Additional configuration for the SDK.
235
+ *
236
+ * @internal
237
+ */
238
+ source?: 'browser' | 'flutter' | 'unity' | undefined
239
+
240
+ /**
241
+ * [Internal option] Additional configuration for the SDK.
242
+ *
243
+ * @internal
244
+ */
245
+ sdkVersion?: string | undefined
246
+
247
+ /**
248
+ * [Internal option] Additional configuration for the SDK.
249
+ *
250
+ * @internal
251
+ */
252
+ variant?: string | undefined
253
+ }
254
+
255
+ // This type is only used to build the core configuration. Logs and RUM SDKs are using a proper type
256
+ // for this option.
257
+ type GenericBeforeSendCallback = (event: any, context?: any) => unknown
258
+
259
+ /**
260
+ * path: /api/vX/product
261
+ * parameters: xxx=yyy&zzz=aaa
262
+ */
263
+ export type ProxyFn = (options: { path: string; parameters: string }) => string
264
+
265
+ export interface ReplicaUserConfiguration {
266
+ applicationId?: string
267
+ clientToken: string
268
+ }
269
+
270
+ export interface Configuration extends TransportConfiguration {
271
+ // Built from init configuration
272
+ beforeSend: GenericBeforeSendCallback | undefined
273
+ sessionStoreStrategyType: SessionStoreStrategyType | undefined
274
+ sessionSampleRate: number
275
+ telemetrySampleRate: number
276
+ telemetryConfigurationSampleRate: number
277
+ telemetryUsageSampleRate: number
278
+ service: string | undefined
279
+ version?: string | undefined
280
+ env?: string | undefined
281
+ silentMultipleInit: boolean
282
+ allowUntrustedEvents: boolean
283
+ trackingConsent: TrackingConsent
284
+ storeContextsAcrossPages: boolean
285
+ trackAnonymousUser?: boolean
286
+ betaEncodeCookieOptions: boolean
287
+
288
+ // internal
289
+ sdkVersion: string | undefined
290
+ source: 'browser' | 'flutter' | 'unity'
291
+ variant: string | undefined
292
+ }
293
+
294
+ function isString(tag: unknown, tagName: string): tag is string | undefined | null {
295
+ if (tag !== undefined && tag !== null && typeof tag !== 'string') {
296
+ display.error(`${tagName} must be defined as a string`)
297
+ return false
298
+ }
299
+ return true
300
+ }
301
+
302
+ function isKubsesenseSite(site: unknown) {
303
+ if (site && typeof site === 'string' && !/(kubesense|tyke)/.test(site)) {
304
+ display.error(`Site should be a valid Kubsesense site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`)
305
+ return false
306
+ }
307
+ return true
308
+ }
309
+
310
+ export function isSampleRate(sampleRate: unknown, name: string) {
311
+ if (sampleRate !== undefined && !isPercentage(sampleRate)) {
312
+ display.error(`${name} Sample Rate should be a number between 0 and 100`)
313
+ return false
314
+ }
315
+ return true
316
+ }
317
+
318
+ export function validateAndBuildConfiguration(
319
+ initConfiguration: InitConfiguration,
320
+ errorStack?: string
321
+ ): Configuration | undefined {
322
+ if (!initConfiguration || !initConfiguration.clientToken) {
323
+ display.error('Client Token is not configured, we will not send any data.')
324
+ return
325
+ }
326
+
327
+ if (
328
+ initConfiguration.allowedTrackingOrigins !== undefined &&
329
+ !Array.isArray(initConfiguration.allowedTrackingOrigins)
330
+ ) {
331
+ display.error('Allowed Tracking Origins must be an array')
332
+ return
333
+ }
334
+
335
+ if (
336
+ // !isKubsesenseSite(initConfiguration.kubesenseRumEndpoint) ||
337
+ !isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||
338
+ !isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||
339
+ !isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||
340
+ !isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||
341
+ !isString(initConfiguration.version, 'Version') ||
342
+ !isString(initConfiguration.env, 'Env') ||
343
+ !isString(initConfiguration.service, 'Service') ||
344
+ !isAllowedTrackingOrigins(initConfiguration, errorStack ?? '')
345
+ ) {
346
+ return
347
+ }
348
+
349
+ if (
350
+ initConfiguration.trackingConsent !== undefined &&
351
+ !objectHasValue(TrackingConsent, initConfiguration.trackingConsent)
352
+ ) {
353
+ display.error('Tracking Consent should be either "granted" or "not-granted"')
354
+ return
355
+ }
356
+
357
+ return {
358
+ beforeSend:
359
+ initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
360
+ sessionStoreStrategyType: isWorkerEnvironment ? undefined : selectSessionStoreStrategyType(initConfiguration),
361
+ sessionSampleRate: initConfiguration.sessionSampleRate ?? 100,
362
+ telemetrySampleRate: initConfiguration.telemetrySampleRate ?? 20,
363
+ telemetryConfigurationSampleRate: initConfiguration.telemetryConfigurationSampleRate ?? 5,
364
+ telemetryUsageSampleRate: initConfiguration.telemetryUsageSampleRate ?? 5,
365
+ service: initConfiguration.service ?? undefined,
366
+ env: initConfiguration.env ?? undefined,
367
+ version: initConfiguration.version ?? undefined,
368
+ datacenter: initConfiguration.datacenter ?? undefined,
369
+ silentMultipleInit: !!initConfiguration.silentMultipleInit,
370
+ allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,
371
+ trackingConsent: initConfiguration.trackingConsent ?? TrackingConsent.GRANTED,
372
+ trackAnonymousUser: initConfiguration.trackAnonymousUser ?? true,
373
+ storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,
374
+ betaEncodeCookieOptions: !!initConfiguration.betaEncodeCookieOptions,
375
+ /**
376
+ * The source of the SDK, used for support plugins purposes.
377
+ */
378
+ variant: initConfiguration.variant,
379
+ sdkVersion: initConfiguration.sdkVersion,
380
+
381
+ ...computeTransportConfiguration(initConfiguration),
382
+ }
383
+ }
384
+
385
+ export function serializeConfiguration(initConfiguration: InitConfiguration) {
386
+ return {
387
+ session_sample_rate: initConfiguration.sessionSampleRate,
388
+ telemetry_sample_rate: initConfiguration.telemetrySampleRate,
389
+ telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,
390
+ telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,
391
+ use_before_send: !!initConfiguration.beforeSend,
392
+ use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,
393
+ use_secure_session_cookie: initConfiguration.useSecureSessionCookie,
394
+ use_proxy: !!initConfiguration.proxy,
395
+ silent_multiple_init: initConfiguration.silentMultipleInit,
396
+ track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,
397
+ track_anonymous_user: initConfiguration.trackAnonymousUser,
398
+ session_persistence: initConfiguration.sessionPersistence,
399
+ allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,
400
+ store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,
401
+ allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,
402
+ tracking_consent: initConfiguration.trackingConsent,
403
+ use_allowed_tracking_origins: Array.isArray(initConfiguration.allowedTrackingOrigins),
404
+ beta_encode_cookie_options: initConfiguration.betaEncodeCookieOptions,
405
+ source: initConfiguration.source,
406
+ sdk_version: initConfiguration.sdkVersion,
407
+ variant: initConfiguration.variant,
408
+ } satisfies RawTelemetryConfiguration
409
+ }
@@ -0,0 +1,105 @@
1
+ import type { Payload } from '../../transport'
2
+ import { timeStampNow } from '../../tools/utils/timeUtils'
3
+ import { normalizeUrl } from '../../tools/utils/urlPolyfill'
4
+ import { generateUUID } from '../../tools/utils/stringUtils'
5
+ import type { InitConfiguration } from './configuration'
6
+ import { INTAKE_SITE_STAGING, INTAKE_SITE_PROD } from '../intakeSites'
7
+
8
+ // replaced at build time
9
+ declare const __BUILD_ENV__SDK_VERSION__: string
10
+
11
+ export type TrackType = 'logs' | 'rum' | 'replay' | 'profile' | 'exposures' | 'flagevaluation'
12
+ export type ApiType =
13
+ | 'fetch-keepalive'
14
+ | 'fetch'
15
+ | 'beacon'
16
+ // 'manual' reflects that the request have been sent manually, outside of the SDK (ex: via curl or
17
+ // a Node.js script).
18
+ | 'manual'
19
+
20
+ export type EndpointBuilder = ReturnType<typeof createEndpointBuilder>
21
+
22
+ export function createEndpointBuilder(
23
+ initConfiguration: InitConfiguration,
24
+ trackType: TrackType,
25
+ extraParameters?: string[]
26
+ ) {
27
+ const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType)
28
+
29
+ return {
30
+ build(api: ApiType, payload: Payload) {
31
+ const parameters = buildEndpointParameters(initConfiguration, trackType, api, payload, extraParameters)
32
+ return buildUrlWithParameters(parameters)
33
+ },
34
+ trackType,
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Create a function used to build a full endpoint url from provided parameters. The goal of this
40
+ * function is to pre-compute some parts of the URL to avoid re-computing everything on every
41
+ * request, as only parameters are changing.
42
+ */
43
+ function createEndpointUrlWithParametersBuilder(
44
+ initConfiguration: InitConfiguration,
45
+ trackType: TrackType
46
+ ): (parameters: string) => string {
47
+ const path = `/rum/api/v1/${trackType}`
48
+ const proxy = initConfiguration.proxy
49
+ if (typeof proxy === 'string') {
50
+ const normalizedProxyUrl = normalizeUrl(proxy)
51
+ return (parameters) => `${normalizedProxyUrl}?kubesense-forward=${encodeURIComponent(`${path}?${parameters}`)}`
52
+ }
53
+ if (typeof proxy === 'function') {
54
+ return (parameters) => proxy({ path, parameters })
55
+ }
56
+ const host = initConfiguration.kubesenseRumEndpoint
57
+ return (parameters) => `https://${host}${path}?${parameters}`
58
+ }
59
+
60
+ export function buildEndpointHost(
61
+ trackType: TrackType,
62
+ initConfiguration: InitConfiguration & { usePciIntake?: boolean }
63
+ ) {
64
+ const { kubesenseRumEndpoint, internalAnalyticsSubdomain } = initConfiguration
65
+
66
+ return kubesenseRumEndpoint
67
+ }
68
+
69
+ /**
70
+ * Build parameters to be used for an intake request. Parameters should be re-built for each
71
+ * request, as they change randomly.
72
+ */
73
+ function buildEndpointParameters(
74
+ { clientToken, internalAnalyticsSubdomain, source = 'browser'}: InitConfiguration,
75
+ trackType: TrackType,
76
+ api: ApiType,
77
+ { retry, encoding }: Payload,
78
+ extraParameters: string[] = []
79
+ ) {
80
+ const parameters = [
81
+ `ksource=${source}`,
82
+ `kubesense-api-key=${clientToken}`,
83
+ `kubesense-evp-origin-version=${encodeURIComponent(__BUILD_ENV__SDK_VERSION__)}`,
84
+ 'kubesense-evp-origin=browser',
85
+ `kubesense-request-id=${generateUUID()}`,
86
+ ].concat(extraParameters)
87
+
88
+ if (encoding) {
89
+ parameters.push(`kubesense-evp-encoding=${encoding}`)
90
+ }
91
+
92
+ if (trackType === 'rum') {
93
+ parameters.push(`batch_time=${timeStampNow()}`, `_kubesense.api=${api}`)
94
+
95
+ if (retry) {
96
+ parameters.push(`_kubesense.retry_count=${retry.count}`, `_kubesense.retry_after=${retry.lastFailureStatus}`)
97
+ }
98
+ }
99
+
100
+ if (internalAnalyticsSubdomain) {
101
+ parameters.reverse()
102
+ }
103
+
104
+ return parameters.join('&')
105
+ }
@@ -0,0 +1,12 @@
1
+ export type { Configuration, InitConfiguration, ProxyFn } from './configuration'
2
+ export {
3
+ DefaultPrivacyLevel,
4
+ TraceContextInjection,
5
+ isSampleRate,
6
+ validateAndBuildConfiguration,
7
+ serializeConfiguration,
8
+ } from './configuration'
9
+ export type { EndpointBuilder, TrackType } from './endpointBuilder'
10
+ export { createEndpointBuilder, buildEndpointHost } from './endpointBuilder'
11
+ export * from '../intakeSites'
12
+ export { computeTransportConfiguration, isIntakeUrl } from './transportConfiguration'
@@ -0,0 +1,86 @@
1
+ import type { InitConfiguration } from './configuration'
2
+ import type { EndpointBuilder } from './endpointBuilder'
3
+ import { createEndpointBuilder } from './endpointBuilder'
4
+ // import { buildTags } from './tags'
5
+ import type { Site } from '../intakeSites'
6
+ import { INTAKE_SITE_PROD, INTAKE_URL_PARAMETERS } from '../intakeSites'
7
+
8
+ export interface TransportConfiguration {
9
+ logsEndpointBuilder: EndpointBuilder
10
+ rumEndpointBuilder: EndpointBuilder
11
+ sessionReplayEndpointBuilder: EndpointBuilder
12
+ profilingEndpointBuilder: EndpointBuilder
13
+ exposuresEndpointBuilder: EndpointBuilder
14
+ flagEvaluationEndpointBuilder: EndpointBuilder
15
+ datacenter?: string | undefined
16
+ replica?: ReplicaConfiguration
17
+ kubesenseRumEndpoint: Site
18
+ source: 'browser' | 'flutter' | 'unity'
19
+ }
20
+
21
+ export interface ReplicaConfiguration {
22
+ logsEndpointBuilder: EndpointBuilder
23
+ rumEndpointBuilder: EndpointBuilder
24
+ }
25
+
26
+ export function computeTransportConfiguration(initConfiguration: InitConfiguration): TransportConfiguration {
27
+ const site = initConfiguration.kubesenseRumEndpoint || INTAKE_SITE_PROD
28
+ const source = validateSource(initConfiguration.source)
29
+
30
+ // const tags = buildTags(initConfiguration)
31
+
32
+ // const endpointBuilders = computeEndpointBuilders(initConfiguration, tags)
33
+ // const replicaConfiguration = computeReplicaConfiguration(initConfiguration, tags)
34
+
35
+ const endpointBuilders = computeEndpointBuilders({ ...initConfiguration, kubesenseRumEndpoint: site, source })
36
+ const replicaConfiguration = computeReplicaConfiguration({ ...initConfiguration, kubesenseRumEndpoint: site, source })
37
+
38
+ return {
39
+ replica: replicaConfiguration,
40
+ kubesenseRumEndpoint: site,
41
+ source,
42
+ ...endpointBuilders,
43
+ }
44
+ }
45
+
46
+ function validateSource(source: string | undefined) {
47
+ if (source === 'flutter' || source === 'unity') {
48
+ return source
49
+ }
50
+ return 'browser'
51
+ }
52
+
53
+ function computeEndpointBuilders(initConfiguration: InitConfiguration) {
54
+ return {
55
+ logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs'),
56
+ rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum'),
57
+ profilingEndpointBuilder: createEndpointBuilder(initConfiguration, 'profile'),
58
+ sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay'),
59
+ exposuresEndpointBuilder: createEndpointBuilder(initConfiguration, 'exposures'),
60
+ flagEvaluationEndpointBuilder: createEndpointBuilder(initConfiguration, 'flagevaluation'),
61
+ }
62
+ }
63
+
64
+ function computeReplicaConfiguration(initConfiguration: InitConfiguration): ReplicaConfiguration | undefined {
65
+ if (!initConfiguration.replica) {
66
+ return
67
+ }
68
+
69
+ const replicaConfiguration: InitConfiguration = {
70
+ ...initConfiguration,
71
+ kubesenseRumEndpoint: INTAKE_SITE_PROD,
72
+ clientToken: initConfiguration.replica.clientToken,
73
+ }
74
+
75
+ return {
76
+ logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs'),
77
+ rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', [
78
+ `application.id=${initConfiguration.replica.applicationId}`,
79
+ ]),
80
+ }
81
+ }
82
+
83
+ export function isIntakeUrl(url: string): boolean {
84
+ // check if tags is present in the query string
85
+ return INTAKE_URL_PARAMETERS.every((param) => url.includes(param))
86
+ }
@@ -0,0 +1,31 @@
1
+ import { globalObject } from '../../tools/globalObject'
2
+
3
+ export type NetworkInterface = 'bluetooth' | 'cellular' | 'ethernet' | 'none' | 'wifi' | 'wimax' | 'other' | 'unknown'
4
+ export type EffectiveType = 'slow-2g' | '2g' | '3g' | '4g'
5
+
6
+ interface BrowserNavigator extends Navigator {
7
+ connection?: NetworkInformation
8
+ }
9
+
10
+ export interface NetworkInformation {
11
+ type?: NetworkInterface
12
+ effectiveType?: EffectiveType
13
+ saveData: boolean
14
+ }
15
+
16
+ export interface Connectivity {
17
+ status: 'connected' | 'not_connected'
18
+ interfaces?: NetworkInterface[]
19
+ effective_type?: EffectiveType
20
+ [key: string]: unknown
21
+ }
22
+
23
+ export function getConnectivity(): Connectivity {
24
+ const navigator = globalObject.navigator as BrowserNavigator
25
+
26
+ return {
27
+ status: navigator.onLine ? 'connected' : 'not_connected',
28
+ interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : ['unknown'],
29
+ effective_type: navigator.connection?.effectiveType,
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export * from './connectivity'