@shware/analytics 3.6.4 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/README.md +50 -3
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/dist/constants/storage.cjs +12 -37
  4. package/dist/constants/storage.cjs.map +1 -1
  5. package/dist/constants/storage.d.cts +10 -8
  6. package/dist/constants/storage.d.cts.map +1 -0
  7. package/dist/constants/storage.d.mts +13 -0
  8. package/dist/constants/storage.d.mts.map +1 -0
  9. package/dist/constants/storage.mjs +12 -13
  10. package/dist/constants/storage.mjs.map +1 -1
  11. package/dist/feedback/index.cjs +14 -40
  12. package/dist/feedback/index.cjs.map +1 -1
  13. package/dist/feedback/index.d.cts +4 -4
  14. package/dist/feedback/index.d.cts.map +1 -0
  15. package/dist/feedback/index.d.mts +6 -0
  16. package/dist/feedback/index.d.mts.map +1 -0
  17. package/dist/feedback/index.mjs +12 -14
  18. package/dist/feedback/index.mjs.map +1 -1
  19. package/dist/hooks/use-app-analytics.cjs +46 -65
  20. package/dist/hooks/use-app-analytics.cjs.map +1 -1
  21. package/dist/hooks/use-app-analytics.d.cts +3 -1
  22. package/dist/hooks/use-app-analytics.d.cts.map +1 -0
  23. package/dist/hooks/use-app-analytics.d.mts +5 -0
  24. package/dist/hooks/use-app-analytics.d.mts.map +1 -0
  25. package/dist/hooks/use-app-analytics.mjs +41 -36
  26. package/dist/hooks/use-app-analytics.mjs.map +1 -1
  27. package/dist/hooks/use-click-id-persistence.cjs +43 -65
  28. package/dist/hooks/use-click-id-persistence.cjs.map +1 -1
  29. package/dist/hooks/use-click-id-persistence.d.cts +3 -1
  30. package/dist/hooks/use-click-id-persistence.d.cts.map +1 -0
  31. package/dist/hooks/use-click-id-persistence.d.mts +5 -0
  32. package/dist/hooks/use-click-id-persistence.d.mts.map +1 -0
  33. package/dist/hooks/use-click-id-persistence.mjs +40 -38
  34. package/dist/hooks/use-click-id-persistence.mjs.map +1 -1
  35. package/dist/hooks/use-outbound-click-analytics.cjs +33 -55
  36. package/dist/hooks/use-outbound-click-analytics.cjs.map +1 -1
  37. package/dist/hooks/use-outbound-click-analytics.d.cts +3 -1
  38. package/dist/hooks/use-outbound-click-analytics.d.cts.map +1 -0
  39. package/dist/hooks/{use-outbound-click-analytics.d.ts → use-outbound-click-analytics.d.mts} +3 -1
  40. package/dist/hooks/use-outbound-click-analytics.d.mts.map +1 -0
  41. package/dist/hooks/use-outbound-click-analytics.mjs +31 -29
  42. package/dist/hooks/use-outbound-click-analytics.mjs.map +1 -1
  43. package/dist/hooks/use-previous.cjs +11 -35
  44. package/dist/hooks/use-previous.cjs.map +1 -1
  45. package/dist/hooks/use-previous.d.cts +3 -1
  46. package/dist/hooks/use-previous.d.cts.map +1 -0
  47. package/dist/hooks/use-previous.d.mts +5 -0
  48. package/dist/hooks/use-previous.d.mts.map +1 -0
  49. package/dist/hooks/use-previous.mjs +9 -9
  50. package/dist/hooks/use-previous.mjs.map +1 -1
  51. package/dist/hooks/use-track-impression.cjs +24 -51
  52. package/dist/hooks/use-track-impression.cjs.map +1 -1
  53. package/dist/hooks/use-track-impression.d.cts +5 -6
  54. package/dist/hooks/use-track-impression.d.cts.map +1 -0
  55. package/dist/hooks/use-track-impression.d.mts +6 -0
  56. package/dist/hooks/use-track-impression.d.mts.map +1 -0
  57. package/dist/hooks/use-track-impression.mjs +22 -25
  58. package/dist/hooks/use-track-impression.mjs.map +1 -1
  59. package/dist/hooks/use-web-analytics.cjs +98 -109
  60. package/dist/hooks/use-web-analytics.cjs.map +1 -1
  61. package/dist/hooks/use-web-analytics.d.cts +3 -1
  62. package/dist/hooks/use-web-analytics.d.cts.map +1 -0
  63. package/dist/hooks/{use-web-analytics.d.ts → use-web-analytics.d.mts} +3 -1
  64. package/dist/hooks/use-web-analytics.d.mts.map +1 -0
  65. package/dist/hooks/use-web-analytics.mjs +93 -80
  66. package/dist/hooks/use-web-analytics.mjs.map +1 -1
  67. package/dist/index.cjs +28 -74
  68. package/dist/index.d.cts +11 -13
  69. package/dist/index.d.mts +11 -0
  70. package/dist/index.mjs +3 -34
  71. package/dist/link/index.cjs +31 -58
  72. package/dist/link/index.cjs.map +1 -1
  73. package/dist/link/index.d.cts +7 -7
  74. package/dist/link/index.d.cts.map +1 -0
  75. package/dist/link/index.d.mts +11 -0
  76. package/dist/link/index.d.mts.map +1 -0
  77. package/dist/link/index.mjs +28 -31
  78. package/dist/link/index.mjs.map +1 -1
  79. package/dist/native/fbsdk.cjs +12 -33
  80. package/dist/native/fbsdk.cjs.map +1 -1
  81. package/dist/native/fbsdk.d.cts +4 -4
  82. package/dist/native/fbsdk.d.cts.map +1 -0
  83. package/dist/native/{fbsdk.d.ts → fbsdk.d.mts} +4 -4
  84. package/dist/native/fbsdk.d.mts.map +1 -0
  85. package/dist/native/fbsdk.mjs +10 -7
  86. package/dist/native/fbsdk.mjs.map +1 -1
  87. package/dist/native/fingerprint.cjs +41 -64
  88. package/dist/native/fingerprint.cjs.map +1 -1
  89. package/dist/native/fingerprint.d.cts +22 -20
  90. package/dist/native/fingerprint.d.cts.map +1 -0
  91. package/dist/native/fingerprint.d.mts +28 -0
  92. package/dist/native/fingerprint.d.mts.map +1 -0
  93. package/dist/native/fingerprint.mjs +36 -42
  94. package/dist/native/fingerprint.mjs.map +1 -1
  95. package/dist/native/firebase.cjs +12 -39
  96. package/dist/native/firebase.cjs.map +1 -1
  97. package/dist/native/firebase.d.cts +4 -4
  98. package/dist/native/firebase.d.cts.map +1 -0
  99. package/dist/native/firebase.d.mts +6 -0
  100. package/dist/native/firebase.d.mts.map +1 -0
  101. package/dist/native/firebase.mjs +10 -13
  102. package/dist/native/firebase.mjs.map +1 -1
  103. package/dist/native/index.cjs +11 -45
  104. package/dist/native/index.d.cts +4 -7
  105. package/dist/native/index.d.mts +4 -0
  106. package/dist/native/index.mjs +2 -12
  107. package/dist/native/posthog.cjs +5 -30
  108. package/dist/native/posthog.cjs.map +1 -1
  109. package/dist/native/posthog.d.cts +3 -1
  110. package/dist/native/posthog.d.cts.map +1 -0
  111. package/dist/native/posthog.d.mts +5 -0
  112. package/dist/native/posthog.d.mts.map +1 -0
  113. package/dist/native/posthog.mjs +5 -6
  114. package/dist/native/posthog.mjs.map +1 -1
  115. package/dist/native/setup.cjs +91 -129
  116. package/dist/native/setup.cjs.map +1 -1
  117. package/dist/native/setup.d.cts +6 -6
  118. package/dist/native/setup.d.cts.map +1 -0
  119. package/dist/native/{setup.d.ts → setup.d.mts} +6 -6
  120. package/dist/native/setup.d.mts.map +1 -0
  121. package/dist/native/setup.mjs +83 -105
  122. package/dist/native/setup.mjs.map +1 -1
  123. package/dist/next/index.cjs +72 -145
  124. package/dist/next/index.cjs.map +1 -1
  125. package/dist/next/index.d.cts +18 -19
  126. package/dist/next/index.d.cts.map +1 -0
  127. package/dist/next/index.d.mts +21 -0
  128. package/dist/next/index.d.mts.map +1 -0
  129. package/dist/next/index.mjs +65 -107
  130. package/dist/next/index.mjs.map +1 -1
  131. package/dist/react-router/index.cjs +80 -144
  132. package/dist/react-router/index.cjs.map +1 -1
  133. package/dist/react-router/index.d.cts +18 -19
  134. package/dist/react-router/index.d.cts.map +1 -0
  135. package/dist/react-router/index.d.mts +21 -0
  136. package/dist/react-router/index.d.mts.map +1 -0
  137. package/dist/react-router/index.mjs +75 -115
  138. package/dist/react-router/index.mjs.map +1 -1
  139. package/dist/schema/index.cjs +188 -233
  140. package/dist/schema/index.cjs.map +1 -1
  141. package/dist/schema/index.d.cts +236 -235
  142. package/dist/schema/index.d.cts.map +1 -0
  143. package/dist/schema/index.d.mts +325 -0
  144. package/dist/schema/index.d.mts.map +1 -0
  145. package/dist/schema/index.mjs +178 -222
  146. package/dist/schema/index.mjs.map +1 -1
  147. package/dist/server/index.cjs +9 -40
  148. package/dist/server/index.d.cts +5 -9
  149. package/dist/server/index.d.mts +5 -0
  150. package/dist/server/index.mjs +5 -12
  151. package/dist/server/linkedin-conversions-api.cjs +66 -95
  152. package/dist/server/linkedin-conversions-api.cjs.map +1 -1
  153. package/dist/server/linkedin-conversions-api.d.cts +45 -45
  154. package/dist/server/linkedin-conversions-api.d.cts.map +1 -0
  155. package/dist/server/linkedin-conversions-api.d.mts +56 -0
  156. package/dist/server/linkedin-conversions-api.d.mts.map +1 -0
  157. package/dist/server/linkedin-conversions-api.mjs +63 -68
  158. package/dist/server/linkedin-conversions-api.mjs.map +1 -1
  159. package/dist/server/meta-conversions-api.cjs +157 -265
  160. package/dist/server/meta-conversions-api.cjs.map +1 -1
  161. package/dist/server/meta-conversions-api.d.cts +8 -9
  162. package/dist/server/meta-conversions-api.d.cts.map +1 -0
  163. package/dist/server/meta-conversions-api.d.mts +10 -0
  164. package/dist/server/meta-conversions-api.d.mts.map +1 -0
  165. package/dist/server/meta-conversions-api.mjs +151 -243
  166. package/dist/server/meta-conversions-api.mjs.map +1 -1
  167. package/dist/server/openai-conversions-api.cjs +69 -96
  168. package/dist/server/openai-conversions-api.cjs.map +1 -1
  169. package/dist/server/openai-conversions-api.d.cts +34 -34
  170. package/dist/server/openai-conversions-api.d.cts.map +1 -0
  171. package/dist/server/openai-conversions-api.d.mts +47 -0
  172. package/dist/server/openai-conversions-api.d.mts.map +1 -0
  173. package/dist/server/openai-conversions-api.mjs +65 -68
  174. package/dist/server/openai-conversions-api.mjs.map +1 -1
  175. package/dist/server/reddit-conversions-api.cjs +64 -91
  176. package/dist/server/reddit-conversions-api.cjs.map +1 -1
  177. package/dist/server/reddit-conversions-api.d.cts +61 -61
  178. package/dist/server/reddit-conversions-api.d.cts.map +1 -0
  179. package/dist/server/reddit-conversions-api.d.mts +75 -0
  180. package/dist/server/reddit-conversions-api.d.mts.map +1 -0
  181. package/dist/server/reddit-conversions-api.mjs +59 -62
  182. package/dist/server/reddit-conversions-api.mjs.map +1 -1
  183. package/dist/setup/index.cjs +34 -63
  184. package/dist/setup/index.cjs.map +1 -1
  185. package/dist/setup/index.d.cts +30 -30
  186. package/dist/setup/index.d.cts.map +1 -0
  187. package/dist/setup/index.d.mts +41 -0
  188. package/dist/setup/index.d.mts.map +1 -0
  189. package/dist/setup/index.mjs +31 -36
  190. package/dist/setup/index.mjs.map +1 -1
  191. package/dist/setup/session.cjs +70 -106
  192. package/dist/setup/session.cjs.map +1 -1
  193. package/dist/setup/session.d.cts +26 -24
  194. package/dist/setup/session.d.cts.map +1 -0
  195. package/dist/setup/session.d.mts +31 -0
  196. package/dist/setup/session.d.mts.map +1 -0
  197. package/dist/setup/session.mjs +68 -80
  198. package/dist/setup/session.mjs.map +1 -1
  199. package/dist/tanstack/index.cjs +86 -156
  200. package/dist/tanstack/index.cjs.map +1 -1
  201. package/dist/tanstack/index.d.cts +19 -20
  202. package/dist/tanstack/index.d.cts.map +1 -0
  203. package/dist/tanstack/index.d.mts +22 -0
  204. package/dist/tanstack/index.d.mts.map +1 -0
  205. package/dist/tanstack/index.mjs +81 -127
  206. package/dist/tanstack/index.mjs.map +1 -1
  207. package/dist/third-parties/google-analytics.cjs +18 -43
  208. package/dist/third-parties/google-analytics.cjs.map +1 -1
  209. package/dist/third-parties/google-analytics.d.cts +7 -7
  210. package/dist/third-parties/google-analytics.d.cts.map +1 -0
  211. package/dist/third-parties/google-analytics.d.mts +12 -0
  212. package/dist/third-parties/google-analytics.d.mts.map +1 -0
  213. package/dist/third-parties/google-analytics.mjs +16 -17
  214. package/dist/third-parties/google-analytics.mjs.map +1 -1
  215. package/dist/third-parties/ignored-events.cjs +35 -68
  216. package/dist/third-parties/ignored-events.cjs.map +1 -1
  217. package/dist/third-parties/ignored-events.d.cts +3 -1
  218. package/dist/third-parties/ignored-events.d.cts.map +1 -0
  219. package/dist/third-parties/ignored-events.d.mts +5 -0
  220. package/dist/third-parties/ignored-events.d.mts.map +1 -0
  221. package/dist/third-parties/ignored-events.mjs +34 -43
  222. package/dist/third-parties/ignored-events.mjs.map +1 -1
  223. package/dist/third-parties/index.cjs +16 -53
  224. package/dist/third-parties/index.d.cts +6 -12
  225. package/dist/third-parties/index.d.mts +6 -0
  226. package/dist/third-parties/index.mjs +1 -14
  227. package/dist/third-parties/linkedin-insight-tag.cjs +28 -50
  228. package/dist/third-parties/linkedin-insight-tag.cjs.map +1 -1
  229. package/dist/third-parties/linkedin-insight-tag.d.cts +8 -9
  230. package/dist/third-parties/linkedin-insight-tag.d.cts.map +1 -0
  231. package/dist/third-parties/{linkedin-insight-tag.d.ts → linkedin-insight-tag.d.mts} +8 -9
  232. package/dist/third-parties/linkedin-insight-tag.d.mts.map +1 -0
  233. package/dist/third-parties/linkedin-insight-tag.mjs +25 -23
  234. package/dist/third-parties/linkedin-insight-tag.mjs.map +1 -1
  235. package/dist/third-parties/meta-pixel.cjs +45 -66
  236. package/dist/third-parties/meta-pixel.cjs.map +1 -1
  237. package/dist/third-parties/meta-pixel.d.cts +7 -8
  238. package/dist/third-parties/meta-pixel.d.cts.map +1 -0
  239. package/dist/third-parties/meta-pixel.d.mts +12 -0
  240. package/dist/third-parties/meta-pixel.d.mts.map +1 -0
  241. package/dist/third-parties/meta-pixel.mjs +41 -38
  242. package/dist/third-parties/meta-pixel.mjs.map +1 -1
  243. package/dist/third-parties/openai-pixel.cjs +63 -68
  244. package/dist/third-parties/openai-pixel.cjs.map +1 -1
  245. package/dist/third-parties/openai-pixel.d.cts +7 -8
  246. package/dist/third-parties/openai-pixel.d.cts.map +1 -0
  247. package/dist/third-parties/{openai-pixel.d.ts → openai-pixel.d.mts} +7 -8
  248. package/dist/third-parties/openai-pixel.d.mts.map +1 -0
  249. package/dist/third-parties/openai-pixel.mjs +60 -41
  250. package/dist/third-parties/openai-pixel.mjs.map +1 -1
  251. package/dist/third-parties/posthog.cjs +23 -43
  252. package/dist/third-parties/posthog.cjs.map +1 -1
  253. package/dist/third-parties/posthog.d.cts +5 -5
  254. package/dist/third-parties/posthog.d.cts.map +1 -0
  255. package/dist/third-parties/{posthog.d.ts → posthog.d.mts} +5 -5
  256. package/dist/third-parties/posthog.d.mts.map +1 -0
  257. package/dist/third-parties/posthog.mjs +20 -16
  258. package/dist/third-parties/posthog.mjs.map +1 -1
  259. package/dist/third-parties/reddit-pixel.cjs +37 -58
  260. package/dist/third-parties/reddit-pixel.cjs.map +1 -1
  261. package/dist/third-parties/reddit-pixel.d.cts +7 -8
  262. package/dist/third-parties/reddit-pixel.d.cts.map +1 -0
  263. package/dist/third-parties/reddit-pixel.d.mts +12 -0
  264. package/dist/third-parties/reddit-pixel.d.mts.map +1 -0
  265. package/dist/third-parties/reddit-pixel.mjs +33 -30
  266. package/dist/third-parties/reddit-pixel.mjs.map +1 -1
  267. package/dist/track/fbq.cjs +179 -135
  268. package/dist/track/fbq.cjs.map +1 -1
  269. package/dist/track/fbq.d.cts +234 -233
  270. package/dist/track/fbq.d.cts.map +1 -0
  271. package/dist/track/fbq.d.mts +280 -0
  272. package/dist/track/fbq.d.mts.map +1 -0
  273. package/dist/track/fbq.mjs +176 -108
  274. package/dist/track/fbq.mjs.map +1 -1
  275. package/dist/track/gtag.cjs +63 -86
  276. package/dist/track/gtag.cjs.map +1 -1
  277. package/dist/track/gtag.d.cts +682 -682
  278. package/dist/track/gtag.d.cts.map +1 -0
  279. package/dist/track/gtag.d.mts +762 -0
  280. package/dist/track/gtag.d.mts.map +1 -0
  281. package/dist/track/gtag.mjs +62 -61
  282. package/dist/track/gtag.mjs.map +1 -1
  283. package/dist/track/index.cjs +111 -136
  284. package/dist/track/index.cjs.map +1 -1
  285. package/dist/track/index.d.cts +8 -8
  286. package/dist/track/index.d.cts.map +1 -0
  287. package/dist/track/{index.d.ts → index.d.mts} +8 -8
  288. package/dist/track/index.d.mts.map +1 -0
  289. package/dist/track/index.mjs +105 -106
  290. package/dist/track/index.mjs.map +1 -1
  291. package/dist/track/lintrk.cjs +0 -19
  292. package/dist/track/lintrk.d.cts +12 -10
  293. package/dist/track/lintrk.d.cts.map +1 -0
  294. package/dist/track/lintrk.d.mts +14 -0
  295. package/dist/track/lintrk.d.mts.map +1 -0
  296. package/dist/track/lintrk.mjs +1 -1
  297. package/dist/track/oaiq.cjs +153 -146
  298. package/dist/track/oaiq.cjs.map +1 -1
  299. package/dist/track/oaiq.d.cts +65 -64
  300. package/dist/track/oaiq.d.cts.map +1 -0
  301. package/dist/track/oaiq.d.mts +112 -0
  302. package/dist/track/oaiq.d.mts.map +1 -0
  303. package/dist/track/oaiq.mjs +149 -118
  304. package/dist/track/oaiq.mjs.map +1 -1
  305. package/dist/track/rdt.cjs +66 -110
  306. package/dist/track/rdt.cjs.map +1 -1
  307. package/dist/track/rdt.d.cts +74 -73
  308. package/dist/track/rdt.d.cts.map +1 -0
  309. package/dist/track/rdt.d.mts +97 -0
  310. package/dist/track/rdt.d.mts.map +1 -0
  311. package/dist/track/rdt.mjs +63 -83
  312. package/dist/track/rdt.mjs.map +1 -1
  313. package/dist/track/types.cjs +0 -19
  314. package/dist/track/types.d.cts +140 -111
  315. package/dist/track/types.d.cts.map +1 -0
  316. package/dist/track/types.d.mts +171 -0
  317. package/dist/track/types.d.mts.map +1 -0
  318. package/dist/track/types.mjs +1 -1
  319. package/dist/utils/field.cjs +8 -32
  320. package/dist/utils/field.cjs.map +1 -1
  321. package/dist/utils/field.d.cts +3 -1
  322. package/dist/utils/field.d.cts.map +1 -0
  323. package/dist/utils/{field.d.ts → field.d.mts} +3 -1
  324. package/dist/utils/field.d.mts.map +1 -0
  325. package/dist/utils/field.mjs +7 -7
  326. package/dist/utils/field.mjs.map +1 -1
  327. package/dist/utils/stripe.cjs +25 -49
  328. package/dist/utils/stripe.cjs.map +1 -1
  329. package/dist/utils/stripe.d.cts +3 -1
  330. package/dist/utils/stripe.d.cts.map +1 -0
  331. package/dist/utils/{stripe.d.ts → stripe.d.mts} +3 -1
  332. package/dist/utils/stripe.d.mts.map +1 -0
  333. package/dist/utils/stripe.mjs +23 -23
  334. package/dist/utils/stripe.mjs.map +1 -1
  335. package/dist/visitor/index.cjs +54 -86
  336. package/dist/visitor/index.cjs.map +1 -1
  337. package/dist/visitor/index.d.cts +4 -5
  338. package/dist/visitor/index.d.cts.map +1 -0
  339. package/dist/visitor/{index.d.ts → index.d.mts} +4 -5
  340. package/dist/visitor/index.d.mts.map +1 -0
  341. package/dist/visitor/index.mjs +51 -59
  342. package/dist/visitor/index.mjs.map +1 -1
  343. package/dist/visitor/types.cjs +0 -19
  344. package/dist/visitor/types.d.cts +15 -14
  345. package/dist/visitor/types.d.cts.map +1 -0
  346. package/dist/visitor/types.d.mts +21 -0
  347. package/dist/visitor/types.d.mts.map +1 -0
  348. package/dist/visitor/types.mjs +1 -1
  349. package/dist/web/index.cjs +108 -148
  350. package/dist/web/index.cjs.map +1 -1
  351. package/dist/web/index.d.cts +5 -6
  352. package/dist/web/index.d.cts.map +1 -0
  353. package/dist/web/index.d.mts +9 -0
  354. package/dist/web/index.d.mts.map +1 -0
  355. package/dist/web/index.mjs +101 -109
  356. package/dist/web/index.mjs.map +1 -1
  357. package/package.json +102 -49
  358. package/dist/constants/storage.d.ts +0 -11
  359. package/dist/feedback/index.d.ts +0 -6
  360. package/dist/hooks/use-app-analytics.d.ts +0 -3
  361. package/dist/hooks/use-click-id-persistence.d.ts +0 -3
  362. package/dist/hooks/use-previous.d.ts +0 -3
  363. package/dist/hooks/use-track-impression.d.ts +0 -7
  364. package/dist/index.cjs.map +0 -1
  365. package/dist/index.d.ts +0 -13
  366. package/dist/index.mjs.map +0 -1
  367. package/dist/link/index.d.ts +0 -11
  368. package/dist/native/fingerprint.d.ts +0 -26
  369. package/dist/native/firebase.d.ts +0 -6
  370. package/dist/native/index.cjs.map +0 -1
  371. package/dist/native/index.d.ts +0 -7
  372. package/dist/native/index.mjs.map +0 -1
  373. package/dist/native/posthog.d.ts +0 -3
  374. package/dist/next/index.d.ts +0 -22
  375. package/dist/react-router/index.d.ts +0 -22
  376. package/dist/schema/index.d.ts +0 -324
  377. package/dist/server/index.cjs.map +0 -1
  378. package/dist/server/index.d.ts +0 -9
  379. package/dist/server/index.mjs.map +0 -1
  380. package/dist/server/linkedin-conversions-api.d.ts +0 -56
  381. package/dist/server/meta-conversions-api.d.ts +0 -11
  382. package/dist/server/openai-conversions-api.d.ts +0 -47
  383. package/dist/server/reddit-conversions-api.d.ts +0 -75
  384. package/dist/setup/index.d.ts +0 -41
  385. package/dist/setup/session.d.ts +0 -29
  386. package/dist/tanstack/index.d.ts +0 -23
  387. package/dist/third-parties/google-analytics.d.ts +0 -12
  388. package/dist/third-parties/ignored-events.d.ts +0 -3
  389. package/dist/third-parties/index.cjs.map +0 -1
  390. package/dist/third-parties/index.d.ts +0 -12
  391. package/dist/third-parties/index.mjs.map +0 -1
  392. package/dist/third-parties/meta-pixel.d.ts +0 -13
  393. package/dist/third-parties/reddit-pixel.d.ts +0 -13
  394. package/dist/track/fbq.d.ts +0 -279
  395. package/dist/track/gtag.d.ts +0 -762
  396. package/dist/track/lintrk.cjs.map +0 -1
  397. package/dist/track/lintrk.d.ts +0 -12
  398. package/dist/track/lintrk.mjs.map +0 -1
  399. package/dist/track/oaiq.d.ts +0 -111
  400. package/dist/track/rdt.d.ts +0 -96
  401. package/dist/track/types.cjs.map +0 -1
  402. package/dist/track/types.d.ts +0 -142
  403. package/dist/track/types.mjs.map +0 -1
  404. package/dist/visitor/types.cjs.map +0 -1
  405. package/dist/visitor/types.d.ts +0 -20
  406. package/dist/visitor/types.mjs.map +0 -1
  407. package/dist/web/index.d.ts +0 -10
