@picked/analytics 0.0.62-next.4 → 0.0.62-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/plugins/analytics/index.js +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/plugins/analytics/index.js +105 -91
- package/dist/{src-DfWSBf5F.js → src-C7QGSYsH.js} +288 -263
- package/dist/src-SXKh20cI.cjs +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interaction-events.d.ts +18 -0
- package/dist/types/interaction-events.d.ts.map +1 -0
- package/dist/types/plugins/analytics/index.d.ts +6 -0
- package/dist/types/plugins/analytics/index.d.ts.map +1 -1
- package/dist/types/plugins/analytics/plugin.d.ts +3 -1
- package/dist/types/plugins/analytics/plugin.d.ts.map +1 -1
- package/dist/types/user-interaction.d.ts +28 -1
- package/dist/types/user-interaction.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/src-57IB6FEH.cjs +0 -1
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../src-SXKh20cI.cjs`);exports.bindGlobalEventListeners=e.t,exports.bindUserInteractionListeners=e.n,exports.createCartAddTrackerEvent=e.I,exports.createCartRemoveTrackerEvent=e.P,exports.createCheckoutCompleteTrackerEvent=e.M,exports.createCheckoutStartTrackerEvent=e.A,exports.createIdentifyTrackerEvent=e.p,exports.createOrderCreateTrackerEvent=e.O,exports.createPageViewTrackerEvent=e.c,exports.createProductListViewTrackerEvent=e.E,exports.createProductViewTrackerEvent=e.C,exports.createTracker=e.Y,exports.trackAppCloseEvent=e.J,exports.trackAppInitializeEvent=e.q,exports.trackAppLoadEvent=e.K,exports.trackAppOpenEvent=e.G,exports.trackCartAddEvent=e.L,exports.trackCartRemoveEvent=e.F,exports.trackCheckoutCompleteEvent=e.N,exports.trackCheckoutStartEvent=e.j,exports.trackCustomEvent=e.a,exports.trackEvent=e.s,exports.trackExperienceLoadEvent=e.W,exports.trackFeatureDecideEvent=e.U,exports.trackFieldValidationErrorEvent=e.v,exports.trackFormSubmitErrorEvent=e.g,exports.trackFormSubmitEvent=e._,exports.trackFormSubmitSuccessEvent=e.h,exports.trackIdentifyEvent=e.m,exports.trackLeadCaptureEvent=e.f,exports.trackModalCloseEvent=e.d,exports.trackModalOpenEvent=e.u,exports.trackNamedCustomEvent=e.o,exports.trackOrderCreateEvent=e.k,exports.trackPageViewEvent=e.l,exports.trackProductListViewEvent=e.D,exports.trackProductSelectEvent=e.T,exports.trackProductViewDetailsEvent=e.w,exports.trackRecommendationPresentEvent=e.S,exports.trackSearchResultsListViewEvent=e.x,exports.trackStepComplete=e.H,exports.trackStepEnterEvent=e.V,exports.trackStepSubmitErrorEvent=e.z,exports.trackStepSubmitEvent=e.B,exports.trackStepSubmitSuccessEvent=e.R,exports.trackWaitlistJoinEvent=e.b,exports.trackWishlistAddEvent=e.y;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../../src-SXKh20cI.cjs`);let t=require(`@picked/client`),n=require(`effector`);function r(e){return e.isResolved}var i=e=>e.flatMap(e=>{if(!r(e))return[];let{id:t,key:n,name:i}=e,{bucket:a}=e.getBucket();return[{name:i,key:n,feature:t,bucket:a}]}),a=e=>({id:e.experienceId,title:e.experienceName}),o=e=>`experience`in e?a(e.experience):void 0,s=t=>{if(t===!0)return[...e.r];if(!t)return[];let n=[],r=[];for(let i of t)e.i(i)?n.push(i):r.push(i);return r.length>0&&console.warn(`[@picked/analytics] Ignoring unknown interaction event names: ${r.join(`, `)}. Valid names are: ${e.r.join(`, `)}.`),n},c=({trackerOptions:r,enableDocumentListeners:c=!1,enableInteractionListeners:l=!1})=>{let u=s(l);return{name:`analytics`,setup:s=>{if(!(0,t.supportsWindow)())return;let{projectId:l}=s,d=s.session.store.map(e=>e.id),f=s.session.store.map(e=>e.isUser,{skipVoid:!1}),p=s.session.store.map(e=>e.identifiers??{}),m=(0,n.combine)({sessionId:d,sessionIdentifiers:p,sessionIsUser:f,features:s.features.listStore},e=>({projectId:l,sessionId:e.sessionId,identifiers:e.sessionIdentifiers,isUser:e.sessionIsUser,features:i(e.features)})),h=(e,t)=>({...e,...t&&{experience:a(t)}}),g=e=>{let t=m.map(t=>h(t,e)),n;return{read:()=>{if(n===void 0)throw Error(`[@picked/analytics] subscribeContext: store did not initialize synchronously`);return n},unsubscribe:t.watch(e=>{n=e})}};if(e.Y({projectId:l,...r}),c){let{read:t}=g();e.t(t)}let _=new Map,v=new Map,y=t=>{let n=t.target;if(!n?.shadowRoot)return!1;let{read:r,unsubscribe:i}=g(t);return e.n(r,n.shadowRoot,u),_.set(t,i),!0};s.experienceInstances.listStore.watch(e=>{let t=new Set(e);for(let[e,n]of _)t.has(e)||(n(),_.delete(e));for(let[e,n]of v)t.has(e)||(n(),v.delete(e));for(let t of e){if(_.has(t)||v.has(t)||y(t))continue;let e=t.mountFx.done.watch(()=>{e(),v.delete(t),y(t)});v.set(t,e)}});let b=e=>(0,n.attach)({source:{fields:s.fields.listStore,responses:s.responses.listStore,sessionId:d,sessionIdentifiers:p,sessionIsUser:f,features:s.features.listStore},effect:async({fields:t,responses:n,sessionId:r,sessionIdentifiers:a,sessionIsUser:s,features:c},u)=>e({projectId:l,sessionId:r,experience:o(u),step:`step`in u?u.step:void 0,form:`form`in u?u.form:void 0,exception:`exception`in u?u.exception.reason[0]:void 0,fields:t,responses:n,features:i(c),isUser:s,identifiers:a})});(0,n.split)({source:s.eventBus,match:e=>e.type,cases:{load:b(e.K),initialize:b(e.q),experience_initialize:b(e.W),experience_open:b(e.G),experience_close:b(e.J),field_validation_error:b(e.v),step_enter:b(e.V),step_submit:b(e.B),step_submit_success:b(e.R),form_submit:b(e._),form_submit_success:b(e.h),form_submit_error:b(e.g),feature_decide:b(e.U)}})}}};exports.INTERACTION_EVENT_NAMES=e.r,exports.analyticsPlugin=c,exports.isInteractionEventName=e.i;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c,
|
|
2
|
-
export { B as bindGlobalEventListeners,
|
|
1
|
+
import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, H as s, I as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, R as g, S as _, T as v, U as y, V as b, W as x, Y as S, _ as C, a as w, b as T, c as E, d as D, f as O, g as k, h as A, j, k as M, l as N, m as P, n as F, o as I, p as L, q as R, s as z, t as B, u as V, v as H, w as U, x as W, y as G, z as K } from "../src-C7QGSYsH.js";
|
|
2
|
+
export { B as bindGlobalEventListeners, F as bindUserInteractionListeners, c as createCartAddTrackerEvent, h as createCartRemoveTrackerEvent, f as createCheckoutCompleteTrackerEvent, e as createCheckoutStartTrackerEvent, L as createIdentifyTrackerEvent, m as createOrderCreateTrackerEvent, E as createPageViewTrackerEvent, i as createProductListViewTrackerEvent, n as createProductViewTrackerEvent, S as createTracker, l as trackAppCloseEvent, R as trackAppInitializeEvent, u as trackAppLoadEvent, o as trackAppOpenEvent, d as trackCartAddEvent, a as trackCartRemoveEvent, p as trackCheckoutCompleteEvent, j as trackCheckoutStartEvent, w as trackCustomEvent, z as trackEvent, x as trackExperienceLoadEvent, y as trackFeatureDecideEvent, H as trackFieldValidationErrorEvent, k as trackFormSubmitErrorEvent, C as trackFormSubmitEvent, A as trackFormSubmitSuccessEvent, P as trackIdentifyEvent, O as trackLeadCaptureEvent, D as trackModalCloseEvent, V as trackModalOpenEvent, I as trackNamedCustomEvent, M as trackOrderCreateEvent, N as trackPageViewEvent, r as trackProductListViewEvent, v as trackProductSelectEvent, U as trackProductViewDetailsEvent, _ as trackRecommendationPresentEvent, W as trackSearchResultsListViewEvent, s as trackStepComplete, b as trackStepEnterEvent, K as trackStepSubmitErrorEvent, t as trackStepSubmitEvent, g as trackStepSubmitSuccessEvent, T as trackWaitlistJoinEvent, G as trackWishlistAddEvent };
|
|
@@ -1,115 +1,129 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { supportsWindow as
|
|
3
|
-
import { attach as
|
|
1
|
+
import { B as e, G as t, J as n, K as r, R as i, U as a, V as o, W as s, Y as c, _ as l, g as u, h as d, i as f, n as p, q as m, r as h, t as g, v as _ } from "../../../src-C7QGSYsH.js";
|
|
2
|
+
import { supportsWindow as v } from "@picked/client";
|
|
3
|
+
import { attach as y, combine as b, split as x } from "effector";
|
|
4
4
|
//#region src/plugins/analytics/plugin.ts
|
|
5
|
-
function
|
|
5
|
+
function S(e) {
|
|
6
6
|
return e.isResolved;
|
|
7
7
|
}
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
var C = (e) => e.flatMap((e) => {
|
|
9
|
+
if (!S(e)) return [];
|
|
10
|
+
let { id: t, key: n, name: r } = e, { bucket: i } = e.getBucket();
|
|
11
|
+
return [{
|
|
12
|
+
name: r,
|
|
13
|
+
key: n,
|
|
14
|
+
feature: t,
|
|
15
|
+
bucket: i
|
|
16
|
+
}];
|
|
17
|
+
}), w = (e) => ({
|
|
18
|
+
id: e.experienceId,
|
|
19
|
+
title: e.experienceName
|
|
20
|
+
}), T = (e) => "experience" in e ? w(e.experience) : void 0, E = (e) => {
|
|
21
|
+
if (e === !0) return [...h];
|
|
22
|
+
if (!e) return [];
|
|
23
|
+
let t = [], n = [];
|
|
24
|
+
for (let r of e) f(r) ? t.push(r) : n.push(r);
|
|
25
|
+
return n.length > 0 && console.warn(`[@picked/analytics] Ignoring unknown interaction event names: ${n.join(", ")}. Valid names are: ${h.join(", ")}.`), t;
|
|
26
|
+
}, D = ({ trackerOptions: f, enableDocumentListeners: h = !1, enableInteractionListeners: S = !1 }) => {
|
|
27
|
+
let D = E(S);
|
|
28
|
+
return {
|
|
29
|
+
name: "analytics",
|
|
30
|
+
setup: (S) => {
|
|
31
|
+
if (!v()) return;
|
|
32
|
+
let { projectId: E } = S, O = S.session.store.map((e) => e.id), k = S.session.store.map((e) => e.isUser, { skipVoid: !1 }), A = S.session.store.map((e) => e.identifiers ?? {}), j = b({
|
|
33
|
+
sessionId: O,
|
|
34
|
+
sessionIdentifiers: A,
|
|
35
|
+
sessionIsUser: k,
|
|
36
|
+
features: S.features.listStore
|
|
37
|
+
}, (e) => ({
|
|
38
|
+
projectId: E,
|
|
39
|
+
sessionId: e.sessionId,
|
|
40
|
+
identifiers: e.sessionIdentifiers,
|
|
41
|
+
isUser: e.sessionIsUser,
|
|
42
|
+
features: C(e.features)
|
|
43
|
+
})), M = (e, t) => ({
|
|
44
|
+
...e,
|
|
45
|
+
...t && { experience: w(t) }
|
|
46
|
+
}), N = (e) => {
|
|
47
|
+
let t = j.map((t) => M(t, e)), n;
|
|
48
|
+
return {
|
|
49
|
+
read: () => {
|
|
50
|
+
if (n === void 0) throw Error("[@picked/analytics] subscribeContext: store did not initialize synchronously");
|
|
51
|
+
return n;
|
|
52
|
+
},
|
|
53
|
+
unsubscribe: t.watch((e) => {
|
|
54
|
+
n = e;
|
|
55
|
+
})
|
|
56
|
+
};
|
|
25
57
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
identifiers: e.sessionIdentifiers,
|
|
35
|
-
isUser: e.sessionIsUser,
|
|
36
|
-
features: D(e.features),
|
|
37
|
-
...t && { experience: {
|
|
38
|
-
id: t.experienceId,
|
|
39
|
-
title: t.experienceName
|
|
40
|
-
} }
|
|
41
|
-
}), A = (e) => {
|
|
42
|
-
let { experience: t } = e || {}, n = _({
|
|
43
|
-
source: {
|
|
44
|
-
sessionId: w,
|
|
45
|
-
sessionIdentifiers: E,
|
|
46
|
-
sessionIsUser: T,
|
|
47
|
-
features: S.features.listStore
|
|
48
|
-
},
|
|
49
|
-
effect: (e) => k(e, t)
|
|
50
|
-
}), r = k({
|
|
51
|
-
sessionId: void 0,
|
|
52
|
-
sessionIdentifiers: void 0,
|
|
53
|
-
sessionIsUser: void 0,
|
|
54
|
-
features: []
|
|
55
|
-
}, t);
|
|
56
|
-
return n.doneData.watch((e) => {
|
|
57
|
-
r = e;
|
|
58
|
-
}), n(), function() {
|
|
59
|
-
return r;
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
x && m(A()), S.experienceInstances.listStore.watch((e) => {
|
|
63
|
-
e.forEach((e) => {
|
|
58
|
+
if (c({
|
|
59
|
+
projectId: E,
|
|
60
|
+
...f
|
|
61
|
+
}), h) {
|
|
62
|
+
let { read: e } = N();
|
|
63
|
+
g(e);
|
|
64
|
+
}
|
|
65
|
+
let P = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map(), I = (e) => {
|
|
64
66
|
let t = e.target;
|
|
65
|
-
|
|
67
|
+
if (!t?.shadowRoot) return !1;
|
|
68
|
+
let { read: n, unsubscribe: r } = N(e);
|
|
69
|
+
return p(n, t.shadowRoot, D), P.set(e, r), !0;
|
|
70
|
+
};
|
|
71
|
+
S.experienceInstances.listStore.watch((e) => {
|
|
72
|
+
let t = new Set(e);
|
|
73
|
+
for (let [e, n] of P) t.has(e) || (n(), P.delete(e));
|
|
74
|
+
for (let [e, n] of F) t.has(e) || (n(), F.delete(e));
|
|
75
|
+
for (let t of e) {
|
|
76
|
+
if (P.has(t) || F.has(t) || I(t)) continue;
|
|
77
|
+
let e = t.mountFx.done.watch(() => {
|
|
78
|
+
e(), F.delete(t), I(t);
|
|
79
|
+
});
|
|
80
|
+
F.set(t, e);
|
|
81
|
+
}
|
|
66
82
|
});
|
|
67
|
-
|
|
68
|
-
function j(e) {
|
|
69
|
-
return _({
|
|
83
|
+
let L = (e) => y({
|
|
70
84
|
source: {
|
|
71
85
|
fields: S.fields.listStore,
|
|
72
86
|
responses: S.responses.listStore,
|
|
73
|
-
sessionId:
|
|
74
|
-
sessionIdentifiers:
|
|
75
|
-
sessionIsUser:
|
|
87
|
+
sessionId: O,
|
|
88
|
+
sessionIdentifiers: A,
|
|
89
|
+
sessionIsUser: k,
|
|
76
90
|
features: S.features.listStore
|
|
77
91
|
},
|
|
78
92
|
effect: async ({ fields: t, responses: n, sessionId: r, sessionIdentifiers: i, sessionIsUser: a, features: o }, s) => e({
|
|
79
|
-
projectId:
|
|
93
|
+
projectId: E,
|
|
80
94
|
sessionId: r,
|
|
81
|
-
experience:
|
|
95
|
+
experience: T(s),
|
|
82
96
|
step: "step" in s ? s.step : void 0,
|
|
83
97
|
form: "form" in s ? s.form : void 0,
|
|
84
98
|
exception: "exception" in s ? s.exception.reason[0] : void 0,
|
|
85
99
|
fields: t,
|
|
86
100
|
responses: n,
|
|
87
|
-
features:
|
|
101
|
+
features: C(o),
|
|
88
102
|
isUser: a,
|
|
89
103
|
identifiers: i
|
|
90
104
|
})
|
|
91
105
|
});
|
|
106
|
+
x({
|
|
107
|
+
source: S.eventBus,
|
|
108
|
+
match: (e) => e.type,
|
|
109
|
+
cases: {
|
|
110
|
+
load: L(r),
|
|
111
|
+
initialize: L(m),
|
|
112
|
+
experience_initialize: L(s),
|
|
113
|
+
experience_open: L(t),
|
|
114
|
+
experience_close: L(n),
|
|
115
|
+
field_validation_error: L(_),
|
|
116
|
+
step_enter: L(o),
|
|
117
|
+
step_submit: L(e),
|
|
118
|
+
step_submit_success: L(i),
|
|
119
|
+
form_submit: L(l),
|
|
120
|
+
form_submit_success: L(d),
|
|
121
|
+
form_submit_error: L(u),
|
|
122
|
+
feature_decide: L(a)
|
|
123
|
+
}
|
|
124
|
+
});
|
|
92
125
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
match: (e) => e.type,
|
|
96
|
-
cases: {
|
|
97
|
-
load: j(s),
|
|
98
|
-
initialize: j(e),
|
|
99
|
-
experience_initialize: j(t),
|
|
100
|
-
experience_open: j(a),
|
|
101
|
-
experience_close: j(r),
|
|
102
|
-
field_validation_error: j(c),
|
|
103
|
-
step_enter: j(h),
|
|
104
|
-
step_submit: j(i),
|
|
105
|
-
step_submit_success: j(n),
|
|
106
|
-
form_submit: j(l),
|
|
107
|
-
form_submit_success: j(f),
|
|
108
|
-
form_submit_error: j(u),
|
|
109
|
-
feature_decide: j(o)
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
});
|
|
126
|
+
};
|
|
127
|
+
};
|
|
114
128
|
//#endregion
|
|
115
|
-
export {
|
|
129
|
+
export { h as INTERACTION_EVENT_NAMES, D as analyticsPlugin, f as isInteractionEventName };
|