flowgrid-sdk 1.6.10 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +9 -1
- package/dist/browser.js +91 -2
- package/dist/browser.js.map +1 -1
- package/dist/flowgrid.min.js +1 -1
- package/dist/flowgrid.min.js.map +1 -1
- package/dist/lib/features/core/declarativeExperiments.d.ts +57 -0
- package/dist/lib/features/core/declarativeExperiments.js +198 -0
- package/dist/lib/features/core/declarativeExperiments.js.map +1 -0
- package/dist/lib/features/core/experiment.d.ts +71 -0
- package/dist/lib/features/core/experiment.js +164 -2
- package/dist/lib/features/core/experiment.js.map +1 -1
- package/dist/lib/flowgrid.d.ts +7 -2
- package/dist/lib/flowgrid.js +3 -3
- package/dist/lib/flowgrid.js.map +1 -1
- package/dist/lib/tracking/core/experiment.d.ts +12 -0
- package/dist/lib/tracking/core/experiment.js +14 -0
- package/dist/lib/tracking/core/experiment.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Declarative, attribute-driven experiment tracking (no-code).
|
|
3
|
+
* @module features/core/declarativeExperiments
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Lets a non-technical user (WordPress / Wix / Squarespace marketer) wire
|
|
7
|
+
* experiment conversions, page-level goals, and exposures using ONLY HTML
|
|
8
|
+
* attributes — no JavaScript. It does not contain any experiment logic itself:
|
|
9
|
+
* it reads the visitor's already-assigned variant from the real engine
|
|
10
|
+
* (`Experiment` in `experiment.ts`) and calls its public tracking methods, so
|
|
11
|
+
* the deterministic assignment, anti-flicker, holdout and exposure semantics
|
|
12
|
+
* ("dynamic integrity") are untouched. This is purely the wiring layer.
|
|
13
|
+
*
|
|
14
|
+
* @attributes
|
|
15
|
+
* data-fg-goal="<experimentId>" Mark an element as a conversion trigger for
|
|
16
|
+
* that experiment. Use "*" for every experiment
|
|
17
|
+
* the visitor is currently bucketed into.
|
|
18
|
+
* data-fg-metric="signup" Metric name recorded (default "conversion").
|
|
19
|
+
* data-fg-value="49" Numeric value, e.g. order total (default 1).
|
|
20
|
+
* data-fg-on="click" Trigger: click (default) | load | submit | view.
|
|
21
|
+
* click — on element click
|
|
22
|
+
* load — once on page load (e.g. thank-you page)
|
|
23
|
+
* submit — on the element's (or nearest) form submit
|
|
24
|
+
* view — once when scrolled into view
|
|
25
|
+
* data-fg-event="<name>" Fire a generic `track(name)` event on the same
|
|
26
|
+
* trigger (page-level/interaction tracking). Can be
|
|
27
|
+
* combined with or used instead of data-fg-goal.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```html
|
|
31
|
+
* <!-- count a click on the signup button as a conversion for the hero test -->
|
|
32
|
+
* <button data-fg-goal="homepage-hero-headline" data-fg-metric="signup">Start free</button>
|
|
33
|
+
*
|
|
34
|
+
* <!-- a thank-you page: count the visit as a conversion for every active test -->
|
|
35
|
+
* <body data-fg-goal="*" data-fg-on="load" data-fg-metric="purchase">
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* Robust to dynamically-injected DOM: a MutationObserver re-scans on changes, so
|
|
39
|
+
* page builders and SPA route changes keep working with zero extra calls.
|
|
40
|
+
*/
|
|
41
|
+
/** Minimal surface of the FlowGrid instance this layer depends on. */
|
|
42
|
+
export interface DeclarativeExperimentHost {
|
|
43
|
+
experiments: {
|
|
44
|
+
localConversion(experimentId: string, metricName?: string, value?: number): Promise<void> | void;
|
|
45
|
+
getAssignments(): Record<string, string>;
|
|
46
|
+
};
|
|
47
|
+
track(eventName: string, properties?: Record<string, unknown>): unknown;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Wire every `[data-fg-goal]` / `[data-fg-event]` element under `root` that
|
|
51
|
+
* isn't already wired, according to its trigger. Idempotent per element.
|
|
52
|
+
*/
|
|
53
|
+
export declare function wireDeclarativeExperiments(host: DeclarativeExperimentHost): {
|
|
54
|
+
rescan: () => void;
|
|
55
|
+
flushLoad: () => void;
|
|
56
|
+
disconnect: () => void;
|
|
57
|
+
};
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Declarative, attribute-driven experiment tracking (no-code).
|
|
4
|
+
* @module features/core/declarativeExperiments
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Lets a non-technical user (WordPress / Wix / Squarespace marketer) wire
|
|
8
|
+
* experiment conversions, page-level goals, and exposures using ONLY HTML
|
|
9
|
+
* attributes — no JavaScript. It does not contain any experiment logic itself:
|
|
10
|
+
* it reads the visitor's already-assigned variant from the real engine
|
|
11
|
+
* (`Experiment` in `experiment.ts`) and calls its public tracking methods, so
|
|
12
|
+
* the deterministic assignment, anti-flicker, holdout and exposure semantics
|
|
13
|
+
* ("dynamic integrity") are untouched. This is purely the wiring layer.
|
|
14
|
+
*
|
|
15
|
+
* @attributes
|
|
16
|
+
* data-fg-goal="<experimentId>" Mark an element as a conversion trigger for
|
|
17
|
+
* that experiment. Use "*" for every experiment
|
|
18
|
+
* the visitor is currently bucketed into.
|
|
19
|
+
* data-fg-metric="signup" Metric name recorded (default "conversion").
|
|
20
|
+
* data-fg-value="49" Numeric value, e.g. order total (default 1).
|
|
21
|
+
* data-fg-on="click" Trigger: click (default) | load | submit | view.
|
|
22
|
+
* click — on element click
|
|
23
|
+
* load — once on page load (e.g. thank-you page)
|
|
24
|
+
* submit — on the element's (or nearest) form submit
|
|
25
|
+
* view — once when scrolled into view
|
|
26
|
+
* data-fg-event="<name>" Fire a generic `track(name)` event on the same
|
|
27
|
+
* trigger (page-level/interaction tracking). Can be
|
|
28
|
+
* combined with or used instead of data-fg-goal.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```html
|
|
32
|
+
* <!-- count a click on the signup button as a conversion for the hero test -->
|
|
33
|
+
* <button data-fg-goal="homepage-hero-headline" data-fg-metric="signup">Start free</button>
|
|
34
|
+
*
|
|
35
|
+
* <!-- a thank-you page: count the visit as a conversion for every active test -->
|
|
36
|
+
* <body data-fg-goal="*" data-fg-on="load" data-fg-metric="purchase">
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* Robust to dynamically-injected DOM: a MutationObserver re-scans on changes, so
|
|
40
|
+
* page builders and SPA route changes keep working with zero extra calls.
|
|
41
|
+
*/
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.wireDeclarativeExperiments = wireDeclarativeExperiments;
|
|
44
|
+
const WIRED_ATTR = "data-fg-wired";
|
|
45
|
+
const GOAL_ATTR = "data-fg-goal";
|
|
46
|
+
const EVENT_ATTR = "data-fg-event";
|
|
47
|
+
function parseTrigger(raw) {
|
|
48
|
+
switch ((raw || "").toLowerCase()) {
|
|
49
|
+
case "load": return "load";
|
|
50
|
+
case "submit": return "submit";
|
|
51
|
+
case "view": return "view";
|
|
52
|
+
default: return "click";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Resolve the experiment ids a `data-fg-goal` value targets. "*" = all active. */
|
|
56
|
+
function resolveExperimentIds(host, goal) {
|
|
57
|
+
const trimmed = goal.trim();
|
|
58
|
+
if (trimmed === "*") {
|
|
59
|
+
try {
|
|
60
|
+
return Object.keys(host.experiments.getAssignments());
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Allow a comma-separated list of ids for multi-experiment conversions.
|
|
67
|
+
return trimmed.split(",").map((s) => s.trim()).filter(Boolean);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Run the element's goal + event side effects once. `trackLocalConversion` is a
|
|
71
|
+
* safe no-op when the visitor isn't bucketed into a given experiment (control,
|
|
72
|
+
* holdout, or no running test), so firing for every resolved id is harmless.
|
|
73
|
+
*/
|
|
74
|
+
function fire(host, el) {
|
|
75
|
+
const goal = el.getAttribute(GOAL_ATTR);
|
|
76
|
+
if (goal) {
|
|
77
|
+
const metric = el.getAttribute("data-fg-metric") || "conversion";
|
|
78
|
+
const rawValue = el.getAttribute("data-fg-value");
|
|
79
|
+
const value = rawValue != null && rawValue.trim() !== "" && Number.isFinite(Number(rawValue))
|
|
80
|
+
? Number(rawValue)
|
|
81
|
+
: 1;
|
|
82
|
+
for (const id of resolveExperimentIds(host, goal)) {
|
|
83
|
+
try {
|
|
84
|
+
void host.experiments.localConversion(id, metric, value);
|
|
85
|
+
}
|
|
86
|
+
catch { /* ignore */ }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const eventName = el.getAttribute(EVENT_ATTR);
|
|
90
|
+
if (eventName) {
|
|
91
|
+
try {
|
|
92
|
+
host.track(eventName, { source: "declarative", trigger: el.getAttribute("data-fg-on") || "click" });
|
|
93
|
+
}
|
|
94
|
+
catch { /* ignore */ }
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Wire every `[data-fg-goal]` / `[data-fg-event]` element under `root` that
|
|
99
|
+
* isn't already wired, according to its trigger. Idempotent per element.
|
|
100
|
+
*/
|
|
101
|
+
function wireDeclarativeExperiments(host) {
|
|
102
|
+
if (typeof document === "undefined") {
|
|
103
|
+
return { rescan: () => { }, flushLoad: () => { }, disconnect: () => { } };
|
|
104
|
+
}
|
|
105
|
+
// Whether the engine has had a chance to resolve assignments. `load`/`view`
|
|
106
|
+
// goals discovered before this is true are deferred so a conversion is never
|
|
107
|
+
// recorded before the visitor is bucketed.
|
|
108
|
+
let assignmentsReady = false;
|
|
109
|
+
const pendingImmediate = [];
|
|
110
|
+
let viewObserver = null;
|
|
111
|
+
const fireOrDefer = (el) => {
|
|
112
|
+
if (assignmentsReady)
|
|
113
|
+
fire(host, el);
|
|
114
|
+
else
|
|
115
|
+
pendingImmediate.push(el);
|
|
116
|
+
};
|
|
117
|
+
const wireElement = (el) => {
|
|
118
|
+
if (el.hasAttribute(WIRED_ATTR))
|
|
119
|
+
return;
|
|
120
|
+
el.setAttribute(WIRED_ATTR, "");
|
|
121
|
+
const trigger = parseTrigger(el.getAttribute("data-fg-on"));
|
|
122
|
+
switch (trigger) {
|
|
123
|
+
case "click":
|
|
124
|
+
el.addEventListener("click", () => fire(host, el));
|
|
125
|
+
break;
|
|
126
|
+
case "submit": {
|
|
127
|
+
const form = el.tagName === "FORM" ? el : el.closest("form");
|
|
128
|
+
(form || el).addEventListener("submit", () => fire(host, el));
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case "view":
|
|
132
|
+
if (typeof IntersectionObserver !== "undefined") {
|
|
133
|
+
if (!viewObserver) {
|
|
134
|
+
viewObserver = new IntersectionObserver((entries, obs) => {
|
|
135
|
+
for (const entry of entries) {
|
|
136
|
+
if (entry.isIntersecting) {
|
|
137
|
+
obs.unobserve(entry.target);
|
|
138
|
+
fireOrDefer(entry.target);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}, { threshold: 0.5 });
|
|
142
|
+
}
|
|
143
|
+
viewObserver.observe(el);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
fireOrDefer(el); // no IO support — count it as seen
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case "load":
|
|
150
|
+
fireOrDefer(el);
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const scan = (root = document) => {
|
|
155
|
+
const sel = `[${GOAL_ATTR}]:not([${WIRED_ATTR}]),[${EVENT_ATTR}]:not([${WIRED_ATTR}])`;
|
|
156
|
+
root.querySelectorAll(sel).forEach(wireElement);
|
|
157
|
+
};
|
|
158
|
+
scan();
|
|
159
|
+
// Re-scan when the DOM changes (page builders, SPA navigation, lazy content).
|
|
160
|
+
const observer = typeof MutationObserver !== "undefined"
|
|
161
|
+
? new MutationObserver((mutations) => {
|
|
162
|
+
for (const m of mutations) {
|
|
163
|
+
m.addedNodes.forEach((node) => {
|
|
164
|
+
if (node.nodeType === 1)
|
|
165
|
+
scan(node);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
})
|
|
169
|
+
: null;
|
|
170
|
+
observer?.observe(document.documentElement, { childList: true, subtree: true });
|
|
171
|
+
return {
|
|
172
|
+
rescan: () => scan(),
|
|
173
|
+
/**
|
|
174
|
+
* Mark assignments as resolved and fire any `load`/`view` goals that were
|
|
175
|
+
* discovered before the engine had bucketed the visitor. Call once
|
|
176
|
+
* `initFromServer()` settles. Idempotent.
|
|
177
|
+
*/
|
|
178
|
+
flushLoad: () => {
|
|
179
|
+
if (assignmentsReady)
|
|
180
|
+
return;
|
|
181
|
+
assignmentsReady = true;
|
|
182
|
+
const queued = pendingImmediate.splice(0, pendingImmediate.length);
|
|
183
|
+
for (const el of queued)
|
|
184
|
+
fire(host, el);
|
|
185
|
+
},
|
|
186
|
+
disconnect: () => {
|
|
187
|
+
try {
|
|
188
|
+
observer?.disconnect();
|
|
189
|
+
}
|
|
190
|
+
catch { /* ignore */ }
|
|
191
|
+
try {
|
|
192
|
+
viewObserver?.disconnect();
|
|
193
|
+
}
|
|
194
|
+
catch { /* ignore */ }
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=declarativeExperiments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarativeExperiments.js","sourceRoot":"","sources":["../../../../src/lib/features/core/declarativeExperiments.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,6 +239,36 @@ export interface VariantResponse {
|
|
|
239
239
|
variantId: string;
|
|
240
240
|
assignedAt: string;
|
|
241
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* A single declarative DOM change applied for an assigned variant — the no-code
|
|
244
|
+
* rendering primitive. The engine applies these on `init()` so a marketer can
|
|
245
|
+
* run a test (different headline, hidden banner, redirect to another page)
|
|
246
|
+
* without an engineer hand-writing `if (variant === "B")` branching.
|
|
247
|
+
*/
|
|
248
|
+
export type VariantChange = {
|
|
249
|
+
type: 'redirect';
|
|
250
|
+
url: string;
|
|
251
|
+
} | {
|
|
252
|
+
type: 'text';
|
|
253
|
+
selector: string;
|
|
254
|
+
value: string;
|
|
255
|
+
} | {
|
|
256
|
+
type: 'html';
|
|
257
|
+
selector: string;
|
|
258
|
+
value: string;
|
|
259
|
+
} | {
|
|
260
|
+
type: 'hide';
|
|
261
|
+
selector: string;
|
|
262
|
+
} | {
|
|
263
|
+
type: 'style';
|
|
264
|
+
selector: string;
|
|
265
|
+
property: string;
|
|
266
|
+
value: string;
|
|
267
|
+
} | {
|
|
268
|
+
type: 'addClass';
|
|
269
|
+
selector: string;
|
|
270
|
+
value: string;
|
|
271
|
+
};
|
|
242
272
|
/**
|
|
243
273
|
* Local experiment variant definition used by the client-side
|
|
244
274
|
* assignment engine (ported from sdk.js).
|
|
@@ -248,6 +278,15 @@ export interface ExperimentVariant {
|
|
|
248
278
|
id: string;
|
|
249
279
|
/** Traffic allocation weight */
|
|
250
280
|
weight: number;
|
|
281
|
+
/** Optional human-readable label (shown in the dashboard). */
|
|
282
|
+
label?: string;
|
|
283
|
+
/**
|
|
284
|
+
* Split-URL / redirect test shortcut — visitors assigned this variant are
|
|
285
|
+
* sent to `redirectUrl`. Equivalent to a single `{ type: 'redirect' }` change.
|
|
286
|
+
*/
|
|
287
|
+
redirectUrl?: string;
|
|
288
|
+
/** Declarative DOM changes applied when this variant is assigned. */
|
|
289
|
+
changes?: VariantChange[];
|
|
251
290
|
}
|
|
252
291
|
/**
|
|
253
292
|
* Lightweight experiment config passed to `initExperiments()`.
|
|
@@ -432,6 +471,38 @@ export declare class Experiment extends FlowGridTransport {
|
|
|
432
471
|
* @param experiments - Array of experiment configs to register
|
|
433
472
|
*/
|
|
434
473
|
initExperiments(experiments: ExperimentInitConfig[]): Promise<void>;
|
|
474
|
+
private antiFlickerStyleEl;
|
|
475
|
+
private antiFlickerTimer;
|
|
476
|
+
/** Experiments whose assigned variant has already had its changes applied + exposure fired. */
|
|
477
|
+
private appliedExperiments;
|
|
478
|
+
/** Normalises a variant's `redirectUrl` shortcut + `changes` into one list. */
|
|
479
|
+
private variantChanges;
|
|
480
|
+
/** All non-redirect selectors across the passed configs — used for anti-flicker. */
|
|
481
|
+
private collectChangeSelectors;
|
|
482
|
+
private injectAntiFlicker;
|
|
483
|
+
private removeAntiFlicker;
|
|
484
|
+
private applyDomChange;
|
|
485
|
+
/**
|
|
486
|
+
* Apply the assigned variant's declarative changes for every registered
|
|
487
|
+
* experiment, then fire one exposure per experiment. Redirects take priority
|
|
488
|
+
* and short-circuit (the new page re-runs init). DOM changes wait for the
|
|
489
|
+
* document to be ready. Idempotent per experiment.
|
|
490
|
+
*/
|
|
491
|
+
private applyAssignedChanges;
|
|
492
|
+
/**
|
|
493
|
+
* Manually (re-)apply the assigned variant's changes for one experiment —
|
|
494
|
+
* useful after client-side navigation re-renders the DOM.
|
|
495
|
+
*/
|
|
496
|
+
applyVariant(experimentId: string): void;
|
|
497
|
+
/**
|
|
498
|
+
* Zero-config init: fetch this site's running experiments from the server and
|
|
499
|
+
* run them. This is what lets the no-build snippet run experiments with no
|
|
500
|
+
* author JS — the dashboard is the only place experiments are configured.
|
|
501
|
+
*
|
|
502
|
+
* Best-effort: a network/permission failure is a silent no-op (the page just
|
|
503
|
+
* shows its control experience), never a thrown error.
|
|
504
|
+
*/
|
|
505
|
+
initFromServer(): Promise<void>;
|
|
435
506
|
/**
|
|
436
507
|
* Returns the locally assigned variant for an experiment.
|
|
437
508
|
*
|
|
@@ -184,6 +184,13 @@ class Experiment extends transport_1.FlowGridTransport {
|
|
|
184
184
|
this.experiments = {};
|
|
185
185
|
/** Local variant assignments: { [experiment_id]: variant_id } */
|
|
186
186
|
this.assignments = {};
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
// CLIENT-SIDE ENGINE — declarative variant rendering (no-code)
|
|
189
|
+
// ---------------------------------------------------------------------------
|
|
190
|
+
this.antiFlickerStyleEl = null;
|
|
191
|
+
this.antiFlickerTimer = null;
|
|
192
|
+
/** Experiments whose assigned variant has already had its changes applied + exposure fired. */
|
|
193
|
+
this.appliedExperiments = new Set();
|
|
187
194
|
}
|
|
188
195
|
// ---------------------------------------------------------------------------
|
|
189
196
|
// CLIENT-SIDE ENGINE — SSR-safe persistence (localStorage + cookie mirror)
|
|
@@ -534,8 +541,163 @@ class Experiment extends transport_1.FlowGridTransport {
|
|
|
534
541
|
*/
|
|
535
542
|
async initExperiments(experiments) {
|
|
536
543
|
this.assignments = this.loadAssignments();
|
|
537
|
-
|
|
538
|
-
|
|
544
|
+
// Anti-flicker: hide every element a variant might change *before* the
|
|
545
|
+
// (async) verify round-trip, so visitors never see the original flash to
|
|
546
|
+
// the variant. A safety timeout reveals everything even if init stalls.
|
|
547
|
+
const selectors = this.collectChangeSelectors(experiments);
|
|
548
|
+
if (selectors.length > 0)
|
|
549
|
+
this.injectAntiFlicker(selectors);
|
|
550
|
+
try {
|
|
551
|
+
if (experiments.length > 0) {
|
|
552
|
+
await this.verifyExperiments(experiments);
|
|
553
|
+
}
|
|
554
|
+
this.applyAssignedChanges();
|
|
555
|
+
}
|
|
556
|
+
finally {
|
|
557
|
+
this.removeAntiFlicker();
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
/** Normalises a variant's `redirectUrl` shortcut + `changes` into one list. */
|
|
561
|
+
variantChanges(variant) {
|
|
562
|
+
if (!variant)
|
|
563
|
+
return [];
|
|
564
|
+
const out = [];
|
|
565
|
+
if (variant.redirectUrl)
|
|
566
|
+
out.push({ type: 'redirect', url: variant.redirectUrl });
|
|
567
|
+
if (Array.isArray(variant.changes))
|
|
568
|
+
out.push(...variant.changes);
|
|
569
|
+
return out;
|
|
570
|
+
}
|
|
571
|
+
/** All non-redirect selectors across the passed configs — used for anti-flicker. */
|
|
572
|
+
collectChangeSelectors(experiments) {
|
|
573
|
+
const set = new Set();
|
|
574
|
+
for (const exp of experiments) {
|
|
575
|
+
for (const v of exp.variants) {
|
|
576
|
+
for (const c of this.variantChanges(v)) {
|
|
577
|
+
if (c.type !== 'redirect')
|
|
578
|
+
set.add(c.selector);
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
return Array.from(set);
|
|
583
|
+
}
|
|
584
|
+
injectAntiFlicker(selectors) {
|
|
585
|
+
if (typeof document === 'undefined' || this.antiFlickerStyleEl)
|
|
586
|
+
return;
|
|
587
|
+
try {
|
|
588
|
+
const style = document.createElement('style');
|
|
589
|
+
style.setAttribute('data-flowgrid-antiflicker', '');
|
|
590
|
+
style.textContent = `${selectors.join(',')}{visibility:hidden !important}`;
|
|
591
|
+
(document.head || document.documentElement).appendChild(style);
|
|
592
|
+
this.antiFlickerStyleEl = style;
|
|
593
|
+
// Never leave the page hidden — reveal after 4s no matter what.
|
|
594
|
+
this.antiFlickerTimer = setTimeout(() => this.removeAntiFlicker(), 4000);
|
|
595
|
+
}
|
|
596
|
+
catch { /* ignore */ }
|
|
597
|
+
}
|
|
598
|
+
removeAntiFlicker() {
|
|
599
|
+
if (this.antiFlickerTimer) {
|
|
600
|
+
clearTimeout(this.antiFlickerTimer);
|
|
601
|
+
this.antiFlickerTimer = null;
|
|
602
|
+
}
|
|
603
|
+
try {
|
|
604
|
+
this.antiFlickerStyleEl?.remove();
|
|
605
|
+
}
|
|
606
|
+
catch { /* ignore */ }
|
|
607
|
+
this.antiFlickerStyleEl = null;
|
|
608
|
+
}
|
|
609
|
+
applyDomChange(change) {
|
|
610
|
+
if (typeof document === 'undefined')
|
|
611
|
+
return;
|
|
612
|
+
const nodes = document.querySelectorAll(change.selector);
|
|
613
|
+
nodes.forEach((el) => {
|
|
614
|
+
switch (change.type) {
|
|
615
|
+
case 'text':
|
|
616
|
+
el.textContent = change.value;
|
|
617
|
+
break;
|
|
618
|
+
case 'html':
|
|
619
|
+
el.innerHTML = change.value;
|
|
620
|
+
break;
|
|
621
|
+
case 'hide':
|
|
622
|
+
el.style.display = 'none';
|
|
623
|
+
break;
|
|
624
|
+
case 'style':
|
|
625
|
+
el.style.setProperty(change.property, change.value);
|
|
626
|
+
break;
|
|
627
|
+
case 'addClass':
|
|
628
|
+
el.classList.add(...change.value.split(/\s+/).filter(Boolean));
|
|
629
|
+
break;
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Apply the assigned variant's declarative changes for every registered
|
|
635
|
+
* experiment, then fire one exposure per experiment. Redirects take priority
|
|
636
|
+
* and short-circuit (the new page re-runs init). DOM changes wait for the
|
|
637
|
+
* document to be ready. Idempotent per experiment.
|
|
638
|
+
*/
|
|
639
|
+
applyAssignedChanges() {
|
|
640
|
+
if (typeof window === 'undefined')
|
|
641
|
+
return;
|
|
642
|
+
for (const [experimentId, config] of Object.entries(this.experiments)) {
|
|
643
|
+
if (this.appliedExperiments.has(experimentId))
|
|
644
|
+
continue;
|
|
645
|
+
const variantId = this.assignments[experimentId];
|
|
646
|
+
if (!variantId)
|
|
647
|
+
continue;
|
|
648
|
+
const variant = config.variants.find((v) => v.id === variantId);
|
|
649
|
+
const changes = this.variantChanges(variant);
|
|
650
|
+
// Redirect first — if we're not already on the target, go there. The
|
|
651
|
+
// destination page's own init() handles exposure for the redirected view.
|
|
652
|
+
const redirect = changes.find((c) => c.type === 'redirect');
|
|
653
|
+
if (redirect) {
|
|
654
|
+
const target = new URL(redirect.url, window.location.href);
|
|
655
|
+
if (target.href !== window.location.href) {
|
|
656
|
+
this.appliedExperiments.add(experimentId);
|
|
657
|
+
this.trackLocalExposure(experimentId).catch(() => { });
|
|
658
|
+
window.location.replace(target.href);
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
const domChanges = changes.filter((c) => c.type !== 'redirect');
|
|
663
|
+
const run = () => domChanges.forEach((c) => this.applyDomChange(c));
|
|
664
|
+
if (typeof document !== 'undefined' && document.readyState === 'loading') {
|
|
665
|
+
document.addEventListener('DOMContentLoaded', run, { once: true });
|
|
666
|
+
}
|
|
667
|
+
else {
|
|
668
|
+
run();
|
|
669
|
+
}
|
|
670
|
+
this.appliedExperiments.add(experimentId);
|
|
671
|
+
// Auto-fire exposure so no-code users get results without extra calls.
|
|
672
|
+
this.trackLocalExposure(experimentId).catch(() => { });
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Manually (re-)apply the assigned variant's changes for one experiment —
|
|
677
|
+
* useful after client-side navigation re-renders the DOM.
|
|
678
|
+
*/
|
|
679
|
+
applyVariant(experimentId) {
|
|
680
|
+
this.appliedExperiments.delete(experimentId);
|
|
681
|
+
this.applyAssignedChanges();
|
|
682
|
+
}
|
|
683
|
+
/**
|
|
684
|
+
* Zero-config init: fetch this site's running experiments from the server and
|
|
685
|
+
* run them. This is what lets the no-build snippet run experiments with no
|
|
686
|
+
* author JS — the dashboard is the only place experiments are configured.
|
|
687
|
+
*
|
|
688
|
+
* Best-effort: a network/permission failure is a silent no-op (the page just
|
|
689
|
+
* shows its control experience), never a thrown error.
|
|
690
|
+
*/
|
|
691
|
+
async initFromServer() {
|
|
692
|
+
try {
|
|
693
|
+
const res = await fetch(`${this.endpoint}/api/v1/experiments/active?web_id=${encodeURIComponent(this.webId)}`);
|
|
694
|
+
const json = await res.json();
|
|
695
|
+
if (json?.ok && Array.isArray(json.data) && json.data.length > 0) {
|
|
696
|
+
await this.initExperiments(json.data);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
catch {
|
|
700
|
+
/* offline, blocked, or no experiments — leave the control experience */
|
|
539
701
|
}
|
|
540
702
|
}
|
|
541
703
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../../../src/lib/features/core/experiment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../../../src/lib/features/core/experiment.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/flowgrid.d.ts
CHANGED
|
@@ -783,8 +783,13 @@ export interface AutoTrackOptions {
|
|
|
783
783
|
export interface FlowGridInitConfig {
|
|
784
784
|
/** Public web/site identifier (e.g. `"wx_abc123"`). Required. */
|
|
785
785
|
webId: string;
|
|
786
|
-
/**
|
|
787
|
-
|
|
786
|
+
/**
|
|
787
|
+
* Public API key. Optional — when omitted, the SDK runs in `data-site`-only
|
|
788
|
+
* mode (web_id body-auth), matching the core `flowgrid.js` snippet. This is
|
|
789
|
+
* what lets a no-build / script-tag install run experiments. Provide a key
|
|
790
|
+
* for full server-authenticated ingestion.
|
|
791
|
+
*/
|
|
792
|
+
apiKey?: string;
|
|
788
793
|
/**
|
|
789
794
|
* API base URL. Defaults to `"https://core.flow-grid.xyz"` — most users never
|
|
790
795
|
* need to set this.
|
package/dist/lib/flowgrid.js
CHANGED
|
@@ -193,13 +193,13 @@ class FlowGrid {
|
|
|
193
193
|
}
|
|
194
194
|
return FlowGrid._instance;
|
|
195
195
|
}
|
|
196
|
-
if (!config?.webId
|
|
197
|
-
throw new Error("FlowGrid.init: `webId`
|
|
196
|
+
if (!config?.webId) {
|
|
197
|
+
throw new Error("FlowGrid.init: `webId` is required.");
|
|
198
198
|
}
|
|
199
199
|
if (config.consent) {
|
|
200
200
|
FlowGrid.setConsent(config.consent);
|
|
201
201
|
}
|
|
202
|
-
const fg = new FlowGrid(config.webId, config.endpoint ?? DEFAULT_ENDPOINT, config.apiKey, config.visitorId, config.identityManager, config.transport);
|
|
202
|
+
const fg = new FlowGrid(config.webId, config.endpoint ?? DEFAULT_ENDPOINT, config.apiKey ?? "", config.visitorId, config.identityManager, config.transport);
|
|
203
203
|
FlowGrid._instance = fg;
|
|
204
204
|
// Pre-fetch the enterprise chunk immediately so getters are ready by the
|
|
205
205
|
// time user code first accesses them (typically well after init returns).
|