flowgrid-sdk 1.6.6 → 1.6.7

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.
@@ -40,6 +40,14 @@
40
40
  import { FlowGridTransport } from "../../client/transport";
41
41
  import { TimeSeriesData } from "../../types";
42
42
  import { ServerCookieReader } from "../../utils/identity";
43
+ /**
44
+ * Global holdout (guide §3) — a fixed, deterministic slice of all visitors
45
+ * who are excluded from every experiment on the site. Lets teams measure
46
+ * the combined lift of "all active experiments" against a clean baseline,
47
+ * with zero server round-trips: each visitor's holdout membership is a pure
48
+ * function of their id, so it's stable across page loads and experiments.
49
+ */
50
+ export declare const HOLDOUT_PCT = 5;
43
51
  /**
44
52
  * Configuration for tracking an experiment-related event.
45
53
  *
@@ -80,16 +88,6 @@ export interface ExperimentDefinition {
80
88
  /** Optional human-readable variant name */
81
89
  name?: string;
82
90
  }>;
83
- /**
84
- * Optional audience configuration.
85
- * Allows limiting exposure by percentage and/or filter conditions.
86
- */
87
- audience?: {
88
- /** Percentage of total traffic eligible (0–100) */
89
- percentage: number;
90
- /** Attribute-based targeting filters */
91
- filters?: Record<string, unknown>;
92
- };
93
91
  /** Primary metric used to evaluate experiment success */
94
92
  primaryMetric: string;
95
93
  /** Optional secondary metrics */
@@ -410,6 +408,19 @@ export declare class Experiment extends FlowGridTransport {
410
408
  */
411
409
  private deterministicAssign;
412
410
  private assignVariant;
411
+ /**
412
+ * Groups experiment ids by their `properties.exclusion_group`, so
413
+ * `assignVariant` can deterministically pick exactly one experiment per
414
+ * group for each visitor (guide §3 mutual exclusion).
415
+ */
416
+ private computeExclusionGroupMembers;
417
+ /**
418
+ * Assigns variants straight from the locally supplied configs — the
419
+ * degraded path when the verify endpoint is unreachable OR returns an
420
+ * error (429 rate limit, 5xx). An unverified local assignment that emits
421
+ * events beats silently disabling the experiment for this visitor.
422
+ */
423
+ private assignFromLocalConfigs;
413
424
  private verifyExperiments;
414
425
  /**
415
426
  * Initialise the client-side experiment engine.
@@ -39,7 +39,7 @@
39
39
  * ```
40
40
  */
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.Experiment = void 0;
42
+ exports.Experiment = exports.HOLDOUT_PCT = void 0;
43
43
  const transport_1 = require("../../client/transport");
44
44
  const storage_1 = require("../../utils/storage");
45
45
  // ============================================================================
@@ -57,6 +57,36 @@ function fnv1a(input) {
57
57
  }
58
58
  return hash;
59
59
  }
60
+ /**
61
+ * Global holdout (guide §3) — a fixed, deterministic slice of all visitors
62
+ * who are excluded from every experiment on the site. Lets teams measure
63
+ * the combined lift of "all active experiments" against a clean baseline,
64
+ * with zero server round-trips: each visitor's holdout membership is a pure
65
+ * function of their id, so it's stable across page loads and experiments.
66
+ */
67
+ exports.HOLDOUT_PCT = 5;
68
+ function isInHoldout(userId, holdoutPct = exports.HOLDOUT_PCT) {
69
+ if (holdoutPct <= 0)
70
+ return false;
71
+ if (holdoutPct >= 100)
72
+ return true;
73
+ const hash = fnv1a('holdout::' + userId);
74
+ return (hash % 10000) / 100 < holdoutPct;
75
+ }
76
+ /**
77
+ * Mutual exclusion (guide §3) — experiments that could interact (e.g. two
78
+ * tests on the same checkout flow) share an `exclusion_group` id in their
79
+ * properties. Each visitor deterministically "claims" exactly one experiment
80
+ * per group, so no one is ever in two experiments from the same group at once.
81
+ */
82
+ function filterMutuallyExclusive(userId, experimentId, exclusionGroup, groupMemberIds) {
83
+ const members = Array.from(new Set([...groupMemberIds, experimentId])).sort();
84
+ if (members.length <= 1)
85
+ return true;
86
+ const hash = fnv1a('exclusion::' + exclusionGroup + '::' + userId);
87
+ const claimed = members[hash % members.length];
88
+ return claimed === experimentId;
89
+ }
60
90
  // ============================================================================
61
91
  // CONSTANTS
62
92
  // ============================================================================
@@ -347,18 +377,53 @@ class Experiment extends transport_1.FlowGridTransport {
347
377
  }
348
378
  return variants[variants.length - 1].id;
349
379
  }
