@cxpinsight/react-native 0.4.0 → 0.7.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 (51) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +90 -0
  3. package/lib/CXPinsight.d.ts +66 -3
  4. package/lib/CXPinsight.d.ts.map +1 -1
  5. package/lib/CXPinsight.js +130 -3
  6. package/lib/CXPinsight.js.map +1 -1
  7. package/lib/CXPinsightProvider.d.ts.map +1 -1
  8. package/lib/CXPinsightProvider.js +48 -10
  9. package/lib/CXPinsightProvider.js.map +1 -1
  10. package/lib/consent/ConsentBanner.d.ts +18 -0
  11. package/lib/consent/ConsentBanner.d.ts.map +1 -0
  12. package/lib/consent/ConsentBanner.js +90 -0
  13. package/lib/consent/ConsentBanner.js.map +1 -0
  14. package/lib/core/attribution.d.ts +54 -0
  15. package/lib/core/attribution.d.ts.map +1 -0
  16. package/lib/core/attribution.js +112 -0
  17. package/lib/core/attribution.js.map +1 -0
  18. package/lib/core/consent.d.ts +16 -1
  19. package/lib/core/consent.d.ts.map +1 -1
  20. package/lib/core/consent.js +79 -32
  21. package/lib/core/consent.js.map +1 -1
  22. package/lib/core/experiments.d.ts +59 -0
  23. package/lib/core/experiments.d.ts.map +1 -0
  24. package/lib/core/experiments.js +201 -0
  25. package/lib/core/experiments.js.map +1 -0
  26. package/lib/core/triggerEngine.d.ts +5 -3
  27. package/lib/core/triggerEngine.d.ts.map +1 -1
  28. package/lib/core/triggerEngine.js +16 -2
  29. package/lib/core/triggerEngine.js.map +1 -1
  30. package/lib/index.d.ts +4 -0
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +5 -1
  33. package/lib/index.js.map +1 -1
  34. package/lib/survey/definitionCache.d.ts +15 -0
  35. package/lib/survey/definitionCache.d.ts.map +1 -0
  36. package/lib/survey/definitionCache.js +80 -0
  37. package/lib/survey/definitionCache.js.map +1 -0
  38. package/lib/survey/pagesFromV1.d.ts.map +1 -1
  39. package/lib/survey/pagesFromV1.js +30 -76
  40. package/lib/survey/pagesFromV1.js.map +1 -1
  41. package/lib/survey/validate.d.ts.map +1 -1
  42. package/lib/survey/validate.js +13 -163
  43. package/lib/survey/validate.js.map +1 -1
  44. package/lib/survey/voiceParsers.d.ts +12 -42
  45. package/lib/survey/voiceParsers.d.ts.map +1 -1
  46. package/lib/survey/voiceParsers.js +60 -284
  47. package/lib/survey/voiceParsers.js.map +1 -1
  48. package/lib/types.d.ts +18 -1
  49. package/lib/types.d.ts.map +1 -1
  50. package/lib/types.js.map +1 -1
  51. package/package.json +3 -3
@@ -6,6 +6,8 @@ const react_1 = require("react");
6
6
  const react_native_1 = require("react-native");
7
7
  const CXPinsight_1 = require("./CXPinsight");
8
8
  const network_1 = require("./core/network");
9
+ const ConsentBanner_1 = require("./consent/ConsentBanner");
10
+ const definitionCache_1 = require("./survey/definitionCache");
9
11
  const session_1 = require("./core/session");
10
12
  const deviceInfo_1 = require("./core/deviceInfo");
11
13
  const mobileRecorder_1 = require("./core/mobileRecorder");
