@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,185 +1,178 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SDK_CONFIG_FETCH_TIMEOUT = exports.SDK_CONFIG_PATH = exports.SDK_CONFIG_CACHE_KEY = void 0;
4
- exports.getCachedSdkConfig = getCachedSdkConfig;
5
- exports.setCachedSdkConfig = setCachedSdkConfig;
6
- exports.clearCachedSdkConfig = clearCachedSdkConfig;
7
- exports.parseSdkConfig = parseSdkConfig;
8
- exports.buildSdkConfigEndpoint = buildSdkConfigEndpoint;
9
- exports.refreshSdkConfig = refreshSdkConfig;
10
- exports.readBoolean = readBoolean;
11
- exports.readSampleRate = readSampleRate;
12
- exports.readString = readString;
13
- exports.readEnum = readEnum;
14
- const stringUtils_1 = require("../../tools/utils/stringUtils");
15
- const display_1 = require("../../tools/display");
16
- const monitor_1 = require("../../tools/monitor");
17
- const endpointBuilder_1 = require("./endpointBuilder");
1
+ const require_stringUtils = require("../../tools/utils/stringUtils.js");
2
+ const require_fetch = require("../../browser/fetch.js");
3
+ const require_display = require("../../tools/display.js");
4
+ let _kubesense_kubesense_js_core_transport = require("@kubesense/kubesense-js-core/transport");
5
+ let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
6
+ let _kubesense_kubesense_js_core_monitor = require("@kubesense/kubesense-js-core/monitor");
7
+ //#region src/domain/configuration/remoteSdkConfig.ts
18
8
  /**
19
- * Dashboard-managed SDK settings, served by the Kubesense collector.
20
- *
21
- * The document is fetched asynchronously *after* the SDK has started and cached in local
22
- * storage, so it costs nothing on the initialization path. Cached values are applied on the
23
- * next page load — SDK configuration is frozen at `init()` time by design.
24
- */
25
- exports.SDK_CONFIG_CACHE_KEY = '_kubesense_sdk_config';
26
- exports.SDK_CONFIG_PATH = '/rum/api/v1/sdk-config';
9
+ * Dashboard-managed SDK settings, served by the Kubesense collector.
10
+ *
11
+ * The document is fetched asynchronously *after* the SDK has started and cached in local
12
+ * storage, so it costs nothing on the initialization path. Cached values are applied on the
13
+ * next page load — SDK configuration is frozen at `init()` time by design.
14
+ */
15
+ /**
16
+ * Prefix of the local-storage key holding the cached document. The key carries the client token,
17
+ * which the collector issues per application, so applications sharing an origin — several apps on
18
+ * one domain, or `localhost` during development — never read each other's settings. RUM and Logs
19
+ * of one application share the token, and so still share the document.
20
+ */
21
+ const SDK_CONFIG_CACHE_KEY = "_kubesense_sdk_config";
22
+ function sdkConfigCacheKey(clientToken) {
23
+ return `${SDK_CONFIG_CACHE_KEY}_${clientToken}`;
24
+ }
25
+ const SDK_CONFIG_PATH = "/rum/api/v1/sdk-config";
27
26
  /** Give up rather than let a hung request keep a page-load handle alive. */
28
- exports.SDK_CONFIG_FETCH_TIMEOUT = 10000;
27
+ const SDK_CONFIG_FETCH_TIMEOUT = 1e4;
29
28
  /**
30
- * Read the cached document. Synchronous, never touches the network, and never throws: a
31
- * corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).
32
- */
33
- function getCachedSdkConfig() {
34
- let raw;
35
- try {
36
- raw = localStorage.getItem(exports.SDK_CONFIG_CACHE_KEY);
37
- }
38
- catch (_a) {
39
- // Local storage can be unavailable (disabled, quota, sandboxed iframe).
40
- return undefined;
41
- }
42
- if (!raw) {
43
- return undefined;
44
- }
45
- const config = parseSdkConfig(raw);
46
- if (!config) {
47
- // Drop a document we can no longer read so we stop paying for it on every page load.
48
- clearCachedSdkConfig();
49
- }
50
- return config;
29
+ * Read the cached document. Synchronous, never touches the network, and never throws: a
30
+ * corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).
31
+ */
32
+ function getCachedSdkConfig(clientToken) {
33
+ let raw;
34
+ try {
35
+ localStorage.removeItem(SDK_CONFIG_CACHE_KEY);
36
+ raw = localStorage.getItem(sdkConfigCacheKey(clientToken));
37
+ } catch {
38
+ return;
39
+ }
40
+ if (!raw) return;
41
+ const config = parseSdkConfig(raw);
42
+ if (!config) clearCachedSdkConfig(clientToken);
43
+ return config;
51
44
  }