350
- assignVariant(experimentId, variants) {
380
+ assignVariant(experimentId, variants, properties = {}, exclusionGroupMembers = []) {
351
381
  // Reload from localStorage to handle cross-tab race conditions
352
382
  this.assignments = this.loadAssignments();
353
383
  const existing = this.assignments[experimentId];
354
- if (existing && variants.some(v => v.id === existing)) {
355
- // Existing assignment still valid — keep it
356
- return;
357
- }
358
384
  // Resolve a userId for the hash: prefer identityManager's visitorId, then fall back
359
385
  const userId = this.identityManager?.getVisitorId?.()
360
386
  || this.visitorId
361
387
  || this.getOrCreateAnonId();
388
+ // "Ship B" short-circuit (guide §6 `initExperiment` pattern): once the
389
+ // dashboard declares a winner, `properties.status`/`winner_id` on the
390
+ // definition are enough to converge every visitor — new or already
391
+ // bucketed — onto it. Stopping a test becomes a data change (one row
392
+ // update, picked up on the next page load), not a redeploy.
393
+ const status = typeof properties.status === 'string' ? properties.status : undefined;
394
+ const winnerId = typeof properties.winner_id === 'string' ? properties.winner_id : undefined;
395
+ if (status === 'complete' && winnerId && variants.some(v => v.id === winnerId)) {
396
+ if (existing === winnerId)
397
+ return;
398
+ this.assignments[experimentId] = winnerId;
399
+ this.saveAssignments();
400
+ this.init('experiment_assignment', {
401
+ type: 'experiment',
402
+ subtype: 'assignment',
403
+ experimentId,
404
+ userId,
405
+ variantId: winnerId,
406
+ source: 'shipped_winner',
407
+ assignmentSource: 'sdk_init',
408
+ timestamp: new Date().toISOString(),
409
+ }).catch(() => { });
410
+ return;
411
+ }
412
+ if (existing && variants.some(v => v.id === existing)) {
413
+ // Existing assignment still valid — keep it
414
+ return;
415
+ }
416
+ // Traffic-splitting primitives (guide §3) — these only gate *new*
417
+ // assignments. A visitor already bucketed into this experiment keeps
418
+ // their assignment even if they'd now land in the holdout or lose an
419
+ // exclusion-group claim; retroactively pulling people out would bias
420
+ // the very results the test is trying to measure.
421
+ if (isInHoldout(userId))
422
+ return;
423
+ const exclusionGroup = typeof properties.exclusion_group === 'string' ? properties.exclusion_group : undefined;
424
+ if (exclusionGroup && !filterMutuallyExclusive(userId, experimentId, exclusionGroup, exclusionGroupMembers)) {
425
+ return;
426
+ }
362
427
  // Deterministic assignment via hash
363
428
  const assignedVariantId = this.deterministicAssign(userId, experimentId, variants);
364
429
  this.assignments[experimentId] = assignedVariantId;
@@ -379,6 +444,41 @@ class Experiment extends transport_1.FlowGridTransport {
379
444
  // ---------------------------------------------------------------------------
380
445
  // CLIENT-SIDE ENGINE — server verification
381
446
  // ---------------------------------------------------------------------------
447
+ /**
448
+ * Groups experiment ids by their `properties.exclusion_group`, so
449
+ * `assignVariant` can deterministically pick exactly one experiment per
450
+ * group for each visitor (guide §3 mutual exclusion).
451
+ */
452
+ computeExclusionGroupMembers(items) {
453
+ const groups = new Map();
454
+ for (const item of items) {
455
+ const group = typeof item.properties?.exclusion_group === 'string' ? item.properties.exclusion_group : undefined;
456
+ if (!group)
457
+ continue;
458
+ if (!groups.has(group))
459
+ groups.set(group, []);
460
+ groups.get(group).push(item.experiment_id);
461
+ }
462
+ return groups;
463
+ }
464
+ /**
465
+ * Assigns variants straight from the locally supplied configs — the
466
+ * degraded path when the verify endpoint is unreachable OR returns an
467
+ * error (429 rate limit, 5xx). An unverified local assignment that emits
468
+ * events beats silently disabling the experiment for this visitor.
469
+ */
470
+ assignFromLocalConfigs(configs) {
471
+ const groupMembers = this.computeExclusionGroupMembers(configs.map(exp => ({ experiment_id: exp.id, properties: exp.properties })));
472
+ for (const exp of configs) {
473
+ this.experiments[exp.id] = {
474
+ variants: exp.variants,
475
+ properties: exp.properties || {},
476
+ verified: false,
477
+ };
478
+ const exclusionGroup = typeof exp.properties?.exclusion_group === 'string' ? exp.properties.exclusion_group : undefined;
479
+ this.assignVariant(exp.id, exp.variants, exp.properties || {}, exclusionGroup ? groupMembers.get(exclusionGroup) ?? [] : []);
480
+ }
481
+ }
382
482
  async verifyExperiments(configs) {
383
483
  const payload = {
384
484
  web_id: this.webId,
@@ -396,6 +496,7 @@ class Experiment extends transport_1.FlowGridTransport {
396
496
  });
397
497
  const response = await res.json();
398
498
  if (response.ok && Array.isArray(response.data)) {
499
+ const groupMembers = this.computeExclusionGroupMembers(response.data);
399
500
  for (const item of response.data) {
400
501
  if (item.action !== 'error') {
401
502
  this.experiments[item.experiment_id] = {
@@ -403,21 +504,20 @@ class Experiment extends transport_1.FlowGridTransport {
403
504
  properties: item.properties ?? {},
404
505
  verified: true,
405
506
  };
406
- this.assignVariant(item.experiment_id, item.variants);
507
+ const exclusionGroup = typeof item.properties?.exclusion_group === 'string' ? item.properties.exclusion_group : undefined;
508
+ this.assignVariant(item.experiment_id, item.variants, item.properties ?? {}, exclusionGroup ? groupMembers.get(exclusionGroup) ?? [] : []);
407
509
  }
408
510
  }
409
511
  }
512
+ else {
513
+ // Server replied but refused (rate limit, validation, 5xx) — degrade
514
+ // to local assignment rather than leaving the visitor unassigned.
515
+ this.assignFromLocalConfigs(configs);
516
+ }
410
517
  }
411
518
  catch {
412
519
  // Network failure — fall back to local config
413
- for (const exp of configs) {
414
- this.experiments[exp.id] = {
415
- variants: exp.variants,
416
- properties: exp.properties || {},
417
- verified: false,
418
- };
419
- this.assignVariant(exp.id, exp.variants);
420
- }
520
+ this.assignFromLocalConfigs(configs);
421
521
  }
422
522
  }
423
523
  // ---------------------------------------------------------------------------
@@ -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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"}