flowgrid-sdk 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +224 -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
package/dist/index.d.ts
CHANGED
|
@@ -26,23 +26,22 @@
|
|
|
26
26
|
* } from 'flowgrid-sdk';
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
+
export { FlowGrid } from "./lib/flowgrid";
|
|
30
|
+
export { default } from "./lib/flowgrid";
|
|
31
|
+
export type { FlowGridInitConfig, AutoTrackOptions } from "./lib/flowgrid";
|
|
29
32
|
export { Activation, TrackFeature, TrackPrompt, Experiment } from "./lib/features/core";
|
|
30
33
|
export type { ActivationConfig, OnboardingStepConfig, FirstActionConfig, ActivationResponse, ActivationAnalyticsData, FeatureConfig, FeatureUsageConfig, FeatureDiscoveryConfig, FeatureResponse, FeatureAnalyticsData, PromptConfig, PromptSubmissionConfig, PromptResponseConfig, PromptFeedbackConfig, PromptResponse, PromptAnalyticsData, ExperimentConfig, ExperimentDefinition, ExperimentAssignmentConfig, ExperimentConversionConfig, ExperimentResponse, ExperimentResultsData, ExperimentAnalyticsData } from "./lib/features/core";
|
|
31
|
-
export { PageViews, Sessions, Events, Identify, Funnels, Retention, Attribution, Heatmaps, PerformanceTracking, PerformanceTracking as Performance } from "./lib/features/analytics";
|
|
34
|
+
export { PageViews, Sessions, Events, Identify, Funnels, Retention, Attribution, Heatmaps, PerformanceTracking, PerformanceTracking as Performance, SessionReplay, } from "./lib/features/analytics";
|
|
35
|
+
export type { ReplayPrivacyMetadata, SessionReplayDropMetadata, SessionReplayErrorContext, SessionReplayFlushMetadata, SessionReplayFlushReason, SessionReplayOptions, SessionReplaySendChunkOptions, SessionReplayState, SessionReplayStatus, } from "./lib/features/analytics";
|
|
32
36
|
export type { PageViewConfig, ScrollDepthConfig, TimeOnPageConfig, PageViewResponse, PageAnalyticsData, SessionStartConfig, SessionResponse, SessionEndResponse, SessionAnalyticsData, RealTimeSessionData, EventTrackConfig, BatchEventConfig, EventResponse, BatchEventResponse, EventAnalyticsData, IdentifyConfig, AliasConfig, GroupConfig, IdentifyResponse, UserAnalyticsData, FunnelDefinition, FunnelStepConfig, FunnelStepResponse, FunnelAnalyticsData, FunnelComparisonData, ActivityConfig, CohortAnalysisConfig, ActivityResponse, CohortAnalysisData, StickinessData, ChurnAnalysisData, AttributionModel, TouchpointConfig, ConversionEvent, TouchpointResponse, AttributionReportData, ClickData, MovementData, ScrollData, HeatmapResponse, HeatmapData, WebVitalsData, PageLoadData, ResourceData, PerformanceResponse, PerformanceAnalyticsData } from "./lib/features/analytics";
|
|
33
|
-
export { Products, CartTracking, Checkout, Purchases, Refunds, Promotions, WishlistTracking, CustomerLTV, SearchAnalytics,
|
|
34
|
-
export type { ProductViewConfig, ProductImpressionConfig, ProductClickConfig, ProductResponse, ProductAnalyticsData, AddToCartConfig, RemoveFromCartConfig, UpdateCartItemConfig, ViewCartConfig, CartResponse, CartAnalyticsData, BeginCheckoutConfig, CheckoutStepConfig, AddShippingConfig, AddPaymentConfig, CheckoutResponse, CheckoutAnalyticsData, PurchaseConfig, PurchaseResponse, RevenueAnalyticsData, RecentOrdersData, RefundConfig, RefundResponse, RefundAnalyticsData, PromotionViewConfig, PromotionClickConfig, CouponUsageConfig, PromotionResponse, PromotionAnalyticsData, AddToWishlistConfig, RemoveFromWishlistConfig, WishlistResponse, WishlistAnalyticsData, CustomerValueData, AcquisitionCostConfig, LTVResponse, LTVAnalyticsData, SearchConfig, SearchClickConfig, SearchResponse, SearchAnalyticsData,
|
|
37
|
+
export { Products, CartTracking, Checkout, Purchases, Refunds, Promotions, WishlistTracking, CustomerLTV, SearchAnalytics, Subscriptions } from "./lib/features/ecommerce";
|
|
38
|
+
export type { ProductViewConfig, ProductImpressionConfig, ProductClickConfig, ProductResponse, ProductAnalyticsData, AddToCartConfig, RemoveFromCartConfig, UpdateCartItemConfig, ViewCartConfig, CartResponse, CartAnalyticsData, BeginCheckoutConfig, CheckoutStepConfig, AddShippingConfig, AddPaymentConfig, CheckoutResponse, CheckoutAnalyticsData, PurchaseConfig, PurchaseResponse, RevenueAnalyticsData, RecentOrdersData, RefundConfig, RefundResponse, RefundAnalyticsData, PromotionViewConfig, PromotionClickConfig, CouponUsageConfig, PromotionResponse, PromotionAnalyticsData, AddToWishlistConfig, RemoveFromWishlistConfig, WishlistResponse, WishlistAnalyticsData, CustomerValueData, AcquisitionCostConfig, LTVResponse, LTVAnalyticsData, SearchConfig, SearchClickConfig, SearchResponse, SearchAnalyticsData, SubscriptionStartConfig, SubscriptionChangeConfig, SubscriptionCancelConfig, SubscriptionResponse, SubscriptionAnalyticsData } from "./lib/features/ecommerce";
|
|
35
39
|
export { FlowGridTransport } from "./lib/client/transport";
|
|
36
40
|
export type { FeatureType } from "./lib/client/transport";
|
|
37
41
|
export { Engagement, Cohorts, ChurnAnalytics, Monetization, MultiPathFunnels, SupportAnalytics, AcquisitionAnalytics, PathAnalytics, AlertsAnalytics, SecurityAnalytics, Forecasting } from "./lib/features/enterprise";
|
|
38
42
|
export type { DwellTimeConfig, SessionDepthConfig, ContentConsumptionConfig, UserActivityConfig, EngagementScoreConfig, EngagementAnalyticsFilter, EngagementResponse, EngagementScore, EngagementAnalytics, CohortOperator, CohortRule, CohortType, CohortDefinition, SegmentDefinition, CohortAssignment, CohortComparisonConfig, CohortAnalyticsFilter, CohortResponse, CohortMember, CohortAnalytics, CohortComparison, ChurnRiskFactors, ChurnRiskScore, UsageDecayConfig, UsageDecay, NPSConfig, ChurnEventConfig, PreventionActionConfig, AtRiskUsersFilter, ChurnAnalyticsResult, RevenueType, RevenueTrackConfig, ARPUConfig, ARPUResult, CohortRevenueConfig, CohortRevenueResult, PlanAnalysisConfig, PlanAnalysis, RevenueBreakdownConfig, RevenueBreakdown, NRRConfig, NRRResult, RevenueForecastConfig, RevenueForecast, MonetizationAnalytics, FunnelPath, MultiPathFunnelDefinition, MicroConversionDefinition, MultiPathStepConfig, MicroConversionConfig, FunnelAnalysisConfig, PathAnalysis, MicroConversionAnalysis, MultiPathFunnelAnalysis, SegmentDropOffAnalysis, UserJourneyConfig, UserJourney, TicketPriority, TicketStatus, SupportChannel, TicketConfig, TicketUpdateConfig, CSATConfig, FeatureComplaintConfig, SupportAnalyticsFilter, TicketAnalytics, SupportImpactAnalysis, FeatureComplaintSummary, AgentPerformance, AcquisitionSource, LifecycleStage, AcquisitionConfig, CampaignDefinition, CampaignSpendConfig, LifecycleTransitionConfig, CACConfig, CACResult, TrialFunnelConfig, TrialFunnelResult, CampaignPerformance, AttributionModel as EnterpriseAttributionModel, AttributionAnalysisConfig, AttributionResult, TransitionConfig, FeatureSequenceConfig, PathDefinition, PathAnalysisConfig, PathResult, DeadEndScreen, TransitionMatrix, FrictionPoint, PathComparison, AlertCondition, AlertSeverity, AlertStatus, NotificationChannel, AlertRuleDefinition, AlertInstance, AnomalyDetectionConfig, Anomaly, NotificationConfig, AlertAnalyticsFilter, AlertAnalytics, SecurityEventType, ComplianceEventType, LoginAttemptConfig, RoleChangeConfig, PermissionChangeConfig, DataAccessConfig, ComplianceEventConfig, AuditLogEntry, SecurityAnalyticsFilter, SecurityRiskAssessment, ComplianceReport, ForecastModel, ForecastMetric, ForecastConfig, ForecastDataPoint, ForecastResult, RevenueForecastResult, FeatureAdoptionForecastConfig, ChurnForecastConfig, ChurnForecastResult, CapacityPlanningConfig, CapacityPlanningResult, ScenarioConfig, ScenarioComparison } from "./lib/features/enterprise";
|
|
39
43
|
export type { BaseConfig, BaseResponse, PaginationParams, DateRangeFilter, CurrencyCode, MoneyValue, UserIdentity, UserTraits, DeviceInfo, GeoLocation, UTMParams, TrackingContext, AggregationType, TimeGranularity, ChartDataPoint, TimeSeriesData, MetricSummary, Product, ProductList, CartItem, Cart, ShippingInfo, PaymentInfo, Order, Refund, CheckoutStep, CheckoutProgress, Promotion, WishlistItem, Wishlist, RevenueMetrics, ConversionFunnel, ProductPerformance, CartAnalytics, PageView, Session, CustomEvent, ClickEvent, FormEvent, SearchEvent, ErrorEvent, FeatureUsage, EngagementFactors, RetentionCohort, FunnelStep, FunnelAnalysis, TrafficMetrics, AcquisitionMetrics, BehaviorMetrics, RealTimeMetrics, UserLifecycleStage, LifecycleMetrics } from "./lib/types";
|
|
40
44
|
export type { ActiveUserGranularity, ActiveUsersConfig, ActiveUserPeriod, ActiveUsersResponse, ActiveUserRatios, } from "./lib/types";
|
|
41
|
-
export * as react from "./lib/frameworks/react";
|
|
42
|
-
export * as vue from "./lib/frameworks/vue";
|
|
43
|
-
export * as nextjs from "./lib/frameworks/nextjs";
|
|
44
|
-
export * as nuxt from "./lib/frameworks/nuxt";
|
|
45
|
-
export * as node from "./lib/frameworks/node";
|
|
46
45
|
export { getCookie, getVisitorId, getSessionId, getWebId, getUTM, getUTMHistory, } from "./lib/utils/storage";
|
|
47
46
|
export type { FlowGridUTM, FlowGridUTMHistoryEntry, } from "./lib/utils/storage";
|
|
48
47
|
export { IdentityManager } from "./lib/utils/identity";
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,65 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react/jsx-runtime"),require("react"),require("vue"),function(){try{return require("next/navigation")}catch(t){}}()):"function"==typeof define&&define.amd?define(["react/jsx-runtime","react","vue","next/navigation"],e):"object"==typeof exports?exports.FlowGridSDK=e(require("react/jsx-runtime"),require("react"),require("vue"),function(){try{return require("next/navigation")}catch(t){}}()):t.FlowGridSDK=e(t["react/jsx-runtime"],t.React,t.Vue,t["next/navigation"])}(this,(t,e,i,n)=>(()=>{"use strict";var r={500(t){if(void 0===n){var e=new Error("Cannot find module 'next/navigation'");throw e.code="MODULE_NOT_FOUND",e}t.exports=n},272(e){e.exports=t},12(t){t.exports=e},594(t){t.exports=i}},a={};function s(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return r[t](i,i.exports,s),i.exports}s.d=(t,e)=>{for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};s.d(o,{xq:()=>c,EC:()=>v,RW:()=>b,RE:()=>O,sV:()=>I,aj:()=>y,Y0:()=>S,T$:()=>w,_O:()=>g,lk:()=>f,P:()=>x,AN:()=>h,zr:()=>D,ux:()=>u,qn:()=>m});class p{constructor(t,e,i,n,r,a){if(!t?.trim()||!e?.trim())throw new Error("SDK init failed: webId and endpoint are required.");this.webId=t.trim(),this.endpoint=this.normalizeEndpoint(e),this.apiKey=i,this.identityManager=r,this.visitorId=n??"",this.transportConfig={botDetection:a?.botDetection??"block",respectDNT:a?.respectDNT??!0,sampleRate:a?.sampleRate??1},this.drainEventBuffer()}static setConsent(t){Object.assign(p.consent,t)}static hasConsent(t){return p.consent[t]??!1}static isLikelyBot(){return!("undefined"==typeof navigator||!navigator.webdriver&&!/bot|crawl|spider|headless|phantom|puppeteer/i.test(navigator.userAgent))}isDNTEnabled(){return"undefined"!=typeof navigator&&(!!navigator.globalPrivacyControl||"1"===navigator.doNotTrack)}static getDeviceContext(){return"undefined"==typeof window||"undefined"==typeof navigator?{}:{_screen_width:window.screen?.width,_screen_height:window.screen?.height,_device_type:/Mobi|Android/i.test(navigator.userAgent)?"mobile":"desktop",_language:navigator.language}}sendViaBeacon(t,e={}){if("undefined"==typeof navigator||"function"!=typeof navigator.sendBeacon)return!1;const i=this.identityManager?this.identityManager.getVisitorId():this.visitorId??"",n=e.type||"event",r=`${this.endpoint}/api/v1/sdk/functions?call=${encodeURIComponent(n)}`,a=JSON.stringify({web_id:this.webId,visitor_id:i,event_name:t,properties:{...e,...p.getDeviceContext()}});return navigator.sendBeacon(r,new Blob([a],{type:"application/json"}))}bufferEvent(t,e,i){if("undefined"!=typeof localStorage)try{const n=localStorage.getItem(p.EVENT_BUFFER_KEY),r=n?JSON.parse(n):[];if(r.length>=p.MAX_BUFFER_EVENTS)return;const a=JSON.stringify([...r,{url:t,method:e,body:i}]);if((new TextEncoder).encode(a).length>p.MAX_BUFFER_SIZE)return;r.push({url:t,method:e,body:i}),localStorage.setItem(p.EVENT_BUFFER_KEY,JSON.stringify(r))}catch{}}drainEventBuffer(){if("undefined"!=typeof localStorage)try{const t=localStorage.getItem(p.EVENT_BUFFER_KEY);if(!t)return;const e=JSON.parse(t);localStorage.removeItem(p.EVENT_BUFFER_KEY);for(const t of e)fetch(t.url,{method:t.method,headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:t.body}).catch(()=>{})}catch{}}async init(t,e={},i="POST"){if(!p.hasConsent("analytics"))return{};if(this.transportConfig.respectDNT&&this.isDNTEnabled())return{};if("block"===this.transportConfig.botDetection&&p.isLikelyBot())return{};this.validateInput(t,e),"tag"===this.transportConfig.botDetection&&p.isLikelyBot()&&(e={...e,_bot:!0});const n={...p.getDeviceContext(),...e},r=n.type||"event",a=`${this.endpoint}/api/v1/sdk/functions?call=${encodeURIComponent(r)}`,s=this.identityManager?this.identityManager.getVisitorId():this.visitorId??"",o=JSON.stringify({web_id:this.webId,visitor_id:s,event_name:t,properties:n});return this.executeRequest(a,i,"GET"===i?void 0:o)}async initFeature(t,e){if(this.validateInput(t,e),!e.type)throw new Error("Feature events must include a type property");const i=`${this.endpoint}/api/v1/sdk/functions?call=${encodeURIComponent(e.type)}`,n=this.identityManager?this.identityManager.getVisitorId():this.visitorId??"",r=JSON.stringify({web_id:this.webId,visitor_id:n,event_name:t,properties:e});return this.executeRequest(i,"POST",r)}async executeRequest(t,e,i,n){let r=0;for(;;){const a=new AbortController,s=setTimeout(()=>a.abort(),p.TIMEOUT_MS);try{const o=await fetch(t,{method:e,headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,...n},body:i,signal:a.signal});if(clearTimeout(s),o.status>=500&&r<p.MAX_RETRIES){r++,await this.backoff(r);continue}if(!o.ok){const t=await this.safeRead(o);throw new Error(`SDK request failed (${o.status} ${o.statusText}) ${t}`)}return await o.json()}catch(n){if(clearTimeout(s),n instanceof Error&&("AbortError"===n.name||n.message.includes("fetch"))&&r<p.MAX_RETRIES){r++,await this.backoff(r);continue}if(r>=p.MAX_RETRIES&&(i&&"undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon&&navigator.sendBeacon(t,new Blob([i],{type:"application/json"}))||this.bufferEvent(t,e,i)),n instanceof Error&&"AbortError"===n.name)throw new Error("SDK request timed out");throw n}}}backoff(t){const e=1e3*Math.pow(2,t-1);return new Promise(t=>setTimeout(t,e))}validateInput(t,e){if(!t||"string"!=typeof t||!t.trim())throw new Error("Event name must be a non-empty string");if(t.length>100)throw new Error("Event name must be less than 100 characters");let i;try{i=JSON.stringify({web_id:this.webId,visitor_id:this.visitorId??"",event_name:t,properties:e})}catch{throw new Error("Properties must be JSON serializable")}if((new TextEncoder).encode(i).length>p.MAX_PAYLOAD_SIZE)throw new Error("Event payload too large (max 10KB)");const n=["password","token","secret","apikey","authorization"],r=i.toLowerCase();for(const t of n)r.includes(t)&&console.warn(`SDK Warning: Properties may contain sensitive data (${t}).`)}normalizeEndpoint(t){let e=t.trim();return e.startsWith("http://")||e.startsWith("https://")||(e=`https://${e}`),e.replace(/\/+$/,"")}async safeRead(t){try{return await t.text()}catch{return""}}}p.MAX_PAYLOAD_SIZE=1e4,p.TIMEOUT_MS=1e4,p.MAX_RETRIES=3,p.MAX_BUFFER_EVENTS=100,p.MAX_BUFFER_SIZE=5e4,p.EVENT_BUFFER_KEY="fg_event_buffer",p.consent={analytics:!0,marketing:!0};class c extends p{async create(t){return await this.init(t.eventName,{...t.properties,type:"activation",timestamp:(new Date).toISOString()})}async trackOnboardingStep(t){return await this.init("onboarding_step",{type:"activation",subtype:"onboarding_step",userId:t.userId,stepId:t.stepId,stepName:t.stepName,stepOrder:t.stepOrder,totalSteps:t.totalSteps,progress:Math.round(t.stepOrder/t.totalSteps*100),timeSpent:t.timeSpent,skipped:t.skipped||!1,...t.properties,timestamp:(new Date).toISOString()})}async completeOnboarding(t,e,i,n){return await this.init("onboarding_completed",{type:"activation",subtype:"onboarding_complete",userId:t,totalTimeSpent:e,stepsCompleted:i,stepsSkipped:n,completionRate:Math.round(i/(i+n)*100),timestamp:(new Date).toISOString()})}async trackFirstAction(t){return await this.init("first_action",{type:"activation",subtype:"first_action",userId:t.userId,actionName:t.actionName,timeSinceSignup:t.timeSinceSignup,source:t.source,...t.properties,timestamp:(new Date).toISOString()})}async trackSignup(t,e,i,n){return await this.init("signup_completed",{type:"activation",subtype:"signup",userId:t,method:e,source:i,...n,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_activation_analytics",{type:"query",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}class u extends p{async create(t){return await this.init("create_tracking",{type:"feature_usage",subtype:"create_custom",userId:t.userId,category:t.category,action:t.action,...t.properties,timestamp:(new Date).toISOString()})}async trackUsage(t){return await this.init("feature_usage",{type:"feature_usage",subtype:t.action,featureId:t.featureId,featureName:t.featureName,userId:t.userId,action:t.action,duration:t.duration,success:t.success,category:t.category,...t.properties,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_feature_analytics",{type:"query",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}class m extends p{async create(t){return await this.init(t.eventName,{...t.properties,type:"prompt",timestamp:(new Date).toISOString()})}async trackSubmission(t){return await this.init("prompt_submitted",{type:"prompt",subtype:"submission",promptId:t.promptId,userId:t.userId,promptType:t.promptType,model:t.model,inputTokens:t.inputTokens,conversationId:t.conversationId,...t.properties,timestamp:(new Date).toISOString()})}async trackResponse(t){return await this.init("prompt_response",{type:"prompt",subtype:"response",promptId:t.promptId,responseTime:t.responseTime,outputTokens:t.outputTokens,completed:t.completed,error:t.error,qualityScore:t.qualityScore,timestamp:(new Date).toISOString()})}async trackFeedback(t){return await this.init("prompt_feedback",{type:"prompt",subtype:"feedback",promptId:t.promptId,userId:t.userId,feedbackType:t.feedbackType,rating:t.rating,comment:t.comment,timestamp:(new Date).toISOString()})}async trackConversation(t,e,i,n){return await this.init("prompt_conversation",{type:"prompt",subtype:"conversation",conversationId:t,userId:e,turnCount:i,totalDuration:n,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_prompt_analytics",{type:"query",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}function d(t){let e=2166136261;for(let i=0;i<t.length;i++)e^=t.charCodeAt(i),e=16777619*e>>>0;return e}const l="fg_exp_assignments";class y extends p{constructor(){super(...arguments),this.experiments={},this.assignments={}}loadAssignments(){try{if("undefined"!=typeof localStorage){const t=localStorage.getItem(l);return t?JSON.parse(t):{}}}catch{}return{}}saveAssignments(){try{"undefined"!=typeof localStorage&&localStorage.setItem(l,JSON.stringify(this.assignments))}catch{}}injectAssignments(t){this.assignments={...this.assignments,...t}}getAssignments(){return{...this.assignments}}getOrCreateAnonId(){try{if("undefined"!=typeof localStorage){const t=localStorage.getItem(y.ANON_ID_KEY);if(t)return t;const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)});return localStorage.setItem(y.ANON_ID_KEY,e),e}}catch{}return"anon_"+d(String(Math.random())).toString(36)}deterministicAssign(t,e,i){const n=d(t+e);let r=0;for(const t of i)r+=t.weight;const a=n%1e4/1e4*r;let s=0;for(const t of i)if(s+=t.weight,a<s)return t.id;return i[i.length-1].id}assignVariant(t,e){this.assignments=this.loadAssignments();const i=this.assignments[t];if(i&&e.some(t=>t.id===i))return;const n=this.identityManager?.getVisitorId?.()||this.visitorId||this.getOrCreateAnonId(),r=this.deterministicAssign(n,t,e);this.assignments[t]=r,this.saveAssignments(),this.init("experiment_assignment",{type:"experiment",subtype:"assignment",experimentId:t,variantId:r,assignmentSource:"sdk_init",timestamp:(new Date).toISOString()}).catch(()=>{})}async verifyExperiments(t){const e={web_id:this.webId,experiments:t.map(t=>({experiment_id:t.id,variants:t.variants,properties:t.properties||{}}))};try{const t=await fetch(`${this.endpoint}/api/v1/experiments/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),i=await t.json();if(i.ok&&Array.isArray(i.data))for(const t of i.data)"error"!==t.action&&(this.experiments[t.experiment_id]={variants:t.variants,properties:t.properties??{},verified:!0},this.assignVariant(t.experiment_id,t.variants))}catch{for(const e of t)this.experiments[e.id]={variants:e.variants,properties:e.properties||{},verified:!1},this.assignVariant(e.id,e.variants)}}async initExperiments(t){this.assignments=this.loadAssignments(),t.length>0&&await this.verifyExperiments(t)}getLocalVariant(t){return this.assignments=this.loadAssignments(),this.assignments[t]??null}async trackLocalConversion(t,e="conversion",i=1){const n=this.getLocalVariant(t);n&&await this.init("experiment_conversion",{type:"experiment",subtype:"conversion",experimentId:t,variantId:n,metricName:e,metricValue:i,timestamp:(new Date).toISOString()})}async track(t){return await this.init(t.eventName,{...t.properties,type:"experiment",subtype:"custom",variant:t.variant,timestamp:(new Date).toISOString()})}async define(t){return await this.init("experiment_definition",{type:"experiment",subtype:"definition",...t,timestamp:(new Date).toISOString()})}async assign(t){return await this.init("experiment_assignment",{type:"experiment",subtype:"assignment",experimentId:t.experimentId,userId:t.userId,variantId:t.variantId,source:t.source||"random",timestamp:(new Date).toISOString()})}async trackConversion(t){return await this.init("experiment_conversion",{type:"experiment",subtype:"conversion",experimentId:t.experimentId,userId:t.userId,variantId:t.variantId,metricName:t.metricName,value:t.value,timestamp:(new Date).toISOString()})}async trackExposure(t,e,i){return await this.init("experiment_exposure",{type:"experiment",subtype:"exposure",experimentId:t,userId:e,variantId:i,timestamp:(new Date).toISOString()})}async getResults(t){return await this.init("get_experiment_results",{type:"query",experimentId:t,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_experiment_analytics",{type:"query",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}async getVariant(t,e){return await this.init("get_experiment_variant",{type:"query",experimentId:t,userId:e,timestamp:(new Date).toISOString()})}}y.ANON_ID_KEY="fg_anon_id";class g extends p{async track(t){return await this.init("page_view",{type:"page_view",url:t.url,path:t.path,title:t.title||"",referrer:t.referrer||"",userId:t.userId,sessionId:t.sessionId,...t.properties,timestamp:(new Date).toISOString()})}async trackScrollDepth(t){return await this.init("scroll_depth",{type:"scroll_depth",path:t.path,scrollDepth:Math.min(100,Math.max(0,t.scrollDepth)),timeAtDepth:t.timeAtDepth,timestamp:(new Date).toISOString()})}async trackTimeOnPage(t){return await this.init("time_on_page",{type:"time_on_page",path:t.path,duration:t.duration,engaged:t.engaged??!1,timestamp:(new Date).toISOString()})}async trackExit(t,e,i){return await this.init("page_exit",{type:"page_exit",path:t,duration:e,scrollDepth:i,timestamp:(new Date).toISOString()})}async getAnalytics(t,e){return await this.init("get_page_analytics",{type:"query",filter:t||{range:"last30days"},pagination:e||{page:1,limit:20},timestamp:(new Date).toISOString()})}}class h extends p{async start(t={}){return await this.init("session_start",{type:"session_start",user:t.user,device:t.device,location:t.location,source:t.source||t.utm?.utmSource,medium:t.medium||t.utm?.utmMedium,campaign:t.campaign||t.utm?.utmCampaign,utm:t.utm,landingPage:t.landingPage||("undefined"!=typeof window?window.location.href:""),referrer:t.referrer||("undefined"!=typeof document?document.referrer:""),...t.properties,timestamp:(new Date).toISOString()})}async update(t,e){return await this.init("session_update",{type:"session_update",sessionId:t,...e,timestamp:(new Date).toISOString()})}async end(t){return await this.init("session_end",{type:"session_end",sessionId:t,timestamp:(new Date).toISOString()})}async heartbeat(t){return await this.init("session_heartbeat",{type:"session_heartbeat",sessionId:t,timestamp:(new Date).toISOString()})}async getAnalytics(t,e){return await this.init("get_session_analytics",{type:"query",filter:t||{range:"last30days"},pagination:e||{page:1,limit:20},timestamp:(new Date).toISOString()})}async getRealTime(){return await this.init("get_realtime_sessions",{type:"query",realtime:!0,timestamp:(new Date).toISOString()})}}class I extends p{async track(t){return await this.init("custom_event",{type:"custom_event",eventName:t.eventName,category:t.category||"general",action:t.action,label:t.label,value:t.value,nonInteraction:t.nonInteraction||!1,userId:t.userId,sessionId:t.sessionId,...t.properties,timestamp:(new Date).toISOString()})}async trackBatch(t){const e=t.events.map(t=>({...t,timestamp:(new Date).toISOString()}));return await this.init("batch_events",{type:"batch_events",events:e,count:e.length,timestamp:(new Date).toISOString()})}async trackClick(t){return await this.init("click_event",{type:"click_event",...t,timestamp:(new Date).toISOString()})}async trackForm(t){return await this.init("form_event",{type:"form_event",...t,timestamp:(new Date).toISOString()})}async trackSearch(t){return await this.init("search_event",{type:"search_event",query:t.query,category:t.category,resultsCount:t.resultsCount,resultClicked:t.resultClicked,clickedPosition:t.clickedPosition,filters:t.filters,timestamp:(new Date).toISOString()})}async trackError(t){return await this.init("error_event",{type:"error_event",message:t.message,stack:t.stack,errorType:t.type,fatal:t.fatal||!1,context:t.context,userAction:t.userAction,timestamp:(new Date).toISOString()})}async getAnalytics(t,e){return await this.init("get_event_analytics",{type:"query",filter:t||{range:"last30days"},pagination:e||{page:1,limit:50},timestamp:(new Date).toISOString()})}}class w extends p{async user(t){return await this.init("identify_user",{type:"identify",userId:t.userId,anonymousId:t.anonymousId,traits:t.traits||{},timestamp:(new Date).toISOString()})}async updateTraits(t,e){return await this.init("update_traits",{type:"update_traits",userId:t,traits:e,timestamp:(new Date).toISOString()})}async alias(t){return await this.init("alias_user",{type:"alias",previousId:t.previousId,userId:t.userId,timestamp:(new Date).toISOString()})}async group(t){return await this.init("group_user",{type:"group",userId:t.userId,groupId:t.groupId,traits:t.traits||{},timestamp:(new Date).toISOString()})}async reset(t){return await this.init("reset_identity",{type:"reset",userId:t,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_user_analytics",{type:"query",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}class S extends p{async define(t){return await this.init("define_funnel",{type:"define_funnel",funnelId:t.funnelId,name:t.name,description:t.description,steps:t.steps,timestamp:(new Date).toISOString()})}async trackStep(t){return await this.init("funnel_step",{type:"funnel_step",funnelId:t.funnelId,step:t.step,stepNumber:t.stepNumber,userId:t.userId,sessionId:t.sessionId,...t.properties,timestamp:(new Date).toISOString()})}async trackComplete(t,e,i){return await this.init("funnel_complete",{type:"funnel_complete",funnelId:t,userId:e,...i,timestamp:(new Date).toISOString()})}async trackAbandon(t,e,i,n){return await this.init("funnel_abandon",{type:"funnel_abandon",funnelId:t,lastStep:e,userId:i,reason:n,timestamp:(new Date).toISOString()})}async analyze(t,e){return await this.init("analyze_funnel",{type:"query",funnelId:t,filter:e||{range:"last30days"},timestamp:(new Date).toISOString()})}async compare(t,e,i){return await this.init("compare_funnel",{type:"query",funnelId:t,baselineFilter:e,comparisonFilter:i,timestamp:(new Date).toISOString()})}async list(){return await this.init("list_funnels",{type:"query",timestamp:(new Date).toISOString()})}}class _ extends p{constructor(){super(...arguments),this.lastMovementTime=0,this.lastScrollTime=0}async trackClick(t){return await this.init("heatmap_click",{type:"heatmap_click",pageUrl:t.pageUrl,x:t.x,y:t.y,normalizedX:t.x/t.viewportWidth,normalizedY:t.y/t.viewportHeight,viewportWidth:t.viewportWidth,viewportHeight:t.viewportHeight,elementSelector:t.elementSelector,elementText:t.elementText?.substring(0,50),userId:t.userId,sessionId:t.sessionId,timestamp:(new Date).toISOString()})}async trackMovement(t){const e=Date.now();return e-this.lastMovementTime<_.MOVEMENT_THROTTLE_MS?{eventName:"heatmap_movement",properties:{},response:{recorded:!1,interactionId:""},timestamp:(new Date).toISOString()}:(this.lastMovementTime=e,await this.init("heatmap_movement",{type:"heatmap_movement",pageUrl:t.pageUrl,path:t.path,viewport:t.viewport,sessionId:t.sessionId,timestamp:(new Date).toISOString()}))}async trackScroll(t){const e=Date.now();return e-this.lastScrollTime<_.SCROLL_THROTTLE_MS?{eventName:"heatmap_scroll",properties:{},response:{recorded:!1,interactionId:""},timestamp:(new Date).toISOString()}:(this.lastScrollTime=e,await this.init("heatmap_scroll",{type:"heatmap_scroll",pageUrl:t.pageUrl,maxScrollDepth:t.maxScrollDepth,pageHeight:t.pageHeight,viewportHeight:t.viewportHeight,timeAtDepths:t.timeAtDepths,sessionId:t.sessionId,timestamp:(new Date).toISOString()}))}async trackRageClick(t,e,i,n){return await this.init("heatmap_rage_click",{type:"heatmap_rage_click",pageUrl:t,x:e,y:i,clickCount:n,timestamp:(new Date).toISOString()})}async getData(t,e){return await this.init("get_heatmap_data",{type:"query",pageUrl:t,filter:e||{range:"last7days"},timestamp:(new Date).toISOString()})}}_.MOVEMENT_THROTTLE_MS=100,_.SCROLL_THROTTLE_MS=500;class f extends p{async view(t){return await this.init("product_view",{type:"ecommerce",subtype:"product_view",product:{productId:t.productId,name:t.name,brand:t.brand,category:t.category,variant:t.variant,price:t.price,currency:t.currency,url:t.url,imageUrl:t.imageUrl,rating:t.rating,reviewCount:t.reviewCount,stockStatus:t.stockStatus,attributes:t.attributes},source:t.source,searchQuery:t.searchQuery,userId:t.userId,sessionId:t.sessionId,...t.properties,timestamp:(new Date).toISOString()})}async impression(t){return await this.init("product_impression",{type:"ecommerce",subtype:"product_impression",list:t.list,productCount:t.list.products.length,userId:t.userId,sessionId:t.sessionId,timestamp:(new Date).toISOString()})}async click(t){return await this.init("product_click",{type:"ecommerce",subtype:"product_click",product:t.product,listId:t.listId,position:t.position,userId:t.userId,timestamp:(new Date).toISOString()})}async quickView(t,e){return await this.init("product_quick_view",{type:"ecommerce",subtype:"product_quick_view",product:t,listId:e,timestamp:(new Date).toISOString()})}async interaction(t,e,i){return await this.init("product_interaction",{type:"ecommerce",subtype:"product_interaction",productId:t,action:e,...i,timestamp:(new Date).toISOString()})}async getAnalytics(t,e){return await this.init("get_product_analytics",{type:"ecommerce",subtype:"get_product_analytics",filter:t||{range:"last30days"},pagination:e||{page:1,limit:20},timestamp:(new Date).toISOString()})}async getProductPerformance(t,e){return await this.init("get_product_performance",{type:"ecommerce",subtype:"get_product_performance",productId:t,filter:e||{range:"last30days"},timestamp:(new Date).toISOString()})}}class v extends p{async addItem(t){const e=t.product.price*t.quantity-(t.product.discount||0);return await this.init("add_to_cart",{type:"ecommerce",subtype:"add_to_cart",product:t.product,quantity:t.quantity,lineTotal:e,cartId:t.cartId,userId:t.userId,source:t.source,...t.properties,timestamp:(new Date).toISOString()})}async removeItem(t){return await this.init("remove_from_cart",{type:"ecommerce",subtype:"remove_from_cart",product:t.product,quantity:t.quantity,cartId:t.cartId,userId:t.userId,reason:t.reason||"user_action",timestamp:(new Date).toISOString()})}async updateItem(t){return await this.init("update_cart_item",{type:"ecommerce",subtype:"update_cart_item",product:t.product,previousQuantity:t.previousQuantity,newQuantity:t.newQuantity,quantityChange:t.newQuantity-t.previousQuantity,cartId:t.cartId,timestamp:(new Date).toISOString()})}async view(t){return await this.init("view_cart",{type:"ecommerce",subtype:"view_cart",cart:t.cart,cartValue:t.cart.total,itemCount:t.cart.itemCount,userId:t.userId,timestamp:(new Date).toISOString()})}async abandon(t,e){return await this.init("cart_abandoned",{type:"ecommerce",subtype:"cart_abandoned",cart:t,cartValue:t.total,itemCount:t.itemCount,reason:e,timestamp:(new Date).toISOString()})}async applyCoupon(t,e,i,n){return await this.init("apply_coupon",{type:"ecommerce",subtype:"apply_coupon",cartId:t,couponCode:e,success:i,discount:n,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_cart_analytics",{type:"ecommerce",subtype:"get_cart_analytics",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}class b extends p{async begin(t){return await this.init("begin_checkout",{type:"ecommerce",subtype:"begin_checkout",cart:t.cart,cartValue:t.cart.total,itemCount:t.cart.itemCount,userId:t.userId,sessionId:t.sessionId,...t.properties,timestamp:(new Date).toISOString()})}async step(t){return await this.init("checkout_step",{type:"ecommerce",subtype:"checkout_step",step:t.step,stepNumber:t.stepNumber,cart:t.cart,option:t.option,userId:t.userId,timestamp:(new Date).toISOString()})}async addShipping(t){return await this.init("add_shipping_info",{type:"ecommerce",subtype:"shipping_info",cart:t.cart,shipping:t.shipping,shippingMethod:t.shipping.method,shippingCost:t.shipping.cost,userId:t.userId,timestamp:(new Date).toISOString()})}async addPayment(t){return await this.init("add_payment_info",{type:"ecommerce",subtype:"payment_info",cart:t.cart,payment:t.payment,paymentMethod:t.payment.method,userId:t.userId,timestamp:(new Date).toISOString()})}async abandon(t,e,i){return await this.init("checkout_abandoned",{type:"ecommerce",subtype:"checkout_abandoned",cart:t,step:e,cartValue:t.total,reason:i,timestamp:(new Date).toISOString()})}async paymentAttempt(t,e,i,n){return await this.init("payment_attempt",{type:"ecommerce",subtype:"payment_attempt",success:t,cart:e,payment:i,errorCode:n,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_checkout_analytics",{type:"ecommerce",subtype:"checkout_analytics",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}}class x extends p{async track(t){const e=t.order;return await this.init("purchase",{type:"ecommerce",subtype:"purchase",order:{orderId:e.orderId,items:e.items,subtotal:e.subtotal,discountTotal:e.discountTotal,shippingTotal:e.shippingTotal,taxTotal:e.taxTotal,total:e.total,currency:e.currency,shipping:e.shipping,payment:e.payment,coupons:e.coupons,affiliation:e.affiliation},revenue:e.total,itemCount:e.items.reduce((t,e)=>t+e.quantity,0),userId:t.userId,sessionId:t.sessionId,attribution:t.attribution,...t.properties,timestamp:(new Date).toISOString()})}async statusChange(t,e,i){return await this.init("order_status_change",{type:"ecommerce",subtype:"order_status_change",orderId:t,newStatus:e,previousStatus:i,timestamp:(new Date).toISOString()})}async shipped(t,e){return await this.init("order_shipped",{type:"ecommerce",subtype:"order_shipped",orderId:t,shipping:e,timestamp:(new Date).toISOString()})}async delivered(t,e){return await this.init("order_delivered",{type:"ecommerce",subtype:"order_delivered",orderId:t,deliveredAt:e||(new Date).toISOString(),timestamp:(new Date).toISOString()})}async getRevenue(t){return await this.init("get_revenue_analytics",{type:"ecommerce",subtype:"get_revenue_analytics",filter:t||{range:"last30days"},timestamp:(new Date).toISOString()})}async getRecentOrders(t){return await this.init("get_recent_orders",{type:"ecommerce",subtype:"get_recent_orders",pagination:t||{page:1,limit:20},timestamp:(new Date).toISOString()})}async getOrder(t){return await this.init("get_order",{type:"ecommerce",subtype:"get_order",orderId:t,timestamp:(new Date).toISOString()})}}class O extends p{async getCustomerValue(t){return await this.init("get_customer_value",{type:"ecommerce",subtype:"get_customer_value",userId:t,timestamp:(new Date).toISOString()})}async recordAcquisitionCost(t){return await this.init("record_acquisition_cost",{type:"ecommerce",subtype:"acquisition_cost",userId:t.userId,cost:t.cost,channel:t.channel,campaign:t.campaign,timestamp:(new Date).toISOString()})}async updateSegment(t,e){return await this.init("update_customer_segment",{type:"ecommerce",subtype:"update_customer_segment",userId:t,segment:e,timestamp:(new Date).toISOString()})}async getTopCustomers(t=100){return await this.init("get_top_customers",{type:"ecommerce",subtype:"get_top_customers",limit:t,sortBy:"totalRevenue",sortOrder:"desc",timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_ltv_analytics",{type:"ecommerce",subtype:"get_ltv_analytics",filter:t||{range:"last90days"},timestamp:(new Date).toISOString()})}}class D extends p{async start(t){return await this.init("subscription_start",{type:"ecommerce",subtype:"subscription_start",subscriptionId:t.subscriptionId,userId:t.userId,plan:t.plan,mrr:t.mrr,billingCycle:t.billingCycle,trialDays:t.trialDays,coupon:t.coupon,isTrialing:(t.trialDays||0)>0,...t.properties,timestamp:(new Date).toISOString()})}async change(t){const e=t.newMrr.amount-t.previousMrr.amount;return await this.init("subscription_change",{type:"ecommerce",subtype:"subscription_change",subscriptionId:t.subscriptionId,userId:t.userId,previousPlan:t.previousPlan,newPlan:t.newPlan,previousMrr:t.previousMrr,newMrr:t.newMrr,mrrChange:e,changeType:t.changeType,timestamp:(new Date).toISOString()})}async cancel(t){return await this.init("subscription_cancel",{type:"ecommerce",subtype:"subscription_cancel",subscriptionId:t.subscriptionId,userId:t.userId,plan:t.plan,lostMrr:t.lostMrr,reason:t.reason,feedback:t.feedback,immediate:t.immediate,timestamp:(new Date).toISOString()})}async renew(t,e,i){return await this.init("subscription_renew",{type:"ecommerce",subtype:"subscription_renew",subscriptionId:t,userId:e,mrr:i,timestamp:(new Date).toISOString()})}async trialConverted(t,e,i,n){return await this.init("trial_converted",{type:"ecommerce",subtype:"trial_converted",subscriptionId:t,userId:e,plan:i,mrr:n,timestamp:(new Date).toISOString()})}async trialExpired(t,e){return await this.init("trial_expired",{type:"ecommerce",subtype:"trial_expired",subscriptionId:t,userId:e,timestamp:(new Date).toISOString()})}async getAnalytics(t){return await this.init("get_subscription_analytics",{type:"ecommerce",subtype:"get_subscription_analytics",filter:t||{range:"thisMonth"},timestamp:(new Date).toISOString()})}}s(272);var k=s(12);(0,k.createContext)(null);var E=s(594);let T,C;(0,E.defineComponent)({name:"FlowGridCookieBanner",props:{consent:{type:Object,required:!0},config:{type:Object,default:()=>({})}},emits:["close"],setup(t,{emit:e}){const i=(0,E.ref)(!1),n=(0,E.ref)(!1),r=(0,E.ref)(t.consent.getPreferences());(0,E.onMounted)(()=>{!t.config?.forceShow&&t.consent.hasConsented()||(i.value=!0)});const a=()=>{i.value=!1,e("close")},s=()=>{t.consent.acceptAll(),a()},o=()=>{t.consent.rejectNonEssential(),a()},p=()=>{t.consent.update(r.value),a()};return()=>{if(!i.value)return null;const e=t.config?.theme??{},a=e.position??"bottom",c=e.primaryColor??"#4F46E5",u=t.config?.categoryDescriptions??{},m={position:"fixed",zIndex:e.zIndex??9999,left:0,right:0,padding:"20px",boxSizing:"border-box",fontFamily:e.fontFamily??"system-ui, -apple-system, sans-serif",backgroundColor:e.backgroundColor??"#FFFFFF",color:e.textColor??"#1F2937",boxShadow:"0 -2px 16px rgba(0,0,0,0.1)",..."top"===a?{top:0}:{},..."bottom"===a?{bottom:0}:{},..."bottom-left"===a?{bottom:"20px",left:"20px",right:"auto",maxWidth:"420px",borderRadius:e.borderRadius??"12px"}:{},..."bottom-right"===a?{bottom:"20px",right:"20px",left:"auto",maxWidth:"420px",borderRadius:e.borderRadius??"12px"}:{},..."center"===a?{top:"50%",left:"50%",right:"auto",transform:"translate(-50%, -50%)",maxWidth:"540px",borderRadius:e.borderRadius??"12px"}:{}},d={padding:"10px 20px",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"14px",fontWeight:600,backgroundColor:c,color:"#FFFFFF"},l={...d,backgroundColor:"transparent",color:c,border:`1px solid ${c}`},y=t.config?.title??"Cookie Preferences",g=t.config?.description??"We use cookies to improve your experience and analyse site traffic.",h=n.value?[(0,E.h)("label",{style:{display:"flex",alignItems:"center",marginBottom:"10px",fontSize:"14px"}},[(0,E.h)("input",{type:"checkbox",checked:!0,disabled:!0,style:{marginRight:"8px"}}),(0,E.h)("span",{},[(0,E.h)("strong",{},"Necessary"),(0,E.h)("span",{style:{opacity:.7,marginLeft:"8px"}},u.necessary??"Required for the site to function.")])]),...["analytics","marketing","preferences"].map(t=>(0,E.h)("label",{style:{display:"flex",alignItems:"center",marginBottom:"10px",fontSize:"14px",cursor:"pointer"}},[(0,E.h)("input",{type:"checkbox",checked:r.value[t],onChange:()=>(t=>{r.value={...r.value,[t]:!r.value[t]}})(t),style:{marginRight:"8px"}}),(0,E.h)("span",{},[(0,E.h)("strong",{},t.charAt(0).toUpperCase()+t.slice(1)),(0,E.h)("span",{style:{opacity:.7,marginLeft:"8px"}},u[t]??"")])]))]:[];return(0,E.h)("div",{style:m,role:"dialog","aria-label":y},[(0,E.h)("div",{style:{maxWidth:"960px",margin:"0 auto"}},[(0,E.h)("h3",{style:{margin:"0 0 8px",fontSize:"18px",fontWeight:700}},y),(0,E.h)("p",{style:{margin:"0 0 16px",fontSize:"14px",lineHeight:1.5,opacity:.8}},g),...n.value?[(0,E.h)("div",{style:{marginBottom:"16px"}},h)]:[],(0,E.h)("div",{style:{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"center"}},[(0,E.h)("button",{style:d,onClick:s},t.config?.acceptAllLabel??"Accept All"),(0,E.h)("button",{style:l,onClick:o},t.config?.rejectAllLabel??"Reject All"),n.value?(0,E.h)("button",{style:d,onClick:p},t.config?.saveLabel??"Save Preferences"):(0,E.h)("button",{style:{...l,border:"none",textDecoration:"underline"},onClick:()=>{n.value=!0}},t.config?.customizeLabel??"Customize"),t.config?.privacyPolicyUrl?(0,E.h)("a",{href:t.config.privacyPolicyUrl,style:{fontSize:"13px",opacity:.7,marginLeft:"auto"},target:"_blank",rel:"noopener noreferrer"},"Privacy Policy"):null])])])}}}),Symbol("FlowGrid");try{const t=s(500);T=t.usePathname,C=t.useSearchParams}catch{T=()=>"undefined"!=typeof window?window.location.pathname:"/",C=()=>"undefined"!=typeof window?new URLSearchParams(window.location.search):new URLSearchParams}return(0,k.createContext)(null),o.default})());
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FlowGrid SDK - Main Entry Point
|
|
3
|
+
* @module flowgrid-sdk
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* FlowGrid SDK provides comprehensive product analytics and ecommerce
|
|
7
|
+
* tracking capabilities with full type safety and chart-ready data outputs.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Import core features
|
|
12
|
+
* import { Activation, TrackFeature, Experiment } from 'flowgrid-sdk';
|
|
13
|
+
*
|
|
14
|
+
* // Import analytics features
|
|
15
|
+
* import { PageViews, Sessions, Events, Funnels } from 'flowgrid-sdk/analytics';
|
|
16
|
+
*
|
|
17
|
+
* // Import ecommerce features
|
|
18
|
+
* import { Products, Cart, Checkout, Purchases } from 'flowgrid-sdk/ecommerce';
|
|
19
|
+
*
|
|
20
|
+
* // Or import all from main entry
|
|
21
|
+
* import {
|
|
22
|
+
* Activation,
|
|
23
|
+
* PageViews,
|
|
24
|
+
* Products,
|
|
25
|
+
* Subscriptions
|
|
26
|
+
* } from 'flowgrid-sdk';
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// UNIFIED SDK CLASS
|
|
31
|
+
// ============================================================================
|
|
32
|
+
export { FlowGrid } from "./lib/flowgrid";
|
|
33
|
+
export { default } from "./lib/flowgrid";
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// CORE SDK EXPORTS
|
|
36
|
+
// ============================================================================
|
|
37
|
+
export { Activation, TrackFeature, TrackPrompt, Experiment } from "./lib/features/core";
|
|
38
|
+
// ============================================================================
|
|
39
|
+
// PRODUCT ANALYTICS EXPORTS
|
|
40
|
+
// ============================================================================
|
|
41
|
+
export { PageViews, Sessions, Events, Identify, Funnels, Retention, Attribution, Heatmaps, PerformanceTracking, PerformanceTracking as Performance, SessionReplay, } from "./lib/features/analytics";
|
|
42
|
+
// ============================================================================
|
|
43
|
+
// ECOMMERCE EXPORTS
|
|
44
|
+
// ============================================================================
|
|
45
|
+
export { Products, CartTracking, Checkout, Purchases, Refunds, Promotions, WishlistTracking, CustomerLTV, SearchAnalytics, Subscriptions } from "./lib/features/ecommerce";
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// ENTERPRISE FEATURES EXPORTS
|
|
48
|
+
// ============================================================================
|
|
49
|
+
// Base transport class for custom feature development
|
|
50
|
+
export { FlowGridTransport } from "./lib/client/transport";
|
|
51
|
+
export { Engagement, Cohorts, ChurnAnalytics, Monetization, MultiPathFunnels, SupportAnalytics, AcquisitionAnalytics, PathAnalytics, AlertsAnalytics, SecurityAnalytics, Forecasting } from "./lib/features/enterprise";
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// STORAGE UTILITIES
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Read visitor identity and UTM attribution from FlowGrid tracking script storage
|
|
56
|
+
export { getCookie, getVisitorId, getSessionId, getWebId, getUTM, getUTMHistory, } from "./lib/utils/storage";
|
|
57
|
+
// ============================================================================
|
|
58
|
+
// IDENTITY MANAGER
|
|
59
|
+
// ============================================================================
|
|
60
|
+
export { IdentityManager } from "./lib/utils/identity";
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// CONSENT MANAGEMENT
|
|
63
|
+
// ============================================================================
|
|
64
|
+
export { ConsentManager } from "./lib/consent";
|
|
2
65
|
//# sourceMappingURL=index.js.map
|