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,278 @@
1
+ /**
2
+ * @fileoverview Unified FlowGrid SDK facade.
3
+ * @module flowgrid
4
+ *
5
+ * @description
6
+ * A single class that aggregates every feature module so consumers can
7
+ * instantiate the SDK once and access all tracking domains from one object.
8
+ *
9
+ * Every namespace returns an ergonomic *shortcut* wrapper exposing
10
+ * positional-arg methods for the 80% case. The raw underlying class is
11
+ * always available on `.client` for advanced configuration.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { FlowGrid } from "flowgrid-sdk";
16
+ *
17
+ * const fg = new FlowGrid("web_123", "https://core.flow-grid.xyz", "sk_live_xxx");
18
+ *
19
+ * // Top-level shortcuts (the 80% case)
20
+ * fg.track("signup_completed", { plan: "pro" });
21
+ * fg.page();
22
+ * fg.identifyUser("u_1", { email: "alice@example.com" });
23
+ *
24
+ * // Per-feature shortcuts
25
+ * fg.cart.add({ productId: "sku_1", name: "Tee", price: 29, currency: "USD" });
26
+ * fg.experiments.assign("checkout_v2", "u_1");
27
+ *
28
+ * // Power-user escape hatch — raw class with full config surface
29
+ * fg.events.client.track({ eventName: "x", sessionId: "...", category: "..." });
30
+ * ```
31
+ */
32
+ import { FlowGridTransport, FlowGridTransportConfig } from "./client/transport";
33
+ import { IdentityManager } from "./utils/identity";
34
+ import { ActivationTracker, ExperimentTracker, FeatureTracker, PromptTracker, EventTracker, PageViewTracker, SessionTracker, IdentifyTracker, FunnelTracker, RetentionTracker, AttributionTracker, HeatmapTracker, PerformanceTracker, ReplayTracker, ProductTracker, CartTracker, CheckoutTracker, PurchaseTracker, RefundTracker, PromotionTracker, WishlistTracker, SubscriptionTracker, LTVTracker, SearchTracker, EngagementTracker, CohortTracker, ChurnTracker, MonetizationTracker, MultiPathFunnelTracker, SupportTracker, AcquisitionTracker, PathTracker, AlertTracker, SecurityTracker, ForecastingTracker } from "./tracking";
35
+ /** Granular auto-instrumentation toggles. */
36
+ export interface AutoTrackOptions {
37
+ sessions?: boolean;
38
+ pageViews?: boolean;
39
+ performance?: boolean | {
40
+ resources?: boolean;
41
+ minDuration?: number;
42
+ };
43
+ heatmaps?: boolean | {
44
+ movement?: boolean;
45
+ };
46
+ attribution?: boolean;
47
+ replay?: boolean | import("./features/analytics/replay").SessionReplayOptions;
48
+ /** Auto-track session depth + user activity transitions. Default on. */
49
+ engagement?: boolean | {
50
+ idleAfterMs?: number;
51
+ pollMs?: number;
52
+ };
53
+ }
54
+ /** Top-level config for `FlowGrid.init()`. */
55
+ export interface FlowGridInitConfig {
56
+ /** Public web/site identifier (e.g. `"wx_abc123"`). Required. */
57
+ webId: string;
58
+ /** Public API key. Required. */
59
+ apiKey: string;
60
+ /**
61
+ * API base URL. Defaults to `"https://core.flow-grid.xyz"` — most users never
62
+ * need to set this.
63
+ */
64
+ endpoint?: string;
65
+ /**
66
+ * Identify the user up-front so every subsequent event is attributed.
67
+ * Equivalent to calling `fg.identifyUser(userId, traits)` after init.
68
+ */
69
+ user?: {
70
+ userId: string;
71
+ traits?: Record<string, unknown>;
72
+ };
73
+ /**
74
+ * Browser auto-instrumentation. `true` (default) turns on sessions, page
75
+ * views, performance, heatmaps, and attribution. Pass an object to control
76
+ * individual features, or `false` to opt out completely.
77
+ */
78
+ autoTrack?: boolean | AutoTrackOptions;
79
+ /**
80
+ * Session replay (rrweb). Off by default — opt in by passing `true` or an
81
+ * options object. Requires the `rrweb` package (already a dependency).
82
+ */
83
+ replay?: boolean | import("./features/analytics/replay").SessionReplayOptions;
84
+ /**
85
+ * Initial consent state. Equivalent to calling
86
+ * `FlowGrid.setConsent({ analytics, marketing })` before any tracking.
87
+ */
88
+ consent?: {
89
+ analytics?: boolean;
90
+ marketing?: boolean;
91
+ };
92
+ /** Low-level transport tunables (sampling, DNT, bot detection). */
93
+ transport?: FlowGridTransportConfig;
94
+ /** Optional pre-resolved visitor ID (server-side hydration). */
95
+ visitorId?: string;
96
+ /** Optional identity manager (advanced — visitor/session lifecycle). */
97
+ identityManager?: IdentityManager;
98
+ }
99
+ /**
100
+ * Unified FlowGrid SDK client. Instantiate once, use everywhere.
101
+ *
102
+ * Each feature is exposed as a lazily-initialised shortcut wrapper, so the
103
+ * SDK has zero overhead for unused features.
104
+ */
105
+ export declare class FlowGrid {
106
+ /** Singleton created by {@link FlowGrid.init}. */
107
+ private static _instance;
108
+ /** Teardown for the auto-instrumentation started during `init()`. */
109
+ private _autoTrackStop;
110
+ private readonly webId;
111
+ private readonly endpoint;
112
+ private readonly apiKey;
113
+ private readonly visitorId?;
114
+ private readonly identityManager?;
115
+ private readonly config?;
116
+ private readonly _raw;
117
+ private readonly _wrapped;
118
+ /**
119
+ * One-line init. Idempotent — calling twice returns the same instance and
120
+ * logs a warning instead of starting auto-instrumentation again.
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * // Painless: one line, sane defaults, everything on.
125
+ * const fg = FlowGrid.init({ webId: "wx_xxx", apiKey: "pk_xxx" });
126
+ *
127
+ * // Or be explicit:
128
+ * const fg = FlowGrid.init({
129
+ * webId: "wx_xxx",
130
+ * apiKey: "pk_xxx",
131
+ * user: { userId: "u_1", traits: { plan: "pro" } },
132
+ * replay: { sampleRate: 0.25, maskAllInputs: true },
133
+ * consent: { analytics: true },
134
+ * });
135
+ * ```
136
+ */
137
+ static init(config: FlowGridInitConfig): FlowGrid;
138
+ /** Returns the singleton created by {@link FlowGrid.init}, if any. */
139
+ static instance(): FlowGrid | null;
140
+ /**
141
+ * Reset the singleton — primarily for tests / hot-reload. Tears down any
142
+ * active auto-instrumentation.
143
+ */
144
+ static reset(): void;
145
+ /**
146
+ * Explicit constructor for advanced cases (multi-tenant SSR, tests). Most
147
+ * apps should use the static {@link FlowGrid.init} instead.
148
+ */
149
+ constructor(webId: string, endpoint: string, apiKey: string, visitorId?: string, identityManager?: IdentityManager, config?: FlowGridTransportConfig);
150
+ private raw;
151
+ private wrap;
152
+ get activation(): ActivationTracker;
153
+ get features(): FeatureTracker;
154
+ get prompts(): PromptTracker;
155
+ get experiments(): ExperimentTracker;
156
+ get pageViews(): PageViewTracker;
157
+ get sessions(): SessionTracker;
158
+ get events(): EventTracker;
159
+ get identify(): IdentifyTracker;
160
+ get funnels(): FunnelTracker;
161
+ get retention(): RetentionTracker;
162
+ get attribution(): AttributionTracker;
163
+ get heatmaps(): HeatmapTracker;
164
+ get performance(): PerformanceTracker;
165
+ get replay(): ReplayTracker;
166
+ get products(): ProductTracker;
167
+ get cart(): CartTracker;
168
+ get checkout(): CheckoutTracker;
169
+ get purchases(): PurchaseTracker;
170
+ get refunds(): RefundTracker;
171
+ get promotions(): PromotionTracker;
172
+ get wishlist(): WishlistTracker;
173
+ get ltv(): LTVTracker;
174
+ get search(): SearchTracker;
175
+ get subscriptions(): SubscriptionTracker;
176
+ get engagement(): EngagementTracker;
177
+ get cohorts(): CohortTracker;
178
+ get churn(): ChurnTracker;
179
+ get monetization(): MonetizationTracker;
180
+ get multiPathFunnels(): MultiPathFunnelTracker;
181
+ get support(): SupportTracker;
182
+ get acquisition(): AcquisitionTracker;
183
+ get paths(): PathTracker;
184
+ get alerts(): AlertTracker;
185
+ get security(): SecurityTracker;
186
+ get forecasting(): ForecastingTracker;
187
+ static setConsent: typeof FlowGridTransport.setConsent;
188
+ static hasConsent: typeof FlowGridTransport.hasConsent;
189
+ /**
190
+ * Track a custom event.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * fg.track("signup_completed", { plan: "pro" });
195
+ * ```
196
+ */
197
+ track(eventName: string, properties?: Record<string, unknown>, options?: {
198
+ userId?: string;
199
+ sessionId?: string;
200
+ }): Promise<import("./features/analytics").EventResponse>;
201
+ /**
202
+ * Record an experiment exposure for a user.
203
+ *
204
+ * For the browser-cached flow, prefer:
205
+ * ```ts
206
+ * await fg.experiments.init([{ experimentId, variants: [...] }]);
207
+ * const variant = fg.experiments.variant(experimentId);
208
+ * fg.experiment("checkout_v2", { userId, variant });
209
+ * ```
210
+ */
211
+ experiment(experimentId: string, options: {
212
+ variant: string;
213
+ userId: string;
214
+ }): Promise<import("./features/core").ExperimentResponse>;
215
+ /**
216
+ * Identify a user.
217
+ *
218
+ * @example
219
+ * ```ts
220
+ * fg.identifyUser("u_1", { plan: "pro", email: "alice@example.com" });
221
+ * ```
222
+ */
223
+ identifyUser(userId: string, traits?: Record<string, unknown>, anonymousId?: string): Promise<import("./features/analytics").IdentifyResponse>;
224
+ /**
225
+ * Track a page view. Auto-detects URL/path/title/referrer in the browser.
226
+ *
227
+ * @example
228
+ * ```ts
229
+ * fg.page(); // auto-detect everything
230
+ * fg.page("/pricing", { plan: "pro" }); // override path + properties
231
+ * ```
232
+ */
233
+ page(pathOrUrl?: string, properties?: Record<string, unknown>, options?: {
234
+ title?: string;
235
+ referrer?: string;
236
+ userId?: string;
237
+ sessionId?: string;
238
+ }): Promise<import("./features/analytics").PageViewResponse>;
239
+ /**
240
+ * Enable browser-side auto-instrumentation in a single call. Subscribes to:
241
+ *
242
+ * - **Sessions** — start, heartbeat, and end on `pagehide`
243
+ * - **Page views** — initial view + SPA `pushState`/`popstate` + scroll-depth + time-on-page
244
+ * - **Performance** — Core Web Vitals via `web-vitals` + navigation timing
245
+ * - **Heatmaps** — click + scroll listeners
246
+ * - **Engagement** — session depth, action count, and active/passive/idle transitions
247
+ * - **Attribution** — UTM + referrer parsing on first load (requires `userId`)
248
+ *
249
+ * Each section can be disabled by setting it to `false`. Returns a single
250
+ * teardown function that detaches every listener; safe no-op on the server.
251
+ *
252
+ * @example
253
+ * ```ts
254
+ * const stop = fg.autoTrack({ userId: "u_1" });
255
+ * // ...later
256
+ * stop();
257
+ * ```
258
+ */
259
+ autoTrack(options?: {
260
+ userId?: string;
261
+ sessions?: boolean;
262
+ pageViews?: boolean;
263
+ performance?: boolean | {
264
+ resources?: boolean;
265
+ minDuration?: number;
266
+ };
267
+ heatmaps?: boolean | {
268
+ movement?: boolean;
269
+ };
270
+ attribution?: boolean;
271
+ replay?: boolean | import("./features/analytics/replay").SessionReplayOptions;
272
+ engagement?: boolean | {
273
+ idleAfterMs?: number;
274
+ pollMs?: number;
275
+ };
276
+ }): () => void;
277
+ }
278
+ export default FlowGrid;
@@ -0,0 +1,323 @@
1
+ /**
2
+ * @fileoverview Unified FlowGrid SDK facade.
3
+ * @module flowgrid
4
+ *
5
+ * @description
6
+ * A single class that aggregates every feature module so consumers can
7
+ * instantiate the SDK once and access all tracking domains from one object.
8
+ *
9
+ * Every namespace returns an ergonomic *shortcut* wrapper exposing
10
+ * positional-arg methods for the 80% case. The raw underlying class is
11
+ * always available on `.client` for advanced configuration.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { FlowGrid } from "flowgrid-sdk";
16
+ *
17
+ * const fg = new FlowGrid("web_123", "https://core.flow-grid.xyz", "sk_live_xxx");
18
+ *
19
+ * // Top-level shortcuts (the 80% case)
20
+ * fg.track("signup_completed", { plan: "pro" });
21
+ * fg.page();
22
+ * fg.identifyUser("u_1", { email: "alice@example.com" });
23
+ *
24
+ * // Per-feature shortcuts
25
+ * fg.cart.add({ productId: "sku_1", name: "Tee", price: 29, currency: "USD" });
26
+ * fg.experiments.assign("checkout_v2", "u_1");
27
+ *
28
+ * // Power-user escape hatch — raw class with full config surface
29
+ * fg.events.client.track({ eventName: "x", sessionId: "...", category: "..." });
30
+ * ```
31
+ */
32
+ import { FlowGridTransport } from "./client/transport";
33
+ import { IdentityManager } from "./utils/identity";
34
+ import { Activation, TrackFeature, TrackPrompt, Experiment } from "./features/core";
35
+ import { PageViews, Sessions, Events, Identify, Funnels, Retention, Attribution, Heatmaps, PerformanceTracking, SessionReplay, } from "./features/analytics";
36
+ import { Products, CartTracking, Checkout, Purchases, Refunds, Promotions, WishlistTracking, CustomerLTV, SearchAnalytics, Subscriptions, } from "./features/ecommerce";
37
+ import { Engagement, Cohorts, ChurnAnalytics, Monetization, MultiPathFunnels, SupportAnalytics, AcquisitionAnalytics, PathAnalytics, AlertsAnalytics, SecurityAnalytics, Forecasting, } from "./features/enterprise";
38
+ import { ActivationTracker, ExperimentTracker, FeatureTracker, PromptTracker, EventTracker, PageViewTracker, SessionTracker, IdentifyTracker, FunnelTracker, RetentionTracker, AttributionTracker, HeatmapTracker, PerformanceTracker, ReplayTracker, ProductTracker, CartTracker, CheckoutTracker, PurchaseTracker, RefundTracker, PromotionTracker, WishlistTracker, SubscriptionTracker, LTVTracker, SearchTracker, EngagementTracker, CohortTracker, ChurnTracker, MonetizationTracker, MultiPathFunnelTracker, SupportTracker, AcquisitionTracker, PathTracker, AlertTracker, SecurityTracker, ForecastingTracker, } from "./tracking";
39
+ const DEFAULT_ENDPOINT = "https://core.flow-grid.xyz";
40
+ /**
41
+ * Unified FlowGrid SDK client. Instantiate once, use everywhere.
42
+ *
43
+ * Each feature is exposed as a lazily-initialised shortcut wrapper, so the
44
+ * SDK has zero overhead for unused features.
45
+ */
46
+ export class FlowGrid {
47
+ /**
48
+ * One-line init. Idempotent — calling twice returns the same instance and
49
+ * logs a warning instead of starting auto-instrumentation again.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * // Painless: one line, sane defaults, everything on.
54
+ * const fg = FlowGrid.init({ webId: "wx_xxx", apiKey: "pk_xxx" });
55
+ *
56
+ * // Or be explicit:
57
+ * const fg = FlowGrid.init({
58
+ * webId: "wx_xxx",
59
+ * apiKey: "pk_xxx",
60
+ * user: { userId: "u_1", traits: { plan: "pro" } },
61
+ * replay: { sampleRate: 0.25, maskAllInputs: true },
62
+ * consent: { analytics: true },
63
+ * });
64
+ * ```
65
+ */
66
+ static init(config) {
67
+ if (FlowGrid._instance) {
68
+ if (typeof console !== "undefined") {
69
+ console.warn("[FlowGrid] init() called more than once — returning existing instance.");
70
+ }
71
+ return FlowGrid._instance;
72
+ }
73
+ if (!config?.webId || !config?.apiKey) {
74
+ throw new Error("FlowGrid.init: `webId` and `apiKey` are required.");
75
+ }
76
+ if (config.consent) {
77
+ FlowGrid.setConsent(config.consent);
78
+ }
79
+ const fg = new FlowGrid(config.webId, config.endpoint ?? DEFAULT_ENDPOINT, config.apiKey, config.visitorId, config.identityManager, config.transport);
80
+ FlowGrid._instance = fg;
81
+ // Identify the user before auto-instrumentation so the very first events
82
+ // (session_start, page_view) carry the userId.
83
+ if (config.user?.userId) {
84
+ void fg.identifyUser(config.user.userId, config.user.traits);
85
+ }
86
+ const autoTrack = config.autoTrack;
87
+ const replay = config.replay;
88
+ const autoOpts = autoTrack === false ? { sessions: false, pageViews: false, performance: false, heatmaps: false, attribution: false, engagement: false }
89
+ : autoTrack === true || autoTrack === undefined ? {}
90
+ : autoTrack;
91
+ if (replay !== undefined && autoOpts.replay === undefined) {
92
+ autoOpts.replay = replay;
93
+ }
94
+ fg._autoTrackStop = fg.autoTrack({
95
+ ...autoOpts,
96
+ userId: config.user?.userId ?? autoOpts.userId,
97
+ });
98
+ return fg;
99
+ }
100
+ /** Returns the singleton created by {@link FlowGrid.init}, if any. */
101
+ static instance() {
102
+ return FlowGrid._instance;
103
+ }
104
+ /**
105
+ * Reset the singleton — primarily for tests / hot-reload. Tears down any
106
+ * active auto-instrumentation.
107
+ */
108
+ static reset() {
109
+ if (FlowGrid._instance?._autoTrackStop) {
110
+ try {
111
+ FlowGrid._instance._autoTrackStop();
112
+ }
113
+ catch { /* noop */ }
114
+ }
115
+ FlowGrid._instance = null;
116
+ }
117
+ /**
118
+ * Explicit constructor for advanced cases (multi-tenant SSR, tests). Most
119
+ * apps should use the static {@link FlowGrid.init} instead.
120
+ */
121
+ constructor(webId, endpoint, apiKey, visitorId, identityManager, config) {
122
+ /** Teardown for the auto-instrumentation started during `init()`. */
123
+ this._autoTrackStop = null;
124
+ this._raw = new Map();
125
+ this._wrapped = new Map();
126
+ this.webId = webId;
127
+ this.endpoint = endpoint;
128
+ this.apiKey = apiKey;
129
+ this.visitorId = visitorId;
130
+ this.identityManager = identityManager ?? new IdentityManager(visitorId ? { visitorId } : undefined);
131
+ this.config = config;
132
+ }
133
+ raw(key, Klass) {
134
+ let instance = this._raw.get(key);
135
+ if (!instance) {
136
+ instance = new Klass(this.webId, this.endpoint, this.apiKey, this.visitorId, this.identityManager, this.config);
137
+ this._raw.set(key, instance);
138
+ }
139
+ return instance;
140
+ }
141
+ wrap(key, Klass, Wrapper) {
142
+ let instance = this._wrapped.get(key);
143
+ if (!instance) {
144
+ instance = new Wrapper(this.raw(key, Klass));
145
+ this._wrapped.set(key, instance);
146
+ }
147
+ return instance;
148
+ }
149
+ // ---- Core ----
150
+ get activation() { return this.wrap("activation", Activation, ActivationTracker); }
151
+ get features() { return this.wrap("features", TrackFeature, FeatureTracker); }
152
+ get prompts() { return this.wrap("prompts", TrackPrompt, PromptTracker); }
153
+ get experiments() { return this.wrap("experiments", Experiment, ExperimentTracker); }
154
+ // ---- Analytics ----
155
+ get pageViews() { return this.wrap("pageViews", PageViews, PageViewTracker); }
156
+ get sessions() { return this.wrap("sessions", Sessions, SessionTracker); }
157
+ get events() { return this.wrap("events", Events, EventTracker); }
158
+ get identify() { return this.wrap("identify", Identify, IdentifyTracker); }
159
+ get funnels() { return this.wrap("funnels", Funnels, FunnelTracker); }
160
+ get retention() { return this.wrap("retention", Retention, RetentionTracker); }
161
+ get attribution() { return this.wrap("attribution", Attribution, AttributionTracker); }
162
+ get heatmaps() { return this.wrap("heatmaps", Heatmaps, HeatmapTracker); }
163
+ get performance() { return this.wrap("performance", PerformanceTracking, PerformanceTracker); }
164
+ get replay() { return this.wrap("replay", SessionReplay, ReplayTracker); }
165
+ // ---- Ecommerce ----
166
+ get products() { return this.wrap("products", Products, ProductTracker); }
167
+ get cart() { return this.wrap("cart", CartTracking, CartTracker); }
168
+ get checkout() { return this.wrap("checkout", Checkout, CheckoutTracker); }
169
+ get purchases() { return this.wrap("purchases", Purchases, PurchaseTracker); }
170
+ get refunds() { return this.wrap("refunds", Refunds, RefundTracker); }
171
+ get promotions() { return this.wrap("promotions", Promotions, PromotionTracker); }
172
+ get wishlist() { return this.wrap("wishlist", WishlistTracking, WishlistTracker); }
173
+ get ltv() { return this.wrap("ltv", CustomerLTV, LTVTracker); }
174
+ get search() { return this.wrap("search", SearchAnalytics, SearchTracker); }
175
+ get subscriptions() { return this.wrap("subscriptions", Subscriptions, SubscriptionTracker); }
176
+ // ---- Enterprise ----
177
+ get engagement() { return this.wrap("engagement", Engagement, EngagementTracker); }
178
+ get cohorts() { return this.wrap("cohorts", Cohorts, CohortTracker); }
179
+ get churn() { return this.wrap("churn", ChurnAnalytics, ChurnTracker); }
180
+ get monetization() { return this.wrap("monetization", Monetization, MonetizationTracker); }
181
+ get multiPathFunnels() { return this.wrap("multiPathFunnels", MultiPathFunnels, MultiPathFunnelTracker); }
182
+ get support() { return this.wrap("support", SupportAnalytics, SupportTracker); }
183
+ get acquisition() { return this.wrap("acquisition", AcquisitionAnalytics, AcquisitionTracker); }
184
+ get paths() { return this.wrap("paths", PathAnalytics, PathTracker); }
185
+ get alerts() { return this.wrap("alerts", AlertsAnalytics, AlertTracker); }
186
+ get security() { return this.wrap("security", SecurityAnalytics, SecurityTracker); }
187
+ get forecasting() { return this.wrap("forecasting", Forecasting, ForecastingTracker); }
188
+ // ==========================================================================
189
+ // TOP-LEVEL SHORTCUTS — the 80% case
190
+ // ==========================================================================
191
+ /**
192
+ * Track a custom event.
193
+ *
194
+ * @example
195
+ * ```ts
196
+ * fg.track("signup_completed", { plan: "pro" });
197
+ * ```
198
+ */
199
+ track(eventName, properties, options) {
200
+ return this.events.track(eventName, properties, options);
201
+ }
202
+ /**
203
+ * Record an experiment exposure for a user.
204
+ *
205
+ * For the browser-cached flow, prefer:
206
+ * ```ts
207
+ * await fg.experiments.init([{ experimentId, variants: [...] }]);
208
+ * const variant = fg.experiments.variant(experimentId);
209
+ * fg.experiment("checkout_v2", { userId, variant });
210
+ * ```
211
+ */
212
+ experiment(experimentId, options) {
213
+ return this.experiments.exposure(experimentId, options.userId, options.variant);
214
+ }
215
+ /**
216
+ * Identify a user.
217
+ *
218
+ * @example
219
+ * ```ts
220
+ * fg.identifyUser("u_1", { plan: "pro", email: "alice@example.com" });
221
+ * ```
222
+ */
223
+ identifyUser(userId, traits, anonymousId) {
224
+ return this.identify.user(userId, traits, anonymousId);
225
+ }
226
+ /**
227
+ * Track a page view. Auto-detects URL/path/title/referrer in the browser.
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * fg.page(); // auto-detect everything
232
+ * fg.page("/pricing", { plan: "pro" }); // override path + properties
233
+ * ```
234
+ */
235
+ page(pathOrUrl, properties, options) {
236
+ return this.pageViews.view(pathOrUrl, properties, options);
237
+ }
238
+ /**
239
+ * Enable browser-side auto-instrumentation in a single call. Subscribes to:
240
+ *
241
+ * - **Sessions** — start, heartbeat, and end on `pagehide`
242
+ * - **Page views** — initial view + SPA `pushState`/`popstate` + scroll-depth + time-on-page
243
+ * - **Performance** — Core Web Vitals via `web-vitals` + navigation timing
244
+ * - **Heatmaps** — click + scroll listeners
245
+ * - **Engagement** — session depth, action count, and active/passive/idle transitions
246
+ * - **Attribution** — UTM + referrer parsing on first load (requires `userId`)
247
+ *
248
+ * Each section can be disabled by setting it to `false`. Returns a single
249
+ * teardown function that detaches every listener; safe no-op on the server.
250
+ *
251
+ * @example
252
+ * ```ts
253
+ * const stop = fg.autoTrack({ userId: "u_1" });
254
+ * // ...later
255
+ * stop();
256
+ * ```
257
+ */
258
+ autoTrack(options = {}) {
259
+ const teardowns = [];
260
+ const ctx = { userId: options.userId };
261
+ if (options.sessions !== false) {
262
+ teardowns.push(this.sessions.autoTrack(ctx.userId ? { user: { userId: ctx.userId } } : {}));
263
+ }
264
+ if (options.pageViews !== false) {
265
+ teardowns.push(this.pageViews.autoTrack(ctx));
266
+ }
267
+ if (options.performance !== false) {
268
+ const perfOpts = typeof options.performance === "object" ? options.performance : {};
269
+ teardowns.push(this.performance.autoTrack({ ...perfOpts, userId: ctx.userId }));
270
+ }
271
+ if (options.heatmaps !== false) {
272
+ const hmOpts = typeof options.heatmaps === "object" ? options.heatmaps : {};
273
+ teardowns.push(this.heatmaps.autoTrack({ ...hmOpts, userId: ctx.userId }));
274
+ }
275
+ if (options.engagement !== false) {
276
+ const engOpts = typeof options.engagement === "object" ? options.engagement : {};
277
+ teardowns.push(this.engagement.client.autoTrack({ ...engOpts, userId: ctx.userId }));
278
+ }
279
+ if (options.attribution !== false && ctx.userId) {
280
+ this.attribution.captureFromUrl(ctx.userId);
281
+ }
282
+ if (options.replay) {
283
+ const replayOpts = typeof options.replay === "object" ? options.replay : {};
284
+ // start() is async; track its resolved teardown so the outer stop()
285
+ // tears down recording even if the user calls it before rrweb resolved.
286
+ let resolvedStop = null;
287
+ let stopRequested = false;
288
+ void this.replay.start({ userId: ctx.userId, ...replayOpts }).then(stop => {
289
+ if (stopRequested) {
290
+ try {
291
+ stop();
292
+ }
293
+ catch { /* noop */ }
294
+ }
295
+ else {
296
+ resolvedStop = stop;
297
+ }
298
+ });
299
+ teardowns.push(() => {
300
+ stopRequested = true;
301
+ if (resolvedStop) {
302
+ try {
303
+ resolvedStop();
304
+ }
305
+ catch { /* noop */ }
306
+ }
307
+ });
308
+ }
309
+ return () => { for (const t of teardowns) {
310
+ try {
311
+ t();
312
+ }
313
+ catch { /* swallow */ }
314
+ } };
315
+ }
316
+ }
317
+ /** Singleton created by {@link FlowGrid.init}. */
318
+ FlowGrid._instance = null;
319
+ // ---- Consent passthrough (static on transport) ----
320
+ FlowGrid.setConsent = FlowGridTransport.setConsent.bind(FlowGridTransport);
321
+ FlowGrid.hasConsent = FlowGridTransport.hasConsent.bind(FlowGridTransport);
322
+ export default FlowGrid;
323
+ //# sourceMappingURL=flowgrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flowgrid.js","sourceRoot":"","sources":["../../src/lib/flowgrid.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  /**
2
- * @fileoverview Framework Integrations Barrel Export
2
+ * @fileoverview Framework Integrations
3
3
  * @module frameworks