52
- function setCachedSdkConfig(rawConfig) {
53
- try {
54
- localStorage.setItem(exports.SDK_CONFIG_CACHE_KEY, rawConfig);
55
- }
56
- catch (_a) {
57
- // Ignore: caching is an optimization, not a requirement.
58
- }
45
+ function setCachedSdkConfig(clientToken, rawConfig) {
46
+ try {
47
+ localStorage.setItem(sdkConfigCacheKey(clientToken), rawConfig);
48
+ } catch {}
59
49
  }
60
- function clearCachedSdkConfig() {
61
- try {
62
- localStorage.removeItem(exports.SDK_CONFIG_CACHE_KEY);
63
- }
64
- catch (_a) {
65
- // Ignore.
66
- }
50
+ function clearCachedSdkConfig(clientToken) {
51
+ try {
52
+ localStorage.removeItem(sdkConfigCacheKey(clientToken));
53
+ } catch {}
67
54
  }
68
55
  /**
69
- * A document is only usable if it is a JSON object. Anything else (array, primitive, invalid
70
- * JSON) is rejected wholesale.
71
- */
56
+ * A document is only usable if it is a JSON object. Anything else (array, primitive, invalid
57
+ * JSON) is rejected wholesale.
58
+ */
72
59
  function parseSdkConfig(raw) {
73
- try {
74
- const parsed = JSON.parse(raw);
75
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
76
- return undefined;
77
- }
78
- return parsed;
79
- }
80
- catch (_a) {
81
- return undefined;
82
- }
60
+ try {
61
+ const parsed = JSON.parse(raw);
62
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return;
63
+ return parsed;
64
+ } catch {
65
+ return;
66
+ }
83
67
  }
84
68
  /**
85
- * The config endpoint deliberately carries the same query parameters as the intake, for two
86
- * reasons: it authenticates without a custom header (which would force a CORS preflight), and
87
- * it makes `isIntakeUrl()` return true, so the SDK never reports its own configuration request
88
- * as a resource or a network error.
89
- */
69
+ * The config endpoint deliberately carries the same query parameters as the intake, for two
70
+ * reasons: it authenticates without a custom header (which would force a CORS preflight), and
71
+ * it makes `isIntakeUrl()` return true, so the SDK never reports its own configuration request
72
+ * as a resource or a network error.
73
+ */
90
74
  function buildSdkConfigEndpoint(initConfiguration, applicationId) {
91
- const host = (0, endpointBuilder_1.buildEndpointHost)('rum', initConfiguration);
92
- const parameters = [
93
- 'ksource=browser',
94
- `kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,
95
- `kubesense-request-id=${(0, stringUtils_1.generateUUID)()}`,
96
- ];
97
- if (applicationId) {
98
- // The collector resolves the application from this parameter first, falling back to the
99
- // token -> application mapping. Sending it makes per-application configuration explicit.
100
- parameters.push(`application_id=${encodeURIComponent(applicationId)}`);
101
- }
102
- return `https://${host}${exports.SDK_CONFIG_PATH}?${parameters.join('&')}`;
75
+ const host = initConfiguration.kubesenseRumEndpoint ?? _kubesense_kubesense_js_core_transport.INTAKE_SITE_PROD;
76
+ const parameters = [
77
+ "ksource=browser",
78
+ `kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,
79
+ `kubesense-request-id=${require_stringUtils.generateUUID()}`
80
+ ];
81
+ if (applicationId) parameters.push(`application_id=${encodeURIComponent(applicationId)}`);
82
+ return `https://${host}${SDK_CONFIG_PATH}?${parameters.join("&")}`;
103
83
  }
104
84
  /**
105
- * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: any
106
- * failure (offline, 404 because the collector has no config file, 401, timeout, malformed
107
- * body) leaves the existing cache untouched.
108
- *
109
- * The response is validated before it overwrites the cache, so a half-written document on the
110
- * collector can never poison a client.
111
- */
85
+ * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: a 404 —
86
+ * the collector has no configuration for this application — clears the cache, and any other
87
+ * failure (offline, 401, 5xx, timeout, malformed body) leaves it untouched.
88
+ *
89
+ * The response is validated before it overwrites the cache, so a half-written document on the
90
+ * collector can never poison a client.
91
+ */
112
92
  function refreshSdkConfig(initConfiguration, applicationId) {
113
- if (typeof fetch !== 'function') {
114
- return Promise.resolve();
115
- }
116
- let endpoint;
117
- try {
118
- endpoint = buildSdkConfigEndpoint(initConfiguration, applicationId);
119
- }
120
- catch (error) {
121
- (0, monitor_1.monitorError)(error);
122
- return Promise.resolve();
123
- }
124
- return fetch(endpoint, {
125
- method: 'GET',
126
- // Configuration is not user data: never attach cookies to it.
127
- credentials: 'omit',
128
- mode: 'cors',
129
- // Always ask the collector, never a proxy cache — dashboard edits must propagate.
130
- cache: 'no-store',
131
- signal: createTimeoutSignal(exports.SDK_CONFIG_FETCH_TIMEOUT),
132
- })
133
- .then((response) => {
134
- if (!response.ok) {
135
- // 404 simply means "no configuration published"; keep whatever we already had.
136
- return undefined;
137
- }
138
- return response.text();
139
- })
140
- .then((rawConfig) => {
141
- if (rawConfig === undefined) {
142
- return;
143
- }
144
- if (!parseSdkConfig(rawConfig)) {
145
- display_1.display.warn('Remote SDK configuration is not a valid JSON object, ignoring it.');
146
- return;
147
- }
148
- setCachedSdkConfig(rawConfig);
149
- })
150
- .catch(() => {
151
- // Network failures are expected and must stay silent: the SDK keeps running on the
152
- // cached configuration, or on its defaults.
153
- });
93
+ if (!("fetch" in _kubesense_kubesense_js_core_util.globalObject)) return Promise.resolve();
94
+ let endpoint;
95
+ try {
96
+ endpoint = buildSdkConfigEndpoint(initConfiguration, applicationId);
97
+ } catch (error) {
98
+ (0, _kubesense_kubesense_js_core_monitor.monitorError)(error);
99
+ return Promise.resolve();
100
+ }
101
+ return require_fetch.fetch(endpoint, {
102
+ method: "GET",
103
+ credentials: "omit",
104
+ mode: "cors",
105
+ cache: "no-store",
106
+ signal: createTimeoutSignal(SDK_CONFIG_FETCH_TIMEOUT)
107
+ }).then((response) => {
108
+ if (response.status === 404) {
109
+ clearCachedSdkConfig(initConfiguration.clientToken);
110
+ return;
111
+ }
112
+ if (!response.ok) return;
113
+ return response.text();
114
+ }).then((rawConfig) => {
115
+ if (rawConfig === void 0) return;
116
+ if (!parseSdkConfig(rawConfig)) {
117
+ require_display.display.warn("Remote SDK configuration is not a valid JSON object, ignoring it.");
118
+ return;
119
+ }
120
+ setCachedSdkConfig(initConfiguration.clientToken, rawConfig);
121
+ }).catch(() => {});
154
122
  }
155
123
  function createTimeoutSignal(timeout) {
156
- // AbortSignal.timeout is not available on all supported browsers; without it the fetch
157
- // simply runs to completion, which is acceptable for a fire-and-forget request.
158
- if (typeof AbortSignal !== 'undefined' && typeof AbortSignal.timeout === 'function') {
159
- return AbortSignal.timeout(timeout);
160
- }
161
- return undefined;
124
+ if (typeof AbortSignal !== "undefined" && typeof AbortSignal.timeout === "function") return AbortSignal.timeout(timeout);
162
125
  }
163
- /* ------------------------------------------------------------------------------------------
164
- * Defensive readers
165
- *
166
- * Each returns `undefined` when the value is missing or unusable, which callers translate into
167
- * "do not override the SDK default".
168
- * ---------------------------------------------------------------------------------------- */
169
126
  function readBoolean(source, key) {
170
- const value = source === null || source === void 0 ? void 0 : source[key];
171
- return typeof value === 'boolean' ? value : undefined;
127
+ const value = source?.[key];
128
+ return typeof value === "boolean" ? value : void 0;
172
129
  }
173
130
  function readSampleRate(source, key) {
174
- const value = source === null || source === void 0 ? void 0 : source[key];
175
- return typeof value === 'number' && isFinite(value) && value >= 0 && value <= 100 ? value : undefined;
131
+ const value = source?.[key];
132
+ return typeof value === "number" && isFinite(value) && value >= 0 && value <= 100 ? value : void 0;
133
+ }
134
+ /**
135
+ * Reads a number the SDK only accepts within a fixed range. Out-of-range values are rejected rather
136
+ * than clamped: a dashboard that asks for something the SDK cannot honour should fall back to the
137
+ * local value, not to a silently different one.
138
+ */
139
+ function readNumberInRange(source, key, min, max) {
140
+ const value = source?.[key];
141
+ return typeof value === "number" && isFinite(value) && value >= min && value <= max ? value : void 0;
142
+ }
143
+ /**
144
+ * Reads a list of non-empty strings, dropping unusable entries. Returns `undefined` for anything
145
+ * that is not an array, or when no entry survives, so the local value keeps applying.
146
+ */
147
+ function readStringList(value) {
148
+ if (!Array.isArray(value)) return;
149
+ const strings = value.filter((item) => typeof item === "string" && item.length > 0);
150
+ return strings.length > 0 ? strings : void 0;
176
151
  }
177
152
  function readString(source, key) {
178
- const value = source === null || source === void 0 ? void 0 : source[key];
179
- return typeof value === 'string' && value.length > 0 ? value : undefined;
153
+ const value = source?.[key];
154
+ return typeof value === "string" && value.length > 0 ? value : void 0;
180
155
  }
181
156
  function readEnum(source, key, allowedValues) {
182
- const value = source === null || source === void 0 ? void 0 : source[key];
183
- return typeof value === 'string' && allowedValues.includes(value) ? value : undefined;
157
+ const value = source?.[key];
158
+ return typeof value === "string" && allowedValues.includes(value) ? value : void 0;
184
159
  }
160
+ //#endregion
161
+ exports.SDK_CONFIG_CACHE_KEY = SDK_CONFIG_CACHE_KEY;
162
+ exports.SDK_CONFIG_FETCH_TIMEOUT = SDK_CONFIG_FETCH_TIMEOUT;
163
+ exports.SDK_CONFIG_PATH = SDK_CONFIG_PATH;
164
+ exports.buildSdkConfigEndpoint = buildSdkConfigEndpoint;
165
+ exports.clearCachedSdkConfig = clearCachedSdkConfig;
166
+ exports.getCachedSdkConfig = getCachedSdkConfig;
167
+ exports.parseSdkConfig = parseSdkConfig;
168
+ exports.readBoolean = readBoolean;
169
+ exports.readEnum = readEnum;
170
+ exports.readNumberInRange = readNumberInRange;
171
+ exports.readSampleRate = readSampleRate;
172
+ exports.readString = readString;
173
+ exports.readStringList = readStringList;
174
+ exports.refreshSdkConfig = refreshSdkConfig;
175
+ exports.sdkConfigCacheKey = sdkConfigCacheKey;
176
+ exports.setCachedSdkConfig = setCachedSdkConfig;
177
+
185
178
  //# sourceMappingURL=remoteSdkConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remoteSdkConfig.js","sourceRoot":"","sources":["../../../src/domain/configuration/remoteSdkConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remoteSdkConfig.js","names":["INTAKE_SITE_PROD","generateUUID","globalObject","fetch"],"sources":["../../../src/domain/configuration/remoteSdkConfig.ts"],"sourcesContent":["import { monitorError } from '@kubesense/kubesense-js-core/monitor'\nimport { globalObject } from '@kubesense/kubesense-js-core/util'\nimport { INTAKE_SITE_PROD } from '@kubesense/kubesense-js-core/transport'\nimport { generateUUID } from '../../tools/utils/stringUtils'\nimport { fetch } from '../../browser/fetch'\nimport { display } from '../../tools/display'\nimport type { InitConfiguration } from './configuration'\n\n/**\n * Dashboard-managed SDK settings, served by the Kubesense collector.\n *\n * The document is fetched asynchronously *after* the SDK has started and cached in local\n * storage, so it costs nothing on the initialization path. Cached values are applied on the\n * next page load — SDK configuration is frozen at `init()` time by design.\n */\n\n/**\n * Prefix of the local-storage key holding the cached document. The key carries the client token,\n * which the collector issues per application, so applications sharing an origin — several apps on\n * one domain, or `localhost` during development — never read each other's settings. RUM and Logs\n * of one application share the token, and so still share the document.\n */\nexport const SDK_CONFIG_CACHE_KEY = '_kubesense_sdk_config'\n\nexport function sdkConfigCacheKey(clientToken: string) {\n return `${SDK_CONFIG_CACHE_KEY}_${clientToken}`\n}\nexport const SDK_CONFIG_PATH = '/rum/api/v1/sdk-config'\n\n/** Give up rather than let a hung request keep a page-load handle alive. */\nexport const SDK_CONFIG_FETCH_TIMEOUT = 10_000\n\n/**\n * A remote configuration document. Every field is optional: a missing (or invalid) field means\n * \"leave the SDK default alone\", so a malformed document can never take an application away\n * from its defaults.\n */\nexport interface RemoteSdkConfig {\n /** Free-form number for dashboard bookkeeping. Not interpreted by the SDK. */\n version?: number\n features?: RemoteSdkConfigFeatures\n rum?: { [key: string]: unknown }\n sessionReplay?: { [key: string]: unknown }\n profiling?: { [key: string]: unknown }\n logs?: { [key: string]: unknown }\n [key: string]: unknown\n}\n\nexport interface RemoteSdkConfigFeatures {\n rum?: boolean\n sessionReplay?: boolean\n profiling?: boolean\n logs?: boolean\n}\n\n/**\n * Read the cached document. Synchronous, never touches the network, and never throws: a\n * corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).\n */\nexport function getCachedSdkConfig(clientToken: string): RemoteSdkConfig | undefined {\n let raw: string | null\n try {\n // The unscoped key predates per-application caching and may hold another application's\n // document; it is dropped rather than migrated.\n localStorage.removeItem(SDK_CONFIG_CACHE_KEY)\n raw = localStorage.getItem(sdkConfigCacheKey(clientToken))\n } catch {\n // Local storage can be unavailable (disabled, quota, sandboxed iframe).\n return undefined\n }\n\n if (!raw) {\n return undefined\n }\n\n const config = parseSdkConfig(raw)\n if (!config) {\n // Drop a document we can no longer read so we stop paying for it on every page load.\n clearCachedSdkConfig(clientToken)\n }\n return config\n}\n\nexport function setCachedSdkConfig(clientToken: string, rawConfig: string) {\n try {\n localStorage.setItem(sdkConfigCacheKey(clientToken), rawConfig)\n } catch {\n // Ignore: caching is an optimization, not a requirement.\n }\n}\n\nexport function clearCachedSdkConfig(clientToken: string) {\n try {\n localStorage.removeItem(sdkConfigCacheKey(clientToken))\n } catch {\n // Ignore.\n }\n}\n\n/**\n * A document is only usable if it is a JSON object. Anything else (array, primitive, invalid\n * JSON) is rejected wholesale.\n */\nexport function parseSdkConfig(raw: string): RemoteSdkConfig | undefined {\n try {\n const parsed: unknown = JSON.parse(raw)\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return undefined\n }\n return parsed as RemoteSdkConfig\n } catch {\n return undefined\n }\n}\n\n/**\n * The config endpoint deliberately carries the same query parameters as the intake, for two\n * reasons: it authenticates without a custom header (which would force a CORS preflight), and\n * it makes `isIntakeUrl()` return true, so the SDK never reports its own configuration request\n * as a resource or a network error.\n */\nexport function buildSdkConfigEndpoint(initConfiguration: InitConfiguration, applicationId?: string): string {\n const host = initConfiguration.kubesenseRumEndpoint ?? INTAKE_SITE_PROD\n const parameters = [\n 'ksource=browser',\n `kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,\n `kubesense-request-id=${generateUUID()}`,\n ]\n if (applicationId) {\n // The collector resolves the application from this parameter first, falling back to the\n // token -> application mapping. Sending it makes per-application configuration explicit.\n parameters.push(`application_id=${encodeURIComponent(applicationId)}`)\n }\n return `https://${host}${SDK_CONFIG_PATH}?${parameters.join('&')}`\n}\n\n/**\n * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: a 404 —\n * the collector has no configuration for this application — clears the cache, and any other\n * failure (offline, 401, 5xx, timeout, malformed body) leaves it untouched.\n *\n * The response is validated before it overwrites the cache, so a half-written document on the\n * collector can never poison a client.\n */\nexport function refreshSdkConfig(initConfiguration: InitConfiguration, applicationId?: string): Promise<void> {\n if (!('fetch' in globalObject)) {\n return Promise.resolve()\n }\n\n let endpoint: string\n try {\n endpoint = buildSdkConfigEndpoint(initConfiguration, applicationId)\n } catch (error) {\n monitorError(error)\n return Promise.resolve()\n }\n\n return fetch(endpoint, {\n method: 'GET',\n // Configuration is not user data: never attach cookies to it.\n credentials: 'omit',\n mode: 'cors',\n // Always ask the collector, never a proxy cache — dashboard edits must propagate.\n cache: 'no-store',\n signal: createTimeoutSignal(SDK_CONFIG_FETCH_TIMEOUT),\n })\n .then((response) => {\n if (response.status === 404) {\n // The collector has no configuration for this application — it was removed, or never\n // published. Forget the cached one, or the application would keep running on a document\n // nobody can see or change any more.\n clearCachedSdkConfig(initConfiguration.clientToken)\n return undefined\n }\n if (!response.ok) {\n // An auth or server problem says nothing about the configuration: keep the cached one.\n return undefined\n }\n return response.text()\n })\n .then((rawConfig) => {\n if (rawConfig === undefined) {\n return\n }\n if (!parseSdkConfig(rawConfig)) {\n display.warn('Remote SDK configuration is not a valid JSON object, ignoring it.')\n return\n }\n setCachedSdkConfig(initConfiguration.clientToken, rawConfig)\n })\n .catch(() => {\n // Network failures are expected and must stay silent: the SDK keeps running on the\n // cached configuration, or on its defaults.\n })\n}\n\nfunction createTimeoutSignal(timeout: number): AbortSignal | undefined {\n // AbortSignal.timeout is not available on all supported browsers; without it the fetch\n // simply runs to completion, which is acceptable for a fire-and-forget request.\n if (typeof AbortSignal !== 'undefined' && typeof AbortSignal.timeout === 'function') {\n return AbortSignal.timeout(timeout)\n }\n return undefined\n}\n\n/* ------------------------------------------------------------------------------------------\n * Defensive readers\n *\n * Each returns `undefined` when the value is missing or unusable, which callers translate into\n * \"do not override the SDK default\".\n * ---------------------------------------------------------------------------------------- */\n\nexport function readBoolean(source: { [key: string]: unknown } | undefined, key: string): boolean | undefined {\n const value = source?.[key]\n return typeof value === 'boolean' ? value : undefined\n}\n\nexport function readSampleRate(source: { [key: string]: unknown } | undefined, key: string): number | undefined {\n const value = source?.[key]\n return typeof value === 'number' && isFinite(value) && value >= 0 && value <= 100 ? value : undefined\n}\n\n/**\n * Reads a number the SDK only accepts within a fixed range. Out-of-range values are rejected rather\n * than clamped: a dashboard that asks for something the SDK cannot honour should fall back to the\n * local value, not to a silently different one.\n */\nexport function readNumberInRange(\n source: { [key: string]: unknown } | undefined,\n key: string,\n min: number,\n max: number\n): number | undefined {\n const value = source?.[key]\n return typeof value === 'number' && isFinite(value) && value >= min && value <= max ? value : undefined\n}\n\n/**\n * Reads a list of non-empty strings, dropping unusable entries. Returns `undefined` for anything\n * that is not an array, or when no entry survives, so the local value keeps applying.\n */\nexport function readStringList(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) {\n return undefined\n }\n const strings = value.filter((item): item is string => typeof item === 'string' && item.length > 0)\n return strings.length > 0 ? strings : undefined\n}\n\nexport function readString(source: { [key: string]: unknown } | undefined, key: string): string | undefined {\n const value = source?.[key]\n return typeof value === 'string' && value.length > 0 ? value : undefined\n}\n\nexport function readEnum<T extends string>(\n source: { [key: string]: unknown } | undefined,\n key: string,\n allowedValues: readonly T[]\n): T | undefined {\n const value = source?.[key]\n return typeof value === 'string' && (allowedValues as readonly string[]).includes(value) ? (value as T) : undefined\n}\n"],"mappings":"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"}
@@ -1,16 +1,8 @@
1
- export type NetworkInterface = 'bluetooth' | 'cellular' | 'ethernet' | 'none' | 'wifi' | 'wimax' | 'other' | 'unknown';
2
- export type EffectiveType = 'slow-2g' | '2g' | '3g' | '4g';
3
- export interface NetworkInformation {
4
- type?: NetworkInterface;
5
- effectiveType?: EffectiveType;
6
- rtt?: number;
7
- downlink?: number;
8
- saveData: boolean;
9
- }
1
+ import type { NetworkEffectiveType, NetworkInterface } from '@kubesense/kubesense-js-core/util';
10
2
  export interface Connectivity {
11
3
  status: 'connected' | 'not_connected';
12
4
  interfaces?: NetworkInterface[];
13
- effective_type?: EffectiveType;
5
+ effective_type?: NetworkEffectiveType;
14
6
  rtt?: number;
15
7
  downlink?: number;
16
8
  [key: string]: unknown;
@@ -1,16 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getConnectivity = getConnectivity;
4
- const globalObject_1 = require("../../tools/globalObject");
1
+ let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
2
+ //#region src/domain/connectivity/connectivity.ts
5
3
  function getConnectivity() {
6
- var _a, _b, _c;
7
- const navigator = globalObject_1.globalObject.navigator;
8
- return {
9
- status: navigator.onLine ? 'connected' : 'not_connected',
10
- interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : ['unknown'],
11
- effective_type: (_a = navigator.connection) === null || _a === void 0 ? void 0 : _a.effectiveType,
12
- rtt: (_b = navigator.connection) === null || _b === void 0 ? void 0 : _b.rtt,
13
- downlink: (_c = navigator.connection) === null || _c === void 0 ? void 0 : _c.downlink,
14
- };
4
+ const { navigator } = _kubesense_kubesense_js_core_util.globalObject;
5
+ return {
6
+ status: navigator?.onLine ? "connected" : "not_connected",
7
+ interfaces: navigator?.connection?.type ? [navigator.connection.type] : ["unknown"],
8
+ effective_type: navigator?.connection?.effectiveType,
9
+ rtt: navigator?.connection?.rtt,
10
+ downlink: navigator?.connection?.downlink
11
+ };
15
12
  }
13
+ //#endregion
14
+ exports.getConnectivity = getConnectivity;
15
+
16
16
  //# sourceMappingURL=connectivity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectivity.js","sourceRoot":"","sources":["../../../src/domain/connectivity/connectivity.ts"],"names":[],"mappings":";;AA0BA,0CAUC;AApCD,2DAAuD;AA0BvD,SAAgB,eAAe;;IAC7B,MAAM,SAAS,GAAG,2BAAY,CAAC,SAA6B,CAAA;IAE5D,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;QACxD,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,cAAc,EAAE,MAAA,SAAS,CAAC,UAAU,0CAAE,aAAa;QACnD,GAAG,EAAE,MAAA,SAAS,CAAC,UAAU,0CAAE,GAAG;QAC9B,QAAQ,EAAE,MAAA,SAAS,CAAC,UAAU,0CAAE,QAAQ;KACzC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"connectivity.js","names":["globalObject"],"sources":["../../../src/domain/connectivity/connectivity.ts"],"sourcesContent":["import type { NetworkEffectiveType, NetworkInterface } from '@kubesense/kubesense-js-core/util'\nimport { globalObject } from '@kubesense/kubesense-js-core/util'\n\nexport interface Connectivity {\n status: 'connected' | 'not_connected'\n interfaces?: NetworkInterface[]\n effective_type?: NetworkEffectiveType\n rtt?: number\n downlink?: number\n [key: string]: unknown\n}\n\nexport function getConnectivity(): Connectivity {\n const { navigator } = globalObject\n\n return {\n status: navigator?.onLine ? 'connected' : 'not_connected',\n // Report 'unknown' rather than nothing when the browser does not expose a connection type, so\n // the field is always present and dashboards do not have to special-case its absence.\n interfaces: navigator?.connection?.type ? [navigator.connection.type] : ['unknown'],\n effective_type: navigator?.connection?.effectiveType,\n rtt: navigator?.connection?.rtt,\n downlink: navigator?.connection?.downlink,\n }\n}\n"],"mappings":";;AAYA,SAAgB,kBAAgC;CAC9C,MAAM,EAAE,cAAcA,kCAAAA;CAEtB,OAAO;EACL,QAAQ,WAAW,SAAS,cAAc;EAG1C,YAAY,WAAW,YAAY,OAAO,CAAC,UAAU,WAAW,IAAI,IAAI,CAAC,SAAS;EAClF,gBAAgB,WAAW,YAAY;EACvC,KAAK,WAAW,YAAY;EAC5B,UAAU,WAAW,YAAY;CACnC;AACF"}
@@ -1,5 +1,5 @@
1
+ import { ConsoleApiName } from '@kubesense/kubesense-js-core/util';
1
2
  import { Observable } from '../../tools/observable';
2
- import { ConsoleApiName } from '../../tools/display';
3
3
  import type { RawError } from '../error/error.types';
4
4
  export type ConsoleLog = NonErrorConsoleLog | ErrorConsoleLog;
5
5
  interface NonErrorConsoleLog extends ConsoleLogBase {
@@ -1,84 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initConsoleObservable = initConsoleObservable;
4
- exports.resetConsoleObservable = resetConsoleObservable;
5
- const error_1 = require("../error/error");
6
- const observable_1 = require("../../tools/observable");
7
- const display_1 = require("../../tools/display");
8
- const monitor_1 = require("../../tools/monitor");
9
- const sanitize_1 = require("../../tools/serialisation/sanitize");
10
- const jsonStringify_1 = require("../../tools/serialisation/jsonStringify");
11
- const error_types_1 = require("../error/error.types");
12
- const computeStackTrace_1 = require("../../tools/stackTrace/computeStackTrace");
13
- const handlingStack_1 = require("../../tools/stackTrace/handlingStack");
14
- const timeUtils_1 = require("../../tools/utils/timeUtils");
1
+ const require_observable = require("../../tools/observable.js");
2
+ const require_computeStackTrace = require("../../tools/stackTrace/computeStackTrace.js");
3
+ const require_handlingStack = require("../../tools/stackTrace/handlingStack.js");
4
+ const require_jsonStringify = require("../../tools/serialisation/jsonStringify.js");
5
+ const require_sanitize = require("../../tools/serialisation/sanitize.js");
6
+ const require_isError = require("../error/isError.js");
7
+ const require_error_types = require("../error/error.types.js");
8
+ const require_error = require("../error/error.js");
9
+ let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
10
+ let _kubesense_kubesense_js_core_monitor = require("@kubesense/kubesense-js-core/monitor");
11
+ let _kubesense_kubesense_js_core_time = require("@kubesense/kubesense-js-core/time");
12
+ //#region src/domain/console/consoleObservable.ts
15
13
  let consoleObservablesByApi = {};
16
14
  function initConsoleObservable(apis) {
17
- const consoleObservables = apis.map((api) => {
18
- if (!consoleObservablesByApi[api]) {
19
- consoleObservablesByApi[api] = createConsoleObservable(api); // we are sure that the observable created for this api will yield the expected ConsoleLog type
20
- }
21
- return consoleObservablesByApi[api];
22
- });
23
- return (0, observable_1.mergeObservables)(...consoleObservables);
24
- }
25
- function resetConsoleObservable() {
26
- consoleObservablesByApi = {};
15
+ const consoleObservables = apis.map((api) => {
16
+ if (!consoleObservablesByApi[api]) consoleObservablesByApi[api] = createConsoleObservable(api);
17
+ return consoleObservablesByApi[api];
18
+ });
19
+ return require_observable.mergeObservables(...consoleObservables);
27
20
  }
28
21
  function createConsoleObservable(api) {
29
- return new observable_1.Observable((observable) => {
30
- const originalConsoleApi = display_1.globalConsole[api];
31
- display_1.globalConsole[api] = (...params) => {
32
- originalConsoleApi.apply(console, params);
33
- const handlingStack = (0, handlingStack_1.createHandlingStack)('console error');
34
- (0, monitor_1.callMonitored)(() => {
35
- observable.notify(buildConsoleLog(params, api, handlingStack));
36
- });
37
- };
38
- return () => {
39
- display_1.globalConsole[api] = originalConsoleApi;
40
- };
41
- });
22
+ return new require_observable.Observable((observable) => {
23
+ const originalConsoleApi = _kubesense_kubesense_js_core_util.globalConsole[api];
24
+ _kubesense_kubesense_js_core_util.globalConsole[api] = (...params) => {
25
+ originalConsoleApi.apply(console, params);
26
+ const handlingStack = require_handlingStack.createHandlingStack("console error");
27
+ (0, _kubesense_kubesense_js_core_monitor.callMonitored)(() => {
28
+ observable.notify(buildConsoleLog(params, api, handlingStack));
29
+ });
30
+ };
31
+ return () => {
32
+ _kubesense_kubesense_js_core_util.globalConsole[api] = originalConsoleApi;
33
+ };
34
+ });
42
35
  }
43
36
  function buildConsoleLog(params, api, handlingStack) {
44
- const message = params.map((param) => formatConsoleParameters(param)).join(' ');
45
- if (api === display_1.ConsoleApiName.error) {
46
- const firstErrorParam = params.find(error_1.isError);
47
- const rawError = (0, error_1.computeRawError)({
48
- originalError: firstErrorParam,
49
- handlingStack,
50
- startClocks: (0, timeUtils_1.clocksNow)(),
51
- source: error_types_1.ErrorSource.CONSOLE,
52
- handling: "handled" /* ErrorHandling.HANDLED */,
53
- nonErrorPrefix: "Provided" /* NonErrorPrefix.PROVIDED */,
54
- // if no good stack is computed from the error, let's not use the fallback stack message
55
- // advising the user to use an instance of Error, as console.error is commonly used without an
56
- // Error instance.
57
- useFallbackStack: false,
58
- });
59
- // Use the full log message as the error message instead of just the error instance message.
60
- rawError.message = message;
61
- return {
62
- api,
63
- message,
64
- handlingStack,
65
- error: rawError,
66
- };
67
- }
68
- return {
69
- api,
70
- message,
71
- error: undefined,
72
- handlingStack,
73
- };
37
+ const message = params.map((param) => formatConsoleParameters(param)).join(" ");
38
+ if (api === _kubesense_kubesense_js_core_util.ConsoleApiName.error) {
39
+ const firstErrorParam = params.find(require_isError.isError);
40
+ const rawError = require_error.computeRawError({
41
+ originalError: firstErrorParam ?? params[0],
42
+ handlingStack,
43
+ startClocks: (0, _kubesense_kubesense_js_core_time.clocksNow)(),
44
+ source: require_error_types.ErrorSource.CONSOLE,
45
+ handling: "handled",
46
+ nonErrorPrefix: "Provided",
47
+ useFallbackStack: false
48
+ });
49
+ rawError.message = message;
50
+ return {
51
+ api,
52
+ message,
53
+ handlingStack,
54
+ error: rawError
55
+ };
56
+ }
57
+ return {
58
+ api,
59
+ message,
60
+ error: void 0,
61
+ handlingStack
62
+ };
74
63
  }
75
64
  function formatConsoleParameters(param) {
76
- if (typeof param === 'string') {
77
- return (0, sanitize_1.sanitize)(param);
78
- }
79
- if ((0, error_1.isError)(param)) {
80
- return (0, handlingStack_1.formatErrorMessage)((0, computeStackTrace_1.computeStackTrace)(param));
81
- }
82
- return (0, jsonStringify_1.jsonStringify)((0, sanitize_1.sanitize)(param), undefined, 2);
65
+ if (typeof param === "string") return require_sanitize.sanitize(param);
66
+ if (require_isError.isError(param)) return require_handlingStack.formatErrorMessage(require_computeStackTrace.computeStackTrace(param));
67
+ return require_jsonStringify.jsonStringify(require_sanitize.sanitize(param), void 0, 2);
83
68
  }
69
+ //#endregion
70
+ exports.initConsoleObservable = initConsoleObservable;
71
+
84
72
  //# sourceMappingURL=consoleObservable.js.map