@@ -44,6 +46,10 @@ function normalizeQuestion(raw) {
44
46
  * affected by the SDK.
45
47
  */
46
48
  function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef }) {
49
+ // Whether the banner is up. Seeded once init() has settled, because until
50
+ // then the stored decision has not been read and showing the banner would
51
+ // ask someone who already answered.
52
+ const [consentPending, setConsentPending] = (0, react_1.useState)(false);
47
53
  const [activeSurvey, setActiveSurvey] = (0, react_1.useState)(null);
48
54
  const [activeSurveyId, setActiveSurveyId] = (0, react_1.useState)(null);
49
55
  const surveyActiveRef = (0, react_1.useRef)(false);
@@ -53,22 +59,40 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
53
59
  const [scannedElements, setScannedElements] = (0, react_1.useState)([]);
54
60
  const [currentScreen, setCurrentScreen] = (0, react_1.useState)(screenName);
55
61
  // ── Survey presentation ──
62
+ // Returns whether the survey was actually presented. The trigger engine
63
+ // records a firing off this: it previously recorded unconditionally, so an
64
+ // invitation that failed to load still burned its frequency cap and, for a
65
+ // 'once' survey, was gone for good.
56
66
  const presentSurvey = (0, react_1.useCallback)(async (surveyId, options) => {
57
67
  try {
58
68
  if (surveyActiveRef.current)
59
- return;
69
+ return false;
60
70
  // Phase 4 — fetch via v1.1 public endpoint. Server-side
61
71
  // getSurveyV1 covers both the typed fast path (metadata.v1Definition)
62
72
  // AND the legacy translator fallback, so a single call works
63
73
  // regardless of when the survey was authored. The response is
64
74
  // wrapped `{success, data: v1survey}` so we unwrap once here.
65
75
  const result = await (0, network_1.sdkFetch)('GET', `/api/survey/v1/public/${surveyId}`);
66
- if (!result.success || !result.data) {
67
- CXPinsight_1.CXPinsight._getCallbacks().onError?.(new Error(`Failed to fetch survey: ${result.error}`));
68
- return;
76
+ let raw;
77
+ if (result.success && result.data) {
78
+ const envelope = result.data;
79
+ raw = envelope.data || envelope;
80
+ // Cache on the way past, so the next offline trigger has something to
81
+ // show. A successful fetch always wins over the cache, so an edit in
82
+ // the dashboard reaches respondents on their next online launch.
83
+ void (0, definitionCache_1.cacheDefinition)(surveyId, raw);
84
+ }
85
+ else {
86
+ // Offline, or the server is unreachable. A native app is offline
87
+ // routinely, and dropping the invitation here is what made a trigger
88
+ // that came due on a plane disappear permanently.
89
+ const cached = await (0, definitionCache_1.getCachedDefinition)(surveyId);
90
+ if (!cached) {
91
+ CXPinsight_1.CXPinsight._getCallbacks().onError?.(new Error(`Failed to fetch survey: ${result.error}`));
92
+ return false;
93
+ }
94
+ raw = cached;
69
95
  }
70
- const envelope = result.data;
71
- const raw = envelope.data || envelope;
72
96
  // v1.1 shape: flat questions[] + optional sections[] overlay.
73
97
  // pagesFromV1 normalizes question ids/names first, then splits
74
98
  // into pages via sections OR pageBreak type. The provider only
@@ -91,7 +115,7 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
91
115
  const pages = (0, pagesFromV1_1.pagesFromV1)({ questions: rawQuestions, sections: rawSections }, undefined, presentationMode);
92
116
  if (pages.length === 0) {
93
117
  CXPinsight_1.CXPinsight._getCallbacks().onError?.(new Error('Survey has no renderable questions'));
94
- return;
118
+ return false;
95
119
  }
96
120
  // v1.1 branding pass-through. SDK sanitizer runs server-side
97
121
  // (translator.brandingToInternal), so anything we get here is
@@ -168,7 +192,12 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
168
192
  const verdict = (envelope && envelope.data) || envelope;
169
193
  if (res?.success && verdict && verdict.eligible === false) {
170
194
  CXPinsight_1.CXPinsight._getCallbacks().onSurveySuppressed?.(surveyId, verdict.reason || 'targeting');
171
- return;
195
+ // Suppressed is not presented, so the trigger is not recorded as
196
+ // fired. It costs an eligibility check the next time the condition
197
+ // recurs, and buys the case that matters: a respondent who was not
198
+ // eligible today and is next week still gets the invitation, rather
199
+ // than having spent it while ineligible.
200
+ return false;
172
201
  }
173
202
  }
174
203
  catch {
@@ -178,7 +207,7 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
178
207
  if (!options?.skipFrequencyCap) {
179
208
  const allowed = await (0, frequencyCap_1.canShowSurvey)(surveyId);
180
209
  if (!allowed)
181
- return;
210
+ return false;
182
211
  }
183
212
  // Impressions/dismissals go through the v1 survey surface (same
184
213
  // Job.metadata counters the legacy /widgets endpoints wrote, now
@@ -194,15 +223,21 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
194
223
  setActiveSurveyId(surveyId);
195
224
  setActiveSurvey(surveyData);
196
225
  CXPinsight_1.CXPinsight._getCallbacks().onSurveyPresented?.(surveyId);
226
+ return true;
197
227
  }
198
228
  catch (err) {
199
229
  CXPinsight_1.CXPinsight._getCallbacks().onError?.(err instanceof Error ? err : new Error(String(err)));
230
+ return false;
200
231
  }
201
232
  }, []);
202
233
  // ── Presenter registration ──
203
234
  (0, react_1.useEffect)(() => {
204
235
  CXPinsight_1.CXPinsight._registerSurveyPresenter(presentSurvey);
205
236
  (0, triggerEngine_1.registerSurveyTrigger)(presentSurvey);
237
+ // The SDK tells the provider when a decision is outstanding, rather than
238
+ // the provider polling: init() is async, and the answer is only knowable
239
+ // after storage has been read.
240
+ CXPinsight_1.CXPinsight._registerConsentPrompt(() => setConsentPending(true));
206
241
  CXPinsight_1.CXPinsight._registerSetupPresenter((show) => {
207
242
  if (show) {
208
243
  (0, SetupController_1.isSetupActive)() ? setSetupActive(true) : setShowCodeEntry(true);
@@ -373,7 +408,10 @@ function CXPinsightProvider({ children, screenName = 'Unknown', navigationRef })
373
408
  const onEnd = (0, react_1.useCallback)(() => emitPending(), [emitPending]);
374
409
  // The children get a single flex:1 wrapper so root taps can be observed. SDK UI stays
375
410
  // outside it (Modals), so navigation is unaffected.
376
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flex: 1 }, onStartShouldSetResponderCapture: onStartCapture, onTouchEnd: onEnd, onTouchCancel: onEnd, children: children }), activeSurvey && ((0, jsx_runtime_1.jsx)(SurveyModal_1.SurveyModal, { survey: activeSurvey, visible: !!activeSurvey, onSubmit: handleSubmit, onDismiss: handleDismiss })), showCodeEntry && sdkConfig && ((0, jsx_runtime_1.jsx)(SetupCodeEntry_1.SetupCodeEntry, { visible: showCodeEntry,
411
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flex: 1 }, onStartShouldSetResponderCapture: onStartCapture, onTouchEnd: onEnd, onTouchCancel: onEnd, children: children }), (0, jsx_runtime_1.jsx)(ConsentBanner_1.ConsentBanner, { visible: consentPending, text: CXPinsight_1.CXPinsight._getConfig()?.consentText, onDecide: (map) => {
412
+ CXPinsight_1.CXPinsight.consent(map);
413
+ setConsentPending(false);
414
+ } }), activeSurvey && ((0, jsx_runtime_1.jsx)(SurveyModal_1.SurveyModal, { survey: activeSurvey, visible: !!activeSurvey, onSubmit: handleSubmit, onDismiss: handleDismiss })), showCodeEntry && sdkConfig && ((0, jsx_runtime_1.jsx)(SetupCodeEntry_1.SetupCodeEntry, { visible: showCodeEntry,
377
415
  // Phase 9: SDK config no longer carries a siteId. Setup mode needs a
378
416
  // Site row id (per-device pairing key) that the app must supply
379
417
  // externally — the built-in flow leaves it blank so callers see the
@@ -1 +1 @@
1
- {"version":3,"file":"CXPinsightProvider.js","sourceRoot":"","sources":["../src/CXPinsightProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CXPinsightProvider.js","sourceRoot":"","sources":["../src/CXPinsightProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type ConsentMap } from '../core/consent';
2
+ export interface ConsentBannerText {
3
+ title?: string;
4
+ body?: string;
5
+ acceptAll?: string;
6
+ customize?: string;
7
+ customizeTitle?: string;
8
+ save?: string;
9
+ rejectAll?: string;
10
+ }
11
+ export interface ConsentBannerProps {
12
+ visible: boolean;
13
+ accent?: string;
14
+ text?: ConsentBannerText;
15
+ onDecide: (map: ConsentMap) => void;
16
+ }
17
+ export declare function ConsentBanner({ visible, accent, text, onDecide }: ConsentBannerProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=ConsentBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentBanner.d.ts","sourceRoot":"","sources":["../../src/consent/ConsentBanner.tsx"],"names":[],"mappings":"AAeA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAsB5F,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;CACrC;AAKD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,MAAkB,EAAE,IAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAmFrG"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsentBanner = ConsentBanner;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * The consent banner — "Accept all / Customize", and behind Customize a toggle
7
+ * per category.
8
+ *
9
+ * The same two views and the same categories as the web SDK's, so a company
10
+ * shipping both channels asks its users one question, not two versions of one
11
+ * question. Only the rendering differs, which is the whole point of keeping the
12
+ * decision rules in core/consent.ts.
13
+ *
14
+ * OPT-IN, per app: `consentBanner: true` in init(). Most apps have their own
15
+ * privacy flow and call CXPinsight.consent(...) from it, and showing ours
16
+ * unasked would give their users two.
17
+ */
18
+ const react_1 = require("react");
19
+ const react_native_1 = require("react-native");
20
+ const consent_1 = require("../core/consent");
21
+ /** What each category means in the user's terms, not ours. */
22
+ const COPY = {
23
+ analytics: {
24
+ label: 'Product analytics',
25
+ hint: 'Which screens you open and what you tap, so we can see what needs fixing.',
26
+ },
27
+ recording: {
28
+ label: 'Session replay',
29
+ hint: 'A timeline of your visit. Anything you type is hidden.',
30
+ },
31
+ network: {
32
+ label: 'Performance',
33
+ hint: 'How long our own requests take. Never their contents.',
34
+ },
35
+ surveys: {
36
+ label: 'Feedback surveys',
37
+ hint: 'Lets us ask you a short question now and then.',
38
+ },
39
+ };
40
+ const all = (granted) => consent_1.CONSENT_CATEGORIES.reduce((m, c) => { m[c] = granted; return m; }, {});
41
+ function ConsentBanner({ visible, accent = '#2b6cb0', text = {}, onDecide }) {
42
+ const [customizing, setCustomizing] = (0, react_1.useState)(false);
43
+ const [choices, setChoices] = (0, react_1.useState)(() => all(false));
44
+ // Recomputed only when the accent changes, because StyleSheet.create on every
45
+ // render defeats the caching it exists for.
46
+ const s = (0, react_1.useMemo)(() => styles(accent), [accent]);
47
+ const decide = (map) => {
48
+ setCustomizing(false);
49
+ setChoices(all(false));
50
+ onDecide(map);
51
+ };
52
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Modal, { visible: visible, transparent: true, animationType: "fade",
53
+ // Android's back button declines rather than dismissing. A banner that
54
+ // can be waved away without answering collects data from someone who
55
+ // never agreed, so the dismissal has to mean something and "no" is the
56
+ // only safe reading.
57
+ onRequestClose: () => decide(all(false)), children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: s.backdrop, children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: s.panel, accessibilityViewIsModal: true, accessibilityRole: "alert", children: !customizing ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.title, children: text.title ?? 'Your privacy choices' }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.body, children: text.body ?? 'We collect a little information to understand how the app is used. You choose what.' }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: s.actions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [s.btn, s.accept], accessibilityRole: "button", onPress: () => decide(all(true)), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.acceptLabel, children: text.acceptAll ?? 'Accept all' }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [s.btn, s.secondary], accessibilityRole: "button", onPress: () => setCustomizing(true), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.secondaryLabel, children: text.customize ?? 'Customize' }) })] })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.title, children: text.customizeTitle ?? 'Choose what to allow' }), (0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { style: s.list, children: consent_1.CONSENT_CATEGORIES.map((c) => ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: s.row, children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: s.rowText, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.label, children: COPY[c].label }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.hint, children: COPY[c].hint })] }), (0, jsx_runtime_1.jsx)(react_native_1.Switch, { value: choices[c], onValueChange: (v) => setChoices((prev) => ({ ...prev, [c]: v })), accessibilityLabel: COPY[c].label, trackColor: { true: accent, false: '#cfcfcf' } })] }, c))) }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: s.actions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [s.btn, s.accept], accessibilityRole: "button", onPress: () => decide(choices), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.acceptLabel, children: text.save ?? 'Save choices' }) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [s.btn, s.secondary], accessibilityRole: "button", onPress: () => decide(all(false)), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: s.secondaryLabel, children: text.rejectAll ?? 'Reject all' }) })] })] })) }) }) }));
58
+ }
59
+ const styles = (accent) => react_native_1.StyleSheet.create({
60
+ backdrop: {
61
+ flex: 1, backgroundColor: 'rgba(0,0,0,0.35)',
62
+ justifyContent: 'flex-end', padding: 16,
63
+ },
64
+ panel: {
65
+ backgroundColor: '#fff', borderRadius: 14, padding: 22,
66
+ maxHeight: '86%',
67
+ shadowColor: '#000', shadowOpacity: 0.28, shadowRadius: 20, shadowOffset: { width: 0, height: 12 },
68
+ elevation: 12,
69
+ },
70
+ title: { fontSize: 18, fontWeight: '600', color: '#1a1a1a', marginBottom: 8 },
71
+ body: { fontSize: 14, lineHeight: 21, color: '#5c5c5c', marginBottom: 18 },
72
+ actions: { flexDirection: 'row', flexWrap: 'wrap', gap: 10 },
73
+ btn: {
74
+ flexGrow: 1, flexBasis: 130, paddingVertical: 12, paddingHorizontal: 18,
75
+ borderRadius: 8, alignItems: 'center', borderWidth: 1, borderColor: 'transparent',
76
+ },
77
+ accept: { backgroundColor: accent },
78
+ acceptLabel: { color: '#fff', fontWeight: '600', fontSize: 15 },
79
+ secondary: { backgroundColor: 'transparent', borderColor: '#d4d4d4' },
80
+ secondaryLabel: { color: '#1a1a1a', fontWeight: '600', fontSize: 15 },
81
+ list: { marginBottom: 18 },
82
+ row: {
83
+ flexDirection: 'row', alignItems: 'flex-start', gap: 12,
84
+ paddingVertical: 12, borderBottomWidth: react_native_1.StyleSheet.hairlineWidth, borderBottomColor: '#ececec',
85
+ },
86
+ rowText: { flex: 1 },
87
+ label: { fontSize: 14.5, fontWeight: '600', color: '#1a1a1a' },
88
+ hint: { fontSize: 13, lineHeight: 19, color: '#5c5c5c', marginTop: 2 },
89
+ });
90
+ //# sourceMappingURL=ConsentBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentBanner.js","sourceRoot":"","sources":["../../src/consent/ConsentBanner.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Campaign attribution.
3
+ *
4
+ * The web SDK reads UTM parameters off the page URL and classifies the traffic
5
+ * channel from them and the referrer. Mobile captured neither, so a campaign
6
+ * that drove an app install or open was attributed as Direct — the traffic
7
+ * existed in the numbers, it just had no source.
8
+ *
9
+ * ## Where the parameters come from
10
+ *
11
+ * The deep link that opened the app. `parseDeepLink()` already extracts the
12
+ * query, so this only has to read it. There is no referrer in a native app, so
13
+ * the referrer half of web's classification has no analogue here — the deep
14
+ * link host is the closest thing and is recorded as `source_host` rather than
15
+ * pretending to be a referrer.
16
+ *
17
+ * Android's install referrer, which is how a Play Store campaign attributes a
18
+ * FIRST launch, needs a native module and is deliberately out of scope. Without
19
+ * it, an install driven by a campaign is attributed only if the campaign also
20
+ * deep-links into the app. Recorded so nobody assumes install attribution works.
21
+ *
22
+ * ## Ported, and tested against the original
23
+ *
24
+ * `classifyChannel` is web's UTM logic, rule for rule and in the same order —
25
+ * order matters, since a link with both `utm_medium=social` and `gclid` is Paid
26
+ * Search on web and has to be here too. The referrer rules are web-only and are
27
+ * not reproduced. A test runs web's own function against this one over a matrix
28
+ * of UTM inputs, because two channel classifiers that disagree quietly split one
29
+ * campaign's numbers across two rows in a report.
30
+ */
31
+ export type UtmParams = Record<string, string>;
32
+ /** Pull campaign parameters out of a deep link's query. Null when there are none. */
33
+ export declare function utmFromParams(params: Record<string, string> | undefined): UtmParams | null;
34
+ /**
35
+ * Traffic channel from campaign parameters.
36
+ *
37
+ * Mirrors the web SDK's UTM branch exactly, including the order — the first
38
+ * matching rule wins, so `utm_medium=social` with a `gclid` classifies as Paid
39
+ * Search on both channels rather than Social on one of them.
40
+ *
41
+ * Returns 'Direct' when there is nothing to go on. Web can do better there
42
+ * because it has a referrer; mobile genuinely cannot.
43
+ */
44
+ export declare function classifyChannel(utm: UtmParams | null): string;
45
+ export interface Attribution {
46
+ utm: UtmParams | null;
47
+ channel: string;
48
+ /** The deep link host, when there was one. Not a referrer; do not treat it as one. */
49
+ source_host?: string;
50
+ }
51
+ export declare function recordAttribution(params: Record<string, string> | undefined, host?: string): Attribution;
52
+ export declare function getFirstTouch(): Attribution | null;
53
+ export declare function clearAttribution(): void;
54
+ //# sourceMappingURL=attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../../src/core/attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAM1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAc7D;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC1C,IAAI,CAAC,EAAE,MAAM,GACZ,WAAW,CAQb;AAED,wBAAgB,aAAa,IAAI,WAAW,GAAG,IAAI,CAElD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * Campaign attribution.
4
+ *
5
+ * The web SDK reads UTM parameters off the page URL and classifies the traffic
6
+ * channel from them and the referrer. Mobile captured neither, so a campaign
7
+ * that drove an app install or open was attributed as Direct — the traffic
8
+ * existed in the numbers, it just had no source.
9
+ *
10
+ * ## Where the parameters come from
11
+ *
12
+ * The deep link that opened the app. `parseDeepLink()` already extracts the
13
+ * query, so this only has to read it. There is no referrer in a native app, so
14
+ * the referrer half of web's classification has no analogue here — the deep
15
+ * link host is the closest thing and is recorded as `source_host` rather than
16
+ * pretending to be a referrer.
17
+ *
18
+ * Android's install referrer, which is how a Play Store campaign attributes a
19
+ * FIRST launch, needs a native module and is deliberately out of scope. Without
20
+ * it, an install driven by a campaign is attributed only if the campaign also
21
+ * deep-links into the app. Recorded so nobody assumes install attribution works.
22
+ *
23
+ * ## Ported, and tested against the original
24
+ *
25
+ * `classifyChannel` is web's UTM logic, rule for rule and in the same order —
26
+ * order matters, since a link with both `utm_medium=social` and `gclid` is Paid
27
+ * Search on web and has to be here too. The referrer rules are web-only and are
28
+ * not reproduced. A test runs web's own function against this one over a matrix
29
+ * of UTM inputs, because two channel classifiers that disagree quietly split one
30
+ * campaign's numbers across two rows in a report.
31
+ */
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.utmFromParams = utmFromParams;
34
+ exports.classifyChannel = classifyChannel;
35
+ exports.recordAttribution = recordAttribution;
36
+ exports.getFirstTouch = getFirstTouch;
37
+ exports.clearAttribution = clearAttribution;
38
+ /** The parameters web reads, in the order it reads them. */
39
+ const UTM_KEYS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
40
+ const CLICK_IDS = ['gclid', 'fbclid', 'msclkid'];
41
+ /** Pull campaign parameters out of a deep link's query. Null when there are none. */
42
+ function utmFromParams(params) {
43
+ if (!params)
44
+ return null;
45
+ const utm = {};
46
+ for (const k of UTM_KEYS)
47
+ if (params[k])
48
+ utm[k] = params[k];
49
+ for (const k of CLICK_IDS)
50
+ if (params[k])
51
+ utm[k] = params[k];
52
+ return Object.keys(utm).length ? utm : null;
53
+ }
54
+ /**
55
+ * Traffic channel from campaign parameters.
56
+ *
57
+ * Mirrors the web SDK's UTM branch exactly, including the order — the first
58
+ * matching rule wins, so `utm_medium=social` with a `gclid` classifies as Paid
59
+ * Search on both channels rather than Social on one of them.
60
+ *
61
+ * Returns 'Direct' when there is nothing to go on. Web can do better there
62
+ * because it has a referrer; mobile genuinely cannot.
63
+ */
64
+ function classifyChannel(utm) {
65
+ if (utm) {
66
+ const medium = (utm.utm_medium || '').toLowerCase();
67
+ const source = (utm.utm_source || '').toLowerCase();
68
+ if (medium === 'cpc' || medium === 'ppc' || medium === 'paid' || utm.gclid || utm.msclkid)
69
+ return 'Paid Search';
70
+ if (medium === 'paid_social' || medium === 'paidsocial')
71
+ return 'Paid Social';
72
+ if (medium === 'display' || medium === 'banner' || medium === 'cpm')
73
+ return 'Display';
74
+ if (medium === 'email' || source === 'email' || source === 'newsletter')
75
+ return 'Email';
76
+ if (medium === 'social' || medium === 'social-media' || utm.fbclid)
77
+ return 'Social';
78
+ if (medium === 'affiliate')
79
+ return 'Affiliates';
80
+ if (medium === 'referral')
81
+ return 'Referral';
82
+ if (medium === 'organic')
83
+ return 'Organic Search';
84
+ }
85
+ return 'Direct';
86
+ }
87
+ /**
88
+ * First-touch attribution for the session.
89
+ *
90
+ * Held in memory only. Persisting a first-touch across installs would outlive
91
+ * the identity it describes, and the platform already has the events needed to
92
+ * reconstruct it server-side from the first attributed open.
93
+ */
94
+ let firstTouch = null;
95
+ function recordAttribution(params, host) {
96
+ const utm = utmFromParams(params);
97
+ const attribution = { utm, channel: classifyChannel(utm) };
98
+ if (host)
99
+ attribution.source_host = host;
100
+ // Only an ATTRIBUTED open replaces first-touch. Otherwise every subsequent
101
+ // plain launch would overwrite the campaign that actually brought the user in.
102
+ if (!firstTouch || (utm && !firstTouch.utm))
103
+ firstTouch = attribution;
104
+ return attribution;
105
+ }
106
+ function getFirstTouch() {
107
+ return firstTouch;
108
+ }
109
+ function clearAttribution() {
110
+ firstTouch = null;
111
+ }
112
+ //# sourceMappingURL=attribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.js","sourceRoot":"","sources":["../../src/core/attribution.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;;;;;AAEH,4DAA4D;AAC5D,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;AAClG,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAI1D,qFAAqF;AACrF,uBAA8B,MAA0C;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,yBAAgC,GAAqB;IACnD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,aAAa,CAAC;QAChH,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,aAAa,CAAC;QAC9E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QACtF,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,OAAO,CAAC;QACxF,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QACpF,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,YAAY,CAAC;QAChD,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,gBAAgB,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AASD;;;;;;GAMG;AACH,IAAI,UAAU,GAAuB,IAAI,CAAC;AAE1C,2BACE,MAA0C,EAC1C,IAAa;IAEb,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,GAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IACxE,IAAI,IAAI;QAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;IACzC,2EAA2E;IAC3E,+EAA+E;IAC/E,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,UAAU,GAAG,WAAW,CAAC;IACtE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;IACE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;IACE,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -1,4 +1,8 @@
1
1
  export type ConsentState = 'granted' | 'denied' | null;