4
+ *
5
+ * Framework integrations are available via sub-path imports to avoid
6
+ * pulling framework-specific dependencies into unrelated environments:
7
+ *
8
+ * import { ... } from 'flowgrid-sdk/react';
9
+ * import { ... } from 'flowgrid-sdk/nextjs';
10
+ * import { ... } from 'flowgrid-sdk/vue';
11
+ * import { ... } from 'flowgrid-sdk/nuxt';
12
+ * import { ... } from 'flowgrid-sdk/node';
13
+ *
14
+ * Do NOT re-export frameworks here — each sub-path is resolved
15
+ * independently via the "exports" field in package.json.
4
16
  */
5
- export * as react from './react';
6
- export * as vue from './vue';
7
- export * as nextjs from './nextjs';
8
- export * as nuxt from './nuxt';
9
- export * as node from './node';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Framework Integrations
4
+ * @module frameworks
5
+ *
6
+ * Framework integrations are available via sub-path imports to avoid
7
+ * pulling framework-specific dependencies into unrelated environments:
8
+ *
9
+ * import { ... } from 'flowgrid-sdk/react';
10
+ * import { ... } from 'flowgrid-sdk/nextjs';
11
+ * import { ... } from 'flowgrid-sdk/vue';
12
+ * import { ... } from 'flowgrid-sdk/nuxt';
13
+ * import { ... } from 'flowgrid-sdk/node';
14
+ *
15
+ * Do NOT re-export frameworks here — each sub-path is resolved
16
+ * independently via the "exports" field in package.json.
17
+ */
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/frameworks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}