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.
- package/README.md +221 -250
- package/dist/237.flowgrid.min.js +2 -0
- package/dist/237.flowgrid.min.js.map +1 -0
- package/dist/546.flowgrid.min.js +3 -0
- package/dist/546.flowgrid.min.js.LICENSE.txt +14 -0
- package/dist/546.flowgrid.min.js.map +1 -0
- package/dist/EXAMPLE.d.ts +1 -0
- package/dist/EXAMPLE.js +55 -0
- package/dist/EXAMPLE.js.map +1 -0
- package/dist/browser.d.ts +46 -103
- package/dist/browser.js +102 -0
- package/dist/browser.js.map +1 -0
- package/dist/flowgrid.min.js +1 -1
- package/dist/flowgrid.min.js.map +1 -1
- package/dist/index.d.ts +7 -8
- package/dist/index.js +64 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/client/transport.d.ts +14 -4
- package/dist/lib/client/transport.js +432 -0
- package/dist/lib/client/transport.js.map +1 -0
- package/dist/lib/consent/index.d.ts +0 -5
- package/dist/lib/consent/index.js +32 -0
- package/dist/lib/consent/index.js.map +1 -0
- package/dist/lib/consent/manager.js +336 -0
- package/dist/lib/consent/manager.js.map +1 -0
- package/dist/lib/consent/types.d.ts +3 -20
- package/dist/lib/consent/types.js +10 -0
- package/dist/lib/consent/types.js.map +1 -0
- package/dist/lib/features/analytics/attribution.d.ts +6 -47
- package/dist/lib/features/analytics/attribution.js +181 -0
- package/dist/lib/features/analytics/attribution.js.map +1 -0
- package/dist/lib/features/analytics/events.d.ts +1 -28
- package/dist/lib/features/analytics/events.js +256 -0
- package/dist/lib/features/analytics/events.js.map +1 -0
- package/dist/lib/features/analytics/funnels.js +260 -0
- package/dist/lib/features/analytics/funnels.js.map +1 -0
- package/dist/lib/features/analytics/heatmaps.d.ts +12 -19
- package/dist/lib/features/analytics/heatmaps.js +258 -0
- package/dist/lib/features/analytics/heatmaps.js.map +1 -0
- package/dist/lib/features/analytics/identify.d.ts +1 -21
- package/dist/lib/features/analytics/identify.js +213 -0
- package/dist/lib/features/analytics/identify.js.map +1 -0
- package/dist/lib/features/analytics/index.d.ts +2 -0
- package/dist/lib/features/analytics/index.js +15 -0
- package/dist/lib/features/analytics/index.js.map +1 -0
- package/dist/lib/features/analytics/page-views.d.ts +13 -30
- package/dist/lib/features/analytics/page-views.js +268 -0
- package/dist/lib/features/analytics/page-views.js.map +1 -0
- package/dist/lib/features/analytics/performance.d.ts +18 -24
- package/dist/lib/features/analytics/performance.js +232 -0
- package/dist/lib/features/analytics/performance.js.map +1 -0
- package/dist/lib/features/analytics/replay.d.ts +170 -0
- package/dist/lib/features/analytics/replay.js +381 -0
- package/dist/lib/features/analytics/replay.js.map +1 -0
- package/dist/lib/features/analytics/retention.d.ts +1 -76
- package/dist/lib/features/analytics/retention.js +135 -0
- package/dist/lib/features/analytics/retention.js.map +1 -0
- package/dist/lib/features/analytics/sessions.d.ts +12 -37
- package/dist/lib/features/analytics/sessions.js +213 -0
- package/dist/lib/features/analytics/sessions.js.map +1 -0
- package/dist/lib/features/core/activation.d.ts +1 -24
- package/dist/lib/features/core/activation.js +175 -0
- package/dist/lib/features/core/activation.js.map +1 -0
- package/dist/lib/features/core/experiment.d.ts +53 -21
- package/dist/lib/features/core/experiment.js +554 -0
- package/dist/lib/features/core/experiment.js.map +1 -0
- package/dist/lib/features/core/index.js +9 -0
- package/dist/lib/features/core/index.js.map +1 -0
- package/dist/lib/features/core/track-feature.d.ts +1 -8
- package/dist/lib/features/core/track-feature.js +119 -0
- package/dist/lib/features/core/track-feature.js.map +1 -0
- package/dist/lib/features/core/track-prompt.d.ts +5 -8
- package/dist/lib/features/core/track-prompt.js +181 -0
- package/dist/lib/features/core/track-prompt.js.map +1 -0
- package/dist/lib/features/ecommerce/cart.d.ts +1 -24
- package/dist/lib/features/ecommerce/cart.js +244 -0
- package/dist/lib/features/ecommerce/cart.js.map +1 -0
- package/dist/lib/features/ecommerce/checkout.d.ts +1 -28
- package/dist/lib/features/ecommerce/checkout.js +254 -0
- package/dist/lib/features/ecommerce/checkout.js.map +1 -0
- package/dist/lib/features/ecommerce/index.d.ts +0 -2
- package/dist/lib/features/ecommerce/index.js +15 -0
- package/dist/lib/features/ecommerce/index.js.map +1 -0
- package/dist/lib/features/ecommerce/ltv.d.ts +1 -69
- package/dist/lib/features/ecommerce/ltv.js +114 -0
- package/dist/lib/features/ecommerce/ltv.js.map +1 -0
- package/dist/lib/features/ecommerce/products.d.ts +1 -33
- package/dist/lib/features/ecommerce/products.js +223 -0
- package/dist/lib/features/ecommerce/products.js.map +1 -0
- package/dist/lib/features/ecommerce/promotions.d.ts +1 -30
- package/dist/lib/features/ecommerce/promotions.js +197 -0
- package/dist/lib/features/ecommerce/promotions.js.map +1 -0
- package/dist/lib/features/ecommerce/purchases.d.ts +1 -48
- package/dist/lib/features/ecommerce/purchases.js +193 -0
- package/dist/lib/features/ecommerce/purchases.js.map +1 -0
- package/dist/lib/features/ecommerce/refunds.d.ts +1 -27
- package/dist/lib/features/ecommerce/refunds.js +195 -0
- package/dist/lib/features/ecommerce/refunds.js.map +1 -0
- package/dist/lib/features/ecommerce/search.d.ts +1 -24
- package/dist/lib/features/ecommerce/search.js +156 -0
- package/dist/lib/features/ecommerce/search.js.map +1 -0
- package/dist/lib/features/ecommerce/subscriptions.d.ts +1 -28
- package/dist/lib/features/ecommerce/subscriptions.js +207 -0
- package/dist/lib/features/ecommerce/subscriptions.js.map +1 -0
- package/dist/lib/features/ecommerce/wishlist.d.ts +1 -28
- package/dist/lib/features/ecommerce/wishlist.js +186 -0
- package/dist/lib/features/ecommerce/wishlist.js.map +1 -0
- package/dist/lib/features/enterprise/acquisition.d.ts +2 -57
- package/dist/lib/features/enterprise/acquisition.js +166 -0
- package/dist/lib/features/enterprise/acquisition.js.map +1 -0
- package/dist/lib/features/enterprise/alerts.d.ts +1 -37
- package/dist/lib/features/enterprise/alerts.js +246 -0
- package/dist/lib/features/enterprise/alerts.js.map +1 -0
- package/dist/lib/features/enterprise/churn.d.ts +1 -42
- package/dist/lib/features/enterprise/churn.js +175 -0
- package/dist/lib/features/enterprise/churn.js.map +1 -0
- package/dist/lib/features/enterprise/cohorts.d.ts +1 -37
- package/dist/lib/features/enterprise/cohorts.js +201 -0
- package/dist/lib/features/enterprise/cohorts.js.map +1 -0
- package/dist/lib/features/enterprise/engagement.d.ts +40 -46
- package/dist/lib/features/enterprise/engagement.js +335 -0
- package/dist/lib/features/enterprise/engagement.js.map +1 -0
- package/dist/lib/features/enterprise/forecasting.d.ts +0 -50
- package/dist/lib/features/enterprise/forecasting.js +232 -0
- package/dist/lib/features/enterprise/forecasting.js.map +1 -0
- package/dist/lib/features/enterprise/index.d.ts +1 -1
- package/dist/lib/features/enterprise/index.js +76 -0
- package/dist/lib/features/enterprise/index.js.map +1 -0
- package/dist/lib/features/enterprise/monetization.d.ts +1 -60
- package/dist/lib/features/enterprise/monetization.js +146 -0
- package/dist/lib/features/enterprise/monetization.js.map +1 -0
- package/dist/lib/features/enterprise/multi-path-funnels.d.ts +1 -17
- package/dist/lib/features/enterprise/multi-path-funnels.js +205 -0
- package/dist/lib/features/enterprise/multi-path-funnels.js.map +1 -0
- package/dist/lib/features/enterprise/paths.d.ts +1 -56
- package/dist/lib/features/enterprise/paths.js +149 -0
- package/dist/lib/features/enterprise/paths.js.map +1 -0
- package/dist/lib/features/enterprise/security.d.ts +8 -57
- package/dist/lib/features/enterprise/security.js +202 -0
- package/dist/lib/features/enterprise/security.js.map +1 -0
- package/dist/lib/features/enterprise/support.d.ts +3 -42
- package/dist/lib/features/enterprise/support.js +162 -0
- package/dist/lib/features/enterprise/support.js.map +1 -0
- package/dist/lib/flowgrid.d.ts +278 -0
- package/dist/lib/flowgrid.js +323 -0
- package/dist/lib/flowgrid.js.map +1 -0
- package/dist/lib/frameworks/index.d.ts +13 -6
- package/dist/lib/frameworks/index.js +18 -0
- package/dist/lib/frameworks/index.js.map +1 -0
- package/dist/lib/frameworks/nextjs/client.js +355 -0
- package/dist/lib/frameworks/nextjs/client.js.map +1 -0
- package/dist/lib/frameworks/nextjs/index.js +31 -0
- package/dist/lib/frameworks/nextjs/index.js.map +1 -0
- package/dist/lib/frameworks/nextjs/server.js +259 -0
- package/dist/lib/frameworks/nextjs/server.js.map +1 -0
- package/dist/lib/frameworks/node/index.js +391 -0
- package/dist/lib/frameworks/node/index.js.map +1 -0
- package/dist/lib/frameworks/nuxt/index.js +288 -0
- package/dist/lib/frameworks/nuxt/index.js.map +1 -0
- package/dist/lib/frameworks/react/CookieBanner.js +166 -0
- package/dist/lib/frameworks/react/CookieBanner.js.map +1 -0
- package/dist/lib/frameworks/react/index.js +271 -0
- package/dist/lib/frameworks/react/index.js.map +1 -0
- package/dist/lib/frameworks/vue/CookieBanner.js +165 -0
- package/dist/lib/frameworks/vue/CookieBanner.js.map +1 -0
- package/dist/lib/frameworks/vue/index.js +390 -0
- package/dist/lib/frameworks/vue/index.js.map +1 -0
- package/dist/lib/tracking/analytics/attribution.d.ts +14 -0
- package/dist/lib/tracking/analytics/attribution.js +18 -0
- package/dist/lib/tracking/analytics/attribution.js.map +1 -0
- package/dist/lib/tracking/analytics/events.d.ts +26 -0
- package/dist/lib/tracking/analytics/events.js +30 -0
- package/dist/lib/tracking/analytics/events.js.map +1 -0
- package/dist/lib/tracking/analytics/funnels.d.ts +16 -0
- package/dist/lib/tracking/analytics/funnels.js +22 -0
- package/dist/lib/tracking/analytics/funnels.js.map +1 -0
- package/dist/lib/tracking/analytics/heatmaps.d.ts +27 -0
- package/dist/lib/tracking/analytics/heatmaps.js +22 -0
- package/dist/lib/tracking/analytics/heatmaps.js.map +1 -0
- package/dist/lib/tracking/analytics/identify.d.ts +16 -0
- package/dist/lib/tracking/analytics/identify.js +22 -0
- package/dist/lib/tracking/analytics/identify.js.map +1 -0
- package/dist/lib/tracking/analytics/index.d.ts +10 -0
- package/dist/lib/tracking/analytics/index.js +11 -0
- package/dist/lib/tracking/analytics/index.js.map +1 -0
- package/dist/lib/tracking/analytics/page-views.d.ts +29 -0
- package/dist/lib/tracking/analytics/page-views.js +50 -0
- package/dist/lib/tracking/analytics/page-views.js.map +1 -0
- package/dist/lib/tracking/analytics/performance.d.ts +22 -0
- package/dist/lib/tracking/analytics/performance.js +22 -0
- package/dist/lib/tracking/analytics/performance.js.map +1 -0
- package/dist/lib/tracking/analytics/replay.d.ts +34 -0
- package/dist/lib/tracking/analytics/replay.js +46 -0
- package/dist/lib/tracking/analytics/replay.js.map +1 -0
- package/dist/lib/tracking/analytics/retention.d.ts +10 -0
- package/dist/lib/tracking/analytics/retention.js +10 -0
- package/dist/lib/tracking/analytics/retention.js.map +1 -0
- package/dist/lib/tracking/analytics/sessions.d.ts +20 -0
- package/dist/lib/tracking/analytics/sessions.js +26 -0
- package/dist/lib/tracking/analytics/sessions.js.map +1 -0
- package/dist/lib/tracking/core/activation.d.ts +23 -0
- package/dist/lib/tracking/core/activation.js +33 -0
- package/dist/lib/tracking/core/activation.js.map +1 -0
- package/dist/lib/tracking/core/experiment.d.ts +122 -0
- package/dist/lib/tracking/core/experiment.js +150 -0
- package/dist/lib/tracking/core/experiment.js.map +1 -0
- package/dist/lib/tracking/core/feature.d.ts +13 -0
- package/dist/lib/tracking/core/feature.js +14 -0
- package/dist/lib/tracking/core/feature.js.map +1 -0
- package/dist/lib/tracking/core/index.d.ts +4 -0
- package/dist/lib/tracking/core/index.js +5 -0
- package/dist/lib/tracking/core/index.js.map +1 -0
- package/dist/lib/tracking/core/prompt.d.ts +18 -0
- package/dist/lib/tracking/core/prompt.js +26 -0
- package/dist/lib/tracking/core/prompt.js.map +1 -0
- package/dist/lib/tracking/ecommerce/cart.d.ts +17 -0
- package/dist/lib/tracking/ecommerce/cart.js +22 -0
- package/dist/lib/tracking/ecommerce/cart.js.map +1 -0
- package/dist/lib/tracking/ecommerce/checkout.d.ts +17 -0
- package/dist/lib/tracking/ecommerce/checkout.js +22 -0
- package/dist/lib/tracking/ecommerce/checkout.js.map +1 -0
- package/dist/lib/tracking/ecommerce/index.d.ts +10 -0
- package/dist/lib/tracking/ecommerce/index.js +11 -0
- package/dist/lib/tracking/ecommerce/index.js.map +1 -0
- package/dist/lib/tracking/ecommerce/ltv.d.ts +15 -0
- package/dist/lib/tracking/ecommerce/ltv.js +14 -0
- package/dist/lib/tracking/ecommerce/ltv.js.map +1 -0
- package/dist/lib/tracking/ecommerce/products.d.ts +15 -0
- package/dist/lib/tracking/ecommerce/products.js +18 -0
- package/dist/lib/tracking/ecommerce/products.js.map +1 -0
- package/dist/lib/tracking/ecommerce/promotions.d.ts +14 -0
- package/dist/lib/tracking/ecommerce/promotions.js +25 -0
- package/dist/lib/tracking/ecommerce/promotions.js.map +1 -0
- package/dist/lib/tracking/ecommerce/purchases.d.ts +11 -0
- package/dist/lib/tracking/ecommerce/purchases.js +10 -0
- package/dist/lib/tracking/ecommerce/purchases.js.map +1 -0
- package/dist/lib/tracking/ecommerce/refunds.d.ts +17 -0
- package/dist/lib/tracking/ecommerce/refunds.js +22 -0
- package/dist/lib/tracking/ecommerce/refunds.js.map +1 -0
- package/dist/lib/tracking/ecommerce/search.d.ts +24 -0
- package/dist/lib/tracking/ecommerce/search.js +22 -0
- package/dist/lib/tracking/ecommerce/search.js.map +1 -0
- package/dist/lib/tracking/ecommerce/subscriptions.d.ts +21 -0
- package/dist/lib/tracking/ecommerce/subscriptions.js +38 -0
- package/dist/lib/tracking/ecommerce/subscriptions.js.map +1 -0
- package/dist/lib/tracking/ecommerce/wishlist.d.ts +19 -0
- package/dist/lib/tracking/ecommerce/wishlist.js +26 -0
- package/dist/lib/tracking/ecommerce/wishlist.js.map +1 -0
- package/dist/lib/tracking/enterprise/acquisition.d.ts +25 -0
- package/dist/lib/tracking/enterprise/acquisition.js +22 -0
- package/dist/lib/tracking/enterprise/acquisition.js.map +1 -0
- package/dist/lib/tracking/enterprise/alerts.d.ts +32 -0
- package/dist/lib/tracking/enterprise/alerts.js +30 -0
- package/dist/lib/tracking/enterprise/alerts.js.map +1 -0
- package/dist/lib/tracking/enterprise/churn.d.ts +23 -0
- package/dist/lib/tracking/enterprise/churn.js +22 -0
- package/dist/lib/tracking/enterprise/churn.js.map +1 -0
- package/dist/lib/tracking/enterprise/cohorts.d.ts +18 -0
- package/dist/lib/tracking/enterprise/cohorts.js +18 -0
- package/dist/lib/tracking/enterprise/cohorts.js.map +1 -0
- package/dist/lib/tracking/enterprise/engagement.d.ts +31 -0
- package/dist/lib/tracking/enterprise/engagement.js +44 -0
- package/dist/lib/tracking/enterprise/engagement.js.map +1 -0
- package/dist/lib/tracking/enterprise/forecasting.d.ts +18 -0
- package/dist/lib/tracking/enterprise/forecasting.js +22 -0
- package/dist/lib/tracking/enterprise/forecasting.js.map +1 -0
- package/dist/lib/tracking/enterprise/index.d.ts +11 -0
- package/dist/lib/tracking/enterprise/index.js +12 -0
- package/dist/lib/tracking/enterprise/index.js.map +1 -0
- package/dist/lib/tracking/enterprise/monetization.d.ts +14 -0
- package/dist/lib/tracking/enterprise/monetization.js +10 -0
- package/dist/lib/tracking/enterprise/monetization.js.map +1 -0
- package/dist/lib/tracking/enterprise/multi-path-funnels.d.ts +20 -0
- package/dist/lib/tracking/enterprise/multi-path-funnels.js +18 -0
- package/dist/lib/tracking/enterprise/multi-path-funnels.js.map +1 -0
- package/dist/lib/tracking/enterprise/paths.d.ts +20 -0
- package/dist/lib/tracking/enterprise/paths.js +18 -0
- package/dist/lib/tracking/enterprise/paths.js.map +1 -0
- package/dist/lib/tracking/enterprise/security.d.ts +28 -0
- package/dist/lib/tracking/enterprise/security.js +26 -0
- package/dist/lib/tracking/enterprise/security.js.map +1 -0
- package/dist/lib/tracking/enterprise/support.d.ts +25 -0
- package/dist/lib/tracking/enterprise/support.js +22 -0
- package/dist/lib/tracking/enterprise/support.js.map +1 -0
- package/dist/lib/tracking/index.d.ts +4 -0
- package/dist/lib/tracking/index.js +5 -0
- package/dist/lib/tracking/index.js.map +1 -0
- package/dist/lib/types/analytics.d.ts +10 -2
- package/dist/lib/types/analytics.js +6 -0
- package/dist/lib/types/analytics.js.map +1 -0
- package/dist/lib/types/common.js +6 -0
- package/dist/lib/types/common.js.map +1 -0
- package/dist/lib/types/ecommerce.js +6 -0
- package/dist/lib/types/ecommerce.js.map +1 -0
- package/dist/lib/types/index.js +8 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/utils/browser.d.ts +16 -0
- package/dist/lib/utils/browser.js +32 -0
- package/dist/lib/utils/browser.js.map +1 -0
- package/dist/lib/utils/identity.js +346 -0
- package/dist/lib/utils/identity.js.map +1 -0
- package/dist/lib/utils/storage.js +105 -0
- package/dist/lib/utils/storage.js.map +1 -0
- package/dist/umd/237.index.js +2 -0
- package/dist/umd/237.index.js.map +1 -0
- package/dist/umd/546.index.js +3 -0
- package/dist/umd/546.index.js.LICENSE.txt +14 -0
- package/dist/umd/546.index.js.map +1 -0
- package/dist/umd/index.js +2 -0
- package/dist/umd/index.js.map +1 -0
- package/package.json +27 -80
- package/dist/lib/features/ecommerce/inventory.d.ts +0 -219
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../../../src/lib/features/core/experiment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Core features barrel export
|
|
3
|
+
* @module features/core
|
|
4
|
+
*/
|
|
5
|
+
export { Activation } from './activation';
|
|
6
|
+
export { TrackFeature } from './track-feature';
|
|
7
|
+
export { TrackPrompt } from './track-prompt';
|
|
8
|
+
export { Experiment } from './experiment';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/features/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
import { FlowGridTransport } from "../../client/transport";
|
|
41
|
-
import {
|
|
41
|
+
import { TimeSeriesData } from "../../types";
|
|
42
42
|
type FeatureConfigProperties = {
|
|
43
43
|
featureId?: string;
|
|
44
44
|
featureName: string;
|
|
@@ -191,12 +191,5 @@ export declare class TrackFeature extends FlowGridTransport {
|
|
|
191
191
|
* @returns Promise resolving to feature response
|
|
192
192
|
*/
|
|
193
193
|
trackUsage(config: FeatureUsageConfig): Promise<FeatureResponse>;
|
|
194
|
-
/**
|
|
195
|
-
* Gets feature analytics for dashboards.
|
|
196
|
-
*
|
|
197
|
-
* @param filter - Date range filter
|
|
198
|
-
* @returns Promise resolving to feature analytics
|
|
199
|
-
*/
|
|
200
|
-
getAnalytics(filter?: DateRangeFilter): Promise<FeatureAnalyticsData>;
|
|
201
194
|
}
|
|
202
195
|
export default TrackFeature;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Core - Feature Usage Tracking
|
|
3
|
+
* @module features/core/track-feature
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Track feature usage events to understand how users
|
|
7
|
+
* interact with different parts of your product.
|
|
8
|
+
*
|
|
9
|
+
* @useCases
|
|
10
|
+
* - Track feature adoption rates
|
|
11
|
+
* - Measure feature engagement
|
|
12
|
+
* - Identify power users
|
|
13
|
+
* - Prioritize feature development
|
|
14
|
+
* - Detect underused features
|
|
15
|
+
*
|
|
16
|
+
* @metrics
|
|
17
|
+
* - Feature adoption rate
|
|
18
|
+
* - Feature usage frequency
|
|
19
|
+
* - Users per feature
|
|
20
|
+
* - Feature stickiness
|
|
21
|
+
* - Time spent per feature
|
|
22
|
+
*
|
|
23
|
+
* @chartData
|
|
24
|
+
* - Bar chart: Most used features
|
|
25
|
+
* - Heatmap: Feature usage by user segment
|
|
26
|
+
* - Line chart: Feature adoption over time
|
|
27
|
+
* - Table: Feature engagement metrics
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const trackFeature = new TrackFeature(webId, endpoint, apiKey);
|
|
32
|
+
*
|
|
33
|
+
* await trackFeature.create({
|
|
34
|
+
* userId: 'user_123',
|
|
35
|
+
* action: 'export_report',
|
|
36
|
+
* properties: { featureName: 'export_report', featureId: 'export_report_001' }
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
import { FlowGridTransport } from "../../client/transport";
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// TRACK FEATURE CLASS
|
|
43
|
+
// ============================================================================
|
|
44
|
+
/**
|
|
45
|
+
* TrackFeature - Track feature usage events.
|
|
46
|
+
*
|
|
47
|
+
* @extends FlowGridTransport
|
|
48
|
+
*
|
|
49
|
+
* @description
|
|
50
|
+
* Provides feature tracking including:
|
|
51
|
+
* - Generic feature events
|
|
52
|
+
* - Detailed usage tracking
|
|
53
|
+
* - Feature discovery tracking
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const trackFeature = new TrackFeature(webId, endpoint, apiKey);
|
|
58
|
+
*
|
|
59
|
+
* // Simple feature tracking
|
|
60
|
+
* await trackFeature.create({
|
|
61
|
+
* userId: 'user_123',
|
|
62
|
+
* action: 'dark_mode_enabled',
|
|
63
|
+
* properties: { featureName: 'dark_mode' }
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Detailed feature usage
|
|
67
|
+
* await trackFeature.trackUsage({
|
|
68
|
+
* featureId: 'export',
|
|
69
|
+
* featureName: 'Data Export',
|
|
70
|
+
* userId: 'user_123',
|
|
71
|
+
* action: 'completed',
|
|
72
|
+
* duration: 5000,
|
|
73
|
+
* success: true,
|
|
74
|
+
* properties: { format: 'csv' }
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export class TrackFeature extends FlowGridTransport {
|
|
79
|
+
/**
|
|
80
|
+
* Records a feature usage event.
|
|
81
|
+
*
|
|
82
|
+
* @param config - Feature configuration
|
|
83
|
+
* @returns Promise resolving to feature response
|
|
84
|
+
*/
|
|
85
|
+
async create(config) {
|
|
86
|
+
return await this.init("create_tracking", {
|
|
87
|
+
type: "feature_usage",
|
|
88
|
+
subtype: "create_custom",
|
|
89
|
+
userId: config.userId,
|
|
90
|
+
category: config.category,
|
|
91
|
+
action: config.action,
|
|
92
|
+
...config.properties,
|
|
93
|
+
timestamp: new Date().toISOString()
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Tracks detailed feature usage.
|
|
98
|
+
*
|
|
99
|
+
* @param config - Feature usage configuration
|
|
100
|
+
* @returns Promise resolving to feature response
|
|
101
|
+
*/
|
|
102
|
+
async trackUsage(config) {
|
|
103
|
+
return await this.init("feature_usage", {
|
|
104
|
+
type: "feature_usage",
|
|
105
|
+
subtype: config.action,
|
|
106
|
+
featureId: config.featureId,
|
|
107
|
+
featureName: config.featureName,
|
|
108
|
+
userId: config.userId,
|
|
109
|
+
action: config.action,
|
|
110
|
+
duration: config.duration,
|
|
111
|
+
success: config.success,
|
|
112
|
+
category: config.category,
|
|
113
|
+
...config.properties,
|
|
114
|
+
timestamp: new Date().toISOString()
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export default TrackFeature;
|
|
119
|
+
//# sourceMappingURL=track-feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-feature.js","sourceRoot":"","sources":["../../../../src/lib/features/core/track-feature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAyH3D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IACjD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAqB;QAChC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAA0B;QACzC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACtC,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
42
|
import { FlowGridTransport } from "../../client/transport";
|
|
43
|
-
import {
|
|
43
|
+
import { TimeSeriesData } from "../../types";
|
|
44
44
|
/**
|
|
45
45
|
* Base configuration for prompt events.
|
|
46
46
|
*/
|
|
@@ -87,6 +87,8 @@ export interface PromptResponseConfig {
|
|
|
87
87
|
error?: string;
|
|
88
88
|
/** Response quality (if auto-detected) */
|
|
89
89
|
qualityScore?: number;
|
|
90
|
+
/** Custom properties */
|
|
91
|
+
properties?: Record<string, unknown>;
|
|
90
92
|
}
|
|
91
93
|
/**
|
|
92
94
|
* User feedback on AI response.
|
|
@@ -102,6 +104,8 @@ export interface PromptFeedbackConfig {
|
|
|
102
104
|
rating?: number;
|
|
103
105
|
/** User comment */
|
|
104
106
|
comment?: string;
|
|
107
|
+
/** Custom properties */
|
|
108
|
+
properties?: Record<string, unknown>;
|
|
105
109
|
}
|
|
106
110
|
/**
|
|
107
111
|
* Prompt tracking response.
|
|
@@ -236,12 +240,5 @@ export declare class TrackPrompt extends FlowGridTransport {
|
|
|
236
240
|
* @returns Promise resolving to prompt response
|
|
237
241
|
*/
|
|
238
242
|
trackConversation(conversationId: string, userId: string, turnCount: number, totalDuration: number): Promise<PromptResponse>;
|
|
239
|
-
/**
|
|
240
|
-
* Gets prompt analytics for dashboards.
|
|
241
|
-
*
|
|
242
|
-
* @param filter - Date range filter
|
|
243
|
-
* @returns Promise resolving to prompt analytics
|
|
244
|
-
*/
|
|
245
|
-
getAnalytics(filter?: DateRangeFilter): Promise<PromptAnalyticsData>;
|
|
246
243
|
}
|
|
247
244
|
export default TrackPrompt;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Core - Prompt & AI Interaction Tracking
|
|
3
|
+
* @module features/core/track-prompt
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Track AI prompt interactions, completions, and user feedback
|
|
7
|
+
* for AI-powered features.
|
|
8
|
+
*
|
|
9
|
+
* @useCases
|
|
10
|
+
* - Track AI prompt submissions
|
|
11
|
+
* - Monitor response quality
|
|
12
|
+
* - Measure user satisfaction
|
|
13
|
+
* - Analyze prompt patterns
|
|
14
|
+
* - Optimize AI features
|
|
15
|
+
*
|
|
16
|
+
* @metrics
|
|
17
|
+
* - Prompts per user
|
|
18
|
+
* - Response acceptance rate
|
|
19
|
+
* - Average response time
|
|
20
|
+
* - User satisfaction score
|
|
21
|
+
* - Token usage
|
|
22
|
+
*
|
|
23
|
+
* @chartData
|
|
24
|
+
* - Line chart: Prompts over time
|
|
25
|
+
* - Bar chart: Prompts by category
|
|
26
|
+
* - Histogram: Response time distribution
|
|
27
|
+
* - Gauge: Satisfaction score
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const trackPrompt = new TrackPrompt(webId, endpoint, apiKey);
|
|
32
|
+
*
|
|
33
|
+
* await trackPrompt.create({
|
|
34
|
+
* eventName: 'ai_completion',
|
|
35
|
+
* properties: {
|
|
36
|
+
* promptType: 'code_suggestion',
|
|
37
|
+
* accepted: true
|
|
38
|
+
* }
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
import { FlowGridTransport } from "../../client/transport";
|
|
43
|
+
// ============================================================================
|
|
44
|
+
// TRACK PROMPT CLASS
|
|
45
|
+
// ============================================================================
|
|
46
|
+
/**
|
|
47
|
+
* TrackPrompt - Track AI prompt interactions.
|
|
48
|
+
*
|
|
49
|
+
* @extends FlowGridTransport
|
|
50
|
+
*
|
|
51
|
+
* @description
|
|
52
|
+
* Provides prompt tracking including:
|
|
53
|
+
* - Prompt submissions
|
|
54
|
+
* - Response tracking
|
|
55
|
+
* - User feedback
|
|
56
|
+
* - Quality metrics
|
|
57
|
+
* - Usage analytics
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const trackPrompt = new TrackPrompt(webId, endpoint, apiKey);
|
|
62
|
+
*
|
|
63
|
+
* // Track prompt submission
|
|
64
|
+
* await trackPrompt.trackSubmission({
|
|
65
|
+
* promptId: 'prompt_123',
|
|
66
|
+
* userId: 'user_456',
|
|
67
|
+
* promptType: 'code_completion',
|
|
68
|
+
* model: 'gpt-4',
|
|
69
|
+
* inputTokens: 150
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* // Track response
|
|
73
|
+
* await trackPrompt.trackResponse({
|
|
74
|
+
* promptId: 'prompt_123',
|
|
75
|
+
* responseTime: 1200,
|
|
76
|
+
* outputTokens: 300,
|
|
77
|
+
* completed: true
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* // Track user feedback
|
|
81
|
+
* await trackPrompt.trackFeedback({
|
|
82
|
+
* promptId: 'prompt_123',
|
|
83
|
+
* feedbackType: 'accepted',
|
|
84
|
+
* rating: 5
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export class TrackPrompt extends FlowGridTransport {
|
|
89
|
+
/**
|
|
90
|
+
* Creates and tracks a prompt event.
|
|
91
|
+
*
|
|
92
|
+
* @param config - Prompt configuration
|
|
93
|
+
* @returns Promise resolving to prompt response
|
|
94
|
+
*/
|
|
95
|
+
async create(config) {
|
|
96
|
+
return await this.init(config.eventName, {
|
|
97
|
+
...config.properties,
|
|
98
|
+
type: "prompt",
|
|
99
|
+
timestamp: new Date().toISOString()
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Tracks a prompt submission.
|
|
104
|
+
*
|
|
105
|
+
* @param config - Prompt submission configuration
|
|
106
|
+
* @returns Promise resolving to prompt response
|
|
107
|
+
*/
|
|
108
|
+
async trackSubmission(config) {
|
|
109
|
+
return await this.init("prompt_submitted", {
|
|
110
|
+
type: "prompt",
|
|
111
|
+
subtype: "submission",
|
|
112
|
+
promptId: config.promptId,
|
|
113
|
+
userId: config.userId,
|
|
114
|
+
promptType: config.promptType,
|
|
115
|
+
model: config.model,
|
|
116
|
+
inputTokens: config.inputTokens,
|
|
117
|
+
conversationId: config.conversationId,
|
|
118
|
+
...config.properties,
|
|
119
|
+
timestamp: new Date().toISOString()
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Tracks a prompt response.
|
|
124
|
+
*
|
|
125
|
+
* @param config - Prompt response configuration
|
|
126
|
+
* @returns Promise resolving to prompt response
|
|
127
|
+
*/
|
|
128
|
+
async trackResponse(config) {
|
|
129
|
+
return await this.init("prompt_response", {
|
|
130
|
+
type: "prompt",
|
|
131
|
+
subtype: "response",
|
|
132
|
+
promptId: config.promptId,
|
|
133
|
+
responseTime: config.responseTime,
|
|
134
|
+
outputTokens: config.outputTokens,
|
|
135
|
+
completed: config.completed,
|
|
136
|
+
error: config.error,
|
|
137
|
+
qualityScore: config.qualityScore,
|
|
138
|
+
timestamp: new Date().toISOString()
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Tracks user feedback on a prompt response.
|
|
143
|
+
*
|
|
144
|
+
* @param config - Prompt feedback configuration
|
|
145
|
+
* @returns Promise resolving to prompt response
|
|
146
|
+
*/
|
|
147
|
+
async trackFeedback(config) {
|
|
148
|
+
return await this.init("prompt_feedback", {
|
|
149
|
+
type: "prompt",
|
|
150
|
+
subtype: "feedback",
|
|
151
|
+
promptId: config.promptId,
|
|
152
|
+
userId: config.userId,
|
|
153
|
+
feedbackType: config.feedbackType,
|
|
154
|
+
rating: config.rating,
|
|
155
|
+
comment: config.comment,
|
|
156
|
+
timestamp: new Date().toISOString()
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Tracks a conversation/multi-turn prompt session.
|
|
161
|
+
*
|
|
162
|
+
* @param conversationId - Conversation ID
|
|
163
|
+
* @param userId - User ID
|
|
164
|
+
* @param turnCount - Number of turns
|
|
165
|
+
* @param totalDuration - Total conversation duration (ms)
|
|
166
|
+
* @returns Promise resolving to prompt response
|
|
167
|
+
*/
|
|
168
|
+
async trackConversation(conversationId, userId, turnCount, totalDuration) {
|
|
169
|
+
return await this.init("prompt_conversation", {
|
|
170
|
+
type: "prompt",
|
|
171
|
+
subtype: "conversation",
|
|
172
|
+
conversationId,
|
|
173
|
+
userId,
|
|
174
|
+
turnCount,
|
|
175
|
+
totalDuration,
|
|
176
|
+
timestamp: new Date().toISOString()
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
export default TrackPrompt;
|
|
181
|
+
//# sourceMappingURL=track-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track-prompt.js","sourceRoot":"","sources":["../../../../src/lib/features/core/track-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmI3D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAChD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACvC,GAAG,MAAM,CAAC,UAAU;YACpB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,MAA8B;QAClD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,MAA4B;QAC9C,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,MAA4B;QAC9C,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CACrB,cAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,aAAqB;QAErB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC5C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,cAAc;YACvB,cAAc;YACd,MAAM;YACN,SAAS;YACT,aAAa;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
import { FlowGridTransport } from "../../client/transport";
|
|
42
|
-
import { Product, Cart,
|
|
42
|
+
import { Product, Cart, TimeSeriesData } from "../../types";
|
|
43
43
|
/**
|
|
44
44
|
* Configuration for adding item to cart.
|
|
45
45
|
*/
|
|
@@ -271,28 +271,5 @@ export declare class CartTracking extends FlowGridTransport {
|
|
|
271
271
|
* @returns Promise resolving to cart response
|
|
272
272
|
*/
|
|
273
273
|
applyCoupon(cartId: string, couponCode: string, success: boolean, discount?: number): Promise<CartResponse>;
|
|
274
|
-
/**
|
|
275
|
-
* Retrieves cart analytics data for dashboards and charts.
|
|
276
|
-
*
|
|
277
|
-
* @param filter - Date range filter
|
|
278
|
-
* @returns Promise resolving to cart analytics
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
* ```typescript
|
|
282
|
-
* const analytics = await cart.getAnalytics({
|
|
283
|
-
* range: 'last30days'
|
|
284
|
-
* });
|
|
285
|
-
*
|
|
286
|
-
* // Line chart - add to cart over time
|
|
287
|
-
* const trendData = analytics.addToCartTimeSeries.data;
|
|
288
|
-
*
|
|
289
|
-
* // Bar chart - top products added
|
|
290
|
-
* const topProducts = analytics.topAddedProducts.map(p => ({
|
|
291
|
-
* name: p.product.name,
|
|
292
|
-
* value: p.addCount
|
|
293
|
-
* }));
|
|
294
|
-
* ```
|
|
295
|
-
*/
|
|
296
|
-
getAnalytics(filter?: DateRangeFilter): Promise<CartAnalyticsData>;
|
|
297
274
|
}
|
|
298
275
|
export default CartTracking;
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Ecommerce - Cart Tracking
|
|
3
|
+
* @module features/ecommerce/cart
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Track shopping cart interactions including add/remove items,
|
|
7
|
+
* cart views, and cart abandonment.
|
|
8
|
+
*
|
|
9
|
+
* @useCases
|
|
10
|
+
* - Track add to cart events
|
|
11
|
+
* - Monitor cart modifications
|
|
12
|
+
* - Detect cart abandonment
|
|
13
|
+
* - Analyze popular cart items
|
|
14
|
+
* - Measure cart value trends
|
|
15
|
+
*
|
|
16
|
+
* @metrics
|
|
17
|
+
* - Add to cart rate
|
|
18
|
+
* - Average cart value
|
|
19
|
+
* - Cart abandonment rate
|
|
20
|
+
* - Items per cart
|
|
21
|
+
* - Cart-to-checkout rate
|
|
22
|
+
*
|
|
23
|
+
* @chartData
|
|
24
|
+
* - Line chart: Cart value over time
|
|
25
|
+
* - Bar chart: Top added products
|
|
26
|
+
* - Pie chart: Abandonment reasons
|
|
27
|
+
* - Funnel: Cart to checkout flow
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const cart = new CartTracking(webId, endpoint, apiKey);
|
|
32
|
+
*
|
|
33
|
+
* // Track add to cart
|
|
34
|
+
* await cart.addItem({
|
|
35
|
+
* product: { productId: 'SKU-123', name: 'Widget', price: 29.99, currency: 'USD' },
|
|
36
|
+
* quantity: 2,
|
|
37
|
+
* cartId: 'cart_abc'
|
|
38
|
+
* });
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
import { FlowGridTransport } from "../../client/transport";
|
|
42
|
+
// ============================================================================
|
|
43
|
+
// CART TRACKING CLASS
|
|
44
|
+
// ============================================================================
|
|
45
|
+
/**
|
|
46
|
+
* CartTracking - Track shopping cart interactions.
|
|
47
|
+
*
|
|
48
|
+
* @extends FlowGridTransport
|
|
49
|
+
*
|
|
50
|
+
* @description
|
|
51
|
+
* Provides cart tracking capabilities including:
|
|
52
|
+
* - Add to cart events
|
|
53
|
+
* - Remove from cart events
|
|
54
|
+
* - Cart quantity updates
|
|
55
|
+
* - Cart view tracking
|
|
56
|
+
* - Cart abandonment detection
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const cart = new CartTracking(webId, endpoint, apiKey);
|
|
61
|
+
*
|
|
62
|
+
* // Track add to cart
|
|
63
|
+
* await cart.addItem({
|
|
64
|
+
* product: {
|
|
65
|
+
* productId: 'PROD-001',
|
|
66
|
+
* name: 'Widget Pro',
|
|
67
|
+
* price: 99.99,
|
|
68
|
+
* currency: 'USD'
|
|
69
|
+
* },
|
|
70
|
+
* quantity: 1,
|
|
71
|
+
* source: 'product_page'
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // Track cart view
|
|
75
|
+
* await cart.view({
|
|
76
|
+
* cart: currentCart
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export class CartTracking extends FlowGridTransport {
|
|
81
|
+
/**
|
|
82
|
+
* Tracks adding an item to cart.
|
|
83
|
+
*
|
|
84
|
+
* @param config - Add to cart configuration
|
|
85
|
+
* @returns Promise resolving to cart response
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* await cart.addItem({
|
|
90
|
+
* product: {
|
|
91
|
+
* productId: 'SKU-123',
|
|
92
|
+
* name: 'Premium Widget',
|
|
93
|
+
* price: 49.99,
|
|
94
|
+
* currency: 'USD',
|
|
95
|
+
* category: 'Widgets'
|
|
96
|
+
* },
|
|
97
|
+
* quantity: 2,
|
|
98
|
+
* source: 'product_page'
|
|
99
|
+
* });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
async addItem(config) {
|
|
103
|
+
const lineTotal = config.product.price * config.quantity - (config.product.discount || 0);
|
|
104
|
+
return await this.init("add_to_cart", {
|
|
105
|
+
type: "ecommerce",
|
|
106
|
+
subtype: "add_to_cart",
|
|
107
|
+
product: config.product,
|
|
108
|
+
quantity: config.quantity,
|
|
109
|
+
lineTotal,
|
|
110
|
+
cartId: config.cartId,
|
|
111
|
+
userId: config.userId,
|
|
112
|
+
source: config.source,
|
|
113
|
+
...config.properties,
|
|
114
|
+
timestamp: new Date().toISOString()
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Tracks removing an item from cart.
|
|
119
|
+
*
|
|
120
|
+
* @param config - Remove from cart configuration
|
|
121
|
+
* @returns Promise resolving to cart response
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* await cart.removeItem({
|
|
126
|
+
* product: productToRemove,
|
|
127
|
+
* quantity: 1,
|
|
128
|
+
* cartId: 'cart_123',
|
|
129
|
+
* reason: 'user_action'
|
|
130
|
+
* });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
async removeItem(config) {
|
|
134
|
+
return await this.init("remove_from_cart", {
|
|
135
|
+
type: "ecommerce",
|
|
136
|
+
subtype: "remove_from_cart",
|
|
137
|
+
product: config.product,
|
|
138
|
+
quantity: config.quantity,
|
|
139
|
+
cartId: config.cartId,
|
|
140
|
+
userId: config.userId,
|
|
141
|
+
reason: config.reason || "user_action",
|
|
142
|
+
timestamp: new Date().toISOString()
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Tracks cart item quantity update.
|
|
147
|
+
*
|
|
148
|
+
* @param config - Update configuration
|
|
149
|
+
* @returns Promise resolving to cart response
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* await cart.updateItem({
|
|
154
|
+
* product: item.product,
|
|
155
|
+
* previousQuantity: 1,
|
|
156
|
+
* newQuantity: 3,
|
|
157
|
+
* cartId: 'cart_123'
|
|
158
|
+
* });
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
async updateItem(config) {
|
|
162
|
+
return await this.init("update_cart_item", {
|
|
163
|
+
type: "ecommerce",
|
|
164
|
+
subtype: "update_cart_item",
|
|
165
|
+
product: config.product,
|
|
166
|
+
previousQuantity: config.previousQuantity,
|
|
167
|
+
newQuantity: config.newQuantity,
|
|
168
|
+
quantityChange: config.newQuantity - config.previousQuantity,
|
|
169
|
+
cartId: config.cartId,
|
|
170
|
+
timestamp: new Date().toISOString()
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Tracks a cart view event.
|
|
175
|
+
*
|
|
176
|
+
* @param config - View cart configuration
|
|
177
|
+
* @returns Promise resolving to cart response
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* await cart.view({
|
|
182
|
+
* cart: {
|
|
183
|
+
* cartId: 'cart_123',
|
|
184
|
+
* items: cartItems,
|
|
185
|
+
* subtotal: 149.97,
|
|
186
|
+
* total: 164.97,
|
|
187
|
+
* currency: 'USD',
|
|
188
|
+
* itemCount: 3
|
|
189
|
+
* }
|
|
190
|
+
* });
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
async view(config) {
|
|
194
|
+
return await this.init("view_cart", {
|
|
195
|
+
type: "ecommerce",
|
|
196
|
+
subtype: "view_cart",
|
|
197
|
+
cart: config.cart,
|
|
198
|
+
cartValue: config.cart.total,
|
|
199
|
+
itemCount: config.cart.itemCount,
|
|
200
|
+
userId: config.userId,
|
|
201
|
+
timestamp: new Date().toISOString()
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Tracks cart abandonment.
|
|
206
|
+
*
|
|
207
|
+
* @param cart - Abandoned cart state
|
|
208
|
+
* @param reason - Abandonment reason (if known)
|
|
209
|
+
* @returns Promise resolving to cart response
|
|
210
|
+
*/
|
|
211
|
+
async abandon(cart, reason) {
|
|
212
|
+
return await this.init("cart_abandoned", {
|
|
213
|
+
type: "ecommerce",
|
|
214
|
+
subtype: "cart_abandoned",
|
|
215
|
+
cart,
|
|
216
|
+
cartValue: cart.total,
|
|
217
|
+
itemCount: cart.itemCount,
|
|
218
|
+
reason,
|
|
219
|
+
timestamp: new Date().toISOString()
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Applies a coupon to the cart.
|
|
224
|
+
*
|
|
225
|
+
* @param cartId - Cart identifier
|
|
226
|
+
* @param couponCode - Coupon code applied
|
|
227
|
+
* @param success - Whether coupon was valid
|
|
228
|
+
* @param discount - Discount amount (if successful)
|
|
229
|
+
* @returns Promise resolving to cart response
|
|
230
|
+
*/
|
|
231
|
+
async applyCoupon(cartId, couponCode, success, discount) {
|
|
232
|
+
return await this.init("apply_coupon", {
|
|
233
|
+
type: "ecommerce",
|
|
234
|
+
subtype: "apply_coupon",
|
|
235
|
+
cartId,
|
|
236
|
+
couponCode,
|
|
237
|
+
success,
|
|
238
|
+
discount,
|
|
239
|
+
timestamp: new Date().toISOString()
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
export default CartTracking;
|
|
244
|
+
//# sourceMappingURL=cart.js.map
|