flowgrid-sdk 1.2.1 → 1.4.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 (312) hide show
  1. package/README.md +221 -250
  2. package/dist/237.flowgrid.min.js +2 -0
  3. package/dist/237.flowgrid.min.js.map +1 -0
  4. package/dist/546.flowgrid.min.js +3 -0
  5. package/dist/546.flowgrid.min.js.LICENSE.txt +14 -0
  6. package/dist/546.flowgrid.min.js.map +1 -0
  7. package/dist/EXAMPLE.d.ts +1 -0
  8. package/dist/EXAMPLE.js +55 -0
  9. package/dist/EXAMPLE.js.map +1 -0
  10. package/dist/browser.d.ts +46 -103
  11. package/dist/browser.js +102 -0
  12. package/dist/browser.js.map +1 -0
  13. package/dist/flowgrid.min.js +1 -1
  14. package/dist/flowgrid.min.js.map +1 -1
  15. package/dist/index.d.ts +7 -8
  16. package/dist/index.js +64 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/client/transport.d.ts +14 -4
  19. package/dist/lib/client/transport.js +432 -0
  20. package/dist/lib/client/transport.js.map +1 -0
  21. package/dist/lib/consent/index.d.ts +0 -5
  22. package/dist/lib/consent/index.js +32 -0
  23. package/dist/lib/consent/index.js.map +1 -0
  24. package/dist/lib/consent/manager.js +336 -0
  25. package/dist/lib/consent/manager.js.map +1 -0
  26. package/dist/lib/consent/types.d.ts +3 -20
  27. package/dist/lib/consent/types.js +10 -0
  28. package/dist/lib/consent/types.js.map +1 -0
  29. package/dist/lib/features/analytics/attribution.d.ts +6 -47
  30. package/dist/lib/features/analytics/attribution.js +181 -0
  31. package/dist/lib/features/analytics/attribution.js.map +1 -0
  32. package/dist/lib/features/analytics/events.d.ts +1 -28
  33. package/dist/lib/features/analytics/events.js +256 -0
  34. package/dist/lib/features/analytics/events.js.map +1 -0
  35. package/dist/lib/features/analytics/funnels.js +260 -0
  36. package/dist/lib/features/analytics/funnels.js.map +1 -0
  37. package/dist/lib/features/analytics/heatmaps.d.ts +12 -19
  38. package/dist/lib/features/analytics/heatmaps.js +258 -0
  39. package/dist/lib/features/analytics/heatmaps.js.map +1 -0
  40. package/dist/lib/features/analytics/identify.d.ts +1 -21
  41. package/dist/lib/features/analytics/identify.js +213 -0
  42. package/dist/lib/features/analytics/identify.js.map +1 -0
  43. package/dist/lib/features/analytics/index.d.ts +2 -0
  44. package/dist/lib/features/analytics/index.js +15 -0
  45. package/dist/lib/features/analytics/index.js.map +1 -0
  46. package/dist/lib/features/analytics/page-views.d.ts +13 -30
  47. package/dist/lib/features/analytics/page-views.js +268 -0
  48. package/dist/lib/features/analytics/page-views.js.map +1 -0
  49. package/dist/lib/features/analytics/performance.d.ts +18 -24
  50. package/dist/lib/features/analytics/performance.js +232 -0
  51. package/dist/lib/features/analytics/performance.js.map +1 -0
  52. package/dist/lib/features/analytics/replay.d.ts +170 -0
  53. package/dist/lib/features/analytics/replay.js +381 -0
  54. package/dist/lib/features/analytics/replay.js.map +1 -0
  55. package/dist/lib/features/analytics/retention.d.ts +1 -76
  56. package/dist/lib/features/analytics/retention.js +135 -0
  57. package/dist/lib/features/analytics/retention.js.map +1 -0
  58. package/dist/lib/features/analytics/sessions.d.ts +12 -37
  59. package/dist/lib/features/analytics/sessions.js +213 -0
  60. package/dist/lib/features/analytics/sessions.js.map +1 -0
  61. package/dist/lib/features/core/activation.d.ts +1 -24
  62. package/dist/lib/features/core/activation.js +175 -0
  63. package/dist/lib/features/core/activation.js.map +1 -0
  64. package/dist/lib/features/core/experiment.d.ts +53 -21
  65. package/dist/lib/features/core/experiment.js +554 -0
  66. package/dist/lib/features/core/experiment.js.map +1 -0
  67. package/dist/lib/features/core/index.js +9 -0
  68. package/dist/lib/features/core/index.js.map +1 -0
  69. package/dist/lib/features/core/track-feature.d.ts +1 -8
  70. package/dist/lib/features/core/track-feature.js +119 -0
  71. package/dist/lib/features/core/track-feature.js.map +1 -0
  72. package/dist/lib/features/core/track-prompt.d.ts +5 -8
  73. package/dist/lib/features/core/track-prompt.js +181 -0
  74. package/dist/lib/features/core/track-prompt.js.map +1 -0
  75. package/dist/lib/features/ecommerce/cart.d.ts +1 -24
  76. package/dist/lib/features/ecommerce/cart.js +244 -0
  77. package/dist/lib/features/ecommerce/cart.js.map +1 -0
  78. package/dist/lib/features/ecommerce/checkout.d.ts +1 -28
  79. package/dist/lib/features/ecommerce/checkout.js +254 -0
  80. package/dist/lib/features/ecommerce/checkout.js.map +1 -0
  81. package/dist/lib/features/ecommerce/index.d.ts +0 -2
  82. package/dist/lib/features/ecommerce/index.js +15 -0
  83. package/dist/lib/features/ecommerce/index.js.map +1 -0
  84. package/dist/lib/features/ecommerce/ltv.d.ts +1 -69
  85. package/dist/lib/features/ecommerce/ltv.js +114 -0
  86. package/dist/lib/features/ecommerce/ltv.js.map +1 -0
  87. package/dist/lib/features/ecommerce/products.d.ts +1 -33
  88. package/dist/lib/features/ecommerce/products.js +223 -0
  89. package/dist/lib/features/ecommerce/products.js.map +1 -0
  90. package/dist/lib/features/ecommerce/promotions.d.ts +1 -30
  91. package/dist/lib/features/ecommerce/promotions.js +197 -0
  92. package/dist/lib/features/ecommerce/promotions.js.map +1 -0
  93. package/dist/lib/features/ecommerce/purchases.d.ts +1 -48
  94. package/dist/lib/features/ecommerce/purchases.js +193 -0
  95. package/dist/lib/features/ecommerce/purchases.js.map +1 -0
  96. package/dist/lib/features/ecommerce/refunds.d.ts +1 -27
  97. package/dist/lib/features/ecommerce/refunds.js +195 -0
  98. package/dist/lib/features/ecommerce/refunds.js.map +1 -0
  99. package/dist/lib/features/ecommerce/search.d.ts +1 -24
  100. package/dist/lib/features/ecommerce/search.js +156 -0
  101. package/dist/lib/features/ecommerce/search.js.map +1 -0
  102. package/dist/lib/features/ecommerce/subscriptions.d.ts +1 -28
  103. package/dist/lib/features/ecommerce/subscriptions.js +207 -0
  104. package/dist/lib/features/ecommerce/subscriptions.js.map +1 -0
  105. package/dist/lib/features/ecommerce/wishlist.d.ts +1 -28
  106. package/dist/lib/features/ecommerce/wishlist.js +186 -0
  107. package/dist/lib/features/ecommerce/wishlist.js.map +1 -0
  108. package/dist/lib/features/enterprise/acquisition.d.ts +2 -57
  109. package/dist/lib/features/enterprise/acquisition.js +166 -0
  110. package/dist/lib/features/enterprise/acquisition.js.map +1 -0
  111. package/dist/lib/features/enterprise/alerts.d.ts +1 -37
  112. package/dist/lib/features/enterprise/alerts.js +246 -0
  113. package/dist/lib/features/enterprise/alerts.js.map +1 -0
  114. package/dist/lib/features/enterprise/churn.d.ts +1 -42
  115. package/dist/lib/features/enterprise/churn.js +175 -0
  116. package/dist/lib/features/enterprise/churn.js.map +1 -0
  117. package/dist/lib/features/enterprise/cohorts.d.ts +1 -37
  118. package/dist/lib/features/enterprise/cohorts.js +201 -0
  119. package/dist/lib/features/enterprise/cohorts.js.map +1 -0
  120. package/dist/lib/features/enterprise/engagement.d.ts +40 -46
  121. package/dist/lib/features/enterprise/engagement.js +335 -0
  122. package/dist/lib/features/enterprise/engagement.js.map +1 -0
  123. package/dist/lib/features/enterprise/forecasting.d.ts +0 -50
  124. package/dist/lib/features/enterprise/forecasting.js +232 -0
  125. package/dist/lib/features/enterprise/forecasting.js.map +1 -0
  126. package/dist/lib/features/enterprise/index.d.ts +1 -1
  127. package/dist/lib/features/enterprise/index.js +76 -0
  128. package/dist/lib/features/enterprise/index.js.map +1 -0
  129. package/dist/lib/features/enterprise/monetization.d.ts +1 -60
  130. package/dist/lib/features/enterprise/monetization.js +146 -0
  131. package/dist/lib/features/enterprise/monetization.js.map +1 -0
  132. package/dist/lib/features/enterprise/multi-path-funnels.d.ts +1 -17
  133. package/dist/lib/features/enterprise/multi-path-funnels.js +205 -0
  134. package/dist/lib/features/enterprise/multi-path-funnels.js.map +1 -0
  135. package/dist/lib/features/enterprise/paths.d.ts +1 -56
  136. package/dist/lib/features/enterprise/paths.js +149 -0
  137. package/dist/lib/features/enterprise/paths.js.map +1 -0
  138. package/dist/lib/features/enterprise/security.d.ts +8 -57
  139. package/dist/lib/features/enterprise/security.js +202 -0
  140. package/dist/lib/features/enterprise/security.js.map +1 -0
  141. package/dist/lib/features/enterprise/support.d.ts +3 -42
  142. package/dist/lib/features/enterprise/support.js +162 -0
  143. package/dist/lib/features/enterprise/support.js.map +1 -0
  144. package/dist/lib/flowgrid.d.ts +278 -0
  145. package/dist/lib/flowgrid.js +323 -0
  146. package/dist/lib/flowgrid.js.map +1 -0
  147. package/dist/lib/frameworks/index.d.ts +13 -6
  148. package/dist/lib/frameworks/index.js +18 -0
  149. package/dist/lib/frameworks/index.js.map +1 -0
  150. package/dist/lib/frameworks/nextjs/client.js +355 -0
  151. package/dist/lib/frameworks/nextjs/client.js.map +1 -0
  152. package/dist/lib/frameworks/nextjs/index.js +31 -0
  153. package/dist/lib/frameworks/nextjs/index.js.map +1 -0
  154. package/dist/lib/frameworks/nextjs/server.js +259 -0
  155. package/dist/lib/frameworks/nextjs/server.js.map +1 -0
  156. package/dist/lib/frameworks/node/index.js +391 -0
  157. package/dist/lib/frameworks/node/index.js.map +1 -0
  158. package/dist/lib/frameworks/nuxt/index.js +288 -0
  159. package/dist/lib/frameworks/nuxt/index.js.map +1 -0
  160. package/dist/lib/frameworks/react/CookieBanner.js +166 -0
  161. package/dist/lib/frameworks/react/CookieBanner.js.map +1 -0
  162. package/dist/lib/frameworks/react/index.js +271 -0
  163. package/dist/lib/frameworks/react/index.js.map +1 -0
  164. package/dist/lib/frameworks/vue/CookieBanner.js +165 -0
  165. package/dist/lib/frameworks/vue/CookieBanner.js.map +1 -0
  166. package/dist/lib/frameworks/vue/index.js +390 -0
  167. package/dist/lib/frameworks/vue/index.js.map +1 -0
  168. package/dist/lib/tracking/analytics/attribution.d.ts +14 -0
  169. package/dist/lib/tracking/analytics/attribution.js +18 -0
  170. package/dist/lib/tracking/analytics/attribution.js.map +1 -0
  171. package/dist/lib/tracking/analytics/events.d.ts +26 -0
  172. package/dist/lib/tracking/analytics/events.js +30 -0
  173. package/dist/lib/tracking/analytics/events.js.map +1 -0
  174. package/dist/lib/tracking/analytics/funnels.d.ts +16 -0
  175. package/dist/lib/tracking/analytics/funnels.js +22 -0
  176. package/dist/lib/tracking/analytics/funnels.js.map +1 -0
  177. package/dist/lib/tracking/analytics/heatmaps.d.ts +27 -0
  178. package/dist/lib/tracking/analytics/heatmaps.js +22 -0
  179. package/dist/lib/tracking/analytics/heatmaps.js.map +1 -0
  180. package/dist/lib/tracking/analytics/identify.d.ts +16 -0
  181. package/dist/lib/tracking/analytics/identify.js +22 -0
  182. package/dist/lib/tracking/analytics/identify.js.map +1 -0
  183. package/dist/lib/tracking/analytics/index.d.ts +10 -0
  184. package/dist/lib/tracking/analytics/index.js +11 -0
  185. package/dist/lib/tracking/analytics/index.js.map +1 -0
  186. package/dist/lib/tracking/analytics/page-views.d.ts +29 -0
  187. package/dist/lib/tracking/analytics/page-views.js +50 -0
  188. package/dist/lib/tracking/analytics/page-views.js.map +1 -0
  189. package/dist/lib/tracking/analytics/performance.d.ts +22 -0
  190. package/dist/lib/tracking/analytics/performance.js +22 -0
  191. package/dist/lib/tracking/analytics/performance.js.map +1 -0
  192. package/dist/lib/tracking/analytics/replay.d.ts +34 -0
  193. package/dist/lib/tracking/analytics/replay.js +46 -0
  194. package/dist/lib/tracking/analytics/replay.js.map +1 -0
  195. package/dist/lib/tracking/analytics/retention.d.ts +10 -0
  196. package/dist/lib/tracking/analytics/retention.js +10 -0
  197. package/dist/lib/tracking/analytics/retention.js.map +1 -0
  198. package/dist/lib/tracking/analytics/sessions.d.ts +20 -0
  199. package/dist/lib/tracking/analytics/sessions.js +26 -0
  200. package/dist/lib/tracking/analytics/sessions.js.map +1 -0
  201. package/dist/lib/tracking/core/activation.d.ts +23 -0
  202. package/dist/lib/tracking/core/activation.js +33 -0
  203. package/dist/lib/tracking/core/activation.js.map +1 -0
  204. package/dist/lib/tracking/core/experiment.d.ts +122 -0
  205. package/dist/lib/tracking/core/experiment.js +150 -0
  206. package/dist/lib/tracking/core/experiment.js.map +1 -0
  207. package/dist/lib/tracking/core/feature.d.ts +13 -0
  208. package/dist/lib/tracking/core/feature.js +14 -0
  209. package/dist/lib/tracking/core/feature.js.map +1 -0
  210. package/dist/lib/tracking/core/index.d.ts +4 -0
  211. package/dist/lib/tracking/core/index.js +5 -0
  212. package/dist/lib/tracking/core/index.js.map +1 -0
  213. package/dist/lib/tracking/core/prompt.d.ts +18 -0
  214. package/dist/lib/tracking/core/prompt.js +26 -0
  215. package/dist/lib/tracking/core/prompt.js.map +1 -0
  216. package/dist/lib/tracking/ecommerce/cart.d.ts +17 -0
  217. package/dist/lib/tracking/ecommerce/cart.js +22 -0
  218. package/dist/lib/tracking/ecommerce/cart.js.map +1 -0
  219. package/dist/lib/tracking/ecommerce/checkout.d.ts +17 -0
  220. package/dist/lib/tracking/ecommerce/checkout.js +22 -0
  221. package/dist/lib/tracking/ecommerce/checkout.js.map +1 -0
  222. package/dist/lib/tracking/ecommerce/index.d.ts +10 -0
  223. package/dist/lib/tracking/ecommerce/index.js +11 -0
  224. package/dist/lib/tracking/ecommerce/index.js.map +1 -0
  225. package/dist/lib/tracking/ecommerce/ltv.d.ts +15 -0
  226. package/dist/lib/tracking/ecommerce/ltv.js +14 -0
  227. package/dist/lib/tracking/ecommerce/ltv.js.map +1 -0
  228. package/dist/lib/tracking/ecommerce/products.d.ts +15 -0
  229. package/dist/lib/tracking/ecommerce/products.js +18 -0
  230. package/dist/lib/tracking/ecommerce/products.js.map +1 -0
  231. package/dist/lib/tracking/ecommerce/promotions.d.ts +14 -0
  232. package/dist/lib/tracking/ecommerce/promotions.js +25 -0
  233. package/dist/lib/tracking/ecommerce/promotions.js.map +1 -0
  234. package/dist/lib/tracking/ecommerce/purchases.d.ts +11 -0
  235. package/dist/lib/tracking/ecommerce/purchases.js +10 -0
  236. package/dist/lib/tracking/ecommerce/purchases.js.map +1 -0
  237. package/dist/lib/tracking/ecommerce/refunds.d.ts +17 -0
  238. package/dist/lib/tracking/ecommerce/refunds.js +22 -0
  239. package/dist/lib/tracking/ecommerce/refunds.js.map +1 -0
  240. package/dist/lib/tracking/ecommerce/search.d.ts +24 -0
  241. package/dist/lib/tracking/ecommerce/search.js +22 -0
  242. package/dist/lib/tracking/ecommerce/search.js.map +1 -0
  243. package/dist/lib/tracking/ecommerce/subscriptions.d.ts +21 -0
  244. package/dist/lib/tracking/ecommerce/subscriptions.js +38 -0
  245. package/dist/lib/tracking/ecommerce/subscriptions.js.map +1 -0
  246. package/dist/lib/tracking/ecommerce/wishlist.d.ts +19 -0
  247. package/dist/lib/tracking/ecommerce/wishlist.js +26 -0
  248. package/dist/lib/tracking/ecommerce/wishlist.js.map +1 -0
  249. package/dist/lib/tracking/enterprise/acquisition.d.ts +25 -0
  250. package/dist/lib/tracking/enterprise/acquisition.js +22 -0
  251. package/dist/lib/tracking/enterprise/acquisition.js.map +1 -0
  252. package/dist/lib/tracking/enterprise/alerts.d.ts +32 -0
  253. package/dist/lib/tracking/enterprise/alerts.js +30 -0
  254. package/dist/lib/tracking/enterprise/alerts.js.map +1 -0
  255. package/dist/lib/tracking/enterprise/churn.d.ts +23 -0
  256. package/dist/lib/tracking/enterprise/churn.js +22 -0
  257. package/dist/lib/tracking/enterprise/churn.js.map +1 -0
  258. package/dist/lib/tracking/enterprise/cohorts.d.ts +18 -0
  259. package/dist/lib/tracking/enterprise/cohorts.js +18 -0
  260. package/dist/lib/tracking/enterprise/cohorts.js.map +1 -0
  261. package/dist/lib/tracking/enterprise/engagement.d.ts +31 -0
  262. package/dist/lib/tracking/enterprise/engagement.js +44 -0
  263. package/dist/lib/tracking/enterprise/engagement.js.map +1 -0
  264. package/dist/lib/tracking/enterprise/forecasting.d.ts +18 -0
  265. package/dist/lib/tracking/enterprise/forecasting.js +22 -0
  266. package/dist/lib/tracking/enterprise/forecasting.js.map +1 -0
  267. package/dist/lib/tracking/enterprise/index.d.ts +11 -0
  268. package/dist/lib/tracking/enterprise/index.js +12 -0
  269. package/dist/lib/tracking/enterprise/index.js.map +1 -0
  270. package/dist/lib/tracking/enterprise/monetization.d.ts +14 -0
  271. package/dist/lib/tracking/enterprise/monetization.js +10 -0
  272. package/dist/lib/tracking/enterprise/monetization.js.map +1 -0
  273. package/dist/lib/tracking/enterprise/multi-path-funnels.d.ts +20 -0
  274. package/dist/lib/tracking/enterprise/multi-path-funnels.js +18 -0
  275. package/dist/lib/tracking/enterprise/multi-path-funnels.js.map +1 -0
  276. package/dist/lib/tracking/enterprise/paths.d.ts +20 -0
  277. package/dist/lib/tracking/enterprise/paths.js +18 -0
  278. package/dist/lib/tracking/enterprise/paths.js.map +1 -0
  279. package/dist/lib/tracking/enterprise/security.d.ts +28 -0
  280. package/dist/lib/tracking/enterprise/security.js +26 -0
  281. package/dist/lib/tracking/enterprise/security.js.map +1 -0
  282. package/dist/lib/tracking/enterprise/support.d.ts +25 -0
  283. package/dist/lib/tracking/enterprise/support.js +22 -0
  284. package/dist/lib/tracking/enterprise/support.js.map +1 -0
  285. package/dist/lib/tracking/index.d.ts +4 -0
  286. package/dist/lib/tracking/index.js +5 -0
  287. package/dist/lib/tracking/index.js.map +1 -0
  288. package/dist/lib/types/analytics.d.ts +10 -2
  289. package/dist/lib/types/analytics.js +6 -0
  290. package/dist/lib/types/analytics.js.map +1 -0
  291. package/dist/lib/types/common.js +6 -0
  292. package/dist/lib/types/common.js.map +1 -0
  293. package/dist/lib/types/ecommerce.js +6 -0
  294. package/dist/lib/types/ecommerce.js.map +1 -0
  295. package/dist/lib/types/index.js +8 -0
  296. package/dist/lib/types/index.js.map +1 -0
  297. package/dist/lib/utils/browser.d.ts +16 -0
  298. package/dist/lib/utils/browser.js +32 -0
  299. package/dist/lib/utils/browser.js.map +1 -0
  300. package/dist/lib/utils/identity.js +346 -0
  301. package/dist/lib/utils/identity.js.map +1 -0
  302. package/dist/lib/utils/storage.js +105 -0
  303. package/dist/lib/utils/storage.js.map +1 -0
  304. package/dist/umd/237.index.js +2 -0
  305. package/dist/umd/237.index.js.map +1 -0
  306. package/dist/umd/546.index.js +3 -0
  307. package/dist/umd/546.index.js.LICENSE.txt +14 -0
  308. package/dist/umd/546.index.js.map +1 -0
  309. package/dist/umd/index.js +2 -0
  310. package/dist/umd/index.js.map +1 -0
  311. package/package.json +27 -80
  312. package/dist/lib/features/ecommerce/inventory.d.ts +0 -219
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieBanner.js","sourceRoot":"","sources":["../../../../src/lib/frameworks/vue/CookieBanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,390 @@
1
+ /**
2
+ * @fileoverview FlowGrid SDK - Vue 3 Integration
3
+ * @module frameworks/vue
4
+ *
5
+ * @description
6
+ * Vue 3 composables and plugin for FlowGrid SDK.
7
+ * Uses Composition API for reactive state management.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // main.ts
12
+ * import { createApp } from 'vue';
13
+ * import { FlowGridPlugin } from 'flowgrid-sdk/vue';
14
+ *
15
+ * const app = createApp(App);
16
+ * app.use(FlowGridPlugin, {
17
+ * webId: 'your-web-id',
18
+ * endpoint: 'https://api.flow-grid.xyz',
19
+ * apiKey: 'your-api-key'
20
+ * });
21
+ * app.mount('#app');
22
+ * ```
23
+ */
24
+ import { inject, ref, onMounted, watch } from 'vue';
25
+ // Import core SDK
26
+ import { Activation, TrackFeature, TrackPrompt, Experiment, PageViews, Sessions, Events, Identify, Funnels, Products, CartTracking, Checkout, Purchases } from '../../../index';
27
+ import { getVisitorId } from '../../utils/storage';
28
+ import { IdentityManager } from '../../utils/identity';
29
+ // ============================================================================
30
+ // INJECTION KEY
31
+ // ============================================================================
32
+ const FlowGridKey = Symbol('FlowGrid');
33
+ // ============================================================================
34
+ // PLUGIN
35
+ // ============================================================================
36
+ /**
37
+ * Vue plugin for FlowGrid SDK.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { createApp } from 'vue';
42
+ * import { FlowGridPlugin } from 'flowgrid-sdk/vue';
43
+ *
44
+ * createApp(App)
45
+ * .use(FlowGridPlugin, {
46
+ * webId: 'web_123',
47
+ * endpoint: 'https://api.flow-grid.xyz',
48
+ * apiKey: 'key_abc',
49
+ * autoTrackPageViews: true
50
+ * })
51
+ * .mount('#app');
52
+ * ```
53
+ */
54
+ export const FlowGridPlugin = {
55
+ install(app, options) {
56
+ const { webId, endpoint, apiKey, debug = false } = options;
57
+ const isReady = ref(false);
58
+ const sessionId = ref(null);
59
+ // Create identity manager for visitor/session lifecycle
60
+ const identity = new IdentityManager({
61
+ visitorId: options.visitorId || getVisitorId() || undefined,
62
+ });
63
+ const resolvedVisitorId = identity.getVisitorId() || undefined;
64
+ // Initialize SDK instances
65
+ const instance = {
66
+ activation: new Activation(webId, endpoint, apiKey, resolvedVisitorId, identity),
67
+ trackFeature: new TrackFeature(webId, endpoint, apiKey, resolvedVisitorId, identity),
68
+ trackPrompt: new TrackPrompt(webId, endpoint, apiKey, resolvedVisitorId, identity),
69
+ experiment: new Experiment(webId, endpoint, apiKey, resolvedVisitorId, identity),
70
+ pageViews: new PageViews(webId, endpoint, apiKey, resolvedVisitorId, identity),
71
+ sessions: new Sessions(webId, endpoint, apiKey, resolvedVisitorId, identity),
72
+ events: new Events(webId, endpoint, apiKey, resolvedVisitorId, identity),
73
+ identify: new Identify(webId, endpoint, apiKey, resolvedVisitorId, identity),
74
+ funnels: new Funnels(webId, endpoint, apiKey, resolvedVisitorId, identity),
75
+ products: new Products(webId, endpoint, apiKey, resolvedVisitorId, identity),
76
+ cart: new CartTracking(webId, endpoint, apiKey, resolvedVisitorId, identity),
77
+ checkout: new Checkout(webId, endpoint, apiKey, resolvedVisitorId, identity),
78
+ purchases: new Purchases(webId, endpoint, apiKey, resolvedVisitorId, identity),
79
+ isReady,
80
+ sessionId,
81
+ };
82
+ // Auto-start session
83
+ if (options.autoTrackSessions !== false && typeof window !== 'undefined') {
84
+ instance.sessions.start({
85
+ referrer: document.referrer,
86
+ landingPage: window.location.pathname,
87
+ }).then((result) => {
88
+ sessionId.value = result.response?.sessionId || null;
89
+ isReady.value = true;
90
+ if (debug)
91
+ console.log('[FlowGrid] Session started:', sessionId.value);
92
+ });
93
+ // End session on unload
94
+ window.addEventListener('beforeunload', () => {
95
+ if (sessionId.value) {
96
+ instance.sessions.end(sessionId.value);
97
+ }
98
+ });
99
+ }
100
+ else {
101
+ isReady.value = true;
102
+ }
103
+ // Provide globally
104
+ app.provide(FlowGridKey, instance);
105
+ // Also add to globalProperties for Options API
106
+ app.config.globalProperties.$flowgrid = instance;
107
+ }
108
+ };
109
+ // ============================================================================
110
+ // COMPOSABLES
111
+ // ============================================================================
112
+ /**
113
+ * Access the FlowGrid SDK instance.
114
+ *
115
+ * @example
116
+ * ```vue
117
+ * <script setup>
118
+ * import { useFlowGrid } from 'flowgrid-sdk/vue';
119
+ *
120
+ * const { events, trackEvent } = useFlowGrid();
121
+ *
122
+ * const handleClick = () => {
123
+ * trackEvent('button_clicked', { id: 'cta' });
124
+ * };
125
+ * </script>
126
+ * ```
127
+ */
128
+ export function useFlowGrid() {
129
+ const instance = inject(FlowGridKey);
130
+ if (!instance) {
131
+ throw new Error('FlowGrid plugin not installed. Call app.use(FlowGridPlugin, config) first.');
132
+ }
133
+ const trackEvent = async (name, properties) => {
134
+ await instance.events.track({ eventName: name, properties: properties || {} });
135
+ };
136
+ const identifyUser = async (userId, traits) => {
137
+ await instance.identify.user({ userId, traits: traits || {} });
138
+ };
139
+ return {
140
+ ...instance,
141
+ trackEvent,
142
+ identifyUser,
143
+ };
144
+ }
145
+ /**
146
+ * Track page views with Vue Router integration.
147
+ *
148
+ * @example
149
+ * ```vue
150
+ * <script setup>
151
+ * import { usePageView } from 'flowgrid-sdk/vue';
152
+ * import { useRoute } from 'vue-router';
153
+ *
154
+ * const route = useRoute();
155
+ * usePageView(() => route.path);
156
+ * </script>
157
+ * ```
158
+ */
159
+ export function usePageView(pathGetter) {
160
+ const { pageViews, isReady } = useFlowGrid();
161
+ const trackPage = () => {
162
+ if (typeof window === 'undefined')
163
+ return;
164
+ pageViews.track({
165
+ url: window.location.href,
166
+ path: pathGetter ? pathGetter() : window.location.pathname,
167
+ title: document.title,
168
+ referrer: document.referrer,
169
+ });
170
+ };
171
+ onMounted(() => {
172
+ if (isReady.value) {
173
+ trackPage();
174
+ }
175
+ });
176
+ // Watch for path changes if getter provided
177
+ if (pathGetter) {
178
+ watch(pathGetter, () => {
179
+ if (isReady.value) {
180
+ trackPage();
181
+ }
182
+ });
183
+ }
184
+ }
185
+ /**
186
+ * Track an event on component mount.
187
+ *
188
+ * @example
189
+ * ```vue
190
+ * <script setup>
191
+ * import { useTrackEvent } from 'flowgrid-sdk/vue';
192
+ *
193
+ * useTrackEvent('pricing_page_viewed', { source: 'navbar' });
194
+ * </script>
195
+ * ```
196
+ */
197
+ export function useTrackEvent(eventName, properties) {
198
+ const { trackEvent, isReady } = useFlowGrid();
199
+ onMounted(() => {
200
+ if (isReady.value) {
201
+ trackEvent(eventName, properties);
202
+ }
203
+ });
204
+ }
205
+ /**
206
+ * Use an experiment variant.
207
+ *
208
+ * @example
209
+ * ```vue
210
+ * <script setup>
211
+ * import { useExperiment } from 'flowgrid-sdk/vue';
212
+ *
213
+ * const { variant, isLoading } = useExperiment('checkout_v2', 'user_123');
214
+ * </script>
215
+ *
216
+ * <template>
217
+ * <NewCheckout v-if="variant === 'treatment'" />
218
+ * <OldCheckout v-else />
219
+ * </template>
220
+ * ```
221
+ */
222
+ export function useExperiment(experimentId, userId) {
223
+ const { experiment } = useFlowGrid();
224
+ const variant = ref(null);
225
+ const isLoading = ref(true);
226
+ onMounted(async () => {
227
+ try {
228
+ await experiment.trackExposure(experimentId, userId, 'control');
229
+ variant.value = 'control'; // Would come from API
230
+ }
231
+ finally {
232
+ isLoading.value = false;
233
+ }
234
+ });
235
+ return { variant, isLoading };
236
+ }
237
+ /**
238
+ * Identify a user.
239
+ *
240
+ * @example
241
+ * ```vue
242
+ * <script setup>
243
+ * import { useIdentify } from 'flowgrid-sdk/vue';
244
+ *
245
+ * const props = defineProps<{ userId: string; email: string }>();
246
+ *
247
+ * useIdentify(() => props.userId, () => ({ email: props.email }));
248
+ * </script>
249
+ * ```
250
+ */
251
+ export function useIdentify(userIdGetter, traitsGetter) {
252
+ const { identifyUser, isReady } = useFlowGrid();
253
+ watch([userIdGetter, isReady], ([userId, ready]) => {
254
+ if (ready && userId) {
255
+ identifyUser(userId, traitsGetter?.() || {});
256
+ }
257
+ }, { immediate: true });
258
+ }
259
+ /**
260
+ * Ecommerce composable.
261
+ *
262
+ * @example
263
+ * ```vue
264
+ * <script setup>
265
+ * import { useEcommerce } from 'flowgrid-sdk/vue';
266
+ *
267
+ * const { trackProductView, trackAddToCart } = useEcommerce();
268
+ *
269
+ * onMounted(() => {
270
+ * trackProductView(product);
271
+ * });
272
+ * </script>
273
+ * ```
274
+ */
275
+ export function useEcommerce() {
276
+ const { products, cart, checkout, purchases } = useFlowGrid();
277
+ const trackProductView = async (product) => {
278
+ await products.view({
279
+ productId: product.id,
280
+ name: product.name,
281
+ price: product.price,
282
+ currency: (product.currency || 'USD'),
283
+ });
284
+ };
285
+ const trackAddToCart = async (product, quantity = 1) => {
286
+ await cart.addItem({
287
+ product: {
288
+ productId: product.id,
289
+ name: product.name,
290
+ price: product.price,
291
+ currency: (product.currency || 'USD'),
292
+ },
293
+ quantity,
294
+ cartId: 'current',
295
+ });
296
+ };
297
+ const trackCheckoutStart = async (cartItems) => {
298
+ await checkout.begin({
299
+ cart: {
300
+ cartId: 'current',
301
+ items: cartItems.map(i => ({
302
+ productId: i.productId,
303
+ name: i.name,
304
+ price: i.price,
305
+ quantity: i.quantity,
306
+ lineTotal: i.price * i.quantity,
307
+ currency: 'USD',
308
+ })),
309
+ subtotal: cartItems.reduce((sum, i) => sum + i.price * i.quantity, 0),
310
+ discountTotal: 0,
311
+ total: cartItems.reduce((sum, i) => sum + i.price * i.quantity, 0),
312
+ currency: 'USD',
313
+ itemCount: cartItems.length,
314
+ },
315
+ });
316
+ };
317
+ const trackPurchase = async (orderData) => {
318
+ await purchases.track({
319
+ order: {
320
+ orderId: orderData.orderId,
321
+ items: orderData.items.map(i => ({
322
+ productId: i.id,
323
+ name: i.name,
324
+ price: i.price,
325
+ quantity: i.quantity,
326
+ lineTotal: i.price * i.quantity,
327
+ currency: 'USD',
328
+ })),
329
+ subtotal: orderData.revenue,
330
+ discountTotal: 0,
331
+ shippingTotal: 0,
332
+ taxTotal: 0,
333
+ total: orderData.revenue,
334
+ currency: 'USD',
335
+ },
336
+ });
337
+ };
338
+ return {
339
+ trackProductView,
340
+ trackAddToCart,
341
+ trackCheckoutStart,
342
+ trackPurchase,
343
+ products,
344
+ cart,
345
+ checkout,
346
+ purchases,
347
+ };
348
+ }
349
+ // ============================================================================
350
+ // VUE ROUTER PLUGIN
351
+ // ============================================================================
352
+ /**
353
+ * Vue Router plugin for automatic page view tracking.
354
+ *
355
+ * @example
356
+ * ```ts
357
+ * import { createRouter } from 'vue-router';
358
+ * import { createRouterPlugin } from 'flowgrid-sdk/vue';
359
+ *
360
+ * const router = createRouter({ ... });
361
+ * router.afterEach(createRouterPlugin());
362
+ * ```
363
+ */
364
+ export function createRouterPlugin() {
365
+ return (to, from) => {
366
+ // This would be called from the consuming app after router is set up
367
+ if (typeof window === 'undefined')
368
+ return;
369
+ // The app should call usePageView or manually track
370
+ console.log('[FlowGrid] Route change:', from.path, '->', to.path);
371
+ };
372
+ }
373
+ // ============================================================================
374
+ // EXPORTS
375
+ // ============================================================================
376
+ // Cookie Banner
377
+ import { CookieBanner as _CookieBanner } from './CookieBanner';
378
+ export { CookieBanner } from './CookieBanner';
379
+ export default {
380
+ FlowGridPlugin,
381
+ useFlowGrid,
382
+ usePageView,
383
+ useTrackEvent,
384
+ useExperiment,
385
+ useIdentify,
386
+ useEcommerce,
387
+ createRouterPlugin,
388
+ CookieBanner: _CookieBanner,
389
+ };
390
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/frameworks/vue/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,MAAM,EAEN,GAAG,EAEH,SAAS,EAET,KAAK,EAIN,MAAM,KAAK,CAAC;AAEb,kBAAkB;AAClB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAsCvD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,WAAW,GAAmC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEvE,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,CAAC,GAAQ,EAAE,OAAuB;QACvC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QAE3D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAgB,IAAI,CAAC,CAAC;QAE3C,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;YACnC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,YAAY,EAAE,IAAI,SAAS;SAC5D,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;QAE/D,2BAA2B;QAC3B,MAAM,QAAQ,GAAqB;YACjC,UAAU,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAChF,YAAY,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YACpF,WAAW,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAClF,UAAU,EAAE,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAChF,SAAS,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC9E,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC5E,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YACxE,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC5E,OAAO,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC1E,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC5E,IAAI,EAAE,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC5E,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC5E,SAAS,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC;YAC9E,OAAO;YACP,SAAS;SACV,CAAC;QAEF,qBAAqB;QACrB,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACzE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;aACtC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjB,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;gBACrD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,wBAAwB;YACxB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC3C,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,mBAAmB;QACnB,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEnC,+CAA+C;QAC/C,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC;IACnD,CAAC;CACF,CAAC;AAEF,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,UAAoC,EAAE,EAAE;QAC9E,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgC,EAAE,EAAE;QAC9E,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,UAAyB;IACnD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IAE7C,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,SAAS,CAAC,KAAK,CAAC;YACd,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAC1D,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE;YACrB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,UAAoC;IACnF,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,YAAoB,EAAE,MAAc;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,GAAG,CAAgB,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAChE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,sBAAsB;QACnD,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CACzB,YAAiC,EACjC,YAA4C;IAE5C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IAEhD,KAAK,CACH,CAAC,YAAY,EAAE,OAAO,CAAC,EACvB,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE;QAClB,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACpB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACpB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;IAE9D,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAK/B,EAAE,EAAE;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAQ;SAC7C,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,OAK7B,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,OAAO,EAAE;gBACP,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAQ;aAC7C;YACD,QAAQ;YACR,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,SAAsF,EAAE,EAAE;QAC1H,MAAM,QAAQ,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE;gBACJ,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzB,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,SAAS,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,KAAY;iBACvB,CAAC,CAAC;gBACH,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClE,QAAQ,EAAE,KAAY;gBACtB,SAAS,EAAE,SAAS,CAAC,MAAM;aAC5B;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,SAI5B,EAAE,EAAE;QACH,MAAM,SAAS,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE;gBACL,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,SAAS,EAAE,CAAC,CAAC,EAAE;oBACf,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,SAAS,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ;oBAC/B,QAAQ,EAAE,KAAY;iBACvB,CAAC,CAAC;gBACH,QAAQ,EAAE,SAAS,CAAC,OAAO;gBAC3B,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,QAAQ,EAAE,KAAY;aACvB;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,cAAc;QACd,kBAAkB;QAClB,aAAa;QACb,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,SAAS;KACV,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,EAAmC,EAAE,IAAsB,EAAE,EAAE;QACrE,qEAAqE;QACrE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,oDAAoD;QACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,gBAAgB;AAChB,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAe;IACb,cAAc;IACd,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,YAAY,EAAE,aAAa;CAC5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Multi-touch attribution shortcuts.
3
+ */
4
+ import { Attribution, ConversionEvent } from "../../features/analytics/attribution";
5
+ export declare class AttributionTracker {
6
+ readonly client: Attribution;
7
+ constructor(client: Attribution);
8
+ /** Record a marketing touchpoint. */
9
+ touchpoint(userId: string, channel: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/attribution").TouchpointResponse>;
10
+ /** Record a conversion that should be attributed. */
11
+ conversion(userId: string, conversionType: ConversionEvent["conversionType"], properties?: Record<string, unknown>): Promise<import("../../features/analytics/attribution").TouchpointResponse>;
12
+ /** Auto-capture a touchpoint from `utm_*` params + `document.referrer`. */
13
+ captureFromUrl(userId: string): import("../../features/analytics/attribution").TouchpointConfig | null;
14
+ }
@@ -0,0 +1,18 @@
1
+ export class AttributionTracker {
2
+ constructor(client) {
3
+ this.client = client;
4
+ }
5
+ /** Record a marketing touchpoint. */
6
+ touchpoint(userId, channel, properties) {
7
+ return this.client.trackTouchpoint({ userId, channel, properties });
8
+ }
9
+ /** Record a conversion that should be attributed. */
10
+ conversion(userId, conversionType, properties) {
11
+ return this.client.recordConversion({ userId, conversionType, properties });
12
+ }
13
+ /** Auto-capture a touchpoint from `utm_*` params + `document.referrer`. */
14
+ captureFromUrl(userId) {
15
+ return this.client.captureFromUrl(userId);
16
+ }
17
+ }
18
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../../../src/lib/tracking/analytics/attribution.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAkB;IAC7B,YAA4B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEnD,qCAAqC;IACrC,UAAU,CAAC,MAAc,EAAE,OAAe,EAAE,UAAoC;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,qDAAqD;IACrD,UAAU,CAAC,MAAc,EAAE,cAAiD,EAAE,UAAoC;QAChH,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,2EAA2E;IAC3E,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Custom event shortcuts.
3
+ */
4
+ import { Events } from "../../features/analytics/events";
5
+ export declare class EventTracker {
6
+ readonly client: Events;
7
+ constructor(client: Events);
8
+ /** Track a custom event. */
9
+ track(eventName: string, properties?: Record<string, unknown>, opts?: {
10
+ userId?: string;
11
+ sessionId?: string;
12
+ }): Promise<import("../../features/analytics/events").EventResponse>;
13
+ /** Track many events in one request. */
14
+ batch(events: Array<{
15
+ eventName: string;
16
+ properties?: Record<string, unknown>;
17
+ }>): Promise<import("../../features/analytics/events").BatchEventResponse>;
18
+ /** Track a click on a tagged element. */
19
+ click(elementId: string, elementText: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/events").EventResponse>;
20
+ /** Track a form interaction. */
21
+ form(formId: string, formName: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/events").EventResponse>;
22
+ /** Track a search query. */
23
+ search(query: string, category: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/events").EventResponse>;
24
+ /** Track a runtime error. */
25
+ error(message: string, type: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/events").EventResponse>;
26
+ }
@@ -0,0 +1,30 @@
1
+ export class EventTracker {
2
+ constructor(client) {
3
+ this.client = client;
4
+ }
5
+ /** Track a custom event. */
6
+ track(eventName, properties, opts) {
7
+ return this.client.track({ eventName, properties, userId: opts?.userId, sessionId: opts?.sessionId });
8
+ }
9
+ /** Track many events in one request. */
10
+ batch(events) {
11
+ return this.client.trackBatch({ events });
12
+ }
13
+ /** Track a click on a tagged element. */
14
+ click(elementId, elementText, properties) {
15
+ return this.client.trackClick({ elementId, elementText, properties });
16
+ }
17
+ /** Track a form interaction. */
18
+ form(formId, formName, properties) {
19
+ return this.client.trackForm({ formId, formName, properties });
20
+ }
21
+ /** Track a search query. */
22
+ search(query, category, properties) {
23
+ return this.client.trackSearch({ query, category, properties });
24
+ }
25
+ /** Track a runtime error. */
26
+ error(message, type, properties) {
27
+ return this.client.trackError({ message, type, properties });
28
+ }
29
+ }
30
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/lib/tracking/analytics/events.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,YAAY;IACvB,YAA4B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE9C,4BAA4B;IAC5B,KAAK,CAAC,SAAiB,EAAE,UAAoC,EAAE,IAA8C;QAC3G,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,MAA0E;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,SAAiB,EAAE,WAAmB,EAAE,UAAoC;QAChF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAoC;QACzE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,4BAA4B;IAC5B,MAAM,CAAC,KAAa,EAAE,QAAgB,EAAE,UAAoC;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,OAAe,EAAE,IAAY,EAAE,UAAoC;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Funnel shortcuts.
3
+ */
4
+ import { Funnels } from "../../features/analytics/funnels";
5
+ export declare class FunnelTracker {
6
+ readonly client: Funnels;
7
+ constructor(client: Funnels);
8
+ /** Define a new funnel (admin / setup). */
9
+ define(definition: Parameters<Funnels["define"]>[0]): Promise<import("../../features/analytics/funnels").FunnelStepResponse>;
10
+ /** Record a step completion in a funnel. */
11
+ step(funnelId: string, step: string, stepNumber: number, userId?: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/funnels").FunnelStepResponse>;
12
+ /** Mark a funnel as completed. */
13
+ complete(funnelId: string, userId?: string, properties?: Record<string, unknown>): Promise<import("../../features/analytics/funnels").FunnelStepResponse>;
14
+ /** Mark a funnel as abandoned. */
15
+ abandon(funnelId: string, lastStep: string, userId?: string, reason?: string): Promise<import("../../features/analytics/funnels").FunnelStepResponse>;
16
+ }
@@ -0,0 +1,22 @@
1
+ export class FunnelTracker {
2
+ constructor(client) {
3
+ this.client = client;
4
+ }
5
+ /** Define a new funnel (admin / setup). */
6
+ define(definition) {
7
+ return this.client.define(definition);
8
+ }
9
+ /** Record a step completion in a funnel. */
10
+ step(funnelId, step, stepNumber, userId, properties) {
11
+ return this.client.trackStep({ funnelId, step, stepNumber, userId, properties });
12
+ }
13
+ /** Mark a funnel as completed. */
14
+ complete(funnelId, userId, properties) {
15
+ return this.client.trackComplete(funnelId, userId, properties);
16
+ }
17
+ /** Mark a funnel as abandoned. */
18
+ abandon(funnelId, lastStep, userId, reason) {
19
+ return this.client.trackAbandon(funnelId, lastStep, userId, reason);
20
+ }
21
+ }
22
+ //# sourceMappingURL=funnels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"funnels.js","sourceRoot":"","sources":["../../../../src/lib/tracking/analytics/funnels.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,aAAa;IACxB,YAA4B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAE/C,2CAA2C;IAC3C,MAAM,CAAC,UAA4C;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,QAAgB,EAAE,IAAY,EAAE,UAAkB,EAAE,MAAe,EAAE,UAAoC;QAC5G,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,kCAAkC;IAClC,QAAQ,CAAC,QAAgB,EAAE,MAAe,EAAE,UAAoC;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,kCAAkC;IAClC,OAAO,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAe,EAAE,MAAe;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Heatmap shortcuts.
3
+ */
4
+ import { Heatmaps } from "../../features/analytics/heatmaps";
5
+ export declare class HeatmapTracker {
6
+ readonly client: Heatmaps;
7
+ constructor(client: Heatmaps);
8
+ /** Record a click point. */
9
+ click(pageUrl: string, x: number, y: number, viewportWidth: number, viewportHeight: number): Promise<import("../../features/analytics/heatmaps").HeatmapResponse>;
10
+ /** Record a mouse-movement path. */
11
+ movement(pageUrl: string, path: Array<{
12
+ x: number;
13
+ y: number;
14
+ t: number;
15
+ }>, viewport: {
16
+ width: number;
17
+ height: number;
18
+ }): Promise<import("../../features/analytics/heatmaps").HeatmapResponse>;
19
+ /** Record scroll behaviour. */
20
+ scroll(pageUrl: string, maxScrollDepth: number, pageHeight: number, viewportHeight: number): Promise<import("../../features/analytics/heatmaps").HeatmapResponse>;
21
+ /** Auto-attach click + scroll listeners (and optionally mousemove). */
22
+ autoTrack(options?: {
23
+ movement?: boolean;
24
+ userId?: string;
25
+ sessionId?: string;
26
+ }): import("../../utils/browser").Teardown;
27
+ }
@@ -0,0 +1,22 @@
1
+ export class HeatmapTracker {
2
+ constructor(client) {
3
+ this.client = client;
4
+ }
5
+ /** Record a click point. */
6
+ click(pageUrl, x, y, viewportWidth, viewportHeight) {
7
+ return this.client.trackClick({ pageUrl, x, y, viewportWidth, viewportHeight });
8
+ }
9
+ /** Record a mouse-movement path. */
10
+ movement(pageUrl, path, viewport) {
11
+ return this.client.trackMovement({ pageUrl, path, viewport });
12
+ }
13
+ /** Record scroll behaviour. */
14
+ scroll(pageUrl, maxScrollDepth, pageHeight, viewportHeight) {
15
+ return this.client.trackScroll({ pageUrl, maxScrollDepth, pageHeight, viewportHeight });
16
+ }
17
+ /** Auto-attach click + scroll listeners (and optionally mousemove). */
18
+ autoTrack(options) {
19
+ return this.client.autoTrack(options);
20
+ }
21
+ }
22
+ //# sourceMappingURL=heatmaps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heatmaps.js","sourceRoot":"","sources":["../../../../src/lib/tracking/analytics/heatmaps.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,cAAc;IACzB,YAA4B,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEhD,4BAA4B;IAC5B,KAAK,CAAC,OAAe,EAAE,CAAS,EAAE,CAAS,EAAE,aAAqB,EAAE,cAAsB;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,oCAAoC;IACpC,QAAQ,CAAC,OAAe,EAAE,IAAgD,EAAE,QAA2C;QACrH,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,+BAA+B;IAC/B,MAAM,CAAC,OAAe,EAAE,cAAsB,EAAE,UAAkB,EAAE,cAAsB;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,uEAAuE;IACvE,SAAS,CAAC,OAAqE;QAC7E,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * User identification shortcuts.
3
+ */
4
+ import { Identify } from "../../features/analytics/identify";
5
+ export declare class IdentifyTracker {
6
+ readonly client: Identify;
7
+ constructor(client: Identify);
8
+ /** Identify a user with traits. */
9
+ user(userId: string, traits?: Record<string, unknown>, anonymousId?: string): Promise<import("../../features/analytics/identify").IdentifyResponse>;
10
+ /** Update traits on an existing user. */
11
+ updateTraits(userId: string, traits: Record<string, unknown>): Promise<import("../../features/analytics/identify").IdentifyResponse>;
12
+ /** Alias an anonymous ID to a known user ID. */
13
+ alias(previousId: string, userId: string): Promise<import("../../features/analytics/identify").IdentifyResponse>;
14
+ /** Associate a user with a group/company. */
15
+ group(userId: string, groupId: string, traits?: Record<string, unknown>): Promise<import("../../features/analytics/identify").IdentifyResponse>;
16
+ }