@kubesense/kubesense-browser-core 1.7.0 → 2.0.0-beta.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 (935) hide show
  1. package/LICENSE +1 -1
  2. package/cjs/boot/displayAlreadyInitializedError.js +6 -7
  3. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
  4. package/cjs/boot/init.d.ts +1 -0
  5. package/cjs/boot/init.js +26 -34
  6. package/cjs/boot/init.js.map +1 -1
  7. package/cjs/browser/addEventListener.d.ts +12 -9
  8. package/cjs/browser/addEventListener.js +107 -50
  9. package/cjs/browser/addEventListener.js.map +1 -1
  10. package/cjs/browser/browser.types.d.ts +0 -24
  11. package/cjs/browser/cookie.d.ts +4 -1
  12. package/cjs/browser/cookie.js +76 -89
  13. package/cjs/browser/cookie.js.map +1 -1
  14. package/cjs/browser/cookieAccess.d.ts +18 -0
  15. package/cjs/browser/cookieAccess.js +129 -0
  16. package/cjs/browser/cookieAccess.js.map +1 -0
  17. package/cjs/browser/fetch.d.ts +9 -0
  18. package/cjs/browser/fetch.js +18 -0
  19. package/cjs/browser/fetch.js.map +1 -0
  20. package/cjs/browser/fetchObservable.d.ts +3 -3
  21. package/cjs/browser/fetchObservable.js +79 -92
  22. package/cjs/browser/fetchObservable.js.map +1 -1
  23. package/cjs/browser/pageMayExitObservable.d.ts +1 -2
  24. package/cjs/browser/pageMayExitObservable.js +53 -51
  25. package/cjs/browser/pageMayExitObservable.js.map +1 -1
  26. package/cjs/browser/runOnReadyState.d.ts +2 -3
  27. package/cjs/browser/runOnReadyState.js +18 -17
  28. package/cjs/browser/runOnReadyState.js.map +1 -1
  29. package/cjs/browser/webSocketObservable.d.ts +44 -0
  30. package/cjs/browser/webSocketObservable.js +92 -0
  31. package/cjs/browser/webSocketObservable.js.map +1 -0
  32. package/cjs/browser/xhrObservable.d.ts +8 -3
  33. package/cjs/browser/xhrObservable.js +64 -77
  34. package/cjs/browser/xhrObservable.js.map +1 -1
  35. package/cjs/domain/allowedTrackingOrigins.d.ts +2 -2
  36. package/cjs/domain/allowedTrackingOrigins.js +27 -23
  37. package/cjs/domain/allowedTrackingOrigins.js.map +1 -1
  38. package/cjs/domain/bufferedData.d.ts +20 -6
  39. package/cjs/domain/bufferedData.js +41 -19
  40. package/cjs/domain/bufferedData.js.map +1 -1
  41. package/cjs/domain/configuration/configuration.d.ts +169 -76
  42. package/cjs/domain/configuration/configuration.js +159 -128
  43. package/cjs/domain/configuration/configuration.js.map +1 -1
  44. package/cjs/domain/configuration/index.d.ts +5 -7
  45. package/cjs/domain/configuration/remoteSdkConfig.d.ts +26 -6
  46. package/cjs/domain/configuration/remoteSdkConfig.js +152 -159
  47. package/cjs/domain/configuration/remoteSdkConfig.js.map +1 -1
  48. package/cjs/domain/connectivity/connectivity.d.ts +2 -10
  49. package/cjs/domain/connectivity/connectivity.js +13 -13
  50. package/cjs/domain/connectivity/connectivity.js.map +1 -1
  51. package/cjs/domain/console/consoleObservable.d.ts +1 -1
  52. package/cjs/domain/console/consoleObservable.js +62 -74
  53. package/cjs/domain/console/consoleObservable.js.map +1 -1
  54. package/cjs/domain/context/contextConstants.js +24 -15
  55. package/cjs/domain/context/contextConstants.js.map +1 -1
  56. package/cjs/domain/context/contextManager.js +49 -53
  57. package/cjs/domain/context/contextManager.js.map +1 -1
  58. package/cjs/domain/context/contextUtils.js +11 -12
  59. package/cjs/domain/context/contextUtils.js.map +1 -1
  60. package/cjs/domain/context/defineContextMethod.d.ts +2 -2
  61. package/cjs/domain/context/defineContextMethod.js +15 -16
  62. package/cjs/domain/context/defineContextMethod.js.map +1 -1
  63. package/cjs/domain/context/storeContextManager.d.ts +1 -2
  64. package/cjs/domain/context/storeContextManager.js +31 -33
  65. package/cjs/domain/context/storeContextManager.js.map +1 -1
  66. package/cjs/domain/contexts/accountContext.d.ts +2 -2
  67. package/cjs/domain/contexts/accountContext.js +26 -29
  68. package/cjs/domain/contexts/accountContext.js.map +1 -1
  69. package/cjs/domain/contexts/globalContext.d.ts +2 -2
  70. package/cjs/domain/contexts/globalContext.js +17 -17
  71. package/cjs/domain/contexts/globalContext.js.map +1 -1
  72. package/cjs/domain/contexts/tabContext.d.ts +4 -0
  73. package/cjs/domain/contexts/tabContext.js +28 -0
  74. package/cjs/domain/contexts/tabContext.js.map +1 -0
  75. package/cjs/domain/contexts/telemetrySessionContext.d.ts +4 -0
  76. package/cjs/domain/contexts/telemetrySessionContext.js +17 -0
  77. package/cjs/domain/contexts/telemetrySessionContext.js.map +1 -0
  78. package/cjs/domain/contexts/userContext.d.ts +8 -3
  79. package/cjs/domain/contexts/userContext.js +79 -114
  80. package/cjs/domain/contexts/userContext.js.map +1 -1
  81. package/cjs/domain/deflate/deflate.types.js +11 -2
  82. package/cjs/domain/deflate/deflate.types.js.map +1 -1
  83. package/cjs/domain/error/error.d.ts +14 -6
  84. package/cjs/domain/error/error.js +101 -70
  85. package/cjs/domain/error/error.js.map +1 -1
  86. package/cjs/domain/error/error.types.d.ts +6 -4
  87. package/cjs/domain/error/error.types.js +24 -11
  88. package/cjs/domain/error/error.types.js.map +1 -1
  89. package/cjs/domain/error/isError.d.ts +2 -0
  90. package/cjs/domain/error/isError.js +14 -0
  91. package/cjs/domain/error/isError.js.map +1 -0
  92. package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
  93. package/cjs/domain/error/trackRuntimeError.js +44 -41
  94. package/cjs/domain/error/trackRuntimeError.js.map +1 -1
  95. package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +1 -2
  96. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +28 -38
  97. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
  98. package/cjs/domain/extension/extensionUtils.js +20 -25
  99. package/cjs/domain/extension/extensionUtils.js.map +1 -1
  100. package/cjs/domain/geo/geocoding.js +64 -0
  101. package/cjs/domain/geo/geocoding.js.map +1 -0
  102. package/cjs/domain/geo/geolocation.js +72 -0
  103. package/cjs/domain/geo/geolocation.js.map +1 -0
  104. package/cjs/domain/report/reportObservable.d.ts +1 -2
  105. package/cjs/domain/report/reportObservable.js +76 -85
  106. package/cjs/domain/report/reportObservable.js.map +1 -1
  107. package/cjs/domain/resourceUtils.d.ts +1 -0
  108. package/cjs/domain/resourceUtils.js +20 -17
  109. package/cjs/domain/resourceUtils.js.map +1 -1
  110. package/cjs/domain/sampler.d.ts +11 -0
  111. package/cjs/domain/sampler.js +40 -0
  112. package/cjs/domain/sampler.js.map +1 -0
  113. package/cjs/domain/session/sessionConstants.d.ts +1 -0
  114. package/cjs/domain/session/sessionConstants.js +19 -13
  115. package/cjs/domain/session/sessionConstants.js.map +1 -1
  116. package/cjs/domain/session/sessionManager.d.ts +21 -13
  117. package/cjs/domain/session/sessionManager.js +254 -191
  118. package/cjs/domain/session/sessionManager.js.map +1 -1
  119. package/cjs/domain/session/sessionState.d.ts +10 -1
  120. package/cjs/domain/session/sessionState.js +72 -56
  121. package/cjs/domain/session/sessionState.js.map +1 -1
  122. package/cjs/domain/session/sessionStateValidation.js +7 -8
  123. package/cjs/domain/session/sessionStateValidation.js.map +1 -1
  124. package/cjs/domain/session/sessionStore.d.ts +4 -33
  125. package/cjs/domain/session/sessionStore.js +41 -181
  126. package/cjs/domain/session/sessionStore.js.map +1 -1
  127. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +7 -11
  128. package/cjs/domain/session/storeStrategies/sessionInCookie.js +90 -96
  129. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
  130. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +1 -4
  131. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +39 -38
  132. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
  133. package/cjs/domain/session/storeStrategies/sessionInMemory.d.ts +12 -0
  134. package/cjs/domain/session/storeStrategies/sessionInMemory.js +36 -0
  135. package/cjs/domain/session/storeStrategies/sessionInMemory.js.map +1 -0
  136. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -7
  137. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +7 -4
  138. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -1
  139. package/cjs/domain/sourceCodeContext.d.ts +22 -0
  140. package/cjs/domain/sourceCodeContext.js +56 -0
  141. package/cjs/domain/sourceCodeContext.js.map +1 -0
  142. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
  143. package/cjs/domain/synthetics/syntheticsWorkerValues.js +37 -25
  144. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
  145. package/cjs/domain/tags.d.ts +1 -2
  146. package/cjs/domain/tags.js +23 -57
  147. package/cjs/domain/tags.js.map +1 -1
  148. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +8 -7
  149. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -1
  150. package/cjs/domain/telemetry/telemetry.d.ts +7 -8
  151. package/cjs/domain/telemetry/telemetry.js +192 -215
  152. package/cjs/domain/telemetry/telemetry.js.map +1 -1
  153. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +161 -16
  154. package/cjs/domain/trackingConsent.d.ts +1 -0
  155. package/cjs/domain/trackingConsent.js +35 -24
  156. package/cjs/domain/trackingConsent.js.map +1 -1
  157. package/cjs/domain/userAgentData/userAgentData.js +65 -96
  158. package/cjs/domain/userAgentData/userAgentData.js.map +1 -1
  159. package/cjs/index.d.ts +34 -30
  160. package/cjs/index.js +297 -213
  161. package/cjs/tools/abstractLifeCycle.js +19 -26
  162. package/cjs/tools/abstractLifeCycle.js.map +1 -1
  163. package/cjs/tools/catchUserErrors.js +12 -12
  164. package/cjs/tools/catchUserErrors.js.map +1 -1
  165. package/cjs/tools/display.d.ts +1 -37
  166. package/cjs/tools/display.js +8 -43
  167. package/cjs/tools/display.js.map +1 -1
  168. package/cjs/tools/encoder.js +36 -37
  169. package/cjs/tools/encoder.js.map +1 -1
  170. package/cjs/tools/experimentalFeatures.d.ts +1 -4
  171. package/cjs/tools/experimentalFeatures.js +29 -40
  172. package/cjs/tools/experimentalFeatures.js.map +1 -1
  173. package/cjs/tools/getZoneJsOriginalValue.d.ts +1 -1
  174. package/cjs/tools/getZoneJsOriginalValue.js +22 -25
  175. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -1
  176. package/cjs/tools/instrumentMethod.d.ts +57 -0
  177. package/cjs/tools/instrumentMethod.js +179 -112
  178. package/cjs/tools/instrumentMethod.js.map +1 -1
  179. package/cjs/tools/matchOption.d.ts +0 -1
  180. package/cjs/tools/matchOption.js +21 -31
  181. package/cjs/tools/matchOption.js.map +1 -1
  182. package/cjs/tools/mockable.d.ts +22 -0
  183. package/cjs/tools/mockable.js +28 -0
  184. package/cjs/tools/mockable.js.map +1 -0
  185. package/cjs/tools/observable.d.ts +3 -1
  186. package/cjs/tools/observable.js +75 -85
  187. package/cjs/tools/observable.js.map +1 -1
  188. package/cjs/tools/queueMicrotask.js +9 -14
  189. package/cjs/tools/queueMicrotask.js.map +1 -1
  190. package/cjs/tools/readBytesFromStream.d.ts +1 -6
  191. package/cjs/tools/readBytesFromStream.js +18 -25
  192. package/cjs/tools/readBytesFromStream.js.map +1 -1
  193. package/cjs/tools/requestIdleCallback.js +23 -29
  194. package/cjs/tools/requestIdleCallback.js.map +1 -1
  195. package/cjs/tools/sendToExtension.js +10 -8
  196. package/cjs/tools/sendToExtension.js.map +1 -1
  197. package/cjs/tools/serialisation/jsonStringify.js +37 -42
  198. package/cjs/tools/serialisation/jsonStringify.js.map +1 -1
  199. package/cjs/tools/serialisation/sanitize.d.ts +1 -0
  200. package/cjs/tools/serialisation/sanitize.js +112 -167
  201. package/cjs/tools/serialisation/sanitize.js.map +1 -1
  202. package/cjs/tools/serialisation/stringify.d.ts +2 -0
  203. package/cjs/tools/serialisation/stringify.js +18 -0
  204. package/cjs/tools/serialisation/stringify.js.map +1 -0
  205. package/cjs/tools/stackTrace/computeStackTrace.js +121 -159
  206. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -1
  207. package/cjs/tools/stackTrace/handlingStack.d.ts +1 -1
  208. package/cjs/tools/stackTrace/handlingStack.js +39 -38
  209. package/cjs/tools/stackTrace/handlingStack.js.map +1 -1
  210. package/cjs/tools/taskQueue.js +40 -49
  211. package/cjs/tools/taskQueue.js.map +1 -1
  212. package/cjs/tools/thenable.d.ts +8 -0
  213. package/cjs/tools/thenable.js +27 -0
  214. package/cjs/tools/thenable.js.map +1 -0
  215. package/cjs/tools/timer.d.ts +2 -1
  216. package/cjs/tools/timer.js +14 -13
  217. package/cjs/tools/timer.js.map +1 -1
  218. package/cjs/tools/utils/arrayUtils.d.ts +1 -0
  219. package/cjs/tools/utils/arrayUtils.js +17 -13
  220. package/cjs/tools/utils/arrayUtils.js.map +1 -1
  221. package/cjs/tools/utils/browserDetection.d.ts +1 -0
  222. package/cjs/tools/utils/browserDetection.js +25 -23
  223. package/cjs/tools/utils/browserDetection.js.map +1 -1
  224. package/cjs/tools/utils/byteUtils.js +20 -28
  225. package/cjs/tools/utils/byteUtils.js.map +1 -1
  226. package/cjs/tools/utils/functionUtils.js +33 -40
  227. package/cjs/tools/utils/functionUtils.js.map +1 -1
  228. package/cjs/tools/utils/numberUtils.d.ts +0 -6
  229. package/cjs/tools/utils/numberUtils.js +7 -18
  230. package/cjs/tools/utils/numberUtils.js.map +1 -1
  231. package/cjs/tools/utils/objectUtils.d.ts +2 -0
  232. package/cjs/tools/utils/objectUtils.js +27 -14
  233. package/cjs/tools/utils/objectUtils.js.map +1 -1
  234. package/cjs/tools/utils/polyfills.js +12 -16
  235. package/cjs/tools/utils/polyfills.js.map +1 -1
  236. package/cjs/tools/utils/responseUtils.js +11 -12
  237. package/cjs/tools/utils/responseUtils.js.map +1 -1
  238. package/cjs/tools/utils/stringUtils.d.ts +9 -0
  239. package/cjs/tools/utils/stringUtils.js +73 -77
  240. package/cjs/tools/utils/stringUtils.js.map +1 -1
  241. package/cjs/tools/utils/timezone.js +9 -10
  242. package/cjs/tools/utils/timezone.js.map +1 -1
  243. package/cjs/tools/valueHistory.d.ts +16 -3
  244. package/cjs/tools/valueHistory.js +113 -99
  245. package/cjs/tools/valueHistory.js.map +1 -1
  246. package/cjs/transport/batch.d.ts +11 -7
  247. package/cjs/transport/batch.js +93 -106
  248. package/cjs/transport/batch.js.map +1 -1
  249. package/cjs/transport/eventBridge.d.ts +6 -2
  250. package/cjs/transport/eventBridge.js +54 -38
  251. package/cjs/transport/eventBridge.js.map +1 -1
  252. package/cjs/transport/flushController.d.ts +6 -15
  253. package/cjs/transport/flushController.js +99 -118
  254. package/cjs/transport/flushController.js.map +1 -1
  255. package/cjs/transport/httpRequest.d.ts +8 -9
  256. package/cjs/transport/httpRequest.js +61 -97
  257. package/cjs/transport/httpRequest.js.map +1 -1
  258. package/cjs/transport/index.d.ts +3 -2
  259. package/cjs/transport/sendWithRetryStrategy.d.ts +9 -4
  260. package/cjs/transport/sendWithRetryStrategy.js +144 -148
  261. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  262. package/esm/boot/displayAlreadyInitializedError.mjs +9 -0
  263. package/esm/boot/displayAlreadyInitializedError.mjs.map +1 -0
  264. package/esm/boot/init.mjs +30 -0
  265. package/esm/boot/init.mjs.map +1 -0
  266. package/esm/browser/addEventListener.mjs +107 -0
  267. package/esm/browser/addEventListener.mjs.map +1 -0
  268. package/esm/browser/cookie.mjs +92 -0
  269. package/esm/browser/cookie.mjs.map +1 -0
  270. package/esm/browser/cookieAccess.mjs +124 -0
  271. package/esm/browser/cookieAccess.mjs.map +1 -0
  272. package/esm/browser/fetch.mjs +18 -0
  273. package/esm/browser/fetch.mjs.map +1 -0
  274. package/esm/browser/fetchObservable.mjs +89 -0
  275. package/esm/browser/fetchObservable.mjs.map +1 -0
  276. package/esm/browser/pageMayExitObservable.mjs +56 -0
  277. package/esm/browser/pageMayExitObservable.mjs.map +1 -0
  278. package/esm/browser/runOnReadyState.mjs +19 -0
  279. package/esm/browser/runOnReadyState.mjs.map +1 -0
  280. package/esm/browser/webSocketObservable.mjs +92 -0
  281. package/esm/browser/webSocketObservable.mjs.map +1 -0
  282. package/esm/browser/xhrObservable.mjs +73 -0
  283. package/esm/browser/xhrObservable.mjs.map +1 -0
  284. package/esm/domain/allowedTrackingOrigins.mjs +27 -0
  285. package/esm/domain/allowedTrackingOrigins.mjs.map +1 -0
  286. package/esm/domain/bufferedData.mjs +43 -0
  287. package/esm/domain/bufferedData.mjs.map +1 -0
  288. package/esm/domain/configuration/configuration.mjs +163 -0
  289. package/esm/domain/configuration/configuration.mjs.map +1 -0
  290. package/esm/domain/configuration/remoteSdkConfig.mjs +163 -0
  291. package/esm/domain/configuration/remoteSdkConfig.mjs.map +1 -0
  292. package/esm/domain/connectivity/connectivity.mjs +16 -0
  293. package/esm/domain/connectivity/connectivity.mjs.map +1 -0
  294. package/esm/domain/console/consoleObservable.mjs +72 -0
  295. package/esm/domain/console/consoleObservable.mjs.map +1 -0
  296. package/esm/domain/context/contextConstants.mjs +25 -0
  297. package/esm/domain/context/contextConstants.mjs.map +1 -0
  298. package/esm/domain/context/contextManager.mjs +55 -0
  299. package/esm/domain/context/contextManager.mjs.map +1 -0
  300. package/esm/domain/context/contextUtils.mjs +15 -0
  301. package/esm/domain/context/contextUtils.mjs.map +1 -0
  302. package/esm/domain/context/defineContextMethod.mjs +19 -0
  303. package/esm/domain/context/defineContextMethod.mjs.map +1 -0
  304. package/esm/domain/context/storeContextManager.mjs +36 -0
  305. package/esm/domain/context/storeContextManager.mjs.map +1 -0
  306. package/esm/domain/contexts/accountContext.mjs +29 -0
  307. package/esm/domain/contexts/accountContext.mjs.map +1 -0
  308. package/esm/domain/contexts/globalContext.mjs +20 -0
  309. package/esm/domain/contexts/globalContext.mjs.map +1 -0
  310. package/esm/domain/contexts/tabContext.mjs +27 -0
  311. package/esm/domain/contexts/tabContext.mjs.map +1 -0
  312. package/esm/domain/contexts/telemetrySessionContext.mjs +17 -0
  313. package/esm/domain/contexts/telemetrySessionContext.mjs.map +1 -0
  314. package/esm/domain/contexts/userContext.mjs +88 -0
  315. package/esm/domain/contexts/userContext.mjs.map +1 -0
  316. package/esm/domain/deflate/deflate.types.mjs +12 -0
  317. package/esm/domain/deflate/deflate.types.mjs.map +1 -0
  318. package/esm/domain/error/error.mjs +104 -0
  319. package/esm/domain/error/error.mjs.map +1 -0
  320. package/esm/domain/error/error.types.mjs +24 -0
  321. package/esm/domain/error/error.types.mjs.map +1 -0
  322. package/esm/domain/error/isError.mjs +13 -0
  323. package/esm/domain/error/isError.mjs.map +1 -0
  324. package/esm/domain/error/trackRuntimeError.mjs +49 -0
  325. package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
  326. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +31 -0
  327. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs.map +1 -0
  328. package/esm/domain/extension/extensionUtils.mjs +23 -0
  329. package/esm/domain/extension/extensionUtils.mjs.map +1 -0
  330. package/esm/domain/geo/geocoding.mjs +60 -0
  331. package/esm/domain/geo/geocoding.mjs.map +1 -0
  332. package/esm/domain/geo/geolocation.mjs +69 -0
  333. package/esm/domain/geo/geolocation.mjs.map +1 -0
  334. package/esm/domain/report/reportObservable.mjs +89 -0
  335. package/esm/domain/report/reportObservable.mjs.map +1 -0
  336. package/esm/domain/resourceUtils.mjs +22 -0
  337. package/esm/domain/resourceUtils.mjs.map +1 -0
  338. package/esm/domain/sampler.mjs +37 -0
  339. package/esm/domain/sampler.mjs.map +1 -0
  340. package/esm/domain/session/sessionConstants.mjs +18 -0
  341. package/esm/domain/session/sessionConstants.mjs.map +1 -0
  342. package/esm/domain/session/sessionManager.mjs +258 -0
  343. package/esm/domain/session/sessionManager.mjs.map +1 -0
  344. package/esm/domain/session/sessionState.mjs +76 -0
  345. package/esm/domain/session/sessionState.mjs.map +1 -0
  346. package/esm/domain/session/sessionStateValidation.mjs +9 -0
  347. package/esm/domain/session/sessionStateValidation.mjs.map +1 -0
  348. package/esm/domain/session/sessionStore.mjs +45 -0
  349. package/esm/domain/session/sessionStore.mjs.map +1 -0
  350. package/esm/domain/session/storeStrategies/sessionInCookie.mjs +96 -0
  351. package/esm/domain/session/storeStrategies/sessionInCookie.mjs.map +1 -0
  352. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs +42 -0
  353. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs.map +1 -0
  354. package/esm/domain/session/storeStrategies/sessionInMemory.mjs +34 -0
  355. package/esm/domain/session/storeStrategies/sessionInMemory.mjs.map +1 -0
  356. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs +7 -0
  357. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs.map +1 -0
  358. package/esm/domain/sourceCodeContext.mjs +55 -0
  359. package/esm/domain/sourceCodeContext.mjs.map +1 -0
  360. package/esm/domain/synthetics/syntheticsWorkerValues.mjs +37 -0
  361. package/esm/domain/synthetics/syntheticsWorkerValues.mjs.map +1 -0
  362. package/esm/domain/tags.mjs +29 -0
  363. package/esm/domain/tags.mjs.map +1 -0
  364. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs +10 -0
  365. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs.map +1 -0
  366. package/esm/domain/telemetry/telemetry.mjs +210 -0
  367. package/esm/domain/telemetry/telemetry.mjs.map +1 -0
  368. package/esm/domain/trackingConsent.mjs +38 -0
  369. package/esm/domain/trackingConsent.mjs.map +1 -0
  370. package/esm/domain/userAgentData/userAgentData.mjs +77 -0
  371. package/esm/domain/userAgentData/userAgentData.mjs.map +1 -0
  372. package/esm/index.mjs +85 -0
  373. package/esm/tools/abstractLifeCycle.mjs +21 -0
  374. package/esm/tools/abstractLifeCycle.mjs.map +1 -0
  375. package/esm/tools/catchUserErrors.mjs +15 -0
  376. package/esm/tools/catchUserErrors.mjs.map +1 -0
  377. package/esm/tools/display.mjs +8 -0
  378. package/esm/tools/display.mjs.map +1 -0
  379. package/esm/tools/encoder.mjs +39 -0
  380. package/esm/tools/encoder.mjs.map +1 -0
  381. package/esm/tools/experimentalFeatures.mjs +35 -0
  382. package/esm/tools/experimentalFeatures.mjs.map +1 -0
  383. package/esm/tools/getZoneJsOriginalValue.mjs +26 -0
  384. package/esm/tools/getZoneJsOriginalValue.mjs.map +1 -0
  385. package/esm/tools/instrumentMethod.mjs +183 -0
  386. package/esm/tools/instrumentMethod.mjs.map +1 -0
  387. package/esm/tools/matchOption.mjs +25 -0
  388. package/esm/tools/matchOption.mjs.map +1 -0
  389. package/esm/tools/mockable.mjs +28 -0
  390. package/esm/tools/mockable.mjs.map +1 -0
  391. package/esm/tools/observable.mjs +77 -0
  392. package/esm/tools/observable.mjs.map +1 -0
  393. package/esm/tools/queueMicrotask.mjs +12 -0
  394. package/esm/tools/queueMicrotask.mjs.map +1 -0
  395. package/esm/tools/readBytesFromStream.mjs +21 -0
  396. package/esm/tools/readBytesFromStream.mjs.map +1 -0
  397. package/esm/tools/requestIdleCallback.mjs +28 -0
  398. package/esm/tools/requestIdleCallback.mjs.map +1 -0
  399. package/esm/tools/sendToExtension.mjs +13 -0
  400. package/esm/tools/sendToExtension.mjs.map +1 -0
  401. package/esm/tools/serialisation/jsonStringify.mjs +42 -0
  402. package/esm/tools/serialisation/jsonStringify.mjs.map +1 -0
  403. package/esm/tools/serialisation/sanitize.mjs +132 -0
  404. package/esm/tools/serialisation/sanitize.mjs.map +1 -0
  405. package/esm/tools/serialisation/stringify.mjs +17 -0
  406. package/esm/tools/serialisation/stringify.mjs.map +1 -0
  407. package/esm/tools/stackTrace/computeStackTrace.mjs +148 -0
  408. package/esm/tools/stackTrace/computeStackTrace.mjs.map +1 -0
  409. package/esm/tools/stackTrace/handlingStack.mjs +45 -0
  410. package/esm/tools/stackTrace/handlingStack.mjs.map +1 -0
  411. package/esm/tools/taskQueue.mjs +45 -0
  412. package/esm/tools/taskQueue.mjs.map +1 -0
  413. package/esm/tools/thenable.mjs +24 -0
  414. package/esm/tools/thenable.mjs.map +1 -0
  415. package/esm/tools/timer.mjs +20 -0
  416. package/esm/tools/timer.mjs.map +1 -0
  417. package/esm/tools/utils/arrayUtils.mjs +21 -0
  418. package/esm/tools/utils/arrayUtils.mjs.map +1 -0
  419. package/esm/tools/utils/browserDetection.mjs +31 -0
  420. package/esm/tools/utils/browserDetection.mjs.map +1 -0
  421. package/esm/tools/utils/byteUtils.mjs +23 -0
  422. package/esm/tools/utils/byteUtils.mjs.map +1 -0
  423. package/esm/tools/utils/functionUtils.mjs +35 -0
  424. package/esm/tools/utils/functionUtils.mjs.map +1 -0
  425. package/esm/tools/utils/numberUtils.mjs +11 -0
  426. package/esm/tools/utils/numberUtils.mjs.map +1 -0
  427. package/esm/tools/utils/objectUtils.mjs +31 -0
  428. package/esm/tools/utils/objectUtils.mjs.map +1 -0
  429. package/esm/tools/utils/polyfills.mjs +17 -0
  430. package/esm/tools/utils/polyfills.mjs.map +1 -0
  431. package/esm/tools/utils/responseUtils.mjs +15 -0
  432. package/esm/tools/utils/responseUtils.mjs.map +1 -0
  433. package/esm/tools/utils/stringUtils.mjs +81 -0
  434. package/esm/tools/utils/stringUtils.mjs.map +1 -0
  435. package/esm/tools/utils/timezone.mjs +12 -0
  436. package/esm/tools/utils/timezone.mjs.map +1 -0
  437. package/esm/tools/valueHistory.mjs +117 -0
  438. package/esm/tools/valueHistory.mjs.map +1 -0
  439. package/esm/transport/batch.mjs +96 -0
  440. package/esm/transport/batch.mjs.map +1 -0
  441. package/esm/transport/eventBridge.mjs +58 -0
  442. package/esm/transport/eventBridge.mjs.map +1 -0
  443. package/esm/transport/flushController.mjs +103 -0
  444. package/esm/transport/flushController.mjs.map +1 -0
  445. package/esm/transport/httpRequest.mjs +69 -0
  446. package/esm/transport/httpRequest.mjs.map +1 -0
  447. package/esm/transport/sendWithRetryStrategy.mjs +154 -0
  448. package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
  449. package/package.json +20 -11
  450. package/src/boot/displayAlreadyInitializedError.ts +4 -1
  451. package/src/boot/init.ts +3 -2
  452. package/src/browser/addEventListener.ts +43 -8
  453. package/src/browser/browser.types.ts +0 -32
  454. package/src/browser/cookie.ts +45 -30
  455. package/src/browser/cookieAccess.ts +172 -0
  456. package/src/browser/fetch.ts +14 -0
  457. package/src/browser/fetchObservable.ts +25 -26
  458. package/src/browser/pageMayExitObservable.ts +9 -5
  459. package/src/browser/runOnReadyState.ts +3 -8
  460. package/src/browser/webSocketObservable.ts +181 -0
  461. package/src/browser/xhrObservable.ts +22 -13
  462. package/src/domain/allowedTrackingOrigins.ts +7 -6
  463. package/src/domain/bufferedData.ts +41 -14
  464. package/src/domain/configuration/configuration.ts +121 -171
  465. package/src/domain/configuration/index.ts +6 -7
  466. package/src/domain/configuration/remoteSdkConfig.ts +65 -16
  467. package/src/domain/connectivity/connectivity.ts +11 -23
  468. package/src/domain/console/consoleObservable.ts +9 -5
  469. package/src/domain/context/contextManager.ts +6 -2
  470. package/src/domain/context/contextUtils.ts +1 -1
  471. package/src/domain/context/defineContextMethod.ts +4 -4
  472. package/src/domain/context/storeContextManager.ts +9 -6
  473. package/src/domain/contexts/accountContext.ts +5 -5
  474. package/src/domain/contexts/globalContext.ts +4 -5
  475. package/src/domain/contexts/tabContext.ts +43 -0
  476. package/src/domain/contexts/telemetrySessionContext.ts +26 -0
  477. package/src/domain/contexts/userContext.ts +21 -16
  478. package/src/domain/error/error.ts +83 -35
  479. package/src/domain/error/error.types.ts +6 -4
  480. package/src/domain/error/isError.ts +13 -0
  481. package/src/domain/error/trackRuntimeError.ts +11 -4
  482. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +3 -9
  483. package/src/{tools/utils → domain/geo}/geocoding.ts +7 -18
  484. package/src/{tools/utils → domain/geo}/geolocation.ts +1 -1
  485. package/src/domain/report/reportObservable.ts +15 -8
  486. package/src/domain/resourceUtils.ts +1 -0
  487. package/src/domain/sampler.ts +59 -0
  488. package/src/domain/session/sessionConstants.ts +2 -1
  489. package/src/domain/session/sessionManager.ts +347 -178
  490. package/src/domain/session/sessionState.ts +71 -10
  491. package/src/domain/session/sessionStore.ts +53 -226
  492. package/src/domain/session/storeStrategies/sessionInCookie.ts +122 -107
  493. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +33 -21
  494. package/src/domain/session/storeStrategies/sessionInMemory.ts +55 -0
  495. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +28 -6
  496. package/src/domain/sourceCodeContext.ts +100 -0
  497. package/src/domain/synthetics/syntheticsWorkerValues.ts +47 -15
  498. package/src/domain/tags.ts +5 -19
  499. package/src/domain/telemetry/rawTelemetryEvent.types.ts +1 -1
  500. package/src/domain/telemetry/telemetry.ts +44 -52
  501. package/src/domain/telemetry/telemetryEvent.types.ts +177 -19
  502. package/src/domain/trackingConsent.ts +18 -3
  503. package/src/domain/userAgentData/userAgentData.ts +1 -1
  504. package/src/index.ts +59 -43
  505. package/src/tools/display.ts +2 -52
  506. package/src/tools/experimentalFeatures.ts +3 -4
  507. package/src/tools/getZoneJsOriginalValue.ts +3 -3
  508. package/src/tools/instrumentMethod.ts +228 -18
  509. package/src/tools/matchOption.ts +2 -6
  510. package/src/tools/mockable.ts +32 -0
  511. package/src/tools/observable.ts +11 -2
  512. package/src/tools/queueMicrotask.ts +8 -3
  513. package/src/tools/readBytesFromStream.ts +3 -12
  514. package/src/tools/requestIdleCallback.ts +2 -2
  515. package/src/tools/sendToExtension.ts +1 -1
  516. package/src/tools/serialisation/sanitize.ts +71 -64
  517. package/src/tools/serialisation/stringify.ts +18 -0
  518. package/src/tools/stackTrace/computeStackTrace.ts +19 -19
  519. package/src/tools/stackTrace/handlingStack.ts +15 -2
  520. package/src/tools/taskQueue.ts +5 -3
  521. package/src/tools/thenable.ts +23 -0
  522. package/src/tools/timer.ts +8 -7
  523. package/src/tools/utils/arrayUtils.ts +8 -2
  524. package/src/tools/utils/browserDetection.ts +8 -0
  525. package/src/tools/utils/byteUtils.ts +2 -6
  526. package/src/tools/utils/functionUtils.ts +2 -2
  527. package/src/tools/utils/numberUtils.ts +0 -12
  528. package/src/tools/utils/objectUtils.ts +20 -0
  529. package/src/tools/utils/stringUtils.ts +23 -1
  530. package/src/tools/valueHistory.ts +59 -18
  531. package/src/transport/batch.ts +50 -31
  532. package/src/transport/eventBridge.ts +24 -10
  533. package/src/transport/flushController.ts +22 -30
  534. package/src/transport/httpRequest.ts +18 -47
  535. package/src/transport/index.ts +3 -2
  536. package/src/transport/sendWithRetryStrategy.ts +29 -17
  537. package/cjs/browser/browser.types.js +0 -6
  538. package/cjs/browser/browser.types.js.map +0 -1
  539. package/cjs/domain/configuration/endpointBuilder.d.ts +0 -12
  540. package/cjs/domain/configuration/endpointBuilder.js +0 -66
  541. package/cjs/domain/configuration/endpointBuilder.js.map +0 -1
  542. package/cjs/domain/configuration/index.js +0 -44
  543. package/cjs/domain/configuration/index.js.map +0 -1
  544. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -21
  545. package/cjs/domain/configuration/transportConfiguration.js +0 -58
  546. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  547. package/cjs/domain/connectivity/index.js +0 -18
  548. package/cjs/domain/connectivity/index.js.map +0 -1
  549. package/cjs/domain/contexts/rumInternalContext.type.js +0 -3
  550. package/cjs/domain/contexts/rumInternalContext.type.js.map +0 -1
  551. package/cjs/domain/deflate/index.js +0 -18
  552. package/cjs/domain/deflate/index.js.map +0 -1
  553. package/cjs/domain/intakeSites.d.ts +0 -4
  554. package/cjs/domain/intakeSites.js +0 -7
  555. package/cjs/domain/intakeSites.js.map +0 -1
  556. package/cjs/domain/report/browser.types.js +0 -3
  557. package/cjs/domain/report/browser.types.js.map +0 -1
  558. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  559. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  560. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  561. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -12
  562. package/cjs/domain/session/sessionStoreOperations.js +0 -119
  563. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  564. package/cjs/domain/telemetry/index.js +0 -28
  565. package/cjs/domain/telemetry/index.js.map +0 -1
  566. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  567. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  568. package/cjs/domain/userAgentData/index.js +0 -18
  569. package/cjs/domain/userAgentData/index.js.map +0 -1
  570. package/cjs/index.js.map +0 -1
  571. package/cjs/tools/abstractHooks.d.ts +0 -24
  572. package/cjs/tools/abstractHooks.js +0 -41
  573. package/cjs/tools/abstractHooks.js.map +0 -1
  574. package/cjs/tools/boundedBuffer.d.ts +0 -16
  575. package/cjs/tools/boundedBuffer.js +0 -32
  576. package/cjs/tools/boundedBuffer.js.map +0 -1
  577. package/cjs/tools/globalObject.d.ts +0 -19
  578. package/cjs/tools/globalObject.js +0 -44
  579. package/cjs/tools/globalObject.js.map +0 -1
  580. package/cjs/tools/mergeInto.d.ts +0 -25
  581. package/cjs/tools/mergeInto.js +0 -98
  582. package/cjs/tools/mergeInto.js.map +0 -1
  583. package/cjs/tools/monitor.d.ts +0 -9
  584. package/cjs/tools/monitor.js +0 -61
  585. package/cjs/tools/monitor.js.map +0 -1
  586. package/cjs/tools/serialisation/context.js +0 -3
  587. package/cjs/tools/serialisation/context.js.map +0 -1
  588. package/cjs/tools/utils/geocoding.js +0 -80
  589. package/cjs/tools/utils/geocoding.js.map +0 -1
  590. package/cjs/tools/utils/geolocation.js +0 -77
  591. package/cjs/tools/utils/geolocation.js.map +0 -1
  592. package/cjs/tools/utils/timeUtils.d.ts +0 -53
  593. package/cjs/tools/utils/timeUtils.js +0 -101
  594. package/cjs/tools/utils/timeUtils.js.map +0 -1
  595. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  596. package/cjs/tools/utils/typeUtils.js +0 -16
  597. package/cjs/tools/utils/typeUtils.js.map +0 -1
  598. package/cjs/tools/utils/urlPolyfill.d.ts +0 -5
  599. package/cjs/tools/utils/urlPolyfill.js +0 -59
  600. package/cjs/tools/utils/urlPolyfill.js.map +0 -1
  601. package/cjs/transport/index.js +0 -15
  602. package/cjs/transport/index.js.map +0 -1
  603. package/esm/boot/displayAlreadyInitializedError.d.ts +0 -2
  604. package/esm/boot/displayAlreadyInitializedError.js +0 -7
  605. package/esm/boot/displayAlreadyInitializedError.js.map +0 -1
  606. package/esm/boot/init.d.ts +0 -13
  607. package/esm/boot/init.js +0 -35
  608. package/esm/boot/init.js.map +0 -1
  609. package/esm/browser/addEventListener.d.ts +0 -87
  610. package/esm/browser/addEventListener.js +0 -51
  611. package/esm/browser/addEventListener.js.map +0 -1
  612. package/esm/browser/browser.types.d.ts +0 -51
  613. package/esm/browser/browser.types.js +0 -5
  614. package/esm/browser/browser.types.js.map +0 -1
  615. package/esm/browser/cookie.d.ts +0 -26
  616. package/esm/browser/cookie.js +0 -101
  617. package/esm/browser/cookie.js.map +0 -1
  618. package/esm/browser/fetchObservable.d.ts +0 -38
  619. package/esm/browser/fetchObservable.js +0 -99
  620. package/esm/browser/fetchObservable.js.map +0 -1
  621. package/esm/browser/pageMayExitObservable.d.ts +0 -14
  622. package/esm/browser/pageMayExitObservable.js +0 -51
  623. package/esm/browser/pageMayExitObservable.js.map +0 -1
  624. package/esm/browser/runOnReadyState.d.ts +0 -5
  625. package/esm/browser/runOnReadyState.js +0 -16
  626. package/esm/browser/runOnReadyState.js.map +0 -1
  627. package/esm/browser/xhrObservable.d.ts +0 -24
  628. package/esm/browser/xhrObservable.js +0 -83
  629. package/esm/browser/xhrObservable.js.map +0 -1
  630. package/esm/domain/allowedTrackingOrigins.d.ts +0 -4
  631. package/esm/domain/allowedTrackingOrigins.js +0 -21
  632. package/esm/domain/allowedTrackingOrigins.js.map +0 -1
  633. package/esm/domain/bufferedData.d.ts +0 -14
  634. package/esm/domain/bufferedData.js +0 -19
  635. package/esm/domain/bufferedData.js.map +0 -1
  636. package/esm/domain/configuration/configuration.d.ts +0 -284
  637. package/esm/domain/configuration/configuration.js +0 -129
  638. package/esm/domain/configuration/configuration.js.map +0 -1
  639. package/esm/domain/configuration/endpointBuilder.d.ts +0 -12
  640. package/esm/domain/configuration/endpointBuilder.js +0 -62
  641. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  642. package/esm/domain/configuration/index.d.ts +0 -8
  643. package/esm/domain/configuration/index.js +0 -6
  644. package/esm/domain/configuration/index.js.map +0 -1
  645. package/esm/domain/configuration/remoteSdkConfig.d.ts +0 -81
  646. package/esm/domain/configuration/remoteSdkConfig.js +0 -172
  647. package/esm/domain/configuration/remoteSdkConfig.js.map +0 -1
  648. package/esm/domain/configuration/transportConfiguration.d.ts +0 -21
  649. package/esm/domain/configuration/transportConfiguration.js +0 -54
  650. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  651. package/esm/domain/connectivity/connectivity.d.ts +0 -18
  652. package/esm/domain/connectivity/connectivity.js +0 -13
  653. package/esm/domain/connectivity/connectivity.js.map +0 -1
  654. package/esm/domain/connectivity/index.d.ts +0 -1
  655. package/esm/domain/connectivity/index.js +0 -2
  656. package/esm/domain/connectivity/index.js.map +0 -1
  657. package/esm/domain/console/consoleObservable.d.ts +0 -21
  658. package/esm/domain/console/consoleObservable.js +0 -80
  659. package/esm/domain/console/consoleObservable.js.map +0 -1
  660. package/esm/domain/context/contextConstants.d.ts +0 -21
  661. package/esm/domain/context/contextConstants.js +0 -15
  662. package/esm/domain/context/contextConstants.js.map +0 -1
  663. package/esm/domain/context/contextManager.d.ts +0 -19
  664. package/esm/domain/context/contextManager.js +0 -56
  665. package/esm/domain/context/contextManager.js.map +0 -1
  666. package/esm/domain/context/contextUtils.d.ts +0 -5
  667. package/esm/domain/context/contextUtils.js +0 -13
  668. package/esm/domain/context/contextUtils.js.map +0 -1
  669. package/esm/domain/context/defineContextMethod.d.ts +0 -6
  670. package/esm/domain/context/defineContextMethod.js +0 -17
  671. package/esm/domain/context/defineContextMethod.js.map +0 -1
  672. package/esm/domain/context/storeContextManager.d.ts +0 -6
  673. package/esm/domain/context/storeContextManager.js +0 -35
  674. package/esm/domain/context/storeContextManager.js.map +0 -1
  675. package/esm/domain/contexts/accountContext.d.ts +0 -26
  676. package/esm/domain/contexts/accountContext.js +0 -29
  677. package/esm/domain/contexts/accountContext.js.map +0 -1
  678. package/esm/domain/contexts/globalContext.d.ts +0 -18
  679. package/esm/domain/contexts/globalContext.js +0 -17
  680. package/esm/domain/contexts/globalContext.js.map +0 -1
  681. package/esm/domain/contexts/rumInternalContext.type.d.ts +0 -14
  682. package/esm/domain/contexts/rumInternalContext.type.js +0 -2
  683. package/esm/domain/contexts/rumInternalContext.type.js.map +0 -1
  684. package/esm/domain/contexts/userContext.d.ts +0 -32
  685. package/esm/domain/contexts/userContext.js +0 -120
  686. package/esm/domain/contexts/userContext.js.map +0 -1
  687. package/esm/domain/deflate/deflate.types.d.ts +0 -40
  688. package/esm/domain/deflate/deflate.types.js +0 -2
  689. package/esm/domain/deflate/deflate.types.js.map +0 -1
  690. package/esm/domain/deflate/index.d.ts +0 -1
  691. package/esm/domain/deflate/index.js +0 -2
  692. package/esm/domain/deflate/index.js.map +0 -1
  693. package/esm/domain/error/error.d.ts +0 -23
  694. package/esm/domain/error/error.js +0 -72
  695. package/esm/domain/error/error.js.map +0 -1
  696. package/esm/domain/error/error.types.d.ts +0 -47
  697. package/esm/domain/error/error.types.js +0 -10
  698. package/esm/domain/error/error.types.js.map +0 -1
  699. package/esm/domain/error/trackRuntimeError.d.ts +0 -11
  700. package/esm/domain/error/trackRuntimeError.js +0 -43
  701. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  702. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  703. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -38
  704. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  705. package/esm/domain/extension/extensionUtils.d.ts +0 -10
  706. package/esm/domain/extension/extensionUtils.js +0 -25
  707. package/esm/domain/extension/extensionUtils.js.map +0 -1
  708. package/esm/domain/intakeSites.d.ts +0 -4
  709. package/esm/domain/intakeSites.js +0 -4
  710. package/esm/domain/intakeSites.js.map +0 -1
  711. package/esm/domain/report/browser.types.d.ts +0 -34
  712. package/esm/domain/report/browser.types.js +0 -2
  713. package/esm/domain/report/browser.types.js.map +0 -1
  714. package/esm/domain/report/reportObservable.d.ts +0 -14
  715. package/esm/domain/report/reportObservable.js +0 -95
  716. package/esm/domain/report/reportObservable.js.map +0 -1
  717. package/esm/domain/resourceUtils.d.ts +0 -18
  718. package/esm/domain/resourceUtils.js +0 -17
  719. package/esm/domain/resourceUtils.js.map +0 -1
  720. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  721. package/esm/domain/session/oldCookiesMigration.js +0 -36
  722. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  723. package/esm/domain/session/sessionConstants.d.ts +0 -15
  724. package/esm/domain/session/sessionConstants.js +0 -13
  725. package/esm/domain/session/sessionConstants.js.map +0 -1
  726. package/esm/domain/session/sessionManager.d.ts +0 -28
  727. package/esm/domain/session/sessionManager.js +0 -196
  728. package/esm/domain/session/sessionManager.js.map +0 -1
  729. package/esm/domain/session/sessionState.d.ts +0 -16
  730. package/esm/domain/session/sessionState.js +0 -60
  731. package/esm/domain/session/sessionState.js.map +0 -1
  732. package/esm/domain/session/sessionStateValidation.d.ts +0 -3
  733. package/esm/domain/session/sessionStateValidation.js +0 -7
  734. package/esm/domain/session/sessionStateValidation.js.map +0 -1
  735. package/esm/domain/session/sessionStore.d.ts +0 -38
  736. package/esm/domain/session/sessionStore.js +0 -180
  737. package/esm/domain/session/sessionStore.js.map +0 -1
  738. package/esm/domain/session/sessionStoreOperations.d.ts +0 -12
  739. package/esm/domain/session/sessionStoreOperations.js +0 -114
  740. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  741. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -12
  742. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -98
  743. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  744. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -6
  745. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -37
  746. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  747. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -16
  748. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  749. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  750. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -12
  751. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -24
  752. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  753. package/esm/domain/tags.d.ts +0 -6
  754. package/esm/domain/tags.js +0 -59
  755. package/esm/domain/tags.js.map +0 -1
  756. package/esm/domain/telemetry/index.d.ts +0 -4
  757. package/esm/domain/telemetry/index.js +0 -3
  758. package/esm/domain/telemetry/index.js.map +0 -1
  759. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -18
  760. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -6
  761. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  762. package/esm/domain/telemetry/telemetry.d.ts +0 -56
  763. package/esm/domain/telemetry/telemetry.js +0 -232
  764. package/esm/domain/telemetry/telemetry.js.map +0 -1
  765. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -866
  766. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  767. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  768. package/esm/domain/trackingConsent.d.ts +0 -13
  769. package/esm/domain/trackingConsent.js +0 -24
  770. package/esm/domain/trackingConsent.js.map +0 -1
  771. package/esm/domain/userAgentData/index.d.ts +0 -1
  772. package/esm/domain/userAgentData/index.js +0 -2
  773. package/esm/domain/userAgentData/index.js.map +0 -1
  774. package/esm/domain/userAgentData/userAgentData.d.ts +0 -22
  775. package/esm/domain/userAgentData/userAgentData.js +0 -105
  776. package/esm/domain/userAgentData/userAgentData.js.map +0 -1
  777. package/esm/index.d.ts +0 -104
  778. package/esm/index.js +0 -79
  779. package/esm/index.js.map +0 -1
  780. package/esm/tools/abstractHooks.d.ts +0 -24
  781. package/esm/tools/abstractHooks.js +0 -37
  782. package/esm/tools/abstractHooks.js.map +0 -1
  783. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  784. package/esm/tools/abstractLifeCycle.js +0 -24
  785. package/esm/tools/abstractLifeCycle.js.map +0 -1
  786. package/esm/tools/boundedBuffer.d.ts +0 -16
  787. package/esm/tools/boundedBuffer.js +0 -29
  788. package/esm/tools/boundedBuffer.js.map +0 -1
  789. package/esm/tools/catchUserErrors.d.ts +0 -1
  790. package/esm/tools/catchUserErrors.js +0 -12
  791. package/esm/tools/catchUserErrors.js.map +0 -1
  792. package/esm/tools/display.d.ts +0 -38
  793. package/esm/tools/display.js +0 -41
  794. package/esm/tools/display.js.map +0 -1
  795. package/esm/tools/encoder.d.ts +0 -54
  796. package/esm/tools/encoder.js +0 -37
  797. package/esm/tools/encoder.js.map +0 -1
  798. package/esm/tools/experimentalFeatures.d.ts +0 -21
  799. package/esm/tools/experimentalFeatures.js +0 -42
  800. package/esm/tools/experimentalFeatures.js.map +0 -1
  801. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  802. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  803. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  804. package/esm/tools/globalObject.d.ts +0 -19
  805. package/esm/tools/globalObject.js +0 -40
  806. package/esm/tools/globalObject.js.map +0 -1
  807. package/esm/tools/instrumentMethod.d.ts +0 -75
  808. package/esm/tools/instrumentMethod.js +0 -114
  809. package/esm/tools/instrumentMethod.js.map +0 -1
  810. package/esm/tools/matchOption.d.ts +0 -8
  811. package/esm/tools/matchOption.js +0 -31
  812. package/esm/tools/matchOption.js.map +0 -1
  813. package/esm/tools/mergeInto.d.ts +0 -25
  814. package/esm/tools/mergeInto.js +0 -93
  815. package/esm/tools/mergeInto.js.map +0 -1
  816. package/esm/tools/monitor.d.ts +0 -9
  817. package/esm/tools/monitor.js +0 -51
  818. package/esm/tools/monitor.js.map +0 -1
  819. package/esm/tools/observable.d.ts +0 -30
  820. package/esm/tools/observable.js +0 -83
  821. package/esm/tools/observable.js.map +0 -1
  822. package/esm/tools/queueMicrotask.d.ts +0 -1
  823. package/esm/tools/queueMicrotask.js +0 -14
  824. package/esm/tools/queueMicrotask.js.map +0 -1
  825. package/esm/tools/readBytesFromStream.d.ts +0 -10
  826. package/esm/tools/readBytesFromStream.js +0 -25
  827. package/esm/tools/readBytesFromStream.js.map +0 -1
  828. package/esm/tools/requestIdleCallback.d.ts +0 -12
  829. package/esm/tools/requestIdleCallback.js +0 -30
  830. package/esm/tools/requestIdleCallback.js.map +0 -1
  831. package/esm/tools/sendToExtension.d.ts +0 -3
  832. package/esm/tools/sendToExtension.js +0 -8
  833. package/esm/tools/sendToExtension.js.map +0 -1
  834. package/esm/tools/serialisation/context.d.ts +0 -9
  835. package/esm/tools/serialisation/context.js +0 -2
  836. package/esm/tools/serialisation/context.js.map +0 -1
  837. package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
  838. package/esm/tools/serialisation/jsonStringify.js +0 -44
  839. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  840. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  841. package/esm/tools/serialisation/sanitize.js +0 -185
  842. package/esm/tools/serialisation/sanitize.js.map +0 -1
  843. package/esm/tools/stackTrace/computeStackTrace.d.ts +0 -25
  844. package/esm/tools/stackTrace/computeStackTrace.js +0 -183
  845. package/esm/tools/stackTrace/computeStackTrace.js.map +0 -1
  846. package/esm/tools/stackTrace/handlingStack.d.ts +0 -10
  847. package/esm/tools/stackTrace/handlingStack.js +0 -41
  848. package/esm/tools/stackTrace/handlingStack.js.map +0 -1
  849. package/esm/tools/taskQueue.d.ts +0 -15
  850. package/esm/tools/taskQueue.js +0 -50
  851. package/esm/tools/taskQueue.js.map +0 -1
  852. package/esm/tools/timer.d.ts +0 -5
  853. package/esm/tools/timer.js +0 -16
  854. package/esm/tools/timer.js.map +0 -1
  855. package/esm/tools/utils/arrayUtils.d.ts +0 -3
  856. package/esm/tools/utils/arrayUtils.js +0 -15
  857. package/esm/tools/utils/arrayUtils.js.map +0 -1
  858. package/esm/tools/utils/browserDetection.d.ts +0 -8
  859. package/esm/tools/utils/browserDetection.js +0 -28
  860. package/esm/tools/utils/browserDetection.js.map +0 -1
  861. package/esm/tools/utils/byteUtils.d.ts +0 -8
  862. package/esm/tools/utils/byteUtils.js +0 -29
  863. package/esm/tools/utils/byteUtils.js.map +0 -1
  864. package/esm/tools/utils/functionUtils.d.ts +0 -8
  865. package/esm/tools/utils/functionUtils.js +0 -39
  866. package/esm/tools/utils/functionUtils.js.map +0 -1
  867. package/esm/tools/utils/geocoding.d.ts +0 -60
  868. package/esm/tools/utils/geocoding.js +0 -73
  869. package/esm/tools/utils/geocoding.js.map +0 -1
  870. package/esm/tools/utils/geolocation.d.ts +0 -24
  871. package/esm/tools/utils/geolocation.js +0 -71
  872. package/esm/tools/utils/geolocation.js.map +0 -1
  873. package/esm/tools/utils/numberUtils.d.ts +0 -8
  874. package/esm/tools/utils/numberUtils.js +0 -17
  875. package/esm/tools/utils/numberUtils.js.map +0 -1
  876. package/esm/tools/utils/objectUtils.d.ts +0 -10
  877. package/esm/tools/utils/objectUtils.js +0 -17
  878. package/esm/tools/utils/objectUtils.js.map +0 -1
  879. package/esm/tools/utils/polyfills.d.ts +0 -7
  880. package/esm/tools/utils/polyfills.js +0 -18
  881. package/esm/tools/utils/polyfills.js.map +0 -1
  882. package/esm/tools/utils/responseUtils.d.ts +0 -2
  883. package/esm/tools/utils/responseUtils.js +0 -13
  884. package/esm/tools/utils/responseUtils.js.map +0 -1
  885. package/esm/tools/utils/stringUtils.d.ts +0 -23
  886. package/esm/tools/utils/stringUtils.js +0 -84
  887. package/esm/tools/utils/stringUtils.js.map +0 -1
  888. package/esm/tools/utils/timeUtils.d.ts +0 -53
  889. package/esm/tools/utils/timeUtils.js +0 -84
  890. package/esm/tools/utils/timeUtils.js.map +0 -1
  891. package/esm/tools/utils/timezone.d.ts +0 -1
  892. package/esm/tools/utils/timezone.js +0 -10
  893. package/esm/tools/utils/timezone.js.map +0 -1
  894. package/esm/tools/utils/typeUtils.d.ts +0 -4
  895. package/esm/tools/utils/typeUtils.js +0 -13
  896. package/esm/tools/utils/typeUtils.js.map +0 -1
  897. package/esm/tools/utils/urlPolyfill.d.ts +0 -5
  898. package/esm/tools/utils/urlPolyfill.js +0 -52
  899. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  900. package/esm/tools/valueHistory.d.ts +0 -27
  901. package/esm/tools/valueHistory.js +0 -100
  902. package/esm/tools/valueHistory.js.map +0 -1
  903. package/esm/transport/batch.d.ts +0 -16
  904. package/esm/transport/batch.js +0 -106
  905. package/esm/transport/batch.js.map +0 -1
  906. package/esm/transport/eventBridge.d.ts +0 -21
  907. package/esm/transport/eventBridge.js +0 -41
  908. package/esm/transport/eventBridge.js.map +0 -1
  909. package/esm/transport/flushController.d.ts +0 -65
  910. package/esm/transport/flushController.js +0 -119
  911. package/esm/transport/flushController.js.map +0 -1
  912. package/esm/transport/httpRequest.d.ts +0 -57
  913. package/esm/transport/httpRequest.js +0 -101
  914. package/esm/transport/httpRequest.js.map +0 -1
  915. package/esm/transport/index.d.ts +0 -7
  916. package/esm/transport/index.js +0 -5
  917. package/esm/transport/index.js.map +0 -1
  918. package/esm/transport/sendWithRetryStrategy.d.ts +0 -41
  919. package/esm/transport/sendWithRetryStrategy.js +0 -158
  920. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  921. package/src/domain/configuration/endpointBuilder.ts +0 -105
  922. package/src/domain/configuration/transportConfiguration.ts +0 -86
  923. package/src/domain/intakeSites.ts +0 -6
  924. package/src/domain/session/oldCookiesMigration.ts +0 -42
  925. package/src/domain/session/sessionStoreOperations.ts +0 -131
  926. package/src/tools/abstractHooks.ts +0 -72
  927. package/src/tools/boundedBuffer.ts +0 -44
  928. package/src/tools/globalObject.ts +0 -51
  929. package/src/tools/mergeInto.ts +0 -177
  930. package/src/tools/monitor.ts +0 -71
  931. package/src/tools/utils/timeUtils.ts +0 -117
  932. package/src/tools/utils/typeUtils.ts +0 -12
  933. package/src/tools/utils/urlPolyfill.ts +0 -55
  934. /package/cjs/{tools/utils → domain/geo}/geocoding.d.ts +0 -0
  935. /package/cjs/{tools/utils → domain/geo}/geolocation.d.ts +0 -0
