flowgrid-sdk 1.6.7 → 1.6.9

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.
@@ -103,6 +103,23 @@ export declare class FlowGridTransport {
103
103
  private static isLikelyBot;
104
104
  private isDNTEnabled;
105
105
  private static getDeviceContext;
106
+ /**
107
+ * The attribution params FlowGrid tracks — kept in lockstep with
108
+ * flowgrid-core's `public/flowgrid.js` (`captureFromQueryOrCookie`) and the
109
+ * `getUTM()` reader in `utils/storage`. Five UTMs plus `ref`/`via`/`source`.
110
+ */
111
+ private static readonly ATTRIBUTION_KEYS;
112
+ /**
113
+ * Resolves marketing attribution into `_utm_source`/`_ref`/… properties.
114
+ *
115
+ * Prefers a fresh value from the current URL (the live campaign), falling back
116
+ * to the `__flowgrid_<name>` cookie that `flowgrid.js` persists on the landing
117
+ * page — so events fired on *later* pages (where the URL no longer carries
118
+ * UTMs) still attribute to the campaign that brought the visitor in. Same
119
+ * cookie names + key set as the loader script. Returns `{}` for non-campaign
120
+ * traffic so the payload stays clean.
121
+ */
122
+ private static getUtmContext;
106
123
  /**
107
124
  * Fire-and-forget event via sendBeacon. Used for page unload events.
108
125
  */
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FlowGridTransport = void 0;
4
+ const storage_1 = require("../utils/storage");
4
5
  /**
5
6
  * FlowGridTransport — Unified transport layer for Flowgrid SDK.
6
7
  *
@@ -102,8 +103,41 @@ class FlowGridTransport {
102
103
  _page: loc?.pathname,
103
104
  _referrer: doc?.referrer || undefined,
104
105
  _title: doc?.title || undefined,
106
+ // Marketing attribution — auto-captured so EVERY event (feature_usage
107
+ // included) carries the campaign that drove it, with zero customer config.
108
+ // Lets the dashboard segment usage/adoption by source/campaign
109
+ // (Mixpanel-parity). Only present keys are attached.
110
+ ...FlowGridTransport.getUtmContext(),
105
111
  };
106
112
  }
113
+ /**
114
+ * Resolves marketing attribution into `_utm_source`/`_ref`/… properties.
115
+ *
116
+ * Prefers a fresh value from the current URL (the live campaign), falling back
117
+ * to the `__flowgrid_<name>` cookie that `flowgrid.js` persists on the landing
118
+ * page — so events fired on *later* pages (where the URL no longer carries
119
+ * UTMs) still attribute to the campaign that brought the visitor in. Same
120
+ * cookie names + key set as the loader script. Returns `{}` for non-campaign
121
+ * traffic so the payload stays clean.
122
+ */
123
+ static getUtmContext() {
124
+ if (typeof window === 'undefined')
125
+ return {};
126
+ let params = null;
127
+ try {
128
+ params = new URLSearchParams(window.location?.search ?? '');
129
+ }
130
+ catch {
131
+ params = null;
132
+ }
133
+ const out = {};
134
+ for (const name of FlowGridTransport.ATTRIBUTION_KEYS) {
135
+ const value = params?.get(name) || (0, storage_1.getCookie)(`__flowgrid_${name}`);
136
+ if (value)
137
+ out[`_${name}`] = value;
138
+ }
139
+ return out;
140
+ }
107
141
  // ---------------------------------------------------------------------------
108
142
  // SENDBACON FALLBACK
109
143
  // ---------------------------------------------------------------------------
@@ -494,4 +528,12 @@ FlowGridTransport.MAX_BUFFER_SIZE = 50000; // 50KB
494
528
  FlowGridTransport.EVENT_BUFFER_KEY = 'fg_event_buffer';
495
529
  /** Consent state */
496
530
  FlowGridTransport.consent = { analytics: true, marketing: true };
531
+ /**
532
+ * The attribution params FlowGrid tracks — kept in lockstep with
533
+ * flowgrid-core's `public/flowgrid.js` (`captureFromQueryOrCookie`) and the
534
+ * `getUTM()` reader in `utils/storage`. Five UTMs plus `ref`/`via`/`source`.
535
+ */
536
+ FlowGridTransport.ATTRIBUTION_KEYS = [
537
+ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'ref', 'via', 'source',
538
+ ];
497
539
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/client/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/client/transport.ts"],"names":[],"mappings":";;;AAEA,8CAA6C;AAkC7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,iBAAiB;IAmE5B;;;;;;;;;OASG;IACH,YAAY,KAAa,EAAE,QAAgB,EAAE,MAAc,EAAE,SAAkB,EAAE,eAAiC,EAAE,MAAgC;QAClJ,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG;YACrB,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,OAAO;YAC7C,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;YACtC,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,GAAG;SACtC,CAAC;QAEF,sDAAsD;QACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,cAAc;IACd,8EAA8E;IAE9E,MAAM,CAAC,UAAU,CAAC,OAAkD;QAClE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,QAAyB;QACzC,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACtD,CAAC;IAED,8EAA8E;IAC9E,gBAAgB;IAChB,8EAA8E;IAEtE,MAAM,CAAC,WAAW;QACxB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACnD,IAAK,SAAiB,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,8CAA8C,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAEtE,YAAY;QAClB,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACnD,IAAK,SAAiB,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,SAAS,CAAC,UAAU,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAEtE,MAAM,CAAC,gBAAgB;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,SAAS,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK;YACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM;YACrC,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC9E,SAAS,EAAE,SAAS,CAAC,QAAQ;YAC7B,wEAAwE;YACxE,mEAAmE;YACnE,IAAI,EAAE,GAAG,EAAE,IAAI;YACf,KAAK,EAAE,GAAG,EAAE,QAAQ;YACpB,SAAS,EAAE,GAAG,EAAE,QAAQ,IAAI,SAAS;YACrC,MAAM,EAAE,GAAG,EAAE,KAAK,IAAI,SAAS;YAC/B,sEAAsE;YACtE,2EAA2E;YAC3E,+DAA+D;YAC/D,qDAAqD;YACrD,GAAG,iBAAiB,CAAC,aAAa,EAAE;SACrC,CAAC;IACJ,CAAC;IAWD;;;;;;;;;OASG;IACK,MAAM,CAAC,aAAa;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAC7C,IAAI,MAAM,GAA2B,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAA,mBAAS,EAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E;;OAEG;IACH,aAAa,CAAC,SAAiB,EAAE,aAAkC,EAAE;QACnE,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAEjG,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe;YAC5C,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,EAAE;SACvE,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,8EAA8E;IAC9E,uDAAuD;IACvD,8EAA8E;IAE9E;;;;;;OAMG;IACO,KAAK,CAAC,OAAO,CACrB,QAAgB,EAChB,IAA6B,EAC7B,UAAmC,EAAE;QAErC,IAAI,iBAAiB,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK;YAAE,OAAO;QAC1D,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QAE7E,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe;YAC5C,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,UAAU,EAAE,iBAAiB;YAC7B,GAAG,IAAI;SACR,CAAC,CAAC;QAEH,sBAAsB;QACtB,0EAA0E;QAC1E,yEAAyE;QACzE,8EAA8E;QAC9E,2EAA2E;QAC3E,wCAAwC;QACxC,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,6EAA6E;QAC7E,uEAAuE;QACvE,MAAM,oBAAoB,GAAG,KAAM,CAAC,CAAC,mCAAmC;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC;QAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,YAAY,GAAG,QAAQ,IAAI,WAAW,IAAI,oBAAoB,CAAC;QAErE,IAAI,QAAQ,IAAI,WAAW,GAAG,oBAAoB,EAAE,CAAC;YACnD,0EAA0E;YAC1E,4EAA4E;YAC5E,gEAAgE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,OAAO,SAAS,KAAK,WAAW;uBACtC,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;uBAC1C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;gBACrF,IAAI,CAAC,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC1C,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,6BAA6B,WAAW,SAAS,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,gBAAgB,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACzC;gBACD,IAAI,EAAE,OAAO;gBACb,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C,CAAC,CAAC;YACH,2EAA2E;YAC3E,6EAA6E;YAC7E,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC9C,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,cAAc,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,WAAW,SAAS,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,8BAA8B;YAC9B,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,cAAc,QAAQ,mBAAmB,WAAW,UAAU,EAAE,GAAG,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0CAA0C;IAC1C,8EAA8E;IAEtE,WAAW,CAAC,GAAW,EAAE,MAAc,EAAE,IAAa;QAC5D,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAChD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YACrE,MAAM,MAAM,GAA0D,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjG,IAAI,MAAM,CAAC,MAAM,IAAI,iBAAiB,CAAC,iBAAiB;gBAAE,OAAO;YAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAAC,eAAe;gBAAE,OAAO;YAE5F,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB;QACtB,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAChD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,MAAM,GAA0D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtF,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAE5D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,kCAAkC;gBAClC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBACb,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;qBACzC;oBACD,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,IAAI,CAClB,SAAiB,EACjB,aAAkC,EAAE,EACpC,SAAmC,MAAM;QAGzC,eAAe;QACf,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAO,CAAC;QACjB,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC3D,OAAO,EAAO,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,KAAK,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;YACrF,OAAO,EAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE1C,cAAc;QACd,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,KAAK,KAAK,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;YACnF,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,EAAE,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC;QAE5E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe;YAC5C,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,cAAc,CAAI,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,WAAW,CAAI,SAAiB,EAAE,UAAuD;QAEvG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,8BAA8B,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhG,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe;YAC5C,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,UAAU,EAAE,iBAAiB;YAC7B,UAAU,EAAE,SAAS;YACrB,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,cAAc,CAC1B,GAAW,EACX,MAAgC,EAChC,IAAa,EACb,YAAqC;QAGrC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAErF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC3B,MAAM;oBACN,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;wBACxC,GAAG,YAAY;qBAChB;oBACD,IAAI;oBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,YAAY,CAAC,SAAS,CAAC,CAAC;gBAExB,yCAAyC;gBACzC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;oBACjE,OAAO,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAC/D,CAAC;gBACJ,CAAC;gBAED,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAE1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,SAAS,CAAC,CAAC;gBAExB,MAAM,cAAc,GAClB,KAAK,YAAY,KAAK;oBACtB,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEnE,IAAI,cAAc,IAAI,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;oBAC9D,OAAO,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBAED,8DAA8D;gBAC9D,IAAI,OAAO,IAAI,iBAAiB,CAAC,WAAW,EAAE,CAAC;oBAC7C,MAAM,UAAU,GAAG,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;wBACvG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBAC3E,CAAC,CAAC,KAAK,CAAC;oBAEV,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC1D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,wDAAwD;QACxD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;OAUG;IACK,OAAO,CAAC,OAAe;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAM,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QACnC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CAAC,SAAiB,EAAE,UAA+B;QAEtE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,UAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC1B,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAChC,UAAU,EAAE,SAAS;gBACrB,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CACV,uDAAuD,GAAG,IAAI,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,QAAgB;QACxC,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,KAAK,GAAG,WAAW,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CAAC,GAAa;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;;AAnnBH,8CAonBC;AAhlBC;;;GAGG;AACqB,kCAAgB,GAAG,KAAM,CAAC,CAAC,OAAO;AAE1D;;GAEG;AACqB,4BAAU,GAAG,KAAM,CAAC;AAE5C;;GAEG;AACqB,6BAAW,GAAG,CAAC,CAAC;AAExC,mDAAmD;AAC3B,mCAAiB,GAAG,GAAG,CAAC;AAEhD,+BAA+B;AACP,iCAAe,GAAG,KAAM,CAAC,CAAC,OAAO;AAEzD,+CAA+C;AACvB,kCAAgB,GAAG,iBAAiB,CAAC;AAE7D,oBAAoB;AACL,yBAAO,GAAqC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAgGhG;;;;GAIG;AACqB,kCAAgB,GAAG;IACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;CACrF,CAAC"}
@@ -43,6 +43,7 @@
43
43
  * ```
44
44
  */
45
45
  import { FlowGridTransport } from "../../client/transport";
46
+ import { type Teardown } from "../../utils/browser";
46
47
  import { UserTraits, MoneyValue, TimeSeriesData } from "../../types";
47
48
  /**
48
49
  * Configuration for identifying a user.
@@ -55,6 +56,15 @@ export interface IdentifyConfig {
55
56
  /** User traits/properties */
56
57
  traits?: UserTraits;
57
58
  }
59
+ /**
60
+ * Options for {@link Identify.autoTrackForms} passive identity capture.
61
+ */
62
+ export interface PassiveIdentityOptions {
63
+ /** Debounce for `input` events before reading a field (ms, default 800). */
64
+ debounceMs?: number;
65
+ /** Extra `path` regex on which NO inputs are captured (replaces the default). */
66
+ excludePath?: RegExp;
67
+ }
58
68
  /**
59
69
  * Configuration for aliasing user IDs.
60
70
  */
@@ -249,5 +259,22 @@ export declare class Identify extends FlowGridTransport {
249
259
  * @returns Promise resolving to reset response
250
260
  */
251
261
  reset(userId: string): Promise<IdentifyResponse>;
262
+ /**
263
+ * Passive identity capture — the browser-side form-field tracker (parity with
264
+ * `flowgrid.js`'s `setupPassiveIdentityCapture`). Watches inputs (initial scan
265
+ * + a MutationObserver for fields added by modals/SPAs), classifies each by
266
+ * name/id/placeholder/autocomplete, hashes PII (SHA-256) before it leaves the
267
+ * browser, and posts the captured identity to the flowgrid-core identity store
268
+ * (`POST /api/v1/identity/identify`) so the dashboard can map the anonymous
269
+ * `visitor_id` to a person — and, with a CRM connected, to a known customer.
270
+ *
271
+ * Privacy: requires `analytics` consent; never attaches to password/card/cvv/
272
+ * ssn/pin fields or anything marked `data-analytics="ignore"` / `.no-track`;
273
+ * skips sensitive paths (checkout/account-settings/admin). Off by default in
274
+ * {@link FlowGrid.autoTrack} — enable with `autoTrack({ passiveIdentity: true })`.
275
+ *
276
+ * @returns a teardown that detaches every listener (no-op on the server).
277
+ */
278
+ autoTrackForms(options?: PassiveIdentityOptions): Teardown;
252
279
  }
253
280
  export default Identify;
@@ -46,6 +46,7 @@
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
47
  exports.Identify = void 0;
48
48
  const transport_1 = require("../../client/transport");
49
+ const browser_1 = require("../../utils/browser");
49
50
  // ============================================================================
50
51
  // IDENTIFY CLASS
51
52
  // ============================================================================
@@ -211,6 +212,198 @@ class Identify extends transport_1.FlowGridTransport {
211
212
  timestamp: new Date().toISOString()
212
213
  });
213
214
  }
215
+ /**
216
+ * Passive identity capture — the browser-side form-field tracker (parity with
217
+ * `flowgrid.js`'s `setupPassiveIdentityCapture`). Watches inputs (initial scan
218
+ * + a MutationObserver for fields added by modals/SPAs), classifies each by
219
+ * name/id/placeholder/autocomplete, hashes PII (SHA-256) before it leaves the
220
+ * browser, and posts the captured identity to the flowgrid-core identity store
221
+ * (`POST /api/v1/identity/identify`) so the dashboard can map the anonymous
222
+ * `visitor_id` to a person — and, with a CRM connected, to a known customer.
223
+ *
224
+ * Privacy: requires `analytics` consent; never attaches to password/card/cvv/
225
+ * ssn/pin fields or anything marked `data-analytics="ignore"` / `.no-track`;
226
+ * skips sensitive paths (checkout/account-settings/admin). Off by default in
227
+ * {@link FlowGrid.autoTrack} — enable with `autoTrack({ passiveIdentity: true })`.
228
+ *
229
+ * @returns a teardown that detaches every listener (no-op on the server).
230
+ */
231
+ autoTrackForms(options = {}) {
232
+ if (!(0, browser_1.isBrowser)())
233
+ return () => { };
234
+ if (!transport_1.FlowGridTransport.hasConsent("analytics"))
235
+ return () => { };
236
+ const win = (0, browser_1.getWindow)();
237
+ const doc = (0, browser_1.getDocument)();
238
+ const debounceMs = options.debounceMs ?? 800;
239
+ const EXCLUDED_PATH_RE = options.excludePath ?? /\/(checkout|account\/settings|admin)(\/|$)/i;
240
+ const BLOCKED_RE = /(password|cardnumber|creditcard|\bcard\b|cvv|cvc|ssn|\bpin\b|securitycode)/i;
241
+ const SKIP_RE = /(message|comment|note|feedback|search|query)/i;
242
+ const FIELD_MAP = [
243
+ { re: /(email|emailaddress)/, trait: "email", pii: true, identify: true },
244
+ { re: /(phone|tel|mobile|cell)/, trait: "phone", pii: true, identify: false },
245
+ { re: /(firstname|fname|givenname)/, trait: "firstName", pii: false, identify: false },
246
+ { re: /(lastname|lname|surname|familyname)/, trait: "lastName", pii: false, identify: false },
247
+ { re: /(company|organi[sz]ation|businessname)/, trait: "company", pii: false, identify: false },
248
+ { re: /(streetaddress|addressline|^address$|^street$)/, trait: "address", pii: false, identify: false },
249
+ { re: /(^city$|town)/, trait: "city", pii: false, identify: false },
250
+ { re: /(postcode|postalcode|zipcode|^zip$)/, trait: "postcode", pii: false, identify: false },
251
+ // A single full-name / username field maps to firstName; listed last so
252
+ // dedicated first/last-name fields win when both exist.
253
+ { re: /(fullname|^name$|username|yourname|contactname|displayname)/, trait: "firstName", pii: false, identify: false },
254
+ ];
255
+ const captured = {};
256
+ const seen = new WeakSet();
257
+ const debounceTimers = new WeakMap();
258
+ const teardowns = [];
259
+ const fieldEl = (el) => el;
260
+ const normalize = (el) => [fieldEl(el).name, el.id, el.getAttribute("placeholder"), el.getAttribute("autocomplete")]
261
+ .filter(Boolean).join(" ").toLowerCase().replace(/[\s_-]/g, "");
262
+ const isBlocked = (el, key) => {
263
+ const input = fieldEl(el);
264
+ if (input.type === "password" || input.type === "hidden")
265
+ return true;
266
+ if (el.getAttribute("data-analytics") === "ignore")
267
+ return true;
268
+ if (el.classList && el.classList.contains("no-track"))
269
+ return true;
270
+ return BLOCKED_RE.test(key);
271
+ };
272
+ const classify = (el) => {
273
+ const key = normalize(el);
274
+ if (!key)
275
+ return null;
276
+ if (isBlocked(el, key))
277
+ return { blocked: true };
278
+ if (SKIP_RE.test(key))
279
+ return null;
280
+ return FIELD_MAP.find((f) => f.re.test(key)) ?? null;
281
+ };
282
+ const sha256hex = async (value) => {
283
+ try {
284
+ const enc = new TextEncoder().encode(String(value).trim().toLowerCase());
285
+ const buf = await win.crypto.subtle.digest("SHA-256", enc);
286
+ return Array.from(new Uint8Array(buf)).map((b) => b.toString(16).padStart(2, "0")).join("");
287
+ }
288
+ catch {
289
+ return null;
290
+ }
291
+ };
292
+ const resolveVisitorId = () => (this.identityManager ? this.identityManager.getVisitorId() : this.visitorId) || "";
293
+ const resolveSessionId = () => this.identityManager ? this.identityManager.getSessionId() : null;
294
+ // Posts the captured identity to the flowgrid-core identity store. Raw email
295
+ // stays server-side (CRM enrichment + dashboard display); the analytics
296
+ // event store only ever sees hashes (the `field_captured` mirror below).
297
+ const sendIdentity = () => {
298
+ const visitorId = resolveVisitorId();
299
+ if (!this.webId || !visitorId)
300
+ return;
301
+ if (!captured.email && !captured.emailHash && !captured.firstName && !captured.lastName)
302
+ return;
303
+ const traits = {
304
+ email: captured.email ?? null,
305
+ email_hash: captured.emailHash ?? null,
306
+ phone_hash: captured.phoneHash ?? null,
307
+ first_name: captured.firstName ?? null,
308
+ last_name: captured.lastName ?? null,
309
+ company: captured.company ?? null,
310
+ address: captured.address ?? null,
311
+ city: captured.city ?? null,
312
+ postcode: captured.postcode ?? null,
313
+ };
314
+ const url = `${this.endpoint}/api/v1/identity/identify`;
315
+ const payload = JSON.stringify({
316
+ web_id: this.webId,
317
+ visitor_id: visitorId,
318
+ session_id: resolveSessionId(),
319
+ path_name: win.location.pathname,
320
+ traits,
321
+ });
322
+ try {
323
+ if (typeof navigator !== "undefined" && navigator.sendBeacon &&
324
+ navigator.sendBeacon(url, new Blob([payload], { type: "application/json" }))) {
325
+ // sent via beacon
326
+ }
327
+ else {
328
+ void fetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, body: payload, keepalive: true }).catch(() => { });
329
+ }
330
+ }
331
+ catch { /* swallow */ }
332
+ };
333
+ const captureField = (el) => {
334
+ const cls = classify(el);
335
+ if (!cls || "blocked" in cls)
336
+ return;
337
+ const value = (fieldEl(el).value || "").trim();
338
+ if (!value)
339
+ return;
340
+ if (cls.pii) {
341
+ const toHash = cls.trait === "phone" ? value.replace(/[^\d+]/g, "") : value;
342
+ void sha256hex(toHash).then((hash) => {
343
+ if (cls.trait === "email") {
344
+ captured.email = value;
345
+ if (hash)
346
+ captured.emailHash = hash;
347
+ }
348
+ else if (cls.trait === "phone" && hash) {
349
+ captured.phoneHash = hash;
350
+ }
351
+ if (cls.identify || captured.email)
352
+ sendIdentity();
353
+ });
354
+ }
355
+ else {
356
+ captured[cls.trait] = value;
357
+ if (captured.email)
358
+ sendIdentity();
359
+ }
360
+ };
361
+ const attach = (el) => {
362
+ if (seen.has(el))
363
+ return;
364
+ const cls = classify(el);
365
+ if (!cls || "blocked" in cls)
366
+ return; // never listen to blocked / unknown fields
367
+ seen.add(el);
368
+ const onBlur = () => captureField(el);
369
+ const onInput = () => {
370
+ clearTimeout(debounceTimers.get(el));
371
+ debounceTimers.set(el, setTimeout(() => captureField(el), debounceMs));
372
+ };
373
+ el.addEventListener("blur", onBlur, { passive: true });
374
+ el.addEventListener("input", onInput, { passive: true });
375
+ teardowns.push(() => {
376
+ el.removeEventListener("blur", onBlur);
377
+ el.removeEventListener("input", onInput);
378
+ });
379
+ };
380
+ const scanPage = () => {
381
+ if (EXCLUDED_PATH_RE.test(win.location.pathname))
382
+ return;
383
+ doc.querySelectorAll("input, textarea, select").forEach(attach);
384
+ };
385
+ scanPage();
386
+ let mo = null;
387
+ try {
388
+ mo = new MutationObserver(() => scanPage());
389
+ if (doc.body)
390
+ mo.observe(doc.body, { childList: true, subtree: true });
391
+ }
392
+ catch { /* MutationObserver unavailable */ }
393
+ return () => {
394
+ if (mo)
395
+ try {
396
+ mo.disconnect();
397
+ }
398
+ catch { /* noop */ }
399
+ for (const t of teardowns) {
400
+ try {
401
+ t();
402
+ }
403
+ catch { /* noop */ }
404
+ }
405
+ };
406
+ }
214
407
  }
215
408
  exports.Identify = Identify;
216
409
  exports.default = Identify;
@@ -1 +1 @@
1
- {"version":3,"file":"identify.js","sourceRoot":"","sources":["../../../../src/lib/features/analytics/identify.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;;;AAEH,sDAA2D;AAkG3D,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,QAAS,SAAQ,6BAAiB;IAC7C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACtC,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,MAAkB;QACnD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACtC,IAAI,EAAE,eAAe;YACrB,MAAM;YACN,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACvC,IAAI,EAAE,OAAO;YACb,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAlID,4BAkIC;AAED,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"identify.js","sourceRoot":"","sources":["../../../../src/lib/features/analytics/identify.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export type { ReplayPrivacyMetadata, SessionReplayDropMetadata, SessionReplayErr
16
16
  export type { PageViewConfig, ScrollDepthConfig, TimeOnPageConfig, PageViewResponse, PageAnalyticsData } from './page-views';
17
17
  export type { SessionStartConfig, SessionResponse, SessionEndResponse, SessionAnalyticsData, RealTimeSessionData } from './sessions';
18
18
  export type { EventTrackConfig, BatchEventConfig, EventResponse, BatchEventResponse, EventAnalyticsData } from './events';
19
- export type { IdentifyConfig, AliasConfig, GroupConfig, IdentifyResponse, UserAnalyticsData } from './identify';
19
+ export type { IdentifyConfig, AliasConfig, GroupConfig, IdentifyResponse, UserAnalyticsData, PassiveIdentityOptions } from './identify';
20
20
  export type { FunnelDefinition, FunnelStepConfig, FunnelStepResponse, FunnelAnalyticsData, FunnelComparisonData } from './funnels';
21
21
  export type { ActivityConfig, CohortAnalysisConfig, ActivityResponse, CohortAnalysisData, StickinessData, ChurnAnalysisData } from './retention';
22
22
  export type { AttributionModel, TouchpointConfig, ConversionEvent, TouchpointResponse, AttributionReportData } from './attribution';
@@ -1 +1 @@
1
- {"version":3,"file":"track-feature.js","sourceRoot":"","sources":["../../../../src/lib/features/core/track-feature.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAEH,sDAA2D;AAgI3D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAa,YAAa,SAAQ,6BAAiB;IACjD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAqB;QAChC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAA0B;QACzC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,eAAe,EAAE;YAC1D,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAxCD,oCAwCC;AAED,kBAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"track-feature.js","sourceRoot":"","sources":["../../../../src/lib/features/core/track-feature.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;AAEH,sDAA2D;AAgI3D,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAa,YAAa,SAAQ,6BAAiB;IACjD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAqB;QAChC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAA0B;QACzC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,eAAe,EAAE;YAC1D,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,MAAM,CAAC,UAAU;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CAEF;AAzCD,oCAyCC;AAED,kBAAe,YAAY,CAAC"}
@@ -738,6 +738,28 @@ type FlowGridKnownTrackFields = Partial<{
738
738
  conversionId: string;
739
739
  }>;
740
740
  export type FlowGridTrackProperties = Record<string, unknown> & FlowGridKnownTrackFields;
741
+ type UnifiedFeatureAction = "viewed" | "used" | "completed" | "abandoned";
742
+ /** The lifecycle action a {@link FeatureHandle} emits. */
743
+ export type FeatureHandleAction = UnifiedFeatureAction;
744
+ /**
745
+ * A feature bound to its id/name (+ optional category) via
746
+ * {@link FlowGrid.defineFeature}. Call the verb that describes what happened;
747
+ * each emits a `feature_usage` event through the unified `.track()` router.
748
+ */
749
+ export interface FeatureHandle {
750
+ readonly featureId: string;
751
+ readonly featureName: string;
752
+ /** Visitor opened / looked at the feature → Discovered + Viewed. */
753
+ viewed(properties?: Record<string, unknown>): unknown;
754
+ /** Visitor used the feature → Adopted. */
755
+ used(properties?: Record<string, unknown>): unknown;
756
+ /** Visitor finished the feature's job → Completed. */
757
+ completed(properties?: Record<string, unknown>): unknown;
758
+ /** Visitor started but gave up → Abandonment. */
759
+ abandoned(properties?: Record<string, unknown>): unknown;
760
+ /** Escape hatch — emit any action explicitly. */
761
+ track(action: FeatureHandleAction, properties?: Record<string, unknown>): unknown;
762
+ }
741
763
  /** Granular auto-instrumentation toggles. */
742
764
  export interface AutoTrackOptions {
743
765
  sessions?: boolean;
@@ -946,6 +968,27 @@ export declare class FlowGrid {
946
968
  * ```
947
969
  */
948
970
  identifyUser(userId: string, traits?: Record<string, unknown>, anonymousId?: string): Promise<import("..").IdentifyResponse>;
971
+ /**
972
+ * Bind a feature's `id` + `name` (and optional `category`) once, and get back
973
+ * a small set of semantic helpers — `viewed` / `used` / `completed` /
974
+ * `abandoned` — so you don't repeat the id/name on every call. Each helper is
975
+ * a thin, explicit wrapper over `track("feature_usage", …)` (full
976
+ * routing/consent/transport). No hidden state, no lifecycle guessing: every
977
+ * call sends exactly the action you name. The dashboard does the interpreting
978
+ * (a *viewed* feature is Discovered, a *used* one is Adopted).
979
+ *
980
+ * @example
981
+ * ```ts
982
+ * const agent = fg.defineFeature("ai-agent-builder", "AI Agent Builder", { category: "automation" });
983
+ * agent.viewed(); // → action: "viewed" (Discovered + Viewed)
984
+ * agent.used({ model: "opus" }); // → action: "used" (Adopted)
985
+ * agent.completed(); // → action: "completed"
986
+ * agent.abandoned(); // → action: "abandoned"
987
+ * ```
988
+ */
989
+ defineFeature(featureId: string, featureName: string, opts?: {
990
+ category?: string;
991
+ }): FeatureHandle;
949
992
  /**
950
993
  * Track a page view. Auto-detects URL/path/title/referrer in the browser.
951
994
  *
@@ -998,6 +1041,7 @@ export declare class FlowGrid {
998
1041
  idleAfterMs?: number;
999
1042
  pollMs?: number;
1000
1043
  };
1044
+ passiveIdentity?: boolean | import("./features/analytics/identify").PassiveIdentityOptions;
1001
1045
  }): () => void;
1002
1046
  }
1003
1047
  export default FlowGrid;
@@ -955,6 +955,42 @@ class FlowGrid {
955
955
  identifyUser(userId, traits, anonymousId) {
956
956
  return this.identify.user(userId, traits, anonymousId);
957
957
  }
958
+ /**
959
+ * Bind a feature's `id` + `name` (and optional `category`) once, and get back
960
+ * a small set of semantic helpers — `viewed` / `used` / `completed` /
961
+ * `abandoned` — so you don't repeat the id/name on every call. Each helper is
962
+ * a thin, explicit wrapper over `track("feature_usage", …)` (full
963
+ * routing/consent/transport). No hidden state, no lifecycle guessing: every
964
+ * call sends exactly the action you name. The dashboard does the interpreting
965
+ * (a *viewed* feature is Discovered, a *used* one is Adopted).
966
+ *
967
+ * @example
968
+ * ```ts
969
+ * const agent = fg.defineFeature("ai-agent-builder", "AI Agent Builder", { category: "automation" });
970
+ * agent.viewed(); // → action: "viewed" (Discovered + Viewed)
971
+ * agent.used({ model: "opus" }); // → action: "used" (Adopted)
972
+ * agent.completed(); // → action: "completed"
973
+ * agent.abandoned(); // → action: "abandoned"
974
+ * ```
975
+ */
976
+ defineFeature(featureId, featureName, opts = {}) {
977
+ const emit = (action, properties) => this.track("feature_usage", {
978
+ featureId,
979
+ featureName,
980
+ action,
981
+ ...(opts.category ? { category: opts.category } : {}),
982
+ ...(properties ?? {}),
983
+ }, { domain: "feature" });
984
+ return {
985
+ featureId,
986
+ featureName,
987
+ viewed: (properties) => emit("viewed", properties),
988
+ used: (properties) => emit("used", properties),
989
+ completed: (properties) => emit("completed", properties),
990
+ abandoned: (properties) => emit("abandoned", properties),
991
+ track: (action, properties) => emit(action, properties),
992
+ };
993
+ }
958
994
  /**
959
995
  * Track a page view. Auto-detects URL/path/title/referrer in the browser.
960
996
  *
@@ -1026,6 +1062,12 @@ class FlowGrid {
1026
1062
  if (options.attribution === true && ctx.userId) {
1027
1063
  this.attribution.captureFromUrl(ctx.userId);
1028
1064
  }
1065
+ // Passive identity capture is off by default — the flowgrid.js core script
1066
+ // already runs it for snippet installs; SDK-only sites opt in here.
1067
+ if (options.passiveIdentity === true || (options.passiveIdentity !== false && typeof options.passiveIdentity === "object")) {
1068
+ const piOpts = typeof options.passiveIdentity === "object" ? options.passiveIdentity : {};
1069
+ teardowns.push(this.identify.client.autoTrackForms(piOpts));
1070
+ }
1029
1071
  if (options.replay !== false) {
1030
1072
  const replayOpts = typeof options.replay === "object" ? options.replay : {};
1031
1073
  // start() is async; track its resolved teardown so the outer stop()