@cxpinsight/react-native 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -0
- package/lib/CXPinsight.d.ts +33 -0
- package/lib/CXPinsight.d.ts.map +1 -1
- package/lib/CXPinsight.js +73 -0
- package/lib/CXPinsight.js.map +1 -1
- package/lib/CXPinsightProvider.d.ts.map +1 -1
- package/lib/CXPinsightProvider.js +35 -9
- package/lib/CXPinsightProvider.js.map +1 -1
- package/lib/core/attribution.d.ts +54 -0
- package/lib/core/attribution.d.ts.map +1 -0
- package/lib/core/attribution.js +112 -0
- package/lib/core/attribution.js.map +1 -0
- package/lib/core/experiments.d.ts +59 -0
- package/lib/core/experiments.d.ts.map +1 -0
- package/lib/core/experiments.js +201 -0
- package/lib/core/experiments.js.map +1 -0
- package/lib/core/triggerEngine.d.ts +5 -3
- package/lib/core/triggerEngine.d.ts.map +1 -1
- package/lib/core/triggerEngine.js +16 -2
- package/lib/core/triggerEngine.js.map +1 -1
- package/lib/survey/definitionCache.d.ts +15 -0
- package/lib/survey/definitionCache.d.ts.map +1 -0
- package/lib/survey/definitionCache.js +80 -0
- package/lib/survey/definitionCache.js.map +1 -0
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -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"}
|
|
@@ -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:
|
|
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;
|
|
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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"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitionCache.d.ts","sourceRoot":"","sources":["../../src/survey/definitionCache.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAA0B,CAAC;AAOlD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,2DAA2D;AAC3D,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAKzC;AAED,kFAAkF;AAClF,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
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.MAX_AGE_MS = void 0;
|
|
37
|
+
exports.cacheDefinition = cacheDefinition;
|
|
38
|
+
exports.getCachedDefinition = getCachedDefinition;
|
|
39
|
+
exports.clearCachedDefinitions = clearCachedDefinitions;
|
|
40
|
+
/**
|
|
41
|
+
* Cached survey definitions, so a trigger that fires offline can still show.
|
|
42
|
+
*
|
|
43
|
+
* A native app is offline routinely — a lift, a plane, a bad cell — and the
|
|
44
|
+
* survey definition arrives over the network at the moment the trigger fires.
|
|
45
|
+
* Without a cache, an invitation that comes due offline simply does not appear.
|
|
46
|
+
*
|
|
47
|
+
* Used ONLY when the fetch fails. A successful fetch always wins, so a survey
|
|
48
|
+
* edited in the dashboard reaches respondents on their next online launch
|
|
49
|
+
* rather than being pinned to whatever was cached.
|
|
50
|
+
*/
|
|
51
|
+
const storage = __importStar(require("../core/storage"));
|
|
52
|
+
const PREFIX = '@cxpinsight:surveydef:';
|
|
53
|
+
/**
|
|
54
|
+
* How stale a cached definition may be before it is refused.
|
|
55
|
+
*
|
|
56
|
+
* Not unlimited. A definition cached months ago can be missing questions that
|
|
57
|
+
* were added since, and answers collected against it are recorded against a
|
|
58
|
+
* survey that no longer looks like that — which is harder to notice, and worse,
|
|
59
|
+
* than a survey that failed to appear.
|
|
60
|
+
*/
|
|
61
|
+
exports.MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
|
|
62
|
+
async function cacheDefinition(surveyId, definition) {
|
|
63
|
+
await storage.set(PREFIX + surveyId, { cachedAt: Date.now(), definition });
|
|
64
|
+
}
|
|
65
|
+
/** A cached definition, or null when absent or too old. */
|
|
66
|
+
async function getCachedDefinition(surveyId, now = Date.now()) {
|
|
67
|
+
const entry = await storage.get(PREFIX + surveyId);
|
|
68
|
+
if (!entry?.definition)
|
|
69
|
+
return null;
|
|
70
|
+
if (now - entry.cachedAt > exports.MAX_AGE_MS)
|
|
71
|
+
return null;
|
|
72
|
+
return entry.definition;
|
|
73
|
+
}
|
|
74
|
+
/** Used by reset(): a cached definition outlives the identity that fetched it. */
|
|
75
|
+
async function clearCachedDefinitions() {
|
|
76
|
+
const keys = await storage.getKeysWithPrefix(PREFIX);
|
|
77
|
+
if (keys.length)
|
|
78
|
+
await storage.multiRemove(keys);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=definitionCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitionCache.js","sourceRoot":"","sources":["../../src/survey/definitionCache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,MAAY,OAAO,4CAAwB;AAE3C,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAExC;;;;;;;GAOG;AACU,QAAA,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAO3C,KAAK,0BACV,QAAgB,EAChB,UAAmC;IAEnC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAW,CAAC,CAAC;AACtF,CAAC;AAED,2DAA2D;AACpD,KAAK,8BACV,QAAgB,EAChB,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;IAExB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAQ,MAAM,GAAG,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAA,UAAU;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAED,kFAAkF;AAC3E,KAAK;IACV,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -106,7 +106,7 @@ export interface FunnelStepOptions {
|
|
|
106
106
|
export interface ExperimentOptions {
|
|
107
107
|
experimentName?: string;
|
|
108
108
|
variantName?: string;
|
|
109
|
-
assignmentMethod?: 'random' | 'targeted' | 'manual';
|
|
109
|
+
assignmentMethod?: 'auto' | 'random' | 'targeted' | 'manual';
|
|
110
110
|
[key: string]: unknown;
|
|
111
111
|
}
|
|
112
112
|
/** Conversion tracking options */
|