@active-reach/web-sdk 1.28.0 → 1.29.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.
@@ -20,6 +20,7 @@
20
20
  * End-user storefronts use polling + Web Push for background delivery.
21
21
  */
22
22
  import type { CartState } from './renderers';
23
+ import { type AegisAction } from './actions';
23
24
  export interface InAppCampaign {
24
25
  id: string;
25
26
  type: 'modal' | 'banner' | 'tooltip' | 'full_screen' | 'half_interstitial' | 'alert' | 'pip' | 'video' | 'stories' | 'carousel_cards' | 'sticky_bar' | 'progress_bar' | 'coachmark_tour' | 'product_recommendation' | 'active_web_chat' | 'custom_html';
@@ -117,6 +118,21 @@ export interface AegisInAppConfig {
117
118
  * gamification campaigns are logged and skipped.
118
119
  */
119
120
  onInteractiveCampaign?: (campaign: InAppCampaign) => void;
121
+ /**
122
+ * Canonical CTA-action handler (CANONICAL_ACTION_MODEL_TRACKER.md). ONE host
123
+ * callback receives every CTA action (add_to_cart / open_product / open_cart /
124
+ * open_login / navigate / custom …) — the CEP-standard shape. Return `true`
125
+ * when handled; otherwise the SDK applies the canonical fallback (navigate to
126
+ * the product/cart page) so a CTA is never a dead no-op. Legacy `aegis:*` DOM
127
+ * events still fire alongside this during the migration.
128
+ */
129
+ onAction?: (action: AegisAction) => boolean | void;
130
+ /**
131
+ * Platform-aware product-URL resolver (sku → PDP url). Lets a Shopify/Woo/
132
+ * Magento adapter map to `/products/{handle}` etc. instead of the canonical
133
+ * `/p/{sku}`. Defaults to `/p/{sku}` when unset.
134
+ */
135
+ productUrl?: (sku: string) => string;
120
136
  /**
121
137
  * Workspace cascade reader. Set this from the host SDK as
122
138
  * `getWorkspaceId: () => aegis.getEffectiveWorkspaceId()` so in-app
@@ -145,6 +161,8 @@ export declare class AegisInAppManager {
145
161
  private debugMode;
146
162
  private enableSSE;
147
163
  private onInteractiveCampaign?;
164
+ private onActionHandler?;
165
+ private productUrl;
148
166
  private getWorkspaceId?;
149
167
  private getCartState?;
150
168
  private campaigns;
@@ -654,13 +672,32 @@ export declare class AegisInAppManager {
654
672
  * (in-place state change) without per-host configuration.
655
673
  */
656
674
  private navigateToCampaignAction;
675
+ /** Register/replace the canonical CTA-action handler after construction (the
676
+ * config `onAction` is the construct-time equivalent). Idempotent. */
677
+ setOnAction(handler: (action: AegisAction) => boolean | void): void;
678
+ /**
679
+ * Canonical CTA-action dispatcher (CANONICAL_ACTION_MODEL_TRACKER.md). ONE path
680
+ * for every host-facing CTA action:
681
+ * 1. give the host's `onAction` handler first refusal (return `true` = handled);
682
+ * 2. ALSO fire the legacy `aegis:*` DOM event (cancelable) so existing
683
+ * listeners (ACS) keep working unchanged during the migration;
684
+ * 3. if STILL unhandled → canonical fallback (navigate to the product/cart
685
+ * page) so a CTA is never a dead no-op (the rail-"Add" 3rd-party gap).
686
+ * Both add-to-cart paths (card "Add" + the `aegis://cart-add` verb) funnel here,
687
+ * so they're one behaviour with one legacy event (`aegis:add-to-cart`).
688
+ */
689
+ dispatchAction(action: AegisAction, campaignId?: string): void;
690
+ /** Back-compat mapping: canonical action → the legacy DOM event hosts listen
691
+ * for today. `add_to_cart` always emits `aegis:add-to-cart` (the one ACS
692
+ * handles), collapsing the old `aegis:cart-add` divergence. */
693
+ private _legacyEventFor;
657
694
  /**
658
695
  * Phase-2 CTA action verbs (`aegis://<verb>?<params>`). Performs an in-app
659
696
  * behaviour instead of navigating. Verbs:
660
697
  * dismiss — close the message (tracked as dismissed)
661
698
  * request-push — prompt for web-push permission, then close
662
- * cart-add?sku=X — dispatch `aegis:cart-add` for the storefront to handle;
663
- * if unhandled, fall back to the product page
699
+ * cart-add?sku=X — canonical `add_to_cart` action via dispatchAction
700
+ * (cancelable + product-page fallback)
664
701
  */
665
702
  private runCampaignActionVerb;
666
703
  /** Remove a rendered campaign's element(s) from the DOM by campaign id. */
@@ -1 +1 @@
1
- {"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Canonical in-app CTA action model (CANONICAL_ACTION_MODEL_TRACKER.md).
3
+ *
4
+ * Every CTA across every in-app format resolves to ONE typed `AegisAction`, and
5
+ * is delivered to ONE host handler (`onAction`) — the CEP-standard shape
6
+ * (CleverTap KV-callback + deeplink, WebEngage/MoEngage/Netcore equivalents),
7
+ * replacing the drifted set of bespoke `aegis:*` DOM events. The legacy events
8
+ * are still fired as a back-compat shim during the migration (Phases B–E).
9
+ */
10
+ export type AegisAction = {
11
+ type: 'dismiss';
12
+ } | {
13
+ type: 'request_push';
14
+ } | {
15
+ type: 'navigate';
16
+ url: string;
17
+ } | {
18
+ type: 'open_product';
19
+ sku?: string;
20
+ productId?: string;
21
+ url?: string;
22
+ platformProductId?: string;
23
+ platformUrl?: string;
24
+ } | {
25
+ type: 'open_cart';
26
+ } | {
27
+ type: 'open_login';
28
+ } | {
29
+ type: 'add_to_cart';
30
+ sku?: string;
31
+ /** Internal Aegis product id — what ACS's add-to-cart handler resolves. */
32
+ productId?: string;
33
+ /**
34
+ * Platform-native product/variant id (Shopify variant, Woo product id),
35
+ * when the rec card carries it (catalog-sync C.2). A plugin's onAction uses
36
+ * THIS for a native add — NOT the internal `productId`. Undefined → the
37
+ * plugin degrades to product search.
38
+ */
39
+ platformProductId?: string;
40
+ qty?: number;
41
+ title?: string;
42
+ price?: unknown;
43
+ imageUrl?: string;
44
+ url?: string;
45
+ } | {
46
+ type: 'custom';
47
+ name: string;
48
+ payload: Record<string, unknown>;
49
+ };
50
+ /** Extra card/campaign context that helps classify a raw action URL. */
51
+ export interface ActionMeta {
52
+ product_id?: string;
53
+ sku?: string;
54
+ title?: string;
55
+ price?: unknown;
56
+ image_url?: string;
57
+ /** Platform-native ids/urls from the catalog sync (C.2); used by plugins. */
58
+ platform_product_id?: string;
59
+ platform_url?: string;
60
+ }
61
+ /**
62
+ * Map a raw CTA target (an `aegis://<verb>?…` action verb, a `/p/{sku}` PDP path,
63
+ * an http(s) URL, or empty) + card metadata → one canonical `AegisAction`.
64
+ * Single source of truth for "what does this CTA do". Used by both the card
65
+ * renderer and the campaign-CTA dispatcher so the two add-to-cart paths converge.
66
+ */
67
+ export declare function parseAction(actionUrl: string | undefined, meta?: ActionMeta): AegisAction;
68
+ /**
69
+ * The canonical fallback URL for an action when no host handler claims it — so a
70
+ * CTA on a host without an `onAction`/listener still does something sensible
71
+ * (the gap that made the rail "Add" a dead button on 3rd-party). `productUrl`
72
+ * lets a platform adapter map a sku → its PDP shape (Shopify `/products/{handle}`
73
+ * etc.); defaults to the canonical `/p/{sku}`.
74
+ */
75
+ export declare function fallbackUrlForAction(a: AegisAction, productUrl?: (sku: string) => string): string | undefined;
76
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/inapp/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1H;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEvE,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,CA8EzF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,WAAW,EACd,UAAU,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAiD,GAC7E,MAAM,GAAG,SAAS,CAgBpB"}
@@ -1,6 +1,8 @@
1
1
  export { AegisInAppManager } from './AegisInAppManager';
2
2
  export type { InAppCampaign, AegisInAppConfig, CampaignClickEvent, CampaignDismissEvent, AegisErrorEvent, InAppLifecycleEventMap, } from './AegisInAppManager';
3
3
  export type { CartState } from './renderers';
4
+ export { parseAction, fallbackUrlForAction } from './actions';
5
+ export type { AegisAction, ActionMeta } from './actions';
4
6
  export { renderPreview } from './renderPreview';
5
7
  export { pairWebDevice, captureWebScreen, maybeStartPairing, type PairingElementNode, type CapturedWebScreen, type PairWebOptions, } from './devicePairing';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inapp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inapp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"card-template.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/card-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card-template.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/card-template.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,14 @@ export interface RenderContext {
79
79
  * structured cta_target values (page / product / dismiss) resolve correctly.
80
80
  */
81
81
  navigate?: (url: string, buttonId?: string) => void;
82
+ /**
83
+ * Canonical CTA-action dispatch (CANONICAL_ACTION_MODEL_TRACKER.md). Renderers
84
+ * funnel CTA intents (add_to_cart / open_product / …) here instead of firing a
85
+ * bespoke `aegis:*` DOM event directly — the manager routes to the host's
86
+ * single `onAction` handler, the legacy DOM event (back-compat), and a
87
+ * graceful fallback. `undefined` outside the manager (e.g. dashboard preview).
88
+ */
89
+ dispatchAction?: (action: import('../actions').AegisAction) => void;
82
90
  /**
83
91
  * Submit a widget response (records it + triggers the loyalty/coupon grant on
84
92
  * the server). Used by the gamification renderers on their key action
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IAC3C;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,EAAE,CACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,mBAAmB,EAClF,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KACxD,IAAI,CAAC;IACV,yDAAyD;IACzD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACrH;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CACb,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,EAC5D,UAAU,CAAC,EAAE,MAAM;IACnB;uEACmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,KACxB,IAAI,CAAC;IACV,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,8FAA8F;IAC9F,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,wDAAwD;IACxD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC7D,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;IAC3C;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,EAAE,CACV,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,mBAAmB,EAClF,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KACxD,IAAI,CAAC;IACV,yDAAyD;IACzD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;IACpE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACrH;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CACb,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,EAC5D,UAAU,CAAC,EAAE,MAAM;IACnB;uEACmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,KACxB,IAAI,CAAC;IACV,iFAAiF;IACjF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9C,8FAA8F;IAC9F,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,wDAAwD;IACxD,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC7D,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,mEAAmE;AACnE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,8 +9,8 @@ export type { OptInChannel } from './core/user-namespace';
9
9
  export type { Plugin, PluginRegistry } from './types/plugin';
10
10
  export { debounce, throttle } from './utils/debounce';
11
11
  export type { ConsentPreferences, ConsentCategory, ConsentStatus, } from './utils/consent';
12
- export type { InAppCampaign, AegisInAppConfig, CartState, CampaignClickEvent, CampaignDismissEvent, AegisErrorEvent, InAppLifecycleEventMap, } from './inapp';
13
- export { renderPreview } from './inapp';
12
+ export type { InAppCampaign, AegisInAppConfig, CartState, CampaignClickEvent, CampaignDismissEvent, AegisErrorEvent, InAppLifecycleEventMap, AegisAction, ActionMeta, } from './inapp';
13
+ export { renderPreview, parseAction, fallbackUrlForAction } from './inapp';
14
14
  export type { WidgetConfig, GamificationPrize, AegisWidgetConfig, } from './widgets';
15
15
  export { TriggerEngine } from './triggers';
16
16
  export type { TriggerRule, ScrollDepthConfig, TimeOnPageConfig, ExitIntentConfig, InactivityConfig, TriggerEvent, } from './triggers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,6 +25,94 @@ function throttle(func, limit) {
25
25
  }
26
26
  };
27
27
  }
28
+ const PDP_SKU_RE = /\/p\/([^/?#]+)/;
29
+ function parseAction(actionUrl, meta) {
30
+ const url = (actionUrl ?? "").trim();
31
+ const m2 = meta ?? {};
32
+ if (url.startsWith("aegis://")) {
33
+ const rest = url.slice("aegis://".length);
34
+ const [verb, qs] = rest.split("?");
35
+ const params = new URLSearchParams(qs || "");
36
+ switch (verb) {
37
+ case "dismiss":
38
+ return { type: "dismiss" };
39
+ case "request-push":
40
+ case "request_push":
41
+ return { type: "request_push" };
42
+ case "cart-add":
43
+ case "add-to-cart":
44
+ return {
45
+ type: "add_to_cart",
46
+ sku: params.get("sku") || m2.sku || void 0,
47
+ productId: params.get("product_id") || m2.product_id || void 0,
48
+ platformProductId: m2.platform_product_id,
49
+ qty: Number(params.get("qty")) || 1,
50
+ title: m2.title,
51
+ price: m2.price,
52
+ imageUrl: m2.image_url,
53
+ url: m2.platform_url
54
+ };
55
+ case "open-cart":
56
+ case "cart":
57
+ return { type: "open_cart" };
58
+ case "open-login":
59
+ case "login":
60
+ return { type: "open_login" };
61
+ case "open-product":
62
+ case "product": {
63
+ const sku = params.get("sku") || m2.sku || void 0;
64
+ return { type: "open_product", sku, productId: m2.product_id, url: sku ? `/p/${sku}` : void 0 };
65
+ }
66
+ default:
67
+ return { type: "custom", name: verb || "unknown", payload: Object.fromEntries(params) };
68
+ }
69
+ }
70
+ const pdp = PDP_SKU_RE.exec(url);
71
+ if (pdp) {
72
+ return {
73
+ type: "open_product",
74
+ sku: decodeURIComponent(pdp[1]),
75
+ productId: m2.product_id,
76
+ url,
77
+ platformProductId: m2.platform_product_id,
78
+ platformUrl: m2.platform_url
79
+ };
80
+ }
81
+ if (url) {
82
+ return { type: "navigate", url };
83
+ }
84
+ if (m2.sku || m2.product_id) {
85
+ return {
86
+ type: "add_to_cart",
87
+ sku: m2.sku,
88
+ productId: m2.product_id,
89
+ platformProductId: m2.platform_product_id,
90
+ qty: 1,
91
+ title: m2.title,
92
+ price: m2.price,
93
+ imageUrl: m2.image_url,
94
+ url: m2.platform_url
95
+ };
96
+ }
97
+ return { type: "dismiss" };
98
+ }
99
+ function fallbackUrlForAction(a, productUrl = (sku) => `/p/${encodeURIComponent(sku)}`) {
100
+ switch (a.type) {
101
+ case "navigate":
102
+ return a.url;
103
+ case "open_product":
104
+ return a.url || (a.sku ? productUrl(a.sku) : void 0);
105
+ case "add_to_cart":
106
+ return a.url || (a.sku ? productUrl(a.sku) : void 0);
107
+ case "open_cart":
108
+ return "/cart";
109
+ case "open_login":
110
+ return void 0;
111
+ // host-only; no neutral fallback
112
+ default:
113
+ return void 0;
114
+ }
115
+ }
28
116
  const ICONS = {
29
117
  x: [
30
118
  ["path", { d: "M18 6 6 18" }],
@@ -943,6 +1031,7 @@ function renderCardFromTemplate(card, opts) {
943
1031
  const fg = contrastFg(frame.bg ? sanitizeColor(frame.bg) : "#ffffff");
944
1032
  const muted = fg === "#ffffff" ? "rgba(255,255,255,0.72)" : "#6b7280";
945
1033
  const tile = document.createElement("div");
1034
+ tile.setAttribute("data-aegis-reaction-anchor", "");
946
1035
  const cardFont = resolveCardFont(frame.fontFamily);
947
1036
  ensureCardFontLoaded(cardFont);
948
1037
  const radius = frame.radius !== void 0 ? `${parseInt(String(frame.radius), 10) || 12}px` : "12px";
@@ -1123,15 +1212,30 @@ function renderCardFromTemplate(card, opts) {
1123
1212
  e.stopPropagation();
1124
1213
  trackEvent(campaign.id, "clicked", { stepId: el.id || "add" });
1125
1214
  if (inline) {
1126
- if (typeof window !== "undefined") {
1215
+ const m2 = meta;
1216
+ if (ctx.dispatchAction) {
1217
+ ctx.dispatchAction({
1218
+ type: "add_to_cart",
1219
+ productId: m2.product_id,
1220
+ sku: m2.sku,
1221
+ // Platform-native id (catalog-sync C.2) — plugins use this for a
1222
+ // native add; undefined today → graceful product-search fallback.
1223
+ platformProductId: m2.platform_product_id,
1224
+ title: card.title,
1225
+ price: m2.price ?? card.body,
1226
+ imageUrl: card.image_url,
1227
+ url: m2.platform_url || card.cta_url,
1228
+ qty: 1
1229
+ });
1230
+ } else if (typeof window !== "undefined") {
1127
1231
  window.dispatchEvent(
1128
1232
  new CustomEvent("aegis:add-to-cart", {
1129
1233
  detail: {
1130
1234
  campaign_id: campaign.id,
1131
- product_id: meta.product_id,
1132
- sku: meta.sku,
1235
+ product_id: m2.product_id,
1236
+ sku: m2.sku,
1133
1237
  title: card.title,
1134
- price: meta.price ?? card.body,
1238
+ price: m2.price ?? card.body,
1135
1239
  image_url: card.image_url,
1136
1240
  cta_url: card.cta_url
1137
1241
  }
@@ -1156,13 +1260,23 @@ function renderCardFromTemplate(card, opts) {
1156
1260
  e.stopPropagation();
1157
1261
  trackEvent(campaign.id, "clicked");
1158
1262
  if (inline) {
1159
- if (typeof window !== "undefined") {
1263
+ const bm = meta;
1264
+ if (ctx.dispatchAction) {
1265
+ ctx.dispatchAction({
1266
+ type: "open_product",
1267
+ productId: bm.product_id,
1268
+ sku: bm.sku,
1269
+ url: bm.platform_url || card.cta_url,
1270
+ platformProductId: bm.platform_product_id,
1271
+ platformUrl: bm.platform_url
1272
+ });
1273
+ } else if (typeof window !== "undefined") {
1160
1274
  window.dispatchEvent(
1161
1275
  new CustomEvent("aegis:open-product", {
1162
1276
  detail: {
1163
1277
  campaign_id: campaign.id,
1164
- product_id: meta.product_id,
1165
- sku: meta.sku,
1278
+ product_id: bm.product_id,
1279
+ sku: bm.sku,
1166
1280
  cta_url: card.cta_url
1167
1281
  }
1168
1282
  })
@@ -4922,6 +5036,7 @@ function svgNode(svg) {
4922
5036
  }
4923
5037
  const _AegisInAppManager = class _AegisInAppManager {
4924
5038
  constructor(config) {
5039
+ this.productUrl = (sku) => `/p/${encodeURIComponent(sku)}`;
4925
5040
  this.campaigns = [];
4926
5041
  this.displayedCampaigns = /* @__PURE__ */ new Set();
4927
5042
  this._displaySizeMul = 1;
@@ -4951,6 +5066,8 @@ const _AegisInAppManager = class _AegisInAppManager {
4951
5066
  this.debugMode = config.debugMode || false;
4952
5067
  this.enableSSE = config.enableSSE === true;
4953
5068
  this.onInteractiveCampaign = config.onInteractiveCampaign;
5069
+ this.onActionHandler = config.onAction;
5070
+ if (config.productUrl) this.productUrl = config.productUrl;
4954
5071
  this.getWorkspaceId = config.getWorkspaceId;
4955
5072
  this.getCartState = config.getCartState;
4956
5073
  }
@@ -6116,8 +6233,8 @@ const _AegisInAppManager = class _AegisInAppManager {
6116
6233
  void this.trackEvent(campaign.id, "clicked");
6117
6234
  if (actionUrl) {
6118
6235
  window.open(actionUrl, "_blank", "noopener");
6119
- } else if (typeof window !== "undefined") {
6120
- window.dispatchEvent(new CustomEvent("aegis:open-login", { detail: { campaign_id: campaign.id } }));
6236
+ } else {
6237
+ this.dispatchAction({ type: "open_login" }, campaign.id);
6121
6238
  }
6122
6239
  });
6123
6240
  row.appendChild(btn);
@@ -7791,6 +7908,7 @@ const _AegisInAppManager = class _AegisInAppManager {
7791
7908
  },
7792
7909
  sanitizeUrl: (url) => this.sanitizeUrl(url),
7793
7910
  navigate: (url, buttonId) => this.navigateToCampaignAction(campaign, url, buttonId),
7911
+ dispatchAction: (action) => this.dispatchAction(action, campaign.id),
7794
7912
  submitResponse: (responseType, payload) => this.submitWidgetResponse(campaign, responseType, payload),
7795
7913
  playReaction: (el, intent, lottieFile, scope) => this._playReaction(el, intent, lottieFile, campaign.interactive_config, scope),
7796
7914
  haptic: (pattern) => {
@@ -8566,13 +8684,79 @@ const _AegisInAppManager = class _AegisInAppManager {
8566
8684
  window.location.href = safeUrl;
8567
8685
  }
8568
8686
  }
8687
+ /** Register/replace the canonical CTA-action handler after construction (the
8688
+ * config `onAction` is the construct-time equivalent). Idempotent. */
8689
+ setOnAction(handler) {
8690
+ this.onActionHandler = handler;
8691
+ }
8692
+ /**
8693
+ * Canonical CTA-action dispatcher (CANONICAL_ACTION_MODEL_TRACKER.md). ONE path
8694
+ * for every host-facing CTA action:
8695
+ * 1. give the host's `onAction` handler first refusal (return `true` = handled);
8696
+ * 2. ALSO fire the legacy `aegis:*` DOM event (cancelable) so existing
8697
+ * listeners (ACS) keep working unchanged during the migration;
8698
+ * 3. if STILL unhandled → canonical fallback (navigate to the product/cart
8699
+ * page) so a CTA is never a dead no-op (the rail-"Add" 3rd-party gap).
8700
+ * Both add-to-cart paths (card "Add" + the `aegis://cart-add` verb) funnel here,
8701
+ * so they're one behaviour with one legacy event (`aegis:add-to-cart`).
8702
+ */
8703
+ dispatchAction(action, campaignId) {
8704
+ var _a;
8705
+ let handled = false;
8706
+ try {
8707
+ handled = ((_a = this.onActionHandler) == null ? void 0 : _a.call(this, action)) === true;
8708
+ } catch {
8709
+ }
8710
+ if (typeof window !== "undefined") {
8711
+ const legacy = this._legacyEventFor(action, campaignId);
8712
+ if (legacy) {
8713
+ const evt = new CustomEvent(legacy.name, { detail: legacy.detail, cancelable: true });
8714
+ const proceed = window.dispatchEvent(evt);
8715
+ if (!proceed || evt.defaultPrevented) handled = true;
8716
+ }
8717
+ }
8718
+ if (!handled) {
8719
+ const url = fallbackUrlForAction(action, this.productUrl);
8720
+ if (url && typeof window !== "undefined") window.location.href = url;
8721
+ }
8722
+ }
8723
+ /** Back-compat mapping: canonical action → the legacy DOM event hosts listen
8724
+ * for today. `add_to_cart` always emits `aegis:add-to-cart` (the one ACS
8725
+ * handles), collapsing the old `aegis:cart-add` divergence. */
8726
+ _legacyEventFor(a, campaignId) {
8727
+ const base = { campaign_id: campaignId };
8728
+ switch (a.type) {
8729
+ case "add_to_cart":
8730
+ return {
8731
+ name: "aegis:add-to-cart",
8732
+ detail: {
8733
+ ...base,
8734
+ product_id: a.productId,
8735
+ sku: a.sku,
8736
+ title: a.title,
8737
+ price: a.price,
8738
+ image_url: a.imageUrl,
8739
+ cta_url: a.url,
8740
+ qty: a.qty ?? 1
8741
+ }
8742
+ };
8743
+ case "open_product":
8744
+ return { name: "aegis:open-product", detail: { ...base, sku: a.sku, product_id: a.productId, url: a.url } };
8745
+ case "open_cart":
8746
+ return { name: "aegis:open-cart", detail: base };
8747
+ case "open_login":
8748
+ return { name: "aegis:open-login", detail: base };
8749
+ default:
8750
+ return null;
8751
+ }
8752
+ }
8569
8753
  /**
8570
8754
  * Phase-2 CTA action verbs (`aegis://<verb>?<params>`). Performs an in-app
8571
8755
  * behaviour instead of navigating. Verbs:
8572
8756
  * dismiss — close the message (tracked as dismissed)
8573
8757
  * request-push — prompt for web-push permission, then close
8574
- * cart-add?sku=X — dispatch `aegis:cart-add` for the storefront to handle;
8575
- * if unhandled, fall back to the product page
8758
+ * cart-add?sku=X — canonical `add_to_cart` action via dispatchAction
8759
+ * (cancelable + product-page fallback)
8576
8760
  */
8577
8761
  runCampaignActionVerb(campaign, url) {
8578
8762
  const rest = url.slice("aegis://".length);
@@ -8595,14 +8779,7 @@ const _AegisInAppManager = class _AegisInAppManager {
8595
8779
  case "cart-add": {
8596
8780
  const sku = params.get("sku") || "";
8597
8781
  void this.trackEvent(campaign.id, "clicked", { meta: { verb: "cart-add", sku } });
8598
- const evt = new CustomEvent("aegis:cart-add", {
8599
- detail: { sku, qty: 1, campaign_id: campaign.id },
8600
- cancelable: true
8601
- });
8602
- const proceed = window.dispatchEvent(evt);
8603
- if (proceed && !evt.defaultPrevented && sku) {
8604
- window.location.href = `/p/${encodeURIComponent(sku)}`;
8605
- }
8782
+ this.dispatchAction(parseAction(url, { sku }), campaign.id);
8606
8783
  break;
8607
8784
  }
8608
8785
  default:
@@ -9966,7 +10143,8 @@ const _AegisInAppManager = class _AegisInAppManager {
9966
10143
  this.addAnimationStyles();
9967
10144
  const reduce = typeof window !== "undefined" && window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
9968
10145
  const viewport = scope === "viewport";
9969
- const anchor = viewport ? document.body : host || document.body;
10146
+ const cardAnchor = !viewport && (host == null ? void 0 : host.closest) ? host.closest("[data-aegis-reaction-anchor]") : null;
10147
+ const anchor = viewport ? document.body : cardAnchor || host || document.body;
9970
10148
  const prevPos = anchor.style.position;
9971
10149
  if (!viewport && (!prevPos || prevPos === "static")) anchor.style.position = "relative";
9972
10150
  const layer = document.createElement("div");
@@ -10005,7 +10183,7 @@ const _AegisInAppManager = class _AegisInAppManager {
10005
10183
  g.style.cssText = `position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: ${px}px; height: ${px}px; display: flex; align-items: center; justify-content: center; line-height: 0; filter: drop-shadow(0 8px 16px rgba(0,0,0,0.30)); ${motion}`;
10006
10184
  layer.appendChild(g);
10007
10185
  anchor.appendChild(layer);
10008
- if (festive && !reduce) this._fireConfetti(host);
10186
+ if (festive && !reduce) this._fireConfetti(cardAnchor || host);
10009
10187
  const ra = ic && typeof ic === "object" ? ic.reaction_animations : void 0;
10010
10188
  const custom = ra && typeof ra[intent] === "string" ? ra[intent] : void 0;
10011
10189
  const file = custom || lottieFile || spec.file;
@@ -13636,7 +13814,13 @@ class AegisMessageRuntime {
13636
13814
  getWorkspaceId: config.getWorkspaceId,
13637
13815
  // First-party cart reader — renderers (progress-bar) read live cart
13638
13816
  // state from here instead of `window.*` cart globals. See setCartState().
13639
- getCartState: () => this.deriveCartState()
13817
+ getCartState: () => this.deriveCartState(),
13818
+ // Canonical CTA-action handler + platform product-URL resolver
13819
+ // (CANONICAL_ACTION_MODEL_TRACKER.md). A host (ACS / Shopify-Woo plugin /
13820
+ // native) registers ONE `onAction` to handle add_to_cart/open_product/…;
13821
+ // legacy `aegis:*` DOM events still fire for back-compat.
13822
+ onAction: config.onAction,
13823
+ productUrl: config.productUrl
13640
13824
  });
13641
13825
  this.intentRuleEvaluator = new IntentRuleEvaluator();
13642
13826
  if (config.governance) {
@@ -13788,6 +13972,17 @@ class AegisMessageRuntime {
13788
13972
  setCartState(state) {
13789
13973
  this.applyCart(state);
13790
13974
  }
13975
+ /**
13976
+ * Register the canonical CTA-action handler — the CEP-standard single callback
13977
+ * that receives every in-app intent (add_to_cart / open_product / open_cart /
13978
+ * open_login / navigate / custom). Return `true` when handled; otherwise the SDK
13979
+ * applies the graceful fallback. The construct-time `onAction` config is the
13980
+ * equivalent; this lets a host register/replace it once it holds the runtime.
13981
+ * See CANONICAL_ACTION_MODEL_TRACKER.md.
13982
+ */
13983
+ onAction(handler) {
13984
+ this.inApp.setOnAction(handler);
13985
+ }
13791
13986
  /**
13792
13987
  * The ONE cart writer. Normalizes any cart-ish shape and funnels it into the
13793
13988
  * single `cart` context namespace (read by the Free-Delivery progress card,
@@ -13995,9 +14190,11 @@ export {
13995
14190
  debounce,
13996
14191
  aegis as default,
13997
14192
  deriveDeviceFingerprint,
14193
+ fallbackUrlForAction,
13998
14194
  getCurrentLauncher,
13999
14195
  m as murmurhash3_x86_32,
14000
14196
  openChat,
14197
+ parseAction,
14001
14198
  readFirstPartyCookie,
14002
14199
  renderPreview,
14003
14200
  throttle,