@tracelog/lib 0.7.3 → 0.8.1

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 (510) hide show
  1. package/README.md +39 -1
  2. package/dist/browser/tracelog.esm.js +382 -404
  3. package/dist/browser/tracelog.esm.js.map +1 -1
  4. package/dist/browser/tracelog.js +2 -2
  5. package/dist/browser/tracelog.js.map +1 -1
  6. package/dist/cjs/api.d.ts +2 -1
  7. package/dist/cjs/api.d.ts.map +1 -0
  8. package/dist/cjs/api.js +7 -6
  9. package/dist/cjs/api.js.map +1 -0
  10. package/dist/cjs/app.constants.d.ts +1 -0
  11. package/dist/cjs/app.constants.d.ts.map +1 -0
  12. package/dist/cjs/app.constants.js +1 -0
  13. package/dist/cjs/app.constants.js.map +1 -0
  14. package/dist/cjs/app.d.ts +2 -1
  15. package/dist/cjs/app.d.ts.map +1 -0
  16. package/dist/cjs/app.js +9 -9
  17. package/dist/cjs/app.js.map +1 -0
  18. package/dist/cjs/constants/config.constants.d.ts +2 -3
  19. package/dist/cjs/constants/config.constants.d.ts.map +1 -0
  20. package/dist/cjs/constants/config.constants.js +6 -7
  21. package/dist/cjs/constants/config.constants.js.map +1 -0
  22. package/dist/cjs/constants/error.constants.d.ts +7 -0
  23. package/dist/cjs/constants/error.constants.d.ts.map +1 -0
  24. package/dist/cjs/constants/error.constants.js +11 -1
  25. package/dist/cjs/constants/error.constants.js.map +1 -0
  26. package/dist/cjs/constants/index.d.ts +1 -0
  27. package/dist/cjs/constants/index.d.ts.map +1 -0
  28. package/dist/cjs/constants/index.js +1 -0
  29. package/dist/cjs/constants/index.js.map +1 -0
  30. package/dist/cjs/constants/performance.constants.d.ts +1 -0
  31. package/dist/cjs/constants/performance.constants.d.ts.map +1 -0
  32. package/dist/cjs/constants/performance.constants.js +1 -0
  33. package/dist/cjs/constants/performance.constants.js.map +1 -0
  34. package/dist/cjs/constants/storage.constants.d.ts +1 -0
  35. package/dist/cjs/constants/storage.constants.d.ts.map +1 -0
  36. package/dist/cjs/constants/storage.constants.js +1 -0
  37. package/dist/cjs/constants/storage.constants.js.map +1 -0
  38. package/dist/cjs/handlers/click.handler.d.ts +1 -0
  39. package/dist/cjs/handlers/click.handler.d.ts.map +1 -0
  40. package/dist/cjs/handlers/click.handler.js +1 -0
  41. package/dist/cjs/handlers/click.handler.js.map +1 -0
  42. package/dist/cjs/handlers/error.handler.d.ts +1 -0
  43. package/dist/cjs/handlers/error.handler.d.ts.map +1 -0
  44. package/dist/cjs/handlers/error.handler.js +1 -0
  45. package/dist/cjs/handlers/error.handler.js.map +1 -0
  46. package/dist/cjs/handlers/page-view.handler.d.ts +1 -0
  47. package/dist/cjs/handlers/page-view.handler.d.ts.map +1 -0
  48. package/dist/cjs/handlers/page-view.handler.js +2 -1
  49. package/dist/cjs/handlers/page-view.handler.js.map +1 -0
  50. package/dist/cjs/handlers/performance.handler.d.ts +1 -0
  51. package/dist/cjs/handlers/performance.handler.d.ts.map +1 -0
  52. package/dist/cjs/handlers/performance.handler.js +1 -0
  53. package/dist/cjs/handlers/performance.handler.js.map +1 -0
  54. package/dist/cjs/handlers/scroll.handler.d.ts +1 -0
  55. package/dist/cjs/handlers/scroll.handler.d.ts.map +1 -0
  56. package/dist/cjs/handlers/scroll.handler.js +1 -0
  57. package/dist/cjs/handlers/scroll.handler.js.map +1 -0
  58. package/dist/cjs/handlers/session.handler.d.ts +3 -2
  59. package/dist/cjs/handlers/session.handler.d.ts.map +1 -0
  60. package/dist/cjs/handlers/session.handler.js +7 -6
  61. package/dist/cjs/handlers/session.handler.js.map +1 -0
  62. package/dist/cjs/integrations/google-analytics.integration.d.ts +1 -0
  63. package/dist/cjs/integrations/google-analytics.integration.d.ts.map +1 -0
  64. package/dist/cjs/integrations/google-analytics.integration.js +1 -0
  65. package/dist/cjs/integrations/google-analytics.integration.js.map +1 -0
  66. package/dist/cjs/listeners/activity-listener-manager.d.ts +1 -0
  67. package/dist/cjs/listeners/activity-listener-manager.d.ts.map +1 -0
  68. package/dist/cjs/listeners/activity-listener-manager.js +1 -0
  69. package/dist/cjs/listeners/activity-listener-manager.js.map +1 -0
  70. package/dist/cjs/listeners/index.d.ts +1 -0
  71. package/dist/cjs/listeners/index.d.ts.map +1 -0
  72. package/dist/cjs/listeners/index.js +1 -0
  73. package/dist/cjs/listeners/index.js.map +1 -0
  74. package/dist/cjs/listeners/input-listener-managers.d.ts +1 -0
  75. package/dist/cjs/listeners/input-listener-managers.d.ts.map +1 -0
  76. package/dist/cjs/listeners/input-listener-managers.js +1 -0
  77. package/dist/cjs/listeners/input-listener-managers.js.map +1 -0
  78. package/dist/cjs/listeners/listeners.types.d.ts +1 -0
  79. package/dist/cjs/listeners/listeners.types.d.ts.map +1 -0
  80. package/dist/cjs/listeners/listeners.types.js +1 -0
  81. package/dist/cjs/listeners/listeners.types.js.map +1 -0
  82. package/dist/cjs/listeners/touch-listener-manager.d.ts +1 -0
  83. package/dist/cjs/listeners/touch-listener-manager.d.ts.map +1 -0
  84. package/dist/cjs/listeners/touch-listener-manager.js +1 -0
  85. package/dist/cjs/listeners/touch-listener-manager.js.map +1 -0
  86. package/dist/cjs/listeners/unload-listener-manager.d.ts +1 -0
  87. package/dist/cjs/listeners/unload-listener-manager.d.ts.map +1 -0
  88. package/dist/cjs/listeners/unload-listener-manager.js +1 -0
  89. package/dist/cjs/listeners/unload-listener-manager.js.map +1 -0
  90. package/dist/cjs/listeners/visibility-listener-manager.d.ts +1 -0
  91. package/dist/cjs/listeners/visibility-listener-manager.d.ts.map +1 -0
  92. package/dist/cjs/listeners/visibility-listener-manager.js +1 -0
  93. package/dist/cjs/listeners/visibility-listener-manager.js.map +1 -0
  94. package/dist/cjs/managers/event.manager.d.ts +1 -0
  95. package/dist/cjs/managers/event.manager.d.ts.map +1 -0
  96. package/dist/cjs/managers/event.manager.js +4 -3
  97. package/dist/cjs/managers/event.manager.js.map +1 -0
  98. package/dist/cjs/managers/sender.manager.d.ts +3 -8
  99. package/dist/cjs/managers/sender.manager.d.ts.map +1 -0
  100. package/dist/cjs/managers/sender.manager.js +71 -91
  101. package/dist/cjs/managers/sender.manager.js.map +1 -0
  102. package/dist/cjs/managers/session.manager.d.ts +3 -2
  103. package/dist/cjs/managers/session.manager.d.ts.map +1 -0
  104. package/dist/cjs/managers/session.manager.js +23 -26
  105. package/dist/cjs/managers/session.manager.js.map +1 -0
  106. package/dist/cjs/managers/state.manager.d.ts +1 -0
  107. package/dist/cjs/managers/state.manager.d.ts.map +1 -0
  108. package/dist/cjs/managers/state.manager.js +1 -0
  109. package/dist/cjs/managers/state.manager.js.map +1 -0
  110. package/dist/cjs/managers/storage.manager.d.ts +1 -0
  111. package/dist/cjs/managers/storage.manager.d.ts.map +1 -0
  112. package/dist/cjs/managers/storage.manager.js +1 -0
  113. package/dist/cjs/managers/storage.manager.js.map +1 -0
  114. package/dist/cjs/managers/user.manager.d.ts +1 -0
  115. package/dist/cjs/managers/user.manager.d.ts.map +1 -0
  116. package/dist/cjs/managers/user.manager.js +1 -0
  117. package/dist/cjs/managers/user.manager.js.map +1 -0
  118. package/dist/cjs/public-api.d.ts +2 -1
  119. package/dist/cjs/public-api.d.ts.map +1 -0
  120. package/dist/cjs/public-api.js +1 -0
  121. package/dist/cjs/public-api.js.map +1 -0
  122. package/dist/cjs/test-bridge.d.ts +2 -5
  123. package/dist/cjs/test-bridge.d.ts.map +1 -0
  124. package/dist/cjs/test-bridge.js +3 -10
  125. package/dist/cjs/test-bridge.js.map +1 -0
  126. package/dist/cjs/types/common.types.d.ts +6 -1
  127. package/dist/cjs/types/common.types.d.ts.map +1 -0
  128. package/dist/cjs/types/common.types.js +1 -0
  129. package/dist/cjs/types/common.types.js.map +1 -0
  130. package/dist/cjs/types/config.types.d.ts +1 -0
  131. package/dist/cjs/types/config.types.d.ts.map +1 -0
  132. package/dist/cjs/types/config.types.js +1 -0
  133. package/dist/cjs/types/config.types.js.map +1 -0
  134. package/dist/cjs/types/device.types.d.ts +1 -0
  135. package/dist/cjs/types/device.types.d.ts.map +1 -0
  136. package/dist/cjs/types/device.types.js +1 -0
  137. package/dist/cjs/types/device.types.js.map +1 -0
  138. package/dist/cjs/types/emitter.types.d.ts +1 -0
  139. package/dist/cjs/types/emitter.types.d.ts.map +1 -0
  140. package/dist/cjs/types/emitter.types.js +1 -0
  141. package/dist/cjs/types/emitter.types.js.map +1 -0
  142. package/dist/cjs/types/error.types.d.ts +12 -0
  143. package/dist/cjs/types/error.types.d.ts.map +1 -0
  144. package/dist/cjs/types/error.types.js +23 -0
  145. package/dist/cjs/types/error.types.js.map +1 -0
  146. package/dist/cjs/types/event.types.d.ts +1 -0
  147. package/dist/cjs/types/event.types.d.ts.map +1 -0
  148. package/dist/cjs/types/event.types.js +1 -0
  149. package/dist/cjs/types/event.types.js.map +1 -0
  150. package/dist/cjs/types/index.d.ts +2 -0
  151. package/dist/cjs/types/index.d.ts.map +1 -0
  152. package/dist/cjs/types/index.js +2 -0
  153. package/dist/cjs/types/index.js.map +1 -0
  154. package/dist/cjs/types/log.types.d.ts +1 -0
  155. package/dist/cjs/types/log.types.d.ts.map +1 -0
  156. package/dist/cjs/types/log.types.js +1 -0
  157. package/dist/cjs/types/log.types.js.map +1 -0
  158. package/dist/cjs/types/mode.types.d.ts +1 -0
  159. package/dist/cjs/types/mode.types.d.ts.map +1 -0
  160. package/dist/cjs/types/mode.types.js +1 -0
  161. package/dist/cjs/types/mode.types.js.map +1 -0
  162. package/dist/cjs/types/queue.types.d.ts +1 -0
  163. package/dist/cjs/types/queue.types.d.ts.map +1 -0
  164. package/dist/cjs/types/queue.types.js +1 -0
  165. package/dist/cjs/types/queue.types.js.map +1 -0
  166. package/dist/cjs/types/session.types.d.ts +1 -0
  167. package/dist/cjs/types/session.types.d.ts.map +1 -0
  168. package/dist/cjs/types/session.types.js +1 -0
  169. package/dist/cjs/types/session.types.js.map +1 -0
  170. package/dist/cjs/types/state.types.d.ts +1 -0
  171. package/dist/cjs/types/state.types.d.ts.map +1 -0
  172. package/dist/cjs/types/state.types.js +1 -0
  173. package/dist/cjs/types/state.types.js.map +1 -0
  174. package/dist/cjs/types/test-bridge.types.d.ts +2 -1
  175. package/dist/cjs/types/test-bridge.types.d.ts.map +1 -0
  176. package/dist/cjs/types/test-bridge.types.js +1 -0
  177. package/dist/cjs/types/test-bridge.types.js.map +1 -0
  178. package/dist/cjs/types/validation-error.types.d.ts +1 -0
  179. package/dist/cjs/types/validation-error.types.d.ts.map +1 -0
  180. package/dist/cjs/types/validation-error.types.js +1 -0
  181. package/dist/cjs/types/validation-error.types.js.map +1 -0
  182. package/dist/cjs/types/window.types.d.ts +1 -0
  183. package/dist/cjs/types/window.types.d.ts.map +1 -0
  184. package/dist/cjs/types/window.types.js +1 -0
  185. package/dist/cjs/types/window.types.js.map +1 -0
  186. package/dist/cjs/utils/browser/device-detector.utils.d.ts +1 -0
  187. package/dist/cjs/utils/browser/device-detector.utils.d.ts.map +1 -0
  188. package/dist/cjs/utils/browser/device-detector.utils.js +1 -0
  189. package/dist/cjs/utils/browser/device-detector.utils.js.map +1 -0
  190. package/dist/cjs/utils/browser/index.d.ts +1 -0
  191. package/dist/cjs/utils/browser/index.d.ts.map +1 -0
  192. package/dist/cjs/utils/browser/index.js +1 -0
  193. package/dist/cjs/utils/browser/index.js.map +1 -0
  194. package/dist/cjs/utils/browser/qa-mode.utils.d.ts +1 -0
  195. package/dist/cjs/utils/browser/qa-mode.utils.d.ts.map +1 -0
  196. package/dist/cjs/utils/browser/qa-mode.utils.js +1 -0
  197. package/dist/cjs/utils/browser/qa-mode.utils.js.map +1 -0
  198. package/dist/cjs/utils/browser/utm-params.utils.d.ts +1 -0
  199. package/dist/cjs/utils/browser/utm-params.utils.d.ts.map +1 -0
  200. package/dist/cjs/utils/browser/utm-params.utils.js +1 -0
  201. package/dist/cjs/utils/browser/utm-params.utils.js.map +1 -0
  202. package/dist/cjs/utils/data/index.d.ts +1 -0
  203. package/dist/cjs/utils/data/index.d.ts.map +1 -0
  204. package/dist/cjs/utils/data/index.js +1 -0
  205. package/dist/cjs/utils/data/index.js.map +1 -0
  206. package/dist/cjs/utils/data/uuid.utils.d.ts +1 -0
  207. package/dist/cjs/utils/data/uuid.utils.d.ts.map +1 -0
  208. package/dist/cjs/utils/data/uuid.utils.js +1 -0
  209. package/dist/cjs/utils/data/uuid.utils.js.map +1 -0
  210. package/dist/cjs/utils/emitter.utils.d.ts +1 -0
  211. package/dist/cjs/utils/emitter.utils.d.ts.map +1 -0
  212. package/dist/cjs/utils/emitter.utils.js +1 -0
  213. package/dist/cjs/utils/emitter.utils.js.map +1 -0
  214. package/dist/cjs/utils/index.d.ts +1 -0
  215. package/dist/cjs/utils/index.d.ts.map +1 -0
  216. package/dist/cjs/utils/index.js +1 -0
  217. package/dist/cjs/utils/index.js.map +1 -0
  218. package/dist/cjs/utils/logging.utils.d.ts +1 -0
  219. package/dist/cjs/utils/logging.utils.d.ts.map +1 -0
  220. package/dist/cjs/utils/logging.utils.js +1 -0
  221. package/dist/cjs/utils/logging.utils.js.map +1 -0
  222. package/dist/cjs/utils/network/index.d.ts +1 -0
  223. package/dist/cjs/utils/network/index.d.ts.map +1 -0
  224. package/dist/cjs/utils/network/index.js +1 -0
  225. package/dist/cjs/utils/network/index.js.map +1 -0
  226. package/dist/cjs/utils/network/url.utils.d.ts +1 -0
  227. package/dist/cjs/utils/network/url.utils.d.ts.map +1 -0
  228. package/dist/cjs/utils/network/url.utils.js +1 -0
  229. package/dist/cjs/utils/network/url.utils.js.map +1 -0
  230. package/dist/cjs/utils/security/index.d.ts +1 -0
  231. package/dist/cjs/utils/security/index.d.ts.map +1 -0
  232. package/dist/cjs/utils/security/index.js +1 -0
  233. package/dist/cjs/utils/security/index.js.map +1 -0
  234. package/dist/cjs/utils/security/sanitize.utils.d.ts +1 -0
  235. package/dist/cjs/utils/security/sanitize.utils.d.ts.map +1 -0
  236. package/dist/cjs/utils/security/sanitize.utils.js +1 -0
  237. package/dist/cjs/utils/security/sanitize.utils.js.map +1 -0
  238. package/dist/cjs/utils/validations/config-validations.utils.d.ts +1 -0
  239. package/dist/cjs/utils/validations/config-validations.utils.d.ts.map +1 -0
  240. package/dist/cjs/utils/validations/config-validations.utils.js +1 -0
  241. package/dist/cjs/utils/validations/config-validations.utils.js.map +1 -0
  242. package/dist/cjs/utils/validations/event-validations.utils.d.ts +1 -0
  243. package/dist/cjs/utils/validations/event-validations.utils.d.ts.map +1 -0
  244. package/dist/cjs/utils/validations/event-validations.utils.js +1 -0
  245. package/dist/cjs/utils/validations/event-validations.utils.js.map +1 -0
  246. package/dist/cjs/utils/validations/index.d.ts +1 -0
  247. package/dist/cjs/utils/validations/index.d.ts.map +1 -0
  248. package/dist/cjs/utils/validations/index.js +1 -0
  249. package/dist/cjs/utils/validations/index.js.map +1 -0
  250. package/dist/cjs/utils/validations/metadata-validations.utils.d.ts +1 -0
  251. package/dist/cjs/utils/validations/metadata-validations.utils.d.ts.map +1 -0
  252. package/dist/cjs/utils/validations/metadata-validations.utils.js +1 -0
  253. package/dist/cjs/utils/validations/metadata-validations.utils.js.map +1 -0
  254. package/dist/cjs/utils/validations/type-guards.utils.d.ts +5 -2
  255. package/dist/cjs/utils/validations/type-guards.utils.d.ts.map +1 -0
  256. package/dist/cjs/utils/validations/type-guards.utils.js +16 -2
  257. package/dist/cjs/utils/validations/type-guards.utils.js.map +1 -0
  258. package/dist/esm/api.d.ts +2 -1
  259. package/dist/esm/api.d.ts.map +1 -0
  260. package/dist/esm/api.js +7 -6
  261. package/dist/esm/api.js.map +1 -0
  262. package/dist/esm/app.constants.d.ts +1 -0
  263. package/dist/esm/app.constants.d.ts.map +1 -0
  264. package/dist/esm/app.constants.js +1 -0
  265. package/dist/esm/app.constants.js.map +1 -0
  266. package/dist/esm/app.d.ts +2 -1
  267. package/dist/esm/app.d.ts.map +1 -0
  268. package/dist/esm/app.js +9 -9
  269. package/dist/esm/app.js.map +1 -0
  270. package/dist/esm/constants/config.constants.d.ts +2 -3
  271. package/dist/esm/constants/config.constants.d.ts.map +1 -0
  272. package/dist/esm/constants/config.constants.js +4 -5
  273. package/dist/esm/constants/config.constants.js.map +1 -0
  274. package/dist/esm/constants/error.constants.d.ts +7 -0
  275. package/dist/esm/constants/error.constants.d.ts.map +1 -0
  276. package/dist/esm/constants/error.constants.js +10 -0
  277. package/dist/esm/constants/error.constants.js.map +1 -0
  278. package/dist/esm/constants/index.d.ts +1 -0
  279. package/dist/esm/constants/index.d.ts.map +1 -0
  280. package/dist/esm/constants/index.js +1 -0
  281. package/dist/esm/constants/index.js.map +1 -0
  282. package/dist/esm/constants/performance.constants.d.ts +1 -0
  283. package/dist/esm/constants/performance.constants.d.ts.map +1 -0
  284. package/dist/esm/constants/performance.constants.js +1 -0
  285. package/dist/esm/constants/performance.constants.js.map +1 -0
  286. package/dist/esm/constants/storage.constants.d.ts +1 -0
  287. package/dist/esm/constants/storage.constants.d.ts.map +1 -0
  288. package/dist/esm/constants/storage.constants.js +1 -0
  289. package/dist/esm/constants/storage.constants.js.map +1 -0
  290. package/dist/esm/handlers/click.handler.d.ts +1 -0
  291. package/dist/esm/handlers/click.handler.d.ts.map +1 -0
  292. package/dist/esm/handlers/click.handler.js +1 -0
  293. package/dist/esm/handlers/click.handler.js.map +1 -0
  294. package/dist/esm/handlers/error.handler.d.ts +1 -0
  295. package/dist/esm/handlers/error.handler.d.ts.map +1 -0
  296. package/dist/esm/handlers/error.handler.js +1 -0
  297. package/dist/esm/handlers/error.handler.js.map +1 -0
  298. package/dist/esm/handlers/page-view.handler.d.ts +1 -0
  299. package/dist/esm/handlers/page-view.handler.d.ts.map +1 -0
  300. package/dist/esm/handlers/page-view.handler.js +2 -1
  301. package/dist/esm/handlers/page-view.handler.js.map +1 -0
  302. package/dist/esm/handlers/performance.handler.d.ts +1 -0
  303. package/dist/esm/handlers/performance.handler.d.ts.map +1 -0
  304. package/dist/esm/handlers/performance.handler.js +1 -0
  305. package/dist/esm/handlers/performance.handler.js.map +1 -0
  306. package/dist/esm/handlers/scroll.handler.d.ts +1 -0
  307. package/dist/esm/handlers/scroll.handler.d.ts.map +1 -0
  308. package/dist/esm/handlers/scroll.handler.js +1 -0
  309. package/dist/esm/handlers/scroll.handler.js.map +1 -0
  310. package/dist/esm/handlers/session.handler.d.ts +3 -2
  311. package/dist/esm/handlers/session.handler.d.ts.map +1 -0
  312. package/dist/esm/handlers/session.handler.js +7 -6
  313. package/dist/esm/handlers/session.handler.js.map +1 -0
  314. package/dist/esm/integrations/google-analytics.integration.d.ts +1 -0
  315. package/dist/esm/integrations/google-analytics.integration.d.ts.map +1 -0
  316. package/dist/esm/integrations/google-analytics.integration.js +1 -0
  317. package/dist/esm/integrations/google-analytics.integration.js.map +1 -0
  318. package/dist/esm/listeners/activity-listener-manager.d.ts +1 -0
  319. package/dist/esm/listeners/activity-listener-manager.d.ts.map +1 -0
  320. package/dist/esm/listeners/activity-listener-manager.js +1 -0
  321. package/dist/esm/listeners/activity-listener-manager.js.map +1 -0
  322. package/dist/esm/listeners/index.d.ts +1 -0
  323. package/dist/esm/listeners/index.d.ts.map +1 -0
  324. package/dist/esm/listeners/index.js +1 -0
  325. package/dist/esm/listeners/index.js.map +1 -0
  326. package/dist/esm/listeners/input-listener-managers.d.ts +1 -0
  327. package/dist/esm/listeners/input-listener-managers.d.ts.map +1 -0
  328. package/dist/esm/listeners/input-listener-managers.js +1 -0
  329. package/dist/esm/listeners/input-listener-managers.js.map +1 -0
  330. package/dist/esm/listeners/listeners.types.d.ts +1 -0
  331. package/dist/esm/listeners/listeners.types.d.ts.map +1 -0
  332. package/dist/esm/listeners/listeners.types.js +1 -0
  333. package/dist/esm/listeners/listeners.types.js.map +1 -0
  334. package/dist/esm/listeners/touch-listener-manager.d.ts +1 -0
  335. package/dist/esm/listeners/touch-listener-manager.d.ts.map +1 -0
  336. package/dist/esm/listeners/touch-listener-manager.js +1 -0
  337. package/dist/esm/listeners/touch-listener-manager.js.map +1 -0
  338. package/dist/esm/listeners/unload-listener-manager.d.ts +1 -0
  339. package/dist/esm/listeners/unload-listener-manager.d.ts.map +1 -0
  340. package/dist/esm/listeners/unload-listener-manager.js +1 -0
  341. package/dist/esm/listeners/unload-listener-manager.js.map +1 -0
  342. package/dist/esm/listeners/visibility-listener-manager.d.ts +1 -0
  343. package/dist/esm/listeners/visibility-listener-manager.d.ts.map +1 -0
  344. package/dist/esm/listeners/visibility-listener-manager.js +1 -0
  345. package/dist/esm/listeners/visibility-listener-manager.js.map +1 -0
  346. package/dist/esm/managers/event.manager.d.ts +1 -0
  347. package/dist/esm/managers/event.manager.d.ts.map +1 -0
  348. package/dist/esm/managers/event.manager.js +4 -3
  349. package/dist/esm/managers/event.manager.js.map +1 -0
  350. package/dist/esm/managers/sender.manager.d.ts +3 -8
  351. package/dist/esm/managers/sender.manager.d.ts.map +1 -0
  352. package/dist/esm/managers/sender.manager.js +73 -93
  353. package/dist/esm/managers/sender.manager.js.map +1 -0
  354. package/dist/esm/managers/session.manager.d.ts +3 -2
  355. package/dist/esm/managers/session.manager.d.ts.map +1 -0
  356. package/dist/esm/managers/session.manager.js +23 -26
  357. package/dist/esm/managers/session.manager.js.map +1 -0
  358. package/dist/esm/managers/state.manager.d.ts +1 -0
  359. package/dist/esm/managers/state.manager.d.ts.map +1 -0
  360. package/dist/esm/managers/state.manager.js +1 -0
  361. package/dist/esm/managers/state.manager.js.map +1 -0
  362. package/dist/esm/managers/storage.manager.d.ts +1 -0
  363. package/dist/esm/managers/storage.manager.d.ts.map +1 -0
  364. package/dist/esm/managers/storage.manager.js +1 -0
  365. package/dist/esm/managers/storage.manager.js.map +1 -0
  366. package/dist/esm/managers/user.manager.d.ts +1 -0
  367. package/dist/esm/managers/user.manager.d.ts.map +1 -0
  368. package/dist/esm/managers/user.manager.js +1 -0
  369. package/dist/esm/managers/user.manager.js.map +1 -0
  370. package/dist/esm/public-api.d.ts +2 -1
  371. package/dist/esm/public-api.d.ts.map +1 -0
  372. package/dist/esm/public-api.js +1 -0
  373. package/dist/esm/public-api.js.map +1 -0
  374. package/dist/esm/test-bridge.d.ts +2 -5
  375. package/dist/esm/test-bridge.d.ts.map +1 -0
  376. package/dist/esm/test-bridge.js +3 -10
  377. package/dist/esm/test-bridge.js.map +1 -0
  378. package/dist/esm/types/common.types.d.ts +6 -1
  379. package/dist/esm/types/common.types.d.ts.map +1 -0
  380. package/dist/esm/types/common.types.js +1 -0
  381. package/dist/esm/types/common.types.js.map +1 -0
  382. package/dist/esm/types/config.types.d.ts +1 -0
  383. package/dist/esm/types/config.types.d.ts.map +1 -0
  384. package/dist/esm/types/config.types.js +1 -0
  385. package/dist/esm/types/config.types.js.map +1 -0
  386. package/dist/esm/types/device.types.d.ts +1 -0
  387. package/dist/esm/types/device.types.d.ts.map +1 -0
  388. package/dist/esm/types/device.types.js +1 -0
  389. package/dist/esm/types/device.types.js.map +1 -0
  390. package/dist/esm/types/emitter.types.d.ts +1 -0
  391. package/dist/esm/types/emitter.types.d.ts.map +1 -0
  392. package/dist/esm/types/emitter.types.js +1 -0
  393. package/dist/esm/types/emitter.types.js.map +1 -0
  394. package/dist/esm/types/error.types.d.ts +12 -0
  395. package/dist/esm/types/error.types.d.ts.map +1 -0
  396. package/dist/esm/types/error.types.js +19 -0
  397. package/dist/esm/types/error.types.js.map +1 -0
  398. package/dist/esm/types/event.types.d.ts +1 -0
  399. package/dist/esm/types/event.types.d.ts.map +1 -0
  400. package/dist/esm/types/event.types.js +1 -0
  401. package/dist/esm/types/event.types.js.map +1 -0
  402. package/dist/esm/types/index.d.ts +2 -0
  403. package/dist/esm/types/index.d.ts.map +1 -0
  404. package/dist/esm/types/index.js +2 -0
  405. package/dist/esm/types/index.js.map +1 -0
  406. package/dist/esm/types/log.types.d.ts +1 -0
  407. package/dist/esm/types/log.types.d.ts.map +1 -0
  408. package/dist/esm/types/log.types.js +1 -0
  409. package/dist/esm/types/log.types.js.map +1 -0
  410. package/dist/esm/types/mode.types.d.ts +1 -0
  411. package/dist/esm/types/mode.types.d.ts.map +1 -0
  412. package/dist/esm/types/mode.types.js +1 -0
  413. package/dist/esm/types/mode.types.js.map +1 -0
  414. package/dist/esm/types/queue.types.d.ts +1 -0
  415. package/dist/esm/types/queue.types.d.ts.map +1 -0
  416. package/dist/esm/types/queue.types.js +1 -0
  417. package/dist/esm/types/queue.types.js.map +1 -0
  418. package/dist/esm/types/session.types.d.ts +1 -0
  419. package/dist/esm/types/session.types.d.ts.map +1 -0
  420. package/dist/esm/types/session.types.js +1 -0
  421. package/dist/esm/types/session.types.js.map +1 -0
  422. package/dist/esm/types/state.types.d.ts +1 -0
  423. package/dist/esm/types/state.types.d.ts.map +1 -0
  424. package/dist/esm/types/state.types.js +1 -0
  425. package/dist/esm/types/state.types.js.map +1 -0
  426. package/dist/esm/types/test-bridge.types.d.ts +2 -1
  427. package/dist/esm/types/test-bridge.types.d.ts.map +1 -0
  428. package/dist/esm/types/test-bridge.types.js +1 -0
  429. package/dist/esm/types/test-bridge.types.js.map +1 -0
  430. package/dist/esm/types/validation-error.types.d.ts +1 -0
  431. package/dist/esm/types/validation-error.types.d.ts.map +1 -0
  432. package/dist/esm/types/validation-error.types.js +1 -0
  433. package/dist/esm/types/validation-error.types.js.map +1 -0
  434. package/dist/esm/types/window.types.d.ts +1 -0
  435. package/dist/esm/types/window.types.d.ts.map +1 -0
  436. package/dist/esm/types/window.types.js +1 -0
  437. package/dist/esm/types/window.types.js.map +1 -0
  438. package/dist/esm/utils/browser/device-detector.utils.d.ts +1 -0
  439. package/dist/esm/utils/browser/device-detector.utils.d.ts.map +1 -0
  440. package/dist/esm/utils/browser/device-detector.utils.js +1 -0
  441. package/dist/esm/utils/browser/device-detector.utils.js.map +1 -0
  442. package/dist/esm/utils/browser/index.d.ts +1 -0
  443. package/dist/esm/utils/browser/index.d.ts.map +1 -0
  444. package/dist/esm/utils/browser/index.js +1 -0
  445. package/dist/esm/utils/browser/index.js.map +1 -0
  446. package/dist/esm/utils/browser/qa-mode.utils.d.ts +1 -0
  447. package/dist/esm/utils/browser/qa-mode.utils.d.ts.map +1 -0
  448. package/dist/esm/utils/browser/qa-mode.utils.js +1 -0
  449. package/dist/esm/utils/browser/qa-mode.utils.js.map +1 -0
  450. package/dist/esm/utils/browser/utm-params.utils.d.ts +1 -0
  451. package/dist/esm/utils/browser/utm-params.utils.d.ts.map +1 -0
  452. package/dist/esm/utils/browser/utm-params.utils.js +1 -0
  453. package/dist/esm/utils/browser/utm-params.utils.js.map +1 -0
  454. package/dist/esm/utils/data/index.d.ts +1 -0
  455. package/dist/esm/utils/data/index.d.ts.map +1 -0
  456. package/dist/esm/utils/data/index.js +1 -0
  457. package/dist/esm/utils/data/index.js.map +1 -0
  458. package/dist/esm/utils/data/uuid.utils.d.ts +1 -0
  459. package/dist/esm/utils/data/uuid.utils.d.ts.map +1 -0
  460. package/dist/esm/utils/data/uuid.utils.js +1 -0
  461. package/dist/esm/utils/data/uuid.utils.js.map +1 -0
  462. package/dist/esm/utils/emitter.utils.d.ts +1 -0
  463. package/dist/esm/utils/emitter.utils.d.ts.map +1 -0
  464. package/dist/esm/utils/emitter.utils.js +1 -0
  465. package/dist/esm/utils/emitter.utils.js.map +1 -0
  466. package/dist/esm/utils/index.d.ts +1 -0
  467. package/dist/esm/utils/index.d.ts.map +1 -0
  468. package/dist/esm/utils/index.js +1 -0
  469. package/dist/esm/utils/index.js.map +1 -0
  470. package/dist/esm/utils/logging.utils.d.ts +1 -0
  471. package/dist/esm/utils/logging.utils.d.ts.map +1 -0
  472. package/dist/esm/utils/logging.utils.js +1 -0
  473. package/dist/esm/utils/logging.utils.js.map +1 -0
  474. package/dist/esm/utils/network/index.d.ts +1 -0
  475. package/dist/esm/utils/network/index.d.ts.map +1 -0
  476. package/dist/esm/utils/network/index.js +1 -0
  477. package/dist/esm/utils/network/index.js.map +1 -0
  478. package/dist/esm/utils/network/url.utils.d.ts +1 -0
  479. package/dist/esm/utils/network/url.utils.d.ts.map +1 -0
  480. package/dist/esm/utils/network/url.utils.js +1 -0
  481. package/dist/esm/utils/network/url.utils.js.map +1 -0
  482. package/dist/esm/utils/security/index.d.ts +1 -0
  483. package/dist/esm/utils/security/index.d.ts.map +1 -0
  484. package/dist/esm/utils/security/index.js +1 -0
  485. package/dist/esm/utils/security/index.js.map +1 -0
  486. package/dist/esm/utils/security/sanitize.utils.d.ts +1 -0
  487. package/dist/esm/utils/security/sanitize.utils.d.ts.map +1 -0
  488. package/dist/esm/utils/security/sanitize.utils.js +1 -0
  489. package/dist/esm/utils/security/sanitize.utils.js.map +1 -0
  490. package/dist/esm/utils/validations/config-validations.utils.d.ts +1 -0
  491. package/dist/esm/utils/validations/config-validations.utils.d.ts.map +1 -0
  492. package/dist/esm/utils/validations/config-validations.utils.js +1 -0
  493. package/dist/esm/utils/validations/config-validations.utils.js.map +1 -0
  494. package/dist/esm/utils/validations/event-validations.utils.d.ts +1 -0
  495. package/dist/esm/utils/validations/event-validations.utils.d.ts.map +1 -0
  496. package/dist/esm/utils/validations/event-validations.utils.js +1 -0
  497. package/dist/esm/utils/validations/event-validations.utils.js.map +1 -0
  498. package/dist/esm/utils/validations/index.d.ts +1 -0
  499. package/dist/esm/utils/validations/index.d.ts.map +1 -0
  500. package/dist/esm/utils/validations/index.js +1 -0
  501. package/dist/esm/utils/validations/index.js.map +1 -0
  502. package/dist/esm/utils/validations/metadata-validations.utils.d.ts +1 -0
  503. package/dist/esm/utils/validations/metadata-validations.utils.d.ts.map +1 -0
  504. package/dist/esm/utils/validations/metadata-validations.utils.js +1 -0
  505. package/dist/esm/utils/validations/metadata-validations.utils.js.map +1 -0
  506. package/dist/esm/utils/validations/type-guards.utils.d.ts +5 -2
  507. package/dist/esm/utils/validations/type-guards.utils.d.ts.map +1 -0
  508. package/dist/esm/utils/validations/type-guards.utils.js +16 -2
  509. package/dist/esm/utils/validations/type-guards.utils.js.map +1 -0
  510. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- const O = "data-tlog", Ce = [
1
+ const P = "data-tlog", Oe = [
2
2
  "button",
3
3
  "a",
4
4
  'input[type="button"]',
@@ -30,7 +30,7 @@ const O = "data-tlog", Ce = [
30
30
  ".menu-item",
31
31
  "[data-testid]",
32
32
  '[tabindex="0"]'
33
- ], be = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
33
+ ], Pe = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
34
34
  const m = {
35
35
  INVALID_SESSION_TIMEOUT: "Session timeout must be between 30000ms (30 seconds) and 86400000ms (24 hours)",
36
36
  INVALID_SAMPLING_RATE: "Sampling rate must be between 0 and 1",
@@ -41,7 +41,7 @@ const m = {
41
41
  INVALID_SCROLL_CONTAINER_SELECTORS: "Scroll container selectors must be valid CSS selectors",
42
42
  INVALID_GLOBAL_METADATA: "Global metadata must be an object",
43
43
  INVALID_SENSITIVE_QUERY_PARAMS: "Sensitive query params must be an array of strings"
44
- }, Oe = [
44
+ }, De = [
45
45
  /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
46
46
  /javascript:/gi,
47
47
  /on\w+\s*=/gi,
@@ -49,38 +49,44 @@ const m = {
49
49
  /<embed\b[^>]*>/gi,
50
50
  /<object\b[^<]*(?:(?!<\/object>)<[^<]*)*<\/object>/gi
51
51
  ];
52
- var j = /* @__PURE__ */ ((r) => (r.Localhost = "localhost:8080", r.Fail = "localhost:9999", r))(j || {}), _ = /* @__PURE__ */ ((r) => (r.Mobile = "mobile", r.Tablet = "tablet", r.Desktop = "desktop", r.Unknown = "unknown", r))(_ || {}), X = /* @__PURE__ */ ((r) => (r.EVENT = "event", r.QUEUE = "queue", r))(X || {}), d = /* @__PURE__ */ ((r) => (r.PAGE_VIEW = "page_view", r.CLICK = "click", r.SCROLL = "scroll", r.SESSION_START = "session_start", r.SESSION_END = "session_end", r.CUSTOM = "custom", r.WEB_VITALS = "web_vitals", r.ERROR = "error", r))(d || {}), D = /* @__PURE__ */ ((r) => (r.UP = "up", r.DOWN = "down", r))(D || {}), L = /* @__PURE__ */ ((r) => (r.JS_ERROR = "js_error", r.PROMISE_REJECTION = "promise_rejection", r))(L || {}), R = /* @__PURE__ */ ((r) => (r.QA = "qa", r))(R || {});
53
- class C extends Error {
52
+ var W = /* @__PURE__ */ ((r) => (r.Localhost = "localhost:8080", r.Fail = "localhost:9999", r))(W || {}), _ = /* @__PURE__ */ ((r) => (r.Mobile = "mobile", r.Tablet = "tablet", r.Desktop = "desktop", r.Unknown = "unknown", r))(_ || {}), X = /* @__PURE__ */ ((r) => (r.EVENT = "event", r.QUEUE = "queue", r))(X || {});
53
+ class y extends Error {
54
+ constructor(e, t) {
55
+ super(e), this.statusCode = t, this.name = "PermanentError", Error.captureStackTrace && Error.captureStackTrace(this, y);
56
+ }
57
+ }
58
+ var d = /* @__PURE__ */ ((r) => (r.PAGE_VIEW = "page_view", r.CLICK = "click", r.SCROLL = "scroll", r.SESSION_START = "session_start", r.SESSION_END = "session_end", r.CUSTOM = "custom", r.WEB_VITALS = "web_vitals", r.ERROR = "error", r))(d || {}), k = /* @__PURE__ */ ((r) => (r.UP = "up", r.DOWN = "down", r))(k || {}), C = /* @__PURE__ */ ((r) => (r.JS_ERROR = "js_error", r.PROMISE_REJECTION = "promise_rejection", r))(C || {}), R = /* @__PURE__ */ ((r) => (r.QA = "qa", r))(R || {});
59
+ class b extends Error {
54
60
  constructor(e, t, s) {
55
61
  super(e), this.errorCode = t, this.layer = s, this.name = this.constructor.name, Error.captureStackTrace && Error.captureStackTrace(this, this.constructor);
56
62
  }
57
63
  }
58
- class y extends C {
64
+ class A extends b {
59
65
  constructor(e, t = "config") {
60
66
  super(e, "APP_CONFIG_INVALID", t);
61
67
  }
62
68
  }
63
- class Pe extends C {
69
+ class ke extends b {
64
70
  constructor(e, t = "config") {
65
71
  super(e, "SESSION_TIMEOUT_INVALID", t);
66
72
  }
67
73
  }
68
- class oe extends C {
74
+ class le extends b {
69
75
  constructor(e, t = "config") {
70
76
  super(e, "SAMPLING_RATE_INVALID", t);
71
77
  }
72
78
  }
73
- class v extends C {
79
+ class v extends b {
74
80
  constructor(e, t = "config") {
75
81
  super(e, "INTEGRATION_INVALID", t);
76
82
  }
77
83
  }
78
- class xt extends C {
84
+ class Ft extends b {
79
85
  constructor(e, t, s = "runtime") {
80
86
  super(e, "INITIALIZATION_TIMEOUT", s), this.timeoutMs = t;
81
87
  }
82
88
  }
83
- const De = (r, e) => {
89
+ const Ue = (r, e) => {
84
90
  if (e) {
85
91
  if (e instanceof Error) {
86
92
  const t = e.message.replace(/\s+at\s+.*$/gm, "").replace(/\(.*?:\d+:\d+\)/g, "");
@@ -90,13 +96,13 @@ const De = (r, e) => {
90
96
  }
91
97
  return `[TraceLog] ${r}`;
92
98
  }, o = (r, e, t) => {
93
- const { error: s, data: n, showToClient: i = !1 } = t ?? {}, a = s ? De(e, s) : `[TraceLog] ${e}`, l = r === "error" ? "error" : r === "warn" ? "warn" : "log";
99
+ const { error: s, data: n, showToClient: i = !1 } = t ?? {}, a = s ? Ue(e, s) : `[TraceLog] ${e}`, l = r === "error" ? "error" : r === "warn" ? "warn" : "log";
94
100
  if (!(r === "debug" || r === "info" && !i))
95
101
  if (n !== void 0) {
96
- const c = ke(n);
102
+ const c = He(n);
97
103
  console[l](a, c);
98
104
  } else n !== void 0 ? console[l](a, n) : console[l](a);
99
- }, ke = (r) => {
105
+ }, He = (r) => {
100
106
  const e = {}, t = ["token", "password", "secret", "key", "apikey", "api_key", "sessionid", "session_id"];
101
107
  for (const [s, n] of Object.entries(r)) {
102
108
  const i = s.toLowerCase();
@@ -104,28 +110,28 @@ const De = (r, e) => {
104
110
  }
105
111
  return e;
106
112
  };
107
- let W, pe;
108
- const Ue = () => {
109
- typeof window < "u" && !W && (W = window.matchMedia("(pointer: coarse)"), pe = window.matchMedia("(hover: none)"));
110
- }, He = () => {
113
+ let Y, _e;
114
+ const xe = () => {
115
+ typeof window < "u" && !Y && (Y = window.matchMedia("(pointer: coarse)"), _e = window.matchMedia("(hover: none)"));
116
+ }, Ve = () => {
111
117
  try {
112
118
  const r = navigator;
113
119
  if (r.userAgentData && typeof r.userAgentData.mobile == "boolean")
114
120
  return r.userAgentData.platform && /ipad|tablet/i.test(r.userAgentData.platform) ? _.Tablet : r.userAgentData.mobile ? _.Mobile : _.Desktop;
115
- Ue();
116
- const e = window.innerWidth, t = W?.matches ?? !1, s = pe?.matches ?? !1, n = "ontouchstart" in window || navigator.maxTouchPoints > 0, i = navigator.userAgent.toLowerCase(), a = /mobile|android|iphone|ipod|blackberry|iemobile|opera mini/.test(i), l = /tablet|ipad|android(?!.*mobile)/.test(i);
121
+ xe();
122
+ const e = window.innerWidth, t = Y?.matches ?? !1, s = _e?.matches ?? !1, n = "ontouchstart" in window || navigator.maxTouchPoints > 0, i = navigator.userAgent.toLowerCase(), a = /mobile|android|iphone|ipod|blackberry|iemobile|opera mini/.test(i), l = /tablet|ipad|android(?!.*mobile)/.test(i);
117
123
  return e <= 767 || a && n ? _.Mobile : e >= 768 && e <= 1024 || l || t && s && n ? _.Tablet : _.Desktop;
118
124
  } catch (r) {
119
125
  return o("warn", "Device detection failed, defaulting to desktop", { error: r }), _.Desktop;
120
126
  }
121
- }, T = "tlog", le = `${T}:qa_mode`, xe = `${T}:uid`, Ve = (r) => r ? `${T}:${r}:queue` : `${T}:queue`, Fe = (r) => r ? `${T}:${r}:session` : `${T}:session`, Ge = (r) => r ? `${T}:${r}:broadcast` : `${T}:broadcast`, _e = {
127
+ }, T = "tlog", ce = `${T}:qa_mode`, Fe = `${T}:uid`, Ge = (r) => r ? `${T}:${r}:queue` : `${T}:queue`, $e = (r) => r ? `${T}:${r}:session` : `${T}:session`, ze = (r) => r ? `${T}:${r}:broadcast` : `${T}:broadcast`, Te = {
122
128
  LCP: 4e3,
123
129
  FCP: 1800,
124
130
  CLS: 0.25,
125
131
  INP: 200,
126
132
  TTFB: 800,
127
133
  LONG_TASK: 50
128
- }, ze = 1e3, Te = [
134
+ }, Qe = 1e3, ve = [
129
135
  // Email addresses
130
136
  /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/gi,
131
137
  // US Phone numbers (various formats)
@@ -140,12 +146,12 @@ const Ue = () => {
140
146
  /Bearer\s+[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)?(?:\.[A-Za-z0-9_-]+)?/gi,
141
147
  // Passwords in connection strings (protocol://user:password@host)
142
148
  /:\/\/[^:/]+:([^@]+)@/gi
143
- ], ce = 500, ue = 5e3, k = 50, $e = k * 2, de = "tlog_mode", Qe = "qa", Be = () => {
144
- if (sessionStorage.getItem(le) === "true")
149
+ ], ue = 500, de = 5e3, U = 50, je = U * 2, Be = 6e4, he = "tlog_mode", We = "qa", Xe = () => {
150
+ if (sessionStorage.getItem(ce) === "true")
145
151
  return !0;
146
- const e = new URLSearchParams(window.location.search), s = e.get(de) === Qe;
152
+ const e = new URLSearchParams(window.location.search), s = e.get(he) === We;
147
153
  if (s) {
148
- sessionStorage.setItem(le, "true"), e.delete(de);
154
+ sessionStorage.setItem(ce, "true"), e.delete(he);
149
155
  const n = e.toString(), i = `${window.location.pathname}${n ? "?" + n : ""}${window.location.hash}`;
150
156
  try {
151
157
  window.history.replaceState({}, "", i);
@@ -158,19 +164,19 @@ const Ue = () => {
158
164
  );
159
165
  }
160
166
  return s;
161
- }, he = () => {
167
+ }, fe = () => {
162
168
  const r = new URLSearchParams(window.location.search), e = {};
163
- return be.forEach((s) => {
169
+ return Pe.forEach((s) => {
164
170
  const n = r.get(s);
165
171
  if (n) {
166
172
  const i = s.split("utm_")[1];
167
173
  e[i] = n;
168
174
  }
169
175
  }), Object.keys(e).length ? e : void 0;
170
- }, je = () => typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (r) => {
176
+ }, Ye = () => typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (r) => {
171
177
  const e = Math.random() * 16 | 0;
172
178
  return (r === "x" ? e : e & 3 | 8).toString(16);
173
- }), Xe = () => {
179
+ }), Ke = () => {
174
180
  const r = Date.now();
175
181
  let e = "";
176
182
  try {
@@ -181,32 +187,32 @@ const Ue = () => {
181
187
  } catch {
182
188
  }
183
189
  return e || (e = Math.floor(Math.random() * 4294967295).toString(16).padStart(8, "0")), `${r}-${e}`;
184
- }, fe = (r, e = !1) => {
190
+ }, ge = (r, e = !1) => {
185
191
  try {
186
192
  const t = new URL(r), s = t.protocol === "https:", n = t.protocol === "http:";
187
193
  return s || e && n;
188
194
  } catch {
189
195
  return !1;
190
196
  }
191
- }, We = (r) => {
197
+ }, qe = (r) => {
192
198
  if (r.integrations?.tracelog?.projectId) {
193
199
  const n = new URL(window.location.href).hostname.split(".");
194
200
  if (n.length === 0)
195
201
  throw new Error("Invalid URL");
196
202
  const i = r.integrations.tracelog.projectId, a = n.slice(-2).join("."), l = `https://${i}.${a}/collect`;
197
- if (!fe(l))
203
+ if (!ge(l))
198
204
  throw new Error("Invalid URL");
199
205
  return l;
200
206
  }
201
207
  const e = r.integrations?.custom?.collectApiUrl;
202
208
  if (e) {
203
209
  const t = r.integrations?.custom?.allowHttp ?? !1;
204
- if (!fe(e, t))
210
+ if (!ge(e, t))
205
211
  throw new Error("Invalid URL");
206
212
  return e;
207
213
  }
208
214
  return "";
209
- }, Y = (r, e = []) => {
215
+ }, K = (r, e = []) => {
210
216
  try {
211
217
  const t = new URL(r), s = t.searchParams;
212
218
  let n = !1;
@@ -217,13 +223,13 @@ const Ue = () => {
217
223
  } catch (t) {
218
224
  return o("warn", "URL normalization failed, returning original", { error: t, data: { url: r.slice(0, 100) } }), r;
219
225
  }
220
- }, ge = (r) => {
226
+ }, Ee = (r) => {
221
227
  if (!r || typeof r != "string" || r.trim().length === 0)
222
228
  return "";
223
229
  let e = r;
224
230
  r.length > 1e3 && (e = r.slice(0, Math.max(0, 1e3)));
225
231
  let t = 0;
226
- for (const n of Oe) {
232
+ for (const n of De) {
227
233
  const i = e;
228
234
  e = e.replace(n, ""), i !== e && t++;
229
235
  }
@@ -233,60 +239,60 @@ const Ue = () => {
233
239
  originalValue: r.slice(0, 100)
234
240
  }
235
241
  }), e = e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#x27;").replaceAll("/", "&#x2F;"), e.trim();
236
- }, K = (r, e = 0) => {
242
+ }, q = (r, e = 0) => {
237
243
  if (e > 3 || r == null)
238
244
  return null;
239
245
  if (typeof r == "string")
240
- return ge(r);
246
+ return Ee(r);
241
247
  if (typeof r == "number")
242
248
  return !Number.isFinite(r) || r < -Number.MAX_SAFE_INTEGER || r > Number.MAX_SAFE_INTEGER ? 0 : r;
243
249
  if (typeof r == "boolean")
244
250
  return r;
245
251
  if (Array.isArray(r))
246
- return r.slice(0, 100).map((n) => K(n, e + 1)).filter((n) => n !== null);
252
+ return r.slice(0, 100).map((n) => q(n, e + 1)).filter((n) => n !== null);
247
253
  if (typeof r == "object") {
248
254
  const t = {}, n = Object.entries(r).slice(0, 20);
249
255
  for (const [i, a] of n) {
250
- const l = ge(i);
256
+ const l = Ee(i);
251
257
  if (l) {
252
- const c = K(a, e + 1);
258
+ const c = q(a, e + 1);
253
259
  c !== null && (t[l] = c);
254
260
  }
255
261
  }
256
262
  return t;
257
263
  }
258
264
  return null;
259
- }, Ye = (r) => {
265
+ }, Ze = (r) => {
260
266
  if (typeof r != "object" || r === null)
261
267
  return {};
262
268
  try {
263
- const e = K(r);
269
+ const e = q(r);
264
270
  return typeof e == "object" && e !== null ? e : {};
265
271
  } catch (e) {
266
272
  const t = e instanceof Error ? e.message : String(e);
267
273
  throw new Error(`[TraceLog] Metadata sanitization failed: ${t}`);
268
274
  }
269
- }, Ke = (r) => {
275
+ }, Je = (r) => {
270
276
  if (r !== void 0 && (r === null || typeof r != "object"))
271
- throw new y("Configuration must be an object", "config");
277
+ throw new A("Configuration must be an object", "config");
272
278
  if (r) {
273
279
  if (r.sessionTimeout !== void 0 && (typeof r.sessionTimeout != "number" || r.sessionTimeout < 3e4 || r.sessionTimeout > 864e5))
274
- throw new Pe(m.INVALID_SESSION_TIMEOUT, "config");
280
+ throw new ke(m.INVALID_SESSION_TIMEOUT, "config");
275
281
  if (r.globalMetadata !== void 0 && (typeof r.globalMetadata != "object" || r.globalMetadata === null))
276
- throw new y(m.INVALID_GLOBAL_METADATA, "config");
277
- if (r.scrollContainerSelectors !== void 0 && Ze(r.scrollContainerSelectors), r.integrations && Je(r.integrations), r.sensitiveQueryParams !== void 0) {
282
+ throw new A(m.INVALID_GLOBAL_METADATA, "config");
283
+ if (r.scrollContainerSelectors !== void 0 && tt(r.scrollContainerSelectors), r.integrations && rt(r.integrations), r.sensitiveQueryParams !== void 0) {
278
284
  if (!Array.isArray(r.sensitiveQueryParams))
279
- throw new y(m.INVALID_SENSITIVE_QUERY_PARAMS, "config");
285
+ throw new A(m.INVALID_SENSITIVE_QUERY_PARAMS, "config");
280
286
  for (const e of r.sensitiveQueryParams)
281
287
  if (typeof e != "string")
282
- throw new y("All sensitive query params must be strings", "config");
288
+ throw new A("All sensitive query params must be strings", "config");
283
289
  }
284
290
  if (r.errorSampling !== void 0 && (typeof r.errorSampling != "number" || r.errorSampling < 0 || r.errorSampling > 1))
285
- throw new oe(m.INVALID_ERROR_SAMPLING_RATE, "config");
291
+ throw new le(m.INVALID_ERROR_SAMPLING_RATE, "config");
286
292
  if (r.samplingRate !== void 0 && (typeof r.samplingRate != "number" || r.samplingRate < 0 || r.samplingRate > 1))
287
- throw new oe(m.INVALID_SAMPLING_RATE, "config");
293
+ throw new le(m.INVALID_SAMPLING_RATE, "config");
288
294
  }
289
- }, qe = (r) => {
295
+ }, et = (r) => {
290
296
  if (r.includes("<") || r.includes(">") || /on\w+\s*=/i.test(r) || !/^[a-zA-Z0-9\-_#.[\]="':, >+~*()]+$/.test(r))
291
297
  return !1;
292
298
  let t = 0;
@@ -297,7 +303,7 @@ const Ue = () => {
297
303
  for (const n of r)
298
304
  if (n === "[" && s++, n === "]" && s--, s < 0) return !1;
299
305
  return s === 0;
300
- }, Ze = (r) => {
306
+ }, tt = (r) => {
301
307
  const e = Array.isArray(r) ? r : [r];
302
308
  for (const t of e) {
303
309
  if (typeof t != "string" || t.trim() === "")
@@ -308,17 +314,17 @@ const Ue = () => {
308
314
  type: typeof t,
309
315
  isEmpty: t === "" || typeof t == "string" && t.trim() === ""
310
316
  }
311
- }), new y(m.INVALID_SCROLL_CONTAINER_SELECTORS, "config");
312
- if (!qe(t))
317
+ }), new A(m.INVALID_SCROLL_CONTAINER_SELECTORS, "config");
318
+ if (!et(t))
313
319
  throw o("error", "Invalid or potentially unsafe CSS selector", {
314
320
  showToClient: !0,
315
321
  data: {
316
322
  selector: t,
317
323
  reason: "Failed security validation"
318
324
  }
319
- }), new y("Invalid or potentially unsafe CSS selector", "config");
325
+ }), new A("Invalid or potentially unsafe CSS selector", "config");
320
326
  }
321
- }, Je = (r) => {
327
+ }, rt = (r) => {
322
328
  if (r) {
323
329
  if (r.tracelog && (!r.tracelog.projectId || typeof r.tracelog.projectId != "string" || r.tracelog.projectId.trim() === ""))
324
330
  throw new v(m.INVALID_TRACELOG_PROJECT_ID, "config");
@@ -343,8 +349,8 @@ const Ue = () => {
343
349
  throw new v('Google Analytics measurement ID must start with "G-" or "UA-"', "config");
344
350
  }
345
351
  }
346
- }, et = (r) => {
347
- Ke(r);
352
+ }, st = (r) => {
353
+ Je(r);
348
354
  const e = {
349
355
  ...r ?? {},
350
356
  sessionTimeout: r?.sessionTimeout ?? 9e5,
@@ -357,7 +363,7 @@ const Ue = () => {
357
363
  ...e.integrations.custom,
358
364
  allowHttp: e.integrations.custom.allowHttp ?? !1
359
365
  }), e;
360
- }, tt = (r) => {
366
+ }, nt = (r) => {
361
367
  if (typeof r == "string")
362
368
  return !0;
363
369
  if (typeof r == "object" && r !== null && !Array.isArray(r)) {
@@ -374,21 +380,26 @@ const Ue = () => {
374
380
  return !0;
375
381
  }
376
382
  return !1;
377
- }, rt = (r) => {
378
- if (typeof r != "object" || r === null)
383
+ }, Ie = (r, e = 0) => {
384
+ if (typeof r != "object" || r === null || e > 1)
379
385
  return !1;
380
- for (const e of Object.values(r)) {
381
- if (e == null)
386
+ for (const t of Object.values(r)) {
387
+ if (t == null)
382
388
  continue;
383
- const t = typeof e;
384
- if (!(t === "string" || t === "number" || t === "boolean")) {
385
- if (Array.isArray(e)) {
386
- if (e.length === 0)
389
+ const s = typeof t;
390
+ if (!(s === "string" || s === "number" || s === "boolean")) {
391
+ if (Array.isArray(t)) {
392
+ if (t.length === 0)
387
393
  continue;
388
- if (typeof e[0] == "string") {
389
- if (!e.every((i) => typeof i == "string"))
394
+ if (typeof t[0] == "string") {
395
+ if (!t.every((a) => typeof a == "string"))
390
396
  return !1;
391
- } else if (!e.every((i) => tt(i)))
397
+ } else if (!t.every((a) => nt(a)))
398
+ return !1;
399
+ continue;
400
+ }
401
+ if (s === "object" && e === 0) {
402
+ if (!Ie(t, e + 1))
392
403
  return !1;
393
404
  continue;
394
405
  }
@@ -396,7 +407,7 @@ const Ue = () => {
396
407
  }
397
408
  }
398
409
  return !0;
399
- }, st = (r) => typeof r != "string" ? {
410
+ }, it = (r) => typeof r != "string" ? {
400
411
  valid: !1,
401
412
  error: "Event name must be a string"
402
413
  } : r.length === 0 ? {
@@ -412,8 +423,8 @@ const Ue = () => {
412
423
  valid: !1,
413
424
  error: "Event name cannot be a reserved word"
414
425
  } : { valid: !0 }, Se = (r, e, t) => {
415
- const s = Ye(e), n = `${t} "${r}" metadata error`;
416
- if (!rt(s))
426
+ const s = Ze(e), n = `${t} "${r}" metadata error`;
427
+ if (!Ie(s))
417
428
  return {
418
429
  valid: !1,
419
430
  error: `${n}: object has invalid types. Valid types are string, number, boolean or string arrays.`
@@ -461,7 +472,7 @@ const Ue = () => {
461
472
  valid: !0,
462
473
  sanitizedMetadata: s
463
474
  };
464
- }, nt = (r, e, t) => {
475
+ }, at = (r, e, t) => {
465
476
  if (Array.isArray(e)) {
466
477
  const s = [], n = `${t} "${r}" metadata error`;
467
478
  for (let i = 0; i < e.length; i++) {
@@ -485,8 +496,8 @@ const Ue = () => {
485
496
  };
486
497
  }
487
498
  return Se(r, e, t);
488
- }, it = (r, e) => {
489
- const t = st(r);
499
+ }, ot = (r, e) => {
500
+ const t = it(r);
490
501
  if (!t.valid)
491
502
  return o("error", "Event name validation failed", {
492
503
  showToClient: !0,
@@ -494,7 +505,7 @@ const Ue = () => {
494
505
  }), t;
495
506
  if (!e)
496
507
  return { valid: !0 };
497
- const s = nt(r, e, "customEvent");
508
+ const s = at(r, e, "customEvent");
498
509
  return s.valid || o("error", "Event metadata validation failed", {
499
510
  showToClient: !0,
500
511
  data: {
@@ -503,7 +514,7 @@ const Ue = () => {
503
514
  }
504
515
  }), s;
505
516
  };
506
- class at {
517
+ class lt {
507
518
  listeners = /* @__PURE__ */ new Map();
508
519
  on(e, t) {
509
520
  this.listeners.has(e) || this.listeners.set(e, []), this.listeners.get(e).push(t);
@@ -523,44 +534,40 @@ class at {
523
534
  this.listeners.clear();
524
535
  }
525
536
  }
526
- const $ = {};
537
+ const Q = {};
527
538
  class f {
528
539
  get(e) {
529
- return $[e];
540
+ return Q[e];
530
541
  }
531
542
  set(e, t) {
532
- $[e] = t;
543
+ Q[e] = t;
533
544
  }
534
545
  getState() {
535
- return { ...$ };
546
+ return { ...Q };
536
547
  }
537
548
  }
538
- class ot extends f {
549
+ class ct extends f {
539
550
  storeManager;
540
- retryTimeoutId = null;
541
- retryCount = 0;
542
- isRetrying = !1;
551
+ lastPermanentErrorLog = null;
543
552
  constructor(e) {
544
553
  super(), this.storeManager = e;
545
554
  }
546
555
  getQueueStorageKey() {
547
556
  const e = this.get("userId") || "anonymous";
548
- return Ve(e);
557
+ return Ge(e);
549
558
  }
550
559
  sendEventsQueueSync(e) {
551
- if (this.shouldSkipSend())
552
- return this.resetRetryState(), !0;
553
- if (this.get("config")?.integrations?.custom?.collectApiUrl === j.Fail)
554
- return o("warn", "Fail mode: simulating network failure (sync)", {
555
- data: { events: e.events.length }
556
- }), !1;
557
- const s = this.sendQueueSyncInternal(e);
558
- return s && this.resetRetryState(), s;
560
+ return this.shouldSkipSend() ? !0 : this.get("config")?.integrations?.custom?.collectApiUrl === W.Fail ? (o("warn", "Fail mode: simulating network failure (sync)", {
561
+ data: { events: e.events.length }
562
+ }), !1) : this.sendQueueSyncInternal(e);
559
563
  }
560
564
  async sendEventsQueue(e, t) {
561
- this.shouldSkipSend() || this.persistEvents(e) || o("warn", "Failed to persist events, attempting immediate send");
562
- const s = await this.send(e);
563
- return s ? (this.clearPersistedEvents(), this.resetRetryState(), t?.onSuccess?.(e.events.length, e.events, e)) : (this.scheduleRetry(e, t), t?.onFailure?.()), s;
565
+ try {
566
+ const s = await this.send(e);
567
+ return s ? (this.clearPersistedEvents(), t?.onSuccess?.(e.events.length, e.events, e)) : (this.persistEvents(e), t?.onFailure?.()), s;
568
+ } catch (s) {
569
+ return s instanceof y ? (this.logPermanentError("Permanent error, not retrying", s), this.clearPersistedEvents(), t?.onFailure?.(), !1) : (this.persistEvents(e), t?.onFailure?.(), !1);
570
+ }
564
571
  }
565
572
  async recoverPersistedEvents(e) {
566
573
  try {
@@ -570,24 +577,21 @@ class ot extends f {
570
577
  return;
571
578
  }
572
579
  const s = this.createRecoveryBody(t);
573
- await this.send(s) ? (this.clearPersistedEvents(), this.resetRetryState(), e?.onSuccess?.(t.events.length, t.events, s)) : (this.scheduleRetry(s, e), e?.onFailure?.());
580
+ await this.send(s) ? (this.clearPersistedEvents(), e?.onSuccess?.(t.events.length, t.events, s)) : e?.onFailure?.();
574
581
  } catch (t) {
575
- o("error", "Failed to recover persisted events", { error: t }), this.clearPersistedEvents();
582
+ if (t instanceof y) {
583
+ this.logPermanentError("Permanent error during recovery, clearing persisted events", t), this.clearPersistedEvents(), e?.onFailure?.();
584
+ return;
585
+ }
586
+ o("error", "Failed to recover persisted events", { error: t });
576
587
  }
577
588
  }
578
- persistEventsForRecovery(e) {
579
- return this.persistEvents(e);
580
- }
581
- async sendEventsQueueAsync(e) {
582
- return this.sendEventsQueue(e);
583
- }
584
589
  stop() {
585
- this.clearRetryTimeout(), this.resetRetryState();
586
590
  }
587
591
  async send(e) {
588
592
  if (this.shouldSkipSend())
589
593
  return this.simulateSuccessfulSend();
590
- if (this.get("config")?.integrations?.custom?.collectApiUrl === j.Fail)
594
+ if (this.get("config")?.integrations?.custom?.collectApiUrl === W.Fail)
591
595
  return o("warn", "Fail mode: simulating network failure", {
592
596
  data: { events: e.events.length }
593
597
  }), !1;
@@ -595,6 +599,8 @@ class ot extends f {
595
599
  try {
596
600
  return (await this.sendWithTimeout(s, n)).ok;
597
601
  } catch (i) {
602
+ if (i instanceof y)
603
+ throw i;
598
604
  return o("error", "Send request failed", {
599
605
  error: i,
600
606
  data: {
@@ -618,7 +624,7 @@ class ot extends f {
618
624
  }
619
625
  });
620
626
  if (!i.ok)
621
- throw new Error(`HTTP ${i.status}: ${i.statusText}`);
627
+ throw i.status >= 400 && i.status < 500 ? new y(`HTTP ${i.status}: ${i.statusText}`, i.status) : new Error(`HTTP ${i.status}: ${i.statusText}`);
622
628
  return i;
623
629
  } finally {
624
630
  clearTimeout(n);
@@ -626,13 +632,10 @@ class ot extends f {
626
632
  }
627
633
  sendQueueSyncInternal(e) {
628
634
  const { url: t, payload: s } = this.prepareRequest(e), n = new Blob([s], { type: "application/json" });
629
- if (this.isSendBeaconAvailable()) {
630
- if (navigator.sendBeacon(t, n))
631
- return !0;
632
- o("warn", "sendBeacon failed, persisting events for recovery");
633
- } else
634
- o("warn", "sendBeacon not available, persisting events for recovery");
635
- return this.persistEventsForRecovery(e), !1;
635
+ if (!this.isSendBeaconAvailable())
636
+ return o("warn", "sendBeacon not available, persisting events for recovery"), this.persistEvents(e), !1;
637
+ const i = navigator.sendBeacon(t, n);
638
+ return i || (o("warn", "sendBeacon rejected request, persisting events for recovery"), this.persistEvents(e)), i;
636
639
  }
637
640
  prepareRequest(e) {
638
641
  const t = {
@@ -658,7 +661,7 @@ class ot extends f {
658
661
  return null;
659
662
  }
660
663
  isDataRecent(e) {
661
- return !e.timestamp || typeof e.timestamp != "number" ? !1 : (Date.now() - e.timestamp) / (1e3 * 60 * 60) < 24;
664
+ return !e.timestamp || typeof e.timestamp != "number" ? !1 : (Date.now() - e.timestamp) / (1e3 * 60 * 60) < 2;
662
665
  }
663
666
  createRecoveryBody(e) {
664
667
  return {
@@ -692,26 +695,6 @@ class ot extends f {
692
695
  o("warn", "Failed to clear persisted events", { error: e });
693
696
  }
694
697
  }
695
- resetRetryState() {
696
- this.retryCount = 0, this.isRetrying = !1, this.clearRetryTimeout();
697
- }
698
- scheduleRetry(e, t) {
699
- if (this.retryTimeoutId !== null || this.isRetrying)
700
- return;
701
- if (this.retryCount >= 3) {
702
- o("warn", "Max retries reached, giving up", { data: { retryCount: this.retryCount } }), this.clearPersistedEvents(), this.resetRetryState(), t?.onFailure?.();
703
- return;
704
- }
705
- const s = 5e3 * Math.pow(2, this.retryCount);
706
- this.isRetrying = !0, this.retryTimeoutId = window.setTimeout(async () => {
707
- this.retryTimeoutId = null, this.retryCount++;
708
- try {
709
- await this.send(e) ? (this.clearPersistedEvents(), this.resetRetryState(), t?.onSuccess?.(e.events.length)) : this.retryCount >= 3 ? (this.clearPersistedEvents(), this.resetRetryState(), t?.onFailure?.()) : this.scheduleRetry(e, t);
710
- } finally {
711
- this.isRetrying = !1;
712
- }
713
- }, s);
714
- }
715
698
  shouldSkipSend() {
716
699
  return !this.get("collectApiUrl");
717
700
  }
@@ -722,11 +705,14 @@ class ot extends f {
722
705
  isSendBeaconAvailable() {
723
706
  return typeof navigator < "u" && typeof navigator.sendBeacon == "function";
724
707
  }
725
- clearRetryTimeout() {
726
- this.retryTimeoutId !== null && (clearTimeout(this.retryTimeoutId), this.retryTimeoutId = null);
708
+ logPermanentError(e, t) {
709
+ const s = Date.now();
710
+ (!this.lastPermanentErrorLog || this.lastPermanentErrorLog.statusCode !== t.statusCode || s - this.lastPermanentErrorLog.timestamp >= Be) && (o("error", e, {
711
+ data: { status: t.statusCode, message: t.message }
712
+ }), this.lastPermanentErrorLog = { statusCode: t.statusCode, timestamp: s });
727
713
  }
728
714
  }
729
- class lt extends f {
715
+ class ut extends f {
730
716
  googleAnalytics;
731
717
  dataSender;
732
718
  emitter;
@@ -738,7 +724,7 @@ class lt extends f {
738
724
  rateLimitCounter = 0;
739
725
  rateLimitWindowStart = 0;
740
726
  constructor(e, t = null, s = null) {
741
- super(), this.googleAnalytics = t, this.dataSender = new ot(e), this.emitter = s;
727
+ super(), this.googleAnalytics = t, this.dataSender = new ct(e), this.emitter = s;
742
728
  }
743
729
  async recoverPersistedEvents() {
744
730
  await this.dataSender.recoverPersistedEvents({
@@ -748,7 +734,7 @@ class lt extends f {
748
734
  this.removeProcessedEvents(n), s && this.emitEventsQueue(s);
749
735
  }
750
736
  },
751
- onFailure: async () => {
737
+ onFailure: () => {
752
738
  o("warn", "Failed to recover persisted events");
753
739
  }
754
740
  });
@@ -787,9 +773,9 @@ class lt extends f {
787
773
  const p = e === d.SESSION_START || e === d.SESSION_END;
788
774
  if (!p && !this.checkRateLimit())
789
775
  return;
790
- const N = e, Le = N === d.SESSION_START, Re = t || this.get("pageUrl"), z = this.buildEventPayload({
791
- type: N,
792
- page_url: Re,
776
+ const L = e, Re = L === d.SESSION_START, be = t || this.get("pageUrl"), z = this.buildEventPayload({
777
+ type: L,
778
+ page_url: be,
793
779
  from_page_url: s,
794
780
  scroll_data: n,
795
781
  click_data: i,
@@ -799,22 +785,22 @@ class lt extends f {
799
785
  session_end_reason: u
800
786
  });
801
787
  if (!(!p && !this.shouldSample())) {
802
- if (Le) {
803
- const ae = this.get("sessionId");
804
- if (!ae) {
788
+ if (Re) {
789
+ const oe = this.get("sessionId");
790
+ if (!oe) {
805
791
  o("error", "Session start event requires sessionId - event will be ignored");
806
792
  return;
807
793
  }
808
794
  if (this.get("hasStartSession")) {
809
795
  o("warn", "Duplicate session_start detected", {
810
- data: { sessionId: ae }
796
+ data: { sessionId: oe }
811
797
  });
812
798
  return;
813
799
  }
814
800
  this.set("hasStartSession", !0);
815
801
  }
816
802
  if (!this.isDuplicateEvent(z)) {
817
- if (this.get("mode") === R.QA && N === d.CUSTOM && a) {
803
+ if (this.get("mode") === R.QA && L === d.CUSTOM && a) {
818
804
  console.log("[TraceLog] Event", {
819
805
  name: a.name,
820
806
  ...a.metadata && { metadata: a.metadata }
@@ -881,7 +867,7 @@ class lt extends f {
881
867
  onSuccess: () => {
882
868
  this.removeProcessedEvents(s), this.emitEventsQueue(e);
883
869
  },
884
- onFailure: async () => {
870
+ onFailure: () => {
885
871
  o("warn", "Events send failed, keeping in queue", {
886
872
  data: { eventCount: t.length }
887
873
  });
@@ -906,7 +892,7 @@ class lt extends f {
906
892
  buildEventPayload(e) {
907
893
  const t = e.type === d.SESSION_START, s = e.page_url ?? this.get("pageUrl");
908
894
  return {
909
- id: Xe(),
895
+ id: Ke(),
910
896
  type: e.type,
911
897
  page_url: s,
912
898
  timestamp: Date.now(),
@@ -918,7 +904,7 @@ class lt extends f {
918
904
  ...e.web_vitals && { web_vitals: e.web_vitals },
919
905
  ...e.error_data && { error_data: e.error_data },
920
906
  ...e.session_end_reason && { session_end_reason: e.session_end_reason },
921
- ...t && he() && { utm: he() }
907
+ ...t && fe() && { utm: fe() }
922
908
  };
923
909
  }
924
910
  isDuplicateEvent(e) {
@@ -983,7 +969,7 @@ class lt extends f {
983
969
  this.emitter && this.emitter.emit(X.QUEUE, e);
984
970
  }
985
971
  }
986
- class ct {
972
+ class dt {
987
973
  /**
988
974
  * Gets or creates a unique user ID for the given project.
989
975
  * The user ID is persisted in localStorage and reused across sessions.
@@ -993,14 +979,14 @@ class ct {
993
979
  * @returns Persistent unique user ID
994
980
  */
995
981
  static getId(e) {
996
- const t = xe, s = e.getItem(t);
982
+ const t = Fe, s = e.getItem(t);
997
983
  if (s)
998
984
  return s;
999
- const n = je();
985
+ const n = Ye();
1000
986
  return e.setItem(t, n), n;
1001
987
  }
1002
988
  }
1003
- class ut extends f {
989
+ class ht extends f {
1004
990
  storageManager;
1005
991
  eventManager;
1006
992
  projectId;
@@ -1019,7 +1005,7 @@ class ut extends f {
1019
1005
  return;
1020
1006
  }
1021
1007
  const e = this.getProjectId();
1022
- this.broadcastChannel = new BroadcastChannel(Ge(e)), this.broadcastChannel.onmessage = (t) => {
1008
+ this.broadcastChannel = new BroadcastChannel(ze(e)), this.broadcastChannel.onmessage = (t) => {
1023
1009
  const { action: s, sessionId: n, timestamp: i, projectId: a } = t.data ?? {};
1024
1010
  if (a === e) {
1025
1011
  if (s === "session_end") {
@@ -1039,13 +1025,18 @@ class ut extends f {
1039
1025
  });
1040
1026
  }
1041
1027
  broadcastSessionEnd(e, t) {
1042
- e && this.broadcastChannel && typeof this.broadcastChannel.postMessage == "function" && this.broadcastChannel.postMessage({
1043
- action: "session_end",
1044
- projectId: this.getProjectId(),
1045
- sessionId: e,
1046
- reason: t,
1047
- timestamp: Date.now()
1048
- });
1028
+ if (e && this.broadcastChannel && typeof this.broadcastChannel.postMessage == "function")
1029
+ try {
1030
+ this.broadcastChannel.postMessage({
1031
+ action: "session_end",
1032
+ projectId: this.getProjectId(),
1033
+ sessionId: e,
1034
+ reason: t,
1035
+ timestamp: Date.now()
1036
+ });
1037
+ } catch (s) {
1038
+ o("warn", "Failed to broadcast session end", { error: s, data: { sessionId: e, reason: t } });
1039
+ }
1049
1040
  }
1050
1041
  cleanupCrossTabSync() {
1051
1042
  this.broadcastChannel && (typeof this.broadcastChannel.close == "function" && this.broadcastChannel.close(), this.broadcastChannel = null);
@@ -1083,12 +1074,12 @@ class ut extends f {
1083
1074
  this.storageManager.setItem(t, JSON.stringify(e));
1084
1075
  }
1085
1076
  getSessionStorageKey() {
1086
- return Fe(this.getProjectId());
1077
+ return $e(this.getProjectId());
1087
1078
  }
1088
1079
  getProjectId() {
1089
1080
  return this.projectId;
1090
1081
  }
1091
- async startTracking() {
1082
+ startTracking() {
1092
1083
  if (this.isTracking) {
1093
1084
  o("warn", "Session tracking already active");
1094
1085
  return;
@@ -1137,7 +1128,7 @@ class ut extends f {
1137
1128
  cleanupLifecycleListeners() {
1138
1129
  this.visibilityChangeHandler && (document.removeEventListener("visibilitychange", this.visibilityChangeHandler), this.visibilityChangeHandler = null), this.beforeUnloadHandler && (window.removeEventListener("beforeunload", this.beforeUnloadHandler), this.beforeUnloadHandler = null);
1139
1130
  }
1140
- async endSession(e) {
1131
+ endSession(e) {
1141
1132
  const t = this.get("sessionId");
1142
1133
  if (!t) {
1143
1134
  o("warn", "endSession called without active session", { data: { reason: e } }), this.resetSessionState(e);
@@ -1146,31 +1137,21 @@ class ut extends f {
1146
1137
  this.eventManager.track({
1147
1138
  type: d.SESSION_END,
1148
1139
  session_end_reason: e
1149
- });
1150
- const s = () => {
1151
- this.broadcastSessionEnd(t, e), this.resetSessionState(e);
1152
- };
1153
- if (this.eventManager.flushImmediatelySync()) {
1154
- s();
1155
- return;
1156
- }
1157
- try {
1158
- await this.eventManager.flushImmediately(), s();
1159
- } catch (i) {
1160
- o("warn", "Async flush failed during session end", { error: i }), s();
1161
- }
1140
+ }), this.eventManager.flushImmediatelySync() || o("warn", "Sync flush failed during session end, events persisted for recovery", {
1141
+ data: { reason: e, sessionId: t }
1142
+ }), this.broadcastSessionEnd(t, e), this.resetSessionState(e);
1162
1143
  }
1163
1144
  resetSessionState(e) {
1164
1145
  this.clearSessionTimeout(), this.cleanupActivityListeners(), this.cleanupLifecycleListeners(), this.cleanupCrossTabSync(), e !== "page_unload" && this.clearStoredSession(), this.set("sessionId", null), this.set("hasStartSession", !1), this.isTracking = !1;
1165
1146
  }
1166
- async stopTracking() {
1167
- await this.endSession("manual_stop");
1147
+ stopTracking() {
1148
+ this.endSession("manual_stop");
1168
1149
  }
1169
1150
  destroy() {
1170
1151
  this.clearSessionTimeout(), this.cleanupActivityListeners(), this.cleanupCrossTabSync(), this.cleanupLifecycleListeners(), this.isTracking = !1, this.set("hasStartSession", !1);
1171
1152
  }
1172
1153
  }
1173
- class dt extends f {
1154
+ class ft extends f {
1174
1155
  eventManager;
1175
1156
  storageManager;
1176
1157
  sessionManager = null;
@@ -1178,7 +1159,7 @@ class dt extends f {
1178
1159
  constructor(e, t) {
1179
1160
  super(), this.eventManager = t, this.storageManager = e;
1180
1161
  }
1181
- async startTracking() {
1162
+ startTracking() {
1182
1163
  if (this.isActive())
1183
1164
  return;
1184
1165
  if (this.destroyed) {
@@ -1189,7 +1170,7 @@ class dt extends f {
1189
1170
  if (!t)
1190
1171
  throw new Error("Cannot start session tracking: config not available");
1191
1172
  try {
1192
- this.sessionManager = new ut(this.storageManager, this.eventManager, t), await this.sessionManager.startTracking(), this.eventManager.flushPendingEvents();
1173
+ this.sessionManager = new ht(this.storageManager, this.eventManager, t), this.sessionManager.startTracking(), this.eventManager.flushPendingEvents();
1193
1174
  } catch (s) {
1194
1175
  if (this.sessionManager) {
1195
1176
  try {
@@ -1204,17 +1185,17 @@ class dt extends f {
1204
1185
  isActive() {
1205
1186
  return this.sessionManager !== null && !this.destroyed;
1206
1187
  }
1207
- async cleanupSessionManager() {
1208
- this.sessionManager && (await this.sessionManager.stopTracking(), this.sessionManager.destroy(), this.sessionManager = null);
1188
+ cleanupSessionManager() {
1189
+ this.sessionManager && (this.sessionManager.stopTracking(), this.sessionManager.destroy(), this.sessionManager = null);
1209
1190
  }
1210
- async stopTracking() {
1211
- await this.cleanupSessionManager();
1191
+ stopTracking() {
1192
+ this.cleanupSessionManager();
1212
1193
  }
1213
1194
  destroy() {
1214
1195
  this.destroyed || (this.sessionManager && (this.sessionManager.destroy(), this.sessionManager = null), this.destroyed = !0, this.set("hasStartSession", !1));
1215
1196
  }
1216
1197
  }
1217
- class ht extends f {
1198
+ class gt extends f {
1218
1199
  eventManager;
1219
1200
  onTrack;
1220
1201
  originalPushState;
@@ -1234,8 +1215,8 @@ class ht extends f {
1234
1215
  t.apply(window.history, s), this.trackCurrentPage();
1235
1216
  };
1236
1217
  }
1237
- trackCurrentPage = async () => {
1238
- const e = window.location.href, t = Y(e, this.get("config").sensitiveQueryParams);
1218
+ trackCurrentPage = () => {
1219
+ const e = window.location.href, t = K(e, this.get("config").sensitiveQueryParams);
1239
1220
  if (this.get("pageUrl") === t)
1240
1221
  return;
1241
1222
  this.onTrack();
@@ -1250,7 +1231,7 @@ class ht extends f {
1250
1231
  });
1251
1232
  };
1252
1233
  trackInitialPageView() {
1253
- const e = Y(window.location.href, this.get("config").sensitiveQueryParams), t = this.extractPageViewData();
1234
+ const e = K(window.location.href, this.get("config").sensitiveQueryParams), t = this.extractPageViewData();
1254
1235
  this.eventManager.track({
1255
1236
  type: d.PAGE_VIEW,
1256
1237
  page_url: e,
@@ -1268,7 +1249,7 @@ class ht extends f {
1268
1249
  };
1269
1250
  }
1270
1251
  }
1271
- class ft extends f {
1252
+ class Et extends f {
1272
1253
  eventManager;
1273
1254
  clickHandler;
1274
1255
  constructor(e) {
@@ -1306,10 +1287,10 @@ class ft extends f {
1306
1287
  this.clickHandler && (window.removeEventListener("click", this.clickHandler, !0), this.clickHandler = void 0);
1307
1288
  }
1308
1289
  findTrackingElement(e) {
1309
- return e.hasAttribute(`${O}-name`) ? e : e.closest(`[${O}-name]`) || void 0;
1290
+ return e.hasAttribute(`${P}-name`) ? e : e.closest(`[${P}-name]`) || void 0;
1310
1291
  }
1311
1292
  getRelevantClickElement(e) {
1312
- for (const t of Ce)
1293
+ for (const t of Oe)
1313
1294
  try {
1314
1295
  if (e.matches(t))
1315
1296
  return e;
@@ -1330,7 +1311,7 @@ class ft extends f {
1330
1311
  return { x: n, y: i, relativeX: a, relativeY: l };
1331
1312
  }
1332
1313
  extractTrackingData(e) {
1333
- const t = e.getAttribute(`${O}-name`), s = e.getAttribute(`${O}-value`);
1314
+ const t = e.getAttribute(`${P}-name`), s = e.getAttribute(`${P}-value`);
1334
1315
  if (t)
1335
1316
  return {
1336
1317
  element: e,
@@ -1387,7 +1368,7 @@ class ft extends f {
1387
1368
  };
1388
1369
  }
1389
1370
  }
1390
- class gt extends f {
1371
+ class St extends f {
1391
1372
  eventManager;
1392
1373
  containers = [];
1393
1374
  limitWarningLogged = !1;
@@ -1442,7 +1423,7 @@ class gt extends f {
1442
1423
  this.getScrollHeight(e),
1443
1424
  this.getViewportHeight(e)
1444
1425
  ),
1445
- lastDirection: D.DOWN,
1426
+ lastDirection: k.DOWN,
1446
1427
  lastEventTime: 0,
1447
1428
  debounceTimer: null,
1448
1429
  listener: t
@@ -1486,7 +1467,7 @@ class gt extends f {
1486
1467
  e.debounceTimer !== null && (clearTimeout(e.debounceTimer), e.debounceTimer = null);
1487
1468
  }
1488
1469
  getScrollDirection(e, t) {
1489
- return e > t ? D.DOWN : D.UP;
1470
+ return e > t ? k.DOWN : k.UP;
1490
1471
  }
1491
1472
  calculateScrollDepth(e, t, s) {
1492
1473
  if (t <= s)
@@ -1526,7 +1507,7 @@ class gt extends f {
1526
1507
  }
1527
1508
  }
1528
1509
  }
1529
- class St extends f {
1510
+ class mt extends f {
1530
1511
  isInitialized = !1;
1531
1512
  async initialize() {
1532
1513
  if (this.isInitialized)
@@ -1578,7 +1559,7 @@ class St extends f {
1578
1559
  `, document.head.appendChild(s);
1579
1560
  }
1580
1561
  }
1581
- class Et {
1562
+ class pt {
1582
1563
  storage;
1583
1564
  sessionStorageRef;
1584
1565
  fallbackStorage = /* @__PURE__ */ new Map();
@@ -1754,12 +1735,12 @@ class Et {
1754
1735
  this.fallbackSessionStorage.delete(e);
1755
1736
  }
1756
1737
  }
1757
- class mt extends f {
1738
+ class _t extends f {
1758
1739
  eventManager;
1759
1740
  reportedByNav = /* @__PURE__ */ new Map();
1760
1741
  observers = [];
1761
1742
  lastLongTaskSentAt = 0;
1762
- vitalThresholds = _e;
1743
+ vitalThresholds = Te;
1763
1744
  constructor(e) {
1764
1745
  super(), this.eventManager = e;
1765
1746
  }
@@ -1825,7 +1806,7 @@ class mt extends f {
1825
1806
  }
1826
1807
  async initWebVitals() {
1827
1808
  try {
1828
- const { onLCP: e, onCLS: t, onFCP: s, onTTFB: n, onINP: i } = await Promise.resolve().then(() => Ht), a = (l) => (c) => {
1809
+ const { onLCP: e, onCLS: t, onFCP: s, onTTFB: n, onINP: i } = await Promise.resolve().then(() => Vt), a = (l) => (c) => {
1829
1810
  const u = Number(c.value.toFixed(2));
1830
1811
  this.sendVital({ type: l, value: u });
1831
1812
  };
@@ -1852,7 +1833,7 @@ class mt extends f {
1852
1833
  const t = e.getEntries();
1853
1834
  for (const s of t) {
1854
1835
  const n = Number(s.duration.toFixed(2)), i = Date.now();
1855
- i - this.lastLongTaskSentAt >= ze && (this.shouldSendVital("LONG_TASK", n) && this.trackWebVital("LONG_TASK", n), this.lastLongTaskSentAt = i);
1836
+ i - this.lastLongTaskSentAt >= Qe && (this.shouldSendVital("LONG_TASK", n) && this.trackWebVital("LONG_TASK", n), this.lastLongTaskSentAt = i);
1856
1837
  }
1857
1838
  },
1858
1839
  { type: "longtask", buffered: !0 }
@@ -1933,7 +1914,7 @@ class mt extends f {
1933
1914
  return !(typeof s == "number" && t <= s);
1934
1915
  }
1935
1916
  }
1936
- class pt extends f {
1917
+ class Tt extends f {
1937
1918
  eventManager;
1938
1919
  recentErrors = /* @__PURE__ */ new Map();
1939
1920
  constructor(e) {
@@ -1953,10 +1934,10 @@ class pt extends f {
1953
1934
  if (!this.shouldSample())
1954
1935
  return;
1955
1936
  const t = this.sanitize(e.message || "Unknown error");
1956
- this.shouldSuppressError(L.JS_ERROR, t) || this.eventManager.track({
1937
+ this.shouldSuppressError(C.JS_ERROR, t) || this.eventManager.track({
1957
1938
  type: d.ERROR,
1958
1939
  error_data: {
1959
- type: L.JS_ERROR,
1940
+ type: C.JS_ERROR,
1960
1941
  message: t,
1961
1942
  ...e.filename && { filename: e.filename },
1962
1943
  ...e.lineno && { line: e.lineno },
@@ -1968,10 +1949,10 @@ class pt extends f {
1968
1949
  if (!this.shouldSample())
1969
1950
  return;
1970
1951
  const t = this.extractRejectionMessage(e.reason), s = this.sanitize(t);
1971
- this.shouldSuppressError(L.PROMISE_REJECTION, s) || this.eventManager.track({
1952
+ this.shouldSuppressError(C.PROMISE_REJECTION, s) || this.eventManager.track({
1972
1953
  type: d.ERROR,
1973
1954
  error_data: {
1974
- type: L.PROMISE_REJECTION,
1955
+ type: C.PROMISE_REJECTION,
1975
1956
  message: s
1976
1957
  }
1977
1958
  });
@@ -1990,8 +1971,8 @@ class pt extends f {
1990
1971
  }
1991
1972
  }
1992
1973
  sanitize(e) {
1993
- let t = e.length > ce ? e.slice(0, ce) + "..." : e;
1994
- for (const s of Te) {
1974
+ let t = e.length > ue ? e.slice(0, ue) + "..." : e;
1975
+ for (const s of ve) {
1995
1976
  const n = new RegExp(s.source, s.flags);
1996
1977
  t = t.replace(n, "[REDACTED]");
1997
1978
  }
@@ -1999,25 +1980,25 @@ class pt extends f {
1999
1980
  }
2000
1981
  shouldSuppressError(e, t) {
2001
1982
  const s = Date.now(), n = `${e}:${t}`, i = this.recentErrors.get(n);
2002
- return i && s - i < ue ? (this.recentErrors.set(n, s), !0) : (this.recentErrors.set(n, s), this.recentErrors.size > $e ? (this.recentErrors.clear(), this.recentErrors.set(n, s), !1) : (this.recentErrors.size > k && this.pruneOldErrors(), !1));
1983
+ return i && s - i < de ? (this.recentErrors.set(n, s), !0) : (this.recentErrors.set(n, s), this.recentErrors.size > je ? (this.recentErrors.clear(), this.recentErrors.set(n, s), !1) : (this.recentErrors.size > U && this.pruneOldErrors(), !1));
2003
1984
  }
2004
1985
  pruneOldErrors() {
2005
1986
  const e = Date.now();
2006
1987
  for (const [n, i] of this.recentErrors.entries())
2007
- e - i > ue && this.recentErrors.delete(n);
2008
- if (this.recentErrors.size <= k)
1988
+ e - i > de && this.recentErrors.delete(n);
1989
+ if (this.recentErrors.size <= U)
2009
1990
  return;
2010
- const t = Array.from(this.recentErrors.entries()).sort((n, i) => n[1] - i[1]), s = this.recentErrors.size - k;
1991
+ const t = Array.from(this.recentErrors.entries()).sort((n, i) => n[1] - i[1]), s = this.recentErrors.size - U;
2011
1992
  for (let n = 0; n < s; n += 1) {
2012
1993
  const i = t[n];
2013
1994
  i && this.recentErrors.delete(i[0]);
2014
1995
  }
2015
1996
  }
2016
1997
  }
2017
- class _t extends f {
1998
+ class vt extends f {
2018
1999
  isInitialized = !1;
2019
2000
  suppressNextScrollTimer = null;
2020
- emitter = new at();
2001
+ emitter = new lt();
2021
2002
  managers = {};
2022
2003
  handlers = {};
2023
2004
  integrations = {};
@@ -2026,13 +2007,13 @@ class _t extends f {
2026
2007
  }
2027
2008
  async init(e = {}) {
2028
2009
  if (!this.isInitialized) {
2029
- this.managers.storage = new Et();
2010
+ this.managers.storage = new pt();
2030
2011
  try {
2031
- this.setupState(e), await this.setupIntegrations(), this.managers.event = new lt(this.managers.storage, this.integrations.googleAnalytics, this.emitter), await this.initializeHandlers(), await this.managers.event.recoverPersistedEvents().catch((t) => {
2012
+ this.setupState(e), await this.setupIntegrations(), this.managers.event = new ut(this.managers.storage, this.integrations.googleAnalytics, this.emitter), this.initializeHandlers(), await this.managers.event.recoverPersistedEvents().catch((t) => {
2032
2013
  o("warn", "Failed to recover persisted events", { error: t });
2033
2014
  }), this.isInitialized = !0;
2034
2015
  } catch (t) {
2035
- await this.destroy(!0);
2016
+ this.destroy(!0);
2036
2017
  const s = t instanceof Error ? t.message : String(t);
2037
2018
  throw new Error(`[TraceLog] TraceLog initialization failed: ${s}`);
2038
2019
  }
@@ -2041,7 +2022,7 @@ class _t extends f {
2041
2022
  sendCustomEvent(e, t) {
2042
2023
  if (!this.managers.event)
2043
2024
  return;
2044
- const { valid: s, error: n, sanitizedMetadata: i } = it(e, t);
2025
+ const { valid: s, error: n, sanitizedMetadata: i } = ot(e, t);
2045
2026
  if (!s) {
2046
2027
  if (this.get("mode") === R.QA)
2047
2028
  throw new Error(`[TraceLog] Custom event "${e}" validation failed: ${n}`);
@@ -2061,64 +2042,60 @@ class _t extends f {
2061
2042
  off(e, t) {
2062
2043
  this.emitter.off(e, t);
2063
2044
  }
2064
- async destroy(e = !1) {
2065
- if (!this.isInitialized && !e)
2066
- return;
2067
- this.integrations.googleAnalytics?.cleanup();
2068
- const t = Object.values(this.handlers).filter(Boolean).map(async (s) => {
2045
+ destroy(e = !1) {
2046
+ !this.isInitialized && !e || (this.integrations.googleAnalytics?.cleanup(), Object.values(this.handlers).filter(Boolean).forEach((t) => {
2069
2047
  try {
2070
- await s.stopTracking();
2071
- } catch (n) {
2072
- o("warn", "Failed to stop tracking", { error: n });
2048
+ t.stopTracking();
2049
+ } catch (s) {
2050
+ o("warn", "Failed to stop tracking", { error: s });
2073
2051
  }
2074
- });
2075
- await Promise.allSettled(t), this.suppressNextScrollTimer && (clearTimeout(this.suppressNextScrollTimer), this.suppressNextScrollTimer = null), this.managers.event?.flushImmediatelySync(), this.managers.event?.stop(), this.emitter.removeAllListeners(), this.set("hasStartSession", !1), this.set("suppressNextScroll", !1), this.set("sessionId", null), this.isInitialized = !1, this.handlers = {};
2052
+ }), this.suppressNextScrollTimer && (clearTimeout(this.suppressNextScrollTimer), this.suppressNextScrollTimer = null), this.managers.event?.flushImmediatelySync(), this.managers.event?.stop(), this.emitter.removeAllListeners(), this.set("hasStartSession", !1), this.set("suppressNextScroll", !1), this.set("sessionId", null), this.isInitialized = !1, this.handlers = {});
2076
2053
  }
2077
2054
  setupState(e = {}) {
2078
2055
  this.set("config", e);
2079
- const t = ct.getId(this.managers.storage);
2056
+ const t = dt.getId(this.managers.storage);
2080
2057
  this.set("userId", t);
2081
- const s = We(e);
2058
+ const s = qe(e);
2082
2059
  this.set("collectApiUrl", s);
2083
- const n = He();
2060
+ const n = Ve();
2084
2061
  this.set("device", n);
2085
- const i = Y(window.location.href, e.sensitiveQueryParams);
2062
+ const i = K(window.location.href, e.sensitiveQueryParams);
2086
2063
  this.set("pageUrl", i);
2087
- const a = Be() ? R.QA : void 0;
2064
+ const a = Xe() ? R.QA : void 0;
2088
2065
  a && this.set("mode", a);
2089
2066
  }
2090
2067
  async setupIntegrations() {
2091
2068
  if (this.get("config").integrations?.googleAnalytics?.measurementId?.trim())
2092
2069
  try {
2093
- this.integrations.googleAnalytics = new St(), await this.integrations.googleAnalytics.initialize();
2070
+ this.integrations.googleAnalytics = new mt(), await this.integrations.googleAnalytics.initialize();
2094
2071
  } catch {
2095
2072
  this.integrations.googleAnalytics = void 0;
2096
2073
  }
2097
2074
  }
2098
- async initializeHandlers() {
2099
- this.handlers.session = new dt(
2075
+ initializeHandlers() {
2076
+ this.handlers.session = new ft(
2100
2077
  this.managers.storage,
2101
2078
  this.managers.event
2102
- ), await this.handlers.session.startTracking();
2079
+ ), this.handlers.session.startTracking();
2103
2080
  const e = () => {
2104
2081
  this.set("suppressNextScroll", !0), this.suppressNextScrollTimer && clearTimeout(this.suppressNextScrollTimer), this.suppressNextScrollTimer = window.setTimeout(() => {
2105
2082
  this.set("suppressNextScroll", !1);
2106
2083
  }, 250 * 2);
2107
2084
  };
2108
- this.handlers.pageView = new ht(this.managers.event, e), this.handlers.pageView.startTracking(), this.handlers.click = new ft(this.managers.event), this.handlers.click.startTracking(), this.handlers.scroll = new gt(this.managers.event), this.handlers.scroll.startTracking(), this.handlers.performance = new mt(this.managers.event), this.handlers.performance.startTracking().catch((t) => {
2085
+ this.handlers.pageView = new gt(this.managers.event, e), this.handlers.pageView.startTracking(), this.handlers.click = new Et(this.managers.event), this.handlers.click.startTracking(), this.handlers.scroll = new St(this.managers.event), this.handlers.scroll.startTracking(), this.handlers.performance = new _t(this.managers.event), this.handlers.performance.startTracking().catch((t) => {
2109
2086
  o("warn", "Failed to start performance tracking", { error: t });
2110
- }), this.handlers.error = new pt(this.managers.event), this.handlers.error.startTracking();
2087
+ }), this.handlers.error = new Tt(this.managers.event), this.handlers.error.startTracking();
2111
2088
  }
2112
2089
  }
2113
2090
  const I = [];
2114
- let h = null, w = !1, U = !1;
2115
- const Tt = async (r) => {
2091
+ let h = null, M = !1, H = !1;
2092
+ const It = async (r) => {
2116
2093
  if (typeof window > "u" || typeof document > "u")
2117
2094
  throw new Error("[TraceLog] This library can only be used in a browser environment");
2118
- if (!window.__traceLogDisabled && !h && !w) {
2119
- w = !0;
2095
+ if (!window.__traceLogDisabled && !h && !M) {
2096
+ M = !0;
2120
2097
  try {
2121
- const e = et(r ?? {}), t = new _t();
2098
+ const e = st(r ?? {}), t = new vt();
2122
2099
  try {
2123
2100
  I.forEach(({ event: i, callback: a }) => {
2124
2101
  t.on(i, a);
@@ -2131,7 +2108,7 @@ const Tt = async (r) => {
2131
2108
  await Promise.race([s, n]), h = t;
2132
2109
  } catch (s) {
2133
2110
  try {
2134
- await t.destroy(!0);
2111
+ t.destroy(!0);
2135
2112
  } catch (n) {
2136
2113
  o("error", "Failed to cleanup partially initialized app", { error: n });
2137
2114
  }
@@ -2140,48 +2117,48 @@ const Tt = async (r) => {
2140
2117
  } catch (e) {
2141
2118
  throw h = null, e;
2142
2119
  } finally {
2143
- w = !1;
2120
+ M = !1;
2144
2121
  }
2145
2122
  }
2146
- }, vt = (r, e) => {
2123
+ }, yt = (r, e) => {
2147
2124
  if (!h)
2148
2125
  throw new Error("[TraceLog] TraceLog not initialized. Please call init() first.");
2149
- if (U)
2126
+ if (H)
2150
2127
  throw new Error("[TraceLog] Cannot send events while TraceLog is being destroyed");
2151
2128
  h.sendCustomEvent(r, e);
2152
- }, It = (r, e) => {
2153
- if (!h || w) {
2129
+ }, At = (r, e) => {
2130
+ if (!h || M) {
2154
2131
  I.push({ event: r, callback: e });
2155
2132
  return;
2156
2133
  }
2157
2134
  h.on(r, e);
2158
- }, yt = (r, e) => {
2135
+ }, wt = (r, e) => {
2159
2136
  if (!h) {
2160
2137
  const t = I.findIndex((s) => s.event === r && s.callback === e);
2161
2138
  t !== -1 && I.splice(t, 1);
2162
2139
  return;
2163
2140
  }
2164
2141
  h.off(r, e);
2165
- }, At = () => h !== null, wt = async () => {
2142
+ }, Mt = () => h !== null, Nt = () => {
2143
+ if (H)
2144
+ throw new Error("[TraceLog] Destroy operation already in progress");
2166
2145
  if (!h)
2167
2146
  throw new Error("[TraceLog] App not initialized");
2168
- if (U)
2169
- throw new Error("[TraceLog] Destroy operation already in progress");
2170
- U = !0;
2147
+ H = !0;
2171
2148
  try {
2172
- await h.destroy(), h = null, w = !1, I.length = 0;
2149
+ h.destroy(), h = null, M = !1, I.length = 0;
2173
2150
  } catch (r) {
2174
- h = null, w = !1, I.length = 0, o("warn", "Error during destroy, forced cleanup completed", { error: r });
2151
+ h = null, M = !1, I.length = 0, o("warn", "Error during destroy, forced cleanup completed", { error: r });
2175
2152
  } finally {
2176
- U = !1;
2153
+ H = !1;
2177
2154
  }
2178
- }, Vt = {
2179
- WEB_VITALS_THRESHOLDS: _e
2155
+ }, Gt = {
2156
+ WEB_VITALS_THRESHOLDS: Te
2180
2157
  // Business thresholds for performance analysis
2181
- }, Ft = {
2182
- PII_PATTERNS: Te
2158
+ }, $t = {
2159
+ PII_PATTERNS: ve
2183
2160
  // Patterns for sensitive data protection
2184
- }, Gt = {
2161
+ }, zt = {
2185
2162
  LOW_ACTIVITY_EVENT_COUNT: 50,
2186
2163
  HIGH_ACTIVITY_EVENT_COUNT: 1e3,
2187
2164
  MIN_EVENTS_FOR_DYNAMIC_CALCULATION: 100,
@@ -2191,7 +2168,7 @@ const Tt = async (r) => {
2191
2168
  MIN_ENGAGED_SESSION_DURATION_MS: 30 * 1e3,
2192
2169
  MIN_SCROLL_DEPTH_ENGAGEMENT: 25
2193
2170
  // 25% scroll depth for engagement
2194
- }, zt = {
2171
+ }, Qt = {
2195
2172
  INACTIVITY_TIMEOUT_MS: 30 * 60 * 1e3,
2196
2173
  // 30min for analytics (vs 15min client)
2197
2174
  SHORT_SESSION_THRESHOLD_MS: 30 * 1e3,
@@ -2199,20 +2176,20 @@ const Tt = async (r) => {
2199
2176
  LONG_SESSION_THRESHOLD_MS: 30 * 60 * 1e3,
2200
2177
  MAX_REALISTIC_SESSION_DURATION_MS: 8 * 60 * 60 * 1e3
2201
2178
  // Filter outliers
2202
- }, $t = {
2179
+ }, jt = {
2203
2180
  MOBILE_MAX_WIDTH: 768,
2204
2181
  TABLET_MAX_WIDTH: 1024,
2205
2182
  MOBILE_PERFORMANCE_FACTOR: 1.5,
2206
2183
  // Mobile typically 1.5x slower
2207
2184
  TABLET_PERFORMANCE_FACTOR: 1.2
2208
- }, Qt = {
2185
+ }, Bt = {
2209
2186
  MIN_TEXT_LENGTH_FOR_ANALYSIS: 10,
2210
2187
  MIN_CLICKS_FOR_HOT_ELEMENT: 10,
2211
2188
  // Popular element threshold
2212
2189
  MIN_SCROLL_COMPLETION_PERCENT: 80,
2213
2190
  // Page consumption threshold
2214
2191
  MIN_TIME_ON_PAGE_FOR_READ_MS: 15 * 1e3
2215
- }, Bt = {
2192
+ }, Wt = {
2216
2193
  SIGNIFICANT_CHANGE_PERCENT: 20,
2217
2194
  MAJOR_CHANGE_PERCENT: 50,
2218
2195
  MIN_EVENTS_FOR_INSIGHT: 100,
@@ -2222,19 +2199,19 @@ const Tt = async (r) => {
2222
2199
  LOW_ERROR_RATE_PERCENT: 1,
2223
2200
  HIGH_ERROR_RATE_PERCENT: 5,
2224
2201
  CRITICAL_ERROR_RATE_PERCENT: 10
2225
- }, jt = {
2202
+ }, Xt = {
2226
2203
  SHORT_TERM_TREND_HOURS: 24,
2227
2204
  MEDIUM_TERM_TREND_DAYS: 7,
2228
2205
  LONG_TERM_TREND_DAYS: 30,
2229
2206
  MIN_DATA_POINTS_FOR_TREND: 5,
2230
2207
  WEEKLY_PATTERN_MIN_WEEKS: 4,
2231
2208
  DAILY_PATTERN_MIN_DAYS: 14
2232
- }, Xt = {
2209
+ }, Yt = {
2233
2210
  MIN_SEGMENT_SIZE: 10,
2234
2211
  MIN_COHORT_SIZE: 5,
2235
2212
  COHORT_ANALYSIS_DAYS: [1, 3, 7, 14, 30],
2236
2213
  MIN_FUNNEL_EVENTS: 20
2237
- }, Wt = {
2214
+ }, Kt = {
2238
2215
  DEFAULT_EVENTS_LIMIT: 5,
2239
2216
  DEFAULT_SESSIONS_LIMIT: 5,
2240
2217
  DEFAULT_PAGES_LIMIT: 5,
@@ -2242,38 +2219,38 @@ const Tt = async (r) => {
2242
2219
  MAX_TIME_RANGE_DAYS: 365,
2243
2220
  ANALYTICS_BATCH_SIZE: 1e3
2244
2221
  // For historical analysis
2245
- }, Yt = {
2222
+ }, qt = {
2246
2223
  ANOMALY_THRESHOLD_SIGMA: 2.5,
2247
2224
  STRONG_ANOMALY_THRESHOLD_SIGMA: 3,
2248
2225
  TRAFFIC_DROP_ALERT_PERCENT: -30,
2249
2226
  TRAFFIC_SPIKE_ALERT_PERCENT: 200,
2250
2227
  MIN_BASELINE_DAYS: 7,
2251
2228
  MIN_EVENTS_FOR_ANOMALY_DETECTION: 50
2252
- }, Kt = {
2229
+ }, Zt = {
2253
2230
  PAGE_URL_EXCLUDED: "excluded",
2254
2231
  PAGE_URL_UNKNOWN: "unknown"
2255
- }, qt = {
2256
- init: Tt,
2257
- event: vt,
2258
- on: It,
2259
- off: yt,
2260
- isInitialized: At,
2261
- destroy: wt
2232
+ }, Jt = {
2233
+ init: It,
2234
+ event: yt,
2235
+ on: At,
2236
+ off: wt,
2237
+ isInitialized: Mt,
2238
+ destroy: Nt
2262
2239
  };
2263
- var q, ve = -1, M = function(r) {
2240
+ var Z, ye = -1, N = function(r) {
2264
2241
  addEventListener("pageshow", function(e) {
2265
- e.persisted && (ve = e.timeStamp, r(e));
2242
+ e.persisted && (ye = e.timeStamp, r(e));
2266
2243
  }, !0);
2267
- }, se = function() {
2244
+ }, ne = function() {
2268
2245
  var r = self.performance && performance.getEntriesByType && performance.getEntriesByType("navigation")[0];
2269
2246
  if (r && r.responseStart > 0 && r.responseStart < performance.now()) return r;
2270
- }, V = function() {
2271
- var r = se();
2247
+ }, F = function() {
2248
+ var r = ne();
2272
2249
  return r && r.activationStart || 0;
2273
- }, S = function(r, e) {
2274
- var t = se(), s = "navigate";
2275
- return ve >= 0 ? s = "back-forward-cache" : t && (document.prerendering || V() > 0 ? s = "prerender" : document.wasDiscarded ? s = "restore" : t.type && (s = t.type.replace(/_/g, "-"))), { name: r, value: e === void 0 ? -1 : e, rating: "good", delta: 0, entries: [], id: "v4-".concat(Date.now(), "-").concat(Math.floor(8999999999999 * Math.random()) + 1e12), navigationType: s };
2276
- }, b = function(r, e, t) {
2250
+ }, E = function(r, e) {
2251
+ var t = ne(), s = "navigate";
2252
+ return ye >= 0 ? s = "back-forward-cache" : t && (document.prerendering || F() > 0 ? s = "prerender" : document.wasDiscarded ? s = "restore" : t.type && (s = t.type.replace(/_/g, "-"))), { name: r, value: e === void 0 ? -1 : e, rating: "good", delta: 0, entries: [], id: "v4-".concat(Date.now(), "-").concat(Math.floor(8999999999999 * Math.random()) + 1e12), navigationType: s };
2253
+ }, O = function(r, e, t) {
2277
2254
  try {
2278
2255
  if (PerformanceObserver.supportedEntryTypes.includes(r)) {
2279
2256
  var s = new PerformanceObserver(function(n) {
@@ -2285,205 +2262,206 @@ var q, ve = -1, M = function(r) {
2285
2262
  }
2286
2263
  } catch {
2287
2264
  }
2288
- }, E = function(r, e, t, s) {
2265
+ }, S = function(r, e, t, s) {
2289
2266
  var n, i;
2290
2267
  return function(a) {
2291
2268
  e.value >= 0 && (a || s) && ((i = e.value - (n || 0)) || n === void 0) && (n = e.value, e.delta = i, e.rating = function(l, c) {
2292
2269
  return l > c[1] ? "poor" : l > c[0] ? "needs-improvement" : "good";
2293
2270
  }(e.value, t), r(e));
2294
2271
  };
2295
- }, ne = function(r) {
2272
+ }, ie = function(r) {
2296
2273
  requestAnimationFrame(function() {
2297
2274
  return requestAnimationFrame(function() {
2298
2275
  return r();
2299
2276
  });
2300
2277
  });
2301
- }, F = function(r) {
2278
+ }, G = function(r) {
2302
2279
  document.addEventListener("visibilitychange", function() {
2303
2280
  document.visibilityState === "hidden" && r();
2304
2281
  });
2305
- }, ie = function(r) {
2282
+ }, ae = function(r) {
2306
2283
  var e = !1;
2307
2284
  return function() {
2308
2285
  e || (r(), e = !0);
2309
2286
  };
2310
- }, A = -1, Ee = function() {
2287
+ }, w = -1, me = function() {
2311
2288
  return document.visibilityState !== "hidden" || document.prerendering ? 1 / 0 : 0;
2312
- }, x = function(r) {
2313
- document.visibilityState === "hidden" && A > -1 && (A = r.type === "visibilitychange" ? r.timeStamp : 0, Mt());
2314
- }, me = function() {
2315
- addEventListener("visibilitychange", x, !0), addEventListener("prerenderingchange", x, !0);
2316
- }, Mt = function() {
2317
- removeEventListener("visibilitychange", x, !0), removeEventListener("prerenderingchange", x, !0);
2318
- }, Ie = function() {
2319
- return A < 0 && (A = Ee(), me(), M(function() {
2289
+ }, V = function(r) {
2290
+ document.visibilityState === "hidden" && w > -1 && (w = r.type === "visibilitychange" ? r.timeStamp : 0, Lt());
2291
+ }, pe = function() {
2292
+ addEventListener("visibilitychange", V, !0), addEventListener("prerenderingchange", V, !0);
2293
+ }, Lt = function() {
2294
+ removeEventListener("visibilitychange", V, !0), removeEventListener("prerenderingchange", V, !0);
2295
+ }, Ae = function() {
2296
+ return w < 0 && (w = me(), pe(), N(function() {
2320
2297
  setTimeout(function() {
2321
- A = Ee(), me();
2298
+ w = me(), pe();
2322
2299
  }, 0);
2323
2300
  })), { get firstHiddenTime() {
2324
- return A;
2301
+ return w;
2325
2302
  } };
2326
- }, G = function(r) {
2303
+ }, $ = function(r) {
2327
2304
  document.prerendering ? addEventListener("prerenderingchange", function() {
2328
2305
  return r();
2329
2306
  }, !0) : r();
2330
- }, Z = [1800, 3e3], ye = function(r, e) {
2331
- e = e || {}, G(function() {
2332
- var t, s = Ie(), n = S("FCP"), i = b("paint", function(a) {
2307
+ }, J = [1800, 3e3], we = function(r, e) {
2308
+ e = e || {}, $(function() {
2309
+ var t, s = Ae(), n = E("FCP"), i = O("paint", function(a) {
2333
2310
  a.forEach(function(l) {
2334
- l.name === "first-contentful-paint" && (i.disconnect(), l.startTime < s.firstHiddenTime && (n.value = Math.max(l.startTime - V(), 0), n.entries.push(l), t(!0)));
2311
+ l.name === "first-contentful-paint" && (i.disconnect(), l.startTime < s.firstHiddenTime && (n.value = Math.max(l.startTime - F(), 0), n.entries.push(l), t(!0)));
2335
2312
  });
2336
2313
  });
2337
- i && (t = E(r, n, Z, e.reportAllChanges), M(function(a) {
2338
- n = S("FCP"), t = E(r, n, Z, e.reportAllChanges), ne(function() {
2314
+ i && (t = S(r, n, J, e.reportAllChanges), N(function(a) {
2315
+ n = E("FCP"), t = S(r, n, J, e.reportAllChanges), ie(function() {
2339
2316
  n.value = performance.now() - a.timeStamp, t(!0);
2340
2317
  });
2341
2318
  }));
2342
2319
  });
2343
- }, J = [0.1, 0.25], Nt = function(r, e) {
2344
- e = e || {}, ye(ie(function() {
2345
- var t, s = S("CLS", 0), n = 0, i = [], a = function(c) {
2320
+ }, ee = [0.1, 0.25], Ct = function(r, e) {
2321
+ e = e || {}, we(ae(function() {
2322
+ var t, s = E("CLS", 0), n = 0, i = [], a = function(c) {
2346
2323
  c.forEach(function(u) {
2347
2324
  if (!u.hadRecentInput) {
2348
- var p = i[0], N = i[i.length - 1];
2349
- n && u.startTime - N.startTime < 1e3 && u.startTime - p.startTime < 5e3 ? (n += u.value, i.push(u)) : (n = u.value, i = [u]);
2325
+ var p = i[0], L = i[i.length - 1];
2326
+ n && u.startTime - L.startTime < 1e3 && u.startTime - p.startTime < 5e3 ? (n += u.value, i.push(u)) : (n = u.value, i = [u]);
2350
2327
  }
2351
2328
  }), n > s.value && (s.value = n, s.entries = i, t());
2352
- }, l = b("layout-shift", a);
2353
- l && (t = E(r, s, J, e.reportAllChanges), F(function() {
2329
+ }, l = O("layout-shift", a);
2330
+ l && (t = S(r, s, ee, e.reportAllChanges), G(function() {
2354
2331
  a(l.takeRecords()), t(!0);
2355
- }), M(function() {
2356
- n = 0, s = S("CLS", 0), t = E(r, s, J, e.reportAllChanges), ne(function() {
2332
+ }), N(function() {
2333
+ n = 0, s = E("CLS", 0), t = S(r, s, ee, e.reportAllChanges), ie(function() {
2357
2334
  return t();
2358
2335
  });
2359
2336
  }), setTimeout(t, 0));
2360
2337
  }));
2361
- }, Ae = 0, Q = 1 / 0, P = 0, Lt = function(r) {
2338
+ }, Me = 0, j = 1 / 0, D = 0, Rt = function(r) {
2362
2339
  r.forEach(function(e) {
2363
- e.interactionId && (Q = Math.min(Q, e.interactionId), P = Math.max(P, e.interactionId), Ae = P ? (P - Q) / 7 + 1 : 0);
2340
+ e.interactionId && (j = Math.min(j, e.interactionId), D = Math.max(D, e.interactionId), Me = D ? (D - j) / 7 + 1 : 0);
2364
2341
  });
2365
- }, we = function() {
2366
- return q ? Ae : performance.interactionCount || 0;
2367
- }, Rt = function() {
2368
- "interactionCount" in performance || q || (q = b("event", Lt, { type: "event", buffered: !0, durationThreshold: 0 }));
2369
- }, g = [], H = /* @__PURE__ */ new Map(), Me = 0, Ct = function() {
2370
- var r = Math.min(g.length - 1, Math.floor((we() - Me) / 50));
2342
+ }, Ne = function() {
2343
+ return Z ? Me : performance.interactionCount || 0;
2344
+ }, bt = function() {
2345
+ "interactionCount" in performance || Z || (Z = O("event", Rt, { type: "event", buffered: !0, durationThreshold: 0 }));
2346
+ }, g = [], x = /* @__PURE__ */ new Map(), Le = 0, Ot = function() {
2347
+ var r = Math.min(g.length - 1, Math.floor((Ne() - Le) / 50));
2371
2348
  return g[r];
2372
- }, bt = [], Ot = function(r) {
2373
- if (bt.forEach(function(n) {
2349
+ }, Pt = [], Dt = function(r) {
2350
+ if (Pt.forEach(function(n) {
2374
2351
  return n(r);
2375
2352
  }), r.interactionId || r.entryType === "first-input") {
2376
- var e = g[g.length - 1], t = H.get(r.interactionId);
2353
+ var e = g[g.length - 1], t = x.get(r.interactionId);
2377
2354
  if (t || g.length < 10 || r.duration > e.latency) {
2378
2355
  if (t) r.duration > t.latency ? (t.entries = [r], t.latency = r.duration) : r.duration === t.latency && r.startTime === t.entries[0].startTime && t.entries.push(r);
2379
2356
  else {
2380
2357
  var s = { id: r.interactionId, latency: r.duration, entries: [r] };
2381
- H.set(s.id, s), g.push(s);
2358
+ x.set(s.id, s), g.push(s);
2382
2359
  }
2383
2360
  g.sort(function(n, i) {
2384
2361
  return i.latency - n.latency;
2385
2362
  }), g.length > 10 && g.splice(10).forEach(function(n) {
2386
- return H.delete(n.id);
2363
+ return x.delete(n.id);
2387
2364
  });
2388
2365
  }
2389
2366
  }
2390
- }, Ne = function(r) {
2367
+ }, Ce = function(r) {
2391
2368
  var e = self.requestIdleCallback || self.setTimeout, t = -1;
2392
- return r = ie(r), document.visibilityState === "hidden" ? r() : (t = e(r), F(r)), t;
2393
- }, ee = [200, 500], Pt = function(r, e) {
2394
- "PerformanceEventTiming" in self && "interactionId" in PerformanceEventTiming.prototype && (e = e || {}, G(function() {
2369
+ return r = ae(r), document.visibilityState === "hidden" ? r() : (t = e(r), G(r)), t;
2370
+ }, te = [200, 500], kt = function(r, e) {
2371
+ "PerformanceEventTiming" in self && "interactionId" in PerformanceEventTiming.prototype && (e = e || {}, $(function() {
2395
2372
  var t;
2396
- Rt();
2397
- var s, n = S("INP"), i = function(l) {
2398
- Ne(function() {
2399
- l.forEach(Ot);
2400
- var c = Ct();
2373
+ bt();
2374
+ var s, n = E("INP"), i = function(l) {
2375
+ Ce(function() {
2376
+ l.forEach(Dt);
2377
+ var c = Ot();
2401
2378
  c && c.latency !== n.value && (n.value = c.latency, n.entries = c.entries, s());
2402
2379
  });
2403
- }, a = b("event", i, { durationThreshold: (t = e.durationThreshold) !== null && t !== void 0 ? t : 40 });
2404
- s = E(r, n, ee, e.reportAllChanges), a && (a.observe({ type: "first-input", buffered: !0 }), F(function() {
2380
+ }, a = O("event", i, { durationThreshold: (t = e.durationThreshold) !== null && t !== void 0 ? t : 40 });
2381
+ s = S(r, n, te, e.reportAllChanges), a && (a.observe({ type: "first-input", buffered: !0 }), G(function() {
2405
2382
  i(a.takeRecords()), s(!0);
2406
- }), M(function() {
2407
- Me = we(), g.length = 0, H.clear(), n = S("INP"), s = E(r, n, ee, e.reportAllChanges);
2383
+ }), N(function() {
2384
+ Le = Ne(), g.length = 0, x.clear(), n = E("INP"), s = S(r, n, te, e.reportAllChanges);
2408
2385
  }));
2409
2386
  }));
2410
- }, te = [2500, 4e3], B = {}, Dt = function(r, e) {
2411
- e = e || {}, G(function() {
2412
- var t, s = Ie(), n = S("LCP"), i = function(c) {
2387
+ }, re = [2500, 4e3], B = {}, Ut = function(r, e) {
2388
+ e = e || {}, $(function() {
2389
+ var t, s = Ae(), n = E("LCP"), i = function(c) {
2413
2390
  e.reportAllChanges || (c = c.slice(-1)), c.forEach(function(u) {
2414
- u.startTime < s.firstHiddenTime && (n.value = Math.max(u.startTime - V(), 0), n.entries = [u], t());
2391
+ u.startTime < s.firstHiddenTime && (n.value = Math.max(u.startTime - F(), 0), n.entries = [u], t());
2415
2392
  });
2416
- }, a = b("largest-contentful-paint", i);
2393
+ }, a = O("largest-contentful-paint", i);
2417
2394
  if (a) {
2418
- t = E(r, n, te, e.reportAllChanges);
2419
- var l = ie(function() {
2395
+ t = S(r, n, re, e.reportAllChanges);
2396
+ var l = ae(function() {
2420
2397
  B[n.id] || (i(a.takeRecords()), a.disconnect(), B[n.id] = !0, t(!0));
2421
2398
  });
2422
2399
  ["keydown", "click"].forEach(function(c) {
2423
2400
  addEventListener(c, function() {
2424
- return Ne(l);
2401
+ return Ce(l);
2425
2402
  }, { once: !0, capture: !0 });
2426
- }), F(l), M(function(c) {
2427
- n = S("LCP"), t = E(r, n, te, e.reportAllChanges), ne(function() {
2403
+ }), G(l), N(function(c) {
2404
+ n = E("LCP"), t = S(r, n, re, e.reportAllChanges), ie(function() {
2428
2405
  n.value = performance.now() - c.timeStamp, B[n.id] = !0, t(!0);
2429
2406
  });
2430
2407
  });
2431
2408
  }
2432
2409
  });
2433
- }, re = [800, 1800], kt = function r(e) {
2434
- document.prerendering ? G(function() {
2410
+ }, se = [800, 1800], Ht = function r(e) {
2411
+ document.prerendering ? $(function() {
2435
2412
  return r(e);
2436
2413
  }) : document.readyState !== "complete" ? addEventListener("load", function() {
2437
2414
  return r(e);
2438
2415
  }, !0) : setTimeout(e, 0);
2439
- }, Ut = function(r, e) {
2416
+ }, xt = function(r, e) {
2440
2417
  e = e || {};
2441
- var t = S("TTFB"), s = E(r, t, re, e.reportAllChanges);
2442
- kt(function() {
2443
- var n = se();
2444
- n && (t.value = Math.max(n.responseStart - V(), 0), t.entries = [n], s(!0), M(function() {
2445
- t = S("TTFB", 0), (s = E(r, t, re, e.reportAllChanges))(!0);
2418
+ var t = E("TTFB"), s = S(r, t, se, e.reportAllChanges);
2419
+ Ht(function() {
2420
+ var n = ne();
2421
+ n && (t.value = Math.max(n.responseStart - F(), 0), t.entries = [n], s(!0), N(function() {
2422
+ t = E("TTFB", 0), (s = S(r, t, se, e.reportAllChanges))(!0);
2446
2423
  }));
2447
2424
  });
2448
2425
  };
2449
- const Ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2426
+ const Vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2450
2427
  __proto__: null,
2451
- CLSThresholds: J,
2452
- FCPThresholds: Z,
2453
- INPThresholds: ee,
2454
- LCPThresholds: te,
2455
- TTFBThresholds: re,
2456
- onCLS: Nt,
2457
- onFCP: ye,
2458
- onINP: Pt,
2459
- onLCP: Dt,
2460
- onTTFB: Ut
2428
+ CLSThresholds: ee,
2429
+ FCPThresholds: J,
2430
+ INPThresholds: te,
2431
+ LCPThresholds: re,
2432
+ TTFBThresholds: se,
2433
+ onCLS: Ct,
2434
+ onFCP: we,
2435
+ onINP: kt,
2436
+ onLCP: Ut,
2437
+ onTTFB: xt
2461
2438
  }, Symbol.toStringTag, { value: "Module" }));
2462
2439
  export {
2463
- Wt as ANALYTICS_QUERY_LIMITS,
2464
- Yt as ANOMALY_DETECTION,
2465
- y as AppConfigValidationError,
2466
- Qt as CONTENT_ANALYTICS,
2467
- Ft as DATA_PROTECTION,
2468
- $t as DEVICE_ANALYTICS,
2440
+ Kt as ANALYTICS_QUERY_LIMITS,
2441
+ qt as ANOMALY_DETECTION,
2442
+ A as AppConfigValidationError,
2443
+ Bt as CONTENT_ANALYTICS,
2444
+ $t as DATA_PROTECTION,
2445
+ jt as DEVICE_ANALYTICS,
2469
2446
  _ as DeviceType,
2470
- Gt as ENGAGEMENT_THRESHOLDS,
2447
+ zt as ENGAGEMENT_THRESHOLDS,
2471
2448
  X as EmitterEvent,
2472
- L as ErrorType,
2449
+ C as ErrorType,
2473
2450
  d as EventType,
2474
- Bt as INSIGHT_THRESHOLDS,
2475
- xt as InitializationTimeoutError,
2451
+ Wt as INSIGHT_THRESHOLDS,
2452
+ Ft as InitializationTimeoutError,
2476
2453
  v as IntegrationValidationError,
2477
2454
  R as Mode,
2478
- Vt as PERFORMANCE_CONFIG,
2479
- Xt as SEGMENTATION_ANALYTICS,
2480
- zt as SESSION_ANALYTICS,
2481
- Kt as SPECIAL_PAGE_URLS,
2482
- oe as SamplingRateValidationError,
2483
- D as ScrollDirection,
2484
- Pe as SessionTimeoutValidationError,
2485
- j as SpecialApiUrl,
2486
- jt as TEMPORAL_ANALYSIS,
2487
- C as TraceLogValidationError,
2488
- qt as tracelog
2455
+ Gt as PERFORMANCE_CONFIG,
2456
+ y as PermanentError,
2457
+ Yt as SEGMENTATION_ANALYTICS,
2458
+ Qt as SESSION_ANALYTICS,
2459
+ Zt as SPECIAL_PAGE_URLS,
2460
+ le as SamplingRateValidationError,
2461
+ k as ScrollDirection,
2462
+ ke as SessionTimeoutValidationError,
2463
+ W as SpecialApiUrl,
2464
+ Xt as TEMPORAL_ANALYSIS,
2465
+ b as TraceLogValidationError,
2466
+ Jt as tracelog
2489
2467
  };