@openobserve/browser-core 0.3.4 → 0.4.0-beta.2

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 (934) hide show
  1. package/README.md +1 -1
  2. package/cjs/boot/displayAlreadyInitializedError.js +6 -7
  3. package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
  4. package/cjs/boot/init.js +26 -34
  5. package/cjs/boot/init.js.map +1 -1
  6. package/cjs/browser/addEventListener.d.ts +10 -8
  7. package/cjs/browser/addEventListener.js +107 -50
  8. package/cjs/browser/addEventListener.js.map +1 -1
  9. package/cjs/browser/browser.types.d.ts +91 -4
  10. package/cjs/browser/cookie.d.ts +0 -1
  11. package/cjs/browser/cookie.js +65 -92
  12. package/cjs/browser/cookie.js.map +1 -1
  13. package/cjs/browser/cookieAccess.d.ts +16 -0
  14. package/cjs/browser/cookieAccess.js +114 -0
  15. package/cjs/browser/cookieAccess.js.map +1 -0
  16. package/cjs/browser/fetch.d.ts +9 -0
  17. package/cjs/browser/fetch.js +18 -0
  18. package/cjs/browser/fetch.js.map +1 -0
  19. package/cjs/browser/fetchObservable.d.ts +3 -3
  20. package/cjs/browser/fetchObservable.js +80 -92
  21. package/cjs/browser/fetchObservable.js.map +1 -1
  22. package/cjs/browser/pageMayExitObservable.d.ts +1 -2
  23. package/cjs/browser/pageMayExitObservable.js +41 -40
  24. package/cjs/browser/pageMayExitObservable.js.map +1 -1
  25. package/cjs/browser/runOnReadyState.d.ts +2 -3
  26. package/cjs/browser/runOnReadyState.js +18 -17
  27. package/cjs/browser/runOnReadyState.js.map +1 -1
  28. package/cjs/browser/xhrObservable.d.ts +8 -3
  29. package/cjs/browser/xhrObservable.js +65 -77
  30. package/cjs/browser/xhrObservable.js.map +1 -1
  31. package/cjs/domain/allowedTrackingOrigins.d.ts +1 -1
  32. package/cjs/domain/allowedTrackingOrigins.js +25 -23
  33. package/cjs/domain/allowedTrackingOrigins.js.map +1 -1
  34. package/cjs/domain/bufferedData.d.ts +20 -6
  35. package/cjs/domain/bufferedData.js +41 -19
  36. package/cjs/domain/bufferedData.js.map +1 -1
  37. package/cjs/domain/configuration/configuration.d.ts +44 -43
  38. package/cjs/domain/configuration/configuration.js +122 -125
  39. package/cjs/domain/configuration/configuration.js.map +1 -1
  40. package/cjs/domain/configuration/endpointBuilder.d.ts +42 -7
  41. package/cjs/domain/configuration/endpointBuilder.js +67 -74
  42. package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
  43. package/cjs/domain/configuration/index.d.ts +2 -3
  44. package/cjs/domain/connectivity/connectivity.d.ts +1 -7
  45. package/cjs/domain/connectivity/connectivity.js +11 -11
  46. package/cjs/domain/connectivity/connectivity.js.map +1 -1
  47. package/cjs/domain/console/consoleObservable.d.ts +1 -1
  48. package/cjs/domain/console/consoleObservable.js +59 -74
  49. package/cjs/domain/console/consoleObservable.js.map +1 -1
  50. package/cjs/domain/context/contextConstants.js +24 -15
  51. package/cjs/domain/context/contextConstants.js.map +1 -1
  52. package/cjs/domain/context/contextManager.js +49 -54
  53. package/cjs/domain/context/contextManager.js.map +1 -1
  54. package/cjs/domain/context/contextUtils.js +11 -12
  55. package/cjs/domain/context/contextUtils.js.map +1 -1
  56. package/cjs/domain/context/defineContextMethod.d.ts +2 -2
  57. package/cjs/domain/context/defineContextMethod.js +15 -16
  58. package/cjs/domain/context/defineContextMethod.js.map +1 -1
  59. package/cjs/domain/context/storeContextManager.d.ts +1 -2
  60. package/cjs/domain/context/storeContextManager.js +30 -33
  61. package/cjs/domain/context/storeContextManager.js.map +1 -1
  62. package/cjs/domain/contexts/accountContext.d.ts +2 -2
  63. package/cjs/domain/contexts/accountContext.js +26 -29
  64. package/cjs/domain/contexts/accountContext.js.map +1 -1
  65. package/cjs/domain/contexts/globalContext.d.ts +2 -2
  66. package/cjs/domain/contexts/globalContext.js +17 -17
  67. package/cjs/domain/contexts/globalContext.js.map +1 -1
  68. package/cjs/domain/contexts/tabContext.d.ts +4 -0
  69. package/cjs/domain/contexts/tabContext.js +27 -0
  70. package/cjs/domain/contexts/tabContext.js.map +1 -0
  71. package/cjs/domain/contexts/telemetrySessionContext.d.ts +4 -0
  72. package/cjs/domain/contexts/telemetrySessionContext.js +17 -0
  73. package/cjs/domain/contexts/telemetrySessionContext.js.map +1 -0
  74. package/cjs/domain/contexts/userContext.d.ts +8 -3
  75. package/cjs/domain/contexts/userContext.js +29 -41
  76. package/cjs/domain/contexts/userContext.js.map +1 -1
  77. package/cjs/domain/deflate/deflate.types.js +11 -2
  78. package/cjs/domain/deflate/deflate.types.js.map +1 -1
  79. package/cjs/domain/error/error.d.ts +1 -1
  80. package/cjs/domain/error/error.js +62 -60
  81. package/cjs/domain/error/error.js.map +1 -1
  82. package/cjs/domain/error/error.types.d.ts +1 -1
  83. package/cjs/domain/error/error.types.js +24 -11
  84. package/cjs/domain/error/error.types.js.map +1 -1
  85. package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
  86. package/cjs/domain/error/trackRuntimeError.js +41 -41
  87. package/cjs/domain/error/trackRuntimeError.js.map +1 -1
  88. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +33 -38
  89. package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
  90. package/cjs/domain/extension/extensionUtils.js +18 -25
  91. package/cjs/domain/extension/extensionUtils.js.map +1 -1
  92. package/cjs/domain/intakeSites.d.ts +3 -3
  93. package/cjs/domain/intakeSites.js +23 -10
  94. package/cjs/domain/intakeSites.js.map +1 -1
  95. package/cjs/domain/report/reportObservable.d.ts +1 -2
  96. package/cjs/domain/report/reportObservable.js +73 -85
  97. package/cjs/domain/report/reportObservable.js.map +1 -1
  98. package/cjs/domain/resourceUtils.js +19 -17
  99. package/cjs/domain/resourceUtils.js.map +1 -1
  100. package/cjs/domain/sampler.d.ts +11 -0
  101. package/cjs/domain/sampler.js +40 -0
  102. package/cjs/domain/sampler.js.map +1 -0
  103. package/cjs/domain/session/sessionConstants.d.ts +1 -0
  104. package/cjs/domain/session/sessionConstants.js +19 -13
  105. package/cjs/domain/session/sessionConstants.js.map +1 -1
  106. package/cjs/domain/session/sessionManager.d.ts +13 -13
  107. package/cjs/domain/session/sessionManager.js +219 -193
  108. package/cjs/domain/session/sessionManager.js.map +1 -1
  109. package/cjs/domain/session/sessionState.d.ts +10 -1
  110. package/cjs/domain/session/sessionState.js +70 -55
  111. package/cjs/domain/session/sessionState.js.map +1 -1
  112. package/cjs/domain/session/sessionStateValidation.js +7 -8
  113. package/cjs/domain/session/sessionStateValidation.js.map +1 -1
  114. package/cjs/domain/session/sessionStore.d.ts +4 -33
  115. package/cjs/domain/session/sessionStore.js +42 -180
  116. package/cjs/domain/session/sessionStore.js.map +1 -1
  117. package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +7 -11
  118. package/cjs/domain/session/storeStrategies/sessionInCookie.js +89 -95
  119. package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
  120. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +1 -4
  121. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +39 -38
  122. package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
  123. package/cjs/domain/session/storeStrategies/sessionInMemory.d.ts +12 -0
  124. package/cjs/domain/session/storeStrategies/sessionInMemory.js +35 -0
  125. package/cjs/domain/session/storeStrategies/sessionInMemory.js.map +1 -0
  126. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -7
  127. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +7 -4
  128. package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -1
  129. package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
  130. package/cjs/domain/synthetics/syntheticsWorkerValues.js +33 -25
  131. package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
  132. package/cjs/domain/tags.d.ts +0 -1
  133. package/cjs/domain/tags.js +22 -58
  134. package/cjs/domain/tags.js.map +1 -1
  135. package/cjs/domain/telemetry/rawTelemetryEvent.types.js +8 -7
  136. package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -1
  137. package/cjs/domain/telemetry/telemetry.d.ts +8 -8
  138. package/cjs/domain/telemetry/telemetry.js +196 -211
  139. package/cjs/domain/telemetry/telemetry.js.map +1 -1
  140. package/cjs/domain/telemetry/telemetryEvent.types.d.ts +97 -17
  141. package/cjs/domain/trackingConsent.d.ts +1 -0
  142. package/cjs/domain/trackingConsent.js +35 -24
  143. package/cjs/domain/trackingConsent.js.map +1 -1
  144. package/cjs/index.d.ts +25 -22
  145. package/cjs/index.js +281 -194
  146. package/cjs/tools/abstractLifeCycle.js +19 -26
  147. package/cjs/tools/abstractLifeCycle.js.map +1 -1
  148. package/cjs/tools/catchUserErrors.js +12 -12
  149. package/cjs/tools/catchUserErrors.js.map +1 -1
  150. package/cjs/tools/display.d.ts +1 -35
  151. package/cjs/tools/display.js +11 -43
  152. package/cjs/tools/display.js.map +1 -1
  153. package/cjs/tools/encoder.js +36 -37
  154. package/cjs/tools/encoder.js.map +1 -1
  155. package/cjs/tools/experimentalFeatures.d.ts +1 -4
  156. package/cjs/tools/experimentalFeatures.js +29 -40
  157. package/cjs/tools/experimentalFeatures.js.map +1 -1
  158. package/cjs/tools/getZoneJsOriginalValue.d.ts +1 -1
  159. package/cjs/tools/getZoneJsOriginalValue.js +22 -25
  160. package/cjs/tools/getZoneJsOriginalValue.js.map +1 -1
  161. package/cjs/tools/globalObject.d.ts +16 -15
  162. package/cjs/tools/globalObject.js +7 -43
  163. package/cjs/tools/globalObject.js.map +1 -1
  164. package/cjs/tools/instrumentMethod.d.ts +58 -1
  165. package/cjs/tools/instrumentMethod.js +174 -112
  166. package/cjs/tools/instrumentMethod.js.map +1 -1
  167. package/cjs/tools/matchOption.js +25 -29
  168. package/cjs/tools/matchOption.js.map +1 -1
  169. package/cjs/tools/mockable.d.ts +22 -0
  170. package/cjs/tools/mockable.js +28 -0
  171. package/cjs/tools/mockable.js.map +1 -0
  172. package/cjs/tools/monitor.d.ts +5 -7
  173. package/cjs/tools/monitor.js +13 -58
  174. package/cjs/tools/monitor.js.map +1 -1
  175. package/cjs/tools/observable.d.ts +3 -1
  176. package/cjs/tools/observable.js +75 -85
  177. package/cjs/tools/observable.js.map +1 -1
  178. package/cjs/tools/queueMicrotask.js +9 -14
  179. package/cjs/tools/queueMicrotask.js.map +1 -1
  180. package/cjs/tools/readBytesFromStream.d.ts +1 -6
  181. package/cjs/tools/readBytesFromStream.js +18 -25
  182. package/cjs/tools/readBytesFromStream.js.map +1 -1
  183. package/cjs/tools/requestIdleCallback.js +22 -29
  184. package/cjs/tools/requestIdleCallback.js.map +1 -1
  185. package/cjs/tools/sendToExtension.js +10 -8
  186. package/cjs/tools/sendToExtension.js.map +1 -1
  187. package/cjs/tools/serialisation/jsonStringify.js +37 -42
  188. package/cjs/tools/serialisation/jsonStringify.js.map +1 -1
  189. package/cjs/tools/serialisation/sanitize.d.ts +1 -0
  190. package/cjs/tools/serialisation/sanitize.js +111 -167
  191. package/cjs/tools/serialisation/sanitize.js.map +1 -1
  192. package/cjs/tools/serialisation/stringify.d.ts +2 -0
  193. package/cjs/tools/serialisation/stringify.js +18 -0
  194. package/cjs/tools/serialisation/stringify.js.map +1 -0
  195. package/cjs/tools/stackTrace/computeStackTrace.js +121 -159
  196. package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -1
  197. package/cjs/tools/stackTrace/handlingStack.d.ts +1 -1
  198. package/cjs/tools/stackTrace/handlingStack.js +39 -38
  199. package/cjs/tools/stackTrace/handlingStack.js.map +1 -1
  200. package/cjs/tools/taskQueue.js +40 -49
  201. package/cjs/tools/taskQueue.js.map +1 -1
  202. package/cjs/tools/timer.d.ts +2 -1
  203. package/cjs/tools/timer.js +14 -13
  204. package/cjs/tools/timer.js.map +1 -1
  205. package/cjs/tools/utils/arrayUtils.d.ts +1 -0
  206. package/cjs/tools/utils/arrayUtils.js +17 -13
  207. package/cjs/tools/utils/arrayUtils.js.map +1 -1
  208. package/cjs/tools/utils/browserDetection.d.ts +1 -0
  209. package/cjs/tools/utils/browserDetection.js +25 -23
  210. package/cjs/tools/utils/browserDetection.js.map +1 -1
  211. package/cjs/tools/utils/byteUtils.js +20 -28
  212. package/cjs/tools/utils/byteUtils.js.map +1 -1
  213. package/cjs/tools/utils/functionUtils.js +33 -40
  214. package/cjs/tools/utils/functionUtils.js.map +1 -1
  215. package/cjs/tools/utils/numberUtils.js +15 -14
  216. package/cjs/tools/utils/numberUtils.js.map +1 -1
  217. package/cjs/tools/utils/objectUtils.d.ts +2 -0
  218. package/cjs/tools/utils/objectUtils.js +27 -14
  219. package/cjs/tools/utils/objectUtils.js.map +1 -1
  220. package/cjs/tools/utils/polyfills.js +12 -16
  221. package/cjs/tools/utils/polyfills.js.map +1 -1
  222. package/cjs/tools/utils/responseUtils.js +11 -12
  223. package/cjs/tools/utils/responseUtils.js.map +1 -1
  224. package/cjs/tools/utils/stringUtils.js +56 -77
  225. package/cjs/tools/utils/stringUtils.js.map +1 -1
  226. package/cjs/tools/utils/timezone.js +9 -10
  227. package/cjs/tools/utils/timezone.js.map +1 -1
  228. package/cjs/tools/utils/urlPolyfill.js +42 -46
  229. package/cjs/tools/utils/urlPolyfill.js.map +1 -1
  230. package/cjs/tools/valueHistory.d.ts +9 -1
  231. package/cjs/tools/valueHistory.js +110 -99
  232. package/cjs/tools/valueHistory.js.map +1 -1
  233. package/cjs/transport/batch.js +73 -106
  234. package/cjs/transport/batch.js.map +1 -1
  235. package/cjs/transport/eventBridge.d.ts +6 -2
  236. package/cjs/transport/eventBridge.js +53 -38
  237. package/cjs/transport/eventBridge.js.map +1 -1
  238. package/cjs/transport/flushController.d.ts +2 -12
  239. package/cjs/transport/flushController.js +98 -117
  240. package/cjs/transport/flushController.js.map +1 -1
  241. package/cjs/transport/httpRequest.d.ts +0 -1
  242. package/cjs/transport/httpRequest.js +51 -85
  243. package/cjs/transport/httpRequest.js.map +1 -1
  244. package/cjs/transport/index.d.ts +1 -0
  245. package/cjs/transport/sendWithRetryStrategy.js +133 -146
  246. package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
  247. package/esm/boot/displayAlreadyInitializedError.mjs +9 -0
  248. package/esm/boot/displayAlreadyInitializedError.mjs.map +1 -0
  249. package/esm/boot/init.mjs +30 -0
  250. package/esm/boot/init.mjs.map +1 -0
  251. package/esm/browser/addEventListener.mjs +107 -0
  252. package/esm/browser/addEventListener.mjs.map +1 -0
  253. package/esm/browser/cookie.mjs +81 -0
  254. package/esm/browser/cookie.mjs.map +1 -0
  255. package/esm/browser/cookieAccess.mjs +111 -0
  256. package/esm/browser/cookieAccess.mjs.map +1 -0
  257. package/esm/browser/fetch.mjs +18 -0
  258. package/esm/browser/fetch.mjs.map +1 -0
  259. package/esm/browser/fetchObservable.mjs +90 -0
  260. package/esm/browser/fetchObservable.mjs.map +1 -0
  261. package/esm/browser/pageMayExitObservable.mjs +44 -0
  262. package/esm/browser/pageMayExitObservable.mjs.map +1 -0
  263. package/esm/browser/runOnReadyState.mjs +19 -0
  264. package/esm/browser/runOnReadyState.mjs.map +1 -0
  265. package/esm/browser/xhrObservable.mjs +74 -0
  266. package/esm/browser/xhrObservable.mjs.map +1 -0
  267. package/esm/domain/allowedTrackingOrigins.mjs +27 -0
  268. package/esm/domain/allowedTrackingOrigins.mjs.map +1 -0
  269. package/esm/domain/bufferedData.mjs +43 -0
  270. package/esm/domain/bufferedData.mjs.map +1 -0
  271. package/esm/domain/configuration/configuration.mjs +131 -0
  272. package/esm/domain/configuration/configuration.mjs.map +1 -0
  273. package/esm/domain/configuration/endpointBuilder.mjs +72 -0
  274. package/esm/domain/configuration/endpointBuilder.mjs.map +1 -0
  275. package/esm/domain/connectivity/connectivity.mjs +14 -0
  276. package/esm/domain/connectivity/connectivity.mjs.map +1 -0
  277. package/esm/domain/console/consoleObservable.mjs +69 -0
  278. package/esm/domain/console/consoleObservable.mjs.map +1 -0
  279. package/esm/domain/context/contextConstants.mjs +25 -0
  280. package/esm/domain/context/contextConstants.mjs.map +1 -0
  281. package/esm/domain/context/contextManager.mjs +55 -0
  282. package/esm/domain/context/contextManager.mjs.map +1 -0
  283. package/esm/domain/context/contextUtils.mjs +15 -0
  284. package/esm/domain/context/contextUtils.mjs.map +1 -0
  285. package/esm/domain/context/defineContextMethod.mjs +19 -0
  286. package/esm/domain/context/defineContextMethod.mjs.map +1 -0
  287. package/esm/domain/context/storeContextManager.mjs +36 -0
  288. package/esm/domain/context/storeContextManager.mjs.map +1 -0
  289. package/esm/domain/contexts/accountContext.mjs +29 -0
  290. package/esm/domain/contexts/accountContext.mjs.map +1 -0
  291. package/esm/domain/contexts/globalContext.mjs +20 -0
  292. package/esm/domain/contexts/globalContext.mjs.map +1 -0
  293. package/esm/domain/contexts/tabContext.mjs +27 -0
  294. package/esm/domain/contexts/tabContext.mjs.map +1 -0
  295. package/esm/domain/contexts/telemetrySessionContext.mjs +17 -0
  296. package/esm/domain/contexts/telemetrySessionContext.mjs.map +1 -0
  297. package/esm/domain/contexts/userContext.mjs +32 -0
  298. package/esm/domain/contexts/userContext.mjs.map +1 -0
  299. package/esm/domain/deflate/deflate.types.mjs +12 -0
  300. package/esm/domain/deflate/deflate.types.mjs.map +1 -0
  301. package/esm/domain/error/error.mjs +73 -0
  302. package/esm/domain/error/error.mjs.map +1 -0
  303. package/esm/domain/error/error.types.mjs +24 -0
  304. package/esm/domain/error/error.types.mjs.map +1 -0
  305. package/esm/domain/error/trackRuntimeError.mjs +48 -0
  306. package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
  307. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +36 -0
  308. package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs.map +1 -0
  309. package/esm/domain/extension/extensionUtils.mjs +23 -0
  310. package/esm/domain/extension/extensionUtils.mjs.map +1 -0
  311. package/esm/domain/intakeSites.mjs +18 -0
  312. package/esm/domain/intakeSites.mjs.map +1 -0
  313. package/esm/domain/report/reportObservable.mjs +86 -0
  314. package/esm/domain/report/reportObservable.mjs.map +1 -0
  315. package/esm/domain/resourceUtils.mjs +21 -0
  316. package/esm/domain/resourceUtils.mjs.map +1 -0
  317. package/esm/domain/sampler.mjs +37 -0
  318. package/esm/domain/sampler.mjs.map +1 -0
  319. package/esm/domain/session/sessionConstants.mjs +18 -0
  320. package/esm/domain/session/sessionConstants.mjs.map +1 -0
  321. package/esm/domain/session/sessionManager.mjs +225 -0
  322. package/esm/domain/session/sessionManager.mjs.map +1 -0
  323. package/esm/domain/session/sessionState.mjs +76 -0
  324. package/esm/domain/session/sessionState.mjs.map +1 -0
  325. package/esm/domain/session/sessionStateValidation.mjs +9 -0
  326. package/esm/domain/session/sessionStateValidation.mjs.map +1 -0
  327. package/esm/domain/session/sessionStore.mjs +46 -0
  328. package/esm/domain/session/sessionStore.mjs.map +1 -0
  329. package/esm/domain/session/storeStrategies/sessionInCookie.mjs +97 -0
  330. package/esm/domain/session/storeStrategies/sessionInCookie.mjs.map +1 -0
  331. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs +42 -0
  332. package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs.map +1 -0
  333. package/esm/domain/session/storeStrategies/sessionInMemory.mjs +33 -0
  334. package/esm/domain/session/storeStrategies/sessionInMemory.mjs.map +1 -0
  335. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs +7 -0
  336. package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs.map +1 -0
  337. package/esm/domain/synthetics/syntheticsWorkerValues.mjs +37 -0
  338. package/esm/domain/synthetics/syntheticsWorkerValues.mjs.map +1 -0
  339. package/esm/domain/tags.mjs +28 -0
  340. package/esm/domain/tags.mjs.map +1 -0
  341. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs +10 -0
  342. package/esm/domain/telemetry/rawTelemetryEvent.types.mjs.map +1 -0
  343. package/esm/domain/telemetry/telemetry.mjs +219 -0
  344. package/esm/domain/telemetry/telemetry.mjs.map +1 -0
  345. package/esm/domain/trackingConsent.mjs +38 -0
  346. package/esm/domain/trackingConsent.mjs.map +1 -0
  347. package/esm/index.mjs +81 -0
  348. package/esm/tools/abstractLifeCycle.mjs +21 -0
  349. package/esm/tools/abstractLifeCycle.mjs.map +1 -0
  350. package/esm/tools/catchUserErrors.mjs +15 -0
  351. package/esm/tools/catchUserErrors.mjs.map +1 -0
  352. package/esm/tools/display.mjs +10 -0
  353. package/esm/tools/display.mjs.map +1 -0
  354. package/esm/tools/encoder.mjs +39 -0
  355. package/esm/tools/encoder.mjs.map +1 -0
  356. package/esm/tools/experimentalFeatures.mjs +35 -0
  357. package/esm/tools/experimentalFeatures.mjs.map +1 -0
  358. package/esm/tools/getZoneJsOriginalValue.mjs +26 -0
  359. package/esm/tools/getZoneJsOriginalValue.mjs.map +1 -0
  360. package/esm/tools/globalObject.mjs +7 -0
  361. package/esm/tools/globalObject.mjs.map +1 -0
  362. package/esm/tools/instrumentMethod.mjs +178 -0
  363. package/esm/tools/instrumentMethod.mjs.map +1 -0
  364. package/esm/tools/matchOption.mjs +30 -0
  365. package/esm/tools/matchOption.mjs.map +1 -0
  366. package/esm/tools/mockable.mjs +28 -0
  367. package/esm/tools/mockable.mjs.map +1 -0
  368. package/esm/tools/monitor.mjs +13 -0
  369. package/esm/tools/monitor.mjs.map +1 -0
  370. package/esm/tools/observable.mjs +77 -0
  371. package/esm/tools/observable.mjs.map +1 -0
  372. package/esm/tools/queueMicrotask.mjs +12 -0
  373. package/esm/tools/queueMicrotask.mjs.map +1 -0
  374. package/esm/tools/readBytesFromStream.mjs +21 -0
  375. package/esm/tools/readBytesFromStream.mjs.map +1 -0
  376. package/esm/tools/requestIdleCallback.mjs +28 -0
  377. package/esm/tools/requestIdleCallback.mjs.map +1 -0
  378. package/esm/tools/sendToExtension.mjs +13 -0
  379. package/esm/tools/sendToExtension.mjs.map +1 -0
  380. package/esm/tools/serialisation/jsonStringify.mjs +42 -0
  381. package/esm/tools/serialisation/jsonStringify.mjs.map +1 -0
  382. package/esm/tools/serialisation/sanitize.mjs +131 -0
  383. package/esm/tools/serialisation/sanitize.mjs.map +1 -0
  384. package/esm/tools/serialisation/stringify.mjs +17 -0
  385. package/esm/tools/serialisation/stringify.mjs.map +1 -0
  386. package/esm/tools/stackTrace/computeStackTrace.mjs +148 -0
  387. package/esm/tools/stackTrace/computeStackTrace.mjs.map +1 -0
  388. package/esm/tools/stackTrace/handlingStack.mjs +45 -0
  389. package/esm/tools/stackTrace/handlingStack.mjs.map +1 -0
  390. package/esm/tools/taskQueue.mjs +45 -0
  391. package/esm/tools/taskQueue.mjs.map +1 -0
  392. package/esm/tools/timer.mjs +20 -0
  393. package/esm/tools/timer.mjs.map +1 -0
  394. package/esm/tools/utils/arrayUtils.mjs +21 -0
  395. package/esm/tools/utils/arrayUtils.mjs.map +1 -0
  396. package/esm/tools/utils/browserDetection.mjs +31 -0
  397. package/esm/tools/utils/browserDetection.mjs.map +1 -0
  398. package/esm/tools/utils/byteUtils.mjs +23 -0
  399. package/esm/tools/utils/byteUtils.mjs.map +1 -0
  400. package/esm/tools/utils/functionUtils.mjs +35 -0
  401. package/esm/tools/utils/functionUtils.mjs.map +1 -0
  402. package/esm/tools/utils/numberUtils.mjs +22 -0
  403. package/esm/tools/utils/numberUtils.mjs.map +1 -0
  404. package/esm/tools/utils/objectUtils.mjs +31 -0
  405. package/esm/tools/utils/objectUtils.mjs.map +1 -0
  406. package/esm/tools/utils/polyfills.mjs +17 -0
  407. package/esm/tools/utils/polyfills.mjs.map +1 -0
  408. package/esm/tools/utils/responseUtils.mjs +15 -0
  409. package/esm/tools/utils/responseUtils.mjs.map +1 -0
  410. package/esm/tools/utils/stringUtils.mjs +66 -0
  411. package/esm/tools/utils/stringUtils.mjs.map +1 -0
  412. package/esm/tools/utils/timezone.mjs +12 -0
  413. package/esm/tools/utils/timezone.mjs.map +1 -0
  414. package/esm/tools/utils/urlPolyfill.mjs +51 -0
  415. package/esm/tools/utils/urlPolyfill.mjs.map +1 -0
  416. package/esm/tools/valueHistory.mjs +114 -0
  417. package/esm/tools/valueHistory.mjs.map +1 -0
  418. package/esm/transport/batch.mjs +77 -0
  419. package/esm/transport/batch.mjs.map +1 -0
  420. package/esm/transport/eventBridge.mjs +58 -0
  421. package/esm/transport/eventBridge.mjs.map +1 -0
  422. package/esm/transport/flushController.mjs +104 -0
  423. package/esm/transport/flushController.mjs.map +1 -0
  424. package/esm/transport/httpRequest.mjs +60 -0
  425. package/esm/transport/httpRequest.mjs.map +1 -0
  426. package/esm/transport/sendWithRetryStrategy.mjs +149 -0
  427. package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
  428. package/package.json +15 -4
  429. package/src/boot/init.ts +2 -2
  430. package/src/browser/addEventListener.ts +37 -5
  431. package/src/browser/browser.types.ts +127 -13
  432. package/src/browser/cookie.ts +21 -27
  433. package/src/browser/cookieAccess.ts +150 -0
  434. package/src/browser/fetch.ts +14 -0
  435. package/src/browser/fetchObservable.ts +22 -22
  436. package/src/browser/pageMayExitObservable.ts +7 -4
  437. package/src/browser/runOnReadyState.ts +3 -8
  438. package/src/browser/xhrObservable.ts +22 -12
  439. package/src/domain/allowedTrackingOrigins.ts +5 -5
  440. package/src/domain/bufferedData.ts +41 -14
  441. package/src/domain/configuration/configuration.ts +87 -72
  442. package/src/domain/configuration/endpointBuilder.ts +82 -52
  443. package/src/domain/configuration/index.ts +2 -2
  444. package/src/domain/connectivity/connectivity.ts +3 -15
  445. package/src/domain/console/consoleObservable.ts +3 -3
  446. package/src/domain/context/contextManager.ts +1 -1
  447. package/src/domain/context/contextUtils.ts +1 -1
  448. package/src/domain/context/defineContextMethod.ts +3 -3
  449. package/src/domain/context/storeContextManager.ts +9 -6
  450. package/src/domain/contexts/accountContext.ts +5 -5
  451. package/src/domain/contexts/globalContext.ts +4 -5
  452. package/src/domain/contexts/tabContext.ts +43 -0
  453. package/src/domain/contexts/telemetrySessionContext.ts +26 -0
  454. package/src/domain/contexts/userContext.ts +7 -11
  455. package/src/domain/error/error.ts +53 -23
  456. package/src/domain/error/error.types.ts +1 -1
  457. package/src/domain/error/trackRuntimeError.ts +11 -4
  458. package/src/domain/eventRateLimiter/createEventRateLimiter.ts +1 -1
  459. package/src/domain/intakeSites.ts +8 -3
  460. package/src/domain/report/reportObservable.ts +11 -7
  461. package/src/domain/sampler.ts +64 -0
  462. package/src/domain/session/sessionConstants.ts +2 -1
  463. package/src/domain/session/sessionManager.ts +281 -176
  464. package/src/domain/session/sessionState.ts +64 -8
  465. package/src/domain/session/sessionStore.ts +57 -223
  466. package/src/domain/session/storeStrategies/sessionInCookie.ts +121 -107
  467. package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +33 -21
  468. package/src/domain/session/storeStrategies/sessionInMemory.ts +55 -0
  469. package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +28 -6
  470. package/src/domain/synthetics/syntheticsWorkerValues.ts +44 -13
  471. package/src/domain/tags.ts +0 -16
  472. package/src/domain/telemetry/telemetry.ts +38 -34
  473. package/src/domain/telemetry/telemetryEvent.types.ts +116 -20
  474. package/src/domain/trackingConsent.ts +18 -3
  475. package/src/index.ts +51 -31
  476. package/src/tools/display.ts +2 -50
  477. package/src/tools/experimentalFeatures.ts +1 -4
  478. package/src/tools/getZoneJsOriginalValue.ts +3 -3
  479. package/src/tools/globalObject.ts +27 -41
  480. package/src/tools/instrumentMethod.ts +230 -20
  481. package/src/tools/matchOption.ts +3 -1
  482. package/src/tools/mockable.ts +32 -0
  483. package/src/tools/monitor.ts +14 -62
  484. package/src/tools/observable.ts +9 -1
  485. package/src/tools/queueMicrotask.ts +6 -1
  486. package/src/tools/readBytesFromStream.ts +3 -12
  487. package/src/tools/requestIdleCallback.ts +1 -1
  488. package/src/tools/serialisation/sanitize.ts +67 -65
  489. package/src/tools/serialisation/stringify.ts +18 -0
  490. package/src/tools/stackTrace/computeStackTrace.ts +15 -13
  491. package/src/tools/stackTrace/handlingStack.ts +14 -1
  492. package/src/tools/taskQueue.ts +5 -3
  493. package/src/tools/timer.ts +7 -6
  494. package/src/tools/utils/arrayUtils.ts +7 -0
  495. package/src/tools/utils/browserDetection.ts +8 -0
  496. package/src/tools/utils/byteUtils.ts +1 -5
  497. package/src/tools/utils/functionUtils.ts +2 -2
  498. package/src/tools/utils/objectUtils.ts +20 -0
  499. package/src/tools/utils/stringUtils.ts +4 -1
  500. package/src/tools/utils/urlPolyfill.ts +5 -4
  501. package/src/tools/valueHistory.ts +39 -6
  502. package/src/transport/batch.ts +9 -18
  503. package/src/transport/eventBridge.ts +23 -10
  504. package/src/transport/flushController.ts +17 -24
  505. package/src/transport/httpRequest.ts +4 -36
  506. package/src/transport/index.ts +1 -0
  507. package/src/transport/sendWithRetryStrategy.ts +1 -1
  508. package/cjs/browser/browser.types.js +0 -6
  509. package/cjs/browser/browser.types.js.map +0 -1
  510. package/cjs/domain/configuration/index.js +0 -16
  511. package/cjs/domain/configuration/index.js.map +0 -1
  512. package/cjs/domain/configuration/transportConfiguration.d.ts +0 -20
  513. package/cjs/domain/configuration/transportConfiguration.js +0 -54
  514. package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
  515. package/cjs/domain/connectivity/index.js +0 -18
  516. package/cjs/domain/connectivity/index.js.map +0 -1
  517. package/cjs/domain/contexts/rumInternalContext.type.js +0 -3
  518. package/cjs/domain/contexts/rumInternalContext.type.js.map +0 -1
  519. package/cjs/domain/deflate/index.js +0 -18
  520. package/cjs/domain/deflate/index.js.map +0 -1
  521. package/cjs/domain/report/browser.types.js +0 -3
  522. package/cjs/domain/report/browser.types.js.map +0 -1
  523. package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
  524. package/cjs/domain/session/oldCookiesMigration.js +0 -40
  525. package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
  526. package/cjs/domain/session/sessionStoreOperations.d.ts +0 -12
  527. package/cjs/domain/session/sessionStoreOperations.js +0 -119
  528. package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
  529. package/cjs/domain/telemetry/index.js +0 -28
  530. package/cjs/domain/telemetry/index.js.map +0 -1
  531. package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
  532. package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
  533. package/cjs/index.js.map +0 -1
  534. package/cjs/tools/abstractHooks.d.ts +0 -24
  535. package/cjs/tools/abstractHooks.js +0 -41
  536. package/cjs/tools/abstractHooks.js.map +0 -1
  537. package/cjs/tools/boundedBuffer.d.ts +0 -16
  538. package/cjs/tools/boundedBuffer.js +0 -32
  539. package/cjs/tools/boundedBuffer.js.map +0 -1
  540. package/cjs/tools/mergeInto.d.ts +0 -25
  541. package/cjs/tools/mergeInto.js +0 -98
  542. package/cjs/tools/mergeInto.js.map +0 -1
  543. package/cjs/tools/serialisation/context.js +0 -3
  544. package/cjs/tools/serialisation/context.js.map +0 -1
  545. package/cjs/tools/utils/timeUtils.d.ts +0 -53
  546. package/cjs/tools/utils/timeUtils.js +0 -101
  547. package/cjs/tools/utils/timeUtils.js.map +0 -1
  548. package/cjs/tools/utils/typeUtils.d.ts +0 -4
  549. package/cjs/tools/utils/typeUtils.js +0 -16
  550. package/cjs/tools/utils/typeUtils.js.map +0 -1
  551. package/cjs/transport/index.js +0 -15
  552. package/cjs/transport/index.js.map +0 -1
  553. package/esm/boot/displayAlreadyInitializedError.d.ts +0 -2
  554. package/esm/boot/displayAlreadyInitializedError.js +0 -7
  555. package/esm/boot/displayAlreadyInitializedError.js.map +0 -1
  556. package/esm/boot/init.d.ts +0 -14
  557. package/esm/boot/init.js +0 -35
  558. package/esm/boot/init.js.map +0 -1
  559. package/esm/browser/addEventListener.d.ts +0 -87
  560. package/esm/browser/addEventListener.js +0 -51
  561. package/esm/browser/addEventListener.js.map +0 -1
  562. package/esm/browser/browser.types.d.ts +0 -51
  563. package/esm/browser/browser.types.js +0 -5
  564. package/esm/browser/browser.types.js.map +0 -1
  565. package/esm/browser/cookie.d.ts +0 -28
  566. package/esm/browser/cookie.js +0 -103
  567. package/esm/browser/cookie.js.map +0 -1
  568. package/esm/browser/fetchObservable.d.ts +0 -38
  569. package/esm/browser/fetchObservable.js +0 -99
  570. package/esm/browser/fetchObservable.js.map +0 -1
  571. package/esm/browser/pageMayExitObservable.d.ts +0 -14
  572. package/esm/browser/pageMayExitObservable.js +0 -40
  573. package/esm/browser/pageMayExitObservable.js.map +0 -1
  574. package/esm/browser/runOnReadyState.d.ts +0 -5
  575. package/esm/browser/runOnReadyState.js +0 -16
  576. package/esm/browser/runOnReadyState.js.map +0 -1
  577. package/esm/browser/xhrObservable.d.ts +0 -24
  578. package/esm/browser/xhrObservable.js +0 -83
  579. package/esm/browser/xhrObservable.js.map +0 -1
  580. package/esm/domain/allowedTrackingOrigins.d.ts +0 -4
  581. package/esm/domain/allowedTrackingOrigins.js +0 -21
  582. package/esm/domain/allowedTrackingOrigins.js.map +0 -1
  583. package/esm/domain/bufferedData.d.ts +0 -14
  584. package/esm/domain/bufferedData.js +0 -19
  585. package/esm/domain/bufferedData.js.map +0 -1
  586. package/esm/domain/configuration/configuration.d.ts +0 -312
  587. package/esm/domain/configuration/configuration.js +0 -132
  588. package/esm/domain/configuration/configuration.js.map +0 -1
  589. package/esm/domain/configuration/endpointBuilder.d.ts +0 -12
  590. package/esm/domain/configuration/endpointBuilder.js +0 -77
  591. package/esm/domain/configuration/endpointBuilder.js.map +0 -1
  592. package/esm/domain/configuration/index.d.ts +0 -5
  593. package/esm/domain/configuration/index.js +0 -4
  594. package/esm/domain/configuration/index.js.map +0 -1
  595. package/esm/domain/configuration/transportConfiguration.d.ts +0 -20
  596. package/esm/domain/configuration/transportConfiguration.js +0 -50
  597. package/esm/domain/configuration/transportConfiguration.js.map +0 -1
  598. package/esm/domain/connectivity/connectivity.d.ts +0 -14
  599. package/esm/domain/connectivity/connectivity.js +0 -11
  600. package/esm/domain/connectivity/connectivity.js.map +0 -1
  601. package/esm/domain/connectivity/index.d.ts +0 -1
  602. package/esm/domain/connectivity/index.js +0 -2
  603. package/esm/domain/connectivity/index.js.map +0 -1
  604. package/esm/domain/console/consoleObservable.d.ts +0 -21
  605. package/esm/domain/console/consoleObservable.js +0 -80
  606. package/esm/domain/console/consoleObservable.js.map +0 -1
  607. package/esm/domain/context/contextConstants.d.ts +0 -21
  608. package/esm/domain/context/contextConstants.js +0 -15
  609. package/esm/domain/context/contextConstants.js.map +0 -1
  610. package/esm/domain/context/contextManager.d.ts +0 -19
  611. package/esm/domain/context/contextManager.js +0 -57
  612. package/esm/domain/context/contextManager.js.map +0 -1
  613. package/esm/domain/context/contextUtils.d.ts +0 -5
  614. package/esm/domain/context/contextUtils.js +0 -13
  615. package/esm/domain/context/contextUtils.js.map +0 -1
  616. package/esm/domain/context/defineContextMethod.d.ts +0 -6
  617. package/esm/domain/context/defineContextMethod.js +0 -17
  618. package/esm/domain/context/defineContextMethod.js.map +0 -1
  619. package/esm/domain/context/storeContextManager.d.ts +0 -6
  620. package/esm/domain/context/storeContextManager.js +0 -35
  621. package/esm/domain/context/storeContextManager.js.map +0 -1
  622. package/esm/domain/contexts/accountContext.d.ts +0 -26
  623. package/esm/domain/contexts/accountContext.js +0 -29
  624. package/esm/domain/contexts/accountContext.js.map +0 -1
  625. package/esm/domain/contexts/globalContext.d.ts +0 -18
  626. package/esm/domain/contexts/globalContext.js +0 -17
  627. package/esm/domain/contexts/globalContext.js.map +0 -1
  628. package/esm/domain/contexts/rumInternalContext.type.d.ts +0 -14
  629. package/esm/domain/contexts/rumInternalContext.type.js +0 -2
  630. package/esm/domain/contexts/rumInternalContext.type.js.map +0 -1
  631. package/esm/domain/contexts/userContext.d.ts +0 -29
  632. package/esm/domain/contexts/userContext.js +0 -41
  633. package/esm/domain/contexts/userContext.js.map +0 -1
  634. package/esm/domain/deflate/deflate.types.d.ts +0 -40
  635. package/esm/domain/deflate/deflate.types.js +0 -2
  636. package/esm/domain/deflate/deflate.types.js.map +0 -1
  637. package/esm/domain/deflate/index.d.ts +0 -1
  638. package/esm/domain/deflate/index.js +0 -2
  639. package/esm/domain/deflate/index.js.map +0 -1
  640. package/esm/domain/error/error.d.ts +0 -23
  641. package/esm/domain/error/error.js +0 -65
  642. package/esm/domain/error/error.js.map +0 -1
  643. package/esm/domain/error/error.types.d.ts +0 -47
  644. package/esm/domain/error/error.types.js +0 -10
  645. package/esm/domain/error/error.types.js.map +0 -1
  646. package/esm/domain/error/trackRuntimeError.d.ts +0 -11
  647. package/esm/domain/error/trackRuntimeError.js +0 -43
  648. package/esm/domain/error/trackRuntimeError.js.map +0 -1
  649. package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
  650. package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -38
  651. package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
  652. package/esm/domain/extension/extensionUtils.d.ts +0 -10
  653. package/esm/domain/extension/extensionUtils.js +0 -25
  654. package/esm/domain/extension/extensionUtils.js.map +0 -1
  655. package/esm/domain/intakeSites.d.ts +0 -8
  656. package/esm/domain/intakeSites.js +0 -8
  657. package/esm/domain/intakeSites.js.map +0 -1
  658. package/esm/domain/report/browser.types.d.ts +0 -34
  659. package/esm/domain/report/browser.types.js +0 -2
  660. package/esm/domain/report/browser.types.js.map +0 -1
  661. package/esm/domain/report/reportObservable.d.ts +0 -14
  662. package/esm/domain/report/reportObservable.js +0 -95
  663. package/esm/domain/report/reportObservable.js.map +0 -1
  664. package/esm/domain/resourceUtils.d.ts +0 -18
  665. package/esm/domain/resourceUtils.js +0 -17
  666. package/esm/domain/resourceUtils.js.map +0 -1
  667. package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
  668. package/esm/domain/session/oldCookiesMigration.js +0 -36
  669. package/esm/domain/session/oldCookiesMigration.js.map +0 -1
  670. package/esm/domain/session/sessionConstants.d.ts +0 -15
  671. package/esm/domain/session/sessionConstants.js +0 -13
  672. package/esm/domain/session/sessionConstants.js.map +0 -1
  673. package/esm/domain/session/sessionManager.d.ts +0 -28
  674. package/esm/domain/session/sessionManager.js +0 -196
  675. package/esm/domain/session/sessionManager.js.map +0 -1
  676. package/esm/domain/session/sessionState.d.ts +0 -16
  677. package/esm/domain/session/sessionState.js +0 -60
  678. package/esm/domain/session/sessionState.js.map +0 -1
  679. package/esm/domain/session/sessionStateValidation.d.ts +0 -3
  680. package/esm/domain/session/sessionStateValidation.js +0 -7
  681. package/esm/domain/session/sessionStateValidation.js.map +0 -1
  682. package/esm/domain/session/sessionStore.d.ts +0 -38
  683. package/esm/domain/session/sessionStore.js +0 -179
  684. package/esm/domain/session/sessionStore.js.map +0 -1
  685. package/esm/domain/session/sessionStoreOperations.d.ts +0 -12
  686. package/esm/domain/session/sessionStoreOperations.js +0 -114
  687. package/esm/domain/session/sessionStoreOperations.js.map +0 -1
  688. package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -12
  689. package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -98
  690. package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
  691. package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -6
  692. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -37
  693. package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
  694. package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -16
  695. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
  696. package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
  697. package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -12
  698. package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -24
  699. package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
  700. package/esm/domain/tags.d.ts +0 -6
  701. package/esm/domain/tags.js +0 -60
  702. package/esm/domain/tags.js.map +0 -1
  703. package/esm/domain/telemetry/index.d.ts +0 -4
  704. package/esm/domain/telemetry/index.js +0 -3
  705. package/esm/domain/telemetry/index.js.map +0 -1
  706. package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -18
  707. package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -6
  708. package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
  709. package/esm/domain/telemetry/telemetry.d.ts +0 -56
  710. package/esm/domain/telemetry/telemetry.js +0 -228
  711. package/esm/domain/telemetry/telemetry.js.map +0 -1
  712. package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -866
  713. package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
  714. package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
  715. package/esm/domain/trackingConsent.d.ts +0 -13
  716. package/esm/domain/trackingConsent.js +0 -24
  717. package/esm/domain/trackingConsent.js.map +0 -1
  718. package/esm/index.d.ts +0 -100
  719. package/esm/index.js +0 -76
  720. package/esm/index.js.map +0 -1
  721. package/esm/tools/abstractHooks.d.ts +0 -24
  722. package/esm/tools/abstractHooks.js +0 -37
  723. package/esm/tools/abstractHooks.js.map +0 -1
  724. package/esm/tools/abstractLifeCycle.d.ts +0 -23
  725. package/esm/tools/abstractLifeCycle.js +0 -24
  726. package/esm/tools/abstractLifeCycle.js.map +0 -1
  727. package/esm/tools/boundedBuffer.d.ts +0 -16
  728. package/esm/tools/boundedBuffer.js +0 -29
  729. package/esm/tools/boundedBuffer.js.map +0 -1
  730. package/esm/tools/catchUserErrors.d.ts +0 -1
  731. package/esm/tools/catchUserErrors.js +0 -12
  732. package/esm/tools/catchUserErrors.js.map +0 -1
  733. package/esm/tools/display.d.ts +0 -38
  734. package/esm/tools/display.js +0 -41
  735. package/esm/tools/display.js.map +0 -1
  736. package/esm/tools/encoder.d.ts +0 -54
  737. package/esm/tools/encoder.js +0 -37
  738. package/esm/tools/encoder.js.map +0 -1
  739. package/esm/tools/experimentalFeatures.d.ts +0 -21
  740. package/esm/tools/experimentalFeatures.js +0 -42
  741. package/esm/tools/experimentalFeatures.js.map +0 -1
  742. package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
  743. package/esm/tools/getZoneJsOriginalValue.js +0 -26
  744. package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
  745. package/esm/tools/globalObject.d.ts +0 -19
  746. package/esm/tools/globalObject.js +0 -40
  747. package/esm/tools/globalObject.js.map +0 -1
  748. package/esm/tools/instrumentMethod.d.ts +0 -75
  749. package/esm/tools/instrumentMethod.js +0 -114
  750. package/esm/tools/instrumentMethod.js.map +0 -1
  751. package/esm/tools/matchOption.d.ts +0 -8
  752. package/esm/tools/matchOption.js +0 -31
  753. package/esm/tools/matchOption.js.map +0 -1
  754. package/esm/tools/mergeInto.d.ts +0 -25
  755. package/esm/tools/mergeInto.js +0 -93
  756. package/esm/tools/mergeInto.js.map +0 -1
  757. package/esm/tools/monitor.d.ts +0 -9
  758. package/esm/tools/monitor.js +0 -52
  759. package/esm/tools/monitor.js.map +0 -1
  760. package/esm/tools/observable.d.ts +0 -30
  761. package/esm/tools/observable.js +0 -83
  762. package/esm/tools/observable.js.map +0 -1
  763. package/esm/tools/queueMicrotask.d.ts +0 -1
  764. package/esm/tools/queueMicrotask.js +0 -14
  765. package/esm/tools/queueMicrotask.js.map +0 -1
  766. package/esm/tools/readBytesFromStream.d.ts +0 -10
  767. package/esm/tools/readBytesFromStream.js +0 -25
  768. package/esm/tools/readBytesFromStream.js.map +0 -1
  769. package/esm/tools/requestIdleCallback.d.ts +0 -12
  770. package/esm/tools/requestIdleCallback.js +0 -30
  771. package/esm/tools/requestIdleCallback.js.map +0 -1
  772. package/esm/tools/sendToExtension.d.ts +0 -3
  773. package/esm/tools/sendToExtension.js +0 -8
  774. package/esm/tools/sendToExtension.js.map +0 -1
  775. package/esm/tools/serialisation/context.d.ts +0 -9
  776. package/esm/tools/serialisation/context.js +0 -2
  777. package/esm/tools/serialisation/context.js.map +0 -1
  778. package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
  779. package/esm/tools/serialisation/jsonStringify.js +0 -44
  780. package/esm/tools/serialisation/jsonStringify.js.map +0 -1
  781. package/esm/tools/serialisation/sanitize.d.ts +0 -18
  782. package/esm/tools/serialisation/sanitize.js +0 -185
  783. package/esm/tools/serialisation/sanitize.js.map +0 -1
  784. package/esm/tools/stackTrace/computeStackTrace.d.ts +0 -25
  785. package/esm/tools/stackTrace/computeStackTrace.js +0 -183
  786. package/esm/tools/stackTrace/computeStackTrace.js.map +0 -1
  787. package/esm/tools/stackTrace/handlingStack.d.ts +0 -10
  788. package/esm/tools/stackTrace/handlingStack.js +0 -41
  789. package/esm/tools/stackTrace/handlingStack.js.map +0 -1
  790. package/esm/tools/taskQueue.d.ts +0 -15
  791. package/esm/tools/taskQueue.js +0 -50
  792. package/esm/tools/taskQueue.js.map +0 -1
  793. package/esm/tools/timer.d.ts +0 -5
  794. package/esm/tools/timer.js +0 -16
  795. package/esm/tools/timer.js.map +0 -1
  796. package/esm/tools/utils/arrayUtils.d.ts +0 -3
  797. package/esm/tools/utils/arrayUtils.js +0 -15
  798. package/esm/tools/utils/arrayUtils.js.map +0 -1
  799. package/esm/tools/utils/browserDetection.d.ts +0 -8
  800. package/esm/tools/utils/browserDetection.js +0 -28
  801. package/esm/tools/utils/browserDetection.js.map +0 -1
  802. package/esm/tools/utils/byteUtils.d.ts +0 -8
  803. package/esm/tools/utils/byteUtils.js +0 -29
  804. package/esm/tools/utils/byteUtils.js.map +0 -1
  805. package/esm/tools/utils/functionUtils.d.ts +0 -8
  806. package/esm/tools/utils/functionUtils.js +0 -39
  807. package/esm/tools/utils/functionUtils.js.map +0 -1
  808. package/esm/tools/utils/numberUtils.d.ts +0 -9
  809. package/esm/tools/utils/numberUtils.js +0 -18
  810. package/esm/tools/utils/numberUtils.js.map +0 -1
  811. package/esm/tools/utils/objectUtils.d.ts +0 -10
  812. package/esm/tools/utils/objectUtils.js +0 -17
  813. package/esm/tools/utils/objectUtils.js.map +0 -1
  814. package/esm/tools/utils/polyfills.d.ts +0 -7
  815. package/esm/tools/utils/polyfills.js +0 -18
  816. package/esm/tools/utils/polyfills.js.map +0 -1
  817. package/esm/tools/utils/responseUtils.d.ts +0 -2
  818. package/esm/tools/utils/responseUtils.js +0 -13
  819. package/esm/tools/utils/responseUtils.js.map +0 -1
  820. package/esm/tools/utils/stringUtils.d.ts +0 -23
  821. package/esm/tools/utils/stringUtils.js +0 -84
  822. package/esm/tools/utils/stringUtils.js.map +0 -1
  823. package/esm/tools/utils/timeUtils.d.ts +0 -53
  824. package/esm/tools/utils/timeUtils.js +0 -84
  825. package/esm/tools/utils/timeUtils.js.map +0 -1
  826. package/esm/tools/utils/timezone.d.ts +0 -1
  827. package/esm/tools/utils/timezone.js +0 -10
  828. package/esm/tools/utils/timezone.js.map +0 -1
  829. package/esm/tools/utils/typeUtils.d.ts +0 -4
  830. package/esm/tools/utils/typeUtils.js +0 -13
  831. package/esm/tools/utils/typeUtils.js.map +0 -1
  832. package/esm/tools/utils/urlPolyfill.d.ts +0 -5
  833. package/esm/tools/utils/urlPolyfill.js +0 -52
  834. package/esm/tools/utils/urlPolyfill.js.map +0 -1
  835. package/esm/tools/valueHistory.d.ts +0 -27
  836. package/esm/tools/valueHistory.js +0 -100
  837. package/esm/tools/valueHistory.js.map +0 -1
  838. package/esm/transport/batch.d.ts +0 -16
  839. package/esm/transport/batch.js +0 -106
  840. package/esm/transport/batch.js.map +0 -1
  841. package/esm/transport/eventBridge.d.ts +0 -21
  842. package/esm/transport/eventBridge.js +0 -41
  843. package/esm/transport/eventBridge.js.map +0 -1
  844. package/esm/transport/flushController.d.ts +0 -65
  845. package/esm/transport/flushController.js +0 -119
  846. package/esm/transport/flushController.js.map +0 -1
  847. package/esm/transport/httpRequest.d.ts +0 -56
  848. package/esm/transport/httpRequest.js +0 -89
  849. package/esm/transport/httpRequest.js.map +0 -1
  850. package/esm/transport/index.d.ts +0 -7
  851. package/esm/transport/index.js +0 -5
  852. package/esm/transport/index.js.map +0 -1
  853. package/esm/transport/sendWithRetryStrategy.d.ts +0 -41
  854. package/esm/transport/sendWithRetryStrategy.js +0 -158
  855. package/esm/transport/sendWithRetryStrategy.js.map +0 -1
  856. package/src/boot/displayAlreadyInitializedError.spec.ts +0 -18
  857. package/src/boot/init.spec.ts +0 -50
  858. package/src/browser/addEventListener.spec.ts +0 -141
  859. package/src/browser/cookie.spec.ts +0 -53
  860. package/src/browser/fetchObservable.spec.ts +0 -334
  861. package/src/browser/pageMayExitObservable.spec.ts +0 -56
  862. package/src/browser/xhrObservable.spec.ts +0 -405
  863. package/src/domain/allowedTrackingOrigins.spec.ts +0 -210
  864. package/src/domain/bufferedData.spec.ts +0 -34
  865. package/src/domain/configuration/configuration.spec.ts +0 -236
  866. package/src/domain/configuration/endpointBuilder.spec.ts +0 -173
  867. package/src/domain/configuration/transportConfiguration.spec.ts +0 -130
  868. package/src/domain/configuration/transportConfiguration.ts +0 -78
  869. package/src/domain/connectivity/connectivity.spec.ts +0 -50
  870. package/src/domain/console/consoleObservable.spec.ts +0 -151
  871. package/src/domain/context/contextManager.spec.ts +0 -152
  872. package/src/domain/context/contextUtils.spec.ts +0 -26
  873. package/src/domain/context/storeContextManager.spec.ts +0 -103
  874. package/src/domain/contexts/accountContext.spec.ts +0 -99
  875. package/src/domain/contexts/globalContext.spec.ts +0 -88
  876. package/src/domain/contexts/userContext.spec.ts +0 -156
  877. package/src/domain/error/error.spec.ts +0 -294
  878. package/src/domain/error/trackRuntimeError.spec.ts +0 -343
  879. package/src/domain/eventRateLimiter/createEventRateLimiter.spec.ts +0 -119
  880. package/src/domain/extension/extensionUtils.spec.ts +0 -47
  881. package/src/domain/report/reportObservable.spec.ts +0 -71
  882. package/src/domain/session/oldCookiesMigration.spec.ts +0 -76
  883. package/src/domain/session/oldCookiesMigration.ts +0 -42
  884. package/src/domain/session/sessionManager.spec.ts +0 -684
  885. package/src/domain/session/sessionState.spec.ts +0 -88
  886. package/src/domain/session/sessionStore.spec.ts +0 -647
  887. package/src/domain/session/sessionStoreOperations.spec.ts +0 -234
  888. package/src/domain/session/sessionStoreOperations.ts +0 -131
  889. package/src/domain/session/storeStrategies/sessionInCookie.spec.ts +0 -228
  890. package/src/domain/session/storeStrategies/sessionInLocalStorage.spec.ts +0 -75
  891. package/src/domain/synthetics/syntheticsWorkerValues.spec.ts +0 -82
  892. package/src/domain/tags.spec.ts +0 -74
  893. package/src/domain/telemetry/telemetry.spec.ts +0 -494
  894. package/src/domain/trackingConsent.spec.ts +0 -44
  895. package/src/tools/abstractHooks.spec.ts +0 -76
  896. package/src/tools/abstractHooks.ts +0 -72
  897. package/src/tools/abstractLifeCycle.spec.ts +0 -46
  898. package/src/tools/boundedBuffer.spec.ts +0 -40
  899. package/src/tools/boundedBuffer.ts +0 -45
  900. package/src/tools/catchUserErrors.spec.ts +0 -20
  901. package/src/tools/encoder.spec.ts +0 -112
  902. package/src/tools/experimentalFeatures.spec.ts +0 -60
  903. package/src/tools/getZoneJsOriginalValue.spec.ts +0 -36
  904. package/src/tools/instrumentMethod.spec.ts +0 -381
  905. package/src/tools/matchOption.spec.ts +0 -41
  906. package/src/tools/mergeInto.spec.ts +0 -198
  907. package/src/tools/mergeInto.ts +0 -177
  908. package/src/tools/monitor.spec.ts +0 -172
  909. package/src/tools/observable.spec.ts +0 -259
  910. package/src/tools/queueMicrotask.spec.ts +0 -24
  911. package/src/tools/readBytesFromStream.spec.ts +0 -62
  912. package/src/tools/requestIdleCallback.spec.ts +0 -65
  913. package/src/tools/serialisation/jsonStringify.spec.ts +0 -76
  914. package/src/tools/serialisation/sanitize.spec.ts +0 -284
  915. package/src/tools/stackTrace/capturedExceptions.specHelper.ts +0 -316
  916. package/src/tools/stackTrace/computeStackTrace.spec.ts +0 -1007
  917. package/src/tools/stackTrace/handlingStack.spec.ts +0 -20
  918. package/src/tools/taskQueue.spec.ts +0 -60
  919. package/src/tools/timer.spec.ts +0 -76
  920. package/src/tools/utils/browserDetection.spec.ts +0 -120
  921. package/src/tools/utils/byteUtils.spec.ts +0 -29
  922. package/src/tools/utils/functionUtils.spec.ts +0 -229
  923. package/src/tools/utils/numberUtils.spec.ts +0 -27
  924. package/src/tools/utils/stringUtils.spec.ts +0 -74
  925. package/src/tools/utils/timeUtils.ts +0 -117
  926. package/src/tools/utils/typeUtils.spec.ts +0 -25
  927. package/src/tools/utils/typeUtils.ts +0 -12
  928. package/src/tools/utils/urlPolyfill.spec.ts +0 -55
  929. package/src/tools/valueHistory.spec.ts +0 -180
  930. package/src/transport/batch.spec.ts +0 -261
  931. package/src/transport/eventBridge.spec.ts +0 -90
  932. package/src/transport/flushController.spec.ts +0 -267
  933. package/src/transport/httpRequest.spec.ts +0 -400
  934. package/src/transport/sendWithRetryStrategy.spec.ts +0 -393
