flowgrid-sdk 1.2.0 → 1.3.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 (314) hide show
  1. package/README.md +224 -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.d.ts +2 -2
  163. package/dist/lib/frameworks/react/index.js +271 -0
  164. package/dist/lib/frameworks/react/index.js.map +1 -0
  165. package/dist/lib/frameworks/vue/CookieBanner.js +165 -0
  166. package/dist/lib/frameworks/vue/CookieBanner.js.map +1 -0
  167. package/dist/lib/frameworks/vue/index.d.ts +2 -2
  168. package/dist/lib/frameworks/vue/index.js +390 -0
  169. package/dist/lib/frameworks/vue/index.js.map +1 -0
  170. package/dist/lib/tracking/analytics/attribution.d.ts +14 -0
  171. package/dist/lib/tracking/analytics/attribution.js +18 -0
  172. package/dist/lib/tracking/analytics/attribution.js.map +1 -0
  173. package/dist/lib/tracking/analytics/events.d.ts +26 -0
  174. package/dist/lib/tracking/analytics/events.js +30 -0
  175. package/dist/lib/tracking/analytics/events.js.map +1 -0
  176. package/dist/lib/tracking/analytics/funnels.d.ts +16 -0
  177. package/dist/lib/tracking/analytics/funnels.js +22 -0
  178. package/dist/lib/tracking/analytics/funnels.js.map +1 -0
  179. package/dist/lib/tracking/analytics/heatmaps.d.ts +27 -0
  180. package/dist/lib/tracking/analytics/heatmaps.js +22 -0
  181. package/dist/lib/tracking/analytics/heatmaps.js.map +1 -0
  182. package/dist/lib/tracking/analytics/identify.d.ts +16 -0
  183. package/dist/lib/tracking/analytics/identify.js +22 -0
  184. package/dist/lib/tracking/analytics/identify.js.map +1 -0
  185. package/dist/lib/tracking/analytics/index.d.ts +10 -0
  186. package/dist/lib/tracking/analytics/index.js +11 -0
  187. package/dist/lib/tracking/analytics/index.js.map +1 -0
  188. package/dist/lib/tracking/analytics/page-views.d.ts +29 -0
  189. package/dist/lib/tracking/analytics/page-views.js +50 -0
  190. package/dist/lib/tracking/analytics/page-views.js.map +1 -0
  191. package/dist/lib/tracking/analytics/performance.d.ts +22 -0
  192. package/dist/lib/tracking/analytics/performance.js +22 -0
  193. package/dist/lib/tracking/analytics/performance.js.map +1 -0
  194. package/dist/lib/tracking/analytics/replay.d.ts +34 -0
  195. package/dist/lib/tracking/analytics/replay.js +46 -0
  196. package/dist/lib/tracking/analytics/replay.js.map +1 -0
  197. package/dist/lib/tracking/analytics/retention.d.ts +10 -0
  198. package/dist/lib/tracking/analytics/retention.js +10 -0
  199. package/dist/lib/tracking/analytics/retention.js.map +1 -0
  200. package/dist/lib/tracking/analytics/sessions.d.ts +20 -0
  201. package/dist/lib/tracking/analytics/sessions.js +26 -0
  202. package/dist/lib/tracking/analytics/sessions.js.map +1 -0
  203. package/dist/lib/tracking/core/activation.d.ts +23 -0
  204. package/dist/lib/tracking/core/activation.js +33 -0
  205. package/dist/lib/tracking/core/activation.js.map +1 -0
  206. package/dist/lib/tracking/core/experiment.d.ts +122 -0
  207. package/dist/lib/tracking/core/experiment.js +150 -0
  208. package/dist/lib/tracking/core/experiment.js.map +1 -0
  209. package/dist/lib/tracking/core/feature.d.ts +13 -0
  210. package/dist/lib/tracking/core/feature.js +14 -0
  211. package/dist/lib/tracking/core/feature.js.map +1 -0
  212. package/dist/lib/tracking/core/index.d.ts +4 -0
  213. package/dist/lib/tracking/core/index.js +5 -0
  214. package/dist/lib/tracking/core/index.js.map +1 -0
  215. package/dist/lib/tracking/core/prompt.d.ts +18 -0
  216. package/dist/lib/tracking/core/prompt.js +26 -0
  217. package/dist/lib/tracking/core/prompt.js.map +1 -0
  218. package/dist/lib/tracking/ecommerce/cart.d.ts +17 -0
  219. package/dist/lib/tracking/ecommerce/cart.js +22 -0
  220. package/dist/lib/tracking/ecommerce/cart.js.map +1 -0
  221. package/dist/lib/tracking/ecommerce/checkout.d.ts +17 -0
  222. package/dist/lib/tracking/ecommerce/checkout.js +22 -0
  223. package/dist/lib/tracking/ecommerce/checkout.js.map +1 -0
  224. package/dist/lib/tracking/ecommerce/index.d.ts +10 -0
  225. package/dist/lib/tracking/ecommerce/index.js +11 -0
  226. package/dist/lib/tracking/ecommerce/index.js.map +1 -0
  227. package/dist/lib/tracking/ecommerce/ltv.d.ts +15 -0
  228. package/dist/lib/tracking/ecommerce/ltv.js +14 -0
  229. package/dist/lib/tracking/ecommerce/ltv.js.map +1 -0
  230. package/dist/lib/tracking/ecommerce/products.d.ts +15 -0
  231. package/dist/lib/tracking/ecommerce/products.js +18 -0
  232. package/dist/lib/tracking/ecommerce/products.js.map +1 -0
  233. package/dist/lib/tracking/ecommerce/promotions.d.ts +14 -0
  234. package/dist/lib/tracking/ecommerce/promotions.js +25 -0
  235. package/dist/lib/tracking/ecommerce/promotions.js.map +1 -0
  236. package/dist/lib/tracking/ecommerce/purchases.d.ts +11 -0
  237. package/dist/lib/tracking/ecommerce/purchases.js +10 -0
  238. package/dist/lib/tracking/ecommerce/purchases.js.map +1 -0
  239. package/dist/lib/tracking/ecommerce/refunds.d.ts +17 -0
  240. package/dist/lib/tracking/ecommerce/refunds.js +22 -0
  241. package/dist/lib/tracking/ecommerce/refunds.js.map +1 -0
  242. package/dist/lib/tracking/ecommerce/search.d.ts +24 -0
  243. package/dist/lib/tracking/ecommerce/search.js +22 -0
  244. package/dist/lib/tracking/ecommerce/search.js.map +1 -0
  245. package/dist/lib/tracking/ecommerce/subscriptions.d.ts +21 -0
  246. package/dist/lib/tracking/ecommerce/subscriptions.js +38 -0
  247. package/dist/lib/tracking/ecommerce/subscriptions.js.map +1 -0
  248. package/dist/lib/tracking/ecommerce/wishlist.d.ts +19 -0
  249. package/dist/lib/tracking/ecommerce/wishlist.js +26 -0
  250. package/dist/lib/tracking/ecommerce/wishlist.js.map +1 -0
  251. package/dist/lib/tracking/enterprise/acquisition.d.ts +25 -0
  252. package/dist/lib/tracking/enterprise/acquisition.js +22 -0
  253. package/dist/lib/tracking/enterprise/acquisition.js.map +1 -0
  254. package/dist/lib/tracking/enterprise/alerts.d.ts +32 -0
  255. package/dist/lib/tracking/enterprise/alerts.js +30 -0
  256. package/dist/lib/tracking/enterprise/alerts.js.map +1 -0
  257. package/dist/lib/tracking/enterprise/churn.d.ts +23 -0
  258. package/dist/lib/tracking/enterprise/churn.js +22 -0
  259. package/dist/lib/tracking/enterprise/churn.js.map +1 -0
  260. package/dist/lib/tracking/enterprise/cohorts.d.ts +18 -0
  261. package/dist/lib/tracking/enterprise/cohorts.js +18 -0
  262. package/dist/lib/tracking/enterprise/cohorts.js.map +1 -0
  263. package/dist/lib/tracking/enterprise/engagement.d.ts +31 -0
  264. package/dist/lib/tracking/enterprise/engagement.js +44 -0
  265. package/dist/lib/tracking/enterprise/engagement.js.map +1 -0
  266. package/dist/lib/tracking/enterprise/forecasting.d.ts +18 -0
  267. package/dist/lib/tracking/enterprise/forecasting.js +22 -0
  268. package/dist/lib/tracking/enterprise/forecasting.js.map +1 -0
  269. package/dist/lib/tracking/enterprise/index.d.ts +11 -0
  270. package/dist/lib/tracking/enterprise/index.js +12 -0
  271. package/dist/lib/tracking/enterprise/index.js.map +1 -0
  272. package/dist/lib/tracking/enterprise/monetization.d.ts +14 -0
  273. package/dist/lib/tracking/enterprise/monetization.js +10 -0
  274. package/dist/lib/tracking/enterprise/monetization.js.map +1 -0
  275. package/dist/lib/tracking/enterprise/multi-path-funnels.d.ts +20 -0
  276. package/dist/lib/tracking/enterprise/multi-path-funnels.js +18 -0
  277. package/dist/lib/tracking/enterprise/multi-path-funnels.js.map +1 -0
  278. package/dist/lib/tracking/enterprise/paths.d.ts +20 -0
  279. package/dist/lib/tracking/enterprise/paths.js +18 -0
  280. package/dist/lib/tracking/enterprise/paths.js.map +1 -0
  281. package/dist/lib/tracking/enterprise/security.d.ts +28 -0
  282. package/dist/lib/tracking/enterprise/security.js +26 -0
  283. package/dist/lib/tracking/enterprise/security.js.map +1 -0
  284. package/dist/lib/tracking/enterprise/support.d.ts +25 -0
  285. package/dist/lib/tracking/enterprise/support.js +22 -0
  286. package/dist/lib/tracking/enterprise/support.js.map +1 -0
  287. package/dist/lib/tracking/index.d.ts +4 -0
  288. package/dist/lib/tracking/index.js +5 -0
  289. package/dist/lib/tracking/index.js.map +1 -0
  290. package/dist/lib/types/analytics.d.ts +10 -2
  291. package/dist/lib/types/analytics.js +6 -0
  292. package/dist/lib/types/analytics.js.map +1 -0
  293. package/dist/lib/types/common.js +6 -0
  294. package/dist/lib/types/common.js.map +1 -0
  295. package/dist/lib/types/ecommerce.js +6 -0
  296. package/dist/lib/types/ecommerce.js.map +1 -0
  297. package/dist/lib/types/index.js +8 -0
  298. package/dist/lib/types/index.js.map +1 -0
  299. package/dist/lib/utils/browser.d.ts +16 -0
  300. package/dist/lib/utils/browser.js +32 -0
  301. package/dist/lib/utils/browser.js.map +1 -0
  302. package/dist/lib/utils/identity.js +346 -0
  303. package/dist/lib/utils/identity.js.map +1 -0
  304. package/dist/lib/utils/storage.js +105 -0
  305. package/dist/lib/utils/storage.js.map +1 -0
  306. package/dist/umd/237.index.js +2 -0
  307. package/dist/umd/237.index.js.map +1 -0
  308. package/dist/umd/546.index.js +3 -0
  309. package/dist/umd/546.index.js.LICENSE.txt +14 -0
  310. package/dist/umd/546.index.js.map +1 -0
  311. package/dist/umd/index.js +2 -0
  312. package/dist/umd/index.js.map +1 -0
  313. package/package.json +27 -80
  314. package/dist/lib/features/ecommerce/inventory.d.ts +0 -219
