@active-reach/web-sdk 1.36.9 → 1.38.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/dist/aegis.min.js +1 -1
- package/dist/aegis.min.js.map +1 -1
- package/dist/{analytics-Qyzk8JaB.mjs → analytics-Cz1ZBOxH.mjs} +244 -110
- package/dist/analytics-Cz1ZBOxH.mjs.map +1 -0
- package/dist/core/analytics.d.ts +10 -0
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/prefetch-bundle-client.d.ts +1 -0
- package/dist/core/prefetch-bundle-client.d.ts.map +1 -1
- package/dist/core/queue.d.ts.map +1 -1
- package/dist/core/session.d.ts +12 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/ecommerce/index.d.ts.map +1 -1
- package/dist/inapp/AegisInAppManager.d.ts +18 -1
- package/dist/inapp/AegisInAppManager.d.ts.map +1 -1
- package/dist/inapp/actions.d.ts +7 -0
- package/dist/inapp/actions.d.ts.map +1 -1
- package/dist/inapp/index.d.ts +1 -1
- package/dist/inapp/index.d.ts.map +1 -1
- package/dist/inapp/renderers/card-template.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +217 -30
- package/dist/index.js.map +1 -1
- package/dist/react.js +1 -1
- package/dist/triggers/TriggerEngine.d.ts +5 -0
- package/dist/triggers/TriggerEngine.d.ts.map +1 -1
- package/dist/utils/device.d.ts.map +1 -1
- package/dist/utils/meta-cookies.d.ts +7 -0
- package/dist/utils/meta-cookies.d.ts.map +1 -1
- package/dist/utils/redact-url.d.ts +56 -0
- package/dist/utils/redact-url.d.ts.map +1 -0
- package/dist/utils/url-parser.d.ts +38 -0
- package/dist/utils/url-parser.d.ts.map +1 -1
- package/dist/utils/visitor.d.ts +43 -0
- package/dist/utils/visitor.d.ts.map +1 -0
- package/dist/widgets/AegisWidgetManager.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/analytics-Qyzk8JaB.mjs.map +0 -1
package/dist/react.js
CHANGED
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
* console.log('User scrolled to 50%', data);
|
|
22
22
|
* });
|
|
23
23
|
* trigger.start();
|
|
24
|
+
*
|
|
25
|
+
* Every `page_url` a trigger emits is credential-redacted (`redactUrl`): the
|
|
26
|
+
* payload is handed to listeners that track it. The two `history.pushState`
|
|
27
|
+
* calls read the raw URL on purpose — they re-push the page the visitor is
|
|
28
|
+
* on, and a redacted URL there would rewrite the address bar.
|
|
24
29
|
*/
|
|
25
30
|
export interface TriggerRule {
|
|
26
31
|
type: 'scroll_depth' | 'time_on_page' | 'exit_intent' | 'inactivity' | 'scroll_velocity' | 'visibility_change' | 'back_button';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerEngine.d.ts","sourceRoot":"","sources":["../../src/triggers/TriggerEngine.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TriggerEngine.d.ts","sourceRoot":"","sources":["../../src/triggers/TriggerEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/utils/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/utils/device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,YAAY,CAwDhG;AAwGD,wBAAgB,KAAK,IAAI,OAAO,CAyB/B"}
|
|
@@ -55,4 +55,11 @@ export declare function readFbclidFromUrl(): string | null;
|
|
|
55
55
|
* — safe to call on every event capture.
|
|
56
56
|
*/
|
|
57
57
|
export declare function captureMetaCookies(): MetaCookies;
|
|
58
|
+
/**
|
|
59
|
+
* A copy of `event` safe to hand to a logger: `properties.fbc` / `properties.fbp`
|
|
60
|
+
* masked. They are Meta cookie values — match keys for CAPI only, and must
|
|
61
|
+
* stay out of every log line (ACS tracking tracker §V.3). The event itself is
|
|
62
|
+
* never mutated; only the logged copy is.
|
|
63
|
+
*/
|
|
64
|
+
export declare function redactMetaCookies<T>(event: T): T;
|
|
58
65
|
//# sourceMappingURL=meta-cookies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-cookies.d.ts","sourceRoot":"","sources":["../../src/utils/meta-cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA8ED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAMzC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAQzC;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAOjD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAMhD"}
|
|
1
|
+
{"version":3,"file":"meta-cookies.d.ts","sourceRoot":"","sources":["../../src/utils/meta-cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA8ED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAMzC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAQzC;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAOjD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,CAMhD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAOhD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL credential redaction — the browser-SDK layer (Aman 2026-09-13).
|
|
3
|
+
*
|
|
4
|
+
* A landing URL can carry a credential: `k` (one order's view key), `t` (the
|
|
5
|
+
* server-verified landing token), `code` / `session_code` (claim codes),
|
|
6
|
+
* `aegis_pair` (a device-pairing code) and `u` (a contact token). The SDK must
|
|
7
|
+
* never SEND one of those values — not in a page object, an event property, a
|
|
8
|
+
* beacon or a query string to our own API. What it sends instead is the key
|
|
9
|
+
* with its value replaced by `REDACTED`, so the shape of the URL (and the fact
|
|
10
|
+
* that a credential was present) survives while the secret does not.
|
|
11
|
+
*
|
|
12
|
+
* The server twin is `libs/data-governance/data_governance/credential_params.py`
|
|
13
|
+
* (`CREDENTIAL_URL_PARAMS`, `REDACTED`). The two lists MUST stay identical; a
|
|
14
|
+
* parity guard compares them. Change both in the same commit or neither.
|
|
15
|
+
*
|
|
16
|
+
* Deliberately NOT in the list: `aegis_code`. It is the attribution join key
|
|
17
|
+
* (the short link's own code), not a credential — redacting it would sever
|
|
18
|
+
* the link from the order it brought in.
|
|
19
|
+
*
|
|
20
|
+
* Reading is untouched. The SDK's own inbound param readers (`aegis_code`,
|
|
21
|
+
* gclid / fbclid, utm, `aegis_pair` for pairing) still read `location.search`
|
|
22
|
+
* directly; only what leaves the browser is redacted.
|
|
23
|
+
*
|
|
24
|
+
* Why a targeted regex and not `new URL()`: a URL round-trip re-encodes and
|
|
25
|
+
* reorders the rest of the string, so the value we send would no longer be
|
|
26
|
+
* the page the visitor was on. The regex touches only the credential values.
|
|
27
|
+
*
|
|
28
|
+
* What it does not see: a percent-encoded key (`%6B=` for `k`), a `;`
|
|
29
|
+
* separator, or a key whose case differs (`K=`). The server list has the same
|
|
30
|
+
* shape, so both layers agree on what counts as a match.
|
|
31
|
+
*/
|
|
32
|
+
export declare const CREDENTIAL_URL_PARAMS: readonly ["t", "k", "code", "session_code", "aegis_pair", "u"];
|
|
33
|
+
export declare const REDACTED = "REDACTED";
|
|
34
|
+
/**
|
|
35
|
+
* Replace the value of every credential query param with `REDACTED`.
|
|
36
|
+
* Idempotent, fragment-preserving, and it never throws: input it cannot
|
|
37
|
+
* handle is returned unchanged.
|
|
38
|
+
*/
|
|
39
|
+
export declare function redactUrl(value: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Walk plain objects / arrays and apply `redactUrl` to every string — the TS
|
|
42
|
+
* twin of the server's `redact_credentials_deep` (same depth cap, 12).
|
|
43
|
+
*
|
|
44
|
+
* Added for the SERVER consumers of `channel.delivery.status_{cell}` (BK-87,
|
|
45
|
+
* 2026-09-13): that topic is a dual-route that never passes the governance
|
|
46
|
+
* engine, and its click/receipt payloads carry URLs (`metadata.original_url`,
|
|
47
|
+
* `referrer`, provider echoes). analytics-consumer and event-ingress's
|
|
48
|
+
* delivery-status bridge import THIS module by relative path, so there is one
|
|
49
|
+
* TS rule, not a copy. Redacting per string value (before serialisation) keeps
|
|
50
|
+
* JSON valid even when a value itself holds escaped JSON.
|
|
51
|
+
*
|
|
52
|
+
* Only plain objects and arrays are walked; anything else (Date, Buffer, class
|
|
53
|
+
* instances) is returned as is.
|
|
54
|
+
*/
|
|
55
|
+
export declare function redactCredentialsDeep<T>(value: T, depth?: number): T;
|
|
56
|
+
//# sourceMappingURL=redact-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact-url.d.ts","sourceRoot":"","sources":["../../src/utils/redact-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,eAAO,MAAM,qBAAqB,gEAAiE,CAAC;AAEpG,eAAO,MAAM,QAAQ,aAAa,CAAC;AAenC;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,SAAI,GAAG,CAAC,CAc/D"}
|
|
@@ -8,10 +8,19 @@ export interface UTMParams {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function parseUTMParameters(url?: string): UTMParams;
|
|
10
10
|
export declare function parseQueryParameters(url?: string): Record<string, string>;
|
|
11
|
+
/**
|
|
12
|
+
* The page's URL for REPORTING — so it is credential-redacted (`redactUrl`),
|
|
13
|
+
* the canonical `<link>` included. No caller in the SDK today; redacted so a
|
|
14
|
+
* future one cannot send a raw `?k=` / `?t=` by reaching for this helper.
|
|
15
|
+
*/
|
|
11
16
|
export declare function getCanonicalURL(): string;
|
|
12
17
|
export declare function stripQueryParameters(url: string): string;
|
|
13
18
|
export interface AdClickIDs {
|
|
14
19
|
gclid?: string;
|
|
20
|
+
/** Google click id for iOS app→web traffic (Apple ATT). NOT a gclid. */
|
|
21
|
+
gbraid?: string;
|
|
22
|
+
/** Google click id for iOS web→app traffic (Apple ATT). NOT a gclid. */
|
|
23
|
+
wbraid?: string;
|
|
15
24
|
fbclid?: string;
|
|
16
25
|
msclkid?: string;
|
|
17
26
|
ctwa_clid?: string;
|
|
@@ -20,4 +29,33 @@ export interface AdClickIDs {
|
|
|
20
29
|
}
|
|
21
30
|
export declare function parseAdClickIDs(url?: string): AdClickIDs;
|
|
22
31
|
export declare function hasAdClickIDs(adClickIDs: AdClickIDs): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Which Aegis send brought the visitor — the `aegis_*` params the short-link
|
|
34
|
+
* redirect stamps from the LINK row (`link_shortener` `aegis_params`).
|
|
35
|
+
*
|
|
36
|
+
* `aegis_code` is the join key (the short link's own code); the send is then
|
|
37
|
+
* `aegis_campaign` (campaign sends only) OR `aegis_journey` (journey sends —
|
|
38
|
+
* order confirmation, delivery, win-back). Present only when the link row has
|
|
39
|
+
* a value, so never assume `aegis_campaign` exists.
|
|
40
|
+
*
|
|
41
|
+
* Deliberately NOT read here:
|
|
42
|
+
* - `utm_*` — the tenant's own / third-party analytics; never identifies an
|
|
43
|
+
* Aegis send (a tenant-set utm can sit on our own link).
|
|
44
|
+
* - `k` — a credential for ONE order. Never read, copied or logged.
|
|
45
|
+
* - `t` — server-verified landing token; never parsed client-side.
|
|
46
|
+
* - `u` — consumed at the redirect, never forwarded.
|
|
47
|
+
*/
|
|
48
|
+
export interface LinkAttribution {
|
|
49
|
+
aegis_code?: string;
|
|
50
|
+
aegis_campaign?: string;
|
|
51
|
+
aegis_journey?: string;
|
|
52
|
+
aegis_playbook?: string;
|
|
53
|
+
aegis_button?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse the landing URL's Aegis link attribution. Returns `{}` unless
|
|
57
|
+
* `aegis_code` is present — the rest of the set only means something as the
|
|
58
|
+
* attributes OF that code.
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseLinkAttribution(url?: string): LinkAttribution;
|
|
23
61
|
//# sourceMappingURL=url-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-parser.d.ts","sourceRoot":"","sources":["../../src/utils/url-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url-parser.d.ts","sourceRoot":"","sources":["../../src/utils/url-parser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CA6B1D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBzE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAYxC;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CA+BxD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAE7D;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,CAoBlE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* New-visitor verdict — the ONE reader and writer of the returning-visitor
|
|
3
|
+
* marker (2026-09-13).
|
|
4
|
+
*
|
|
5
|
+
* `/v1/in-app/active` and `/v1/sdk/prefetch-bundle` both take `is_new_user`,
|
|
6
|
+
* and the server drops any campaign whose `display_rules.show_to_new_users_only`
|
|
7
|
+
* is set when it arrives false. The SDK used to write `aegis_returning_user=1`
|
|
8
|
+
* at the top of `AegisInAppManager.initialize()` and read it afterwards, inside
|
|
9
|
+
* the fetch — so the read always saw its own write, every fetch said
|
|
10
|
+
* `is_new_user=false`, and a new-users-only campaign could never be served.
|
|
11
|
+
*
|
|
12
|
+
* The rule this module enforces: the marker is read ONCE, before anything
|
|
13
|
+
* writes it, and the verdict is held for the whole browsing session.
|
|
14
|
+
*
|
|
15
|
+
* - `isNewVisitor()` resolves the verdict on first call and caches it in
|
|
16
|
+
* memory (this page load) and in sessionStorage (later page loads in the
|
|
17
|
+
* same tab session), so every fetch in a session sends the same value and
|
|
18
|
+
* the verdict does not flip after the marker is written.
|
|
19
|
+
* - `markReturningVisitor()` is the only writer. It resolves the verdict
|
|
20
|
+
* first, so no call order can make the read see the write.
|
|
21
|
+
*
|
|
22
|
+
* Storage unavailable (SSR, blocked site data, a browser that throws on
|
|
23
|
+
* access): the verdict is RETURNING (`false`). "New" is a positive claim that
|
|
24
|
+
* unlocks first-visit-only messages; when the SDK cannot remember a visit it
|
|
25
|
+
* cannot prove one never happened, and because the marker can never be saved,
|
|
26
|
+
* answering "new" would re-show a first-visit message on every page of every
|
|
27
|
+
* visit forever. `false` is also what the server assumes when the parameter is
|
|
28
|
+
* absent, so an unknown visitor reads the same on both sides.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Whether this browsing session belongs to a visitor the SDK has never seen
|
|
32
|
+
* before. Stable for the whole session; see the module doc for the default
|
|
33
|
+
* when storage is unavailable.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isNewVisitor(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Record that this visitor has now been seen, so the NEXT session reads as
|
|
38
|
+
* returning. Resolves the current session's verdict before writing.
|
|
39
|
+
*/
|
|
40
|
+
export declare function markReturningVisitor(): void;
|
|
41
|
+
/** Test seam: forget the in-memory verdict, as a fresh page load would. */
|
|
42
|
+
export declare function resetVisitorVerdictCacheForTests(): void;
|
|
43
|
+
//# sourceMappingURL=visitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../src/utils/visitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAqCH;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAUtC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAQ3C;AAED,2EAA2E;AAC3E,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AegisWidgetManager.d.ts","sourceRoot":"","sources":["../../src/widgets/AegisWidgetManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"AegisWidgetManager.d.ts","sourceRoot":"","sources":["../../src/widgets/AegisWidgetManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@active-reach/web-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.38.0",
|
|
4
4
|
"description": "Web SDK for Active Reach Intelligence — event tracking, identity resolution, in-app messaging, web push, and placements",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|