@active-reach/web-sdk 1.0.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.
Files changed (80) hide show
  1. package/README.md +576 -0
  2. package/dist/aegis-sw.js +1 -0
  3. package/dist/aegis.min.js +2 -0
  4. package/dist/aegis.min.js.map +1 -0
  5. package/dist/analytics-B11keZ55.mjs +1854 -0
  6. package/dist/analytics-B11keZ55.mjs.map +1 -0
  7. package/dist/cdn.d.ts +18 -0
  8. package/dist/cdn.d.ts.map +1 -0
  9. package/dist/core/analytics.d.ts +47 -0
  10. package/dist/core/analytics.d.ts.map +1 -0
  11. package/dist/core/queue.d.ts +35 -0
  12. package/dist/core/queue.d.ts.map +1 -0
  13. package/dist/core/sdk-config-poller.d.ts +59 -0
  14. package/dist/core/sdk-config-poller.d.ts.map +1 -0
  15. package/dist/core/session.d.ts +41 -0
  16. package/dist/core/session.d.ts.map +1 -0
  17. package/dist/core/transport.d.ts +50 -0
  18. package/dist/core/transport.d.ts.map +1 -0
  19. package/dist/inapp/AegisInAppManager.d.ts +126 -0
  20. package/dist/inapp/AegisInAppManager.d.ts.map +1 -0
  21. package/dist/inapp/index.d.ts +4 -0
  22. package/dist/inapp/index.d.ts.map +1 -0
  23. package/dist/inapp/renderPreview.d.ts +25 -0
  24. package/dist/inapp/renderPreview.d.ts.map +1 -0
  25. package/dist/index.d.ts +23 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +4296 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/integrations/react.d.ts +19 -0
  30. package/dist/integrations/react.d.ts.map +1 -0
  31. package/dist/placements/AegisPlacementManager.d.ts +88 -0
  32. package/dist/placements/AegisPlacementManager.d.ts.map +1 -0
  33. package/dist/plugins/registry.d.ts +13 -0
  34. package/dist/plugins/registry.d.ts.map +1 -0
  35. package/dist/push/AegisWebPush.d.ts +51 -0
  36. package/dist/push/AegisWebPush.d.ts.map +1 -0
  37. package/dist/push/AegisWebPush.js +203 -0
  38. package/dist/push/AegisWebPush.js.map +1 -0
  39. package/dist/react.js +70 -0
  40. package/dist/react.js.map +1 -0
  41. package/dist/snippet.min.js +1 -0
  42. package/dist/triggers/TriggerEngine.d.ts +114 -0
  43. package/dist/triggers/TriggerEngine.d.ts.map +1 -0
  44. package/dist/triggers/index.d.ts +3 -0
  45. package/dist/triggers/index.d.ts.map +1 -0
  46. package/dist/types/config.d.ts +73 -0
  47. package/dist/types/config.d.ts.map +1 -0
  48. package/dist/types/events.d.ts +127 -0
  49. package/dist/types/events.d.ts.map +1 -0
  50. package/dist/types/index.d.ts +5 -0
  51. package/dist/types/index.d.ts.map +1 -0
  52. package/dist/types/plugin.d.ts +21 -0
  53. package/dist/types/plugin.d.ts.map +1 -0
  54. package/dist/types/type-safe-events.d.ts +14 -0
  55. package/dist/types/type-safe-events.d.ts.map +1 -0
  56. package/dist/utils/canonical-identity.d.ts +29 -0
  57. package/dist/utils/canonical-identity.d.ts.map +1 -0
  58. package/dist/utils/consent.d.ts +40 -0
  59. package/dist/utils/consent.d.ts.map +1 -0
  60. package/dist/utils/debounce.d.ts +3 -0
  61. package/dist/utils/debounce.d.ts.map +1 -0
  62. package/dist/utils/device.d.ts +6 -0
  63. package/dist/utils/device.d.ts.map +1 -0
  64. package/dist/utils/identity.d.ts +27 -0
  65. package/dist/utils/identity.d.ts.map +1 -0
  66. package/dist/utils/index.d.ts +7 -0
  67. package/dist/utils/index.d.ts.map +1 -0
  68. package/dist/utils/logger.d.ts +15 -0
  69. package/dist/utils/logger.d.ts.map +1 -0
  70. package/dist/utils/storage.d.ts +20 -0
  71. package/dist/utils/storage.d.ts.map +1 -0
  72. package/dist/utils/url-parser.d.ts +23 -0
  73. package/dist/utils/url-parser.d.ts.map +1 -0
  74. package/dist/utils/uuid.d.ts +4 -0
  75. package/dist/utils/uuid.d.ts.map +1 -0
  76. package/dist/widgets/AegisWidgetManager.d.ts +194 -0
  77. package/dist/widgets/AegisWidgetManager.d.ts.map +1 -0
  78. package/dist/widgets/index.d.ts +3 -0
  79. package/dist/widgets/index.d.ts.map +1 -0
  80. package/package.json +73 -0