package/README.md CHANGED
@@ -7,7 +7,6 @@ layout.tsx
7
7
  ```tsx
8
8
  import { setupAnalytics } from '@shware/analytics';
9
9
  import { getTags, getDeviceId, storage } from '@shware/analytics/web';
10
- import { v4 as uuidv4 } from 'uuid';
11
10
 
12
11
  setupAnalytics({
13
12
  storage,
@@ -42,7 +41,54 @@ function Button() {
42
41
 
43
42
  ## UTM params
44
43
 
45
- - utm_source
44
+ Typed as `UTMParams` (exported from `@shware/analytics`). Value unions follow the
45
+ [GA4 default channel group definitions](https://support.google.com/analytics/answer/9756891).
46
+
47
+ | Param | Meaning | Examples |
48
+ | -------------------- | ------------------------------------------------------------------ | ------------------------------ |
49
+ | utm_source | Traffic source (platform/site) | `google`, `meta`, `newsletter` |
50
+ | utm_medium | Marketing medium, **the key input for GA4 channel classification** | `cpc`, `paid_social`, `email` |
51
+ | utm_campaign | Campaign name | `summer_promo_2026` |
52
+ | utm_id | Campaign ID | `abc123` |
53
+ | utm_term | Paid keyword | `virtual+staging` |
54
+ | utm_content | Differentiates creatives pointing to the same URL | `banner_a` / `banner_b` |
55
+ | utm_source_platform | Platform managing the buy | `Google Ads`, `Manual` |
56
+ | utm_creative_format | Creative type | `display`, `video` |
57
+ | utm_marketing_tactic | Targeting tactic | `remarketing`, `prospecting` |
58
+
59
+ ### Why Google Ads uses `medium=cpc`
60
+
61
+ GA4 assigns traffic to default channel groups by matching source/medium against
62
+ regex rules. All paid channels require the medium to match:
63
+
64
+ ```
65
+ ^(.*cp.*|ppc|retargeting|paid.*)$
66
+ ```
67
+
68
+ `cpc` (cost-per-click) is the standard medium Google Ads applies with
69
+ auto-tagging (gclid), so manual tagging keeps the same value:
70
+ `source=google` + `medium=cpc` → search site list + paid regex → **Paid Search**.
71
+ An arbitrary medium like `ads` or `google` matches no rule and the traffic
72
+ falls into **Unassigned/Referral**, breaking channel reports.
73
+
74
+ ### Recommended combinations
75
+
76
+ | Placement | utm_source | utm_medium | GA4 channel |
77
+ | ------------------- | ------------------------ | ------------- | -------------- |
78
+ | Google Ads search | `google` | `cpc` | Paid Search |
79
+ | Meta paid ads | `meta` | `paid_social` | Paid Social |
80
+ | FB/IG organic posts | `facebook` / `instagram` | `social` | Organic Social |
81
+ | Email marketing | `newsletter` | `email` | Email |
82
+ | Affiliate | partner name | `affiliate` | Affiliates |
83
+ | SMS | `sms` | `sms` | SMS |
84
+
85
+ ### Gotchas
86
+
87
+ - Lowercase everything, no spaces (use `_` or `-`): `Google` and `google` are
88
+ two different sources in reports.
89
+ - With Google Ads auto-tagging (gclid) enabled, manual UTMs are unnecessary;
90
+ when both are present the manual UTM wins for display — keep the values
91
+ consistent (`google`/`cpc`) to avoid splitting data.
46
92
 
47
93
  ## GAD params
48
94
 
@@ -59,10 +105,11 @@ function Button() {
59
105
  We strongly recommend using the Reddit Pixel and Conversions API (CAPI) together.
60
106
 
61
107
  - rdt_cid: from url params
62
- - \_rdt_uuid: from first-party cookie
108
+ - \_rdt_uuid: from a first-party cookie
63
109
 
64
110
  ### LinkedIn
65
111
 
66
112
  If we receive an Insight Tag event and a Conversions API event from the same account with the same eventId, we discard the Conversions API event and count only the Insight Tag event in campaign reporting.
113
+ ``
67
114
 
68
115
  - [Click IDs](https://learn.microsoft.com/en-us/linkedin/marketing/conversions/enabling-first-party-cookies?view=li-lms-2025-10&source=recommendations): get li_fat_id from url params and cookie
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
22
+ //#endregion
23
+ exports.__toESM = __toESM;
@@ -1,40 +1,15 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/constants/storage.ts
3
+ const keys = {
4
+ device_id: "device_id",
5
+ visitor_id: "visitor_id",
6
+ first_open_time: "first_open_time",
7
+ first_visit_time: "first_visit_time",
8
+ fbc: "fbc",
9
+ fbclid: "fbclid",
10
+ rdt_cid: "rdt_cid"
9
11
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
12
+ //#endregion
13
+ exports.keys = keys;
19
14
 
20
- // src/constants/storage.ts
21
- var storage_exports = {};
22
- __export(storage_exports, {
23
- keys: () => keys
24
- });
25
- module.exports = __toCommonJS(storage_exports);
26
- var keys = {
27
- device_id: "device_id",
28
- visitor_id: "visitor_id",
29
- first_open_time: "first_open_time",
30
- first_visit_time: "first_visit_time",
31
- // click ids
32
- fbc: "fbc",
33
- fbclid: "fbclid",
34
- rdt_cid: "rdt_cid"
35
- };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- keys
39
- });
40
15
  //# sourceMappingURL=storage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/storage.ts"],"sourcesContent":["export const keys = {\n device_id: 'device_id',\n visitor_id: 'visitor_id',\n first_open_time: 'first_open_time',\n first_visit_time: 'first_visit_time',\n // click ids\n fbc: 'fbc',\n fbclid: 'fbclid',\n rdt_cid: 'rdt_cid',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,OAAO;AAAA,EAClB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAAA,EAElB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,SAAS;AACX;","names":[]}
1
+ {"version":3,"file":"storage.cjs","names":[],"sources":["../../src/constants/storage.ts"],"sourcesContent":["export const keys = {\n device_id: 'device_id',\n visitor_id: 'visitor_id',\n first_open_time: 'first_open_time',\n first_visit_time: 'first_visit_time',\n // click ids\n fbc: 'fbc',\n fbclid: 'fbclid',\n rdt_cid: 'rdt_cid',\n} as const;\n"],"mappings":";;AAAA,MAAa,OAAO;CAClB,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAElB,KAAK;CACL,QAAQ;CACR,SAAS;AACX"}
@@ -1,11 +1,13 @@
1
+ //#region src/constants/storage.d.ts
1
2
  declare const keys: {
2
- readonly device_id: "device_id";
3
- readonly visitor_id: "visitor_id";
4
- readonly first_open_time: "first_open_time";
5
- readonly first_visit_time: "first_visit_time";
6
- readonly fbc: "fbc";
7
- readonly fbclid: "fbclid";
8
- readonly rdt_cid: "rdt_cid";
3
+ readonly device_id: 'device_id';
4
+ readonly visitor_id: 'visitor_id';
5
+ readonly first_open_time: 'first_open_time';
6
+ readonly first_visit_time: 'first_visit_time';
7
+ readonly fbc: 'fbc';
8
+ readonly fbclid: 'fbclid';
9
+ readonly rdt_cid: 'rdt_cid';
9
10
  };
10
-
11
+ //#endregion
11
12
  export { keys };
13
+ //# sourceMappingURL=storage.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.cts","names":[],"sources":["../../src/constants/storage.ts"],"mappings":";cAAa;WACX;WACA;WACA;WACA;WAEA;WACA;WACA"}
@@ -0,0 +1,13 @@
1
+ //#region src/constants/storage.d.ts
2
+ declare const keys: {
3
+ readonly device_id: 'device_id';
4
+ readonly visitor_id: 'visitor_id';
5
+ readonly first_open_time: 'first_open_time';
6
+ readonly first_visit_time: 'first_visit_time';
7
+ readonly fbc: 'fbc';
8
+ readonly fbclid: 'fbclid';
9
+ readonly rdt_cid: 'rdt_cid';
10
+ };
11
+ //#endregion
12
+ export { keys };
13
+ //# sourceMappingURL=storage.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.mts","names":[],"sources":["../../src/constants/storage.ts"],"mappings":";cAAa;WACX;WACA;WACA;WACA;WAEA;WACA;WACA"}
@@ -1,15 +1,14 @@
1
- // src/constants/storage.ts
2
- var keys = {
3
- device_id: "device_id",
4
- visitor_id: "visitor_id",
5
- first_open_time: "first_open_time",
6
- first_visit_time: "first_visit_time",
7
- // click ids
8
- fbc: "fbc",
9
- fbclid: "fbclid",
10
- rdt_cid: "rdt_cid"
11
- };
12
- export {
13
- keys
1
+ //#region src/constants/storage.ts
2
+ const keys = {
3
+ device_id: "device_id",
4
+ visitor_id: "visitor_id",
5
+ first_open_time: "first_open_time",
6
+ first_visit_time: "first_visit_time",
7
+ fbc: "fbc",
8
+ fbclid: "fbclid",
9
+ rdt_cid: "rdt_cid"
14
10
  };
11
+ //#endregion
12
+ export { keys };
13
+
15
14
  //# sourceMappingURL=storage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/storage.ts"],"sourcesContent":["export const keys = {\n device_id: 'device_id',\n visitor_id: 'visitor_id',\n first_open_time: 'first_open_time',\n first_visit_time: 'first_visit_time',\n // click ids\n fbc: 'fbc',\n fbclid: 'fbclid',\n rdt_cid: 'rdt_cid',\n} as const;\n"],"mappings":";AAAO,IAAM,OAAO;AAAA,EAClB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAAA,EAElB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,SAAS;AACX;","names":[]}
1
+ {"version":3,"file":"storage.mjs","names":[],"sources":["../../src/constants/storage.ts"],"sourcesContent":["export const keys = {\n device_id: 'device_id',\n visitor_id: 'visitor_id',\n first_open_time: 'first_open_time',\n first_visit_time: 'first_visit_time',\n // click ids\n fbc: 'fbc',\n fbclid: 'fbclid',\n rdt_cid: 'rdt_cid',\n} as const;\n"],"mappings":";AAAA,MAAa,OAAO;CAClB,WAAW;CACX,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAElB,KAAK;CACL,QAAQ;CACR,SAAS;AACX"}
@@ -1,43 +1,17 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/feedback/index.ts
21
- var feedback_exports = {};
22
- __export(feedback_exports, {
23
- sendFeedback: () => sendFeedback
24
- });
25
- module.exports = __toCommonJS(feedback_exports);
26
- var import_utils = require("@shware/utils");
27
- var import_setup = require("../setup/index.cjs");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_setup_index = require("../setup/index.cjs");
3
+ let _shware_utils = require("@shware/utils");
4
+ //#region src/feedback/index.ts
28
5
  async function sendFeedback(dto) {
29
- const response = await (0, import_utils.fetch)(`${import_setup.config.endpoint}/feedback`, {
30
- method: "POST",
31
- credentials: "include",
32
- headers: await import_setup.config.getHeaders(),
33
- body: JSON.stringify(dto)
34
- });
35
- if (!response.ok) {
36
- throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
37
- }
6
+ const response = await (0, _shware_utils.fetch)(`${require_setup_index.config.endpoint}/feedback`, {
7
+ method: "POST",
8
+ credentials: "include",
9
+ headers: await require_setup_index.config.getHeaders(),
10
+ body: JSON.stringify(dto)
11
+ });
12
+ if (!response.ok) throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
38
13
  }
39
- // Annotate the CommonJS export names for ESM import in node:
40
- 0 && (module.exports = {
41
- sendFeedback
42
- });
14
+ //#endregion
15
+ exports.sendFeedback = sendFeedback;
16
+
43
17
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { fetch } from '@shware/utils';\nimport type { CreateFeedbackDTO } from '../schema/index';\nimport { config } from '../setup/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEtB,mBAAuB;AAEvB,eAAsB,aAAa,KAAwB;AACzD,QAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACxF;AACF;","names":[]}
1
+ {"version":3,"file":"index.cjs","names":["config"],"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { fetch } from '@shware/utils';\nimport type { CreateFeedbackDTO } from '../schema/index';\nimport { config } from '../setup/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";;;;AAIA,eAAsB,aAAa,KAAwB;CACzD,MAAM,WAAW,OAAA,GAAA,cAAA,MAAA,CAAY,GAAGA,oBAAAA,OAAO,SAAS,YAAY;EAC1D,QAAQ;EACR,aAAa;EACb,SAAS,MAAMA,oBAAAA,OAAO,WAAW;EACjC,MAAM,KAAK,UAAU,GAAG;CAC1B,CAAC;CAED,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,4BAA4B,SAAS,OAAO,GAAG,MAAM,SAAS,KAAK,GAAG;AAE1F"}
@@ -1,6 +1,6 @@
1
- import { CreateFeedbackDTO } from '../schema/index.cjs';
2
- import 'zod/mini';
3
-
1
+ import { CreateFeedbackDTO } from "../schema/index.cjs";
2
+ //#region src/feedback/index.d.ts
4
3
  declare function sendFeedback(dto: CreateFeedbackDTO): Promise<void>;
5
-
4
+ //#endregion
6
5
  export { sendFeedback };
6
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/feedback/index.ts"],"mappings":";;iBAIsB,aAAa,KAAK,oBAAiB"}
@@ -0,0 +1,6 @@
1
+ import { CreateFeedbackDTO } from "../schema/index.mjs";
2
+ //#region src/feedback/index.d.ts
3
+ declare function sendFeedback(dto: CreateFeedbackDTO): Promise<void>;
4
+ //#endregion
5
+ export { sendFeedback };
6
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/feedback/index.ts"],"mappings":";;iBAIsB,aAAa,KAAK,oBAAiB"}
@@ -1,18 +1,16 @@
1
- // src/feedback/index.ts
2
- import { fetch } from "@shware/utils";
3
1
  import { config } from "../setup/index.mjs";
2
+ import { fetch } from "@shware/utils";
3
+ //#region src/feedback/index.ts
4
4
  async function sendFeedback(dto) {
5
- const response = await fetch(`${config.endpoint}/feedback`, {
6
- method: "POST",
7
- credentials: "include",
8
- headers: await config.getHeaders(),
9
- body: JSON.stringify(dto)
10
- });
11
- if (!response.ok) {
12
- throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
13
- }
5
+ const response = await fetch(`${config.endpoint}/feedback`, {
6
+ method: "POST",
7
+ credentials: "include",
8
+ headers: await config.getHeaders(),
9
+ body: JSON.stringify(dto)
10
+ });
11
+ if (!response.ok) throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
14
12
  }
15
- export {
16
- sendFeedback
17
- };
13
+ //#endregion
14
+ export { sendFeedback };
15
+
18
16
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { fetch } from '@shware/utils';\nimport type { CreateFeedbackDTO } from '../schema/index';\nimport { config } from '../setup/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";AAAA,SAAS,aAAa;AAEtB,SAAS,cAAc;AAEvB,eAAsB,aAAa,KAAwB;AACzD,QAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACxF;AACF;","names":[]}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { fetch } from '@shware/utils';\nimport type { CreateFeedbackDTO } from '../schema/index';\nimport { config } from '../setup/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";;;AAIA,eAAsB,aAAa,KAAwB;CACzD,MAAM,WAAW,MAAM,MAAM,GAAG,OAAO,SAAS,YAAY;EAC1D,QAAQ;EACR,aAAa;EACb,SAAS,MAAM,OAAO,WAAW;EACjC,MAAM,KAAK,UAAU,GAAG;CAC1B,CAAC;CAED,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,4BAA4B,SAAS,OAAO,GAAG,MAAM,SAAS,KAAK,GAAG;AAE1F"}
@@ -1,72 +1,53 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/hooks/use-app-analytics.ts
21
- var use_app_analytics_exports = {};
22
- __export(use_app_analytics_exports, {
23
- useAppAnalytics: () => useAppAnalytics
24
- });
25
- module.exports = __toCommonJS(use_app_analytics_exports);
26
- var import_react = require("react");
27
- var import_react_native = require("react-native");
28
- var import_storage = require("../constants/storage.cjs");
29
- var import_setup = require("../setup/index.cjs");
30
- var import_session = require("../setup/session.cjs");
31
- var import_track = require("../track/index.cjs");
32
- var import_use_previous = require("./use-previous.cjs");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_setup_index = require("../setup/index.cjs");
3
+ const require_setup_session = require("../setup/session.cjs");
4
+ const require_constants_storage = require("../constants/storage.cjs");
5
+ const require_track_index = require("../track/index.cjs");
6
+ const require_hooks_use_previous = require("./use-previous.cjs");
7
+ let react = require("react");
8
+ let react_native = require("react-native");
9
+ //#region src/hooks/use-app-analytics.ts
33
10
  function sendFirstOpen(pathname) {
34
- if (import_setup.config.storage.getItem(import_storage.keys.first_open_time)) return;
35
- (0, import_track.track)("first_open", { screen_name: pathname, screen_class: pathname });
36
- import_setup.config.storage.setItem(import_storage.keys.first_open_time, (/* @__PURE__ */ new Date()).toISOString());
11
+ if (require_setup_index.config.storage.getItem(require_constants_storage.keys.first_open_time)) return;
12
+ require_track_index.track("first_open", {
13
+ screen_name: pathname,
14
+ screen_class: pathname
15
+ });
16
+ require_setup_index.config.storage.setItem(require_constants_storage.keys.first_open_time, (/* @__PURE__ */ new Date()).toISOString());
37
17
  }
38
18
  function sendUserEngagement() {
39
- const engagement_time_msec = import_session.session.flush();
40
- if (engagement_time_msec <= 0) return;
41
- (0, import_track.track)("user_engagement", { engagement_time_msec, trigger: "background" });
19
+ const engagement_time_msec = require_setup_session.session.flush();
20
+ if (engagement_time_msec <= 0) return;
21
+ require_track_index.track("user_engagement", {
22
+ engagement_time_msec,
23
+ trigger: "background"
24
+ });
42
25
  }
43
26
  function useAppAnalytics(pathname) {
44
- const prevPathname = (0, import_use_previous.usePrevious)(pathname);
45
- (0, import_react.useEffect)(() => {
46
- sendFirstOpen(pathname);
47
- (0, import_track.track)("session_start", void 0);
48
- const subscription = import_react_native.AppState.addEventListener("change", (state) => {
49
- import_session.session.updateAccumulator();
50
- if (state === "active" && !import_session.session.isActive()) {
51
- import_session.session.updateActive(true);
52
- } else if (state !== "active" && import_session.session.isActive()) {
53
- import_session.session.updateActive(false);
54
- sendUserEngagement();
55
- }
56
- });
57
- return () => subscription.remove();
58
- }, []);
59
- (0, import_react.useEffect)(() => {
60
- (0, import_track.track)("screen_view", {
61
- screen_name: pathname,
62
- screen_class: pathname,
63
- previous_screen_class: prevPathname ?? void 0,
64
- engagement_time_msec: prevPathname ? import_session.session.flush() : void 0
65
- });
66
- }, [pathname]);
27
+ const prevPathname = require_hooks_use_previous.usePrevious(pathname);
28
+ (0, react.useEffect)(() => {
29
+ sendFirstOpen(pathname);
30
+ require_track_index.track("session_start", void 0);
31
+ const subscription = react_native.AppState.addEventListener("change", (state) => {
32
+ require_setup_session.session.updateAccumulator();
33
+ if (state === "active" && !require_setup_session.session.isActive()) require_setup_session.session.updateActive(true);
34
+ else if (state !== "active" && require_setup_session.session.isActive()) {
35
+ require_setup_session.session.updateActive(false);
36
+ sendUserEngagement();
37
+ }
38
+ });
39
+ return () => subscription.remove();
40
+ }, []);
41
+ (0, react.useEffect)(() => {
42
+ require_track_index.track("screen_view", {
43
+ screen_name: pathname,
44
+ screen_class: pathname,
45
+ previous_screen_class: prevPathname ?? void 0,
46
+ engagement_time_msec: prevPathname ? require_setup_session.session.flush() : void 0
47
+ });
48
+ }, [pathname]);
67
49
  }
68
- // Annotate the CommonJS export names for ESM import in node:
69
- 0 && (module.exports = {
70
- useAppAnalytics
71
- });
50
+ //#endregion
51
+ exports.useAppAnalytics = useAppAnalytics;
52
+
72
53
  //# sourceMappingURL=use-app-analytics.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-app-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { AppState } from 'react-native';\nimport { keys } from '../constants/storage';\nimport { config } from '../setup/index';\nimport { session } from '../setup/session';\nimport { track } from '../track/index';\nimport { usePrevious } from './use-previous';\n\nfunction sendFirstOpen(pathname: string) {\n if (config.storage.getItem(keys.first_open_time)) return;\n track('first_open', { screen_name: pathname, screen_class: pathname });\n config.storage.setItem(keys.first_open_time, new Date().toISOString());\n}\n\nfunction sendUserEngagement() {\n const engagement_time_msec = session.flush();\n if (engagement_time_msec <= 0) return;\n track('user_engagement', { engagement_time_msec, trigger: 'background' });\n}\n\nexport function useAppAnalytics(pathname: string) {\n const prevPathname = usePrevious(pathname);\n\n useEffect(() => {\n sendFirstOpen(pathname);\n track('session_start', undefined);\n\n const subscription = AppState.addEventListener('change', (state) => {\n session.updateAccumulator();\n // when returning to the foreground from the background\n if (state === 'active' && !session.isActive()) {\n session.updateActive(true);\n }\n // when entering the background\n else if (state !== 'active' && session.isActive()) {\n session.updateActive(false);\n sendUserEngagement();\n }\n });\n\n return () => subscription.remove();\n }, []);\n\n // when the screen is switched, the engagement time of the previous screen is recorded\n useEffect(() => {\n track('screen_view', {\n screen_name: pathname,\n screen_class: pathname,\n previous_screen_class: prevPathname ?? undefined,\n engagement_time_msec: prevPathname ? session.flush() : undefined,\n });\n }, [pathname]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAAyB;AACzB,qBAAqB;AACrB,mBAAuB;AACvB,qBAAwB;AACxB,mBAAsB;AACtB,0BAA4B;AAE5B,SAAS,cAAc,UAAkB;AACvC,MAAI,oBAAO,QAAQ,QAAQ,oBAAK,eAAe,EAAG;AAClD,0BAAM,cAAc,EAAE,aAAa,UAAU,cAAc,SAAS,CAAC;AACrE,sBAAO,QAAQ,QAAQ,oBAAK,kBAAiB,oBAAI,KAAK,GAAE,YAAY,CAAC;AACvE;AAEA,SAAS,qBAAqB;AAC5B,QAAM,uBAAuB,uBAAQ,MAAM;AAC3C,MAAI,wBAAwB,EAAG;AAC/B,0BAAM,mBAAmB,EAAE,sBAAsB,SAAS,aAAa,CAAC;AAC1E;AAEO,SAAS,gBAAgB,UAAkB;AAChD,QAAM,mBAAe,iCAAY,QAAQ;AAEzC,8BAAU,MAAM;AACd,kBAAc,QAAQ;AACtB,4BAAM,iBAAiB,MAAS;AAEhC,UAAM,eAAe,6BAAS,iBAAiB,UAAU,CAAC,UAAU;AAClE,6BAAQ,kBAAkB;AAE1B,UAAI,UAAU,YAAY,CAAC,uBAAQ,SAAS,GAAG;AAC7C,+BAAQ,aAAa,IAAI;AAAA,MAC3B,WAES,UAAU,YAAY,uBAAQ,SAAS,GAAG;AACjD,+BAAQ,aAAa,KAAK;AAC1B,2BAAmB;AAAA,MACrB;AAAA,IACF,CAAC;AAED,WAAO,MAAM,aAAa,OAAO;AAAA,EACnC,GAAG,CAAC,CAAC;AAGL,8BAAU,MAAM;AACd,4BAAM,eAAe;AAAA,MACnB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,uBAAuB,gBAAgB;AAAA,MACvC,sBAAsB,eAAe,uBAAQ,MAAM,IAAI;AAAA,IACzD,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACf;","names":[]}
1
+ {"version":3,"file":"use-app-analytics.cjs","names":["config","keys","session","usePrevious","AppState"],"sources":["../../src/hooks/use-app-analytics.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { AppState } from 'react-native';\nimport { keys } from '../constants/storage';\nimport { config } from '../setup/index';\nimport { session } from '../setup/session';\nimport { track } from '../track/index';\nimport { usePrevious } from './use-previous';\n\nfunction sendFirstOpen(pathname: string) {\n if (config.storage.getItem(keys.first_open_time)) return;\n track('first_open', { screen_name: pathname, screen_class: pathname });\n config.storage.setItem(keys.first_open_time, new Date().toISOString());\n}\n\nfunction sendUserEngagement() {\n const engagement_time_msec = session.flush();\n if (engagement_time_msec <= 0) return;\n track('user_engagement', { engagement_time_msec, trigger: 'background' });\n}\n\nexport function useAppAnalytics(pathname: string) {\n const prevPathname = usePrevious(pathname);\n\n useEffect(() => {\n sendFirstOpen(pathname);\n track('session_start', undefined);\n\n const subscription = AppState.addEventListener('change', (state) => {\n session.updateAccumulator();\n // when returning to the foreground from the background\n if (state === 'active' && !session.isActive()) {\n session.updateActive(true);\n }\n // when entering the background\n else if (state !== 'active' && session.isActive()) {\n session.updateActive(false);\n sendUserEngagement();\n }\n });\n\n return () => subscription.remove();\n }, []);\n\n // when the screen is switched, the engagement time of the previous screen is recorded\n useEffect(() => {\n track('screen_view', {\n screen_name: pathname,\n screen_class: pathname,\n previous_screen_class: prevPathname ?? undefined,\n engagement_time_msec: prevPathname ? session.flush() : undefined,\n });\n }, [pathname]);\n}\n"],"mappings":";;;;;;;;;AAQA,SAAS,cAAc,UAAkB;CACvC,IAAIA,oBAAAA,OAAO,QAAQ,QAAQC,0BAAAA,KAAK,eAAe,GAAG;CAClD,oBAAA,MAAM,cAAc;EAAE,aAAa;EAAU,cAAc;CAAS,CAAC;CACrE,oBAAA,OAAO,QAAQ,QAAQA,0BAAAA,KAAK,kCAAiB,IAAI,KAAK,EAAA,CAAE,YAAY,CAAC;AACvE;AAEA,SAAS,qBAAqB;CAC5B,MAAM,uBAAuBC,sBAAAA,QAAQ,MAAM;CAC3C,IAAI,wBAAwB,GAAG;CAC/B,oBAAA,MAAM,mBAAmB;EAAE;EAAsB,SAAS;CAAa,CAAC;AAC1E;AAEA,SAAgB,gBAAgB,UAAkB;CAChD,MAAM,eAAeC,2BAAAA,YAAY,QAAQ;CAEzC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,cAAc,QAAQ;EACtB,oBAAA,MAAM,iBAAiB,KAAA,CAAS;EAEhC,MAAM,eAAeC,aAAAA,SAAS,iBAAiB,WAAW,UAAU;GAClE,sBAAA,QAAQ,kBAAkB;GAE1B,IAAI,UAAU,YAAY,CAACF,sBAAAA,QAAQ,SAAS,GAC1C,sBAAA,QAAQ,aAAa,IAAI;QAGtB,IAAI,UAAU,YAAYA,sBAAAA,QAAQ,SAAS,GAAG;IACjD,sBAAA,QAAQ,aAAa,KAAK;IAC1B,mBAAmB;GACrB;EACF,CAAC;EAED,aAAa,aAAa,OAAO;CACnC,GAAG,CAAC,CAAC;CAGL,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,oBAAA,MAAM,eAAe;GACnB,aAAa;GACb,cAAc;GACd,uBAAuB,gBAAgB,KAAA;GACvC,sBAAsB,eAAeA,sBAAAA,QAAQ,MAAM,IAAI,KAAA;EACzD,CAAC;CACH,GAAG,CAAC,QAAQ,CAAC;AACf"}
@@ -1,3 +1,5 @@
1
+ //#region src/hooks/use-app-analytics.d.ts
1
2
  declare function useAppAnalytics(pathname: string): void;
2
-
3
+ //#endregion
3
4
  export { useAppAnalytics };
5
+ //# sourceMappingURL=use-app-analytics.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-app-analytics.d.cts","names":[],"sources":["../../src/hooks/use-app-analytics.ts"],"mappings":";iBAoBgB,gBAAgB"}
@@ -0,0 +1,5 @@
1
+ //#region src/hooks/use-app-analytics.d.ts
2
+ declare function useAppAnalytics(pathname: string): void;
3
+ //#endregion
4
+ export { useAppAnalytics };
5
+ //# sourceMappingURL=use-app-analytics.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-app-analytics.d.mts","names":[],"sources":["../../src/hooks/use-app-analytics.ts"],"mappings":";iBAoBgB,gBAAgB"}
@@ -1,47 +1,52 @@
1
- // src/hooks/use-app-analytics.ts
2
- import { useEffect } from "react";
3
- import { AppState } from "react-native";
4
- import { keys } from "../constants/storage.mjs";
5
1
  import { config } from "../setup/index.mjs";
6
2
  import { session } from "../setup/session.mjs";
3
+ import { keys } from "../constants/storage.mjs";
7
4
  import { track } from "../track/index.mjs";
8
5
  import { usePrevious } from "./use-previous.mjs";
6
+ import { useEffect } from "react";
7
+ import { AppState } from "react-native";
8
+ //#region src/hooks/use-app-analytics.ts
9
9
  function sendFirstOpen(pathname) {
10
- if (config.storage.getItem(keys.first_open_time)) return;
11
- track("first_open", { screen_name: pathname, screen_class: pathname });
12
- config.storage.setItem(keys.first_open_time, (/* @__PURE__ */ new Date()).toISOString());
10
+ if (config.storage.getItem(keys.first_open_time)) return;
11
+ track("first_open", {
12
+ screen_name: pathname,
13
+ screen_class: pathname
14
+ });
15
+ config.storage.setItem(keys.first_open_time, (/* @__PURE__ */ new Date()).toISOString());
13
16
  }
14
17
  function sendUserEngagement() {
15
- const engagement_time_msec = session.flush();
16
- if (engagement_time_msec <= 0) return;
17
- track("user_engagement", { engagement_time_msec, trigger: "background" });
18
+ const engagement_time_msec = session.flush();
19
+ if (engagement_time_msec <= 0) return;
20
+ track("user_engagement", {
21
+ engagement_time_msec,
22
+ trigger: "background"
23
+ });
18
24
  }
19
25
  function useAppAnalytics(pathname) {
20
- const prevPathname = usePrevious(pathname);
21
- useEffect(() => {
22
- sendFirstOpen(pathname);
23
- track("session_start", void 0);
24
- const subscription = AppState.addEventListener("change", (state) => {
25
- session.updateAccumulator();
26
- if (state === "active" && !session.isActive()) {
27
- session.updateActive(true);
28
- } else if (state !== "active" && session.isActive()) {
29
- session.updateActive(false);
30
- sendUserEngagement();
31
- }
32
- });
33
- return () => subscription.remove();
34
- }, []);
35
- useEffect(() => {
36
- track("screen_view", {
37
- screen_name: pathname,
38
- screen_class: pathname,
39
- previous_screen_class: prevPathname ?? void 0,
40
- engagement_time_msec: prevPathname ? session.flush() : void 0
41
- });
42
- }, [pathname]);
26
+ const prevPathname = usePrevious(pathname);
27
+ useEffect(() => {
28
+ sendFirstOpen(pathname);
29
+ track("session_start", void 0);
30
+ const subscription = AppState.addEventListener("change", (state) => {
31
+ session.updateAccumulator();
32
+ if (state === "active" && !session.isActive()) session.updateActive(true);
33
+ else if (state !== "active" && session.isActive()) {
34
+ session.updateActive(false);
35
+ sendUserEngagement();
36
+ }
37
+ });
38
+ return () => subscription.remove();
39
+ }, []);
40
+ useEffect(() => {
41
+ track("screen_view", {
42
+ screen_name: pathname,
43
+ screen_class: pathname,
44
+ previous_screen_class: prevPathname ?? void 0,
45
+ engagement_time_msec: prevPathname ? session.flush() : void 0
46
+ });
47
+ }, [pathname]);
43
48
  }
44
- export {
45
- useAppAnalytics
46
- };
49
+ //#endregion
50
+ export { useAppAnalytics };
51
+
47
52
  //# sourceMappingURL=use-app-analytics.mjs.map