@@ -0,0 +1,193 @@
1
+ /**
2
+ * @fileoverview Ecommerce - Purchase/Transaction Tracking
3
+ * @module features/ecommerce/purchases
4
+ *
5
+ * @description
6
+ * Track completed purchases, transactions, and revenue with
7
+ * full order details and customer information.
8
+ *
9
+ * @useCases
10
+ * - Track completed purchases
11
+ * - Calculate revenue metrics
12
+ * - Monitor order values
13
+ * - Analyze purchase patterns
14
+ * - Track customer lifetime value
15
+ *
16
+ * @metrics
17
+ * - Total revenue
18
+ * - Number of orders
19
+ * - Average order value
20
+ * - Revenue per customer
21
+ * - Items per order
22
+ *
23
+ * @chartData
24
+ * - Line chart: Revenue over time
25
+ * - Bar chart: Revenue by product/category
26
+ * - KPI cards: Revenue, AOV, Orders
27
+ * - Table: Recent transactions
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const purchases = new Purchases(webId, endpoint, apiKey);
32
+ *
33
+ * // Track a purchase
34
+ * await purchases.track({
35
+ * order: {
36
+ * orderId: 'ORD-12345',
37
+ * items: orderItems,
38
+ * total: 299.99,
39
+ * currency: 'USD'
40
+ * }
41
+ * });
42
+ * ```
43
+ */
44
+ import { FlowGridTransport } from "../../client/transport";
45
+ // ============================================================================
46
+ // PURCHASES CLASS
47
+ // ============================================================================
48
+ /**
49
+ * Purchases - Track completed purchases and revenue.
50
+ *
51
+ * @extends FlowGridTransport
52
+ *
53
+ * @description
54
+ * Provides purchase tracking capabilities including:
55
+ * - Purchase completion events
56
+ * - Revenue tracking
57
+ * - Order details capture
58
+ * - Customer LTV tracking
59
+ * - Attribution tracking
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const purchases = new Purchases(webId, endpoint, apiKey);
64
+ *
65
+ * // Track completed purchase
66
+ * await purchases.track({
67
+ * order: {
68
+ * orderId: 'ORD-12345',
69
+ * items: cartItems,
70
+ * subtotal: 279.99,
71
+ * discountTotal: 30.00,
72
+ * shippingTotal: 9.99,
73
+ * taxTotal: 26.00,
74
+ * total: 285.98,
75
+ * currency: 'USD',
76
+ * shipping: { method: 'express', cost: 9.99 },
77
+ * payment: { method: 'credit_card' }
78
+ * },
79
+ * userId: 'user_123'
80
+ * });
81
+ * ```
82
+ */
83
+ export class Purchases extends FlowGridTransport {
84
+ /**
85
+ * Tracks a completed purchase.
86
+ *
87
+ * @param config - Purchase configuration
88
+ * @returns Promise resolving to purchase response
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * await purchases.track({
93
+ * order: {
94
+ * orderId: 'ORD-98765',
95
+ * items: [
96
+ * { productId: 'PROD-1', name: 'Widget', price: 29.99, quantity: 2, lineTotal: 59.98 }
97
+ * ],
98
+ * subtotal: 59.98,
99
+ * discountTotal: 0,
100
+ * shippingTotal: 5.99,
101
+ * taxTotal: 5.40,
102
+ * total: 71.37,
103
+ * currency: 'USD'
104
+ * },
105
+ * attribution: {
106
+ * source: 'google',
107
+ * medium: 'cpc',
108
+ * campaign: 'spring_sale'
109
+ * }
110
+ * });
111
+ * ```
112
+ */
113
+ async track(config) {
114
+ const order = config.order;
115
+ return await this.init("purchase", {
116
+ type: "ecommerce",
117
+ subtype: "purchase",
118
+ order: {
119
+ orderId: order.orderId,
120
+ items: order.items,
121
+ subtotal: order.subtotal,
122
+ discountTotal: order.discountTotal,
123
+ shippingTotal: order.shippingTotal,
124
+ taxTotal: order.taxTotal,
125
+ total: order.total,
126
+ currency: order.currency,
127
+ shipping: order.shipping,
128
+ payment: order.payment,
129
+ coupons: order.coupons,
130
+ affiliation: order.affiliation
131
+ },
132
+ revenue: order.total,
133
+ itemCount: order.items.reduce((sum, i) => sum + i.quantity, 0),
134
+ userId: config.userId,
135
+ sessionId: config.sessionId,
136
+ attribution: config.attribution,
137
+ ...config.properties,
138
+ timestamp: new Date().toISOString()
139
+ });
140
+ }
141
+ /**
142
+ * Tracks order status change.
143
+ *
144
+ * @param orderId - Order identifier
145
+ * @param newStatus - New order status
146
+ * @param previousStatus - Previous status (optional)
147
+ * @returns Promise resolving to status change response
148
+ */
149
+ async statusChange(orderId, newStatus, previousStatus) {
150
+ return await this.init("order_status_change", {
151
+ type: "ecommerce",
152
+ subtype: "order_status_change",
153
+ orderId,
154
+ newStatus,
155
+ previousStatus,
156
+ timestamp: new Date().toISOString()
157
+ });
158
+ }
159
+ /**
160
+ * Tracks order shipped event.
161
+ *
162
+ * @param orderId - Order identifier
163
+ * @param shipping - Shipping details with tracking
164
+ * @returns Promise resolving to shipped response
165
+ */
166
+ async shipped(orderId, shipping) {
167
+ return await this.init("order_shipped", {
168
+ type: "ecommerce",
169
+ subtype: "order_shipped",
170
+ orderId,
171
+ shipping,
172
+ timestamp: new Date().toISOString()
173
+ });
174
+ }
175
+ /**
176
+ * Tracks order delivered event.
177
+ *
178
+ * @param orderId - Order identifier
179
+ * @param deliveredAt - Delivery timestamp
180
+ * @returns Promise resolving to delivered response
181
+ */
182
+ async delivered(orderId, deliveredAt) {
183
+ return await this.init("order_delivered", {
184
+ type: "ecommerce",
185
+ subtype: "order_delivered",
186
+ orderId,
187
+ deliveredAt: deliveredAt || new Date().toISOString(),
188
+ timestamp: new Date().toISOString()
189
+ });
190
+ }
191
+ }
192
+ export default Purchases;
193
+ //# sourceMappingURL=purchases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purchases.js","sourceRoot":"","sources":["../../../../src/lib/features/ecommerce/purchases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA4H3D,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,SAAU,SAAQ,iBAAiB;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,KAAK,CAAC,MAAsB;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B;YACD,OAAO,EAAE,KAAK,CAAC,KAAK;YACpB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,OAAe,EACf,SAA0B,EAC1B,cAAgC;QAEhC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC5C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,qBAAqB;YAC9B,OAAO;YACP,SAAS;YACT,cAAc;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,QAAsB;QACnD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACtC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,eAAe;YACxB,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,WAAoB;QACnD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,iBAAiB;YAC1B,OAAO;YACP,WAAW,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAED,eAAe,SAAS,CAAC"}
@@ -42,7 +42,7 @@
42
42
  * ```
43
43
  */
44
44
  import { FlowGridTransport } from "../../client/transport";
45
- import { Refund, CartItem, MoneyValue, DateRangeFilter, TimeSeriesData } from "../../types";
45
+ import { Refund, CartItem, MoneyValue, TimeSeriesData } from "../../types";
46
46
  /**
47
47
  * Configuration for tracking a refund.
48
48
  */
@@ -202,31 +202,5 @@ export declare class Refunds extends FlowGridTransport {
202
202
  * @returns Promise resolving to completion response
203
203
  */
204
204
  complete(refundId: string, processedAmount: number): Promise<RefundResponse>;
205
- /**
206
- * Retrieves refund analytics for dashboards and charts.
207
- *
208
- * @param filter - Date range filter
209
- * @returns Promise resolving to refund analytics
210
- *
211
- * @example
212
- * ```typescript
213
- * const analytics = await refunds.getAnalytics({
214
- * range: 'last30days'
215
- * });
216
- *
217
- * // Bar chart - refunds by reason
218
- * const reasonChart = analytics.byReason.map(r => ({
219
- * name: r.reason,
220
- * value: r.count
221
- * }));
222
- *
223
- * // Table - problematic products
224
- * const problemProducts = analytics.topRefundedProducts;
225
- *
226
- * // Revenue impact KPI
227
- * const impact = analytics.revenueImpact.refundImpactPercent;
228
- * ```
229
- */
230
- getAnalytics(filter?: DateRangeFilter): Promise<RefundAnalyticsData>;
231
205
  }
232
206
  export default Refunds;
@@ -0,0 +1,195 @@
1
+ /**
2
+ * @fileoverview Ecommerce - Refund Tracking
3
+ * @module features/ecommerce/refunds
4
+ *
5
+ * @description
6
+ * Track refunds, returns, and order cancellations with
7
+ * reason analysis and revenue impact.
8
+ *
9
+ * @useCases
10
+ * - Track full and partial refunds
11
+ * - Analyze refund reasons
12
+ * - Monitor return rates by product
13
+ * - Calculate net revenue after refunds
14
+ * - Identify problematic products
15
+ *
16
+ * @metrics
17
+ * - Total refunds
18
+ * - Refund rate
19
+ * - Average refund value
20
+ * - Refunds by reason
21
+ * - Net revenue impact
22
+ *
23
+ * @chartData
24
+ * - Bar chart: Refunds by reason
25
+ * - Line chart: Refund trends
26
+ * - Table: Products with highest return rates
27
+ * - KPI: Refund rate vs benchmark
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const refunds = new Refunds(webId, endpoint, apiKey);
32
+ *
33
+ * // Track a refund
34
+ * await refunds.track({
35
+ * orderId: 'ORD-12345',
36
+ * refundId: 'REF-001',
37
+ * amount: 49.99,
38
+ * currency: 'USD',
39
+ * reason: 'defective',
40
+ * isFullRefund: false
41
+ * });
42
+ * ```
43
+ */
44
+ import { FlowGridTransport } from "../../client/transport";
45
+ // ============================================================================
46
+ // REFUNDS CLASS
47
+ // ============================================================================
48
+ /**
49
+ * Refunds - Track refunds and returns.
50
+ *
51
+ * @extends FlowGridTransport
52
+ *
53
+ * @description
54
+ * Provides refund tracking capabilities including:
55
+ * - Full refund tracking
56
+ * - Partial refund tracking
57
+ * - Refund reason analysis
58
+ * - Return rate monitoring
59
+ * - Revenue impact calculation
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const refunds = new Refunds(webId, endpoint, apiKey);
64
+ *
65
+ * // Track full refund
66
+ * await refunds.track({
67
+ * orderId: 'ORD-12345',
68
+ * refundId: 'REF-001',
69
+ * amount: 149.99,
70
+ * currency: 'USD',
71
+ * reason: 'customer_request',
72
+ * isFullRefund: true
73
+ * });
74
+ *
75
+ * // Track partial refund with items
76
+ * await refunds.track({
77
+ * orderId: 'ORD-12345',
78
+ * refundId: 'REF-002',
79
+ * items: [refundedItem],
80
+ * amount: 49.99,
81
+ * currency: 'USD',
82
+ * reason: 'defective',
83
+ * isFullRefund: false
84
+ * });
85
+ * ```
86
+ */
87
+ export class Refunds extends FlowGridTransport {
88
+ /**
89
+ * Tracks a refund event.
90
+ *
91
+ * @param config - Refund configuration
92
+ * @returns Promise resolving to refund response
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * await refunds.track({
97
+ * orderId: 'ORD-98765',
98
+ * refundId: 'REF-123',
99
+ * items: [
100
+ * { productId: 'PROD-1', name: 'Widget', price: 29.99, quantity: 1, lineTotal: 29.99 }
101
+ * ],
102
+ * amount: 29.99,
103
+ * currency: 'USD',
104
+ * reason: 'wrong_item',
105
+ * isFullRefund: false,
106
+ * initiatedBy: 'customer'
107
+ * });
108
+ * ```
109
+ */
110
+ async track(config) {
111
+ return await this.init("refund", {
112
+ type: "ecommerce",
113
+ subtype: "refund",
114
+ orderId: config.orderId,
115
+ refundId: config.refundId,
116
+ items: config.items,
117
+ amount: config.amount,
118
+ currency: config.currency,
119
+ reason: config.reason,
120
+ isFullRefund: config.isFullRefund,
121
+ userId: config.userId,
122
+ initiatedBy: config.initiatedBy,
123
+ ...config.properties,
124
+ timestamp: new Date().toISOString()
125
+ });
126
+ }
127
+ /**
128
+ * Tracks a refund request (before processing).
129
+ *
130
+ * @param orderId - Original order ID
131
+ * @param items - Items requested for refund
132
+ * @param reason - Refund reason
133
+ * @returns Promise resolving to request response
134
+ */
135
+ async request(orderId, items, reason) {
136
+ return await this.init("refund_requested", {
137
+ type: "ecommerce",
138
+ subtype: "refund_requested",
139
+ orderId,
140
+ items,
141
+ reason,
142
+ timestamp: new Date().toISOString()
143
+ });
144
+ }
145
+ /**
146
+ * Tracks refund approval.
147
+ *
148
+ * @param refundId - Refund identifier
149
+ * @param approvedAmount - Approved refund amount
150
+ * @returns Promise resolving to approval response
151
+ */
152
+ async approve(refundId, approvedAmount) {
153
+ return await this.init("refund_approved", {
154
+ type: "ecommerce",
155
+ subtype: "refund_approved",
156
+ refundId,
157
+ approvedAmount,
158
+ timestamp: new Date().toISOString()
159
+ });
160
+ }
161
+ /**
162
+ * Tracks refund denial.
163
+ *
164
+ * @param refundId - Refund identifier
165
+ * @param denialReason - Reason for denial
166
+ * @returns Promise resolving to denial response
167
+ */
168
+ async deny(refundId, denialReason) {
169
+ return await this.init("refund_denied", {
170
+ type: "ecommerce",
171
+ subtype: "refund_denied",
172
+ refundId,
173
+ denialReason,
174
+ timestamp: new Date().toISOString()
175
+ });
176
+ }
177
+ /**
178
+ * Tracks refund completion (money returned).
179
+ *
180
+ * @param refundId - Refund identifier
181
+ * @param processedAmount - Amount actually refunded
182
+ * @returns Promise resolving to completion response
183
+ */
184
+ async complete(refundId, processedAmount) {
185
+ return await this.init("refund_completed", {
186
+ type: "ecommerce",
187
+ subtype: "refund_completed",
188
+ refundId,
189
+ processedAmount,
190
+ timestamp: new Date().toISOString()
191
+ });
192
+ }
193
+ }
194
+ export default Refunds;
195
+ //# sourceMappingURL=refunds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refunds.js","sourceRoot":"","sources":["../../../../src/lib/features/ecommerce/refunds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAgF3D,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,OAAO,OAAQ,SAAQ,iBAAiB;IAC5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,KAAK,CAAC,MAAoB;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,OAAe,EACf,KAAkB,EAClB,MAAe;QAEf,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,kBAAkB;YAC3B,OAAO;YACP,KAAK;YACL,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,cAAsB;QACpD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,iBAAiB;YAC1B,QAAQ;YACR,cAAc;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,YAAoB;QAC/C,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACtC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,eAAe;YACxB,QAAQ;YACR,YAAY;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,eAAuB;QACtD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,kBAAkB;YAC3B,QAAQ;YACR,eAAe;YACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAED,eAAe,OAAO,CAAC"}
@@ -39,7 +39,7 @@
39
39
  * ```
40
40
  */
41
41
  import { FlowGridTransport } from "../../client/transport";
42
- import { Product, DateRangeFilter, TimeSeriesData } from "../../types";
42
+ import { Product, TimeSeriesData } from "../../types";
43
43
  /**
44
44
  * Search query configuration.
45
45
  */
@@ -198,28 +198,5 @@ export declare class SearchAnalytics extends FlowGridTransport {
198
198
  * @returns Promise resolving to search response
199
199
  */
200
200
  trackSuggestion(partialQuery: string, selectedSuggestion: string, suggestionPosition: number): Promise<SearchResponse>;
201
- /**
202
- * Gets search analytics for dashboards.
203
- *
204
- * @param filter - Date range filter
205
- * @returns Promise resolving to search analytics
206
- *
207
- * @example
208
- * ```typescript
209
- * const analytics = await search.getAnalytics({
210
- * range: 'last30days'
211
- * });
212
- *
213
- * // Word cloud data
214
- * const wordCloud = analytics.topQueries.map(q => ({
215
- * text: q.query,
216
- * value: q.searches
217
- * }));
218
- *
219
- * // Table - zero result queries to fix
220
- * const toFix = analytics.zeroResultQueries;
221
- * ```
222
- */
223
- getAnalytics(filter?: DateRangeFilter): Promise<SearchAnalyticsData>;
224
201
  }
225
202
  export default SearchAnalytics;
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @fileoverview Ecommerce - Search Analytics
3
+ * @module features/ecommerce/search
4
+ *
5
+ * @description
6
+ * Track site search behavior to improve product discovery
7
+ * and conversion from search results.
8
+ *
9
+ * @useCases
10
+ * - Track search queries and results
11
+ * - Identify zero-result searches
12
+ * - Measure search-to-purchase conversion
13
+ * - Analyze popular search terms
14
+ * - Optimize search suggestions
15
+ *
16
+ * @metrics
17
+ * - Search volume
18
+ * - Zero-result rate
19
+ * - Search refinement rate
20
+ * - Click-through rate from search
21
+ * - Conversion from search
22
+ *
23
+ * @chartData
24
+ * - Word cloud: Popular search terms
25
+ * - Bar chart: Top queries
26
+ * - Table: Zero-result queries
27
+ * - Funnel: Search to purchase
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const search = new SearchAnalytics(webId, endpoint, apiKey);
32
+ *
33
+ * // Track search
34
+ * await search.track({
35
+ * query: 'wireless headphones',
36
+ * resultsCount: 42,
37
+ * filters: { brand: 'Sony' }
38
+ * });
39
+ * ```
40
+ */
41
+ import { FlowGridTransport } from "../../client/transport";
42
+ // ============================================================================
43
+ // SEARCH ANALYTICS CLASS
44
+ // ============================================================================
45
+ /**
46
+ * SearchAnalytics - Track site search behavior.
47
+ *
48
+ * @extends FlowGridTransport
49
+ *
50
+ * @description
51
+ * Provides search analytics including:
52
+ * - Search query tracking
53
+ * - Result click tracking
54
+ * - Zero-result detection
55
+ * - Search refinement tracking
56
+ * - Search to conversion analysis
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const search = new SearchAnalytics(webId, endpoint, apiKey);
61
+ *
62
+ * // Track search
63
+ * await search.track({
64
+ * query: 'running shoes',
65
+ * resultsCount: 156,
66
+ * filters: { size: '10', color: 'black' },
67
+ * sortBy: 'price_asc'
68
+ * });
69
+ *
70
+ * // Track click from search results
71
+ * await search.trackClick({
72
+ * query: 'running shoes',
73
+ * product: clickedProduct,
74
+ * position: 3
75
+ * });
76
+ * ```
77
+ */
78
+ export class SearchAnalytics extends FlowGridTransport {
79
+ /**
80
+ * Tracks a search query.
81
+ *
82
+ * @param config - Search configuration
83
+ * @returns Promise resolving to search response
84
+ */
85
+ async track(config) {
86
+ return await this.init("site_search", {
87
+ type: "ecommerce",
88
+ subtype: "site_search",
89
+ query: config.query,
90
+ resultsCount: config.resultsCount,
91
+ hasResults: config.resultsCount > 0,
92
+ category: config.category,
93
+ filters: config.filters,
94
+ sortBy: config.sortBy,
95
+ page: config.page || 1,
96
+ userId: config.userId,
97
+ sessionId: config.sessionId,
98
+ timestamp: new Date().toISOString()
99
+ });
100
+ }
101
+ /**
102
+ * Tracks a click on search result.
103
+ *
104
+ * @param config - Search click configuration
105
+ * @returns Promise resolving to search response
106
+ */
107
+ async trackClick(config) {
108
+ return await this.init("search_result_click", {
109
+ type: "ecommerce",
110
+ subtype: "search_result_click",
111
+ query: config.query,
112
+ product: config.product,
113
+ position: config.position,
114
+ page: config.page || 1,
115
+ timestamp: new Date().toISOString()
116
+ });
117
+ }
118
+ /**
119
+ * Tracks search refinement (modifying search).
120
+ *
121
+ * @param originalQuery - Original search query
122
+ * @param refinedQuery - New/refined query
123
+ * @param refinementType - Type of refinement
124
+ * @returns Promise resolving to search response
125
+ */
126
+ async trackRefinement(originalQuery, refinedQuery, refinementType) {
127
+ return await this.init("search_refinement", {
128
+ type: "ecommerce",
129
+ subtype: "search_refinement",
130
+ originalQuery,
131
+ refinedQuery,
132
+ refinementType,
133
+ timestamp: new Date().toISOString()
134
+ });
135
+ }
136
+ /**
137
+ * Tracks autocomplete/suggestion selection.
138
+ *
139
+ * @param partialQuery - Partial query typed
140
+ * @param selectedSuggestion - Suggestion selected
141
+ * @param suggestionPosition - Position of suggestion
142
+ * @returns Promise resolving to search response
143
+ */
144
+ async trackSuggestion(partialQuery, selectedSuggestion, suggestionPosition) {
145
+ return await this.init("search_suggestion", {
146
+ type: "ecommerce",
147
+ subtype: "search_suggestion",
148
+ partialQuery,
149
+ selectedSuggestion,
150
+ suggestionPosition,
151
+ timestamp: new Date().toISOString()
152
+ });
153
+ }
154
+ }
155
+ export default SearchAnalytics;
156
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/lib/features/ecommerce/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAuG3D,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IACpD;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,MAAoB;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACpC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,YAAY,GAAG,CAAC;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAAyB;QACxC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC5C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,qBAAqB;YAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,aAAqB,EACrB,YAAoB,EACpB,cAA+E;QAE/E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC1C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,mBAAmB;YAC5B,aAAa;YACb,YAAY;YACZ,cAAc;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,YAAoB,EACpB,kBAA0B,EAC1B,kBAA0B;QAE1B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC1C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,mBAAmB;YAC5B,YAAY;YACZ,kBAAkB;YAClB,kBAAkB;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAED,eAAe,eAAe,CAAC"}
@@ -41,7 +41,7 @@
41
41
  * ```
42
42
  */
43
43
  import { FlowGridTransport } from "../../client/transport";
44
- import { MoneyValue, DateRangeFilter, TimeSeriesData } from "../../types";
44
+ import { MoneyValue, TimeSeriesData } from "../../types";
45
45
  /**
46
46
  * Subscription start configuration.
47
47
  */
@@ -250,32 +250,5 @@ export declare class Subscriptions extends FlowGridTransport {
250
250
  * @returns Promise resolving to subscription response
251
251
  */
252
252
  trialExpired(subscriptionId: string, userId: string): Promise<SubscriptionResponse>;
253
- /**
254
- * Gets subscription analytics for dashboards.
255
- *
256
- * @param filter - Date range filter
257
- * @returns Promise resolving to subscription analytics
258
- *
259
- * @example
260
- * ```typescript
261
- * const analytics = await subscriptions.getAnalytics({
262
- * range: 'thisMonth'
263
- * });
264
- *
265
- * // KPI cards
266
- * const kpis = [
267
- * { label: 'MRR', value: analytics.summary.totalMrr.amount },
268
- * { label: 'Churn Rate', value: analytics.summary.churnRate },
269
- * { label: 'NRR', value: analytics.summary.netRevenueRetention }
270
- * ];
271
- *
272
- * // Waterfall chart
273
- * const waterfall = analytics.mrrMovement;
274
- *
275
- * // MRR trend line
276
- * const trend = analytics.mrrTrend.data;
277
- * ```
278
- */
279
- getAnalytics(filter?: DateRangeFilter): Promise<SubscriptionAnalyticsData>;
280
253
  }
281
254
  export default Subscriptions;