@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
@@ -0,0 +1,35 @@
1
+ import { clearTimeout, setTimeout } from "../timer.mjs";
2
+ //#region src/tools/utils/functionUtils.ts
3
+ function throttle(fn, wait, options) {
4
+ const needLeadingExecution = options?.leading !== void 0 ? options.leading : true;
5
+ const needTrailingExecution = options?.trailing !== void 0 ? options.trailing : true;
6
+ let inWaitPeriod = false;
7
+ let pendingExecutionWithParameters;
8
+ let pendingTimeoutId;
9
+ return {
10
+ throttled: (...parameters) => {
11
+ if (inWaitPeriod) {
12
+ pendingExecutionWithParameters = parameters;
13
+ return;
14
+ }
15
+ if (needLeadingExecution) fn(...parameters);
16
+ else pendingExecutionWithParameters = parameters;
17
+ inWaitPeriod = true;
18
+ pendingTimeoutId = setTimeout(() => {
19
+ if (needTrailingExecution && pendingExecutionWithParameters) fn(...pendingExecutionWithParameters);
20
+ inWaitPeriod = false;
21
+ pendingExecutionWithParameters = void 0;
22
+ }, wait);
23
+ },
24
+ cancel: () => {
25
+ clearTimeout(pendingTimeoutId);
26
+ inWaitPeriod = false;
27
+ pendingExecutionWithParameters = void 0;
28
+ }
29
+ };
30
+ }
31
+ function noop() {}
32
+ //#endregion
33
+ export { noop, throttle };
34
+
35
+ //# sourceMappingURL=functionUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionUtils.mjs","names":[],"sources":["../../../src/tools/utils/functionUtils.ts"],"sourcesContent":["import type { TimeoutId } from '../timer'\nimport { setTimeout, clearTimeout } from '../timer'\n\n// use lodash API\nexport function throttle<T extends (...args: any[]) => void>(\n fn: T,\n wait: number,\n options?: { leading?: boolean; trailing?: boolean }\n) {\n const needLeadingExecution = options?.leading !== undefined ? options.leading : true\n const needTrailingExecution = options?.trailing !== undefined ? options.trailing : true\n let inWaitPeriod = false\n let pendingExecutionWithParameters: Parameters<T> | undefined\n let pendingTimeoutId: TimeoutId\n\n return {\n throttled: (...parameters: Parameters<T>) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters\n return\n }\n if (needLeadingExecution) {\n fn(...parameters)\n } else {\n pendingExecutionWithParameters = parameters\n }\n inWaitPeriod = true\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters)\n }\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }, wait)\n },\n cancel: () => {\n clearTimeout(pendingTimeoutId)\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n },\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n"],"mappings":";;AAIA,SAAgB,SACd,IACA,MACA,SACA;CACA,MAAM,uBAAuB,SAAS,YAAY,KAAA,IAAY,QAAQ,UAAU;CAChF,MAAM,wBAAwB,SAAS,aAAa,KAAA,IAAY,QAAQ,WAAW;CACnF,IAAI,eAAe;CACnB,IAAI;CACJ,IAAI;CAEJ,OAAO;EACL,YAAY,GAAG,eAA8B;GAC3C,IAAI,cAAc;IAChB,iCAAiC;IACjC;GACF;GACA,IAAI,sBACF,GAAG,GAAG,UAAU;QAEhB,iCAAiC;GAEnC,eAAe;GACf,mBAAmB,iBAAiB;IAClC,IAAI,yBAAyB,gCAC3B,GAAG,GAAG,8BAA8B;IAEtC,eAAe;IACf,iCAAiC,KAAA;GACnC,GAAG,IAAI;EACT;EACA,cAAc;GACZ,aAAa,gBAAgB;GAC7B,eAAe;GACf,iCAAiC,KAAA;EACnC;CACF;AACF;AAGA,SAAgB,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ //#region src/tools/utils/numberUtils.ts
2
+ function round(num, decimals) {
3
+ return +num.toFixed(decimals);
4
+ }
5
+ function isNumber(value) {
6
+ return typeof value === "number";
7
+ }
8
+ //#endregion
9
+ export { isNumber, round };
10
+
11
+ //# sourceMappingURL=numberUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberUtils.mjs","names":[],"sources":["../../../src/tools/utils/numberUtils.ts"],"sourcesContent":["export function round(num: number, decimals: 0 | 1 | 2 | 3 | 4) {\n return +num.toFixed(decimals)\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n"],"mappings":";AAAA,SAAgB,MAAM,KAAa,UAA6B;CAC9D,OAAO,CAAC,IAAI,QAAQ,QAAQ;AAC9B;AAEA,SAAgB,SAAS,OAAiC;CACxD,OAAO,OAAO,UAAU;AAC1B"}
@@ -0,0 +1,31 @@
1
+ //#region src/tools/utils/objectUtils.ts
2
+ const stripDangerousKeys = (key, value) => key === "__proto__" ? void 0 : value;
3
+ function tryJsonParse(text) {
4
+ try {
5
+ return JSON.parse(text, stripDangerousKeys);
6
+ } catch {}
7
+ }
8
+ function shallowClone(object) {
9
+ return { ...object };
10
+ }
11
+ function objectHasValue(object, value) {
12
+ return Object.keys(object).some((key) => object[key] === value);
13
+ }
14
+ function isEmptyObject(object) {
15
+ return Object.keys(object).length === 0;
16
+ }
17
+ function mapValues(object, fn) {
18
+ const newObject = {};
19
+ for (const key of Object.keys(object)) newObject[key] = fn(object[key]);
20
+ return newObject;
21
+ }
22
+ function getConstructorName(value) {
23
+ try {
24
+ const name = value?.constructor?.name;
25
+ return typeof name === "string" && name ? name : void 0;
26
+ } catch {}
27
+ }
28
+ //#endregion
29
+ export { getConstructorName, isEmptyObject, mapValues, objectHasValue, shallowClone, tryJsonParse };
30
+
31
+ //# sourceMappingURL=objectUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectUtils.mjs","names":[],"sources":["../../../src/tools/utils/objectUtils.ts"],"sourcesContent":["// Prevent prototype pollution: __proto__ as an own property in parsed JSON can corrupt Object.prototype\nconst stripDangerousKeys = (key: string, value: unknown) => (key === '__proto__' ? undefined : value)\n\nexport function tryJsonParse<T = unknown>(text: string): T | undefined {\n try {\n return JSON.parse(text, stripDangerousKeys) as T\n } catch {\n // ignore\n }\n}\n\nexport function shallowClone<T>(object: T): T & Record<string, never> {\n return { ...object } as T & Record<string, never>\n}\n\nexport function objectHasValue<T extends { [key: string]: unknown }>(object: T, value: unknown): value is T[keyof T] {\n return Object.keys(object).some((key) => object[key] === value)\n}\n\nexport function isEmptyObject(object: object) {\n return Object.keys(object).length === 0\n}\n\nexport function mapValues<A, B>(object: { [key: string]: A }, fn: (arg: A) => B) {\n const newObject: { [key: string]: B } = {}\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key])\n }\n return newObject\n}\n\nexport function getConstructorName(value: unknown): string | undefined {\n try {\n const name = (value as { constructor?: { name?: unknown } } | null | undefined)?.constructor?.name\n return typeof name === 'string' && name ? name : undefined\n } catch {\n // ignore: accessing `constructor` can throw on hostile objects\n }\n}\n"],"mappings":";AACA,MAAM,sBAAsB,KAAa,UAAoB,QAAQ,cAAc,KAAA,IAAY;AAE/F,SAAgB,aAA0B,MAA6B;CACrE,IAAI;EACF,OAAO,KAAK,MAAM,MAAM,kBAAkB;CAC5C,QAAQ,CAER;AACF;AAEA,SAAgB,aAAgB,QAAsC;CACpE,OAAO,EAAE,GAAG,OAAO;AACrB;AAEA,SAAgB,eAAqD,QAAW,OAAqC;CACnH,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,QAAQ,OAAO,SAAS,KAAK;AAChE;AAEA,SAAgB,cAAc,QAAgB;CAC5C,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,WAAW;AACxC;AAEA,SAAgB,UAAgB,QAA8B,IAAmB;CAC/E,MAAM,YAAkC,CAAC;CACzC,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,GAClC,UAAU,OAAO,GAAG,OAAO,IAAI;CAEjC,OAAO;AACT;AAEA,SAAgB,mBAAmB,OAAoC;CACrE,IAAI;EACF,MAAM,OAAQ,OAAmE,aAAa;EAC9F,OAAO,OAAO,SAAS,YAAY,OAAO,OAAO,KAAA;CACnD,QAAQ,CAER;AACF"}
@@ -0,0 +1,17 @@
1
+ //#region src/tools/utils/polyfills.ts
2
+ function findLast(array, predicate) {
3
+ for (let i = array.length - 1; i >= 0; i -= 1) {
4
+ const item = array[i];
5
+ if (predicate(item, i, array)) return item;
6
+ }
7
+ }
8
+ function objectValues(object) {
9
+ return Object.values(object);
10
+ }
11
+ function objectEntries(object) {
12
+ return Object.entries(object);
13
+ }
14
+ //#endregion
15
+ export { findLast, objectEntries, objectValues };
16
+
17
+ //# sourceMappingURL=polyfills.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfills.mjs","names":[],"sources":["../../../src/tools/utils/polyfills.ts"],"sourcesContent":["export function findLast<T, S extends T>(\n array: readonly T[],\n predicate: (item: T, index: number, array: readonly T[]) => item is S\n): S | undefined {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\n\n// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using\n// the native Object.values and Object.entries directly\n\nexport function objectValues<T = unknown>(object: { [key: string]: T }) {\n return Object.values(object)\n}\n\nexport function objectEntries<T = unknown>(object: { [key: string]: T }): Array<[string, T]> {\n return Object.entries(object)\n}\n"],"mappings":";AAAA,SAAgB,SACd,OACA,WACe;CACf,KAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;EAC7C,MAAM,OAAO,MAAM;EACnB,IAAI,UAAU,MAAM,GAAG,KAAK,GAC1B,OAAO;CAEX;AAEF;AAKA,SAAgB,aAA0B,QAA8B;CACtE,OAAO,OAAO,OAAO,MAAM;AAC7B;AAEA,SAAgB,cAA2B,QAAkD;CAC3F,OAAO,OAAO,QAAQ,MAAM;AAC9B"}
@@ -0,0 +1,15 @@
1
+ //#region src/tools/utils/responseUtils.ts
2
+ function isServerError(status) {
3
+ return status >= 500;
4
+ }
5
+ function tryToClone(response) {
6
+ try {
7
+ return response.clone();
8
+ } catch {
9
+ return;
10
+ }
11
+ }
12
+ //#endregion
13
+ export { isServerError, tryToClone };
14
+
15
+ //# sourceMappingURL=responseUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseUtils.mjs","names":[],"sources":["../../../src/tools/utils/responseUtils.ts"],"sourcesContent":["export function isServerError(status: number) {\n return status >= 500\n}\n\nexport function tryToClone(response: Response): Response | undefined {\n try {\n return response.clone()\n } catch {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return\n }\n}\n"],"mappings":";AAAA,SAAgB,cAAc,QAAgB;CAC5C,OAAO,UAAU;AACnB;AAEA,SAAgB,WAAW,UAA0C;CACnE,IAAI;EACF,OAAO,SAAS,MAAM;CACxB,QAAQ;EAEN;CACF;AACF"}
@@ -0,0 +1,81 @@
1
+ //#region src/tools/utils/stringUtils.ts
2
+ /**
3
+ * UUID v4
4
+ * from https://gist.github.com/jed/982883
5
+ */
6
+ function generateUUID(placeholder) {
7
+ return placeholder ? (parseInt(placeholder, 10) ^ Math.random() * 16 >> parseInt(placeholder, 10) / 4).toString(16) : `10000000-1000-4000-8000-100000000000`.replace(/[018]/g, generateUUID);
8
+ }
9
+ const COMMA_SEPARATED_KEY_VALUE = /(\S+?)\s*=\s*(.*?)(?:;|$)/g;
10
+ /**
11
+ * Returns the value of the key with the given name
12
+ * If there are multiple values with the same key, returns the first one
13
+ */
14
+ function findCommaSeparatedValue(rawString, name) {
15
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
16
+ while (true) {
17
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
18
+ if (match) {
19
+ if (match[1] === name) return match[2];
20
+ } else break;
21
+ }
22
+ }
23
+ /**
24
+ * Returns a map of all the values with the given key
25
+ * If there are multiple values with the same key, returns all the values
26
+ */
27
+ function findAllCommaSeparatedValues(rawString) {
28
+ const result = /* @__PURE__ */ new Map();
29
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
30
+ while (true) {
31
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
32
+ if (match) {
33
+ const key = match[1];
34
+ const value = match[2];
35
+ if (result.has(key)) result.get(key).push(value);
36
+ else result.set(key, [value]);
37
+ } else break;
38
+ }
39
+ return result;
40
+ }
41
+ /**
42
+ * Returns a map of the values with the given key
43
+ * ⚠️ If there are multiple values with the same key, returns the LAST one
44
+ *
45
+ * @deprecated use `findAllCommaSeparatedValues()` instead
46
+ */
47
+ function findCommaSeparatedValues(rawString) {
48
+ const result = /* @__PURE__ */ new Map();
49
+ COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;
50
+ while (true) {
51
+ const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);
52
+ if (match) result.set(match[1], match[2]);
53
+ else break;
54
+ }
55
+ return result;
56
+ }
57
+ function safeTruncate(candidate, length, suffix = "") {
58
+ const lastChar = candidate.charCodeAt(length - 1);
59
+ const correctedLength = lastChar >= 55296 && lastChar <= 56319 ? length + 1 : length;
60
+ if (candidate.length <= correctedLength) return candidate;
61
+ return `${candidate.slice(0, correctedLength)}${suffix}`;
62
+ }
63
+ /**
64
+ * Builds a telemetry integration identifier from a library name and its version, e.g. `react-v18`
65
+ */
66
+ function toMajorVersionIntegration(name, version) {
67
+ if (!version) return name;
68
+ return `${name}-v${version.split(".")[0]}`;
69
+ }
70
+ /**
71
+ * Filters out falsy values and returns `undefined` if no integration is left, so plugins report a
72
+ * consistent "nothing to report" telemetry shape instead of an empty array.
73
+ */
74
+ function toIntegrations(...maybeIntegrations) {
75
+ const integrations = maybeIntegrations.filter((integration) => !!integration);
76
+ return integrations.length > 0 ? integrations : void 0;
77
+ }
78
+ //#endregion
79
+ export { findAllCommaSeparatedValues, findCommaSeparatedValue, findCommaSeparatedValues, generateUUID, safeTruncate, toIntegrations, toMajorVersionIntegration };
80
+
81
+ //# sourceMappingURL=stringUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringUtils.mjs","names":[],"sources":["../../../src/tools/utils/stringUtils.ts"],"sourcesContent":["/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder?: string): string {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID)\n}\n\n// Assuming input string is following the HTTP Cookie format defined in\n// https://www.ietf.org/rfc/rfc2616.txt and https://www.ietf.org/rfc/rfc6265.txt, we don't need to\n// be too strict with this regex.\nconst COMMA_SEPARATED_KEY_VALUE = /(\\S+?)\\s*=\\s*(.*?)(?:;|$)/g\n\n/**\n * Returns the value of the key with the given name\n * If there are multiple values with the same key, returns the first one\n */\nexport function findCommaSeparatedValue(rawString: string, name: string): string | undefined {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n if (match[1] === name) {\n return match[2]\n }\n } else {\n break\n }\n }\n}\n\n/**\n * Returns a map of all the values with the given key\n * If there are multiple values with the same key, returns all the values\n */\nexport function findAllCommaSeparatedValues(rawString: string): Map<string, string[]> {\n const result = new Map<string, string[]>()\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n const key = match[1]\n const value = match[2]\n if (result.has(key)) {\n result.get(key)!.push(value)\n } else {\n result.set(key, [value])\n }\n } else {\n break\n }\n }\n return result\n}\n\n/**\n * Returns a map of the values with the given key\n * ⚠️ If there are multiple values with the same key, returns the LAST one\n *\n * @deprecated use `findAllCommaSeparatedValues()` instead\n */\nexport function findCommaSeparatedValues(rawString: string): Map<string, string> {\n const result = new Map<string, string>()\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n result.set(match[1], match[2])\n } else {\n break\n }\n }\n return result\n}\n\nexport function safeTruncate(candidate: string, length: number, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1)\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length\n\n if (candidate.length <= correctedLength) {\n return candidate\n }\n\n return `${candidate.slice(0, correctedLength)}${suffix}`\n}\n\n/**\n * Builds a telemetry integration identifier from a library name and its version, e.g. `react-v18`\n */\nexport function toMajorVersionIntegration(name: string, version: string | null | undefined): string {\n if (!version) {\n return name\n }\n return `${name}-v${version.split('.')[0]}`\n}\n\n/**\n * Filters out falsy values and returns `undefined` if no integration is left, so plugins report a\n * consistent \"nothing to report\" telemetry shape instead of an empty array.\n */\nexport function toIntegrations(...maybeIntegrations: Array<string | false | undefined>): string[] | undefined {\n const integrations = maybeIntegrations.filter((integration): integration is string => !!integration)\n return integrations.length > 0 ? integrations : undefined\n}\n"],"mappings":";;;;;AAIA,SAAgB,aAAa,aAA8B;CACzD,OAAO,eAEF,SAAS,aAAa,EAAE,IAAM,KAAK,OAAO,IAAI,MAAQ,SAAS,aAAa,EAAE,IAAI,EAAA,CAAK,SAAS,EAAE,IACnG,uCAAsC,QAAQ,UAAU,YAAY;AAC1E;AAKA,MAAM,4BAA4B;;;;;AAMlC,SAAgB,wBAAwB,WAAmB,MAAkC;CAC3F,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI,OACE;OAAA,MAAM,OAAO,MACf,OAAO,MAAM;EAAA,OAGf;CAEJ;AACF;;;;;AAMA,SAAgB,4BAA4B,WAA0C;CACpF,MAAM,yBAAS,IAAI,IAAsB;CACzC,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI,OAAO;GACT,MAAM,MAAM,MAAM;GAClB,MAAM,QAAQ,MAAM;GACpB,IAAI,OAAO,IAAI,GAAG,GAChB,OAAO,IAAI,GAAG,CAAC,CAAE,KAAK,KAAK;QAE3B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;EAE3B,OACE;CAEJ;CACA,OAAO;AACT;;;;;;;AAQA,SAAgB,yBAAyB,WAAwC;CAC/E,MAAM,yBAAS,IAAI,IAAoB;CACvC,0BAA0B,YAAY;CACtC,OAAO,MAAM;EACX,MAAM,QAAQ,0BAA0B,KAAK,SAAS;EACtD,IAAI,OACF,OAAO,IAAI,MAAM,IAAI,MAAM,EAAE;OAE7B;CAEJ;CACA,OAAO;AACT;AAEA,SAAgB,aAAa,WAAmB,QAAgB,SAAS,IAAI;CAC3E,MAAM,WAAW,UAAU,WAAW,SAAS,CAAC;CAEhD,MAAM,kBAD0B,YAAY,SAAU,YAAY,QAChB,SAAS,IAAI;CAE/D,IAAI,UAAU,UAAU,iBACtB,OAAO;CAGT,OAAO,GAAG,UAAU,MAAM,GAAG,eAAe,IAAI;AAClD;;;;AAKA,SAAgB,0BAA0B,MAAc,SAA4C;CAClG,IAAI,CAAC,SACH,OAAO;CAET,OAAO,GAAG,KAAK,IAAI,QAAQ,MAAM,GAAG,CAAC,CAAC;AACxC;;;;;AAMA,SAAgB,eAAe,GAAG,mBAA4E;CAC5G,MAAM,eAAe,kBAAkB,QAAQ,gBAAuC,CAAC,CAAC,WAAW;CACnG,OAAO,aAAa,SAAS,IAAI,eAAe,KAAA;AAClD"}
@@ -0,0 +1,12 @@
1
+ //#region src/tools/utils/timezone.ts
2
+ function getTimeZone() {
3
+ try {
4
+ return new Intl.DateTimeFormat().resolvedOptions().timeZone;
5
+ } catch {
6
+ return;
7
+ }
8
+ }
9
+ //#endregion
10
+ export { getTimeZone };
11
+
12
+ //# sourceMappingURL=timezone.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezone.mjs","names":[],"sources":["../../../src/tools/utils/timezone.ts"],"sourcesContent":["export function getTimeZone() {\n try {\n const intl = new Intl.DateTimeFormat()\n\n return intl.resolvedOptions().timeZone\n } catch {\n return undefined\n }\n}\n"],"mappings":";AAAA,SAAgB,cAAc;CAC5B,IAAI;EAGF,OAAO,IAFU,KAAK,eAEZ,CAAC,CAAC,gBAAgB,CAAC,CAAC;CAChC,QAAQ;EACN;CACF;AACF"}
@@ -0,0 +1,117 @@
1
+ import { clearInterval, setInterval } from "./timer.mjs";
2
+ import { removeItem } from "./utils/arrayUtils.mjs";
3
+ import { ONE_MINUTE, addDuration, relativeNow } from "@kubesense/kubesense-js-core/time";
4
+ //#region src/tools/valueHistory.ts
5
+ const END_OF_TIMES = Infinity;
6
+ const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;
7
+ let cleanupHistoriesInterval;
8
+ const cleanupTasks = /* @__PURE__ */ new Set();
9
+ function cleanupHistories() {
10
+ cleanupTasks.forEach((task) => task());
11
+ }
12
+ function createValueHistory({ expireDelay, maxEntries }) {
13
+ let entries = [];
14
+ const clearExpiredValues = () => {
15
+ if (!expireDelay) return;
16
+ const oldTimeThreshold = relativeNow() - expireDelay;
17
+ while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) entries.pop();
18
+ };
19
+ if (expireDelay) {
20
+ if (!cleanupHistoriesInterval) cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL);
21
+ cleanupTasks.add(clearExpiredValues);
22
+ }
23
+ /**
24
+ * Add a value to the history associated with a start time. Returns a reference to this newly
25
+ * added entry that can be removed or closed.
26
+ */
27
+ function add(value, startTime) {
28
+ const entry = {
29
+ value,
30
+ startTime,
31
+ endTime: END_OF_TIMES,
32
+ remove: () => {
33
+ removeItem(entries, entry);
34
+ },
35
+ close: (endTime) => {
36
+ entry.endTime = endTime;
37
+ }
38
+ };
39
+ if (maxEntries && entries.length >= maxEntries) entries.pop();
40
+ entries.unshift(entry);
41
+ return entry;
42
+ }
43
+ /**
44
+ * Return the latest value that was active during `startTime`, or the currently active value
45
+ * if no `startTime` is provided. This method assumes that entries are not overlapping.
46
+ *
47
+ * If `option.returnInactive` is true, returns the value at `startTime` (active or not).
48
+ */
49
+ function find(startTime = END_OF_TIMES, options = { returnInactive: false }) {
50
+ for (const entry of entries) if (entry.startTime <= startTime) {
51
+ if (options.returnInactive || startTime <= entry.endTime) return entry.value;
52
+ break;
53
+ }
54
+ }
55
+ /**
56
+ * Helper function to close the currently active value, if any. This method assumes that entries
57
+ * are not overlapping.
58
+ */
59
+ function closeActive(endTime) {
60
+ const latestEntry = entries[0];
61
+ if (latestEntry?.endTime === END_OF_TIMES) latestEntry.close(endTime);
62
+ }
63
+ /**
64
+ * Return all values with an active period overlapping with the duration,
65
+ * or all values that were active during `startTime` if no duration is provided,
66
+ * or all currently active values if no `startTime` is provided.
67
+ */
68
+ function findAll(startTime = END_OF_TIMES, duration = 0) {
69
+ const endTime = addDuration(startTime, duration);
70
+ return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime).map((entry) => entry.value);
71
+ }
72
+ /**
73
+ * Return all entries with an active period overlapping with the duration,
74
+ * or all entries that were active during `startTime` if no duration is provided,
75
+ * or all currently active entries if no `startTime` is provided.
76
+ */
77
+ function findAllEntries(startTime = END_OF_TIMES, duration = 0) {
78
+ const endTime = addDuration(startTime, duration);
79
+ return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime);
80
+ }
81
+ /**
82
+ * Return all the entries whose start time is equal to the given startTime.
83
+ */
84
+ function getEntries(startTime) {
85
+ return entries.filter((entry) => entry.startTime === startTime);
86
+ }
87
+ /**
88
+ * Remove all entries from this collection.
89
+ */
90
+ function reset() {
91
+ entries = [];
92
+ }
93
+ /**
94
+ * Stop internal garbage collection of past entries.
95
+ */
96
+ function stop() {
97
+ cleanupTasks.delete(clearExpiredValues);
98
+ if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {
99
+ clearInterval(cleanupHistoriesInterval);
100
+ cleanupHistoriesInterval = void 0;
101
+ }
102
+ }
103
+ return {
104
+ add,
105
+ find,
106
+ closeActive,
107
+ findAll,
108
+ findAllEntries,
109
+ getEntries,
110
+ reset,
111
+ stop
112
+ };
113
+ }
114
+ //#endregion
115
+ export { CLEAR_OLD_VALUES_INTERVAL, createValueHistory };
116
+
117
+ //# sourceMappingURL=valueHistory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueHistory.mjs","names":[],"sources":["../../src/tools/valueHistory.ts"],"sourcesContent":["import { ONE_MINUTE, addDuration, relativeNow } from '@kubesense/kubesense-js-core/time'\nimport type { Duration, RelativeTime } from '@kubesense/kubesense-js-core/time'\nimport { setInterval, clearInterval } from './timer'\nimport type { TimeoutId } from './timer'\nimport { removeItem } from './utils/arrayUtils'\n\nconst END_OF_TIMES = Infinity as RelativeTime\n\nexport interface ValueHistoryEntry<T> {\n startTime: RelativeTime\n endTime: RelativeTime\n value: T\n remove(): void\n close(endTime: RelativeTime): void\n}\n\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE\n\n/**\n * Store and keep track of values spans. This whole cache assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nexport interface ValueHistory<Value> {\n add: (value: Value, startTime: RelativeTime) => ValueHistoryEntry<Value>\n find: (startTime?: RelativeTime, options?: { returnInactive: boolean }) => Value | undefined\n\n closeActive: (endTime: RelativeTime) => void\n findAll: (startTime?: RelativeTime, duration?: Duration) => Value[]\n findAllEntries: (startTime?: RelativeTime, duration?: Duration) => Array<ValueHistoryEntry<Value>>\n getEntries: (startTime: RelativeTime) => Array<ValueHistoryEntry<Value>>\n reset: () => void\n stop: () => void\n}\n\nlet cleanupHistoriesInterval: TimeoutId | undefined\n\nconst cleanupTasks: Set<() => void> = new Set()\n\nfunction cleanupHistories() {\n cleanupTasks.forEach((task) => task())\n}\n\ntype ValueHistoryArgs =\n | {\n expireDelay?: number\n maxEntries: number\n }\n | {\n expireDelay: number\n maxEntries?: number\n }\n\nexport function createValueHistory<Value>({ expireDelay, maxEntries }: ValueHistoryArgs): ValueHistory<Value> {\n let entries: Array<ValueHistoryEntry<Value>> = []\n\n const clearExpiredValues = () => {\n if (!expireDelay) {\n return\n }\n const oldTimeThreshold = relativeNow() - expireDelay\n while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {\n entries.pop()\n }\n }\n\n if (expireDelay) {\n if (!cleanupHistoriesInterval) {\n cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL)\n }\n cleanupTasks.add(clearExpiredValues)\n }\n\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n function add(value: Value, startTime: RelativeTime): ValueHistoryEntry<Value> {\n const entry: ValueHistoryEntry<Value> = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n removeItem(entries, entry)\n },\n close: (endTime: RelativeTime) => {\n entry.endTime = endTime\n },\n }\n\n if (maxEntries && entries.length >= maxEntries) {\n entries.pop()\n }\n\n entries.unshift(entry)\n\n return entry\n }\n\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n *\n * If `option.returnInactive` is true, returns the value at `startTime` (active or not).\n */\n function find(\n startTime: RelativeTime = END_OF_TIMES,\n options: { returnInactive: boolean } = { returnInactive: false }\n ): Value | undefined {\n for (const entry of entries) {\n if (entry.startTime <= startTime) {\n if (options.returnInactive || startTime <= entry.endTime) {\n return entry.value\n }\n break\n }\n }\n }\n\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n function closeActive(endTime: RelativeTime) {\n const latestEntry = entries[0]\n if (latestEntry?.endTime === END_OF_TIMES) {\n latestEntry.close(endTime)\n }\n }\n\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n function findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {\n const endTime = addDuration(startTime, duration)\n return entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value)\n }\n\n /**\n * Return all entries with an active period overlapping with the duration,\n * or all entries that were active during `startTime` if no duration is provided,\n * or all currently active entries if no `startTime` is provided.\n */\n function findAllEntries(\n startTime: RelativeTime = END_OF_TIMES,\n duration = 0 as Duration\n ): Array<ValueHistoryEntry<Value>> {\n const endTime = addDuration(startTime, duration)\n return entries.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n }\n\n /**\n * Return all the entries whose start time is equal to the given startTime.\n */\n function getEntries(startTime: RelativeTime): Array<ValueHistoryEntry<Value>> {\n return entries.filter((entry) => entry.startTime === startTime)\n }\n\n /**\n * Remove all entries from this collection.\n */\n function reset() {\n entries = []\n }\n\n /**\n * Stop internal garbage collection of past entries.\n */\n function stop() {\n cleanupTasks.delete(clearExpiredValues)\n if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {\n clearInterval(cleanupHistoriesInterval)\n cleanupHistoriesInterval = undefined\n }\n }\n\n return { add, find, closeActive, findAll, findAllEntries, getEntries, reset, stop }\n}\n\n/**\n * Reset all global state. This is useful for testing to ensure clean state between tests.\n *\n * @internal\n */\nexport function resetValueHistoryGlobals() {\n cleanupTasks.clear()\n clearInterval(cleanupHistoriesInterval)\n cleanupHistoriesInterval = undefined\n}\n"],"mappings":";;;;AAMA,MAAM,eAAe;AAUrB,MAAa,4BAA4B;AAkBzC,IAAI;AAEJ,MAAM,+BAAgC,IAAI,IAAI;AAE9C,SAAS,mBAAmB;CAC1B,aAAa,SAAS,SAAS,KAAK,CAAC;AACvC;AAYA,SAAgB,mBAA0B,EAAE,aAAa,cAAqD;CAC5G,IAAI,UAA2C,CAAC;CAEhD,MAAM,2BAA2B;EAC/B,IAAI,CAAC,aACH;EAEF,MAAM,mBAAmB,YAAY,IAAI;EACzC,OAAO,QAAQ,SAAS,KAAK,QAAQ,QAAQ,SAAS,EAAE,CAAC,UAAU,kBACjE,QAAQ,IAAI;CAEhB;CAEA,IAAI,aAAa;EACf,IAAI,CAAC,0BACH,2BAA2B,kBAAkB,iBAAiB,GAAG,yBAAyB;EAE5F,aAAa,IAAI,kBAAkB;CACrC;;;;;CAMA,SAAS,IAAI,OAAc,WAAmD;EAC5E,MAAM,QAAkC;GACtC;GACA;GACA,SAAS;GACT,cAAc;IACZ,WAAW,SAAS,KAAK;GAC3B;GACA,QAAQ,YAA0B;IAChC,MAAM,UAAU;GAClB;EACF;EAEA,IAAI,cAAc,QAAQ,UAAU,YAClC,QAAQ,IAAI;EAGd,QAAQ,QAAQ,KAAK;EAErB,OAAO;CACT;;;;;;;CAQA,SAAS,KACP,YAA0B,cAC1B,UAAuC,EAAE,gBAAgB,MAAM,GAC5C;EACnB,KAAK,MAAM,SAAS,SAClB,IAAI,MAAM,aAAa,WAAW;GAChC,IAAI,QAAQ,kBAAkB,aAAa,MAAM,SAC/C,OAAO,MAAM;GAEf;EACF;CAEJ;;;;;CAMA,SAAS,YAAY,SAAuB;EAC1C,MAAM,cAAc,QAAQ;EAC5B,IAAI,aAAa,YAAY,cAC3B,YAAY,MAAM,OAAO;CAE7B;;;;;;CAOA,SAAS,QAAQ,YAA0B,cAAc,WAAW,GAAwB;EAC1F,MAAM,UAAU,YAAY,WAAW,QAAQ;EAC/C,OAAO,QACJ,QAAQ,UAAU,MAAM,aAAa,WAAW,aAAa,MAAM,OAAO,CAAC,CAC3E,KAAK,UAAU,MAAM,KAAK;CAC/B;;;;;;CAOA,SAAS,eACP,YAA0B,cAC1B,WAAW,GACsB;EACjC,MAAM,UAAU,YAAY,WAAW,QAAQ;EAC/C,OAAO,QAAQ,QAAQ,UAAU,MAAM,aAAa,WAAW,aAAa,MAAM,OAAO;CAC3F;;;;CAKA,SAAS,WAAW,WAA0D;EAC5E,OAAO,QAAQ,QAAQ,UAAU,MAAM,cAAc,SAAS;CAChE;;;;CAKA,SAAS,QAAQ;EACf,UAAU,CAAC;CACb;;;;CAKA,SAAS,OAAO;EACd,aAAa,OAAO,kBAAkB;EACtC,IAAI,aAAa,SAAS,KAAK,0BAA0B;GACvD,cAAc,wBAAwB;GACtC,2BAA2B,KAAA;EAC7B;CACF;CAEA,OAAO;EAAE;EAAK;EAAM;EAAa;EAAS;EAAgB;EAAY;EAAO;CAAK;AACpF"}
@@ -0,0 +1,96 @@
1
+ import { DOCS_TROUBLESHOOTING, display } from "../tools/display.mjs";
2
+ import { mockable } from "../tools/mockable.mjs";
3
+ import { ONE_KIBI_BYTE, computeBytesCount } from "../tools/utils/byteUtils.mjs";
4
+ import { jsonStringify } from "../tools/serialisation/jsonStringify.mjs";
5
+ import { createHttpRequest } from "./httpRequest.mjs";
6
+ import { objectValues } from "../tools/utils/polyfills.mjs";
7
+ import { createPageMayExitObservable, isPageExitReason } from "../browser/pageMayExitObservable.mjs";
8
+ import { createIdentityEncoder } from "../tools/encoder.mjs";
9
+ import { createFlushController } from "./flushController.mjs";
10
+ import { MORE_DETAILS } from "@kubesense/kubesense-js-core/util";
11
+ //#region src/transport/batch.ts
12
+ const MESSAGE_BYTES_LIMIT = 256 * ONE_KIBI_BYTE;
13
+ function createBatch({ encoder = createIdentityEncoder(), endpoints, reportError }) {
14
+ const request = mockable(createHttpRequest)(endpoints, reportError);
15
+ const pageMayExitObservable = mockable(createPageMayExitObservable)();
16
+ const flushController = mockable(createFlushController)({ pageMayExitObservable });
17
+ let upsertBuffer = {};
18
+ const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event));
19
+ const pageExitSubscription = pageMayExitObservable.subscribe(() => {
20
+ request.sendQueuedOnExit();
21
+ });
22
+ function push(serializedMessage, estimatedMessageBytesCount, key) {
23
+ if (key !== void 0) {
24
+ let bytesDiff;
25
+ if (upsertBuffer[key] !== void 0) bytesDiff = estimatedMessageBytesCount - encoder.estimateEncodedBytesCount(upsertBuffer[key]);
26
+ else {
27
+ flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);
28
+ bytesDiff = 0;
29
+ }
30
+ upsertBuffer[key] = serializedMessage;
31
+ flushController.notifyAfterAddMessage(bytesDiff);
32
+ } else {
33
+ flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);
34
+ encoder.write(encoder.isEmpty ? serializedMessage : `\n${serializedMessage}`, (realMessageBytesCount) => {
35
+ flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);
36
+ });
37
+ }
38
+ }
39
+ function addOrUpdate(message, key) {
40
+ const serializedMessage = jsonStringify(message);
41
+ const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage);
42
+ if (estimatedMessageBytesCount >= MESSAGE_BYTES_LIMIT) {
43
+ display.warn(`Discarded a message whose size was bigger than the maximum allowed size ${MESSAGE_BYTES_LIMIT / ONE_KIBI_BYTE}KiB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`);
44
+ return;
45
+ }
46
+ push(serializedMessage, estimatedMessageBytesCount, key);
47
+ }
48
+ function flush(event) {
49
+ const upsertMessages = objectValues(upsertBuffer).join("\n");
50
+ upsertBuffer = {};
51
+ const pageMightExit = isPageExitReason(event.reason);
52
+ const send = pageMightExit ? request.sendOnExit : request.send;
53
+ if (pageMightExit && encoder.isAsync) {
54
+ const encoderResult = encoder.finishSync();
55
+ if (encoderResult.outputBytesCount) send(formatPayloadFromEncoder(encoderResult));
56
+ const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join("\n");
57
+ if (pendingMessages) send({
58
+ data: pendingMessages,
59
+ bytesCount: computeBytesCount(pendingMessages)
60
+ });
61
+ } else {
62
+ if (upsertMessages) encoder.write(encoder.isEmpty ? upsertMessages : `\n${upsertMessages}`);
63
+ encoder.finish((encoderResult) => {
64
+ send(formatPayloadFromEncoder(encoderResult));
65
+ });
66
+ }
67
+ }
68
+ return {
69
+ get isEmpty() {
70
+ return flushController.messagesCount === 0;
71
+ },
72
+ add: addOrUpdate,
73
+ upsert: addOrUpdate,
74
+ prepareUrgentFlushObservable: flushController.prepareUrgentFlushObservable,
75
+ forceFlush: flushController.forceFlush,
76
+ flushObservable: flushController.flushObservable,
77
+ stop: () => {
78
+ flushSubscription.unsubscribe();
79
+ pageExitSubscription.unsubscribe();
80
+ }
81
+ };
82
+ }
83
+ function formatPayloadFromEncoder(encoderResult) {
84
+ let data;
85
+ if (typeof encoderResult.output === "string") data = encoderResult.output;
86
+ else data = new Blob([encoderResult.output], { type: "text/plain" });
87
+ return {
88
+ data,
89
+ bytesCount: encoderResult.outputBytesCount,
90
+ encoding: encoderResult.encoding
91
+ };
92
+ }
93
+ //#endregion
94
+ export { MESSAGE_BYTES_LIMIT, createBatch };
95
+
96
+ //# sourceMappingURL=batch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.mjs","names":[],"sources":["../../src/transport/batch.ts"],"sourcesContent":["import type { EndpointBuilder } from '@kubesense/kubesense-js-core/transport'\nimport { MORE_DETAILS } from '@kubesense/kubesense-js-core/util'\nimport { DOCS_TROUBLESHOOTING, display } from '../tools/display'\nimport type { Context } from '../tools/serialisation/context'\nimport { objectValues } from '../tools/utils/polyfills'\nimport { isPageExitReason, createPageMayExitObservable } from '../browser/pageMayExitObservable'\nimport { jsonStringify } from '../tools/serialisation/jsonStringify'\nimport { createIdentityEncoder } from '../tools/encoder'\nimport type { Encoder, EncoderResult } from '../tools/encoder'\nimport { computeBytesCount, ONE_KIBI_BYTE } from '../tools/utils/byteUtils'\nimport { mockable } from '../tools/mockable'\nimport type { Observable } from '../tools/observable'\nimport { createHttpRequest } from './httpRequest'\nimport type { Payload } from './httpRequest'\nimport { createFlushController } from './flushController'\nimport type { FlushEvent, FlushReason, UrgentFlushReason } from './flushController'\n\nexport const MESSAGE_BYTES_LIMIT = 256 * ONE_KIBI_BYTE\n\nexport interface Batch {\n isEmpty: boolean\n add: (message: Context) => void\n upsert: (message: Context, key: string) => void\n forceFlush: (reason: FlushReason) => void\n prepareUrgentFlushObservable: Observable<UrgentFlushReason>\n flushObservable: Observable<FlushEvent>\n stop: () => void\n}\n\nexport function createBatch({\n encoder = createIdentityEncoder(),\n endpoints,\n reportError,\n}: {\n encoder?: Encoder\n endpoints: EndpointBuilder[]\n reportError: (message: string) => void\n}): Batch {\n const request = mockable(createHttpRequest)(endpoints, reportError)\n const pageMayExitObservable = mockable(createPageMayExitObservable)()\n const flushController = mockable(createFlushController)({ pageMayExitObservable })\n let upsertBuffer: { [key: string]: string } = {}\n const flushSubscription = flushController.flushObservable.subscribe((event) => flush(event))\n\n // A batch that failed in transit sits in the retry queue with its view counters already\n // incremented. Draining it with sendBeacon on page exit is the last chance to deliver it, and\n // without this the counters on the view event would not match the events the backend received.\n const pageExitSubscription = pageMayExitObservable.subscribe(() => {\n request.sendQueuedOnExit()\n })\n\n function push(serializedMessage: string, estimatedMessageBytesCount: number, key?: string) {\n if (key !== undefined) {\n let bytesDiff: number\n if (upsertBuffer[key] !== undefined) {\n bytesDiff = estimatedMessageBytesCount - encoder.estimateEncodedBytesCount(upsertBuffer[key])\n } else {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n bytesDiff = 0\n }\n upsertBuffer[key] = serializedMessage\n flushController.notifyAfterAddMessage(bytesDiff)\n } else {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n encoder.write(encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`, (realMessageBytesCount) => {\n flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount)\n })\n }\n }\n\n function addOrUpdate(message: Context, key?: string) {\n const serializedMessage = jsonStringify(message)!\n\n const estimatedMessageBytesCount = encoder.estimateEncodedBytesCount(serializedMessage)\n\n if (estimatedMessageBytesCount >= MESSAGE_BYTES_LIMIT) {\n display.warn(\n `Discarded a message whose size was bigger than the maximum allowed size ${MESSAGE_BYTES_LIMIT / ONE_KIBI_BYTE}KiB. ${MORE_DETAILS} ${DOCS_TROUBLESHOOTING}/#technical-limitations`\n )\n return\n }\n\n push(serializedMessage, estimatedMessageBytesCount, key)\n }\n\n function flush(event: FlushEvent) {\n const upsertMessages = objectValues(upsertBuffer).join('\\n')\n upsertBuffer = {}\n\n const pageMightExit = isPageExitReason(event.reason)\n const send = pageMightExit ? request.sendOnExit : request.send\n\n if (\n pageMightExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync\n ) {\n const encoderResult = encoder.finishSync()\n\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult))\n }\n\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n')\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n })\n }\n } else {\n if (upsertMessages) {\n encoder.write(encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`)\n }\n encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult))\n })\n }\n }\n\n return {\n get isEmpty() {\n return flushController.messagesCount === 0\n },\n add: addOrUpdate,\n upsert: addOrUpdate,\n prepareUrgentFlushObservable: flushController.prepareUrgentFlushObservable,\n forceFlush: flushController.forceFlush,\n flushObservable: flushController.flushObservable,\n stop: () => {\n flushSubscription.unsubscribe()\n pageExitSubscription.unsubscribe()\n },\n }\n}\n\nfunction formatPayloadFromEncoder(encoderResult: EncoderResult): Payload {\n let data: string | Blob\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output\n } else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n })\n }\n\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n }\n}\n"],"mappings":";;;;;;;;;;;AAiBA,MAAa,sBAAsB,MAAM;AAYzC,SAAgB,YAAY,EAC1B,UAAU,sBAAsB,GAChC,WACA,eAKQ;CACR,MAAM,UAAU,SAAS,iBAAiB,CAAC,CAAC,WAAW,WAAW;CAClE,MAAM,wBAAwB,SAAS,2BAA2B,CAAC,CAAC;CACpE,MAAM,kBAAkB,SAAS,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,CAAC;CACjF,IAAI,eAA0C,CAAC;CAC/C,MAAM,oBAAoB,gBAAgB,gBAAgB,WAAW,UAAU,MAAM,KAAK,CAAC;CAK3F,MAAM,uBAAuB,sBAAsB,gBAAgB;EACjE,QAAQ,iBAAiB;CAC3B,CAAC;CAED,SAAS,KAAK,mBAA2B,4BAAoC,KAAc;EACzF,IAAI,QAAQ,KAAA,GAAW;GACrB,IAAI;GACJ,IAAI,aAAa,SAAS,KAAA,GACxB,YAAY,6BAA6B,QAAQ,0BAA0B,aAAa,IAAI;QACvF;IACL,gBAAgB,uBAAuB,0BAA0B;IACjE,YAAY;GACd;GACA,aAAa,OAAO;GACpB,gBAAgB,sBAAsB,SAAS;EACjD,OAAO;GACL,gBAAgB,uBAAuB,0BAA0B;GACjE,QAAQ,MAAM,QAAQ,UAAU,oBAAoB,KAAK,sBAAsB,0BAA0B;IACvG,gBAAgB,sBAAsB,wBAAwB,0BAA0B;GAC1F,CAAC;EACH;CACF;CAEA,SAAS,YAAY,SAAkB,KAAc;EACnD,MAAM,oBAAoB,cAAc,OAAO;EAE/C,MAAM,6BAA6B,QAAQ,0BAA0B,iBAAiB;EAEtF,IAAI,8BAA8B,qBAAqB;GACrD,QAAQ,KACN,2EAA2E,sBAAsB,cAAc,OAAO,aAAa,GAAG,qBAAqB,wBAC7J;GACA;EACF;EAEA,KAAK,mBAAmB,4BAA4B,GAAG;CACzD;CAEA,SAAS,MAAM,OAAmB;EAChC,MAAM,iBAAiB,aAAa,YAAY,CAAC,CAAC,KAAK,IAAI;EAC3D,eAAe,CAAC;EAEhB,MAAM,gBAAgB,iBAAiB,MAAM,MAAM;EACnD,MAAM,OAAO,gBAAgB,QAAQ,aAAa,QAAQ;EAE1D,IACE,iBAKA,QAAQ,SACR;GACA,MAAM,gBAAgB,QAAQ,WAAW;GAGzC,IAAI,cAAc,kBAChB,KAAK,yBAAyB,aAAa,CAAC;GAI9C,MAAM,kBAAkB,CAAC,cAAc,aAAa,cAAc,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;GAC7F,IAAI,iBACF,KAAK;IACH,MAAM;IACN,YAAY,kBAAkB,eAAe;GAC/C,CAAC;EAEL,OAAO;GACL,IAAI,gBACF,QAAQ,MAAM,QAAQ,UAAU,iBAAiB,KAAK,gBAAgB;GAExE,QAAQ,QAAQ,kBAAkB;IAChC,KAAK,yBAAyB,aAAa,CAAC;GAC9C,CAAC;EACH;CACF;CAEA,OAAO;EACL,IAAI,UAAU;GACZ,OAAO,gBAAgB,kBAAkB;EAC3C;EACA,KAAK;EACL,QAAQ;EACR,8BAA8B,gBAAgB;EAC9C,YAAY,gBAAgB;EAC5B,iBAAiB,gBAAgB;EACjC,YAAY;GACV,kBAAkB,YAAY;GAC9B,qBAAqB,YAAY;EACnC;CACF;AACF;AAEA,SAAS,yBAAyB,eAAuC;CACvE,IAAI;CACJ,IAAI,OAAO,cAAc,WAAW,UAClC,OAAO,cAAc;MAErB,OAAO,IAAI,KAAK,CAAC,cAAc,MAAM,GAAG,EAOtC,MAAM,aACR,CAAC;CAGH,OAAO;EACL;EACA,YAAY,cAAc;EAC1B,UAAU,cAAc;CAC1B;AACF"}
@@ -0,0 +1,58 @@
1
+ import { display } from "../tools/display.mjs";
2
+ import { globalObject } from "@kubesense/kubesense-js-core/util";
3
+ //#region src/transport/eventBridge.ts
4
+ let BridgeCapability = /* @__PURE__ */ function(BridgeCapability) {
5
+ BridgeCapability["RECORDS"] = "records";
6
+ BridgeCapability["PROFILES"] = "profiles";
7
+ return BridgeCapability;
8
+ }({});
9
+ function getEventBridge() {
10
+ const eventBridgeGlobal = getEventBridgeGlobal();
11
+ if (!eventBridgeGlobal) return;
12
+ return {
13
+ getCapabilities() {
14
+ return JSON.parse(eventBridgeGlobal.getCapabilities?.() || "[]");
15
+ },
16
+ getPrivacyLevel() {
17
+ return eventBridgeGlobal.getPrivacyLevel?.();
18
+ },
19
+ getIsTraceSampled() {
20
+ return JSON.parse(eventBridgeGlobal.getIsTraceSampled?.() || "null");
21
+ },
22
+ getAllowedWebViewHosts() {
23
+ return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());
24
+ },
25
+ send(eventType, event, viewId) {
26
+ const view = viewId ? { id: viewId } : void 0;
27
+ eventBridgeGlobal.send(JSON.stringify({
28
+ eventType,
29
+ event,
30
+ view
31
+ }));
32
+ }
33
+ };
34
+ }
35
+ function bridgeSupports(capability) {
36
+ const bridge = getEventBridge();
37
+ return !!bridge && bridge.getCapabilities().includes(capability);
38
+ }
39
+ function canUseEventBridge(currentHost = globalObject.location?.hostname) {
40
+ return getEventBridge()?.getAllowedWebViewHosts().some((entry) => matchesHostEntry(currentHost, entry)) ?? false;
41
+ }
42
+ function matchesHostEntry(host, entry) {
43
+ if (!entry.includes("*")) return host === entry || host.endsWith(`.${entry}`);
44
+ const parts = entry.split("*");
45
+ if (parts.length !== 2) {
46
+ display.error(`Invalid WebView host pattern "${entry}": only one wildcard (*) is supported.`);
47
+ return false;
48
+ }
49
+ const [prefix, suffix] = parts;
50
+ return host.length > prefix.length + suffix.length && host.startsWith(prefix) && host.endsWith(suffix);
51
+ }
52
+ function getEventBridgeGlobal() {
53
+ return globalObject.KubeSenseEventBridge;
54
+ }
55
+ //#endregion
56
+ export { BridgeCapability, bridgeSupports, canUseEventBridge, getEventBridge, matchesHostEntry };
57
+
58
+ //# sourceMappingURL=eventBridge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventBridge.mjs","names":[],"sources":["../../src/transport/eventBridge.ts"],"sourcesContent":["import { globalObject } from '@kubesense/kubesense-js-core/util'\nimport { display } from '../tools/display'\nimport type { DefaultPrivacyLevel } from '../domain/configuration'\n\nexport interface BrowserWindowWithEventBridge {\n KubeSenseEventBridge?: KubeSenseEventBridge\n}\n\nexport interface KubeSenseEventBridge {\n getCapabilities?(): string\n getPrivacyLevel?(): DefaultPrivacyLevel\n getIsTraceSampled?(): 'true' | 'false' | 'null'\n getAllowedWebViewHosts(): string\n send(msg: string): void\n}\n\nexport const enum BridgeCapability {\n RECORDS = 'records',\n PROFILES = 'profiles',\n}\n\nexport function getEventBridge<T, E>() {\n const eventBridgeGlobal = getEventBridgeGlobal()\n\n if (!eventBridgeGlobal) {\n return\n }\n\n return {\n getCapabilities() {\n return JSON.parse(eventBridgeGlobal.getCapabilities?.() || '[]') as BridgeCapability[]\n },\n getPrivacyLevel() {\n return eventBridgeGlobal.getPrivacyLevel?.()\n },\n getIsTraceSampled() {\n return JSON.parse(eventBridgeGlobal.getIsTraceSampled?.() || 'null') as boolean | null\n },\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts()) as string[]\n },\n send(eventType: T, event: E, viewId?: string) {\n const view = viewId ? { id: viewId } : undefined\n eventBridgeGlobal.send(JSON.stringify({ eventType, event, view }))\n },\n }\n}\n\nexport function bridgeSupports(capability: BridgeCapability): boolean {\n const bridge = getEventBridge()\n return !!bridge && bridge.getCapabilities().includes(capability)\n}\n\nexport function canUseEventBridge(currentHost = globalObject.location?.hostname): boolean {\n const bridge = getEventBridge()\n return bridge?.getAllowedWebViewHosts().some((entry) => matchesHostEntry(currentHost, entry)) ?? false\n}\n\nexport function matchesHostEntry(host: string, entry: string): boolean {\n if (!entry.includes('*')) {\n return host === entry || host.endsWith(`.${entry}`)\n }\n const parts = entry.split('*')\n if (parts.length !== 2) {\n display.error(`Invalid WebView host pattern \"${entry}\": only one wildcard (*) is supported.`)\n return false\n }\n const [prefix, suffix] = parts\n return host.length > prefix.length + suffix.length && host.startsWith(prefix) && host.endsWith(suffix)\n}\n\nfunction getEventBridgeGlobal() {\n return (globalObject as BrowserWindowWithEventBridge).KubeSenseEventBridge\n}\n"],"mappings":";;;AAgBA,IAAkB,mBAAX,yBAAA,kBAAA;CACL,iBAAA,aAAA;CACA,iBAAA,cAAA;;AACF,EAAA,CAAA,CAAA;AAEA,SAAgB,iBAAuB;CACrC,MAAM,oBAAoB,qBAAqB;CAE/C,IAAI,CAAC,mBACH;CAGF,OAAO;EACL,kBAAkB;GAChB,OAAO,KAAK,MAAM,kBAAkB,kBAAkB,KAAK,IAAI;EACjE;EACA,kBAAkB;GAChB,OAAO,kBAAkB,kBAAkB;EAC7C;EACA,oBAAoB;GAClB,OAAO,KAAK,MAAM,kBAAkB,oBAAoB,KAAK,MAAM;EACrE;EACA,yBAAyB;GACvB,OAAO,KAAK,MAAM,kBAAkB,uBAAuB,CAAC;EAC9D;EACA,KAAK,WAAc,OAAU,QAAiB;GAC5C,MAAM,OAAO,SAAS,EAAE,IAAI,OAAO,IAAI,KAAA;GACvC,kBAAkB,KAAK,KAAK,UAAU;IAAE;IAAW;IAAO;GAAK,CAAC,CAAC;EACnE;CACF;AACF;AAEA,SAAgB,eAAe,YAAuC;CACpE,MAAM,SAAS,eAAe;CAC9B,OAAO,CAAC,CAAC,UAAU,OAAO,gBAAgB,CAAC,CAAC,SAAS,UAAU;AACjE;AAEA,SAAgB,kBAAkB,cAAc,aAAa,UAAU,UAAmB;CAExF,OADe,eACH,CAAC,EAAE,uBAAuB,CAAC,CAAC,MAAM,UAAU,iBAAiB,aAAa,KAAK,CAAC,KAAK;AACnG;AAEA,SAAgB,iBAAiB,MAAc,OAAwB;CACrE,IAAI,CAAC,MAAM,SAAS,GAAG,GACrB,OAAO,SAAS,SAAS,KAAK,SAAS,IAAI,OAAO;CAEpD,MAAM,QAAQ,MAAM,MAAM,GAAG;CAC7B,IAAI,MAAM,WAAW,GAAG;EACtB,QAAQ,MAAM,iCAAiC,MAAM,uCAAuC;EAC5F,OAAO;CACT;CACA,MAAM,CAAC,QAAQ,UAAU;CACzB,OAAO,KAAK,SAAS,OAAO,SAAS,OAAO,UAAU,KAAK,WAAW,MAAM,KAAK,KAAK,SAAS,MAAM;AACvG;AAEA,SAAS,uBAAuB;CAC9B,OAAQ,aAA8C;AACxD"}