flowgrid-sdk 1.7.7 → 1.7.8
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 +225 -9
- package/dist/flowgrid.min.js +1 -1
- package/dist/flowgrid.min.js.map +1 -1
- package/dist/lib/client/transport.js +5 -0
- package/dist/lib/client/transport.js.map +1 -1
- package/dist/lib/features/analytics/authIntent.d.ts +35 -0
- package/dist/lib/features/analytics/authIntent.js +89 -0
- package/dist/lib/features/analytics/authIntent.js.map +1 -0
- package/dist/lib/flowgrid.d.ts +123 -1
- package/dist/lib/flowgrid.js +183 -2
- package/dist/lib/flowgrid.js.map +1 -1
- package/dist/lib/server/index.d.ts +531 -0
- package/dist/lib/server/index.js +811 -0
- package/dist/lib/server/index.js.map +1 -0
- package/dist/lib/tracking/analytics/identify.d.ts +2 -0
- package/dist/lib/tracking/analytics/identify.js +4 -0
- package/dist/lib/tracking/analytics/identify.js.map +1 -1
- package/dist/lib/utils/identity.d.ts +9 -0
- package/dist/lib/utils/identity.js +14 -0
- package/dist/lib/utils/identity.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +6 -1
|
@@ -171,6 +171,11 @@ class FlowGridTransport {
|
|
|
171
171
|
static getUtmContext() {
|
|
172
172
|
if (typeof window === 'undefined')
|
|
173
173
|
return {};
|
|
174
|
+
// Marketing attribution is `marketing`-category data (see ConsentCategory):
|
|
175
|
+
// when the visitor declined marketing consent, events still flow (analytics
|
|
176
|
+
// permitting) but carry no campaign/UTM/ref attribution.
|
|
177
|
+
if (!FlowGridTransport.hasConsent('marketing'))
|
|
178
|
+
return {};
|
|
174
179
|
let params = null;
|
|
175
180
|
try {
|
|
176
181
|
params = new URLSearchParams(window.location?.search ?? '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/client/transport.ts"],"names":[],"mappings":";;;AAEA,8CAA6C;AAyC7C;;;;;;;;;;;;;;;;;;;;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;YACrC,cAAc,EAAE,MAAM,EAAE,cAAc,IAAI,KAAK;SAChD,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;IAcO,MAAM,CAAC,kBAAkB,CAAC,MAAc;QAC9C,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAC9D,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,wFAAwF,CAAC,CAAC;IACrJ,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,eAAe;QAC5B,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACpF,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACzD,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,0BAA0B,IAAI,6EAA6E,CAC5G,CAAC;IACJ,CAAC;IAQD,kEAAkE;IAC1D,MAAM,CAAC,eAAe;QAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,OAAO,CACL,IAAI,KAAK,WAAW;YACpB,IAAI,KAAK,WAAW;YACpB,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,OAAO;YAChB,IAAI,KAAK,SAAS;YAClB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3B,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,qBAAqB;QAC3B,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;YACtC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC;YACxC,OAAO,CAAC,IAAI,CACV,2IAA2I,CAC5I,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,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;QACjG,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/C,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;QAC7E,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,OAAO;QAEzC,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,gEAAgE;QAChE,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,OAAO;QACzC,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;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,cAAc,CAC1B,GAAW,EACX,MAAgC,EAChC,IAAa,EACb,YAAqC;QAGrC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAAE,OAAO,EAAO,CAAC;QAEjD,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,mEAAmE;oBACnE,sEAAsE;oBACtE,iEAAiE;oBACjE,8DAA8D;oBAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAC1D,iBAAiB,CAAC,eAAe,EAAE,CAAC;wBACpC,OAAO,EAAO,CAAC;oBACjB,CAAC;oBACD,sEAAsE;oBACtE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;oBACxE,OAAO,EAAO,CAAC;gBACjB,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,iBAAiB,CAAC,kBAAkB,CAClC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;oBACnD,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3D,CAAC;gBACF,OAAO,EAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,oEAAoE;QACpE,0DAA0D;QAC1D,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAC1D,OAAO,EAAO,CAAC;IACjB,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;;AA5sBH,8CA6sBC;AAzqBC;;;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;AAgDhG,wFAAwF;AACzE,kCAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEpD;;;;;;;GAOG;AACY,qCAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AAqBvD,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE/D,gCAAc,GAAG,KAAK,CAAC;AAmFtC;;;;GAIG;AACqB,kCAAgB,GAAG;IACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;CACrF,CAAC"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/lib/client/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Framework-agnostic auth-intent handshake.
|
|
3
|
+
* @module features/analytics/authIntent
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Auth providers that redirect (OAuth, magic links, SSO) tear the "user clicked
|
|
7
|
+
* log in" moment away from the "user id is now known" moment — they happen on
|
|
8
|
+
* different page loads, so you can't track the login inline. This tiny module is
|
|
9
|
+
* the bridge: stash the intent (which flow, which method, which page) in
|
|
10
|
+
* sessionStorage BEFORE the redirect, then read it back AFTER, from any
|
|
11
|
+
* framework. No React, no globals — plain functions the SDK builds `markLogin` /
|
|
12
|
+
* `markSignup` / `completeAuth` on top of.
|
|
13
|
+
*/
|
|
14
|
+
export type AuthMode = "login" | "signup";
|
|
15
|
+
export interface AuthIntentInput {
|
|
16
|
+
/** Auth method — "google", "github", "email", "sso", … */
|
|
17
|
+
method?: string;
|
|
18
|
+
/** Signup traffic source (e.g. "pricing"). Signup only. */
|
|
19
|
+
source?: string;
|
|
20
|
+
/** Page the auth started on. Auto-detected in the browser when omitted. */
|
|
21
|
+
path?: string;
|
|
22
|
+
/** Full URL the auth started on. Auto-detected when omitted. */
|
|
23
|
+
url?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface AuthIntent extends AuthIntentInput {
|
|
26
|
+
mode: AuthMode;
|
|
27
|
+
/** When the intent was stashed (ms epoch) — used to expire stale intents. */
|
|
28
|
+
ts: number;
|
|
29
|
+
}
|
|
30
|
+
/** Stash an auth intent before a redirect. No-op outside the browser. */
|
|
31
|
+
export declare function stashAuthIntent(mode: AuthMode, input?: AuthIntentInput): void;
|
|
32
|
+
/** Read the pending auth intent, or null if none / expired / unreadable. */
|
|
33
|
+
export declare function readAuthIntent(): AuthIntent | null;
|
|
34
|
+
/** Clear the pending auth intent. No-op outside the browser. */
|
|
35
|
+
export declare function clearAuthIntent(): void;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Framework-agnostic auth-intent handshake.
|
|
4
|
+
* @module features/analytics/authIntent
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Auth providers that redirect (OAuth, magic links, SSO) tear the "user clicked
|
|
8
|
+
* log in" moment away from the "user id is now known" moment — they happen on
|
|
9
|
+
* different page loads, so you can't track the login inline. This tiny module is
|
|
10
|
+
* the bridge: stash the intent (which flow, which method, which page) in
|
|
11
|
+
* sessionStorage BEFORE the redirect, then read it back AFTER, from any
|
|
12
|
+
* framework. No React, no globals — plain functions the SDK builds `markLogin` /
|
|
13
|
+
* `markSignup` / `completeAuth` on top of.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.stashAuthIntent = stashAuthIntent;
|
|
17
|
+
exports.readAuthIntent = readAuthIntent;
|
|
18
|
+
exports.clearAuthIntent = clearAuthIntent;
|
|
19
|
+
const browser_1 = require("../../utils/browser");
|
|
20
|
+
const KEY = "fg_auth_intent";
|
|
21
|
+
// An intent older than this is treated as abandoned (user bailed on the flow).
|
|
22
|
+
const MAX_AGE_MS = 30 * 60 * 1000;
|
|
23
|
+
function storage() {
|
|
24
|
+
if (!(0, browser_1.isBrowser)())
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
return (0, browser_1.getWindow)()?.sessionStorage ?? null;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Access can throw in sandboxed iframes / privacy modes.
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Stash an auth intent before a redirect. No-op outside the browser. */
|
|
35
|
+
function stashAuthIntent(mode, input = {}) {
|
|
36
|
+
const store = storage();
|
|
37
|
+
if (!store)
|
|
38
|
+
return;
|
|
39
|
+
const win = (0, browser_1.getWindow)();
|
|
40
|
+
const intent = {
|
|
41
|
+
mode,
|
|
42
|
+
method: input.method,
|
|
43
|
+
source: input.source,
|
|
44
|
+
path: input.path ?? win?.location?.pathname,
|
|
45
|
+
url: input.url ?? win?.location?.href,
|
|
46
|
+
ts: Date.now(),
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
store.setItem(KEY, JSON.stringify(intent));
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
/* quota / private mode — nothing we can do, drop it */
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Read the pending auth intent, or null if none / expired / unreadable. */
|
|
56
|
+
function readAuthIntent() {
|
|
57
|
+
const store = storage();
|
|
58
|
+
if (!store)
|
|
59
|
+
return null;
|
|
60
|
+
try {
|
|
61
|
+
const raw = store.getItem(KEY);
|
|
62
|
+
if (!raw)
|
|
63
|
+
return null;
|
|
64
|
+
const intent = JSON.parse(raw);
|
|
65
|
+
if (!intent || (intent.mode !== "login" && intent.mode !== "signup"))
|
|
66
|
+
return null;
|
|
67
|
+
if (typeof intent.ts === "number" && Date.now() - intent.ts > MAX_AGE_MS) {
|
|
68
|
+
clearAuthIntent();
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return intent;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Clear the pending auth intent. No-op outside the browser. */
|
|
78
|
+
function clearAuthIntent() {
|
|
79
|
+
const store = storage();
|
|
80
|
+
if (!store)
|
|
81
|
+
return;
|
|
82
|
+
try {
|
|
83
|
+
store.removeItem(KEY);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
/* noop */
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=authIntent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authIntent.js","sourceRoot":"","sources":["../../../../src/lib/features/analytics/authIntent.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAsCH,0CAiBC;AAGD,wCAgBC;AAGD,0CAQC;AAnFD,iDAA2D;AAqB3D,MAAM,GAAG,GAAG,gBAAgB,CAAC;AAC7B,+EAA+E;AAC/E,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElC,SAAS,OAAO;IACd,IAAI,CAAC,IAAA,mBAAS,GAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAA,mBAAS,GAAE,EAAE,cAAc,IAAI,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,SAAgB,eAAe,CAAC,IAAc,EAAE,QAAyB,EAAE;IACzE,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,GAAG,GAAG,IAAA,mBAAS,GAAE,CAAC;IACxB,MAAM,MAAM,GAAe;QACzB,IAAI;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,QAAQ;QAC3C,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI;QACrC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;KACf,CAAC;IACF,IAAI,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAgB,cAAc;IAC5B,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAClF,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;YACzE,eAAe,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAgB,eAAe;IAC7B,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC;QACH,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;AACH,CAAC"}
|
package/dist/lib/flowgrid.d.ts
CHANGED
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
*/
|
|
32
32
|
import { FlowGridTransport, FlowGridTransportConfig } from "./client/transport";
|
|
33
33
|
import { IdentityManager } from "./utils/identity";
|
|
34
|
+
import { type AuthIntentInput } from "./features/analytics/authIntent";
|
|
34
35
|
import type { EngagementTracker, CohortTracker, ChurnTracker, MonetizationTracker, MultiPathFunnelTracker, SupportTracker, AcquisitionTracker, PathTracker, AlertTracker, SecurityTracker, ForecastingTracker } from "./tracking/enterprise";
|
|
35
36
|
import type { CookieBannerConfig } from "./consent/types";
|
|
36
37
|
import { ActivationTracker, ExperimentTracker, FeatureTracker, PromptTracker } from "./tracking/core";
|
|
@@ -806,10 +807,14 @@ export interface FlowGridInitConfig {
|
|
|
806
807
|
endpoint?: string;
|
|
807
808
|
/**
|
|
808
809
|
* Identify the user up-front so every subsequent event is attributed.
|
|
809
|
-
* Equivalent to calling `fg.identifyUser(userId, traits)`
|
|
810
|
+
* Equivalent to calling `fg.identifyUser(userId, { email, name, ...traits })`
|
|
811
|
+
* after init. `email`/`name` are top-level conveniences (parity with the
|
|
812
|
+
* Known-visitor identity) merged into `traits`.
|
|
810
813
|
*/
|
|
811
814
|
user?: {
|
|
812
815
|
userId: string;
|
|
816
|
+
email?: string;
|
|
817
|
+
name?: string;
|
|
813
818
|
traits?: Record<string, unknown>;
|
|
814
819
|
};
|
|
815
820
|
/**
|
|
@@ -867,6 +872,8 @@ export declare class FlowGrid {
|
|
|
867
872
|
private readonly config?;
|
|
868
873
|
private readonly _raw;
|
|
869
874
|
private readonly _wrapped;
|
|
875
|
+
/** Last identified user id — used by {@link logout} when none is passed. */
|
|
876
|
+
private _identifiedUserId;
|
|
870
877
|
/**
|
|
871
878
|
* One-line init. Idempotent — calling twice returns the same instance and
|
|
872
879
|
* logs a warning instead of starting auto-instrumentation again.
|
|
@@ -979,6 +986,121 @@ export declare class FlowGrid {
|
|
|
979
986
|
* ```
|
|
980
987
|
*/
|
|
981
988
|
login(userId: string, method?: string, properties?: Record<string, unknown>): Promise<import("..").ActivationResponse>;
|
|
989
|
+
/**
|
|
990
|
+
* Mark that a login is about to happen, BEFORE an auth redirect. Stashes the
|
|
991
|
+
* intent (method / source / originating page) in sessionStorage so the
|
|
992
|
+
* matching {@link completeAuth} — fired after the redirect resolves, in any
|
|
993
|
+
* framework — attributes the login to the right page and fires the event.
|
|
994
|
+
* No-op outside the browser.
|
|
995
|
+
*
|
|
996
|
+
* @example
|
|
997
|
+
* ```ts
|
|
998
|
+
* fg.markLogin({ method: "google" });
|
|
999
|
+
* await signIn("google"); // provider redirects away
|
|
1000
|
+
* ```
|
|
1001
|
+
*/
|
|
1002
|
+
markLogin(opts?: AuthIntentInput): void;
|
|
1003
|
+
/** Mark that a signup is about to happen, before an auth redirect. See {@link markLogin}. */
|
|
1004
|
+
markSignup(opts?: AuthIntentInput): void;
|
|
1005
|
+
/**
|
|
1006
|
+
* Complete an auth flow once the user id is known (e.g. after an OAuth
|
|
1007
|
+
* redirect resolves). Identifies the user — writing the identity store so they
|
|
1008
|
+
* appear as a Known visitor with email/name — then fires the matching
|
|
1009
|
+
* signup/login event using the intent stashed by {@link markLogin} /
|
|
1010
|
+
* {@link markSignup} (defaults to login when none was stashed), and marks the
|
|
1011
|
+
* user active for DAU/WAU/MAU. Framework-agnostic: call it from a React
|
|
1012
|
+
* effect, a Vue watcher, a Svelte reactive block — wherever the id lands.
|
|
1013
|
+
*
|
|
1014
|
+
* @example
|
|
1015
|
+
* ```ts
|
|
1016
|
+
* fg.completeAuth(user.id, { email: user.email, name: user.name });
|
|
1017
|
+
* ```
|
|
1018
|
+
*/
|
|
1019
|
+
completeAuth(userId: string, traits?: {
|
|
1020
|
+
email?: string;
|
|
1021
|
+
name?: string;
|
|
1022
|
+
} & Record<string, unknown>): {
|
|
1023
|
+
identify: Promise<import("..").IdentifyResponse>;
|
|
1024
|
+
event: Promise<import("..").ActivationResponse>;
|
|
1025
|
+
};
|
|
1026
|
+
/**
|
|
1027
|
+
* One-call auth tracking for apps that DON'T redirect (email/password, magic
|
|
1028
|
+
* link resolved in-page): identify + fire the login/signup event + mark the
|
|
1029
|
+
* user active, in a single call. Prefer {@link markLogin} + {@link completeAuth}
|
|
1030
|
+
* when your provider redirects.
|
|
1031
|
+
*
|
|
1032
|
+
* @example
|
|
1033
|
+
* ```ts
|
|
1034
|
+
* fg.trackAuth({ event: "login", userId: u.id, email: u.email, name: u.name, method: "password" });
|
|
1035
|
+
* ```
|
|
1036
|
+
*/
|
|
1037
|
+
trackAuth(input: {
|
|
1038
|
+
event: "login" | "signup";
|
|
1039
|
+
userId: string;
|
|
1040
|
+
email?: string;
|
|
1041
|
+
name?: string;
|
|
1042
|
+
method?: string;
|
|
1043
|
+
source?: string;
|
|
1044
|
+
traits?: Record<string, unknown>;
|
|
1045
|
+
}): {
|
|
1046
|
+
identify: Promise<import("..").IdentifyResponse>;
|
|
1047
|
+
event: Promise<import("..").ActivationResponse>;
|
|
1048
|
+
};
|
|
1049
|
+
/**
|
|
1050
|
+
* Emit an "active user" signal for an identified user so the dashboard can
|
|
1051
|
+
* compute DAU / WAU / MAU *by identity*. Fired automatically by the auth
|
|
1052
|
+
* helpers; call it yourself once per session on app open to also count
|
|
1053
|
+
* returning users who don't re-authenticate. Carries email/name for parity
|
|
1054
|
+
* with the Known-visitor identity.
|
|
1055
|
+
*
|
|
1056
|
+
* @example
|
|
1057
|
+
* ```ts
|
|
1058
|
+
* // On app boot, if a user session already exists:
|
|
1059
|
+
* fg.pingActiveUser(user.id, { email: user.email, name: user.name });
|
|
1060
|
+
* ```
|
|
1061
|
+
*/
|
|
1062
|
+
pingActiveUser(userId: string, traits?: {
|
|
1063
|
+
email?: string;
|
|
1064
|
+
name?: string;
|
|
1065
|
+
} & Record<string, unknown>): Promise<import("..").EventResponse>;
|
|
1066
|
+
/**
|
|
1067
|
+
* Clear the identified user on logout so a shared device doesn't attribute the
|
|
1068
|
+
* next visitor to the previous user. Resets the identity server-side and
|
|
1069
|
+
* clears any pending auth intent. Pass the user id, or omit it to reset the
|
|
1070
|
+
* last-identified user.
|
|
1071
|
+
*
|
|
1072
|
+
* @example
|
|
1073
|
+
* ```ts
|
|
1074
|
+
* fg.logout(); // reset the last-identified user
|
|
1075
|
+
* fg.logout("u_123"); // reset a specific user
|
|
1076
|
+
* ```
|
|
1077
|
+
*/
|
|
1078
|
+
logout(userId?: string): Promise<import("..").IdentifyResponse> | undefined;
|
|
1079
|
+
/** Alias for {@link logout}. */
|
|
1080
|
+
reset(userId?: string): Promise<import("..").IdentifyResponse> | undefined;
|
|
1081
|
+
/**
|
|
1082
|
+
* Attribution ids for **revenue attribution** — spread the result into
|
|
1083
|
+
* Stripe's `metadata` / Lemon Squeezy's `checkoutData.custom` when
|
|
1084
|
+
* creating a checkout **client-side**, so your payment webhook can read
|
|
1085
|
+
* them back (`attributionFromMetadata` in `flowgrid-sdk/server`) and
|
|
1086
|
+
* revenue joins this visitor's session, campaign and journey.
|
|
1087
|
+
*
|
|
1088
|
+
* When the checkout is created **server-side** (the common case), you
|
|
1089
|
+
* don't need this — read the same ids from the request cookies with
|
|
1090
|
+
* `checkoutAttributionFromCookies()` in `flowgrid-sdk/server`.
|
|
1091
|
+
*
|
|
1092
|
+
* @example
|
|
1093
|
+
* ```ts
|
|
1094
|
+
* const res = await fetch("/api/checkout", {
|
|
1095
|
+
* method: "POST",
|
|
1096
|
+
* body: JSON.stringify({ priceId, ...fg.checkoutAttribution() }),
|
|
1097
|
+
* });
|
|
1098
|
+
* ```
|
|
1099
|
+
*/
|
|
1100
|
+
checkoutAttribution(): {
|
|
1101
|
+
flowgrid_visitor_id?: string;
|
|
1102
|
+
flowgrid_session_id?: string;
|
|
1103
|
+
};
|
|
982
1104
|
private withTrackContext;
|
|
983
1105
|
private requireTrackProperties;
|
|
984
1106
|
private dispatchTrack;
|
package/dist/lib/flowgrid.js
CHANGED
|
@@ -67,6 +67,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
67
67
|
exports.FlowGrid = void 0;
|
|
68
68
|
const transport_1 = require("./client/transport");
|
|
69
69
|
const identity_1 = require("./utils/identity");
|
|
70
|
+
const authIntent_1 = require("./features/analytics/authIntent");
|
|
70
71
|
const core_1 = require("./features/core");
|
|
71
72
|
const analytics_1 = require("./features/analytics");
|
|
72
73
|
const ecommerce_1 = require("./features/ecommerce");
|
|
@@ -202,9 +203,19 @@ class FlowGrid {
|
|
|
202
203
|
// time user code first accesses them (typically well after init returns).
|
|
203
204
|
void loadEnterpriseModules();
|
|
204
205
|
// Identify the user before auto-instrumentation so the very first events
|
|
205
|
-
// (session_start, page_view) carry the userId.
|
|
206
|
+
// (session_start, page_view) carry the userId. `email`/`name` are accepted
|
|
207
|
+
// at the top level for parity with the Known-visitor identity and merged
|
|
208
|
+
// into traits; identifying an existing session also marks the user active
|
|
209
|
+
// (DAU/WAU/MAU) so returning users are counted without an explicit login.
|
|
206
210
|
if (config.user?.userId) {
|
|
207
|
-
|
|
211
|
+
const { userId, email, name, traits } = config.user;
|
|
212
|
+
const merged = {
|
|
213
|
+
...(email ? { email } : {}),
|
|
214
|
+
...(name ? { name } : {}),
|
|
215
|
+
...(traits ?? {}),
|
|
216
|
+
};
|
|
217
|
+
void fg.identifyUser(userId, merged);
|
|
218
|
+
void fg.pingActiveUser(userId, merged);
|
|
208
219
|
}
|
|
209
220
|
const autoTrack = config.autoTrack;
|
|
210
221
|
const replay = config.replay;
|
|
@@ -258,6 +269,8 @@ class FlowGrid {
|
|
|
258
269
|
this._autoTrackStop = null;
|
|
259
270
|
this._raw = new Map();
|
|
260
271
|
this._wrapped = new Map();
|
|
272
|
+
/** Last identified user id — used by {@link logout} when none is passed. */
|
|
273
|
+
this._identifiedUserId = null;
|
|
261
274
|
this.webId = webId;
|
|
262
275
|
this.endpoint = endpoint;
|
|
263
276
|
this.apiKey = apiKey;
|
|
@@ -365,6 +378,173 @@ class FlowGrid {
|
|
|
365
378
|
login(userId, method, properties) {
|
|
366
379
|
return this.activation.login(userId, method, properties);
|
|
367
380
|
}
|
|
381
|
+
// ==========================================================================
|
|
382
|
+
// AUTH — framework-agnostic login / signup (Vue, React, Svelte, Next, …)
|
|
383
|
+
// ==========================================================================
|
|
384
|
+
/**
|
|
385
|
+
* Mark that a login is about to happen, BEFORE an auth redirect. Stashes the
|
|
386
|
+
* intent (method / source / originating page) in sessionStorage so the
|
|
387
|
+
* matching {@link completeAuth} — fired after the redirect resolves, in any
|
|
388
|
+
* framework — attributes the login to the right page and fires the event.
|
|
389
|
+
* No-op outside the browser.
|
|
390
|
+
*
|
|
391
|
+
* @example
|
|
392
|
+
* ```ts
|
|
393
|
+
* fg.markLogin({ method: "google" });
|
|
394
|
+
* await signIn("google"); // provider redirects away
|
|
395
|
+
* ```
|
|
396
|
+
*/
|
|
397
|
+
markLogin(opts = {}) {
|
|
398
|
+
(0, authIntent_1.stashAuthIntent)("login", opts);
|
|
399
|
+
}
|
|
400
|
+
/** Mark that a signup is about to happen, before an auth redirect. See {@link markLogin}. */
|
|
401
|
+
markSignup(opts = {}) {
|
|
402
|
+
(0, authIntent_1.stashAuthIntent)("signup", opts);
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Complete an auth flow once the user id is known (e.g. after an OAuth
|
|
406
|
+
* redirect resolves). Identifies the user — writing the identity store so they
|
|
407
|
+
* appear as a Known visitor with email/name — then fires the matching
|
|
408
|
+
* signup/login event using the intent stashed by {@link markLogin} /
|
|
409
|
+
* {@link markSignup} (defaults to login when none was stashed), and marks the
|
|
410
|
+
* user active for DAU/WAU/MAU. Framework-agnostic: call it from a React
|
|
411
|
+
* effect, a Vue watcher, a Svelte reactive block — wherever the id lands.
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* ```ts
|
|
415
|
+
* fg.completeAuth(user.id, { email: user.email, name: user.name });
|
|
416
|
+
* ```
|
|
417
|
+
*/
|
|
418
|
+
completeAuth(userId, traits) {
|
|
419
|
+
const intent = (0, authIntent_1.readAuthIntent)();
|
|
420
|
+
// Identify first so this event — and every later event — is attributed, and
|
|
421
|
+
// the identity store carries email/name for the Known-visitor / active-user
|
|
422
|
+
// loops.
|
|
423
|
+
const identifyResult = this.identifyUser(userId, traits);
|
|
424
|
+
const mode = intent?.mode ?? "login";
|
|
425
|
+
const method = intent?.method ?? "email";
|
|
426
|
+
// Attribute the event to the page auth actually started on, not wherever
|
|
427
|
+
// completeAuth runs (usually a post-login route).
|
|
428
|
+
const origin = {};
|
|
429
|
+
if (intent?.path)
|
|
430
|
+
origin._page = intent.path;
|
|
431
|
+
if (intent?.url)
|
|
432
|
+
origin._url = intent.url;
|
|
433
|
+
const eventResult = mode === "signup"
|
|
434
|
+
? this.signup(userId, method, intent?.source, { ...traits, ...origin })
|
|
435
|
+
: this.login(userId, method, { ...traits, ...origin });
|
|
436
|
+
this.pingActiveUser(userId, traits);
|
|
437
|
+
(0, authIntent_1.clearAuthIntent)();
|
|
438
|
+
return { identify: identifyResult, event: eventResult };
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* One-call auth tracking for apps that DON'T redirect (email/password, magic
|
|
442
|
+
* link resolved in-page): identify + fire the login/signup event + mark the
|
|
443
|
+
* user active, in a single call. Prefer {@link markLogin} + {@link completeAuth}
|
|
444
|
+
* when your provider redirects.
|
|
445
|
+
*
|
|
446
|
+
* @example
|
|
447
|
+
* ```ts
|
|
448
|
+
* fg.trackAuth({ event: "login", userId: u.id, email: u.email, name: u.name, method: "password" });
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
451
|
+
trackAuth(input) {
|
|
452
|
+
const traits = {
|
|
453
|
+
...(input.email ? { email: input.email } : {}),
|
|
454
|
+
...(input.name ? { name: input.name } : {}),
|
|
455
|
+
...(input.traits ?? {}),
|
|
456
|
+
};
|
|
457
|
+
const identifyResult = this.identifyUser(input.userId, traits);
|
|
458
|
+
const method = input.method ?? "email";
|
|
459
|
+
const eventResult = input.event === "signup"
|
|
460
|
+
? this.signup(input.userId, method, input.source, traits)
|
|
461
|
+
: this.login(input.userId, method, traits);
|
|
462
|
+
this.pingActiveUser(input.userId, traits);
|
|
463
|
+
return { identify: identifyResult, event: eventResult };
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Emit an "active user" signal for an identified user so the dashboard can
|
|
467
|
+
* compute DAU / WAU / MAU *by identity*. Fired automatically by the auth
|
|
468
|
+
* helpers; call it yourself once per session on app open to also count
|
|
469
|
+
* returning users who don't re-authenticate. Carries email/name for parity
|
|
470
|
+
* with the Known-visitor identity.
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
* ```ts
|
|
474
|
+
* // On app boot, if a user session already exists:
|
|
475
|
+
* fg.pingActiveUser(user.id, { email: user.email, name: user.name });
|
|
476
|
+
* ```
|
|
477
|
+
*/
|
|
478
|
+
pingActiveUser(userId, traits) {
|
|
479
|
+
const now = new Date();
|
|
480
|
+
return this.events.track("active_user", {
|
|
481
|
+
userId,
|
|
482
|
+
...(traits?.email ? { email: traits.email } : {}),
|
|
483
|
+
...(traits?.name ? { name: traits.name } : {}),
|
|
484
|
+
// Day bucket lets the dashboard dedupe repeat pings within a day cheaply.
|
|
485
|
+
date: now.toISOString().slice(0, 10),
|
|
486
|
+
timestamp: now.toISOString(),
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Clear the identified user on logout so a shared device doesn't attribute the
|
|
491
|
+
* next visitor to the previous user. Resets the identity server-side and
|
|
492
|
+
* clears any pending auth intent. Pass the user id, or omit it to reset the
|
|
493
|
+
* last-identified user.
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* ```ts
|
|
497
|
+
* fg.logout(); // reset the last-identified user
|
|
498
|
+
* fg.logout("u_123"); // reset a specific user
|
|
499
|
+
* ```
|
|
500
|
+
*/
|
|
501
|
+
logout(userId) {
|
|
502
|
+
const id = userId ?? this._identifiedUserId ?? undefined;
|
|
503
|
+
(0, authIntent_1.clearAuthIntent)();
|
|
504
|
+
this._identifiedUserId = null;
|
|
505
|
+
if (id)
|
|
506
|
+
return this.identify.reset(id);
|
|
507
|
+
return undefined;
|
|
508
|
+
}
|
|
509
|
+
/** Alias for {@link logout}. */
|
|
510
|
+
reset(userId) {
|
|
511
|
+
return this.logout(userId);
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Attribution ids for **revenue attribution** — spread the result into
|
|
515
|
+
* Stripe's `metadata` / Lemon Squeezy's `checkoutData.custom` when
|
|
516
|
+
* creating a checkout **client-side**, so your payment webhook can read
|
|
517
|
+
* them back (`attributionFromMetadata` in `flowgrid-sdk/server`) and
|
|
518
|
+
* revenue joins this visitor's session, campaign and journey.
|
|
519
|
+
*
|
|
520
|
+
* When the checkout is created **server-side** (the common case), you
|
|
521
|
+
* don't need this — read the same ids from the request cookies with
|
|
522
|
+
* `checkoutAttributionFromCookies()` in `flowgrid-sdk/server`.
|
|
523
|
+
*
|
|
524
|
+
* @example
|
|
525
|
+
* ```ts
|
|
526
|
+
* const res = await fetch("/api/checkout", {
|
|
527
|
+
* method: "POST",
|
|
528
|
+
* body: JSON.stringify({ priceId, ...fg.checkoutAttribution() }),
|
|
529
|
+
* });
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
checkoutAttribution() {
|
|
533
|
+
const manager = this.identityManager;
|
|
534
|
+
if (!manager)
|
|
535
|
+
return {};
|
|
536
|
+
try {
|
|
537
|
+
const visitorId = manager.getVisitorId();
|
|
538
|
+
const sessionId = manager.getSessionId();
|
|
539
|
+
return {
|
|
540
|
+
...(visitorId ? { flowgrid_visitor_id: visitorId } : {}),
|
|
541
|
+
...(sessionId ? { flowgrid_session_id: sessionId } : {}),
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
catch {
|
|
545
|
+
return {};
|
|
546
|
+
}
|
|
547
|
+
}
|
|
368
548
|
withTrackContext(properties, options) {
|
|
369
549
|
return {
|
|
370
550
|
...properties,
|
|
@@ -980,6 +1160,7 @@ class FlowGrid {
|
|
|
980
1160
|
* ```
|
|
981
1161
|
*/
|
|
982
1162
|
identifyUser(userId, traits, anonymousId) {
|
|
1163
|
+
this._identifiedUserId = userId;
|
|
983
1164
|
return this.identify.user(userId, traits, anonymousId);
|
|
984
1165
|
}
|
|
985
1166
|
/**
|