2
+ /** Only what this SDK can actually do. Same list as the web SDK. */
3
+ export declare const CONSENT_CATEGORIES: readonly ['analytics', 'recording', 'network', 'surveys'];
4
+ export type ConsentCategory = (typeof CONSENT_CATEGORIES)[number];
5
+ export type ConsentMap = Record<ConsentCategory, boolean>;
2
6
  /** Restore any prior decision. Call once during init, before capture starts. */
3
7
  export declare function initConsent(requireConsent?: boolean): Promise<void>;
4
8
  /** Notified when consent flips, so the SDK can start or stop capture. */
@@ -9,11 +13,22 @@ export declare function setConsentHandler(cb: ((granted: boolean) => void) | nul
9
13
  * An explicit denial always wins, even when requireConsent is off — a host that
10
14
  * calls optOut() means it, regardless of how the SDK was configured.
11
15
  */
16
+ export declare function mayUse(category: ConsentCategory): boolean;
17
+ /** Kept for call sites that predate categories; analytics is the broadest. */
12
18
  export declare function mayCapture(): boolean;
13
19
  /** True when events should be held rather than sent (awaiting a decision). */
14
20
  export declare function isPending(): boolean;
15
21
  export declare function consentRequired(): boolean;
16
- export declare function getConsent(): ConsentState;
22
+ /**
23
+ * The per-category decision, or null when the visitor has not decided.
24
+ *
25
+ * Null rather than an all-false map: "declined" and "not asked yet" need
26
+ * different UI, and a banner that cannot tell them apart re-prompts someone who
27
+ * already said no.
28
+ */
29
+ export declare function getConsent(): ConsentMap | null;
30
+ /** Set some categories, leaving the rest as they are. Unknown keys are ignored. */
31
+ export declare function setConsent(partial: Partial<ConsentMap>): void;
17
32
  export declare function grantConsent(): void;
18
33
  export declare function revokeConsent(): void;
19
34
  /** Reset to "no decision yet" — used by CXPinsight.reset(). */
@@ -1 +1 @@
1
- {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/core/consent.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;AAMvD,gFAAgF;AAChF,wBAAsB,WAAW,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,UAAU,IAAI,YAAY,CAEzC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,+DAA+D;AAC/D,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD"}
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/core/consent.ts"],"names":[],"mappings":"AAsCA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEvD,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,YAAI,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAS1D,gFAAgF;AAChF,wBAAsB,WAAW,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAIzD;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,UAAU,GAAG,IAAI,CAM9C;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAiB7D;AAED,wBAAgB,YAAY,IAAI,IAAI,CAAqC;AACzE,wBAAgB,aAAa,IAAI,IAAI,CAAsC;AAE3E,+DAA+D;AAC/D,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD"}