@@ -1,13 +1,10 @@
1
- export type { Configuration, InitConfiguration, ProxyFn } from './configuration'
1
+ export type { Configuration, InitConfiguration } from './configuration'
2
2
  export {
3
3
  DefaultPrivacyLevel,
4
4
  TraceContextInjection,
5
- isSampleRate,
6
- validateAndBuildConfiguration,
7
5
  serializeConfiguration,
6
+ BROWSER_CORE_SCHEMA,
8
7
  } from './configuration'
9
- export type { EndpointBuilder, TrackType } from './endpointBuilder'
10
- export { createEndpointBuilder, buildEndpointHost } from './endpointBuilder'
11
8
  export type { RemoteSdkConfig, RemoteSdkConfigFeatures } from './remoteSdkConfig'
12
9
  export {
13
10
  SDK_CONFIG_CACHE_KEY,
@@ -18,10 +15,12 @@ export {
18
15
  parseSdkConfig,
19
16
  readBoolean,
20
17
  readEnum,
18
+ readNumberInRange,
21
19
  readSampleRate,
22
20
  readString,
21
+ readStringList,
23
22
  refreshSdkConfig,
24
23
  setCachedSdkConfig,
25
24
  } from './remoteSdkConfig'
26
- export * from '../intakeSites'
27
- export { computeTransportConfiguration, isIntakeUrl } from './transportConfiguration'
25
+ export { buildCookieOptions } from '../../browser/cookie'
26
+ export { isAllowedTrackingOrigins } from '../allowedTrackingOrigins'
@@ -1,8 +1,10 @@
1
+ import { monitorError } from '@kubesense/kubesense-js-core/monitor'
2
+ import { globalObject } from '@kubesense/kubesense-js-core/util'
3
+ import { INTAKE_SITE_PROD } from '@kubesense/kubesense-js-core/transport'
1
4
  import { generateUUID } from '../../tools/utils/stringUtils'
5
+ import { fetch } from '../../browser/fetch'
2
6
  import { display } from '../../tools/display'
3
- import { monitorError } from '../../tools/monitor'
4
7
  import type { InitConfiguration } from './configuration'
5
- import { buildEndpointHost } from './endpointBuilder'
6
8
 
7
9
  /**
8
10
  * Dashboard-managed SDK settings, served by the Kubesense collector.
@@ -12,7 +14,17 @@ import { buildEndpointHost } from './endpointBuilder'
12
14
  * next page load — SDK configuration is frozen at `init()` time by design.
13
15
  */
14
16
 
17
+ /**
18
+ * Prefix of the local-storage key holding the cached document. The key carries the client token,
19
+ * which the collector issues per application, so applications sharing an origin — several apps on
20
+ * one domain, or `localhost` during development — never read each other's settings. RUM and Logs
21
+ * of one application share the token, and so still share the document.
22
+ */
15
23
  export const SDK_CONFIG_CACHE_KEY = '_kubesense_sdk_config'
24
+
25
+ export function sdkConfigCacheKey(clientToken: string) {
26
+ return `${SDK_CONFIG_CACHE_KEY}_${clientToken}`
27
+ }
16
28
  export const SDK_CONFIG_PATH = '/rum/api/v1/sdk-config'
17
29
 
18
30
  /** Give up rather than let a hung request keep a page-load handle alive. */
@@ -45,10 +57,13 @@ export interface RemoteSdkConfigFeatures {
45
57
  * Read the cached document. Synchronous, never touches the network, and never throws: a
46
58
  * corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).
47
59
  */
48
- export function getCachedSdkConfig(): RemoteSdkConfig | undefined {
60
+ export function getCachedSdkConfig(clientToken: string): RemoteSdkConfig | undefined {
49
61
  let raw: string | null
50
62
  try {
51
- raw = localStorage.getItem(SDK_CONFIG_CACHE_KEY)
63
+ // The unscoped key predates per-application caching and may hold another application's
64
+ // document; it is dropped rather than migrated.
65
+ localStorage.removeItem(SDK_CONFIG_CACHE_KEY)
66
+ raw = localStorage.getItem(sdkConfigCacheKey(clientToken))
52
67
  } catch {
53
68
  // Local storage can be unavailable (disabled, quota, sandboxed iframe).
54
69
  return undefined
@@ -61,22 +76,22 @@ export function getCachedSdkConfig(): RemoteSdkConfig | undefined {
61
76
  const config = parseSdkConfig(raw)
62
77
  if (!config) {
63
78
  // Drop a document we can no longer read so we stop paying for it on every page load.
64
- clearCachedSdkConfig()
79
+ clearCachedSdkConfig(clientToken)
65
80
  }
66
81
  return config
67
82
  }
68
83
 
69
- export function setCachedSdkConfig(rawConfig: string) {
84
+ export function setCachedSdkConfig(clientToken: string, rawConfig: string) {
70
85
  try {
71
- localStorage.setItem(SDK_CONFIG_CACHE_KEY, rawConfig)
86
+ localStorage.setItem(sdkConfigCacheKey(clientToken), rawConfig)
72
87
  } catch {
73
88
  // Ignore: caching is an optimization, not a requirement.
74
89
  }
75
90
  }
76
91
 
77
- export function clearCachedSdkConfig() {
92
+ export function clearCachedSdkConfig(clientToken: string) {
78
93
  try {
79
- localStorage.removeItem(SDK_CONFIG_CACHE_KEY)
94
+ localStorage.removeItem(sdkConfigCacheKey(clientToken))
80
95
  } catch {
81
96
  // Ignore.
82
97
  }
@@ -105,7 +120,7 @@ export function parseSdkConfig(raw: string): RemoteSdkConfig | undefined {
105
120
  * as a resource or a network error.
106
121
  */
107
122
  export function buildSdkConfigEndpoint(initConfiguration: InitConfiguration, applicationId?: string): string {
108
- const host = buildEndpointHost('rum', initConfiguration)
123
+ const host = initConfiguration.kubesenseRumEndpoint ?? INTAKE_SITE_PROD
109
124
  const parameters = [
110
125
  'ksource=browser',
111
126
  `kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,
@@ -120,15 +135,15 @@ export function buildSdkConfigEndpoint(initConfiguration: InitConfiguration, app
120
135
  }
121
136
 
122
137
  /**
123
- * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: any
124
- * failure (offline, 404 because the collector has no config file, 401, timeout, malformed
125
- * body) leaves the existing cache untouched.
138
+ * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: a 404 —
139
+ * the collector has no configuration for this application — clears the cache, and any other
140
+ * failure (offline, 401, 5xx, timeout, malformed body) leaves it untouched.
126
141
  *
127
142
  * The response is validated before it overwrites the cache, so a half-written document on the
128
143
  * collector can never poison a client.
129
144
  */
130
145
  export function refreshSdkConfig(initConfiguration: InitConfiguration, applicationId?: string): Promise<void> {
131
- if (typeof fetch !== 'function') {
146
+ if (!('fetch' in globalObject)) {
132
147
  return Promise.resolve()
133
148
  }
134
149
 
@@ -150,8 +165,15 @@ export function refreshSdkConfig(initConfiguration: InitConfiguration, applicati
150
165
  signal: createTimeoutSignal(SDK_CONFIG_FETCH_TIMEOUT),
151
166
  })
152
167
  .then((response) => {
168
+ if (response.status === 404) {
169
+ // The collector has no configuration for this application — it was removed, or never
170
+ // published. Forget the cached one, or the application would keep running on a document
171
+ // nobody can see or change any more.
172
+ clearCachedSdkConfig(initConfiguration.clientToken)
173
+ return undefined
174
+ }
153
175
  if (!response.ok) {
154
- // 404 simply means "no configuration published"; keep whatever we already had.
176
+ // An auth or server problem says nothing about the configuration: keep the cached one.
155
177
  return undefined
156
178
  }
157
179
  return response.text()
@@ -164,7 +186,7 @@ export function refreshSdkConfig(initConfiguration: InitConfiguration, applicati
164
186
  display.warn('Remote SDK configuration is not a valid JSON object, ignoring it.')
165
187
  return
166
188
  }
167
- setCachedSdkConfig(rawConfig)
189
+ setCachedSdkConfig(initConfiguration.clientToken, rawConfig)
168
190
  })
169
191
  .catch(() => {
170
192
  // Network failures are expected and must stay silent: the SDK keeps running on the
@@ -198,6 +220,33 @@ export function readSampleRate(source: { [key: string]: unknown } | undefined, k
198
220
  return typeof value === 'number' && isFinite(value) && value >= 0 && value <= 100 ? value : undefined
199
221
  }
200
222
 
223
+ /**
224
+ * Reads a number the SDK only accepts within a fixed range. Out-of-range values are rejected rather
225
+ * than clamped: a dashboard that asks for something the SDK cannot honour should fall back to the
226
+ * local value, not to a silently different one.
227
+ */
228
+ export function readNumberInRange(
229
+ source: { [key: string]: unknown } | undefined,
230
+ key: string,
231
+ min: number,
232
+ max: number
233
+ ): number | undefined {
234
+ const value = source?.[key]
235
+ return typeof value === 'number' && isFinite(value) && value >= min && value <= max ? value : undefined
236
+ }
237
+
238
+ /**
239
+ * Reads a list of non-empty strings, dropping unusable entries. Returns `undefined` for anything
240
+ * that is not an array, or when no entry survives, so the local value keeps applying.
241
+ */
242
+ export function readStringList(value: unknown): string[] | undefined {
243
+ if (!Array.isArray(value)) {
244
+ return undefined
245
+ }
246
+ const strings = value.filter((item): item is string => typeof item === 'string' && item.length > 0)
247
+ return strings.length > 0 ? strings : undefined
248
+ }
249
+
201
250
  export function readString(source: { [key: string]: unknown } | undefined, key: string): string | undefined {
202
251
  const value = source?.[key]
203
252
  return typeof value === 'string' && value.length > 0 ? value : undefined
@@ -1,37 +1,25 @@
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
- rtt?: number
14
- downlink?: number
15
- saveData: boolean
16
- }
1
+ import type { NetworkEffectiveType, NetworkInterface } from '@kubesense/kubesense-js-core/util'
2
+ import { globalObject } from '@kubesense/kubesense-js-core/util'
17
3
 
18
4
  export interface Connectivity {
19
5
  status: 'connected' | 'not_connected'
20
6
  interfaces?: NetworkInterface[]
21
- effective_type?: EffectiveType
7
+ effective_type?: NetworkEffectiveType
22
8
  rtt?: number
23
9
  downlink?: number
24
10
  [key: string]: unknown
25
11
  }
26
12
 
27
13
  export function getConnectivity(): Connectivity {
28
- const navigator = globalObject.navigator as BrowserNavigator
14
+ const { navigator } = globalObject
29
15
 
30
16
  return {
31
- status: navigator.onLine ? 'connected' : 'not_connected',
32
- interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : ['unknown'],
33
- effective_type: navigator.connection?.effectiveType,
34
- rtt: navigator.connection?.rtt,
35
- downlink: navigator.connection?.downlink,
17
+ status: navigator?.onLine ? 'connected' : 'not_connected',
18
+ // Report 'unknown' rather than nothing when the browser does not expose a connection type, so
19
+ // the field is always present and dashboards do not have to special-case its absence.
20
+ interfaces: navigator?.connection?.type ? [navigator.connection.type] : ['unknown'],
21
+ effective_type: navigator?.connection?.effectiveType,
22
+ rtt: navigator?.connection?.rtt,
23
+ downlink: navigator?.connection?.downlink,
36
24
  }
37
25
  }
@@ -1,14 +1,14 @@
1
+ import { clocksNow } from '@kubesense/kubesense-js-core/time'
2
+ import { ConsoleApiName, globalConsole } from '@kubesense/kubesense-js-core/util'
3
+ import { callMonitored } from '@kubesense/kubesense-js-core/monitor'
1
4
  import { isError, computeRawError } from '../error/error'
2
- import { mergeObservables, Observable } from '../../tools/observable'
3
- import { ConsoleApiName, globalConsole } from '../../tools/display'
4
- import { callMonitored } from '../../tools/monitor'
5
+ import { Observable, mergeObservables } from '../../tools/observable'
5
6
  import { sanitize } from '../../tools/serialisation/sanitize'
6
7
  import { jsonStringify } from '../../tools/serialisation/jsonStringify'
7
8
  import type { RawError } from '../error/error.types'
8
9
  import { ErrorHandling, ErrorSource, NonErrorPrefix } from '../error/error.types'
9
10
  import { computeStackTrace } from '../../tools/stackTrace/computeStackTrace'
10
11
  import { createHandlingStack, formatErrorMessage } from '../../tools/stackTrace/handlingStack'
11
- import { clocksNow } from '../../tools/utils/timeUtils'
12
12
 
13
13
  export type ConsoleLog = NonErrorConsoleLog | ErrorConsoleLog
14
14
 
@@ -51,6 +51,7 @@ export function resetConsoleObservable() {
51
51
 
52
52
  function createConsoleObservable(api: ConsoleApiName) {
53
53
  return new Observable<ConsoleLog>((observable) => {
54
+ // eslint-disable-next-line @typescript-eslint/unbound-method
54
55
  const originalConsoleApi = globalConsole[api]
55
56
 
56
57
  globalConsole[api] = (...params: unknown[]) => {
@@ -75,7 +76,10 @@ function buildConsoleLog(params: unknown[], api: ConsoleApiName, handlingStack:
75
76
  const firstErrorParam = params.find(isError)
76
77
 
77
78
  const rawError = computeRawError({
78
- originalError: firstErrorParam,
79
+ // `console.error` is commonly called without any Error instance. Falling back to the first
80
+ // parameter lets the error type be derived from what was actually logged (`String`,
81
+ // `Object`...) instead of nothing, and exposes it to `beforeSend` like the other sources do.
82
+ originalError: firstErrorParam ?? params[0],
79
83
  handlingStack,
80
84
  startClocks: clocksNow(),
81
85
  source: ErrorSource.CONSOLE,
@@ -1,4 +1,4 @@
1
- import { deepClone } from '../../tools/mergeInto'
1
+ import { deepClone } from '@kubesense/kubesense-js-core/util'
2
2
  import { sanitize } from '../../tools/serialisation/sanitize'
3
3
  import type { Context } from '../../tools/serialisation/context'
4
4
  import { Observable } from '../../tools/observable'
@@ -8,7 +8,10 @@ import { checkContext } from './contextUtils'
8
8
  export type ContextManager = ReturnType<typeof createContextManager>
9
9
 
10
10
  export interface PropertiesConfig {
11
- [key: string]: { required?: boolean; type?: 'string' }
11
+ [key: string]: {
12
+ required?: boolean
13
+ type?: 'string'
14
+ }
12
15
  }
13
16
 
14
17
  function ensureProperties(context: Context, propertiesConfig: PropertiesConfig, name: string) {
@@ -17,6 +20,7 @@ function ensureProperties(context: Context, propertiesConfig: PropertiesConfig,
17
20
  for (const [key, { required, type }] of Object.entries(propertiesConfig)) {
18
21
  /**
19
22
  * Ensure specified properties are strings as defined here:
23
+ * https://docs.kubesense.ai/logs/log_configuration/attributes_naming_convention/#user-related-attributes
20
24
  */
21
25
 
22
26
  if (type === 'string' && !isDefined(newContext[key])) {
@@ -1,6 +1,6 @@
1
+ import { getType } from '@kubesense/kubesense-js-core/util'
1
2
  import type { Context } from '../../tools/serialisation/context'
2
3
  import { display } from '../../tools/display'
3
- import { getType } from '../../tools/utils/typeUtils'
4
4
 
5
5
  /**
6
6
  * Simple check to ensure an object is a valid context
@@ -1,7 +1,7 @@
1
+ import { monitor } from '@kubesense/kubesense-js-core/monitor'
1
2
  import type { RawTelemetryUsage, RawTelemetryUsageFeature } from '../telemetry'
2
3
  import { addTelemetryUsage } from '../telemetry'
3
- import { monitor } from '../../tools/monitor'
4
- import type { BoundedBuffer } from '../../tools/boundedBuffer'
4
+ import type { BufferedObservable } from '../../tools/observable'
5
5
  import type { ContextManager } from './contextManager'
6
6
  import type { ContextManagerMethod, CustomerContextKey } from './contextConstants'
7
7
 
@@ -22,10 +22,10 @@ export function defineContextMethod<MethodName extends ContextManagerMethod, Key
22
22
  export function bufferContextCalls<Key extends string, StartResult extends Record<Key, ContextManager>>(
23
23
  preStartContextManager: ContextManager,
24
24
  name: Key,
25
- bufferApiCalls: BoundedBuffer<StartResult>
25
+ bufferApiCalls: BufferedObservable<(startResult: StartResult) => void>
26
26
  ) {
27
27
  preStartContextManager.changeObservable.subscribe(() => {
28
28
  const context = preStartContextManager.getContext()
29
- bufferApiCalls.add((startResult) => startResult[name].setContext(context))
29
+ bufferApiCalls.notify((startResult) => startResult[name].setContext(context))
30
30
  })
31
31
  }
@@ -1,8 +1,7 @@
1
+ import { combine } from '@kubesense/kubesense-js-core/util'
1
2
  import { addEventListener, DOM_EVENT } from '../../browser/addEventListener'
2
3
  import type { Context } from '../../tools/serialisation/context'
3
- import type { Configuration } from '../configuration'
4
- import { combine } from '../../tools/mergeInto'
5
- import { isEmptyObject } from '../../tools/utils/objectUtils'
4
+ import { isEmptyObject, tryJsonParse } from '../../tools/utils/objectUtils'
6
5
  import type { ContextManager } from './contextManager'
7
6
  import type { CustomerDataType } from './contextConstants'
8
7
 
@@ -11,15 +10,19 @@ const CONTEXT_STORE_KEY_PREFIX = '_kubesense_c'
11
10
  const storageListeners: Array<{ stop: () => void }> = []
12
11
 
13
12
  export function storeContextManager(
14
- configuration: Configuration,
15
13
  contextManager: ContextManager,
16
14
  productKey: string,
17
15
  customerDataType: CustomerDataType
18
16
  ) {
17
+ // window and localStorage are not available in Web Workers or Node.js environments
18
+ if (typeof window === 'undefined' || typeof localStorage === 'undefined') {
19
+ return
20
+ }
21
+
19
22
  const storageKey = buildStorageKey(productKey, customerDataType)
20
23
 
21
24
  storageListeners.push(
22
- addEventListener(configuration, window, DOM_EVENT.STORAGE, ({ key }) => {
25
+ addEventListener(window, DOM_EVENT.STORAGE, ({ key }) => {
23
26
  if (storageKey === key) {
24
27
  synchronizeWithStorage()
25
28
  }
@@ -42,7 +45,7 @@ export function storeContextManager(
42
45
 
43
46
  function getFromStorage() {
44
47
  const rawContext = localStorage.getItem(storageKey)
45
- return rawContext ? (JSON.parse(rawContext) as Context) : {}
48
+ return rawContext ? (tryJsonParse<Context>(rawContext) ?? {}) : {}
46
49
  }
47
50
  }
48
51
 
@@ -1,8 +1,8 @@
1
+ import type { Hook } from '@kubesense/kubesense-js-core/assembly'
2
+ import { SKIPPED } from '@kubesense/kubesense-js-core/assembly'
1
3
  import type { Configuration } from '../configuration'
2
4
  import { CustomerDataType } from '../context/contextConstants'
3
5
  import { storeContextManager } from '../context/storeContextManager'
4
- import { HookNames, SKIPPED } from '../../tools/abstractHooks'
5
- import type { AbstractHooks } from '../../tools/abstractHooks'
6
6
  import { isEmptyObject } from '../../tools/utils/objectUtils'
7
7
  import { createContextManager } from '../context/contextManager'
8
8
 
@@ -15,14 +15,14 @@ export interface Account {
15
15
  [key: string]: unknown
16
16
  }
17
17
 
18
- export function startAccountContext(hooks: AbstractHooks, configuration: Configuration, productKey: string) {
18
+ export function startAccountContext(assembleHook: Hook<any, any>, configuration: Configuration, productKey: string) {
19
19
  const accountContextManager = buildAccountContextManager()
20
20
 
21
21
  if (configuration.storeContextsAcrossPages) {
22
- storeContextManager(configuration, accountContextManager, productKey, CustomerDataType.Account)
22
+ storeContextManager(accountContextManager, productKey, CustomerDataType.Account)
23
23
  }
24
24
 
25
- hooks.register(HookNames.Assemble, () => {
25
+ assembleHook.register(() => {
26
26
  const account = accountContextManager.getContext() as Account
27
27
 
28
28
  if (isEmptyObject(account) || !account.id) {
@@ -1,12 +1,11 @@
1
- import type { AbstractHooks } from '../../tools/abstractHooks'
1
+ import type { Hook } from '@kubesense/kubesense-js-core/assembly'
2
2
  import { CustomerDataType } from '../context/contextConstants'
3
3
  import { storeContextManager } from '../context/storeContextManager'
4
- import { HookNames } from '../../tools/abstractHooks'
5
4
  import { createContextManager } from '../context/contextManager'
6
5
  import type { Configuration } from '../configuration'
7
6
 
8
7
  export function startGlobalContext(
9
- hooks: AbstractHooks,
8
+ assembleHook: Hook<any, any>,
10
9
  configuration: Configuration,
11
10
  productKey: string,
12
11
  useContextNamespace: boolean
@@ -14,10 +13,10 @@ export function startGlobalContext(
14
13
  const globalContextManager = buildGlobalContextManager()
15
14
 
16
15
  if (configuration.storeContextsAcrossPages) {
17
- storeContextManager(configuration, globalContextManager, productKey, CustomerDataType.GlobalContext)
16
+ storeContextManager(globalContextManager, productKey, CustomerDataType.GlobalContext)
18
17
  }
19
18
 
20
- hooks.register(HookNames.Assemble, () => {
19
+ assembleHook.register(() => {
21
20
  const context = globalContextManager.getContext()
22
21
  return useContextNamespace ? { context } : context
23
22
  })
@@ -0,0 +1,43 @@
1
+ import type { Hook } from '@kubesense/kubesense-js-core/assembly'
2
+ import { generateUUID } from '../../tools/utils/stringUtils'
3
+
4
+ export const TAB_ID_STORAGE_KEY = '_kubesense_tab_id'
5
+
6
+ let cachedTabId: string | undefined
7
+
8
+ // Exported for test cleanup only — allows specs to reset the in-memory cache between tests.
9
+ export function resetCachedTabId(): void {
10
+ cachedTabId = undefined
11
+ }
12
+
13
+ export function startTabContext(assembleHook: Hook<any, any>) {
14
+ const tabId = retrieveOrCreateTabId()
15
+
16
+ assembleHook.register(() => ({
17
+ tab: {
18
+ id: tabId,
19
+ },
20
+ }))
21
+ }
22
+
23
+ function retrieveOrCreateTabId(): string {
24
+ if (!cachedTabId) {
25
+ cachedTabId = getOrCreateIdInSessionStorage() ?? generateUUID()
26
+ }
27
+ return cachedTabId
28
+ }
29
+
30
+ function getOrCreateIdInSessionStorage(): string | undefined {
31
+ try {
32
+ const existingId = sessionStorage.getItem(TAB_ID_STORAGE_KEY)
33
+ if (existingId) {
34
+ return existingId
35
+ }
36
+ const newId = generateUUID()
37
+ sessionStorage.setItem(TAB_ID_STORAGE_KEY, newId)
38
+ return newId
39
+ } catch {
40
+ // sessionStorage unavailable (e.g. Web Worker, sandboxed iframe, quota exceeded)
41
+ return undefined
42
+ }
43
+ }
@@ -0,0 +1,26 @@
1
+ import type { Hook } from '@kubesense/kubesense-js-core/assembly'
2
+ import { SKIPPED } from '@kubesense/kubesense-js-core/assembly'
3
+ import type { SessionManager } from '../session/sessionManager'
4
+ import type { Context } from '../../tools/serialisation/context'
5
+
6
+ export function startTelemetrySessionContext(
7
+ assembleTelemetryHook: Hook<any, any>,
8
+ sessionManager: SessionManager,
9
+ extraContext?: Context
10
+ ) {
11
+ assembleTelemetryHook.register(({ startTime }) => {
12
+ const session = sessionManager.findTrackedSession(startTime)
13
+
14
+ if (!session) {
15
+ return SKIPPED
16
+ }
17
+
18
+ return {
19
+ session: {
20
+ id: session.id,
21
+ },
22
+ anonymous_id: session.anonymousId,
23
+ ...extraContext,
24
+ }
25
+ })
26
+ }
@@ -1,15 +1,16 @@
1
- import type { AbstractHooks } from '../../tools/abstractHooks'
1
+ import type { RelativeTime } from '@kubesense/kubesense-js-core/time'
2
+ import { clocksOrigin, relativeNow } from '@kubesense/kubesense-js-core/time'
3
+ import type { Hook } from '@kubesense/kubesense-js-core/assembly'
4
+ import { SKIPPED } from '@kubesense/kubesense-js-core/assembly'
5
+ import { deepClone } from '@kubesense/kubesense-js-core/util'
2
6
  import { CustomerDataType } from '../context/contextConstants'
3
7
  import { storeContextManager } from '../context/storeContextManager'
4
- import { HookNames, SKIPPED } from '../../tools/abstractHooks'
5
8
  import { createContextManager } from '../context/contextManager'
6
9
  import type { Configuration } from '../configuration'
7
10
  import { isEmptyObject } from '../../tools/utils/objectUtils'
8
- import type { RelativeTime } from '../../tools/utils/timeUtils'
9
- import { clocksOrigin, relativeNow } from '../../tools/utils/timeUtils'
10
- import { createValueHistory } from '../../tools/valueHistory'
11
- import { deepClone } from '../../tools/mergeInto'
11
+ import { jsonStringify } from '../../tools/serialisation/jsonStringify'
12
12
  import type { Context } from '../../tools/serialisation/context'
13
+ import { createValueHistory } from '../../tools/valueHistory'
13
14
  import { SESSION_TIME_OUT_DELAY } from '../session/sessionConstants'
14
15
 
15
16
  export interface User {
@@ -22,6 +23,14 @@ export interface User {
22
23
 
23
24
  const SESSION_OWNER_STORAGE_PREFIX = '_kubesense_session_user'
24
25
 
26
+ /**
27
+ * The user id is sanitized to a string by the context manager, but `getContext()` is typed as
28
+ * `Context`, so non-string values are normalized here rather than stringified blindly.
29
+ */
30
+ function toUserIdString(userId: unknown): string | undefined {
31
+ return typeof userId === 'string' ? userId : userId === undefined ? undefined : jsonStringify(userId)
32
+ }
33
+
25
34
  function getSessionOwnerKey(productKey: string) {
26
35
  return `${SESSION_OWNER_STORAGE_PREFIX}_${productKey}`
27
36
  }
@@ -48,7 +57,7 @@ function writeSessionOwnerUserId(productKey: string, userId: string | undefined)
48
57
  }
49
58
 
50
59
  export function startUserContext(
51
- hooks: AbstractHooks,
60
+ hook: Hook<{ eventType?: string; startTime: RelativeTime }, { usr?: User }>,
52
61
  configuration: Configuration,
53
62
  sessionManager: {
54
63
  findTrackedSession: (startTime?: RelativeTime) => { anonymousId?: string } | undefined
@@ -59,7 +68,7 @@ export function startUserContext(
59
68
  const userContextManager = buildUserContextManager()
60
69
 
61
70
  if (configuration.storeContextsAcrossPages) {
62
- storeContextManager(configuration, userContextManager, productKey, CustomerDataType.User)
71
+ storeContextManager(userContextManager, productKey, CustomerDataType.User)
63
72
  }
64
73
 
65
74
  // Expire the session when the user identity changes so that the new user
@@ -72,7 +81,7 @@ export function startUserContext(
72
81
  // expire on mismatch before any events get assembled with a stale session id.
73
82
  const initialUserId = userContextManager.getContext().id
74
83
  const sessionOwnerUserId = readSessionOwnerUserId(productKey)
75
- const initialUserIdString = initialUserId !== undefined ? String(initialUserId) : undefined
84
+ const initialUserIdString = toUserIdString(initialUserId)
76
85
 
77
86
  if (
78
87
  sessionOwnerUserId !== undefined &&
@@ -88,7 +97,7 @@ export function startUserContext(
88
97
  let previousUserId: string | undefined = initialUserIdString ?? sessionOwnerUserId
89
98
  userContextManager.changeObservable.subscribe(() => {
90
99
  const rawCurrentUserId = userContextManager.getContext().id
91
- const currentUserId = rawCurrentUserId !== undefined ? String(rawCurrentUserId) : undefined
100
+ const currentUserId = toUserIdString(rawCurrentUserId)
92
101
  if (currentUserId !== previousUserId) {
93
102
  sessionManager.expire!()
94
103
  writeSessionOwnerUserId(productKey, currentUserId)
@@ -112,12 +121,12 @@ export function startUserContext(
112
121
  userContextHistory.add(userContextManager.getContext(), now)
113
122
  })
114
123
 
115
- hooks.register(HookNames.Assemble, ({ eventType, startTime }) => {
124
+ hook.register(({ eventType, startTime }) => {
116
125
  const historicalUser = userContextHistory.find(startTime)
117
126
  const user = historicalUser ? deepClone(historicalUser) : userContextManager.getContext()
118
127
  const session = sessionManager.findTrackedSession(startTime)
119
128
 
120
- if (session && session.anonymousId && !user.anonymous_id && !!configuration.trackAnonymousUser) {
129
+ if (session?.anonymousId && !user.anonymous_id && !!configuration.trackAnonymousUser) {
121
130
  user.anonymous_id = session.anonymousId
122
131
  }
123
132
 
@@ -131,10 +140,6 @@ export function startUserContext(
131
140
  }
132
141
  })
133
142
 
134
- hooks.register(HookNames.AssembleTelemetry, ({ startTime }) => ({
135
- anonymous_id: sessionManager.findTrackedSession(startTime)?.anonymousId,
136
- }))
137
-
138
143
  return userContextManager
139
144
  }
140
145