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
@@ -290,10 +290,6 @@ export declare class Forecasting extends FlowGridTransport {
290
290
  * Forecast signups.
291
291
  */
292
292
  forecastSignups(config: ForecastConfig): Promise<ForecastResult>;
293
- /**
294
- * Get capacity planning forecast.
295
- */
296
- getCapacityPlanning(config: CapacityPlanningConfig): Promise<CapacityPlanningResult>;
297
293
  /**
298
294
  * Compare forecast scenarios.
299
295
  */
@@ -302,50 +298,4 @@ export declare class Forecasting extends FlowGridTransport {
302
298
  * Forecast custom metric.
303
299
  */
304
300
  forecastCustomMetric(metricName: string, config: Omit<ForecastConfig, 'metric' | 'customMetricName'>): Promise<ForecastResult>;
305
- /**
306
- * Get forecast accuracy report.
307
- */
308
- getForecastAccuracy(metric: ForecastMetric, lookbackPeriods: number): Promise<{
309
- metric: ForecastMetric;
310
- periods: Array<{
311
- period: string;
312
- predicted: number;
313
- actual: number;
314
- error: number;
315
- errorPercent: number;
316
- }>;
317
- overallAccuracy: {
318
- mape: number;
319
- rmse: number;
320
- r2: number;
321
- };
322
- }>;
323
- /**
324
- * Get growth projections.
325
- */
326
- getGrowthProjections(periods: number, granularity: TimeGranularity): Promise<{
327
- users: ForecastResult;
328
- revenue: ForecastResult;
329
- engagement: ForecastResult;
330
- summary: {
331
- projectedUsersEnd: number;
332
- projectedRevenueEnd: MoneyValue;
333
- avgMonthlyGrowth: number;
334
- };
335
- }>;
336
- /**
337
- * Get what-if analysis.
338
- */
339
- getWhatIfAnalysis(baseMetric: ForecastMetric, adjustments: Array<{
340
- factor: string;
341
- change: number;
342
- }>, periods: number): Promise<{
343
- baseline: ForecastResult;
344
- adjusted: ForecastResult;
345
- impact: {
346
- absoluteDiff: number;
347
- percentDiff: number;
348
- sensitivityScore: number;
349
- };
350
- }>;
351
301
  }
@@ -0,0 +1,232 @@
1
+ /**
2
+ * @fileoverview Enterprise - Product Usage Forecasting
3
+ * @module features/enterprise/forecasting
4
+ *
5
+ * @description
6
+ * Predict usage, adoption, and revenue trends using historical data
7
+ * and machine learning models.
8
+ *
9
+ * @useCases
10
+ * - Project active user growth
11
+ * - Forecast feature adoption
12
+ * - Predict churn and revenue
13
+ * - Capacity planning
14
+ * - Trend analysis
15
+ *
16
+ * @metrics
17
+ * - Predicted DAU/MAU
18
+ * - Feature adoption forecast
19
+ * - Revenue projection
20
+ * - Churn prediction
21
+ * - Forecast accuracy
22
+ *
23
+ * @chartData
24
+ * - Line chart: Forecast with confidence
25
+ * - Area chart: Prediction range
26
+ * - Comparison: Predicted vs actual
27
+ * - Table: Forecast metrics
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const forecasting = new Forecasting(webId, endpoint, apiKey);
32
+ *
33
+ * // Get user growth forecast
34
+ * const forecast = await forecasting.forecastActiveUsers({
35
+ * metric: 'dau',
36
+ * periods: 30,
37
+ * granularity: 'day'
38
+ * });
39
+ * ```
40
+ */
41
+ import { FlowGridTransport } from "../../client/transport";
42
+ // ============================================================================
43
+ // HELPER FUNCTIONS
44
+ // ============================================================================
45
+ /**
46
+ * Calculate MAPE (Mean Absolute Percentage Error).
47
+ */
48
+ export function calculateMAPE(actual, predicted) {
49
+ if (actual.length !== predicted.length || actual.length === 0)
50
+ return 0;
51
+ let sum = 0;
52
+ let count = 0;
53
+ for (let i = 0; i < actual.length; i++) {
54
+ if (actual[i] !== 0) {
55
+ sum += Math.abs((actual[i] - predicted[i]) / actual[i]);
56
+ count++;
57
+ }
58
+ }
59
+ return count > 0 ? Math.round((sum / count) * 10000) / 100 : 0;
60
+ }
61
+ /**
62
+ * Calculate RMSE (Root Mean Square Error).
63
+ */
64
+ export function calculateRMSE(actual, predicted) {
65
+ if (actual.length !== predicted.length || actual.length === 0)
66
+ return 0;
67
+ let sumSquaredError = 0;
68
+ for (let i = 0; i < actual.length; i++) {
69
+ sumSquaredError += Math.pow(actual[i] - predicted[i], 2);
70
+ }
71
+ return Math.round(Math.sqrt(sumSquaredError / actual.length) * 100) / 100;
72
+ }
73
+ /**
74
+ * Calculate R-squared.
75
+ */
76
+ export function calculateR2(actual, predicted) {
77
+ if (actual.length !== predicted.length || actual.length === 0)
78
+ return 0;
79
+ const mean = actual.reduce((a, b) => a + b, 0) / actual.length;
80
+ let ssRes = 0;
81
+ let ssTot = 0;
82
+ for (let i = 0; i < actual.length; i++) {
83
+ ssRes += Math.pow(actual[i] - predicted[i], 2);
84
+ ssTot += Math.pow(actual[i] - mean, 2);
85
+ }
86
+ return ssTot !== 0 ? Math.round((1 - ssRes / ssTot) * 10000) / 10000 : 0;
87
+ }
88
+ /**
89
+ * Classify trend direction.
90
+ */
91
+ export function classifyTrend(startValue, endValue, threshold = 5) {
92
+ if (startValue === 0)
93
+ return endValue > 0 ? 'growing' : 'stable';
94
+ const changePercent = ((endValue - startValue) / startValue) * 100;
95
+ if (changePercent > threshold)
96
+ return 'growing';
97
+ if (changePercent < -threshold)
98
+ return 'declining';
99
+ return 'stable';
100
+ }
101
+ /**
102
+ * Calculate average growth rate.
103
+ */
104
+ export function calculateAvgGrowthRate(values) {
105
+ if (values.length < 2)
106
+ return 0;
107
+ let totalGrowth = 0;
108
+ let count = 0;
109
+ for (let i = 1; i < values.length; i++) {
110
+ if (values[i - 1] !== 0) {
111
+ totalGrowth += (values[i] - values[i - 1]) / values[i - 1];
112
+ count++;
113
+ }
114
+ }
115
+ return count > 0 ? Math.round((totalGrowth / count) * 10000) / 100 : 0;
116
+ }
117
+ /**
118
+ * Apply confidence interval.
119
+ */
120
+ export function applyConfidenceInterval(predicted, stdError, confidenceLevel = 0.95) {
121
+ // Z-score for common confidence levels
122
+ const zScores = {
123
+ 0.90: 1.645,
124
+ 0.95: 1.96,
125
+ 0.99: 2.576
126
+ };
127
+ const z = zScores[confidenceLevel] ?? 1.96;
128
+ const margin = z * stdError;
129
+ return {
130
+ lower: Math.max(0, predicted - margin),
131
+ upper: predicted + margin
132
+ };
133
+ }
134
+ // ============================================================================
135
+ // MAIN CLASS
136
+ // ============================================================================
137
+ /**
138
+ * Product usage forecasting class.
139
+ */
140
+ export class Forecasting extends FlowGridTransport {
141
+ /**
142
+ * Forecast active users.
143
+ */
144
+ async forecastActiveUsers(config) {
145
+ return await this.initFeature("forecasting.active_users", {
146
+ type: "forecasting",
147
+ ...config,
148
+ model: config.model ?? 'ensemble',
149
+ includeConfidence: config.includeConfidence ?? true,
150
+ timestamp: new Date().toISOString()
151
+ });
152
+ }
153
+ /**
154
+ * Forecast revenue.
155
+ */
156
+ async forecastRevenue(config) {
157
+ return await this.initFeature("forecasting.revenue", {
158
+ type: "forecasting",
159
+ ...config,
160
+ metric: 'revenue',
161
+ currency: config.currency ?? 'USD',
162
+ timestamp: new Date().toISOString()
163
+ });
164
+ }
165
+ /**
166
+ * Forecast MRR.
167
+ */
168
+ async forecastMRR(config) {
169
+ return await this.initFeature("forecasting.mrr", {
170
+ type: "forecasting",
171
+ ...config,
172
+ metric: 'mrr',
173
+ timestamp: new Date().toISOString()
174
+ });
175
+ }
176
+ /**
177
+ * Forecast feature adoption.
178
+ */
179
+ async forecastFeatureAdoption(config) {
180
+ return await this.initFeature("forecasting.feature_adoption", {
181
+ type: "forecasting",
182
+ ...config,
183
+ metric: 'feature_usage',
184
+ timestamp: new Date().toISOString()
185
+ });
186
+ }
187
+ /**
188
+ * Forecast churn.
189
+ */
190
+ async forecastChurn(config) {
191
+ return await this.initFeature("forecasting.churn", {
192
+ type: "forecasting",
193
+ ...config,
194
+ metric: 'churn_rate',
195
+ timestamp: new Date().toISOString()
196
+ });
197
+ }
198
+ /**
199
+ * Forecast signups.
200
+ */
201
+ async forecastSignups(config) {
202
+ return await this.initFeature("forecasting.signups", {
203
+ type: "forecasting",
204
+ ...config,
205
+ metric: 'signups',
206
+ timestamp: new Date().toISOString()
207
+ });
208
+ }
209
+ /**
210
+ * Compare forecast scenarios.
211
+ */
212
+ async compareScenarios(config) {
213
+ return await this.initFeature("forecasting.scenarios", {
214
+ type: "forecasting",
215
+ ...config,
216
+ timestamp: new Date().toISOString()
217
+ });
218
+ }
219
+ /**
220
+ * Forecast custom metric.
221
+ */
222
+ async forecastCustomMetric(metricName, config) {
223
+ return await this.initFeature("forecasting.custom", {
224
+ type: "forecasting",
225
+ ...config,
226
+ metric: 'custom',
227
+ customMetricName: metricName,
228
+ timestamp: new Date().toISOString()
229
+ });
230
+ }
231
+ }
232
+ //# sourceMappingURL=forecasting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forecasting.js","sourceRoot":"","sources":["../../../../src/lib/features/enterprise/forecasting.ts"],"names":[],"mappings":"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"}
@@ -16,5 +16,5 @@ export { SupportAnalytics, type TicketPriority, type TicketStatus, type SupportC
16
16
  export { AcquisitionAnalytics, type AcquisitionSource, type LifecycleStage, type AcquisitionConfig, type CampaignDefinition, type CampaignSpendConfig, type LifecycleTransitionConfig, type CACConfig, type CACResult, type TrialFunnelConfig, type TrialFunnelResult, type CampaignPerformance, type AttributionModel, type AttributionAnalysisConfig, type AttributionResult, type AcquisitionAnalytics as AcquisitionAnalyticsType, calculateCAC, calculateROAS, calculateLTVCACRatio, parseUTMParams, classifySource } from './acquisition';
17
17
  export { PathAnalytics, type TransitionConfig, type FeatureSequenceConfig, type PathDefinition, type PathAnalysisConfig, type PathResult, type DeadEndScreen, type TransitionMatrix, type UserJourneyConfig as PathUserJourneyConfig, type UserJourney as PathUserJourney, type FrictionPoint, type PathComparison, pathToString, stringToPath, calculateExitRate, isDeadEnd, calculatePathSimilarity, findCommonSubPaths } from './paths';
18
18
  export { AlertsAnalytics, type AlertCondition, type AlertSeverity, type AlertStatus, type NotificationChannel, type AlertRuleDefinition, type AlertInstance, type AnomalyDetectionConfig, type Anomaly, type NotificationConfig, type AlertAnalyticsFilter, type AlertAnalytics, calculateStdDev, calculateZScore, isAnomaly, calculateAnomalyScore, classifySeverity, checkAlertCondition } from './alerts';
19
- export { SecurityAnalytics, type SecurityEventType, type ComplianceEventType, type LoginAttemptConfig, type RoleChangeConfig, type PermissionChangeConfig, type DataAccessConfig, type ComplianceEventConfig, type AuditLogEntry, type SecurityAnalyticsFilter, type SecurityRiskAssessment, type SecurityAnalytics as SecurityAnalyticsType, type ComplianceReport, classifyRiskLevel as classifySecurityRiskLevel, calculateFailedLoginRate, isSuspiciousLoginPattern, determineEventSeverity } from './security';
19
+ export { SecurityAnalytics, type SecurityEventType, type ComplianceEventType, type LoginAttemptConfig, type RoleChangeConfig, type PermissionChangeConfig, type DataAccessConfig, type ComplianceEventConfig, type AuditLogEntry, type SecurityAnalyticsFilter, type SecurityRiskAssessment, type SecurityAnalyticsResult as SecurityAnalyticsType, type ComplianceReport, classifyRiskLevel as classifySecurityRiskLevel, calculateFailedLoginRate, isSuspiciousLoginPattern, determineEventSeverity } from './security';
20
20
  export { Forecasting, type ForecastModel, type ForecastMetric, type ForecastConfig, type ForecastDataPoint, type ForecastResult, type RevenueForecastConfig as ForecastingRevenueForecastConfig, type RevenueForecastResult, type FeatureAdoptionForecastConfig, type ChurnForecastConfig, type ChurnForecastResult, type CapacityPlanningConfig, type CapacityPlanningResult, type ScenarioConfig, type ScenarioComparison, calculateMAPE, calculateRMSE, calculateR2, classifyTrend, calculateAvgGrowthRate, applyConfidenceInterval } from './forecasting';
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @fileoverview Enterprise Features Module
3
+ * @module features/enterprise
4
+ *
5
+ * @description
6
+ * Advanced analytics features for enterprise-tier users.
7
+ * Includes engagement, cohorts, churn, monetization, funnels,
8
+ * support, acquisition, path analysis, alerts, security, and forecasting.
9
+ */
10
+ // ============================================================================
11
+ // ENGAGEMENT
12
+ // ============================================================================
13
+ export { Engagement,
14
+ // Helper functions
15
+ calculateEngagementScore, classifyEngagementLevel, calculateSessionDepthScore } from './engagement';
16
+ // ============================================================================
17
+ // COHORTS & SEGMENTATION
18
+ // ============================================================================
19
+ export { Cohorts,
20
+ // Helper functions
21
+ evaluateCohortRules, generateCohortId } from './cohorts';
22
+ // ============================================================================
23
+ // CHURN & PREDICTIVE ANALYTICS
24
+ // ============================================================================
25
+ export { ChurnAnalytics,
26
+ // Helper functions
27
+ calculateChurnRiskScore, classifyRiskLevel, generateRecommendations } from './churn';
28
+ // ============================================================================
29
+ // MONETIZATION
30
+ // ============================================================================
31
+ export { Monetization,
32
+ // Helper functions
33
+ calculateARPU, calculateNRR, calculateGRR, monthlyToAnnual, calculateLTV } from './monetization';
34
+ // ============================================================================
35
+ // MULTI-PATH FUNNELS & MICRO-CONVERSIONS
36
+ // ============================================================================
37
+ export { MultiPathFunnels,
38
+ // Helper functions
39
+ calculateConversionRate, calculateDropOffRate, findBestPath, calculateMicroConversionScore, generatePathId } from './multi-path-funnels';
40
+ // ============================================================================
41
+ // SUPPORT & EXPERIENCE
42
+ // ============================================================================
43
+ export { SupportAnalytics,
44
+ // Helper functions
45
+ calculateFCRRate, calculateAvgResponseTime, classifyCSAT, formatDuration } from './support';
46
+ // ============================================================================
47
+ // ACQUISITION & MARKETING
48
+ // ============================================================================
49
+ export { AcquisitionAnalytics,
50
+ // Helper functions
51
+ calculateCAC, calculateROAS, calculateLTVCACRatio, parseUTMParams, classifySource } from './acquisition';
52
+ // ============================================================================
53
+ // PATH & BEHAVIORAL ANALYSIS
54
+ // ============================================================================
55
+ export { PathAnalytics,
56
+ // Helper functions
57
+ pathToString, stringToPath, calculateExitRate, isDeadEnd, calculatePathSimilarity, findCommonSubPaths } from './paths';
58
+ // ============================================================================
59
+ // ALERTS & ANOMALY DETECTION
60
+ // ============================================================================
61
+ export { AlertsAnalytics,
62
+ // Helper functions
63
+ calculateStdDev, calculateZScore, isAnomaly, calculateAnomalyScore, classifySeverity, checkAlertCondition } from './alerts';
64
+ // ============================================================================
65
+ // SECURITY & COMPLIANCE
66
+ // ============================================================================
67
+ export { SecurityAnalytics,
68
+ // Helper functions
69
+ classifyRiskLevel as classifySecurityRiskLevel, calculateFailedLoginRate, isSuspiciousLoginPattern, determineEventSeverity } from './security';
70
+ // ============================================================================
71
+ // FORECASTING
72
+ // ============================================================================
73
+ export { Forecasting,
74
+ // Helper functions
75
+ calculateMAPE, calculateRMSE, calculateR2, classifyTrend, calculateAvgGrowthRate, applyConfidenceInterval } from './forecasting';
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/features/enterprise/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAC/E,OAAO,EACL,UAAU;AAWV,mBAAmB;AACnB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAC/E,OAAO,EACL,OAAO;AAcP,mBAAmB;AACnB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAEnB,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAC/E,OAAO,EACL,cAAc;AAWd,mBAAmB;AACnB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAC/E,OAAO,EACL,YAAY;AAiBZ,mBAAmB;AACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,+EAA+E;AAC/E,yCAAyC;AACzC,+EAA+E;AAC/E,OAAO,EACL,gBAAgB;AAchB,mBAAmB;AACnB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,6BAA6B,EAC7B,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAC/E,OAAO,EACL,gBAAgB;AAchB,mBAAmB;AACnB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAC/E,OAAO,EACL,oBAAoB;AAiBpB,mBAAmB;AACnB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAC/E,OAAO,EACL,aAAa;AAab,mBAAmB;AACnB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAC/E,OAAO,EACL,eAAe;AAaf,mBAAmB;AACnB,eAAe,EACf,eAAe,EACf,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAC/E,OAAO,EACL,iBAAiB;AAcjB,mBAAmB;AACnB,iBAAiB,IAAI,yBAAyB,EAC9C,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAC/E,OAAO,EACL,WAAW;AAgBX,mBAAmB;AACnB,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,eAAe,CAAC"}
@@ -44,7 +44,7 @@
44
44
  * ```
45
45
  */
46
46
  import { FlowGridTransport } from "../../client/transport";
47
- import { DateRangeFilter, TimeSeriesData, TimeGranularity, MoneyValue, CurrencyCode } from "../../types";
47
+ import { DateRangeFilter, TimeSeriesData, MoneyValue, CurrencyCode } from "../../types";
48
48
  /**
49
49
  * Revenue event types.
50
50
  */
@@ -294,63 +294,4 @@ export declare class Monetization extends FlowGridTransport {
294
294
  trackContraction(userId: string, fromPlan: string, toPlan: string, reducedRevenue: MoneyValue): Promise<{
295
295
  tracked: boolean;
296
296
  }>;
297
- /**
298
- * Get ARPU.
299
- */
300
- getARPU(config?: ARPUConfig): Promise<ARPUResult>;
301
- /**
302
- * Get ARPU by segment.
303
- */
304
- getARPUBySegment(segmentAttribute: string, filter?: DateRangeFilter): Promise<Array<{
305
- segment: string;
306
- arpu: MoneyValue;
307
- userCount: number;
308
- }>>;
309
- /**
310
- * Get cohort revenue analysis.
311
- */
312
- getCohortRevenue(config: CohortRevenueConfig): Promise<CohortRevenueResult>;
313
- /**
314
- * Get plan analysis.
315
- */
316
- getPlanAnalysis(config?: PlanAnalysisConfig): Promise<PlanAnalysis[]>;
317
- /**
318
- * Get revenue breakdown.
319
- */
320
- getRevenueBreakdown(config: RevenueBreakdownConfig): Promise<RevenueBreakdown>;
321
- /**
322
- * Get Net Revenue Retention.
323
- */
324
- getNRR(config?: NRRConfig): Promise<NRRResult>;
325
- /**
326
- * Get MRR.
327
- */
328
- getMRR(filter?: DateRangeFilter): Promise<MoneyValue>;
329
- /**
330
- * Get ARR.
331
- */
332
- getARR(filter?: DateRangeFilter): Promise<MoneyValue>;
333
- /**
334
- * Get revenue forecast.
335
- */
336
- getRevenueForecast(config: RevenueForecastConfig): Promise<RevenueForecast>;
337
- /**
338
- * Get monetization analytics.
339
- */
340
- getAnalytics(filter?: DateRangeFilter): Promise<MonetizationAnalytics>;
341
- /**
342
- * Get revenue trend.
343
- */
344
- getRevenueTrend(filter?: DateRangeFilter, granularity?: TimeGranularity): Promise<TimeSeriesData>;
345
- /**
346
- * Get MRR movement (waterfall).
347
- */
348
- getMRRMovement(filter?: DateRangeFilter): Promise<{
349
- starting: MoneyValue;
350
- newBusiness: MoneyValue;
351
- expansion: MoneyValue;
352
- contraction: MoneyValue;
353
- churn: MoneyValue;
354
- ending: MoneyValue;
355
- }>;
356
297
  }
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @fileoverview Enterprise - Revenue & Monetization Analytics
3
+ * @module features/enterprise/monetization
4
+ *
5
+ * @description
6
+ * Track detailed revenue and monetization KPIs including ARPU,
7
+ * cohort-based revenue, and pricing plan impact analysis.
8
+ *
9
+ * @useCases
10
+ * - Calculate ARPU/ARPA per segment
11
+ * - Track cohort-based revenue
12
+ * - Analyze pricing plan impact
13
+ * - Revenue forecasting
14
+ * - Expansion revenue tracking
15
+ *
16
+ * @metrics
17
+ * - ARPU (Average Revenue Per User)
18
+ * - ARPA (Average Revenue Per Account)
19
+ * - Revenue by cohort
20
+ * - Revenue by plan
21
+ * - Expansion revenue
22
+ * - Net Revenue Retention
23
+ *
24
+ * @chartData
25
+ * - Line chart: Revenue over time
26
+ * - Bar chart: Revenue by segment
27
+ * - Waterfall: Revenue movement
28
+ * - Cohort: Revenue retention
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const monetization = new Monetization(webId, endpoint, apiKey);
33
+ *
34
+ * // Get ARPU by segment
35
+ * const arpu = await monetization.getARPU({ segment: 'enterprise' });
36
+ *
37
+ * // Track revenue event
38
+ * await monetization.trackRevenue({
39
+ * userId: 'user_123',
40
+ * amount: 99.00,
41
+ * currency: 'USD',
42
+ * type: 'subscription'
43
+ * });
44
+ * ```
45
+ */
46
+ import { FlowGridTransport } from "../../client/transport";
47
+ // ============================================================================
48
+ // HELPER FUNCTIONS
49
+ // ============================================================================
50
+ /**
51
+ * Calculate ARPU from total revenue and user count.
52
+ */
53
+ export function calculateARPU(totalRevenue, userCount, currency) {
54
+ const arpu = userCount > 0 ? totalRevenue / userCount : 0;
55
+ return {
56
+ amount: Math.round(arpu * 100) / 100,
57
+ currency
58
+ };
59
+ }
60
+ /**
61
+ * Calculate Net Revenue Retention.
62
+ */
63
+ export function calculateNRR(startingMRR, expansion, contraction, churned) {
64
+ if (startingMRR === 0)
65
+ return 0;
66
+ return Math.round(((startingMRR + expansion - contraction - churned) / startingMRR) * 10000) / 100;
67
+ }
68
+ /**
69
+ * Calculate Gross Revenue Retention.
70
+ */
71
+ export function calculateGRR(startingMRR, contraction, churned) {
72
+ if (startingMRR === 0)
73
+ return 0;
74
+ return Math.round(((startingMRR - contraction - churned) / startingMRR) * 10000) / 100;
75
+ }
76
+ /**
77
+ * Convert monthly to annual revenue.
78
+ */
79
+ export function monthlyToAnnual(mrr) {
80
+ return {
81
+ amount: mrr.amount * 12,
82
+ currency: mrr.currency
83
+ };
84
+ }
85
+ /**
86
+ * Calculate LTV from ARPU and churn rate.
87
+ */
88
+ export function calculateLTV(arpu, monthlyChurnRate, currency) {
89
+ if (monthlyChurnRate <= 0) {
90
+ return { amount: arpu * 60, currency }; // Cap at 5 years
91
+ }
92
+ const ltv = arpu / monthlyChurnRate;
93
+ return {
94
+ amount: Math.round(ltv * 100) / 100,
95
+ currency
96
+ };
97
+ }
98
+ // ============================================================================
99
+ // MAIN CLASS
100
+ // ============================================================================
101
+ /**
102
+ * Revenue and monetization analytics class.
103
+ */
104
+ export class Monetization extends FlowGridTransport {
105
+ /**
106
+ * Track revenue event.
107
+ */
108
+ async trackRevenue(config) {
109
+ const { type: revenueType, ...restConfig } = config;
110
+ return await this.initFeature("monetization.revenue", {
111
+ type: "monetization",
112
+ revenueType,
113
+ ...restConfig,
114
+ timestamp: new Date().toISOString()
115
+ });
116
+ }
117
+ /**
118
+ * Track expansion revenue.
119
+ */
120
+ async trackExpansion(userId, fromPlan, toPlan, additionalRevenue) {
121
+ return await this.initFeature("monetization.expansion", {
122
+ type: "monetization",
123
+ userId,
124
+ fromPlan,
125
+ toPlan,
126
+ additionalRevenue,
127
+ revenueType: 'expansion',
128
+ timestamp: new Date().toISOString()
129
+ });
130
+ }
131
+ /**
132
+ * Track contraction/downgrade.
133
+ */
134
+ async trackContraction(userId, fromPlan, toPlan, reducedRevenue) {
135
+ return await this.initFeature("monetization.contraction", {
136
+ type: "monetization",
137
+ userId,
138
+ fromPlan,
139
+ toPlan,
140
+ reducedRevenue,
141
+ revenueType: 'downgrade',
142
+ timestamp: new Date().toISOString()
143
+ });
144
+ }
145
+ }
146
+ //# sourceMappingURL=monetization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monetization.js","sourceRoot":"","sources":["../../../../src/lib/features/enterprise/monetization.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@
41
41
  * ```
42
42
  */
43
43
  import { FlowGridTransport } from "../../client/transport";
44
- import { DateRangeFilter, TimeSeriesData, TimeGranularity } from "../../types";
44
+ import { DateRangeFilter } from "../../types";
45
45
  /**
46
46
  * Funnel path definition.
47
47
  */
@@ -299,22 +299,6 @@ export declare class MultiPathFunnels extends FlowGridTransport {
299
299
  * Get path comparison.
300
300
  */
301
301
  comparePaths(funnelId: string, filter?: DateRangeFilter): Promise<PathAnalysis[]>;
302
- /**
303
- * Get segment drop-off analysis.
304
- */
305
- getSegmentDropOff(funnelId: string, segmentAttribute: string, filter?: DateRangeFilter): Promise<SegmentDropOffAnalysis>;
306
- /**
307
- * Get user journey.
308
- */
309
- getUserJourney(config: UserJourneyConfig): Promise<UserJourney>;
310
- /**
311
- * Get micro-conversion analysis.
312
- */
313
- getMicroConversionAnalysis(funnelId: string, filter?: DateRangeFilter): Promise<MicroConversionAnalysis[]>;
314
- /**
315
- * Get funnel trend.
316
- */
317
- getFunnelTrend(funnelId: string, filter?: DateRangeFilter, granularity?: TimeGranularity): Promise<TimeSeriesData>;
318
302
  /**
319
303
  * List all funnels.
320
304
  */