@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,104 +1,98 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectCookieStrategy = selectCookieStrategy;
4
- exports.initCookieStrategy = initCookieStrategy;
5
- exports.retrieveSessionCookie = retrieveSessionCookie;
6
- exports.buildCookieOptions = buildCookieOptions;
7
- const objectUtils_1 = require("../../../tools/utils/objectUtils");
8
- const browserDetection_1 = require("../../../tools/utils/browserDetection");
9
- const cookie_1 = require("../../../browser/cookie");
10
- const oldCookiesMigration_1 = require("../oldCookiesMigration");
11
- const sessionConstants_1 = require("../sessionConstants");
12
- const sessionState_1 = require("../sessionState");
13
- const sessionStoreStrategy_1 = require("./sessionStoreStrategy");
14
- const SESSION_COOKIE_VERSION = 0;
15
- function selectCookieStrategy(initConfiguration) {
16
- const cookieOptions = buildCookieOptions(initConfiguration);
17
- return cookieOptions && (0, cookie_1.areCookiesAuthorized)(cookieOptions)
18
- ? { type: sessionConstants_1.SessionPersistence.COOKIE, cookieOptions }
19
- : undefined;
1
+ const require_observable = require("../../../tools/observable.js");
2
+ const require_cookie = require("../../../browser/cookie.js");
3
+ const require_mockable = require("../../../tools/mockable.js");
4
+ const require_objectUtils = require("../../../tools/utils/objectUtils.js");
5
+ const require_sessionConstants = require("../sessionConstants.js");
6
+ const require_sessionState = require("../sessionState.js");
7
+ const require_cookieAccess = require("../../../browser/cookieAccess.js");
8
+ const require_sessionStoreStrategy = require("./sessionStoreStrategy.js");
9
+ let _kubesense_kubesense_js_core_monitor = require("@kubesense/kubesense-js-core/monitor");
10
+ //#region src/domain/session/storeStrategies/sessionInCookie.ts
11
+ async function selectCookieStrategy(configuration) {
12
+ const cookieOptions = require_cookie.buildCookieOptions(configuration);
13
+ if (!cookieOptions) return;
14
+ if (require_cookieAccess.isCookieStoreSupported() && await require_cookieAccess.areCookiesAuthorized(require_cookieAccess.createCookieStoreAccess, cookieOptions)) return {
15
+ type: require_sessionConstants.SessionPersistence.COOKIE,
16
+ cookieOptions,
17
+ cookieApi: 1
18
+ };
19
+ if (await require_cookieAccess.areCookiesAuthorized(require_cookieAccess.createDocumentCookieAccess, cookieOptions)) return {
20
+ type: require_sessionConstants.SessionPersistence.COOKIE,
21
+ cookieOptions,
22
+ cookieApi: 0
23
+ };
20
24
  }
21
- function initCookieStrategy(configuration, cookieOptions) {
22
- const cookieStore = {
23
- /**
24
- * Lock strategy allows mitigating issues due to concurrent access to cookie.
25
- * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.
26
- */
27
- isLockEnabled: (0, browserDetection_1.isChromium)(),
28
- persistSession: (sessionState) => storeSessionCookie(cookieOptions, configuration, sessionState, sessionConstants_1.SESSION_EXPIRATION_DELAY),
29
- retrieveSession: () => retrieveSessionCookie(cookieOptions, configuration),
30
- expireSession: (sessionState) => storeSessionCookie(cookieOptions, configuration, (0, sessionState_1.getExpiredSessionState)(sessionState, configuration), sessionConstants_1.SESSION_TIME_OUT_DELAY),
31
- };
32
- (0, oldCookiesMigration_1.tryOldCookiesMigration)(cookieStore);
33
- return cookieStore;
25
+ let pendingChain;
26
+ function initCookieStrategy(sessionStoreStrategyType, configuration) {
27
+ const { cookieOptions, cookieApi } = sessionStoreStrategyType;
28
+ const sessionObservable = new require_observable.Observable();
29
+ const trackAnonymousUser = !!configuration.trackAnonymousUser;
30
+ const opts = encodeCookieOptions(cookieOptions);
31
+ const cookieAccess = require_mockable.mockable(createCookieAccess)(cookieApi, cookieOptions);
32
+ let isFirstCall = true;
33
+ cookieAccess.observable.subscribe(() => {
34
+ cookieAccess.getAll().then((cookieValues) => {
35
+ sessionObservable.notify(findMatchingSessionState(cookieValues, opts));
36
+ }).catch((error) => (0, _kubesense_kubesense_js_core_monitor.monitorError)(/* @__PURE__ */ new Error(`Error while reading session cookies on change: ${error}`)));
37
+ });
38
+ function applyAndWrite(fn) {
39
+ return cookieAccess.getAllAndSet((cookieValues) => {
40
+ let currentState = findMatchingSessionState(cookieValues, opts);
41
+ if (isFirstCall && require_objectUtils.isEmptyObject(currentState)) currentState = findMatchingSessionState(require_cookie.getCookies(require_sessionStoreStrategy.LEGACY_SESSION_STORE_KEY), opts);
42
+ isFirstCall = false;
43
+ return {
44
+ value: buildSessionString(fn(currentState), cookieOptions),
45
+ expireDelay: trackAnonymousUser ? require_sessionConstants.SESSION_COOKIE_EXPIRATION_DELAY : require_sessionConstants.SESSION_TIME_OUT_DELAY
46
+ };
47
+ });
48
+ }
49
+ return {
50
+ async setSessionState(fn, _operation) {
51
+ if (typeof navigator !== "undefined" && navigator.locks) await navigator.locks.request(require_sessionStoreStrategy.SESSION_STORE_KEY, () => applyAndWrite(fn)).catch((error) => {
52
+ if (isContextGoingAwayError(error)) return;
53
+ throw error;
54
+ });
55
+ else {
56
+ pendingChain = (pendingChain ?? Promise.resolve()).then(() => applyAndWrite(fn));
57
+ await pendingChain;
58
+ }
59
+ },
60
+ sessionObservable
61
+ };
34
62
  }
35
- function storeSessionCookie(options, configuration, sessionState, defaultTimeout) {
36
- let sessionStateString = (0, sessionState_1.toSessionString)(sessionState);
37
- if (configuration.betaEncodeCookieOptions) {
38
- sessionStateString = (0, sessionState_1.toSessionString)({
39
- ...sessionState,
40
- // deleting a cookie is writing a new cookie with an empty value
41
- // we don't want to store the cookie options in this case otherwise the cookie will not be deleted
42
- ...(!(0, objectUtils_1.isEmptyObject)(sessionState) ? { c: encodeCookieOptions(options) } : {}),
43
- });
44
- }
45
- (0, cookie_1.setCookie)(sessionStoreStrategy_1.SESSION_STORE_KEY, sessionStateString, configuration.trackAnonymousUser ? sessionConstants_1.SESSION_COOKIE_EXPIRATION_DELAY : defaultTimeout, options);
63
+ function isContextGoingAwayError(error) {
64
+ if (!(error instanceof Error)) return false;
65
+ return error.name === "AbortError" || error.message.includes("no longer runnable");
46
66
  }
47
- /**
48
- * Retrieve the session state from the cookie that was set with the same cookie options
49
- * If there is no match, return the first cookie, because that's how `getCookie()` works
50
- */
51
- function retrieveSessionCookie(cookieOptions, configuration) {
52
- if (configuration.betaEncodeCookieOptions) {
53
- return retrieveSessionCookieFromEncodedCookie(cookieOptions);
54
- }
55
- const sessionString = (0, cookie_1.getCookie)(sessionStoreStrategy_1.SESSION_STORE_KEY);
56
- const sessionState = (0, sessionState_1.toSessionState)(sessionString);
57
- return sessionState;
67
+ function createCookieAccess(cookieApi, cookieOptions) {
68
+ return cookieApi === 1 ? require_cookieAccess.createCookieStoreAccess(require_sessionStoreStrategy.SESSION_STORE_KEY, cookieOptions) : require_cookieAccess.createDocumentCookieAccess(require_sessionStoreStrategy.SESSION_STORE_KEY, cookieOptions);
58
69
  }
59
- function buildCookieOptions(initConfiguration) {
60
- const cookieOptions = {};
61
- cookieOptions.secure =
62
- !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie;
63
- cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
64
- cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
65
- if (initConfiguration.trackSessionAcrossSubdomains) {
66
- const currentSite = (0, cookie_1.getCurrentSite)();
67
- if (!currentSite) {
68
- return;
69
- }
70
- cookieOptions.domain = currentSite;
71
- }
72
- return cookieOptions;
70
+ function findMatchingSessionState(items, opts) {
71
+ let sessionState;
72
+ for (const item of items.slice().reverse()) {
73
+ sessionState = require_sessionState.toSessionState(item);
74
+ if (sessionState.c === opts) break;
75
+ }
76
+ delete sessionState?.c;
77
+ return sessionState ?? {};
73
78
  }
74
- function encodeCookieOptions(cookieOptions) {
75
- const domainCount = cookieOptions.domain ? cookieOptions.domain.split('.').length - 1 : 0;
76
- /* eslint-disable no-bitwise */
77
- let byte = 0;
78
- byte |= SESSION_COOKIE_VERSION << 5; // Store version in upper 3 bits
79
- byte |= domainCount << 1; // Store domain count in next 4 bits
80
- byte |= cookieOptions.crossSite ? 1 : 0; // Store useCrossSiteScripting in next bit
81
- /* eslint-enable no-bitwise */
82
- return byte.toString(16); // Convert to hex string
79
+ function buildSessionString(sessionState, cookieOptions) {
80
+ return require_sessionState.toSessionString(require_objectUtils.isEmptyObject(sessionState) ? sessionState : {
81
+ ...sessionState,
82
+ c: encodeCookieOptions(cookieOptions)
83
+ });
83
84
  }
84
- /**
85
- * Retrieve the session state from the cookie that was set with the same cookie options.
86
- * If there is no match, fallback to the first cookie, (because that's how `getCookie()` works)
87
- * and this allows to keep the current session id when we release this feature.
88
- */
89
- function retrieveSessionCookieFromEncodedCookie(cookieOptions) {
90
- const cookies = (0, cookie_1.getCookies)(sessionStoreStrategy_1.SESSION_STORE_KEY);
91
- const opts = encodeCookieOptions(cookieOptions);
92
- let sessionState;
93
- // reverse the cookies so that if there is no match, the cookie returned is the first one
94
- for (const cookie of cookies.reverse()) {
95
- sessionState = (0, sessionState_1.toSessionState)(cookie);
96
- if (sessionState.c === opts) {
97
- break;
98
- }
99
- }
100
- // remove the cookie options from the session state as this is not part of the session state
101
- sessionState === null || sessionState === void 0 ? true : delete sessionState.c;
102
- return sessionState !== null && sessionState !== void 0 ? sessionState : {};
85
+ function encodeCookieOptions(cookieOptions) {
86
+ const domainCount = cookieOptions.domain ? cookieOptions.domain.split(".").length - 1 : 0;
87
+ let byte = 0;
88
+ byte |= 0;
89
+ byte |= domainCount << 1;
90
+ byte |= cookieOptions.crossSite ? 1 : 0;
91
+ return byte.toString(16);
103
92
  }
93
+ //#endregion
94
+ exports.createCookieAccess = createCookieAccess;
95
+ exports.initCookieStrategy = initCookieStrategy;
96
+ exports.selectCookieStrategy = selectCookieStrategy;
97
+
104
98
  //# sourceMappingURL=sessionInCookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionInCookie.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionInCookie.ts"],"names":[],"mappings":";;AAmBA,oDAKC;AAED,gDAsBC;AA+BD,sDAQC;AAED,gDAiBC;AA1GD,kEAAgE;AAChE,4EAAkE;AAElE,oDAAgH;AAEhH,gEAA+D;AAC/D,0DAK4B;AAE5B,kDAAyF;AAEzF,iEAA0D;AAE1D,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEhC,SAAgB,oBAAoB,CAAC,iBAAoC;IACvE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;IAC3D,OAAO,aAAa,IAAI,IAAA,6BAAoB,EAAC,aAAa,CAAC;QACzD,CAAC,CAAC,EAAE,IAAI,EAAE,qCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE;QACpD,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAgB,kBAAkB,CAAC,aAA4B,EAAE,aAA4B;IAC3F,MAAM,WAAW,GAAG;QAClB;;;WAGG;QACH,aAAa,EAAE,IAAA,6BAAU,GAAE;QAC3B,cAAc,EAAE,CAAC,YAA0B,EAAE,EAAE,CAC7C,kBAAkB,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,2CAAwB,CAAC;QAC1F,eAAe,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,aAAa,CAAC;QAC1E,aAAa,EAAE,CAAC,YAA0B,EAAE,EAAE,CAC5C,kBAAkB,CAChB,aAAa,EACb,aAAa,EACb,IAAA,qCAAsB,EAAC,YAAY,EAAE,aAAa,CAAC,EACnD,yCAAsB,CACvB;KACJ,CAAA;IAED,IAAA,4CAAsB,EAAC,WAAW,CAAC,CAAA;IAEnC,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB,EACtB,aAA4B,EAC5B,YAA0B,EAC1B,cAAsB;IAEtB,IAAI,kBAAkB,GAAG,IAAA,8BAAe,EAAC,YAAY,CAAC,CAAA;IAEtD,IAAI,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAC1C,kBAAkB,GAAG,IAAA,8BAAe,EAAC;YACnC,GAAG,YAAY;YACf,gEAAgE;YAChE,kGAAkG;YAClG,GAAG,CAAC,CAAC,IAAA,2BAAa,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAA;IACJ,CAAC;IAED,IAAA,kBAAS,EACP,wCAAiB,EACjB,kBAAkB,EAClB,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,kDAA+B,CAAC,CAAC,CAAC,cAAc,EACnF,OAAO,CACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,aAA4B,EAAE,aAA4B;IAC9F,IAAI,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAC1C,OAAO,sCAAsC,CAAC,aAAa,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,kBAAS,EAAC,wCAAiB,CAAC,CAAA;IAClD,MAAM,YAAY,GAAG,IAAA,6BAAc,EAAC,aAAa,CAAC,CAAA;IAClD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAAC,iBAAoC;IACrE,MAAM,aAAa,GAAkB,EAAE,CAAA;IAEvC,aAAa,CAAC,MAAM;QAClB,CAAC,CAAC,iBAAiB,CAAC,sBAAsB,IAAI,CAAC,CAAC,iBAAiB,CAAC,oCAAoC,CAAA;IACxG,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAC,oCAAoC,CAAA;IAClF,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,iBAAiB,CAAC,oCAAoC,CAAA;IAEpF,IAAI,iBAAiB,CAAC,4BAA4B,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAA,uBAAc,GAAE,CAAA;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QACD,aAAa,CAAC,MAAM,GAAG,WAAW,CAAA;IACpC,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,SAAS,mBAAmB,CAAC,aAA4B;IACvD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEzF,+BAA+B;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,IAAI,sBAAsB,IAAI,CAAC,CAAA,CAAC,gCAAgC;IACpE,IAAI,IAAI,WAAW,IAAI,CAAC,CAAA,CAAC,oCAAoC;IAC7D,IAAI,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,0CAA0C;IAClF,8BAA8B;IAE9B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAC,wBAAwB;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,sCAAsC,CAAC,aAA4B;IAC1E,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,wCAAiB,CAAC,CAAA;IAC7C,MAAM,IAAI,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAE/C,IAAI,YAAsC,CAAA;IAE1C,yFAAyF;IACzF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,YAAY,GAAG,IAAA,6BAAc,EAAC,MAAM,CAAC,CAAA;QAErC,IAAI,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAK;QACP,CAAC;IACH,CAAC;IAED,4FAA4F;IACrF,YAAY,aAAZ,YAAY,4BAAZ,YAAY,CAAE,CAAC,CAAA;IAEtB,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"sessionInCookie.js","names":["buildCookieOptions","isCookieStoreSupported","areCookiesAuthorized","createCookieStoreAccess","SessionPersistence","createDocumentCookieAccess","Observable","mockable","monitorError","isEmptyObject","getCookies","LEGACY_SESSION_STORE_KEY","SESSION_COOKIE_EXPIRATION_DELAY","SESSION_TIME_OUT_DELAY","SESSION_STORE_KEY","toSessionState","toSessionString"],"sources":["../../../../src/domain/session/storeStrategies/sessionInCookie.ts"],"sourcesContent":["import { monitorError } from '@kubesense/kubesense-js-core/monitor'\nimport { isEmptyObject } from '../../../tools/utils/objectUtils'\nimport type { CookieOptions } from '../../../browser/cookie'\nimport { getCookies } from '../../../browser/cookie'\nimport type { Configuration } from '../../configuration'\nimport { buildCookieOptions } from '../../configuration'\nimport { SESSION_COOKIE_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport { toSessionString, toSessionState } from '../sessionState'\nimport { Observable } from '../../../tools/observable'\nimport { mockable } from '../../../tools/mockable'\nimport type { CookieAccess } from '../../../browser/cookieAccess'\nimport {\n areCookiesAuthorized,\n createCookieStoreAccess,\n createDocumentCookieAccess,\n isCookieStoreSupported,\n} from '../../../browser/cookieAccess'\nimport { CookieApi, LEGACY_SESSION_STORE_KEY, SESSION_STORE_KEY } from './sessionStoreStrategy'\nimport type {\n SessionStoreStrategy,\n SessionStoreStrategyType,\n CookieSessionStoreStrategyType,\n SessionStateOperation,\n} from './sessionStoreStrategy'\n\nconst SESSION_COOKIE_VERSION = 0\n\nexport async function selectCookieStrategy(\n configuration: Configuration\n): Promise<SessionStoreStrategyType | undefined> {\n const cookieOptions = buildCookieOptions(configuration)\n if (!cookieOptions) {\n return undefined\n }\n\n if (isCookieStoreSupported() && (await areCookiesAuthorized(createCookieStoreAccess, cookieOptions))) {\n return { type: SessionPersistence.COOKIE, cookieOptions, cookieApi: CookieApi.COOKIE_STORE }\n }\n\n if (await areCookiesAuthorized(createDocumentCookieAccess, cookieOptions)) {\n return { type: SessionPersistence.COOKIE, cookieOptions, cookieApi: CookieApi.DOCUMENT_COOKIE }\n }\n\n return undefined\n}\n\n// Promise chain serializes calls when Web Locks are unavailable\nlet pendingChain: Promise<void> | undefined\n\nexport function initCookieStrategy(\n sessionStoreStrategyType: CookieSessionStoreStrategyType,\n configuration: Configuration\n): SessionStoreStrategy {\n const { cookieOptions, cookieApi } = sessionStoreStrategyType\n const sessionObservable = new Observable<SessionState>()\n const trackAnonymousUser = !!configuration.trackAnonymousUser\n const opts = encodeCookieOptions(cookieOptions)\n const cookieAccess = mockable(createCookieAccess)(cookieApi, cookieOptions)\n let isFirstCall = true\n\n cookieAccess.observable.subscribe(() => {\n cookieAccess\n .getAll()\n .then((cookieValues) => {\n sessionObservable.notify(findMatchingSessionState(cookieValues, opts))\n })\n .catch((error) => monitorError(new Error(`Error while reading session cookies on change: ${error}`)))\n })\n\n function applyAndWrite(fn: (state: SessionState) => SessionState) {\n return cookieAccess.getAllAndSet((cookieValues) => {\n let currentState = findMatchingSessionState(cookieValues, opts)\n\n if (isFirstCall && isEmptyObject(currentState)) {\n currentState = findMatchingSessionState(getCookies(LEGACY_SESSION_STORE_KEY), opts)\n }\n isFirstCall = false\n\n const newState = fn(currentState)\n const sessionString = buildSessionString(newState, cookieOptions)\n const expireDelay = trackAnonymousUser ? SESSION_COOKIE_EXPIRATION_DELAY : SESSION_TIME_OUT_DELAY\n\n return { value: sessionString, expireDelay }\n })\n }\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n if (typeof navigator !== 'undefined' && navigator.locks) {\n await navigator.locks\n .request(SESSION_STORE_KEY, () => applyAndWrite(fn))\n .catch((error: unknown) => {\n if (isContextGoingAwayError(error)) {\n return\n }\n throw error\n })\n } else {\n pendingChain = (pendingChain ?? Promise.resolve()).then(() => applyAndWrite(fn))\n await pendingChain\n }\n },\n sessionObservable,\n }\n}\n\n// Thrown when the browsing context tears down mid-lock-request.\n// - \"AbortError: Promise was rejected because the browsing context is going away\" (Webkit)\n// - \"Error: Failed to execute 'request' on 'LockManager': The provided callback is no longer runnable.\" (Chromium)\nfunction isContextGoingAwayError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false\n }\n return error.name === 'AbortError' || error.message.includes('no longer runnable')\n}\n\nexport function createCookieAccess(cookieApi: CookieApi, cookieOptions: CookieOptions): CookieAccess {\n return cookieApi === CookieApi.COOKIE_STORE\n ? createCookieStoreAccess(SESSION_STORE_KEY, cookieOptions)\n : createDocumentCookieAccess(SESSION_STORE_KEY, cookieOptions)\n}\n\nfunction findMatchingSessionState(items: string[], opts: string): SessionState {\n let sessionState: SessionState | undefined\n\n // reverse the cookies so that if there is no match, the cookie returned is the first one\n for (const item of items.slice().reverse()) {\n sessionState = toSessionState(item)\n if (sessionState.c === opts) {\n break\n }\n }\n\n // remove the cookie options from the session state as this is not part of the session state\n delete sessionState?.c\n\n return sessionState ?? {}\n}\n\nfunction buildSessionString(sessionState: SessionState, cookieOptions: CookieOptions): string {\n return toSessionString(\n isEmptyObject(sessionState) ? sessionState : { ...sessionState, c: encodeCookieOptions(cookieOptions) }\n )\n}\n\nfunction encodeCookieOptions(cookieOptions: CookieOptions): string {\n const domainCount = cookieOptions.domain ? cookieOptions.domain.split('.').length - 1 : 0\n\n /* eslint-disable no-bitwise */\n let byte = 0\n byte |= SESSION_COOKIE_VERSION << 5 // Store version in upper 3 bits\n byte |= domainCount << 1 // Store domain count in next 4 bits\n byte |= cookieOptions.crossSite ? 1 : 0 // Store useCrossSiteScripting in next bit\n /* eslint-enable no-bitwise */\n\n return byte.toString(16) // Convert to hex string\n}\n"],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import type { Configuration } from '../../configuration';
2
- import type { SessionState } from '../sessionState';
3
1
  import type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy';
4
2
  export declare function selectLocalStorageStrategy(): SessionStoreStrategyType | undefined;
5
- export declare function initLocalStorageStrategy(configuration: Configuration): SessionStoreStrategy;
6
- export declare function retrieveSessionFromLocalStorage(): SessionState;
3
+ export declare function initLocalStorageStrategy(): SessionStoreStrategy;
@@ -1,42 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectLocalStorageStrategy = selectLocalStorageStrategy;
4
- exports.initLocalStorageStrategy = initLocalStorageStrategy;
5
- exports.retrieveSessionFromLocalStorage = retrieveSessionFromLocalStorage;
6
- const stringUtils_1 = require("../../../tools/utils/stringUtils");
7
- const sessionConstants_1 = require("../sessionConstants");
8
- const sessionState_1 = require("../sessionState");
9
- const sessionStoreStrategy_1 = require("./sessionStoreStrategy");
10
- const LOCAL_STORAGE_TEST_KEY = '_kubesense_test_';
1
+ const require_observable = require("../../../tools/observable.js");
2
+ const require_stringUtils = require("../../../tools/utils/stringUtils.js");
3
+ const require_addEventListener = require("../../../browser/addEventListener.js");
4
+ const require_sessionConstants = require("../sessionConstants.js");
5
+ const require_sessionState = require("../sessionState.js");
6
+ const require_sessionStoreStrategy = require("./sessionStoreStrategy.js");
7
+ //#region src/domain/session/storeStrategies/sessionInLocalStorage.ts
8
+ const LOCAL_STORAGE_TEST_KEY = "_kubesense_test_";
11
9
  function selectLocalStorageStrategy() {
12
- try {
13
- const id = (0, stringUtils_1.generateUUID)();
14
- const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;
15
- localStorage.setItem(testKey, id);
16
- const retrievedId = localStorage.getItem(testKey);
17
- localStorage.removeItem(testKey);
18
- return id === retrievedId ? { type: sessionConstants_1.SessionPersistence.LOCAL_STORAGE } : undefined;
19
- }
20
- catch (_a) {
21
- return undefined;
22
- }
23
- }
24
- function initLocalStorageStrategy(configuration) {
25
- return {
26
- isLockEnabled: false,
27
- persistSession: persistInLocalStorage,
28
- retrieveSession: retrieveSessionFromLocalStorage,
29
- expireSession: (sessionState) => expireSessionFromLocalStorage(sessionState, configuration),
30
- };
31
- }
32
- function persistInLocalStorage(sessionState) {
33
- localStorage.setItem(sessionStoreStrategy_1.SESSION_STORE_KEY, (0, sessionState_1.toSessionString)(sessionState));
10
+ try {
11
+ const id = require_stringUtils.generateUUID();
12
+ const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;
13
+ localStorage.setItem(testKey, id);
14
+ const retrievedId = localStorage.getItem(testKey);
15
+ localStorage.removeItem(testKey);
16
+ return id === retrievedId ? { type: require_sessionConstants.SessionPersistence.LOCAL_STORAGE } : void 0;
17
+ } catch {
18
+ return;
19
+ }
34
20
  }
35
- function retrieveSessionFromLocalStorage() {
36
- const sessionString = localStorage.getItem(sessionStoreStrategy_1.SESSION_STORE_KEY);
37
- return (0, sessionState_1.toSessionState)(sessionString);
38
- }
39
- function expireSessionFromLocalStorage(previousSessionState, configuration) {
40
- persistInLocalStorage((0, sessionState_1.getExpiredSessionState)(previousSessionState, configuration));
21
+ function initLocalStorageStrategy() {
22
+ const sessionObservable = new require_observable.Observable((observable) => require_addEventListener.addEventListener(window, "storage", (event) => {
23
+ if (event.key === "_kubesense_s_v2" && event.storageArea === localStorage) observable.notify(require_sessionState.toSessionState(event.newValue));
24
+ }).stop);
25
+ let isFirstCall = true;
26
+ return {
27
+ async setSessionState(fn, _operation) {
28
+ let currentState = require_sessionState.toSessionState(localStorage.getItem(require_sessionStoreStrategy.SESSION_STORE_KEY));
29
+ if (isFirstCall && require_sessionState.isSessionInNotStartedState(currentState)) currentState = require_sessionState.toSessionState(localStorage.getItem(require_sessionStoreStrategy.LEGACY_SESSION_STORE_KEY));
30
+ isFirstCall = false;
31
+ const newState = fn(currentState);
32
+ localStorage.setItem(require_sessionStoreStrategy.SESSION_STORE_KEY, require_sessionState.toSessionString(newState));
33
+ await Promise.resolve();
34
+ sessionObservable.notify(newState);
35
+ },
36
+ sessionObservable
37
+ };
41
38
  }
39
+ //#endregion
40
+ exports.initLocalStorageStrategy = initLocalStorageStrategy;
41
+ exports.selectLocalStorageStrategy = selectLocalStorageStrategy;
42
+
42
43
  //# sourceMappingURL=sessionInLocalStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionInLocalStorage.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionInLocalStorage.ts"],"names":[],"mappings":";;AAUA,gEAWC;AAED,4DAOC;AAMD,0EAGC;AAvCD,kEAA+D;AAE/D,0DAAwD;AAExD,kDAAyF;AAEzF,iEAA0D;AAE1D,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAEjD,SAAgB,0BAA0B;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAA,0BAAY,GAAE,CAAA;QACzB,MAAM,OAAO,GAAG,GAAG,sBAAsB,GAAG,EAAE,EAAE,CAAA;QAChD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACjD,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAChC,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qCAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,aAA4B;IACnE,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,qBAAqB;QACrC,eAAe,EAAE,+BAA+B;QAChD,aAAa,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,6BAA6B,CAAC,YAAY,EAAE,aAAa,CAAC;KAC1G,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,YAA0B;IACvD,YAAY,CAAC,OAAO,CAAC,wCAAiB,EAAE,IAAA,8BAAe,EAAC,YAAY,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAgB,+BAA+B;IAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,wCAAiB,CAAC,CAAA;IAC7D,OAAO,IAAA,6BAAc,EAAC,aAAa,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,6BAA6B,CAAC,oBAAkC,EAAE,aAA4B;IACrG,qBAAqB,CAAC,IAAA,qCAAsB,EAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAA;AACpF,CAAC"}
1
+ {"version":3,"file":"sessionInLocalStorage.js","names":["generateUUID","SessionPersistence","Observable","addEventListener","toSessionState","SESSION_STORE_KEY","isSessionInNotStartedState","LEGACY_SESSION_STORE_KEY","toSessionString"],"sources":["../../../../src/domain/session/storeStrategies/sessionInLocalStorage.ts"],"sourcesContent":["import { generateUUID } from '../../../tools/utils/stringUtils'\nimport { Observable } from '../../../tools/observable'\nimport { addEventListener } from '../../../browser/addEventListener'\nimport { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport { isSessionInNotStartedState, toSessionString, toSessionState } from '../sessionState'\nimport type { SessionStateOperation, SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\nimport { SESSION_STORE_KEY, LEGACY_SESSION_STORE_KEY } from './sessionStoreStrategy'\n\nconst LOCAL_STORAGE_TEST_KEY = '_kubesense_test_'\n\nexport function selectLocalStorageStrategy(): SessionStoreStrategyType | undefined {\n try {\n const id = generateUUID()\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`\n localStorage.setItem(testKey, id)\n const retrievedId = localStorage.getItem(testKey)\n localStorage.removeItem(testKey)\n return id === retrievedId ? { type: SessionPersistence.LOCAL_STORAGE } : undefined\n } catch {\n return undefined\n }\n}\n\nexport function initLocalStorageStrategy(): SessionStoreStrategy {\n const sessionObservable = new Observable<SessionState>(\n (observable) =>\n addEventListener(window, 'storage', (event) => {\n if (event.key === SESSION_STORE_KEY && event.storageArea === localStorage) {\n observable.notify(toSessionState(event.newValue))\n }\n }).stop\n )\n\n let isFirstCall = true\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n let currentState = toSessionState(localStorage.getItem(SESSION_STORE_KEY))\n\n if (isFirstCall && isSessionInNotStartedState(currentState)) {\n currentState = toSessionState(localStorage.getItem(LEGACY_SESSION_STORE_KEY))\n }\n isFirstCall = false\n\n const newState = fn(currentState)\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(newState))\n await Promise.resolve()\n sessionObservable.notify(newState)\n },\n sessionObservable,\n }\n}\n"],"mappings":";;;;;;;AASA,MAAM,yBAAyB;AAE/B,SAAgB,6BAAmE;CACjF,IAAI;EACF,MAAM,KAAKA,oBAAAA,aAAa;EACxB,MAAM,UAAU,GAAG,yBAAyB;EAC5C,aAAa,QAAQ,SAAS,EAAE;EAChC,MAAM,cAAc,aAAa,QAAQ,OAAO;EAChD,aAAa,WAAW,OAAO;EAC/B,OAAO,OAAO,cAAc,EAAE,MAAMC,yBAAAA,mBAAmB,cAAc,IAAI,KAAA;CAC3E,QAAQ;EACN;CACF;AACF;AAEA,SAAgB,2BAAiD;CAC/D,MAAM,oBAAoB,IAAIC,mBAAAA,YAC3B,eACCC,yBAAAA,iBAAiB,QAAQ,YAAY,UAAU;EAC7C,IAAI,MAAM,QAAA,qBAA6B,MAAM,gBAAgB,cAC3D,WAAW,OAAOC,qBAAAA,eAAe,MAAM,QAAQ,CAAC;CAEpD,CAAC,CAAC,CAAC,IACP;CAEA,IAAI,cAAc;CAElB,OAAO;EACL,MAAM,gBACJ,IACA,YACe;GACf,IAAI,eAAeA,qBAAAA,eAAe,aAAa,QAAQC,6BAAAA,iBAAiB,CAAC;GAEzE,IAAI,eAAeC,qBAAAA,2BAA2B,YAAY,GACxD,eAAeF,qBAAAA,eAAe,aAAa,QAAQG,6BAAAA,wBAAwB,CAAC;GAE9E,cAAc;GAEd,MAAM,WAAW,GAAG,YAAY;GAChC,aAAa,QAAQF,6BAAAA,mBAAmBG,qBAAAA,gBAAgB,QAAQ,CAAC;GACjE,MAAM,QAAQ,QAAQ;GACtB,kBAAkB,OAAO,QAAQ;EACnC;EACA;CACF;AACF"}
@@ -0,0 +1,12 @@
1
+ import type { SessionState } from '../sessionState';
2
+ import type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy';
3
+ export declare const MEMORY_SESSION_STORE_KEY = "_KUBESENSE_SESSION";
4
+ export interface MemorySession {
5
+ state?: SessionState;
6
+ onChange?: (state: SessionState) => void;
7
+ }
8
+ export interface GlobalObjectWithSession {
9
+ [MEMORY_SESSION_STORE_KEY]?: MemorySession;
10
+ }
11
+ export declare function selectMemorySessionStoreStrategy(): SessionStoreStrategyType;
12
+ export declare function initMemorySessionStoreStrategy(): SessionStoreStrategy;
@@ -0,0 +1,36 @@
1
+ const require_observable = require("../../../tools/observable.js");
2
+ const require_objectUtils = require("../../../tools/utils/objectUtils.js");
3
+ const require_sessionConstants = require("../sessionConstants.js");
4
+ let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
5
+ //#region src/domain/session/storeStrategies/sessionInMemory.ts
6
+ const MEMORY_SESSION_STORE_KEY = "_KUBESENSE_SESSION";
7
+ function selectMemorySessionStoreStrategy() {
8
+ return { type: require_sessionConstants.SessionPersistence.MEMORY };
9
+ }
10
+ function initMemorySessionStoreStrategy() {
11
+ const globalObjectWithSession = _kubesense_kubesense_js_core_util.globalObject;
12
+ if (!globalObjectWithSession["_KUBESENSE_SESSION"]) globalObjectWithSession[MEMORY_SESSION_STORE_KEY] = {};
13
+ const memorySession = globalObjectWithSession[MEMORY_SESSION_STORE_KEY];
14
+ const sessionObservable = new require_observable.Observable();
15
+ const previousOnChange = memorySession.onChange;
16
+ memorySession.onChange = (state) => {
17
+ previousOnChange?.(state);
18
+ sessionObservable.notify(state);
19
+ };
20
+ return {
21
+ async setSessionState(fn, _operation) {
22
+ const currentState = memorySession.state ?? {};
23
+ const newState = require_objectUtils.shallowClone(fn(currentState));
24
+ memorySession.state = newState;
25
+ await Promise.resolve();
26
+ memorySession.onChange?.(newState);
27
+ },
28
+ sessionObservable
29
+ };
30
+ }
31
+ //#endregion
32
+ exports.MEMORY_SESSION_STORE_KEY = MEMORY_SESSION_STORE_KEY;
33
+ exports.initMemorySessionStoreStrategy = initMemorySessionStoreStrategy;
34
+ exports.selectMemorySessionStoreStrategy = selectMemorySessionStoreStrategy;
35
+
36
+ //# sourceMappingURL=sessionInMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionInMemory.js","names":["SessionPersistence","globalObject","Observable","shallowClone"],"sources":["../../../../src/domain/session/storeStrategies/sessionInMemory.ts"],"sourcesContent":["import { globalObject } from '@kubesense/kubesense-js-core/util'\nimport { Observable } from '../../../tools/observable'\nimport { shallowClone } from '../../../tools/utils/objectUtils'\nimport { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport type { SessionStateOperation, SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\n\nexport const MEMORY_SESSION_STORE_KEY = '_KUBESENSE_SESSION'\n\nexport interface MemorySession {\n state?: SessionState\n onChange?: (state: SessionState) => void\n}\n\nexport interface GlobalObjectWithSession {\n [MEMORY_SESSION_STORE_KEY]?: MemorySession\n}\n\nexport function selectMemorySessionStoreStrategy(): SessionStoreStrategyType {\n return { type: SessionPersistence.MEMORY }\n}\n\nexport function initMemorySessionStoreStrategy(): SessionStoreStrategy {\n const globalObjectWithSession = globalObject as GlobalObjectWithSession\n\n // Share the observable across SDK instances (RUM + Logs)\n if (!globalObjectWithSession[MEMORY_SESSION_STORE_KEY]) {\n globalObjectWithSession[MEMORY_SESSION_STORE_KEY] = {}\n }\n const memorySession = globalObjectWithSession[MEMORY_SESSION_STORE_KEY]\n\n const sessionObservable = new Observable<SessionState>()\n\n // Wire the local observable to the shared onChange callback so that\n // multiple SDK instances (RUM + Logs) can observe each other's changes.\n const previousOnChange = memorySession.onChange\n memorySession.onChange = (state: SessionState) => {\n previousOnChange?.(state)\n sessionObservable.notify(state)\n }\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n const currentState = memorySession.state ?? {}\n const newState = shallowClone(fn(currentState))\n memorySession.state = newState\n await Promise.resolve()\n memorySession.onChange?.(newState)\n },\n sessionObservable,\n }\n}\n"],"mappings":";;;;;AAOA,MAAa,2BAA2B;AAWxC,SAAgB,mCAA6D;CAC3E,OAAO,EAAE,MAAMA,yBAAAA,mBAAmB,OAAO;AAC3C;AAEA,SAAgB,iCAAuD;CACrE,MAAM,0BAA0BC,kCAAAA;CAGhC,IAAI,CAAC,wBAAA,uBACH,wBAAwB,4BAA4B,CAAC;CAEvD,MAAM,gBAAgB,wBAAwB;CAE9C,MAAM,oBAAoB,IAAIC,mBAAAA,WAAyB;CAIvD,MAAM,mBAAmB,cAAc;CACvC,cAAc,YAAY,UAAwB;EAChD,mBAAmB,KAAK;EACxB,kBAAkB,OAAO,KAAK;CAChC;CAEA,OAAO;EACL,MAAM,gBACJ,IACA,YACe;GACf,MAAM,eAAe,cAAc,SAAS,CAAC;GAC7C,MAAM,WAAWC,oBAAAA,aAAa,GAAG,YAAY,CAAC;GAC9C,cAAc,QAAQ;GACtB,MAAM,QAAQ,QAAQ;GACtB,cAAc,WAAW,QAAQ;EACnC;EACA;CACF;AACF"}
@@ -1,16 +1,25 @@
1
1
  import type { CookieOptions } from '../../../browser/cookie';
2
2
  import type { SessionPersistence } from '../sessionConstants';
3
3
  import type { SessionState } from '../sessionState';
4
- export declare const SESSION_STORE_KEY = "_kubesense_s";
5
- export type SessionStoreStrategyType = {
4
+ import type { Observable } from '../../../tools/observable';
5
+ export declare const SESSION_STORE_KEY = "_kubesense_s_v2";
6
+ export declare const LEGACY_SESSION_STORE_KEY = "_kubesense_s";
7
+ export declare const enum CookieApi {
8
+ DOCUMENT_COOKIE = 0,
9
+ COOKIE_STORE = 1
10
+ }
11
+ export interface CookieSessionStoreStrategyType {
6
12
  type: typeof SessionPersistence.COOKIE;
7
13
  cookieOptions: CookieOptions;
8
- } | {
14
+ cookieApi: CookieApi;
15
+ }
16
+ export type SessionStoreStrategyType = CookieSessionStoreStrategyType | {
9
17
  type: typeof SessionPersistence.LOCAL_STORAGE;
18
+ } | {
19
+ type: typeof SessionPersistence.MEMORY;
10
20
  };
21
+ export type SessionStateOperation = 'initialize' | 'expandOrRenewOnActivity' | 'expandOrRenewOnConsent' | 'expandOnVisibility' | 'initializeOnResume' | 'expireOnTimeout' | 'expire' | 'updateState';
11
22
  export interface SessionStoreStrategy {
12
- isLockEnabled: boolean;
13
- persistSession: (session: SessionState) => void;
14
- retrieveSession: () => SessionState;
15
- expireSession: (previousSessionState: SessionState) => void;
23
+ setSessionState(fn: (sessionState: SessionState) => SessionState, operation: SessionStateOperation): Promise<void>;
24
+ sessionObservable: Observable<SessionState>;
16
25
  }
@@ -1,5 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SESSION_STORE_KEY = void 0;
4
- exports.SESSION_STORE_KEY = '_kubesense_s';
1
+ //#region src/domain/session/storeStrategies/sessionStoreStrategy.ts
2
+ const SESSION_STORE_KEY = "_kubesense_s_v2";
3
+ const LEGACY_SESSION_STORE_KEY = "_kubesense_s";
4
+ //#endregion
5
+ exports.LEGACY_SESSION_STORE_KEY = LEGACY_SESSION_STORE_KEY;
6
+ exports.SESSION_STORE_KEY = SESSION_STORE_KEY;
7
+
5
8
  //# sourceMappingURL=sessionStoreStrategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStoreStrategy.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionStoreStrategy.ts"],"names":[],"mappings":";;;AAIa,QAAA,iBAAiB,GAAG,cAAc,CAAA"}
1
+ {"version":3,"file":"sessionStoreStrategy.js","names":[],"sources":["../../../../src/domain/session/storeStrategies/sessionStoreStrategy.ts"],"sourcesContent":["import type { CookieOptions } from '../../../browser/cookie'\nimport type { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport type { Observable } from '../../../tools/observable'\n\nexport const SESSION_STORE_KEY = '_kubesense_s_v2'\nexport const LEGACY_SESSION_STORE_KEY = '_kubesense_s'\n\nexport const enum CookieApi {\n DOCUMENT_COOKIE,\n COOKIE_STORE,\n}\n\nexport interface CookieSessionStoreStrategyType {\n type: typeof SessionPersistence.COOKIE\n cookieOptions: CookieOptions\n cookieApi: CookieApi\n}\n\nexport type SessionStoreStrategyType =\n | CookieSessionStoreStrategyType\n | { type: typeof SessionPersistence.LOCAL_STORAGE }\n | { type: typeof SessionPersistence.MEMORY }\n\nexport type SessionStateOperation =\n | 'initialize'\n | 'expandOrRenewOnActivity'\n | 'expandOrRenewOnConsent'\n | 'expandOnVisibility'\n | 'initializeOnResume'\n | 'expireOnTimeout'\n | 'expire'\n | 'updateState'\n\nexport interface SessionStoreStrategy {\n setSessionState(fn: (sessionState: SessionState) => SessionState, operation: SessionStateOperation): Promise<void>\n sessionObservable: Observable<SessionState>\n}\n"],"mappings":";AAKA,MAAa,oBAAoB;AACjC,MAAa,2BAA2B"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Entry of the `KUBESENSE_SOURCE_CODE_CONTEXT` map injected at build time. Depending on the build plugin
3
+ * configuration, an entry can hold:
4
+ * - service/version only (source code attribution),
5
+ * - a debug ID only (sourcemap resolution),
6
+ * - or both.
7
+ */
8
+ export interface SourceCodeContextEntry {
9
+ service?: string;
10
+ version?: string;
11
+ ddDebugId?: string;
12
+ }
13
+ export interface BrowserWindow {
14
+ KUBESENSE_SOURCE_CODE_CONTEXT?: Record<string, SourceCodeContextEntry>;
15
+ }
16
+ export interface DebugIdEntry {
17
+ url: string;
18
+ id: string;
19
+ }
20
+ export declare function buildDebugIdByUrl(urls: string[]): DebugIdEntry[] | undefined;
21
+ export declare function getSourceCodeContext(url: string): SourceCodeContextEntry | undefined;
22
+ export declare function resetSourceCodeContext(): void;
@@ -0,0 +1,56 @@
1
+ const require_computeStackTrace = require("../tools/stackTrace/computeStackTrace.js");
2
+ const require_telemetry = require("./telemetry/telemetry.js");
3
+ let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
4
+ //#region src/domain/sourceCodeContext.ts
5
+ const contextByUrl = /* @__PURE__ */ new Map();
6
+ const processedStacks = /* @__PURE__ */ new Set();
7
+ let hasFiredTelemetry = false;
8
+ function syncSourceCodeContext() {
9
+ const sourceCodeContext = _kubesense_kubesense_js_core_util.globalObject.window?.KUBESENSE_SOURCE_CODE_CONTEXT;
10
+ if (!sourceCodeContext) return;
11
+ let useDebugId = false;
12
+ let useService = false;
13
+ let useVersion = false;
14
+ for (const [stack, entry] of Object.entries(sourceCodeContext)) {
15
+ useDebugId = useDebugId || entry.ddDebugId !== void 0;
16
+ useService = useService || entry.service !== void 0;
17
+ useVersion = useVersion || entry.version !== void 0;
18
+ if (processedStacks.has(stack)) continue;
19
+ processedStacks.add(stack);
20
+ const url = require_computeStackTrace.computeStackTrace({ stack }).stack[0]?.url;
21
+ if (url && !contextByUrl.has(url)) contextByUrl.set(url, entry);
22
+ }
23
+ if (!hasFiredTelemetry) {
24
+ hasFiredTelemetry = true;
25
+ require_telemetry.addTelemetryUsage({
26
+ feature: "source-code-context",
27
+ use_debug_id: useDebugId,
28
+ use_service: useService,
29
+ use_version: useVersion
30
+ });
31
+ }
32
+ }
33
+ function buildDebugIdByUrl(urls) {
34
+ syncSourceCodeContext();
35
+ const seenUrls = /* @__PURE__ */ new Set();
36
+ const debugIds = [];
37
+ for (const url of urls) {
38
+ if (seenUrls.has(url)) continue;
39
+ seenUrls.add(url);
40
+ const debugId = contextByUrl.get(url)?.ddDebugId;
41
+ if (debugId !== void 0) debugIds.push({
42
+ url,
43
+ id: debugId
44
+ });
45
+ }
46
+ return debugIds.length ? debugIds : void 0;
47
+ }
48
+ function getSourceCodeContext(url) {
49
+ syncSourceCodeContext();
50
+ return contextByUrl.get(url);
51
+ }
52
+ //#endregion
53
+ exports.buildDebugIdByUrl = buildDebugIdByUrl;
54
+ exports.getSourceCodeContext = getSourceCodeContext;
55
+
56
+ //# sourceMappingURL=sourceCodeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceCodeContext.js","names":["globalObject","computeStackTrace"],"sources":["../../src/domain/sourceCodeContext.ts"],"sourcesContent":["import { globalObject } from '@kubesense/kubesense-js-core/util'\nimport { computeStackTrace } from '../tools/stackTrace/computeStackTrace'\nimport { addTelemetryUsage } from './telemetry'\n\n/**\n * Entry of the `KUBESENSE_SOURCE_CODE_CONTEXT` map injected at build time. Depending on the build plugin\n * configuration, an entry can hold:\n * - service/version only (source code attribution),\n * - a debug ID only (sourcemap resolution),\n * - or both.\n */\nexport interface SourceCodeContextEntry {\n service?: string\n version?: string\n ddDebugId?: string\n}\n\nexport interface BrowserWindow {\n KUBESENSE_SOURCE_CODE_CONTEXT?: Record<string, SourceCodeContextEntry>\n}\n\nconst contextByUrl = new Map<string, SourceCodeContextEntry>()\nconst processedStacks = new Set<string>()\nlet hasFiredTelemetry = false\n\nfunction syncSourceCodeContext() {\n // globalObject.window is undefined in service worker environments\n const sourceCodeContext = (globalObject.window as BrowserWindow | undefined)?.KUBESENSE_SOURCE_CODE_CONTEXT\n if (!sourceCodeContext) {\n return\n }\n\n let useDebugId = false\n let useService = false\n let useVersion = false\n\n for (const [stack, entry] of Object.entries(sourceCodeContext)) {\n useDebugId = useDebugId || entry.ddDebugId !== undefined\n useService = useService || entry.service !== undefined\n useVersion = useVersion || entry.version !== undefined\n\n if (processedStacks.has(stack)) {\n continue\n }\n\n processedStacks.add(stack)\n\n const url = computeStackTrace({ stack }).stack[0]?.url\n if (url && !contextByUrl.has(url)) {\n contextByUrl.set(url, entry)\n }\n }\n\n if (!hasFiredTelemetry) {\n hasFiredTelemetry = true\n addTelemetryUsage({\n feature: 'source-code-context',\n use_debug_id: useDebugId,\n use_service: useService,\n use_version: useVersion,\n })\n }\n}\n\nexport interface DebugIdEntry {\n url: string\n id: string\n}\n\nexport function buildDebugIdByUrl(urls: string[]): DebugIdEntry[] | undefined {\n syncSourceCodeContext()\n\n const seenUrls = new Set<string>()\n const debugIds: DebugIdEntry[] = []\n\n for (const url of urls) {\n if (seenUrls.has(url)) {\n continue\n }\n seenUrls.add(url)\n\n const debugId = contextByUrl.get(url)?.ddDebugId\n if (debugId !== undefined) {\n debugIds.push({ url, id: debugId })\n }\n }\n\n return debugIds.length ? debugIds : undefined\n}\n\nexport function getSourceCodeContext(url: string): SourceCodeContextEntry | undefined {\n syncSourceCodeContext()\n return contextByUrl.get(url)\n}\n\nexport function resetSourceCodeContext() {\n contextByUrl.clear()\n processedStacks.clear()\n hasFiredTelemetry = false\n}\n"],"mappings":";;;;AAqBA,MAAM,+BAAe,IAAI,IAAoC;AAC7D,MAAM,kCAAkB,IAAI,IAAY;AACxC,IAAI,oBAAoB;AAExB,SAAS,wBAAwB;CAE/B,MAAM,oBAAqBA,kCAAAA,aAAa,QAAsC;CAC9E,IAAI,CAAC,mBACH;CAGF,IAAI,aAAa;CACjB,IAAI,aAAa;CACjB,IAAI,aAAa;CAEjB,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,iBAAiB,GAAG;EAC9D,aAAa,cAAc,MAAM,cAAc,KAAA;EAC/C,aAAa,cAAc,MAAM,YAAY,KAAA;EAC7C,aAAa,cAAc,MAAM,YAAY,KAAA;EAE7C,IAAI,gBAAgB,IAAI,KAAK,GAC3B;EAGF,gBAAgB,IAAI,KAAK;EAEzB,MAAM,MAAMC,0BAAAA,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;EACnD,IAAI,OAAO,CAAC,aAAa,IAAI,GAAG,GAC9B,aAAa,IAAI,KAAK,KAAK;CAE/B;CAEA,IAAI,CAAC,mBAAmB;EACtB,oBAAoB;EACpB,kBAAA,kBAAkB;GAChB,SAAS;GACT,cAAc;GACd,aAAa;GACb,aAAa;EACf,CAAC;CACH;AACF;AAOA,SAAgB,kBAAkB,MAA4C;CAC5E,sBAAsB;CAEtB,MAAM,2BAAW,IAAI,IAAY;CACjC,MAAM,WAA2B,CAAC;CAElC,KAAK,MAAM,OAAO,MAAM;EACtB,IAAI,SAAS,IAAI,GAAG,GAClB;EAEF,SAAS,IAAI,GAAG;EAEhB,MAAM,UAAU,aAAa,IAAI,GAAG,CAAC,EAAE;EACvC,IAAI,YAAY,KAAA,GACd,SAAS,KAAK;GAAE;GAAK,IAAI;EAAQ,CAAC;CAEtC;CAEA,OAAO,SAAS,SAAS,WAAW,KAAA;AACtC;AAEA,SAAgB,qBAAqB,KAAiD;CACpF,sBAAsB;CACtB,OAAO,aAAa,IAAI,GAAG;AAC7B"}
@@ -1,12 +1,18 @@
1
1
  export declare const SYNTHETICS_TEST_ID_COOKIE_NAME = "kubesense-synthetics-public-id";
2
2
  export declare const SYNTHETICS_RESULT_ID_COOKIE_NAME = "kubesense-synthetics-result-id";
3
3
  export declare const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = "kubesense-synthetics-injects-rum";
4
- export interface BrowserWindow extends Window {
4
+ export declare const SYNTHETICS_CONTEXT_COOKIE_NAME = "kubesense-synthetics-rum-context";
5
+ export interface BrowserWindow {
5
6
  _KUBESENSE_SYNTHETICS_PUBLIC_ID?: unknown;
6
7
  _KUBESENSE_SYNTHETICS_RESULT_ID?: unknown;
7
8
  _KUBESENSE_SYNTHETICS_INJECTS_RUM?: unknown;
9
+ _KUBESENSE_SYNTHETICS_RUM_CONTEXT?: unknown;
10
+ }
11
+ export interface SyntheticsContext {
12
+ test_id: string;
13
+ result_id: string;
14
+ [key: string]: unknown;
8
15
  }
9
16
  export declare function willSyntheticsInjectRum(): boolean;
10
- export declare function getSyntheticsTestId(): string | undefined;
11
- export declare function getSyntheticsResultId(): string | undefined;
17
+ export declare function getSyntheticsContext(): SyntheticsContext | undefined;
12
18
  export declare function isSyntheticsTest(): boolean;