@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
@@ -33,12 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CONSENT_CATEGORIES = void 0;
36
37
  exports.initConsent = initConsent;
37
38
  exports.setConsentHandler = setConsentHandler;
39
+ exports.mayUse = mayUse;
38
40
  exports.mayCapture = mayCapture;
39
41
  exports.isPending = isPending;
40
42
  exports.consentRequired = consentRequired;
41
43
  exports.getConsent = getConsent;
44
+ exports.setConsent = setConsent;
42
45
  exports.grantConsent = grantConsent;
43
46
  exports.revokeConsent = revokeConsent;
44
47
  exports.clearConsent = clearConsent;
@@ -60,23 +63,48 @@ exports.clearConsent = clearConsent;
60
63
  * `requireConsent` is opt-in and defaults to false, so nothing changes for an
61
64
  * app that does not set it. With it on, capture stays OFF until the host grants.
62
65
  *
63
- * One deliberate difference from web, in the stricter direction. Web's gate
64
- * covers session recording and network capture but lets ordinary analytics
65
- * events through. Here, requireConsent also holds ANALYTICS events they are
66
- * buffered in the event queue rather than dropped, so a visitor who accepts the
67
- * banner a few seconds in keeps their whole session rather than losing its
68
- * opening. Revoking clears that buffer instead of sending it.
66
+ * Consent is PER CATEGORY, on both channels. "Do you accept tracking?" is not
67
+ * one question: someone happy to be counted may not be happy to be recorded,
68
+ * and a single yes/no makes them refuse everything to refuse one thing.
69
+ *
70
+ * analytics screens, taps, scroll depth, custom events, lifecycle
71
+ * recording session replay (the mobile timeline recorder)
72
+ * network the shape of outbound requests: method, host, path, status
73
+ * surveys showing a survey and collecting the response
74
+ *
75
+ * There is deliberately no "push notifications" category — neither SDK has that
76
+ * capability, and a toggle for something that does nothing promises what the
77
+ * product cannot deliver.
78
+ *
79
+ * Analytics events are still BUFFERED rather than dropped while a decision is
80
+ * pending, so a visitor who accepts a few seconds in keeps the opening of their
81
+ * session. Revoking clears that buffer instead of sending it.
69
82
  */
70
83
  const types_1 = require("../types");
71
84
  const storage = __importStar(require("./storage"));
85
+ /** Only what this SDK can actually do. Same list as the web SDK. */
86
+ exports.CONSENT_CATEGORIES = ['analytics', 'recording', 'network', 'surveys'];
72
87
  let required = false;
73
- let state = null;
88
+ let categories = null;
74
89
  let onChange = null;
90
+ const allCategories = (granted) => exports.CONSENT_CATEGORIES.reduce((m, c) => { m[c] = granted; return m; }, {});
75
91
  /** Restore any prior decision. Call once during init, before capture starts. */
76
92
  async function initConsent(requireConsent) {
77
93
  required = requireConsent === true;
78
94
  const saved = await storage.get(types_1.STORAGE_KEYS.CONSENT);
79
- state = saved === 'granted' || saved === 'denied' ? saved : null;
95
+ // Migrate the old scalar. A device storing 'granted' had consented to
96
+ // everything the SDK then did; reading it as undecided would re-prompt
97
+ // someone who has already answered, and as denied would stop collection they
98
+ // agreed to.
99
+ if (saved === 'granted' || saved === 'denied') {
100
+ categories = allCategories(saved === 'granted');
101
+ }
102
+ else if (saved && typeof saved === 'object') {
103
+ categories = saved;
104
+ }
105
+ else {
106
+ categories = null;
107
+ }
80
108
  }
81
109
  /** Notified when consent flips, so the SDK can start or stop capture. */