@@ -1,104 +1,98 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectCookieStrategy = selectCookieStrategy;
4
- exports.initCookieStrategy = initCookieStrategy;
5
- exports.retrieveSessionCookie = retrieveSessionCookie;
6
- exports.buildCookieOptions = buildCookieOptions;
7
- const objectUtils_1 = require("../../../tools/utils/objectUtils");
8
- const browserDetection_1 = require("../../../tools/utils/browserDetection");
9
- const cookie_1 = require("../../../browser/cookie");
10
- const oldCookiesMigration_1 = require("../oldCookiesMigration");
11
- const sessionConstants_1 = require("../sessionConstants");
12
- const sessionState_1 = require("../sessionState");
13
- const sessionStoreStrategy_1 = require("./sessionStoreStrategy");
1
+ const require_objectUtils = require("../../../tools/utils/objectUtils.js");
2
+ const require_cookie = require("../../../browser/cookie.js");
3
+ const require_monitor = require("../../../tools/monitor.js");
4
+ const require_observable = require("../../../tools/observable.js");
5
+ const require_mockable = require("../../../tools/mockable.js");
6
+ const require_sessionConstants = require("../sessionConstants.js");
7
+ const require_sessionState = require("../sessionState.js");
8
+ const require_cookieAccess = require("../../../browser/cookieAccess.js");
9
+ const require_sessionStoreStrategy = require("./sessionStoreStrategy.js");
10
+ //#region src/domain/session/storeStrategies/sessionInCookie.ts
14
11
  const SESSION_COOKIE_VERSION = 0;