@@ -0,0 +1,194 @@
1
+ /**
2
+ * AegisWidgetManager - Web SDK Widget Module
3
+ *
4
+ * Smart Pull architecture for persistent web widgets.
5
+ *
6
+ * Features:
7
+ * - Gamification (spin wheel, scratch card) with server-side prize generation
8
+ * - Chat bubbles (WhatsApp, support)
9
+ * - Social proof toasts (real-time purchase notifications)
10
+ * - Feedback forms (NPS, surveys)
11
+ *
12
+ * Security:
13
+ * - XSS Protection: Uses DOM APIs instead of innerHTML
14
+ * - Server-side prize generation prevents client manipulation
15
+ * - URL validation prevents javascript: protocol injection
16
+ *
17
+ * Architecture:
18
+ * - Fetches widget configs from /v1/widgets/config on page load
19
+ * - Integrates with TriggerEngine for behavioral triggers
20
+ * - Tracks widget events (show, click, dismiss, submit)
21
+ * - Server-side prize generation for gamification
22
+ */
23
+ import { TriggerEngine } from '../triggers/TriggerEngine';
24
+ export interface WidgetConfig {
25
+ widget_id: string;
26
+ widget_type: 'chat_bubble' | 'spin_wheel' | 'scratch_card' | 'toast' | 'feedback_form' | 'exit_intent_popup';
27
+ name: string;
28
+ config: Record<string, any>;
29
+ position?: string;
30
+ priority: number;
31
+ trigger_rules?: {
32
+ type: 'exit_intent' | 'scroll_depth' | 'time_on_page' | 'immediate';
33
+ config?: Record<string, any>;
34
+ };
35
+ }
36
+ export interface GamificationPrize {
37
+ prize_label: string;
38
+ prize_value?: string;
39
+ coupon_code?: string;
40
+ play_id: string;
41
+ }
42
+ export interface AegisWidgetConfig {
43
+ writeKey: string;
44
+ apiHost?: string;
45
+ userId?: string;
46
+ contactId?: string;
47
+ organizationId?: string;
48
+ debugMode?: boolean;
49
+ triggerEngine?: TriggerEngine;
50
+ enablePrefetch?: boolean;
51
+ cssCustomization?: WidgetCSSCustomization;
52
+ onEvent?: (eventType: string, data: any) => void;
53
+ /** Source platform passed as X-Source-Platform header so the API
54
+ * can filter campaigns whose display_rules.sources restricts them
55
+ * to specific integrations (e.g. 'shopify', 'woocommerce'). */
56
+ sourcePlatform?: 'web' | 'shopify' | 'woocommerce' | 'mobile_sdk';
57
+ }
58
+ export interface WidgetCSSCustomization {
59
+ exitIntent?: {
60
+ backgroundColor?: string;
61
+ textColor?: string;
62
+ accentColor?: string;
63
+ borderRadius?: string;
64
+ fontFamily?: string;
65
+ overlayOpacity?: number;
66
+ };
67
+ spinWheel?: {
68
+ backgroundColor?: string;
69
+ textColor?: string;
70
+ accentColor?: string;
71
+ borderRadius?: string;
72
+ fontFamily?: string;
73
+ wheelColors?: string[];
74
+ buttonColor?: string;
75
+ };
76
+ chatBubble?: {
77
+ backgroundColor?: string;
78
+ textColor?: string;
79
+ position?: 'bottom_right' | 'bottom_left' | 'top_right' | 'top_left';
80
+ size?: 'small' | 'medium' | 'large';
81
+ };
82
+ }
83
+ export interface PrefetchWidgetConfig {
84
+ exit_intent?: {
85
+ enabled: boolean;
86
+ type: 'cart_recovery' | 'lead_gen';
87
+ tier?: string;
88
+ title?: string;
89
+ message?: string;
90
+ discount_code?: string;
91
+ discount_percentage?: number;
92
+ cta_text?: string;
93
+ cta_url?: string;
94
+ background_color?: string;
95
+ text_color?: string;
96
+ accent_color?: string;
97
+ show_cart_items?: boolean;
98
+ show_timer?: boolean;
99
+ timer_minutes?: number;
100
+ priority: number;
101
+ mobile_triggers?: {
102
+ scroll_velocity?: boolean;
103
+ scroll_threshold?: number;
104
+ scroll_min_position?: number;
105
+ scroll_cooldown?: number;
106
+ idle_timer?: boolean;
107
+ idle_seconds?: number;
108
+ visibility_change?: boolean;
109
+ back_button?: boolean;
110
+ };
111
+ };
112
+ spin_wheel?: {
113
+ enabled: boolean;
114
+ type: 'lead_gen' | 'cart_recovery';
115
+ title?: string;
116
+ prizes?: any[];
117
+ priority: number;
118
+ };
119
+ }
120
+ export interface CartData {
121
+ cart_id: string;
122
+ cart_total: number;
123
+ cart_currency: string;
124
+ cart_items: Array<{
125
+ product_id: string;
126
+ product_name?: string;
127
+ quantity: number;
128
+ price?: number;
129
+ }>;
130
+ }
131
+ export declare class AegisWidgetManager {
132
+ private writeKey;
133
+ private apiHost;
134
+ private userId?;
135
+ private contactId?;
136
+ private organizationId?;
137
+ private debugMode;
138
+ private triggerEngine?;
139
+ private enablePrefetch;
140
+ private cssCustomization;
141
+ private onEvent?;
142
+ private sourcePlatform?;
143
+ private widgets;
144
+ private renderedWidgets;
145
+ private isInitialized;
146
+ private prefetchWidgetConfigs;
147
+ private cartData?;
148
+ constructor(config: AegisWidgetConfig);
149
+ updateCSSCustomization(customization: WidgetCSSCustomization): void;
150
+ private emitEvent;
151
+ initialize(): Promise<void>;
152
+ setCartData(cartData: CartData): void;
153
+ private detectPlatformCart;
154
+ private normalizeShopifyCart;
155
+ private normalizeWooCart;
156
+ private normalizeMagentoCart;
157
+ private preloadWidgetAssets;
158
+ private fetchPrefetchConfigs;
159
+ private fetchWidgets;
160
+ private renderImmediateWidgets;
161
+ private setupTriggerListeners;
162
+ private setupExitIntentWithPrefetch;
163
+ private sendCartAbandonmentBeacon;
164
+ private renderWidget;
165
+ private renderChatBubble;
166
+ private renderSpinWheel;
167
+ private renderSpinWheelWidget;
168
+ private validatePhone;
169
+ private validateEmail;
170
+ private submitSpinWheel;
171
+ private showSpinWheelPrize;
172
+ private detectGeoRegion;
173
+ private getUTMParams;
174
+ private getSessionId;
175
+ private getAnonymousId;
176
+ private renderScratchCard;
177
+ private renderToast;
178
+ private renderFeedbackForm;
179
+ private renderExitIntentPopup;
180
+ private generatePrize;
181
+ private showPrizeResult;
182
+ private submitFeedback;
183
+ private trackEvent;
184
+ private sanitizeUrl;
185
+ private sanitizeColor;
186
+ private getDeviceType;
187
+ private isMobileDevice;
188
+ private addAnimationStyles;
189
+ private renderCartRecoveryPopup;
190
+ private renderLeadGenPopup;
191
+ private interpolateCartVariables;
192
+ private log;
193
+ }
194
+ //# sourceMappingURL=AegisWidgetManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AegisWidgetManager.d.ts","sourceRoot":"","sources":["../../src/widgets/AegisWidgetManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { AegisWidgetManager } from './AegisWidgetManager';
2
+ export type { WidgetConfig, GamificationPrize, AegisWidgetConfig } from './AegisWidgetManager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@active-reach/web-sdk",
3
+ "version": "1.0.0",
4
+ "description": "Web SDK for Active Reach Intelligence — event tracking, identity resolution, in-app messaging, web push, and placements",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "browser": "./dist/aegis.min.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./react": {
16
+ "types": "./dist/integrations/react.d.ts",
17
+ "import": "./dist/react.js",
18
+ "default": "./dist/react.js"
19
+ },
20
+ "./push": {
21
+ "types": "./dist/push/AegisWebPush.d.ts",
22
+ "import": "./dist/push/AegisWebPush.js",
23
+ "default": "./dist/push/AegisWebPush.js"
24
+ },
25
+ "./cdn": "./dist/aegis.min.js",
26
+ "./snippet": "./dist/snippet.min.js",
27
+ "./service-worker": "./dist/aegis-sw.js"
28
+ },
29
+ "sideEffects": false,
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "keywords": [
36
+ "analytics",
37
+ "tracking",
38
+ "customer-data",
39
+ "web-sdk",
40
+ "event-tracking",
41
+ "active-reach",
42
+ "active-reach-intelligence",
43
+ "marketing-automation"
44
+ ],
45
+ "license": "MIT",
46
+ "scripts": {
47
+ "build": "vite build && node scripts/build-cdn.js && npm run build:snippet && npm run build:types",
48
+ "build:snippet": "node scripts/minify-snippet.js",
49
+ "build:types": "tsc --project tsconfig.build.json",
50
+ "test": "vitest run",
51
+ "test:watch": "vitest",
52
+ "lint": "eslint src --ext .ts,.tsx",
53
+ "typecheck": "tsc --noEmit",
54
+ "dev": "vite build --watch"
55
+ },
56
+ "devDependencies": {
57
+ "@types/node": "^20.10.0",
58
+ "@types/react": "^18.3.1",
59
+ "typescript": "^5.6.2",
60
+ "vite": "^6.4.2",
61
+ "vitest": "^3.2.1",
62
+ "eslint": "^9.16.0",
63
+ "terser": "^5.27.0"
64
+ },
65
+ "peerDependencies": {
66
+ "react": ">=18.0.0"
67
+ },
68
+ "peerDependenciesMeta": {
69
+ "react": {
70
+ "optional": true
71
+ }
72
+ }
73
+ }