@active-reach/web-sdk 1.15.0 → 1.19.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 +35 -54
- package/dist/aegis-sw.js +1 -1
- package/dist/aegis.min.js +1 -1
- package/dist/aegis.min.js.map +1 -1
- package/dist/{analytics-CjLItVo2.mjs → analytics-DblhjFhs.mjs} +66 -3
- package/dist/analytics-DblhjFhs.mjs.map +1 -0
- package/dist/cdn.d.ts +5 -2
- package/dist/cdn.d.ts.map +1 -1
- package/dist/chat/AegisChat.d.ts +138 -0
- package/dist/chat/AegisChat.d.ts.map +1 -0
- package/dist/chat/index.d.ts +3 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/core/analytics.d.ts +37 -2
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/ecommerce/index.d.ts +32 -14
- package/dist/ecommerce/index.d.ts.map +1 -1
- package/dist/inapp/AegisInAppManager.d.ts +323 -7
- package/dist/inapp/AegisInAppManager.d.ts.map +1 -1
- package/dist/inapp/devicePairing.d.ts +70 -0
- package/dist/inapp/devicePairing.d.ts.map +1 -0
- package/dist/inapp/index.d.ts +2 -0
- package/dist/inapp/index.d.ts.map +1 -1
- package/dist/inapp/renderPreview.d.ts.map +1 -1
- package/dist/inapp/renderers/active-web-chat.d.ts +38 -0
- package/dist/inapp/renderers/active-web-chat.d.ts.map +1 -0
- package/dist/inapp/renderers/carousel-cards.d.ts.map +1 -1
- package/dist/inapp/renderers/coachmark-tour.d.ts.map +1 -1
- package/dist/inapp/renderers/games.d.ts +27 -0
- package/dist/inapp/renderers/games.d.ts.map +1 -0
- package/dist/inapp/renderers/index.d.ts +8 -3
- package/dist/inapp/renderers/index.d.ts.map +1 -1
- package/dist/inapp/renderers/product-recommendation.d.ts +4 -4
- package/dist/inapp/renderers/product-recommendation.d.ts.map +1 -1
- package/dist/inapp/renderers/progress-bar.d.ts +14 -0
- package/dist/inapp/renderers/progress-bar.d.ts.map +1 -1
- package/dist/inapp/renderers/sticky-bar.d.ts.map +1 -1
- package/dist/inapp/renderers/stories.d.ts +31 -0
- package/dist/inapp/renderers/stories.d.ts.map +1 -0
- package/dist/inapp/renderers/types.d.ts +73 -2
- package/dist/inapp/renderers/types.d.ts.map +1 -1
- package/dist/inapp/renderers/video.d.ts +20 -0
- package/dist/inapp/renderers/video.d.ts.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8411 -3154
- package/dist/index.js.map +1 -1
- package/dist/loyalty/AegisLoyaltyManager.d.ts +120 -0
- package/dist/loyalty/AegisLoyaltyManager.d.ts.map +1 -0
- package/dist/loyalty/index.d.ts +3 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/push/AegisWebPush.d.ts.map +1 -1
- package/dist/push/AegisWebPush.js +13 -2
- package/dist/push/AegisWebPush.js.map +1 -1
- package/dist/react.js +1 -1
- package/dist/runtime/AegisMessageRuntime.d.ts +61 -1
- package/dist/runtime/AegisMessageRuntime.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/analytics-CjLItVo2.mjs.map +0 -1
- package/dist/placements/AegisPlacementManager.d.ts +0 -97
- package/dist/placements/AegisPlacementManager.d.ts.map +0 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AegisChat — the website / in-app "Shopping Assistant" launcher (Track A).
|
|
3
|
+
*
|
|
4
|
+
* A floating bottom-right bubble that expands into a chat panel, letting a
|
|
5
|
+
* customer converse with the SAME channel-neutral chat agent that powers
|
|
6
|
+
* WhatsApp. This is pure transport + surface — it does NOT contain any agent
|
|
7
|
+
* intelligence. Messages go to the gateway (`POST /v1/chat/message` →
|
|
8
|
+
* `chatbot.inbound channel='web'`); replies arrive as a thin `chat.message`
|
|
9
|
+
* SSE nudge (per-session, ticket-authed) that triggers a re-fetch of the
|
|
10
|
+
* rendered thread from `GET /v1/chat/history`. REST polling is the fallback
|
|
11
|
+
* when the panel is closed or SSE drops.
|
|
12
|
+
*
|
|
13
|
+
* Identity: true-anonymous visitors work — we send the SDK's `anonymous_id`
|
|
14
|
+
* (first-party cookie) and the server resolves/creates a stable contact. The
|
|
15
|
+
* server returns the opaque `contact_id`, which we echo on every subsequent
|
|
16
|
+
* message so the server hits the indexed PK path (and the anon→known stitch
|
|
17
|
+
* upgrades the contact when the customer later identifies).
|
|
18
|
+
*
|
|
19
|
+
* Rendering reuses the `web` payload the backend already emits
|
|
20
|
+
* (`chat_response_renderer.py`): text + `{type:'product_carousel', products:[…]}`.
|
|
21
|
+
*/
|
|
22
|
+
export interface AegisChatConfig {
|
|
23
|
+
writeKey: string;
|
|
24
|
+
/** Gateway origin (the single public SDK surface). Falls back to same-origin. */
|
|
25
|
+
apiHost?: string;
|
|
26
|
+
organizationId?: string;
|
|
27
|
+
/** Known contact id when the visitor is already identified; else anonymous. */
|
|
28
|
+
contactId?: string;
|
|
29
|
+
/** 'web' (browser) or 'in_app' (mobile webview). Opaque to the agent. */
|
|
30
|
+
channel?: 'web' | 'in_app';
|
|
31
|
+
debugMode?: boolean;
|
|
32
|
+
/** Launcher header title shown to the customer. Default "Shopping Assistant";
|
|
33
|
+
* the storefront passes "Ask {Brand}". */
|
|
34
|
+
title?: string;
|
|
35
|
+
/** First assistant greeting bubble + attention tooltip text. */
|
|
36
|
+
greeting?: string;
|
|
37
|
+
/** Accent colour for the bubble + customer bubbles. Defaults to brand. */
|
|
38
|
+
accentColor?: string;
|
|
39
|
+
/** Bubble icon style. 'sparkle' (default, signals AI) | 'chat' (plain bubble)
|
|
40
|
+
* | 'logo' (renders `logoUrl`). No robot — brand-friendly by design. */
|
|
41
|
+
icon?: 'sparkle' | 'chat' | 'logo';
|
|
42
|
+
/** Image URL used when `icon: 'logo'` (brand logo / mascot). */
|
|
43
|
+
logoUrl?: string;
|
|
44
|
+
/** Corner the launcher docks to. */
|
|
45
|
+
position?: 'bottom-right' | 'bottom-left';
|
|
46
|
+
/** Chat agent persona key bound to this launcher (campaign-driven). Sent to
|
|
47
|
+
* the backend on /v1/chat/message; honored server-side (Active Web Chat
|
|
48
|
+
* Phase E). Absent = the tenant's default persona. */
|
|
49
|
+
agentPersona?: string;
|
|
50
|
+
/** Quick-reply chips offered under the greeting (campaign-driven). */
|
|
51
|
+
quickReplies?: string[];
|
|
52
|
+
/** Fired when the panel transitions closed→open — a chat session begins.
|
|
53
|
+
* Used by the Active Web Chat renderer to report a campaign engagement. */
|
|
54
|
+
onSessionStart?: () => void;
|
|
55
|
+
/** Fired when the panel transitions open→closed — the session ends. */
|
|
56
|
+
onSessionEnd?: () => void;
|
|
57
|
+
/** Fired after a customer message is accepted by the server. */
|
|
58
|
+
onMessageSent?: () => void;
|
|
59
|
+
}
|
|
60
|
+
export declare class AegisChat {
|
|
61
|
+
private readonly writeKey;
|
|
62
|
+
private readonly apiHost;
|
|
63
|
+
private contactId?;
|
|
64
|
+
private readonly channel;
|
|
65
|
+
private readonly debugMode;
|
|
66
|
+
private readonly title;
|
|
67
|
+
private readonly greeting;
|
|
68
|
+
private readonly accent;
|
|
69
|
+
private readonly icon;
|
|
70
|
+
private readonly logoUrl?;
|
|
71
|
+
private readonly position;
|
|
72
|
+
private readonly agentPersona?;
|
|
73
|
+
private readonly quickReplies?;
|
|
74
|
+
private readonly onSessionStart?;
|
|
75
|
+
private readonly onSessionEnd?;
|
|
76
|
+
private readonly onMessageSent?;
|
|
77
|
+
private anonymousId?;
|
|
78
|
+
/** Per-session SSE ticket from the last /message response. Authorizes both
|
|
79
|
+
* the SSE subscription AND the contact-scoped /history read (the server
|
|
80
|
+
* requires it — chat history is not readable by contact_id alone). */
|
|
81
|
+
private sseTicket?;
|
|
82
|
+
private open;
|
|
83
|
+
private initialized;
|
|
84
|
+
private root?;
|
|
85
|
+
private bubble?;
|
|
86
|
+
private panel?;
|
|
87
|
+
private thread?;
|
|
88
|
+
private input?;
|
|
89
|
+
private unread;
|
|
90
|
+
private badge?;
|
|
91
|
+
private eventSource?;
|
|
92
|
+
private pollTimer?;
|
|
93
|
+
private renderedIds;
|
|
94
|
+
/** Contents of optimistically-rendered customer messages awaiting their
|
|
95
|
+
* server echo — used to dedup the history refetch (double-message fix). */
|
|
96
|
+
private pendingEcho;
|
|
97
|
+
private typingEl?;
|
|
98
|
+
private greetingTip?;
|
|
99
|
+
private attentionTimer?;
|
|
100
|
+
private hasInteracted;
|
|
101
|
+
constructor(config: AegisChatConfig);
|
|
102
|
+
initialize(): void;
|
|
103
|
+
/** Called by the runtime when the visitor identifies. */
|
|
104
|
+
updateContactId(contactId: string): void;
|
|
105
|
+
/** Programmatic open (used by the proactive TriggerEngine wiring). */
|
|
106
|
+
openPanel(prefill?: string): void;
|
|
107
|
+
closePanel(): void;
|
|
108
|
+
destroy(): void;
|
|
109
|
+
private send;
|
|
110
|
+
private connectSSE;
|
|
111
|
+
private disconnectSSE;
|
|
112
|
+
private startPolling;
|
|
113
|
+
private stopPolling;
|
|
114
|
+
private refreshHistory;
|
|
115
|
+
/** Bubble glyph by config. Default 'sparkle' (signals AI, brand-friendly —
|
|
116
|
+
* never a robot). 'logo' renders the brand image; falls back to sparkle. */
|
|
117
|
+
private bubbleIconHtml;
|
|
118
|
+
private mount;
|
|
119
|
+
/** Campaign-configured quick-reply chips shown under the greeting. Tapping a
|
|
120
|
+
* chip sends it as the customer's first message, then the row is removed. */
|
|
121
|
+
private renderQuickReplies;
|
|
122
|
+
private appendBubble;
|
|
123
|
+
/** Render a `web`-format interactive message. Currently product_carousel. */
|
|
124
|
+
private renderInteractive;
|
|
125
|
+
private appendSystem;
|
|
126
|
+
private appendSystemGreeting;
|
|
127
|
+
private bumpUnread;
|
|
128
|
+
private clearUnread;
|
|
129
|
+
private scrollToBottom;
|
|
130
|
+
private readAnonId;
|
|
131
|
+
private showTyping;
|
|
132
|
+
private hideTyping;
|
|
133
|
+
private scheduleAttention;
|
|
134
|
+
private dismissAttention;
|
|
135
|
+
private log;
|
|
136
|
+
private injectStyles;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=AegisChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AegisChat.d.ts","sourceRoot":"","sources":["../../src/chat/AegisChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/core/analytics.d.ts
CHANGED
|
@@ -4,6 +4,30 @@ import { ConsentPreferences, ConsentCategory } from '../utils/consent';
|
|
|
4
4
|
import { EcommerceTracker } from '../ecommerce';
|
|
5
5
|
import { EventGovernanceHint } from '../governance';
|
|
6
6
|
import { UserNamespace } from './user-namespace';
|
|
7
|
+
/** One redeemable reward for the identified contact (from `contact_entitlements`). */
|
|
8
|
+
export interface EntitlementItem {
|
|
9
|
+
id: string;
|
|
10
|
+
/** coupon | discount | points | free_delivery | freebie */
|
|
11
|
+
type: string;
|
|
12
|
+
label: string | null;
|
|
13
|
+
/** Real, redeemable code (coupon/discount) — apply at checkout. */
|
|
14
|
+
coupon_code: string | null;
|
|
15
|
+
/** Awarded points (points grants). */
|
|
16
|
+
points: number | null;
|
|
17
|
+
/** Outlet the grant is attributed to; null = org-wide. */
|
|
18
|
+
location_id: string | null;
|
|
19
|
+
/** ISO 8601 expiry, or null for no expiry. */
|
|
20
|
+
expires_at: string | null;
|
|
21
|
+
}
|
|
22
|
+
/** Response of `aegis.getRewards()` / `GET /api/v1/sdk/entitlements`. */
|
|
23
|
+
export interface RewardsResponse {
|
|
24
|
+
contact_id: string;
|
|
25
|
+
loyalty: {
|
|
26
|
+
points_balance: number;
|
|
27
|
+
tier: string | null;
|
|
28
|
+
};
|
|
29
|
+
entitlements: EntitlementItem[];
|
|
30
|
+
}
|
|
7
31
|
export declare class Aegis {
|
|
8
32
|
private config;
|
|
9
33
|
private storage;
|
|
@@ -177,10 +201,10 @@ export declare class Aegis {
|
|
|
177
201
|
*/
|
|
178
202
|
/**
|
|
179
203
|
* Public so peer SDK surfaces (AegisMessageRuntime / AegisInAppManager /
|
|
180
|
-
*
|
|
204
|
+
* AegisWidgetManager) can plumb the same
|
|
181
205
|
* resolved workspace into their own gateway POSTs. Each manager calls
|
|
182
206
|
* the gateway on its own endpoint (`/v1/in_app/events`,
|
|
183
|
-
* `/v1/
|
|
207
|
+
* `/v1/widgets/track-event`); without this,
|
|
184
208
|
* those events arrive at event-ingress with no workspace_id stamped
|
|
185
209
|
* → impressions/clicks fall back to the org's primary workspace and
|
|
186
210
|
* cross-outlet attribution breaks.
|
|
@@ -225,6 +249,17 @@ export declare class Aegis {
|
|
|
225
249
|
flush(): Promise<void>;
|
|
226
250
|
getAnonymousId(): string | null;
|
|
227
251
|
getUserId(): string | null;
|
|
252
|
+
/**
|
|
253
|
+
* Fetch the identified contact's REDEEMABLE rewards — coupon codes the
|
|
254
|
+
* storefront can auto-apply at checkout + loyalty points balance/tier.
|
|
255
|
+
* Mirrors `GET /api/v1/sdk/entitlements`. Returns `null` when the SDK is
|
|
256
|
+
* uninitialised, the contact is anonymous, the endpoint returns 204 (nothing
|
|
257
|
+
* to show), or on any network/HTTP error — callers degrade gracefully.
|
|
258
|
+
*
|
|
259
|
+
* Scoped to the identified contact (own grants only) and, when an outlet is
|
|
260
|
+
* resolvable (`getEffectiveLocationId()`), to org-wide + that outlet's grants.
|
|
261
|
+
*/
|
|
262
|
+
getRewards(): Promise<RewardsResponse | null>;
|
|
228
263
|
getSessionId(): string | null;
|
|
229
264
|
/**
|
|
230
265
|
* B1.2 — Tenant-Pixel coexistence handoff. Returns the messageId of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,24 @@
|
|
|
4
4
|
* Provides standardized e-commerce event tracking that maps to the
|
|
5
5
|
* Active Reach Intelligence data governance pipeline.
|
|
6
6
|
*
|
|
7
|
-
* Event names follow the canonical mapper
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
7
|
+
* Event names follow the canonical mapper (libs/gateway-core/src/canonical-event.ts).
|
|
8
|
+
* The dotted-vs-flat split is intentional, not accidental: HIGH-VALUE lifecycle
|
|
9
|
+
* moments are namespaced `domain.action` (transaction.*, engagement.*); raw
|
|
10
|
+
* funnel telemetry that maps 1:1 to a Meta-standard event stays flat snake_case
|
|
11
|
+
* (its name is a frozen contract with the Meta CAPI/pixel maps). Don't "tidy"
|
|
12
|
+
* either side — see the convention block in canonical-event.ts.
|
|
13
|
+
* product_viewed → product_viewed (flat)
|
|
14
|
+
* product_list_viewed → product_list_viewed (flat)
|
|
15
|
+
* product_clicked → engagement.product_click (dotted)
|
|
16
|
+
* cart_item_added → cart_item_added (flat)
|
|
17
|
+
* cart_item_removed → cart_item_removed (flat)
|
|
18
|
+
* cart_viewed → cart_viewed (flat)
|
|
19
|
+
* checkout_started → checkout_started (flat)
|
|
20
|
+
* order_completed → transaction.purchase (dotted)
|
|
21
|
+
* order_refunded → transaction.refund (dotted)
|
|
22
|
+
* coupon_applied → coupon_applied (flat)
|
|
23
|
+
* search_performed → engagement.search (dotted)
|
|
24
|
+
* wishlist_item_added → wishlist_item_added (flat)
|
|
21
25
|
* product_waitlisted → product_waitlisted (back-in-stock waitlist opt-in;
|
|
22
26
|
* consumed by product_event_trigger_service
|
|
23
27
|
* _get_waitlisted_contacts; fires catalog.back_in_stock
|
|
@@ -52,11 +56,25 @@ export declare class EcommerceTracker {
|
|
|
52
56
|
cartViewed(cart: EcommerceCart): void;
|
|
53
57
|
checkoutStarted(checkout: EcommerceCheckout): void;
|
|
54
58
|
checkoutStep(step: number, options?: Record<string, unknown>): void;
|
|
59
|
+
checkoutOption(option: {
|
|
60
|
+
step?: number;
|
|
61
|
+
payment_method?: string;
|
|
62
|
+
shipping_method?: string;
|
|
63
|
+
option_id?: string;
|
|
64
|
+
option_label?: string;
|
|
65
|
+
}): void;
|
|
55
66
|
orderCompleted(order: EcommerceOrder): void;
|
|
56
67
|
orderRefunded(orderId: string, value?: number, products?: EcommerceProduct[]): void;
|
|
68
|
+
orderShipped(orderId: string, tracking?: {
|
|
69
|
+
carrier?: string;
|
|
70
|
+
tracking_code?: string;
|
|
71
|
+
tracking_url?: string;
|
|
72
|
+
}): void;
|
|
57
73
|
couponApplied(coupon: EcommerceCoupon): void;
|
|
58
74
|
couponRemoved(coupon: EcommerceCoupon): void;
|
|
75
|
+
couponDenied(coupon: EcommerceCoupon, reason?: string): void;
|
|
59
76
|
wishlistItemAdded(wishlist: EcommerceWishlist): void;
|
|
77
|
+
productRemovedFromWishlist(wishlist: EcommerceWishlist): void;
|
|
60
78
|
productWaitlisted(waitlist: EcommerceWaitlist): void;
|
|
61
79
|
promotionViewed(promo: EcommercePromotion): void;
|
|
62
80
|
promotionClicked(promo: EcommercePromotion): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ecommerce/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ecommerce/index.ts"],"names":[],"mappings":"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"}
|