15
- function selectCookieStrategy(initConfiguration) {
16
- const cookieOptions = buildCookieOptions(initConfiguration);
17
- return cookieOptions && (0, cookie_1.areCookiesAuthorized)(cookieOptions)
18
- ? { type: sessionConstants_1.SessionPersistence.COOKIE, cookieOptions }
19
- : undefined;
12
+ async function selectCookieStrategy(configuration) {
13
+ const { cookieOptions } = configuration;
14
+ if (!cookieOptions) return;
15
+ if (require_cookieAccess.isCookieStoreSupported() && await require_cookieAccess.areCookiesAuthorized(require_cookieAccess.createCookieStoreAccess, cookieOptions)) return {
16
+ type: require_sessionConstants.SessionPersistence.COOKIE,
17
+ cookieOptions,
18
+ cookieApi: 1
19
+ };
20
+ if (await require_cookieAccess.areCookiesAuthorized(require_cookieAccess.createDocumentCookieAccess, cookieOptions)) return {
21
+ type: require_sessionConstants.SessionPersistence.COOKIE,
22
+ cookieOptions,
23
+ cookieApi: 0
24
+ };
20
25
  }
21
- function initCookieStrategy(configuration, cookieOptions) {
22
- const cookieStore = {
23
- /**
24
- * Lock strategy allows mitigating issues due to concurrent access to cookie.
25
- * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.
26
- */
27
- isLockEnabled: (0, browserDetection_1.isChromium)(),
28
- persistSession: (sessionState) => storeSessionCookie(cookieOptions, configuration, sessionState, sessionConstants_1.SESSION_EXPIRATION_DELAY),
29
- retrieveSession: () => retrieveSessionCookie(cookieOptions, configuration),
30
- expireSession: (sessionState) => storeSessionCookie(cookieOptions, configuration, (0, sessionState_1.getExpiredSessionState)(sessionState, configuration), sessionConstants_1.SESSION_TIME_OUT_DELAY),
31
- };
32
- (0, oldCookiesMigration_1.tryOldCookiesMigration)(cookieStore);
33
- return cookieStore;
26
+ let pendingChain;
27
+ function initCookieStrategy(sessionStoreStrategyType, configuration) {
28
+ const { cookieOptions, cookieApi } = sessionStoreStrategyType;
29
+ const sessionObservable = new require_observable.Observable();
30
+ const trackAnonymousUser = !!configuration.trackAnonymousUser;
31
+ const opts = encodeCookieOptions(cookieOptions);
32
+ const cookieAccess = require_mockable.mockable(createCookieAccess)(cookieApi, cookieOptions);
33
+ let isFirstCall = true;
34
+ cookieAccess.observable.subscribe(() => {
35
+ cookieAccess.getAll().then((cookieValues) => {
36
+ sessionObservable.notify(findMatchingSessionState(cookieValues, opts));
37
+ }).catch((error) => require_monitor.monitorError(/* @__PURE__ */ new Error(`Error while reading session cookies on change: ${error}`)));
38
+ });
39
+ function applyAndWrite(fn) {
40
+ return cookieAccess.getAllAndSet((cookieValues) => {
41
+ let currentState = findMatchingSessionState(cookieValues, opts);
42
+ if (isFirstCall && require_objectUtils.isEmptyObject(currentState)) currentState = findMatchingSessionState(require_cookie.getCookies(require_sessionStoreStrategy.LEGACY_SESSION_STORE_KEY), opts);
43
+ isFirstCall = false;
44
+ return {
45
+ value: buildSessionString(fn(currentState), cookieOptions),
46
+ expireDelay: trackAnonymousUser ? require_sessionConstants.SESSION_COOKIE_EXPIRATION_DELAY : require_sessionConstants.SESSION_TIME_OUT_DELAY
47
+ };
48
+ });
49
+ }
50
+ return {
51
+ async setSessionState(fn, _operation) {
52
+ if (typeof navigator !== "undefined" && navigator.locks) await navigator.locks.request(require_sessionStoreStrategy.SESSION_STORE_KEY, () => applyAndWrite(fn)).catch((error) => {
53
+ if (isContextGoingAwayError(error)) return;
54
+ throw error;
55
+ });
56
+ else {
57
+ pendingChain = (pendingChain ?? Promise.resolve()).then(() => applyAndWrite(fn));
58
+ await pendingChain;
59
+ }
60
+ },
61
+ sessionObservable
62
+ };
34
63
  }
35
- function storeSessionCookie(options, configuration, sessionState, defaultTimeout) {
36
- let sessionStateString = (0, sessionState_1.toSessionString)(sessionState);
37
- if (configuration.betaEncodeCookieOptions) {
38
- sessionStateString = (0, sessionState_1.toSessionString)({
39
- ...sessionState,
40
- // deleting a cookie is writing a new cookie with an empty value
41
- // we don't want to store the cookie options in this case otherwise the cookie will not be deleted
42
- ...(!(0, objectUtils_1.isEmptyObject)(sessionState) ? { c: encodeCookieOptions(options) } : {}),
43
- });
44
- }
45
- (0, cookie_1.setCookie)(sessionStoreStrategy_1.SESSION_STORE_KEY, sessionStateString, configuration.trackAnonymousUser ? sessionConstants_1.SESSION_COOKIE_EXPIRATION_DELAY : defaultTimeout, options);
64
+ function isContextGoingAwayError(error) {
65
+ if (!(error instanceof Error)) return false;
66
+ return error.name === "AbortError" || error.message.includes("no longer runnable");
46
67
  }
47
- /**
48
- * Retrieve the session state from the cookie that was set with the same cookie options
49
- * If there is no match, return the first cookie, because that's how `getCookie()` works
50
- */
51
- function retrieveSessionCookie(cookieOptions, configuration) {
52
- if (configuration.betaEncodeCookieOptions) {
53
- return retrieveSessionCookieFromEncodedCookie(cookieOptions);
54
- }
55
- const sessionString = (0, cookie_1.getCookie)(sessionStoreStrategy_1.SESSION_STORE_KEY);
56
- const sessionState = (0, sessionState_1.toSessionState)(sessionString);
57
- return sessionState;
68
+ function createCookieAccess(cookieApi, cookieOptions) {
69
+ return cookieApi === 1 ? require_cookieAccess.createCookieStoreAccess(require_sessionStoreStrategy.SESSION_STORE_KEY, cookieOptions) : require_cookieAccess.createDocumentCookieAccess(require_sessionStoreStrategy.SESSION_STORE_KEY, cookieOptions);
58
70
  }
59
- function buildCookieOptions(initConfiguration) {
60
- const cookieOptions = {};
61
- cookieOptions.secure =
62
- !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie;
63
- cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
64
- cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
65
- if (initConfiguration.trackSessionAcrossSubdomains) {
66
- const currentSite = (0, cookie_1.getCurrentSite)();
67
- if (!currentSite) {
68
- return;
69
- }
70
- cookieOptions.domain = currentSite;
71
- }
72
- return cookieOptions;
71
+ function findMatchingSessionState(items, opts) {
72
+ let sessionState;
73
+ for (const item of items.slice().reverse()) {
74
+ sessionState = require_sessionState.toSessionState(item);
75
+ if (sessionState.c === opts) break;
76
+ }
77
+ delete sessionState?.c;
78
+ return sessionState ?? {};
73
79
  }
74
- function encodeCookieOptions(cookieOptions) {
75
- const domainCount = cookieOptions.domain ? cookieOptions.domain.split('.').length - 1 : 0;
76
- /* eslint-disable no-bitwise */
77
- let byte = 0;
78
- byte |= SESSION_COOKIE_VERSION << 5; // Store version in upper 3 bits
79
- byte |= domainCount << 1; // Store domain count in next 4 bits
80
- byte |= cookieOptions.crossSite ? 1 : 0; // Store useCrossSiteScripting in next bit
81
- /* eslint-enable no-bitwise */
82
- return byte.toString(16); // Convert to hex string
80
+ function buildSessionString(sessionState, cookieOptions) {
81
+ return require_sessionState.toSessionString(require_objectUtils.isEmptyObject(sessionState) ? sessionState : {
82
+ ...sessionState,
83
+ c: encodeCookieOptions(cookieOptions)
84
+ });
83
85
  }
84
- /**
85
- * Retrieve the session state from the cookie that was set with the same cookie options.
86
- * If there is no match, fallback to the first cookie, (because that's how `getCookie()` works)
87
- * and this allows to keep the current session id when we release this feature.
88
- */
89
- function retrieveSessionCookieFromEncodedCookie(cookieOptions) {
90
- const cookies = (0, cookie_1.getCookies)(sessionStoreStrategy_1.SESSION_STORE_KEY);
91
- const opts = encodeCookieOptions(cookieOptions);
92
- let sessionState;
93
- // reverse the cookies so that if there is no match, the cookie returned is the first one
94
- for (const cookie of cookies.reverse()) {
95
- sessionState = (0, sessionState_1.toSessionState)(cookie);
96
- if (sessionState.c === opts) {
97
- break;
98
- }
99
- }
100
- // remove the cookie options from the session state as this is not part of the session state
101
- sessionState === null || sessionState === void 0 ? true : delete sessionState.c;
102
- return sessionState !== null && sessionState !== void 0 ? sessionState : {};
86
+ function encodeCookieOptions(cookieOptions) {
87
+ const domainCount = cookieOptions.domain ? cookieOptions.domain.split(".").length - 1 : 0;
88
+ let byte = 0;
89
+ byte |= SESSION_COOKIE_VERSION << 5;
90
+ byte |= domainCount << 1;
91
+ byte |= cookieOptions.crossSite ? 1 : 0;
92
+ return byte.toString(16);
103
93
  }
94
+ //#endregion
95
+ exports.initCookieStrategy = initCookieStrategy;
96
+ exports.selectCookieStrategy = selectCookieStrategy;
97
+
104
98
  //# sourceMappingURL=sessionInCookie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionInCookie.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionInCookie.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionInCookie.js","names":["isCookieStoreSupported","areCookiesAuthorized","createCookieStoreAccess","SessionPersistence","createDocumentCookieAccess","Observable","mockable","monitorError","isEmptyObject","getCookies","LEGACY_SESSION_STORE_KEY","SESSION_COOKIE_EXPIRATION_DELAY","SESSION_TIME_OUT_DELAY","SESSION_STORE_KEY","toSessionState","toSessionString"],"sources":["../../../../src/domain/session/storeStrategies/sessionInCookie.ts"],"sourcesContent":["import { isEmptyObject } from '../../../tools/utils/objectUtils'\nimport type { CookieOptions } from '../../../browser/cookie'\nimport { getCookies } from '../../../browser/cookie'\nimport type { Configuration } from '../../configuration'\nimport { SESSION_COOKIE_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport { toSessionString, toSessionState } from '../sessionState'\nimport { Observable } from '../../../tools/observable'\nimport { mockable } from '../../../tools/mockable'\nimport { monitorError } from '../../../tools/monitor'\nimport type { CookieAccess } from '../../../browser/cookieAccess'\nimport {\n areCookiesAuthorized,\n createCookieStoreAccess,\n createDocumentCookieAccess,\n isCookieStoreSupported,\n} from '../../../browser/cookieAccess'\nimport { CookieApi, LEGACY_SESSION_STORE_KEY, SESSION_STORE_KEY } from './sessionStoreStrategy'\nimport type {\n SessionStoreStrategy,\n SessionStoreStrategyType,\n CookieSessionStoreStrategyType,\n SessionStateOperation,\n} from './sessionStoreStrategy'\n\nconst SESSION_COOKIE_VERSION = 0\n\nexport async function selectCookieStrategy(\n configuration: Configuration\n): Promise<SessionStoreStrategyType | undefined> {\n const { cookieOptions } = configuration\n if (!cookieOptions) {\n return undefined\n }\n\n if (isCookieStoreSupported() && (await areCookiesAuthorized(createCookieStoreAccess, cookieOptions))) {\n return { type: SessionPersistence.COOKIE, cookieOptions, cookieApi: CookieApi.COOKIE_STORE }\n }\n\n if (await areCookiesAuthorized(createDocumentCookieAccess, cookieOptions)) {\n return { type: SessionPersistence.COOKIE, cookieOptions, cookieApi: CookieApi.DOCUMENT_COOKIE }\n }\n\n return undefined\n}\n\n// Promise chain serializes calls when Web Locks are unavailable\nlet pendingChain: Promise<void> | undefined\n\nexport function initCookieStrategy(\n sessionStoreStrategyType: CookieSessionStoreStrategyType,\n configuration: Configuration\n): SessionStoreStrategy {\n const { cookieOptions, cookieApi } = sessionStoreStrategyType\n const sessionObservable = new Observable<SessionState>()\n const trackAnonymousUser = !!configuration.trackAnonymousUser\n const opts = encodeCookieOptions(cookieOptions)\n const cookieAccess = mockable(createCookieAccess)(cookieApi, cookieOptions)\n let isFirstCall = true\n\n cookieAccess.observable.subscribe(() => {\n cookieAccess\n .getAll()\n .then((cookieValues) => {\n sessionObservable.notify(findMatchingSessionState(cookieValues, opts))\n })\n .catch((error) => monitorError(new Error(`Error while reading session cookies on change: ${error}`)))\n })\n\n function applyAndWrite(fn: (state: SessionState) => SessionState) {\n return cookieAccess.getAllAndSet((cookieValues) => {\n let currentState = findMatchingSessionState(cookieValues, opts)\n\n if (isFirstCall && isEmptyObject(currentState)) {\n currentState = findMatchingSessionState(getCookies(LEGACY_SESSION_STORE_KEY), opts)\n }\n isFirstCall = false\n\n const newState = fn(currentState)\n const sessionString = buildSessionString(newState, cookieOptions)\n const expireDelay = trackAnonymousUser ? SESSION_COOKIE_EXPIRATION_DELAY : SESSION_TIME_OUT_DELAY\n\n return { value: sessionString, expireDelay }\n })\n }\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n if (typeof navigator !== 'undefined' && navigator.locks) {\n await navigator.locks\n .request(SESSION_STORE_KEY, () => applyAndWrite(fn))\n .catch((error: unknown) => {\n if (isContextGoingAwayError(error)) {\n return\n }\n throw error\n })\n } else {\n pendingChain = (pendingChain ?? Promise.resolve()).then(() => applyAndWrite(fn))\n await pendingChain\n }\n },\n sessionObservable,\n }\n}\n\n// Thrown when the browsing context tears down mid-lock-request.\n// - \"AbortError: Promise was rejected because the browsing context is going away\" (Webkit)\n// - \"Error: Failed to execute 'request' on 'LockManager': The provided callback is no longer runnable.\" (Chromium)\nfunction isContextGoingAwayError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false\n }\n return error.name === 'AbortError' || error.message.includes('no longer runnable')\n}\n\nexport function createCookieAccess(cookieApi: CookieApi, cookieOptions: CookieOptions): CookieAccess {\n return cookieApi === CookieApi.COOKIE_STORE\n ? createCookieStoreAccess(SESSION_STORE_KEY, cookieOptions)\n : createDocumentCookieAccess(SESSION_STORE_KEY, cookieOptions)\n}\n\nfunction findMatchingSessionState(items: string[], opts: string): SessionState {\n let sessionState: SessionState | undefined\n\n // reverse the cookies so that if there is no match, the cookie returned is the first one\n for (const item of items.slice().reverse()) {\n sessionState = toSessionState(item)\n if (sessionState.c === opts) {\n break\n }\n }\n\n // remove the cookie options from the session state as this is not part of the session state\n delete sessionState?.c\n\n return sessionState ?? {}\n}\n\nfunction buildSessionString(sessionState: SessionState, cookieOptions: CookieOptions): string {\n return toSessionString(\n isEmptyObject(sessionState) ? sessionState : { ...sessionState, c: encodeCookieOptions(cookieOptions) }\n )\n}\n\nfunction encodeCookieOptions(cookieOptions: CookieOptions): string {\n const domainCount = cookieOptions.domain ? cookieOptions.domain.split('.').length - 1 : 0\n\n /* eslint-disable no-bitwise */\n let byte = 0\n byte |= SESSION_COOKIE_VERSION << 5 // Store version in upper 3 bits\n byte |= domainCount << 1 // Store domain count in next 4 bits\n byte |= cookieOptions.crossSite ? 1 : 0 // Store useCrossSiteScripting in next bit\n /* eslint-enable no-bitwise */\n\n return byte.toString(16) // Convert to hex string\n}\n"],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- import type { Configuration } from '../../configuration';
2
- import type { SessionState } from '../sessionState';
3
1
  import type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy';
4
2
  export declare function selectLocalStorageStrategy(): SessionStoreStrategyType | undefined;
5
- export declare function initLocalStorageStrategy(configuration: Configuration): SessionStoreStrategy;
6
- export declare function retrieveSessionFromLocalStorage(): SessionState;
3
+ export declare function initLocalStorageStrategy(): SessionStoreStrategy;
@@ -1,42 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectLocalStorageStrategy = selectLocalStorageStrategy;
4
- exports.initLocalStorageStrategy = initLocalStorageStrategy;
5
- exports.retrieveSessionFromLocalStorage = retrieveSessionFromLocalStorage;
6
- const stringUtils_1 = require("../../../tools/utils/stringUtils");
7
- const sessionConstants_1 = require("../sessionConstants");
8
- const sessionState_1 = require("../sessionState");
9
- const sessionStoreStrategy_1 = require("./sessionStoreStrategy");
10
- const LOCAL_STORAGE_TEST_KEY = '_oo_test_';
1
+ const require_stringUtils = require("../../../tools/utils/stringUtils.js");
2
+ const require_observable = require("../../../tools/observable.js");
3
+ const require_addEventListener = require("../../../browser/addEventListener.js");
4
+ const require_sessionConstants = require("../sessionConstants.js");
5
+ const require_sessionState = require("../sessionState.js");
6
+ const require_sessionStoreStrategy = require("./sessionStoreStrategy.js");
7
+ //#region src/domain/session/storeStrategies/sessionInLocalStorage.ts
8
+ const LOCAL_STORAGE_TEST_KEY = "_oo_test_";
11
9
  function selectLocalStorageStrategy() {
12
- try {
13
- const id = (0, stringUtils_1.generateUUID)();
14
- const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;
15
- localStorage.setItem(testKey, id);
16
- const retrievedId = localStorage.getItem(testKey);
17
- localStorage.removeItem(testKey);
18
- return id === retrievedId ? { type: sessionConstants_1.SessionPersistence.LOCAL_STORAGE } : undefined;
19
- }
20
- catch (_a) {
21
- return undefined;
22
- }
23
- }
24
- function initLocalStorageStrategy(configuration) {
25
- return {
26
- isLockEnabled: false,
27
- persistSession: persistInLocalStorage,
28
- retrieveSession: retrieveSessionFromLocalStorage,
29
- expireSession: (sessionState) => expireSessionFromLocalStorage(sessionState, configuration),
30
- };
31
- }
32
- function persistInLocalStorage(sessionState) {
33
- localStorage.setItem(sessionStoreStrategy_1.SESSION_STORE_KEY, (0, sessionState_1.toSessionString)(sessionState));
10
+ try {
11
+ const id = require_stringUtils.generateUUID();
12
+ const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`;
13
+ localStorage.setItem(testKey, id);
14
+ const retrievedId = localStorage.getItem(testKey);
15
+ localStorage.removeItem(testKey);
16
+ return id === retrievedId ? { type: require_sessionConstants.SessionPersistence.LOCAL_STORAGE } : void 0;
17
+ } catch {
18
+ return;
19
+ }
34
20
  }
35
- function retrieveSessionFromLocalStorage() {
36
- const sessionString = localStorage.getItem(sessionStoreStrategy_1.SESSION_STORE_KEY);
37
- return (0, sessionState_1.toSessionState)(sessionString);
38
- }
39
- function expireSessionFromLocalStorage(previousSessionState, configuration) {
40
- persistInLocalStorage((0, sessionState_1.getExpiredSessionState)(previousSessionState, configuration));
21
+ function initLocalStorageStrategy() {
22
+ const sessionObservable = new require_observable.Observable((observable) => require_addEventListener.addEventListener(window, "storage", (event) => {
23
+ if (event.key === "_oo_s_v2" && event.storageArea === localStorage) observable.notify(require_sessionState.toSessionState(event.newValue));
24
+ }).stop);
25
+ let isFirstCall = true;
26
+ return {
27
+ async setSessionState(fn, _operation) {
28
+ let currentState = require_sessionState.toSessionState(localStorage.getItem(require_sessionStoreStrategy.SESSION_STORE_KEY));
29
+ if (isFirstCall && require_sessionState.isSessionInNotStartedState(currentState)) currentState = require_sessionState.toSessionState(localStorage.getItem(require_sessionStoreStrategy.LEGACY_SESSION_STORE_KEY));
30
+ isFirstCall = false;
31
+ const newState = fn(currentState);
32
+ localStorage.setItem(require_sessionStoreStrategy.SESSION_STORE_KEY, require_sessionState.toSessionString(newState));
33
+ await Promise.resolve();
34
+ sessionObservable.notify(newState);
35
+ },
36
+ sessionObservable
37
+ };
41
38
  }
39
+ //#endregion
40
+ exports.initLocalStorageStrategy = initLocalStorageStrategy;
41
+ exports.selectLocalStorageStrategy = selectLocalStorageStrategy;
42
+
42
43
  //# sourceMappingURL=sessionInLocalStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionInLocalStorage.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionInLocalStorage.ts"],"names":[],"mappings":";;AAUA,gEAWC;AAED,4DAOC;AAMD,0EAGC;AAvCD,kEAA+D;AAE/D,0DAAwD;AAExD,kDAAyF;AAEzF,iEAA0D;AAE1D,MAAM,sBAAsB,GAAG,WAAW,CAAA;AAE1C,SAAgB,0BAA0B;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAA,0BAAY,GAAE,CAAA;QACzB,MAAM,OAAO,GAAG,GAAG,sBAAsB,GAAG,EAAE,EAAE,CAAA;QAChD,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACjC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACjD,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAChC,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qCAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,aAA4B;IACnE,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,qBAAqB;QACrC,eAAe,EAAE,+BAA+B;QAChD,aAAa,EAAE,CAAC,YAA0B,EAAE,EAAE,CAAC,6BAA6B,CAAC,YAAY,EAAE,aAAa,CAAC;KAC1G,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,YAA0B;IACvD,YAAY,CAAC,OAAO,CAAC,wCAAiB,EAAE,IAAA,8BAAe,EAAC,YAAY,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAgB,+BAA+B;IAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,wCAAiB,CAAC,CAAA;IAC7D,OAAO,IAAA,6BAAc,EAAC,aAAa,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,6BAA6B,CAAC,oBAAkC,EAAE,aAA4B;IACrG,qBAAqB,CAAC,IAAA,qCAAsB,EAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAA;AACpF,CAAC"}
1
+ {"version":3,"file":"sessionInLocalStorage.js","names":["generateUUID","SessionPersistence","Observable","addEventListener","toSessionState","SESSION_STORE_KEY","isSessionInNotStartedState","LEGACY_SESSION_STORE_KEY","toSessionString"],"sources":["../../../../src/domain/session/storeStrategies/sessionInLocalStorage.ts"],"sourcesContent":["import { generateUUID } from '../../../tools/utils/stringUtils'\nimport { Observable } from '../../../tools/observable'\nimport { addEventListener } from '../../../browser/addEventListener'\nimport { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport { isSessionInNotStartedState, toSessionString, toSessionState } from '../sessionState'\nimport type { SessionStateOperation, SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\nimport { SESSION_STORE_KEY, LEGACY_SESSION_STORE_KEY } from './sessionStoreStrategy'\n\nconst LOCAL_STORAGE_TEST_KEY = '_oo_test_'\n\nexport function selectLocalStorageStrategy(): SessionStoreStrategyType | undefined {\n try {\n const id = generateUUID()\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`\n localStorage.setItem(testKey, id)\n const retrievedId = localStorage.getItem(testKey)\n localStorage.removeItem(testKey)\n return id === retrievedId ? { type: SessionPersistence.LOCAL_STORAGE } : undefined\n } catch {\n return undefined\n }\n}\n\nexport function initLocalStorageStrategy(): SessionStoreStrategy {\n const sessionObservable = new Observable<SessionState>(\n (observable) =>\n addEventListener(window, 'storage', (event) => {\n if (event.key === SESSION_STORE_KEY && event.storageArea === localStorage) {\n observable.notify(toSessionState(event.newValue))\n }\n }).stop\n )\n\n let isFirstCall = true\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n let currentState = toSessionState(localStorage.getItem(SESSION_STORE_KEY))\n\n if (isFirstCall && isSessionInNotStartedState(currentState)) {\n currentState = toSessionState(localStorage.getItem(LEGACY_SESSION_STORE_KEY))\n }\n isFirstCall = false\n\n const newState = fn(currentState)\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(newState))\n await Promise.resolve()\n sessionObservable.notify(newState)\n },\n sessionObservable,\n }\n}\n"],"mappings":";;;;;;;AASA,MAAM,yBAAyB;AAE/B,SAAgB,6BAAmE;CACjF,IAAI;EACF,MAAM,KAAKA,oBAAAA,aAAa;EACxB,MAAM,UAAU,GAAG,yBAAyB;EAC5C,aAAa,QAAQ,SAAS,EAAE;EAChC,MAAM,cAAc,aAAa,QAAQ,OAAO;EAChD,aAAa,WAAW,OAAO;EAC/B,OAAO,OAAO,cAAc,EAAE,MAAMC,yBAAAA,mBAAmB,cAAc,IAAI,KAAA;CAC3E,QAAQ;EACN;CACF;AACF;AAEA,SAAgB,2BAAiD;CAC/D,MAAM,oBAAoB,IAAIC,mBAAAA,YAC3B,eACCC,yBAAAA,iBAAiB,QAAQ,YAAY,UAAU;EAC7C,IAAI,MAAM,QAAA,cAA6B,MAAM,gBAAgB,cAC3D,WAAW,OAAOC,qBAAAA,eAAe,MAAM,QAAQ,CAAC;CAEpD,CAAC,CAAC,CAAC,IACP;CAEA,IAAI,cAAc;CAElB,OAAO;EACL,MAAM,gBACJ,IACA,YACe;GACf,IAAI,eAAeA,qBAAAA,eAAe,aAAa,QAAQC,6BAAAA,iBAAiB,CAAC;GAEzE,IAAI,eAAeC,qBAAAA,2BAA2B,YAAY,GACxD,eAAeF,qBAAAA,eAAe,aAAa,QAAQG,6BAAAA,wBAAwB,CAAC;GAE9E,cAAc;GAEd,MAAM,WAAW,GAAG,YAAY;GAChC,aAAa,QAAQF,6BAAAA,mBAAmBG,qBAAAA,gBAAgB,QAAQ,CAAC;GACjE,MAAM,QAAQ,QAAQ;GACtB,kBAAkB,OAAO,QAAQ;EACnC;EACA;CACF;AACF"}
@@ -0,0 +1,12 @@
1
+ import type { SessionState } from '../sessionState';
2
+ import type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy';
3
+ export declare const MEMORY_SESSION_STORE_KEY = "_DD_SESSION";
4
+ export interface MemorySession {
5
+ state?: SessionState;
6
+ onChange?: (state: SessionState) => void;
7
+ }
8
+ export interface GlobalObjectWithSession {
9
+ [MEMORY_SESSION_STORE_KEY]?: MemorySession;
10
+ }
11
+ export declare function selectMemorySessionStoreStrategy(): SessionStoreStrategyType;
12
+ export declare function initMemorySessionStoreStrategy(): SessionStoreStrategy;
@@ -0,0 +1,35 @@
1
+ const require_objectUtils = require("../../../tools/utils/objectUtils.js");
2
+ const require_globalObject = require("../../../tools/globalObject.js");
3
+ const require_observable = require("../../../tools/observable.js");
4
+ const require_sessionConstants = require("../sessionConstants.js");
5
+ //#region src/domain/session/storeStrategies/sessionInMemory.ts
6
+ const MEMORY_SESSION_STORE_KEY = "_DD_SESSION";
7
+ function selectMemorySessionStoreStrategy() {
8
+ return { type: require_sessionConstants.SessionPersistence.MEMORY };
9
+ }
10
+ function initMemorySessionStoreStrategy() {
11
+ const globalObjectWithSession = require_globalObject.globalObject;
12
+ if (!globalObjectWithSession["_DD_SESSION"]) globalObjectWithSession[MEMORY_SESSION_STORE_KEY] = {};
13
+ const memorySession = globalObjectWithSession[MEMORY_SESSION_STORE_KEY];
14
+ const sessionObservable = new require_observable.Observable();
15
+ const previousOnChange = memorySession.onChange;
16
+ memorySession.onChange = (state) => {
17
+ previousOnChange?.(state);
18
+ sessionObservable.notify(state);
19
+ };
20
+ return {
21
+ async setSessionState(fn, _operation) {
22
+ const newState = require_objectUtils.shallowClone(fn(memorySession.state ?? {}));
23
+ memorySession.state = newState;
24
+ await Promise.resolve();
25
+ memorySession.onChange?.(newState);
26
+ },
27
+ sessionObservable
28
+ };
29
+ }
30
+ //#endregion
31
+ exports.MEMORY_SESSION_STORE_KEY = MEMORY_SESSION_STORE_KEY;
32
+ exports.initMemorySessionStoreStrategy = initMemorySessionStoreStrategy;
33
+ exports.selectMemorySessionStoreStrategy = selectMemorySessionStoreStrategy;
34
+
35
+ //# sourceMappingURL=sessionInMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionInMemory.js","names":["SessionPersistence","globalObject","Observable","shallowClone"],"sources":["../../../../src/domain/session/storeStrategies/sessionInMemory.ts"],"sourcesContent":["import { globalObject } from '../../../tools/globalObject'\nimport { Observable } from '../../../tools/observable'\nimport { shallowClone } from '../../../tools/utils/objectUtils'\nimport { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport type { SessionStateOperation, SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\n\nexport const MEMORY_SESSION_STORE_KEY = '_DD_SESSION'\n\nexport interface MemorySession {\n state?: SessionState\n onChange?: (state: SessionState) => void\n}\n\nexport interface GlobalObjectWithSession {\n [MEMORY_SESSION_STORE_KEY]?: MemorySession\n}\n\nexport function selectMemorySessionStoreStrategy(): SessionStoreStrategyType {\n return { type: SessionPersistence.MEMORY }\n}\n\nexport function initMemorySessionStoreStrategy(): SessionStoreStrategy {\n const globalObjectWithSession = globalObject as GlobalObjectWithSession\n\n // Share the observable across SDK instances (RUM + Logs)\n if (!globalObjectWithSession[MEMORY_SESSION_STORE_KEY]) {\n globalObjectWithSession[MEMORY_SESSION_STORE_KEY] = {}\n }\n const memorySession = globalObjectWithSession[MEMORY_SESSION_STORE_KEY]\n\n const sessionObservable = new Observable<SessionState>()\n\n // Wire the local observable to the shared onChange callback so that\n // multiple SDK instances (RUM + Logs) can observe each other's changes.\n const previousOnChange = memorySession.onChange\n memorySession.onChange = (state: SessionState) => {\n previousOnChange?.(state)\n sessionObservable.notify(state)\n }\n\n return {\n async setSessionState(\n fn: (sessionState: SessionState) => SessionState,\n _operation: SessionStateOperation\n ): Promise<void> {\n const currentState = memorySession.state ?? {}\n const newState = shallowClone(fn(currentState))\n memorySession.state = newState\n await Promise.resolve()\n memorySession.onChange?.(newState)\n },\n sessionObservable,\n }\n}\n"],"mappings":";;;;;AAOA,MAAa,2BAA2B;AAWxC,SAAgB,mCAA6D;CAC3E,OAAO,EAAE,MAAMA,yBAAAA,mBAAmB,OAAO;AAC3C;AAEA,SAAgB,iCAAuD;CACrE,MAAM,0BAA0BC,qBAAAA;CAGhC,IAAI,CAAC,wBAAA,gBACH,wBAAwB,4BAA4B,CAAC;CAEvD,MAAM,gBAAgB,wBAAwB;CAE9C,MAAM,oBAAoB,IAAIC,mBAAAA,WAAyB;CAIvD,MAAM,mBAAmB,cAAc;CACvC,cAAc,YAAY,UAAwB;EAChD,mBAAmB,KAAK;EACxB,kBAAkB,OAAO,KAAK;CAChC;CAEA,OAAO;EACL,MAAM,gBACJ,IACA,YACe;GAEf,MAAM,WAAWC,oBAAAA,aAAa,GADT,cAAc,SAAS,CAAC,CACA,CAAC;GAC9C,cAAc,QAAQ;GACtB,MAAM,QAAQ,QAAQ;GACtB,cAAc,WAAW,QAAQ;EACnC;EACA;CACF;AACF"}
@@ -1,16 +1,25 @@
1
1
  import type { CookieOptions } from '../../../browser/cookie';
2
2
  import type { SessionPersistence } from '../sessionConstants';
3
3
  import type { SessionState } from '../sessionState';
4
- export declare const SESSION_STORE_KEY = "_oo_s";
5
- export type SessionStoreStrategyType = {
4
+ import type { Observable } from '../../../tools/observable';
5
+ export declare const SESSION_STORE_KEY = "_oo_s_v2";
6
+ export declare const LEGACY_SESSION_STORE_KEY = "_oo_s";
7
+ export declare const enum CookieApi {
8
+ DOCUMENT_COOKIE = 0,
9
+ COOKIE_STORE = 1
10
+ }
11
+ export interface CookieSessionStoreStrategyType {
6
12
  type: typeof SessionPersistence.COOKIE;
7
13
  cookieOptions: CookieOptions;
8
- } | {
14
+ cookieApi: CookieApi;
15
+ }
16
+ export type SessionStoreStrategyType = CookieSessionStoreStrategyType | {
9
17
  type: typeof SessionPersistence.LOCAL_STORAGE;
18
+ } | {
19
+ type: typeof SessionPersistence.MEMORY;
10
20
  };
21
+ export type SessionStateOperation = 'initialize' | 'expandOrRenewOnActivity' | 'expandOrRenewOnConsent' | 'expandOnVisibility' | 'initializeOnResume' | 'expireOnTimeout' | 'expire' | 'updateState';
11
22
  export interface SessionStoreStrategy {
12
- isLockEnabled: boolean;
13
- persistSession: (session: SessionState) => void;
14
- retrieveSession: () => SessionState;
15
- expireSession: (previousSessionState: SessionState) => void;
23
+ setSessionState(fn: (sessionState: SessionState) => SessionState, operation: SessionStateOperation): Promise<void>;
24
+ sessionObservable: Observable<SessionState>;
16
25
  }
@@ -1,5 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SESSION_STORE_KEY = void 0;
4
- exports.SESSION_STORE_KEY = '_oo_s';
1
+ //#region src/domain/session/storeStrategies/sessionStoreStrategy.ts
2
+ const SESSION_STORE_KEY = "_oo_s_v2";
3
+ const LEGACY_SESSION_STORE_KEY = "_oo_s";
4
+ //#endregion
5
+ exports.LEGACY_SESSION_STORE_KEY = LEGACY_SESSION_STORE_KEY;
6
+ exports.SESSION_STORE_KEY = SESSION_STORE_KEY;
7
+
5
8
  //# sourceMappingURL=sessionStoreStrategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStoreStrategy.js","sourceRoot":"","sources":["../../../../src/domain/session/storeStrategies/sessionStoreStrategy.ts"],"names":[],"mappings":";;;AAIa,QAAA,iBAAiB,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"sessionStoreStrategy.js","names":[],"sources":["../../../../src/domain/session/storeStrategies/sessionStoreStrategy.ts"],"sourcesContent":["import type { CookieOptions } from '../../../browser/cookie'\nimport type { SessionPersistence } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport type { Observable } from '../../../tools/observable'\n\nexport const SESSION_STORE_KEY = '_oo_s_v2'\nexport const LEGACY_SESSION_STORE_KEY = '_oo_s'\n\nexport const enum CookieApi {\n DOCUMENT_COOKIE,\n COOKIE_STORE,\n}\n\nexport interface CookieSessionStoreStrategyType {\n type: typeof SessionPersistence.COOKIE\n cookieOptions: CookieOptions\n cookieApi: CookieApi\n}\n\nexport type SessionStoreStrategyType =\n | CookieSessionStoreStrategyType\n | { type: typeof SessionPersistence.LOCAL_STORAGE }\n | { type: typeof SessionPersistence.MEMORY }\n\nexport type SessionStateOperation =\n | 'initialize'\n | 'expandOrRenewOnActivity'\n | 'expandOrRenewOnConsent'\n | 'expandOnVisibility'\n | 'initializeOnResume'\n | 'expireOnTimeout'\n | 'expire'\n | 'updateState'\n\nexport interface SessionStoreStrategy {\n setSessionState(fn: (sessionState: SessionState) => SessionState, operation: SessionStateOperation): Promise<void>\n sessionObservable: Observable<SessionState>\n}\n"],"mappings":";AAKA,MAAa,oBAAoB;AACjC,MAAa,2BAA2B"}
@@ -1,12 +1,18 @@
1
1
  export declare const SYNTHETICS_TEST_ID_COOKIE_NAME = "openobserve-synthetics-public-id";
2
2
  export declare const SYNTHETICS_RESULT_ID_COOKIE_NAME = "openobserve-synthetics-result-id";
3
3
  export declare const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = "openobserve-synthetics-injects-rum";
4
- export interface BrowserWindow extends Window {
4
+ export declare const SYNTHETICS_CONTEXT_COOKIE_NAME = "openobserve-synthetics-rum-context";
5
+ export interface BrowserWindow {
5
6
  _OO_SYNTHETICS_PUBLIC_ID?: unknown;
6
7
  _OO_SYNTHETICS_RESULT_ID?: unknown;
7
8
  _OO_SYNTHETICS_INJECTS_RUM?: unknown;
9
+ _OO_SYNTHETICS_RUM_CONTEXT?: unknown;
10
+ }
11
+ export interface SyntheticsContext {
12
+ test_id: string;
13
+ result_id: string;
14
+ [key: string]: unknown;
8
15
  }
9
16
  export declare function willSyntheticsInjectRum(): boolean;
10
- export declare function getSyntheticsTestId(): string | undefined;
11
- export declare function getSyntheticsResultId(): string | undefined;
17
+ export declare function getSyntheticsContext(): SyntheticsContext | undefined;
12
18
  export declare function isSyntheticsTest(): boolean;
@@ -1,31 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SYNTHETICS_INJECTS_RUM_COOKIE_NAME = exports.SYNTHETICS_RESULT_ID_COOKIE_NAME = exports.SYNTHETICS_TEST_ID_COOKIE_NAME = void 0;
4
- exports.willSyntheticsInjectRum = willSyntheticsInjectRum;
5
- exports.getSyntheticsTestId = getSyntheticsTestId;
6
- exports.getSyntheticsResultId = getSyntheticsResultId;
7
- exports.isSyntheticsTest = isSyntheticsTest;
8
- const cookie_1 = require("../../browser/cookie");
9
- const globalObject_1 = require("../../tools/globalObject");
10
- exports.SYNTHETICS_TEST_ID_COOKIE_NAME = 'openobserve-synthetics-public-id';
11
- exports.SYNTHETICS_RESULT_ID_COOKIE_NAME = 'openobserve-synthetics-result-id';
12
- exports.SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'openobserve-synthetics-injects-rum';
1
+ const require_objectUtils = require("../../tools/utils/objectUtils.js");
2
+ const require_globalObject = require("../../tools/globalObject.js");
3
+ const require_cookie = require("../../browser/cookie.js");
4
+ //#region src/domain/synthetics/syntheticsWorkerValues.ts
5
+ const cookieNamePrefix = "openobserve-synthetics-";
6
+ const SYNTHETICS_TEST_ID_COOKIE_NAME = `${cookieNamePrefix}public-id`;
7
+ const SYNTHETICS_RESULT_ID_COOKIE_NAME = `${cookieNamePrefix}result-id`;
8
+ const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = `${cookieNamePrefix}injects-rum`;
9
+ const SYNTHETICS_CONTEXT_COOKIE_NAME = `${cookieNamePrefix}rum-context`;
13
10
  function willSyntheticsInjectRum() {
14
- if (globalObject_1.isWorkerEnvironment) {
15
- // We don't expect to run synthetics tests in a worker environment
16
- return false;
17
- }
18
- return Boolean(globalObject_1.globalObject._OO_SYNTHETICS_INJECTS_RUM || (0, cookie_1.getInitCookie)(exports.SYNTHETICS_INJECTS_RUM_COOKIE_NAME));
11
+ if (require_globalObject.isWorkerEnvironment) return false;
12
+ return Boolean(require_globalObject.globalObject._OO_SYNTHETICS_INJECTS_RUM || require_cookie.getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));
19
13
  }
20
- function getSyntheticsTestId() {
21
- const value = window._OO_SYNTHETICS_PUBLIC_ID || (0, cookie_1.getInitCookie)(exports.SYNTHETICS_TEST_ID_COOKIE_NAME);
22
- return typeof value === 'string' ? value : undefined;
23
- }
24
- function getSyntheticsResultId() {
25
- const value = window._OO_SYNTHETICS_RESULT_ID || (0, cookie_1.getInitCookie)(exports.SYNTHETICS_RESULT_ID_COOKIE_NAME);
26
- return typeof value === 'string' ? value : undefined;
14
+ function getSyntheticsContext() {
15
+ const raw = getRawSyntheticsContext();
16
+ return isValidSyntheticsContext(raw) ? raw : void 0;
27
17
  }
28
18
  function isSyntheticsTest() {
29
- return Boolean(getSyntheticsTestId() && getSyntheticsResultId());
19
+ return Boolean(getSyntheticsContext());
20
+ }
21
+ function getRawSyntheticsContext() {
22
+ const rawGlobal = require_globalObject.globalObject._OO_SYNTHETICS_RUM_CONTEXT;
23
+ if (rawGlobal) return rawGlobal;
24
+ const rawCookie = require_cookie.getInitCookie(SYNTHETICS_CONTEXT_COOKIE_NAME);
25
+ if (rawCookie) return require_objectUtils.tryJsonParse(decodeURIComponent(rawCookie));
26
+ return {
27
+ test_id: window._OO_SYNTHETICS_PUBLIC_ID || require_cookie.getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME),
28
+ result_id: window._OO_SYNTHETICS_RESULT_ID || require_cookie.getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)
29
+ };
30
30
  }
31
+ function isValidSyntheticsContext(value) {
32
+ return typeof value === "object" && value !== null && typeof value.test_id === "string" && typeof value.result_id === "string";
33
+ }
34
+ //#endregion
35
+ exports.getSyntheticsContext = getSyntheticsContext;
36
+ exports.isSyntheticsTest = isSyntheticsTest;
37
+ exports.willSyntheticsInjectRum = willSyntheticsInjectRum;
38
+
31
39
  //# sourceMappingURL=syntheticsWorkerValues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntheticsWorkerValues.js","sourceRoot":"","sources":["../../../src/domain/synthetics/syntheticsWorkerValues.ts"],"names":[],"mappings":";;;AAaA,0DASC;AAED,kDAGC;AAED,sDAIC;AAED,4CAEC;AArCD,iDAAoD;AACpD,2DAA4E;AAE/D,QAAA,8BAA8B,GAAG,kCAAkC,CAAA;AACnE,QAAA,gCAAgC,GAAG,kCAAkC,CAAA;AACrE,QAAA,kCAAkC,GAAG,oCAAoC,CAAA;AAQtF,SAAgB,uBAAuB;IACrC,IAAI,kCAAmB,EAAE,CAAC;QACxB,kEAAkE;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,OAAO,CACX,2BAA8B,CAAC,0BAA0B,IAAI,IAAA,sBAAa,EAAC,0CAAkC,CAAC,CAChH,CAAA;AACH,CAAC;AAED,SAAgB,mBAAmB;IACjC,MAAM,KAAK,GAAI,MAAwB,CAAC,wBAAwB,IAAI,IAAA,sBAAa,EAAC,sCAA8B,CAAC,CAAA;IACjH,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAgB,qBAAqB;IACnC,MAAM,KAAK,GACR,MAAwB,CAAC,wBAAwB,IAAI,IAAA,sBAAa,EAAC,wCAAgC,CAAC,CAAA;IACvG,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,OAAO,CAAC,mBAAmB,EAAE,IAAI,qBAAqB,EAAE,CAAC,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"syntheticsWorkerValues.js","names":["isWorkerEnvironment","globalObject","getInitCookie","tryJsonParse"],"sources":["../../../src/domain/synthetics/syntheticsWorkerValues.ts"],"sourcesContent":["import { getInitCookie } from '../../browser/cookie'\nimport { globalObject, isWorkerEnvironment } from '../../tools/globalObject'\nimport { tryJsonParse } from '../../tools/utils/objectUtils'\n\nconst cookieNamePrefix = 'openobserve-synthetics-'\nexport const SYNTHETICS_TEST_ID_COOKIE_NAME = `${cookieNamePrefix}public-id`\nexport const SYNTHETICS_RESULT_ID_COOKIE_NAME = `${cookieNamePrefix}result-id`\nexport const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = `${cookieNamePrefix}injects-rum`\nexport const SYNTHETICS_CONTEXT_COOKIE_NAME = `${cookieNamePrefix}rum-context`\n\nexport interface BrowserWindow {\n _OO_SYNTHETICS_PUBLIC_ID?: unknown\n _OO_SYNTHETICS_RESULT_ID?: unknown\n _OO_SYNTHETICS_INJECTS_RUM?: unknown\n _OO_SYNTHETICS_RUM_CONTEXT?: unknown\n}\n\nexport interface SyntheticsContext {\n test_id: string\n result_id: string\n [key: string]: unknown\n}\n\nexport function willSyntheticsInjectRum(): boolean {\n if (isWorkerEnvironment) {\n // We don't expect to run synthetics tests in a worker environment\n return false\n }\n\n return Boolean(\n (globalObject as BrowserWindow)._OO_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME)\n )\n}\n\nexport function getSyntheticsContext(): SyntheticsContext | undefined {\n const raw = getRawSyntheticsContext()\n return isValidSyntheticsContext(raw) ? raw : undefined\n}\n\nexport function isSyntheticsTest(): boolean {\n return Boolean(getSyntheticsContext())\n}\n\nfunction getRawSyntheticsContext(): unknown {\n const rawGlobal = (globalObject as BrowserWindow)._OO_SYNTHETICS_RUM_CONTEXT\n if (rawGlobal) {\n return rawGlobal\n }\n\n const rawCookie = getInitCookie(SYNTHETICS_CONTEXT_COOKIE_NAME)\n if (rawCookie) {\n return tryJsonParse(decodeURIComponent(rawCookie))\n }\n\n return {\n test_id: (window as BrowserWindow)._OO_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME),\n result_id:\n (window as BrowserWindow)._OO_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME),\n }\n}\n\nfunction isValidSyntheticsContext(value: unknown): value is SyntheticsContext {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as Record<string, unknown>).test_id === 'string' &&\n typeof (value as Record<string, unknown>).result_id === 'string'\n )\n}\n"],"mappings":";;;;AAIA,MAAM,mBAAmB;AACzB,MAAa,iCAAiC,GAAG,iBAAiB;AAClE,MAAa,mCAAmC,GAAG,iBAAiB;AACpE,MAAa,qCAAqC,GAAG,iBAAiB;AACtE,MAAa,iCAAiC,GAAG,iBAAiB;AAelE,SAAgB,0BAAmC;CACjD,IAAIA,qBAAAA,qBAEF,OAAO;CAGT,OAAO,QACJC,qBAAAA,aAA+B,8BAA8BC,eAAAA,cAAc,kCAAkC,CAChH;AACF;AAEA,SAAgB,uBAAsD;CACpE,MAAM,MAAM,wBAAwB;CACpC,OAAO,yBAAyB,GAAG,IAAI,MAAM,KAAA;AAC/C;AAEA,SAAgB,mBAA4B;CAC1C,OAAO,QAAQ,qBAAqB,CAAC;AACvC;AAEA,SAAS,0BAAmC;CAC1C,MAAM,YAAaD,qBAAAA,aAA+B;CAClD,IAAI,WACF,OAAO;CAGT,MAAM,YAAYC,eAAAA,cAAc,8BAA8B;CAC9D,IAAI,WACF,OAAOC,oBAAAA,aAAa,mBAAmB,SAAS,CAAC;CAGnD,OAAO;EACL,SAAU,OAAyB,4BAA4BD,eAAAA,cAAc,8BAA8B;EAC3G,WACG,OAAyB,4BAA4BA,eAAAA,cAAc,gCAAgC;CACxG;AACF;AAEA,SAAS,yBAAyB,OAA4C;CAC5E,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAkC,YAAY,YACtD,OAAQ,MAAkC,cAAc;AAE5D"}
@@ -3,4 +3,3 @@ export declare const TAG_SIZE_LIMIT = 200;
3
3
  export declare function buildTags(configuration: Configuration): string[];
4
4
  export declare function buildTag(key: string, rawValue?: string): string;
5
5
  export declare function sanitizeTag(tag: string): string;
6
- export declare function supportUnicodePropertyEscapes(): boolean;