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,205 @@
1
+ /**
2
+ * @fileoverview Enterprise - Multi-Path Funnels & Micro-Conversions
3
+ * @module features/enterprise/multi-path-funnels
4
+ *
5
+ * @description
6
+ * Track complex user journeys and micro-conversions with support
7
+ * for non-linear funnel analysis and segment-based drop-off.
8
+ *
9
+ * @useCases
10
+ * - Define multi-path funnels
11
+ * - Track micro-conversions
12
+ * - Analyze drop-off by segment
13
+ * - Non-linear journey tracking
14
+ * - Onboarding step analysis
15
+ *
16
+ * @metrics
17
+ * - Path completion rates
18
+ * - Micro-conversion rates
19
+ * - Drop-off by segment
20
+ * - Time between steps
21
+ * - Alternative path analysis
22
+ *
23
+ * @chartData
24
+ * - Sankey diagram: User flow paths
25
+ * - Funnel chart: Multi-path visualization
26
+ * - Heatmap: Drop-off by segment
27
+ * - Timeline: Step progression
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const funnels = new MultiPathFunnels(webId, endpoint, apiKey);
32
+ *
33
+ * // Define a multi-path funnel
34
+ * await funnels.defineFunnel({
35
+ * name: 'Onboarding',
36
+ * paths: [
37
+ * { steps: ['signup', 'profile', 'first_action'] },
38
+ * { steps: ['signup', 'skip_profile', 'first_action'] }
39
+ * ]
40
+ * });
41
+ * ```
42
+ */
43
+ import { FlowGridTransport } from "../../client/transport";
44
+ // ============================================================================
45
+ // HELPER FUNCTIONS
46
+ // ============================================================================
47
+ /**
48
+ * Calculate funnel conversion rate.
49
+ */
50
+ export function calculateConversionRate(entered, completed) {
51
+ if (entered === 0)
52
+ return 0;
53
+ return Math.round((completed / entered) * 10000) / 100;
54
+ }
55
+ /**
56
+ * Calculate drop-off rate between steps.
57
+ */
58
+ export function calculateDropOffRate(previousStep, currentStep) {
59
+ if (previousStep === 0)
60
+ return 0;
61
+ return Math.round(((previousStep - currentStep) / previousStep) * 10000) / 100;
62
+ }
63
+ /**
64
+ * Find the best performing path.
65
+ */
66
+ export function findBestPath(paths) {
67
+ if (paths.length === 0)
68
+ return null;
69
+ return paths.reduce((best, current) => current.completionRate > best.completionRate ? current : best);
70
+ }
71
+ /**
72
+ * Calculate weighted micro-conversion score.
73
+ */
74
+ export function calculateMicroConversionScore(completedConversions, definitions) {
75
+ let totalWeight = 0;
76
+ let weightedScore = 0;
77
+ for (const def of definitions) {
78
+ const weight = def.weight ?? 1;
79
+ totalWeight += weight;
80
+ const completed = completedConversions.find(c => c.id === def.id);
81
+ if (completed) {
82
+ weightedScore += weight * completed.completionRate;
83
+ }
84
+ }
85
+ return totalWeight > 0 ? Math.round((weightedScore / totalWeight) * 100) / 100 : 0;
86
+ }
87
+ /**
88
+ * Generate path ID from steps.
89
+ */
90
+ export function generatePathId(steps) {
91
+ return steps.join('_').toLowerCase().replace(/[^a-z0-9_]/g, '');
92
+ }
93
+ // ============================================================================
94
+ // MAIN CLASS
95
+ // ============================================================================
96
+ /**
97
+ * Multi-path funnels and micro-conversions class.
98
+ */
99
+ export class MultiPathFunnels extends FlowGridTransport {
100
+ /**
101
+ * Define a multi-path funnel.
102
+ */
103
+ async defineFunnel(definition) {
104
+ const funnelId = definition.funnelId ??
105
+ definition.name.toLowerCase().replace(/[^a-z0-9]+/g, '_');
106
+ const pathsWithIds = definition.paths.map(path => ({
107
+ ...path,
108
+ pathId: path.pathId ?? generatePathId(path.steps)
109
+ }));
110
+ return await this.initFeature("multi_path_funnels.define", {
111
+ type: "multi_path_funnels",
112
+ funnelId,
113
+ name: definition.name,
114
+ description: definition.description,
115
+ paths: pathsWithIds,
116
+ microConversions: definition.microConversions,
117
+ goalEvent: definition.goalEvent,
118
+ timestamp: new Date().toISOString()
119
+ });
120
+ }
121
+ /**
122
+ * Update funnel definition.
123
+ */
124
+ async updateFunnel(funnelId, updates) {
125
+ return await this.initFeature("multi_path_funnels.update", {
126
+ type: "multi_path_funnels",
127
+ funnelId,
128
+ ...updates,
129
+ timestamp: new Date().toISOString()
130
+ });
131
+ }
132
+ /**
133
+ * Delete funnel.
134
+ */
135
+ async deleteFunnel(funnelId) {
136
+ return await this.initFeature("multi_path_funnels.delete", {
137
+ type: "multi_path_funnels",
138
+ funnelId,
139
+ timestamp: new Date().toISOString()
140
+ });
141
+ }
142
+ /**
143
+ * Track funnel step.
144
+ */
145
+ async trackStep(config) {
146
+ return await this.initFeature("multi_path_funnels.track_step", {
147
+ type: "multi_path_funnels",
148
+ ...config,
149
+ timestamp: new Date().toISOString()
150
+ });
151
+ }
152
+ /**
153
+ * Track micro-conversion.
154
+ */
155
+ async trackMicroConversion(config) {
156
+ return await this.initFeature("multi_path_funnels.track_micro_conversion", {
157
+ type: "multi_path_funnels",
158
+ ...config,
159
+ timestamp: new Date().toISOString()
160
+ });
161
+ }
162
+ /**
163
+ * Track goal completion.
164
+ */
165
+ async trackGoal(funnelId, userId, properties) {
166
+ return await this.initFeature("multi_path_funnels.track_goal", {
167
+ type: "multi_path_funnels",
168
+ funnelId,
169
+ userId,
170
+ ...properties,
171
+ timestamp: new Date().toISOString()
172
+ });
173
+ }
174
+ /**
175
+ * Get funnel analysis.
176
+ */
177
+ async analyzeFunnel(config) {
178
+ return await this.initFeature("multi_path_funnels.analyze", {
179
+ type: "multi_path_funnels",
180
+ ...config,
181
+ timestamp: new Date().toISOString()
182
+ });
183
+ }
184
+ /**
185
+ * Get path comparison.
186
+ */
187
+ async comparePaths(funnelId, filter) {
188
+ return await this.initFeature("multi_path_funnels.compare_paths", {
189
+ type: "multi_path_funnels",
190
+ funnelId,
191
+ filter,
192
+ timestamp: new Date().toISOString()
193
+ });
194
+ }
195
+ /**
196
+ * List all funnels.
197
+ */
198
+ async listFunnels() {
199
+ return await this.initFeature("multi_path_funnels.list", {
200
+ type: "multi_path_funnels",
201
+ timestamp: new Date().toISOString()
202
+ });
203
+ }
204
+ }
205
+ //# sourceMappingURL=multi-path-funnels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-path-funnels.js","sourceRoot":"","sources":["../../../../src/lib/features/enterprise/multi-path-funnels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAgN3D,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,SAAiB;IACxE,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB,EAAE,WAAmB;IAC5E,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,YAAY,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACpC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,oBAA+C,EAC/C,WAAwC;IAExC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,WAAW,IAAI,MAAM,CAAC;QAEtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAAiB;IACrD;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAqC;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ;YAClC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjD,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;SAClD,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE;YACzD,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,KAAK,EAAE,YAAY;YACnB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;YAC7C,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,OAA2C;QAE3C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE;YACzD,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE;YACzD,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,+BAA+B,EAAE;YAC7D,IAAI,EAAE,oBAAoB;YAC1B,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAA6B;QACtD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,2CAA2C,EAAE;YACzE,IAAI,EAAE,oBAAoB;YAC1B,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,QAAgB,EAChB,MAAc,EACd,UAAoC;QAEpC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,+BAA+B,EAAE;YAC7D,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,MAAM;YACN,GAAG,UAAU;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAA4B;QAC9C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE;YAC1D,IAAI,EAAE,oBAAoB;YAC1B,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,MAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,kCAAkC,EAAE;YAChE,IAAI,EAAE,oBAAoB;YAC1B,QAAQ;YACR,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QAMf,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE;YACvD,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -39,7 +39,7 @@
39
39
  * ```
40
40
  */
41
41
  import { FlowGridTransport } from "../../client/transport";
42
- import { DateRangeFilter, TimeSeriesData, TimeGranularity } from "../../types";
42
+ import { DateRangeFilter } from "../../types";
43
43
  /**
44
44
  * Screen/page transition configuration.
45
45
  */
@@ -270,63 +270,8 @@ export declare class PathAnalytics extends FlowGridTransport {
270
270
  definePath(definition: PathDefinition): Promise<{
271
271
  pathId: string;
272
272
  }>;
273
- /**
274
- * Get top paths.
275
- */
276
- getTopPaths(config?: PathAnalysisConfig): Promise<PathResult[]>;
277
- /**
278
- * Get paths between screens.
279
- */
280
- getPathsBetween(startScreen: string, endScreen: string, filter?: DateRangeFilter, limit?: number): Promise<PathResult[]>;
281
- /**
282
- * Get dead-end screens.
283
- */
284
- getDeadEnds(filter?: DateRangeFilter, intendedEndPoints?: string[]): Promise<DeadEndScreen[]>;
285
- /**
286
- * Get transition matrix.
287
- */
288
- getTransitionMatrix(filter?: DateRangeFilter): Promise<TransitionMatrix>;
289
- /**
290
- * Get user journey.
291
- */
292
- getUserJourney(config: UserJourneyConfig): Promise<UserJourney>;
293
- /**
294
- * Get friction points.
295
- */
296
- getFrictionPoints(filter?: DateRangeFilter): Promise<FrictionPoint[]>;
297
273
  /**
298
274
  * Compare paths.
299
275
  */
300
276
  comparePaths(paths: string[][], filter?: DateRangeFilter): Promise<PathComparison>;
301
- /**
302
- * Get screen analytics.
303
- */
304
- getScreenAnalytics(screen: string, filter?: DateRangeFilter): Promise<{
305
- screen: string;
306
- visits: number;
307
- uniqueUsers: number;
308
- avgTimeSpentMs: number;
309
- exitRate: number;
310
- entryRate: number;
311
- topNextScreens: Array<{
312
- screen: string;
313
- count: number;
314
- }>;
315
- topPreviousScreens: Array<{
316
- screen: string;
317
- count: number;
318
- }>;
319
- }>;
320
- /**
321
- * Get path trend.
322
- */
323
- getPathTrend(path: string[], filter?: DateRangeFilter, granularity?: TimeGranularity): Promise<TimeSeriesData>;
324
- /**
325
- * Get feature usage sequences.
326
- */
327
- getFeatureSequences(filter?: DateRangeFilter, limit?: number): Promise<Array<{
328
- sequence: string[];
329
- userCount: number;
330
- avgTimeMs: number;
331
- }>>;
332
277
  }
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @fileoverview Enterprise - Behavioral Analytics & Path Analysis
3
+ * @module features/enterprise/paths
4
+ *
5
+ * @description
6
+ * Track full user navigation and feature usage sequences.
7
+ * Identify common paths, dead-ends, and UX friction points.
8
+ *
9
+ * @useCases
10
+ * - Sequence analysis of feature usage
11
+ * - Dead-end screen detection
12
+ * - Most common path identification
13
+ * - User journey mapping
14
+ * - UX friction detection
15
+ *
16
+ * @metrics
17
+ * - Path frequency
18
+ * - Path completion rate
19
+ * - Dead-end rate
20
+ * - Average path length
21
+ * - Time per path
22
+ *
23
+ * @chartData
24
+ * - Sankey diagram: User flow
25
+ * - Tree map: Path distribution
26
+ * - Heatmap: Screen transitions
27
+ * - Timeline: User journeys
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const paths = new PathAnalytics(webId, endpoint, apiKey);
32
+ *
33
+ * // Track screen/page transition
34
+ * await paths.trackTransition({
35
+ * userId: 'user_123',
36
+ * fromScreen: 'dashboard',
37
+ * toScreen: 'settings'
38
+ * });
39
+ * ```
40
+ */
41
+ import { FlowGridTransport } from "../../client/transport";
42
+ // ============================================================================
43
+ // HELPER FUNCTIONS
44
+ // ============================================================================
45
+ /**
46
+ * Convert path array to string identifier.
47
+ */
48
+ export function pathToString(path) {
49
+ return path.join(' → ');
50
+ }
51
+ /**
52
+ * Convert string identifier to path array.
53
+ */
54
+ export function stringToPath(pathString) {
55
+ return pathString.split(' → ').map(s => s.trim());
56
+ }
57
+ /**
58
+ * Calculate exit rate.
59
+ */
60
+ export function calculateExitRate(exits, entries) {
61
+ if (entries === 0)
62
+ return 0;
63
+ return Math.round((exits / entries) * 10000) / 100;
64
+ }
65
+ /**
66
+ * Identify if a screen is a dead-end.
67
+ */
68
+ export function isDeadEnd(exitRate, isIntendedEndPoint, threshold = 50) {
69
+ return exitRate > threshold && !isIntendedEndPoint;
70
+ }
71
+ /**
72
+ * Calculate path similarity (Jaccard index).
73
+ */
74
+ export function calculatePathSimilarity(path1, path2) {
75
+ const set1 = new Set(path1);
76
+ const set2 = new Set(path2);
77
+ const intersection = new Set([...set1].filter(x => set2.has(x)));
78
+ const union = new Set([...set1, ...set2]);
79
+ return intersection.size / union.size;
80
+ }
81
+ /**
82
+ * Find common sub-paths.
83
+ */
84
+ export function findCommonSubPaths(paths, minLength = 2) {
85
+ const subPathCounts = new Map();
86
+ for (const path of paths) {
87
+ for (let i = 0; i <= path.length - minLength; i++) {
88
+ for (let j = i + minLength; j <= path.length; j++) {
89
+ const subPath = path.slice(i, j);
90
+ const key = pathToString(subPath);
91
+ subPathCounts.set(key, (subPathCounts.get(key) ?? 0) + 1);
92
+ }
93
+ }
94
+ }
95
+ return Array.from(subPathCounts.entries())
96
+ .filter(([, count]) => count > 1)
97
+ .map(([key, count]) => ({ subPath: stringToPath(key), count }))
98
+ .sort((a, b) => b.count - a.count);
99
+ }
100
+ // ============================================================================
101
+ // MAIN CLASS
102
+ // ============================================================================
103
+ /**
104
+ * Behavioral analytics and path analysis class.
105
+ */
106
+ export class PathAnalytics extends FlowGridTransport {
107
+ /**
108
+ * Track screen/page transition.
109
+ */
110
+ async trackTransition(config) {
111
+ return await this.initFeature("paths.transition", {
112
+ type: "paths",
113
+ ...config,
114
+ timestamp: new Date().toISOString()
115
+ });
116
+ }
117
+ /**
118
+ * Track feature sequence.
119
+ */
120
+ async trackFeatureSequence(config) {
121
+ return await this.initFeature("paths.feature_sequence", {
122
+ type: "paths",
123
+ ...config,
124
+ timestamp: new Date().toISOString()
125
+ });
126
+ }
127
+ /**
128
+ * Define a path for tracking.
129
+ */
130
+ async definePath(definition) {
131
+ return await this.initFeature("paths.define_path", {
132
+ type: "paths",
133
+ ...definition,
134
+ timestamp: new Date().toISOString()
135
+ });
136
+ }
137
+ /**
138
+ * Compare paths.
139
+ */
140
+ async comparePaths(paths, filter) {
141
+ return await this.initFeature("paths.compare_paths", {
142
+ type: "paths",
143
+ paths,
144
+ filter,
145
+ timestamp: new Date().toISOString()
146
+ });
147
+ }
148
+ }
149
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../../src/lib/features/enterprise/paths.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@
39
39
  * ```
40
40
  */
41
41
  import { FlowGridTransport } from "../../client/transport";
42
- import { DateRangeFilter, TimeSeriesData, TimeGranularity } from "../../types";
42
+ import { DateRangeFilter, TimeSeriesData } from "../../types";
43
43
  /**
44
44
  * Security event types.
45
45
  */
@@ -71,6 +71,8 @@ export interface LoginAttemptConfig {
71
71
  };
72
72
  /** MFA used */
73
73
  mfaUsed?: boolean;
74
+ /** Custom properties */
75
+ properties?: Record<string, unknown>;
74
76
  }
75
77
  /**
76
78
  * Role change configuration.
@@ -118,6 +120,8 @@ export interface DataAccessConfig {
118
120
  ipAddress?: string;
119
121
  /** Query/filter used */
120
122
  query?: Record<string, unknown>;
123
+ /** Custom properties */
124
+ properties?: Record<string, unknown>;
121
125
  }
122
126
  /**
123
127
  * Compliance event configuration.
@@ -135,6 +139,8 @@ export interface ComplianceEventConfig {
135
139
  consentScope?: string[];
136
140
  /** Request ID (for data requests) */
137
141
  requestId?: string;
142
+ /** Custom properties */
143
+ properties?: Record<string, unknown>;
138
144
  }
139
145
  /**
140
146
  * Audit log entry.
@@ -202,7 +208,7 @@ export interface SecurityRiskAssessment {
202
208
  /**
203
209
  * Security analytics result.
204
210
  */
205
- export interface SecurityAnalytics {
211
+ export interface SecurityAnalyticsResult {
206
212
  /** Total security events */
207
213
  totalEvents: number;
208
214
  /** Failed login count */
@@ -329,59 +335,4 @@ export declare class SecurityAnalytics extends FlowGridTransport {
329
335
  trackComplianceEvent(config: ComplianceEventConfig): Promise<{
330
336
  tracked: boolean;
331
337
  }>;
332
- /**
333
- * Get audit log.
334
- */
335
- getAuditLog(filter?: SecurityAnalyticsFilter, limit?: number): Promise<{
336
- entries: AuditLogEntry[];
337
- total: number;
338
- }>;
339
- /**
340
- * Get user risk assessment.
341
- */
342
- getUserRiskAssessment(userId: string): Promise<SecurityRiskAssessment>;
343
- /**
344
- * Get high risk users.
345
- */
346
- getHighRiskUsers(minScore?: number, limit?: number): Promise<SecurityRiskAssessment[]>;
347
- /**
348
- * Get security analytics.
349
- */
350
- getAnalytics(filter?: SecurityAnalyticsFilter): Promise<SecurityAnalytics>;
351
- /**
352
- * Get compliance report.
353
- */
354
- getComplianceReport(regulation: 'GDPR' | 'CCPA' | 'HIPAA' | 'SOC2', filter?: DateRangeFilter): Promise<ComplianceReport>;
355
- /**
356
- * Get login analytics.
357
- */
358
- getLoginAnalytics(filter?: DateRangeFilter): Promise<{
359
- totalAttempts: number;
360
- successful: number;
361
- failed: number;
362
- failedRate: number;
363
- uniqueUsers: number;
364
- byLocation: Array<{
365
- location: string;
366
- count: number;
367
- }>;
368
- byDevice: Array<{
369
- device: string;
370
- count: number;
371
- }>;
372
- trend: TimeSeriesData;
373
- }>;
374
- /**
375
- * Get security trend.
376
- */
377
- getSecurityTrend(filter?: SecurityAnalyticsFilter, granularity?: TimeGranularity): Promise<TimeSeriesData>;
378
- /**
379
- * Get data access patterns.
380
- */
381
- getDataAccessPatterns(userId?: string, filter?: DateRangeFilter): Promise<Array<{
382
- resourceType: string;
383
- accessCount: number;
384
- uniqueUsers: number;
385
- lastAccess: string;
386
- }>>;
387
338
  }