82
110
  function setConsentHandler(cb) {
@@ -88,44 +116,63 @@ function setConsentHandler(cb) {
88
116
  * An explicit denial always wins, even when requireConsent is off — a host that
89
117
  * calls optOut() means it, regardless of how the SDK was configured.
90
118
  */
119
+ function mayUse(category) {
120
+ const decided = categories?.[category];
121
+ if (typeof decided === 'boolean')
122
+ return decided;
123
+ return !required;
124
+ }
125
+ /** Kept for call sites that predate categories; analytics is the broadest. */
91
126
  function mayCapture() {
92
- if (state === 'denied')
93
- return false;
94
- return !required || state === 'granted';
127
+ return mayUse('analytics');
95
128
  }
96
129
  /** True when events should be held rather than sent (awaiting a decision). */
97
130
  function isPending() {
98
- return required && state === null;
131
+ return required && categories === null;
99
132
  }
100
133
  function consentRequired() {
101
134
  return required;
102
135
  }
136
+ /**
137
+ * The per-category decision, or null when the visitor has not decided.
138
+ *
139
+ * Null rather than an all-false map: "declined" and "not asked yet" need
140
+ * different UI, and a banner that cannot tell them apart re-prompts someone who
141
+ * already said no.
142
+ */
103
143
  function getConsent() {
104
- return state;
105
- }
106
- function grantConsent() {
107
- if (state === 'granted')
108
- return;
109
- state = 'granted';
110
- void storage.set(types_1.STORAGE_KEYS.CONSENT, state);
111
- try {
112
- onChange?.(true);
113
- }
114
- catch { /* host callback must not break the gate */ }
144
+ if (!categories)
145
+ return null;
146
+ return exports.CONSENT_CATEGORIES.reduce((m, c) => {
147
+ m[c] = categories?.[c] === true;
148
+ return m;
149
+ }, {});
115
150
  }
116
- function revokeConsent() {
117
- if (state === 'denied')
118
- return;
119
- state = 'denied';
120
- void storage.set(types_1.STORAGE_KEYS.CONSENT, state);
121
- try {
122
- onChange?.(false);
151
+ /** Set some categories, leaving the rest as they are. Unknown keys are ignored. */
152
+ function setConsent(partial) {
153
+ const next = exports.CONSENT_CATEGORIES.reduce((m, c) => {
154
+ m[c] = typeof partial[c] === 'boolean' ? partial[c] : categories?.[c] === true;
155
+ return m;
156
+ }, {});
157
+ // Notify when the MAP changed, not when a summary boolean did. Comparing a
158
+ // single boolean would miss turning recording off while analytics stays on —
159
+ // the exact case categories exist for — while comparing nothing at all would
160
+ // fire on a repeated grant that changed nothing.
161
+ const changed = !categories || exports.CONSENT_CATEGORIES.some((c) => (categories?.[c] === true) !== next[c]);
162
+ categories = next;
163
+ void storage.set(types_1.STORAGE_KEYS.CONSENT, next);
164
+ if (changed) {
165
+ try {
166
+ onChange?.(exports.CONSENT_CATEGORIES.some((c) => next[c]));
167
+ }
168
+ catch { /* a host callback must not break the gate */ }
123
169
  }
124
- catch { /* best-effort */ }
125
170
  }
171
+ function grantConsent() { setConsent(allCategories(true)); }
172
+ function revokeConsent() { setConsent(allCategories(false)); }
126
173
  /** Reset to "no decision yet" — used by CXPinsight.reset(). */
127
174
  async function clearConsent() {
128
- state = null;
175
+ categories = null;
129
176
  await storage.remove(types_1.STORAGE_KEYS.CONSENT);
130
177
  }
131
178
  //# sourceMappingURL=consent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/core/consent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oCAAwC;AACxC,MAAY,OAAO,sCAAkB;AAIrC,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,KAAK,GAAiB,IAAI,CAAC;AAC/B,IAAI,QAAQ,GAAwC,IAAI,CAAC;AAEzD,gFAAgF;AACzE,KAAK,sBAAsB,cAAwB;IACxD,QAAQ,GAAG,cAAc,KAAK,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAe,oBAAY,CAAC,OAAO,CAAC,CAAC;IACpE,KAAK,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,yEAAyE;AACzE,2BAAkC,EAAuC;IACvE,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH;IACE,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E;IACE,OAAO,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;IACE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;IACE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;IACE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,KAAK,GAAG,SAAS,CAAC;IAClB,KAAK,OAAO,CAAC,GAAG,CAAC,oBAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;AACjF,CAAC;AAED;IACE,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO;IAC/B,KAAK,GAAG,QAAQ,CAAC;IACjB,KAAK,OAAO,CAAC,GAAG,CAAC,oBAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC;QAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACxD,CAAC;AAED,+DAA+D;AACxD,KAAK;IACV,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,OAAO,CAAC,MAAM,CAAC,oBAAY,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/core/consent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /** One variant of an experiment, as the definitions endpoint returns it. */
2
+ export interface ExperimentVariant {
3
+ variantId: string;
4
+ name?: string;
5
+ weight?: number;
6
+ }
7
+ export interface ExperimentDefinition {
8
+ experimentId: string;
9
+ name?: string;
10
+ trafficPercent?: number;
11
+ variants: ExperimentVariant[];
12
+ }
13
+ export interface Assignment {
14
+ variantId: string;
15
+ variantName: string;
16
+ }
17
+ /**
18
+ * Stable 0–99 bucket from the user id.
19
+ *
20
+ * Deliberately the same arithmetic as the web SDK: a 32-bit `(h << 5) - h`
21
+ * accumulator, then `Math.abs(h % 100)`. JavaScript's `%` keeps the sign of the
22
+ * dividend, which is why the abs is load-bearing rather than decorative — 37 of
23
+ * every 100 hashes come out negative and would otherwise never clear any gate.
24
+ */
25
+ export declare function bucketOf(userId: string): number;
26
+ /** Weighted pick, with the same fallback the web SDK uses. */
27
+ export declare function pickVariant(variants: ExperimentVariant[], random?: () => number): ExperimentVariant | null;
28
+ /**
29
+ * Assign this user to every active experiment they qualify for.
30
+ *
31
+ * `onImpression` is called for each NEW assignment only. A returning user whose
32
+ * variant was already stored is not re-reported, because an impression per app
33
+ * launch would inflate the denominator of every experiment on the platform.
34
+ */
35
+ export declare function loadExperiments(applicationId: string, userId: string, onImpression: (exp: ExperimentDefinition, variant: ExperimentVariant) => void, log?: (...args: unknown[]) => void): Promise<void>;
36
+ /**
37
+ * The assignment for one experiment, or null.
38
+ *
39
+ * Null means one of three things and the caller cannot tell them apart: not
40
+ * assigned, not in the traffic allocation, or the definitions have not loaded
41
+ * yet. Branch on a specific variantId rather than on null, so a slow network
42
+ * shows the control experience rather than an undefined one.
43
+ */
44
+ export declare function getExperiment(experimentId: string): Assignment | null;
45
+ /** Every current assignment, for the debug surface. */
46
+ export declare function getAssignments(): Record<string, Assignment>;
47
+ export declare function experimentsLoaded(): boolean;
48
+ /** Drop in-memory state. Used by tests. */
49
+ export declare function clearExperiments(): void;
50
+ /**
51
+ * Forget every assignment, in memory and on disk.
52
+ *
53
+ * reset() means "forget this person". Leaving the stored variants behind would
54
+ * hand the next user of the device the previous one's bucket, and because a
55
+ * stored assignment short-circuits the traffic gate, they would be in an
56
+ * experiment they were never sampled into.
57
+ */
58
+ export declare function clearStoredExperiments(): Promise<void>;
59
+ //# sourceMappingURL=experiments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/core/experiments.ts"],"names":[],"mappings":"AAqCA,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CACzB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,GAAE,MAAM,MAAoB,GACjC,iBAAiB,GAAG,IAAI,CAW1B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,KAAK,IAAI,EAC7E,GAAG,GAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAe,GAC3C,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAErE;AAED,uDAAuD;AACvD,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAE3D;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,2CAA2C;AAC3C,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5D"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.bucketOf = bucketOf;
37
+ exports.pickVariant = pickVariant;
38
+ exports.loadExperiments = loadExperiments;
39
+ exports.getExperiment = getExperiment;
40
+ exports.getAssignments = getAssignments;
41
+ exports.experimentsLoaded = experimentsLoaded;
42
+ exports.clearExperiments = clearExperiments;
43
+ exports.clearStoredExperiments = clearStoredExperiments;
44
+ /**
45
+ * Experiment assignment.
46
+ *
47
+ * The mobile SDK could already REPORT an experiment impression through
48
+ * `trackExperiment()`, but it had no way to be assigned to one: no fetch of the
49
+ * active definitions, no bucketing, no `getExperiment()`. An experiment defined
50
+ * in the dashboard therefore ran on the website and silently did nothing in the
51
+ * app, which is the worse half — the results looked complete.
52
+ *
53
+ * The server side already exists, so this is client work against the endpoint
54
+ * the web SDK already calls.
55
+ *
56
+ * ## Ported deliberately, not improved
57
+ *
58
+ * The bucketing here mirrors `services/unified-sdk/src/engagement.js`
59
+ * (initExperiments) step for step: the same traffic gate, the same hash, the
60
+ * same weighted pick, the same "first variant" fallback. Two implementations of
61
+ * an assignment rule that disagree is how an experiment silently reports
62
+ * results for a split that never happened, so matching is worth more than any
63
+ * local improvement.
64
+ *
65
+ * ## One property worth knowing before you read a result
66
+ *
67
+ * The traffic gate is DETERMINISTIC — it hashes the user id, so the same user is
68
+ * in or out of an experiment on every channel. The variant pick is NOT: it is
69
+ * `Math.random()` weighted by variant weight, then persisted per device. So a
70
+ * user who is in the experiment can get variant A on the website and variant B
71
+ * in the app.
72
+ *
73
+ * That is inherited from the web implementation and is left alone here on
74
+ * purpose, because changing it on one channel only would make the two disagree
75
+ * in a new way. It is recorded in docs/sdk-backlog.md as a cross-channel
76
+ * question to settle once, for both.
77
+ */
78
+ const storage = __importStar(require("./storage"));
79
+ const network_1 = require("./network");
80
+ /** Matches the web SDK's key so the two are legible side by side in a dump. */
81
+ const keyFor = (experimentId) => `@cxpinsight:exp:${experimentId}`;
82
+ let assignments = {};
83
+ let loaded = false;
84
+ /**
85
+ * Stable 0–99 bucket from the user id.
86
+ *
87
+ * Deliberately the same arithmetic as the web SDK: a 32-bit `(h << 5) - h`
88
+ * accumulator, then `Math.abs(h % 100)`. JavaScript's `%` keeps the sign of the
89
+ * dividend, which is why the abs is load-bearing rather than decorative — 37 of
90
+ * every 100 hashes come out negative and would otherwise never clear any gate.
91
+ */
92
+ function bucketOf(userId) {
93
+ let hash = 0;
94
+ for (let i = 0; i < userId.length; i++) {
95
+ hash = (hash << 5) - hash + userId.charCodeAt(i);
96
+ hash |= 0;
97
+ }
98
+ return Math.abs(hash % 100);
99
+ }
100
+ /** Weighted pick, with the same fallback the web SDK uses. */
101
+ function pickVariant(variants, random = Math.random) {
102
+ if (!variants.length)
103
+ return null;
104
+ let total = 0;
105
+ for (const v of variants)
106
+ total += v.weight ?? 1;
107
+ const r = random() * total;
108
+ let cum = 0;
109
+ for (const v of variants) {
110
+ cum += v.weight ?? 1;
111
+ if (r <= cum)
112
+ return v;
113
+ }
114
+ return variants[0];
115
+ }
116
+ /**
117
+ * Assign this user to every active experiment they qualify for.
118
+ *
119
+ * `onImpression` is called for each NEW assignment only. A returning user whose
120
+ * variant was already stored is not re-reported, because an impression per app
121
+ * launch would inflate the denominator of every experiment on the platform.
122
+ */
123
+ async function loadExperiments(applicationId, userId, onImpression, log = () => { }) {
124
+ const res = await (0, network_1.sdkFetch)('GET', `/api/engagement/experiment-definitions/active?applicationId=${encodeURIComponent(applicationId)}`);
125
+ if (!res.success) {
126
+ // Fall back to what is already stored rather than dropping the user out of
127
+ // every experiment because one request failed offline. Without this a
128
+ // flight-mode launch would re-randomise on the next successful load.
129
+ log('experiments: fetch failed, using stored assignments:', res.error);
130
+ loaded = true;
131
+ return;
132
+ }
133
+ const definitions = res.data?.data ?? [];
134
+ for (const exp of definitions) {
135
+ if (!exp.experimentId || !exp.variants?.length)
136
+ continue;
137
+ const stored = await storage.get(keyFor(exp.experimentId));
138
+ if (stored) {
139
+ // Only honour it if that variant still exists — a variant removed from
140
+ // the definition must not keep being reported.
141
+ if (exp.variants.some((v) => v.variantId === stored.variantId)) {
142
+ assignments[exp.experimentId] = stored;
143
+ continue;
144
+ }
145
+ log('experiments: stored variant no longer defined, reassigning', exp.experimentId);
146
+ }
147
+ const traffic = exp.trafficPercent ?? 100;
148
+ if (traffic < 100 && bucketOf(userId) >= traffic)
149
+ continue; // not in the experiment
150
+ const variant = pickVariant(exp.variants);
151
+ if (!variant)
152
+ continue;
153
+ const assignment = {
154
+ variantId: variant.variantId,
155
+ variantName: variant.name ?? variant.variantId,
156
+ };
157
+ assignments[exp.experimentId] = assignment;
158
+ await storage.set(keyFor(exp.experimentId), assignment);
159
+ log('experiments: assigned', exp.experimentId, '->', assignment.variantId);
160
+ onImpression(exp, variant);
161
+ }
162
+ loaded = true;
163
+ }
164
+ /**
165
+ * The assignment for one experiment, or null.
166
+ *
167
+ * Null means one of three things and the caller cannot tell them apart: not
168
+ * assigned, not in the traffic allocation, or the definitions have not loaded
169
+ * yet. Branch on a specific variantId rather than on null, so a slow network
170
+ * shows the control experience rather than an undefined one.
171
+ */
172
+ function getExperiment(experimentId) {
173
+ return assignments[experimentId] ?? null;
174
+ }
175
+ /** Every current assignment, for the debug surface. */
176
+ function getAssignments() {
177
+ return { ...assignments };
178
+ }
179
+ function experimentsLoaded() {
180
+ return loaded;
181
+ }
182
+ /** Drop in-memory state. Used by tests. */
183
+ function clearExperiments() {
184
+ assignments = {};
185
+ loaded = false;
186
+ }
187
+ /**
188
+ * Forget every assignment, in memory and on disk.
189
+ *
190
+ * reset() means "forget this person". Leaving the stored variants behind would
191
+ * hand the next user of the device the previous one's bucket, and because a
192
+ * stored assignment short-circuits the traffic gate, they would be in an
193
+ * experiment they were never sampled into.
194
+ */
195
+ async function clearStoredExperiments() {
196
+ clearExperiments();
197
+ const keys = await storage.getKeysWithPrefix('@cxpinsight:exp:');
198
+ if (keys.length)
199
+ await storage.multiRemove(keys);
200
+ }
201
+ //# sourceMappingURL=experiments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/core/experiments.ts"],"names":[],"mappings":"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"}
@@ -33,12 +33,13 @@ export interface TriggerConfig {
33
33
  userSamplingPercent?: number;
34
34
  };
35
35
  }
36
+ type SurveyTrigger = (surveyId: string, options?: {
37
+ skipFrequencyCap?: boolean;
38
+ }) => Promise<boolean> | boolean | void;
36
39
  /** Fetch trigger configs from server and cache locally. */
37
40
  export declare function loadTriggerConfigs(applicationId: string, debug?: boolean): Promise<void>;
38
41
  /** Register the function used to present surveys */
39
- export declare function registerSurveyTrigger(fn: (surveyId: string, options?: {
40
- skipFrequencyCap?: boolean;
41
- }) => void): void;
42
+ export declare function registerSurveyTrigger(fn: SurveyTrigger): void;
42
43
  /** Unregister */
43
44
  export declare function unregisterSurveyTrigger(): void;
44
45
  /** Called when a screen is viewed — checks for matching screen_view triggers */
@@ -53,4 +54,5 @@ export declare function onScreenView(screenName: string): Promise<void>;
53
54
  export declare function onEventTracked(eventName: string, context?: Record<string, unknown>): Promise<void>;
54
55
  /** Clear all trigger state (called on SDK reset) */
55
56
  export declare function clearTriggerState(): Promise<void>;
57
+ export {};
56
58
  //# sourceMappingURL=triggerEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggerEngine.d.ts","sourceRoot":"","sources":["../../src/core/triggerEngine.ts"],"names":[],"mappings":"AAGA,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAGF,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAIvE,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAM3B,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,IAAI,GAAG,eAAe,GAAG,aAAa,CAAC;QAC7C,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,EAAE,aAAa,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AA4BD,2DAA2D;AAC3D,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAkEf;AAED,oDAAoD;AACpD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,GAAG,IAAI,CAEpH;AAED,iBAAiB;AACjB,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE;AAkCD;;;;;;4CAM4C;AAC5C,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BxG;AAwND,oDAAoD;AACpD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD"}
1
+ {"version":3,"file":"triggerEngine.d.ts","sourceRoot":"","sources":["../../src/core/triggerEngine.ts"],"names":[],"mappings":"AAGA,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAGF,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAIvE,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAM3B,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,IAAI,GAAG,eAAe,GAAG,aAAa,CAAC;QAC7C,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,EAAE,aAAa,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAaD,KAAK,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;AAgBvH,2DAA2D;AAC3D,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAkEf;AAED,oDAAoD;AACpD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,CAE7D;AAED,iBAAiB;AACjB,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE;AAkCD;;;;;;4CAM4C;AAC5C,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BxG;AAmOD,oDAAoD;AACpD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD"}
@@ -395,14 +395,28 @@ async function evaluateAndFire(config) {
395
395
  return;
396
396
  }
397
397
  log(`Firing trigger ${config.configId} → survey ${config.linkedSurveyId}`);
398
+ let presented = false;
398
399
  try {
399
400
  // surveyTrigger is actually async (presentSurvey) — await it
400
- await surveyTrigger(config.linkedSurveyId, { skipFrequencyCap: true });
401
+ presented = (await surveyTrigger(config.linkedSurveyId, { skipFrequencyCap: true })) !== false;
401
402
  }
402
403
  catch (err) {
403
404
  console.error('[CXPinsight:Triggers] Survey trigger error:', err);
405
+ presented = false;
406
+ }
407
+ // Record a firing only when the survey actually appeared.
408
+ //
409
+ // This used to run unconditionally, and presentSurvey catches its own
410
+ // errors so it never throws — meaning the catch above was unreachable and
411
+ // an invitation that failed to load still consumed its frequency cap. On a
412
+ // 'once' survey, a trigger that came due while the device was offline was
413
+ // spent without the respondent ever seeing it.
414
+ if (presented) {
415
+ await recordFired(config.configId);
416
+ }
417
+ else {
418
+ log(`Not recording ${config.configId} as fired — the survey was not presented`);
404
419
  }
405
- await recordFired(config.configId);
406
420
  };
407
421
  if (delay > 0) {
408
422
  setTimeout(fire, delay);
@@ -1 +1 @@
1
- {"version":3,"file":"triggerEngine.js","sourceRoot":"","sources":["../../src/core/triggerEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triggerEngine.js","sourceRoot":"","sources":["../../src/core/triggerEngine.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  export { CXPinsight } from './CXPinsight';
2
2
  export { CXPinsightProvider } from './CXPinsightProvider';
3
+ export { ConsentBanner } from './consent/ConsentBanner';
4
+ export type { ConsentBannerProps, ConsentBannerText } from './consent/ConsentBanner';
5
+ export { CONSENT_CATEGORIES } from './core/consent';
6
+ export type { ConsentCategory, ConsentMap } from './core/consent';
3
7
  export type { CXPinsightConfig, UserIdentity, CXPinsightCallbacks, FunnelStepOptions, ExperimentOptions, ConversionOptions, } from './types';
4
8
  export { useCXPElement } from './setup/useCXPElement';
5
9
  export type { ElementInfo, StoredElementIdentifier } from './setup/ElementIdentifier';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
package/lib/index.js CHANGED
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useCXPElement = exports.CXPinsightProvider = exports.CXPinsight = void 0;
3
+ exports.useCXPElement = exports.CONSENT_CATEGORIES = exports.ConsentBanner = exports.CXPinsightProvider = exports.CXPinsight = void 0;
4
4
  var CXPinsight_1 = require("./CXPinsight");
5
5
  Object.defineProperty(exports, "CXPinsight", { enumerable: true, get: function () { return CXPinsight_1.CXPinsight; } });
6
6
  var CXPinsightProvider_1 = require("./CXPinsightProvider");
7
7
  Object.defineProperty(exports, "CXPinsightProvider", { enumerable: true, get: function () { return CXPinsightProvider_1.CXPinsightProvider; } });
8
+ var ConsentBanner_1 = require("./consent/ConsentBanner");
9
+ Object.defineProperty(exports, "ConsentBanner", { enumerable: true, get: function () { return ConsentBanner_1.ConsentBanner; } });
10
+ var consent_1 = require("./core/consent");
11
+ Object.defineProperty(exports, "CONSENT_CATEGORIES", { enumerable: true, get: function () { return consent_1.CONSENT_CATEGORIES; } });
8
12
  // Setup mode exports
9
13
  var useCXPElement_1 = require("./setup/useCXPElement");
10
14
  Object.defineProperty(exports, "useCXPElement", { enumerable: true, get: function () { return useCXPElement_1.useCXPElement; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAU3B,qBAAqB;AACrB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,yDAAwD;AAA/C,8GAAA,aAAa,OAAA;AAEtB,0CAAoD;AAA3C,6GAAA,kBAAkB,OAAA;AAW3B,qBAAqB;AACrB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * How stale a cached definition may be before it is refused.
3
+ *
4
+ * Not unlimited. A definition cached months ago can be missing questions that
5
+ * were added since, and answers collected against it are recorded against a
6
+ * survey that no longer looks like that — which is harder to notice, and worse,
7
+ * than a survey that failed to appear.
8
+ */
9
+ export declare const MAX_AGE_MS: number;
10
+ export declare function cacheDefinition(surveyId: string, definition: Record<string, unknown>): Promise<void>;
11
+ /** A cached definition, or null when absent or too old. */
12
+ export declare function getCachedDefinition(surveyId: string, now?: number): Promise<Record<string, unknown> | null>;
13
+ /** Used by reset(): a cached definition outlives the identity that fetched it. */
14
+ export declare function clearCachedDefinitions(): Promise<void>;
15
+ //# sourceMappingURL=definitionCache.d.ts.map