@xyo-network/react-user-events 7.0.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Mixpanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,qBAAa,cAAc,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Mixpanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,qBAAa,cAAc,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW;IACjE,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;gBAEhB,QAAQ,EAAE,QAAQ;IAI9B,MAAM,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,MAAM;IAIpC,QAAQ,CAAC,CAAC,SAAS,KAAK;IAIxB,QAAQ,CAAC,CAAC,SAAS,KAAK;IAIxB,SAAS,CAAC,CAAC,SAAS,KAAK;IAIzB,WAAW,CAAC,CAAC,SAAS,KAAK;CAG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MixpanelEventHandler.d.ts","sourceRoot":"","sources":["../../src/MixpanelEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAE7E,qBAAa,oBAAoB,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAE,YAAW,wBAAwB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MixpanelEventHandler.d.ts","sourceRoot":"","sources":["../../src/MixpanelEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAE7E,qBAAa,oBAAoB,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAE,YAAW,wBAAwB,CAAC,CAAC,CAAC;IACxH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC5B,SAAS,CAAC,cAAc,EAAE,cAAc,CAAA;gBAE5B,QAAQ,EAAE,QAAQ;IAM9B,IAAa,MAAM,IACa,MAAM,CAAC,CAAC,CAAC,CACxC;IAEc,kBAAkB,CAAC,MAAM,EAAE,wBAAwB;CAGnE"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/hooks/useXyoUserEvents.ts
|
|
5
2
|
import { useUserEvents } from "@xylabs/react-pixel";
|
|
6
|
-
var useXyoUserEvents =
|
|
3
|
+
var useXyoUserEvents = () => {
|
|
7
4
|
return useUserEvents(true);
|
|
8
|
-
}
|
|
5
|
+
};
|
|
9
6
|
|
|
10
7
|
// src/XyoEventHandler.ts
|
|
11
8
|
import { UserEventHandler } from "@xylabs/pixel";
|
|
@@ -13,9 +10,6 @@ import { UserEventHandler } from "@xylabs/pixel";
|
|
|
13
10
|
// src/Xy/index.ts
|
|
14
11
|
import { XyCustomEvent } from "@xylabs/react-pixel";
|
|
15
12
|
var XyEvents = class {
|
|
16
|
-
static {
|
|
17
|
-
__name(this, "XyEvents");
|
|
18
|
-
}
|
|
19
13
|
custom(name) {
|
|
20
14
|
return new XyCustomEvent(name);
|
|
21
15
|
}
|
|
@@ -35,9 +29,6 @@ var XyEvents = class {
|
|
|
35
29
|
|
|
36
30
|
// src/XyoEventHandler.ts
|
|
37
31
|
var XyoEventHandler = class extends UserEventHandler {
|
|
38
|
-
static {
|
|
39
|
-
__name(this, "XyoEventHandler");
|
|
40
|
-
}
|
|
41
32
|
_events = new XyEvents();
|
|
42
33
|
get events() {
|
|
43
34
|
return this._events;
|
|
@@ -92,9 +83,6 @@ import { UserEventHandler as UserEventHandler2 } from "@xylabs/pixel";
|
|
|
92
83
|
// src/Facebook/index.ts
|
|
93
84
|
import { FacebookCustomEvent, FacebookStandardEvents } from "@xylabs/react-pixel";
|
|
94
85
|
var FacebookEvents = class extends FacebookStandardEvents {
|
|
95
|
-
static {
|
|
96
|
-
__name(this, "FacebookEvents");
|
|
97
|
-
}
|
|
98
86
|
custom(name) {
|
|
99
87
|
return new FacebookCustomEvent(name);
|
|
100
88
|
}
|
|
@@ -105,9 +93,6 @@ var FacebookEvents = class extends FacebookStandardEvents {
|
|
|
105
93
|
|
|
106
94
|
// src/FacebookEventHandler.ts
|
|
107
95
|
var FacebookEventHandler = class extends XyoEventHandler {
|
|
108
|
-
static {
|
|
109
|
-
__name(this, "FacebookEventHandler");
|
|
110
|
-
}
|
|
111
96
|
facebookEvents = new FacebookEvents();
|
|
112
97
|
get events() {
|
|
113
98
|
return this.facebookEvents;
|
|
@@ -123,9 +108,7 @@ var FacebookEventHandler = class extends XyoEventHandler {
|
|
|
123
108
|
}
|
|
124
109
|
],
|
|
125
110
|
content_name: fields.name,
|
|
126
|
-
content_ids: [
|
|
127
|
-
fields.id
|
|
128
|
-
],
|
|
111
|
+
content_ids: [fields.id],
|
|
129
112
|
content_type: "product",
|
|
130
113
|
num_items: fields.quantity ?? 1,
|
|
131
114
|
currency: fields.currency ?? "USD",
|
|
@@ -134,18 +117,13 @@ var FacebookEventHandler = class extends XyoEventHandler {
|
|
|
134
117
|
await this.facebookEvents.purchase().send(facebookFields);
|
|
135
118
|
}
|
|
136
119
|
async xyoNewsletterSignup(fields) {
|
|
137
|
-
await this.facebookEvents.lead().send({
|
|
138
|
-
content_category: fields.name
|
|
139
|
-
});
|
|
120
|
+
await this.facebookEvents.lead().send({ content_category: fields.name });
|
|
140
121
|
}
|
|
141
122
|
};
|
|
142
123
|
|
|
143
124
|
// src/Google/index.ts
|
|
144
125
|
import { GoogleCustomEvent, GoogleStandardEvents } from "@xylabs/react-pixel";
|
|
145
126
|
var GoogleEvents = class extends GoogleStandardEvents {
|
|
146
|
-
static {
|
|
147
|
-
__name(this, "GoogleEvents");
|
|
148
|
-
}
|
|
149
127
|
custom(name) {
|
|
150
128
|
return new GoogleCustomEvent(name);
|
|
151
129
|
}
|
|
@@ -162,9 +140,6 @@ var GoogleEvents = class extends GoogleStandardEvents {
|
|
|
162
140
|
|
|
163
141
|
// src/GoogleEventHandler.ts
|
|
164
142
|
var GoogleEventHandler = class extends XyoEventHandler {
|
|
165
|
-
static {
|
|
166
|
-
__name(this, "GoogleEventHandler");
|
|
167
|
-
}
|
|
168
143
|
googleEvents = new GoogleEvents();
|
|
169
144
|
get events() {
|
|
170
145
|
return this.googleEvents;
|
|
@@ -184,9 +159,6 @@ var GoogleEventHandler = class extends XyoEventHandler {
|
|
|
184
159
|
// src/Mixpanel/index.ts
|
|
185
160
|
import { MixpanelCustomEvent, MixpanelPageViewEvent } from "@xylabs/react-pixel";
|
|
186
161
|
var MixpanelEvents = class {
|
|
187
|
-
static {
|
|
188
|
-
__name(this, "MixpanelEvents");
|
|
189
|
-
}
|
|
190
162
|
mixpanel;
|
|
191
163
|
constructor(mixpanel) {
|
|
192
164
|
this.mixpanel = mixpanel;
|
|
@@ -210,13 +182,11 @@ var MixpanelEvents = class {
|
|
|
210
182
|
|
|
211
183
|
// src/MixpanelEventHandler.ts
|
|
212
184
|
var MixpanelEventHandler = class extends XyoEventHandler {
|
|
213
|
-
static {
|
|
214
|
-
__name(this, "MixpanelEventHandler");
|
|
215
|
-
}
|
|
216
185
|
mixpanel;
|
|
217
186
|
mixpanelEvents;
|
|
218
187
|
constructor(mixpanel) {
|
|
219
|
-
super()
|
|
188
|
+
super();
|
|
189
|
+
this.mixpanel = mixpanel;
|
|
220
190
|
this.mixpanelEvents = new MixpanelEvents(mixpanel);
|
|
221
191
|
}
|
|
222
192
|
get events() {
|
|
@@ -229,27 +199,16 @@ var MixpanelEventHandler = class extends XyoEventHandler {
|
|
|
229
199
|
|
|
230
200
|
// src/XyoUserEvents.ts
|
|
231
201
|
var XyoUserEvents = class _XyoUserEvents extends UserEventHandler2 {
|
|
232
|
-
static {
|
|
233
|
-
__name(this, "XyoUserEvents");
|
|
234
|
-
}
|
|
235
202
|
// eslint-disable-next-line sonarjs/public-static-readonly
|
|
236
203
|
static instance;
|
|
237
204
|
handlers;
|
|
238
205
|
constructor(handlers) {
|
|
239
206
|
super();
|
|
240
|
-
this.handlers = handlers ?? [
|
|
241
|
-
new XyoEventHandler(),
|
|
242
|
-
new FacebookEventHandler(),
|
|
243
|
-
new GoogleEventHandler()
|
|
244
|
-
];
|
|
207
|
+
this.handlers = handlers ?? [new XyoEventHandler(), new FacebookEventHandler(), new GoogleEventHandler()];
|
|
245
208
|
}
|
|
246
209
|
static get(mixpanel) {
|
|
247
210
|
this.instance = this.instance ?? (() => {
|
|
248
|
-
const handlers = [
|
|
249
|
-
new XyoEventHandler(),
|
|
250
|
-
new FacebookEventHandler(),
|
|
251
|
-
new GoogleEventHandler()
|
|
252
|
-
];
|
|
211
|
+
const handlers = [new XyoEventHandler(), new FacebookEventHandler(), new GoogleEventHandler()];
|
|
253
212
|
if (mixpanel) handlers.push(new MixpanelEventHandler(mixpanel));
|
|
254
213
|
return new _XyoUserEvents(handlers);
|
|
255
214
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useXyoUserEvents.ts","../../src/XyoEventHandler.ts","../../src/Xy/index.ts","../../src/XyoUserEvents.ts","../../src/Facebook/index.ts","../../src/FacebookEventHandler.ts","../../src/Google/index.ts","../../src/GoogleEventHandler.ts","../../src/Mixpanel/index.ts","../../src/MixpanelEventHandler.ts"],"sourcesContent":["import { useUserEvents } from '@xylabs/react-pixel'\n\nimport type { XyoUserEvents } from '../XyoUserEvents.ts'\n\nexport const useXyoUserEvents = () => {\n return useUserEvents(true) as XyoUserEvents\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n FunnelStartedFields, PurchaseFields, TestStartedFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { UserEventHandler } from '@xylabs/pixel'\nimport type { Promisable } from '@xylabs/promise'\n\nimport type {\n XnsEstimateAttemptedFields, XnsEstimateFailureFields, XnsEstimateSuccessFields,\n} from './XnsEstimateEventHandlerInterface.ts'\nimport type {\n XnsPurchaseAttemptedFields, XnsPurchaseFailureFields, XnsPurchaseSuccessFields,\n} from './XnsPurchaseEventHandlerInterface.js'\nimport type {\n XnsReservationAttemptedFields, XnsReservationFailureFields, XnsReservationSuccessFields,\n} from './XnsReservationEventHandlerInterface.ts'\nimport { XyEvents } from './Xy/index.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport interface Event<TData extends EmptyObject = EmptyObject> {\n send<T extends TData>(fields: T, eventId?: string): Promisable<void>\n}\n\nexport interface Events<TData extends EmptyObject = EmptyObject> {\n custom<T extends TData>(name: string): Event<T>\n purchase<T extends TData>(): Event<PurchaseFields | T>\n userClick<T extends TData>(): Event<UserClickFields | T>\n viewContent<T extends TData>(): Event<ViewContentFields | T>\n}\n\nexport class XyoEventHandler<T extends EmptyObject> extends UserEventHandler<T> implements XyoEventHandlerInterface<T> {\n private _events = new XyEvents()\n\n get events(): Events<T> {\n return this._events\n }\n\n funnelStarted(_fields: T | FunnelStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n testStarted(_fields: T | TestStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n async userClick(fields: UserClickFields) {\n await this.events.userClick().send(fields)\n }\n\n async viewContent(fields: ViewContentFields) {\n await this.events.viewContent().send(fields)\n }\n\n async xnsEstimateAttempted(fields: XnsEstimateAttemptedFields | T) {\n await this.events.custom('XnsEstimateAttempted').send(fields as T)\n }\n\n async xnsEstimateFailure(fields: XnsEstimateFailureFields | T) {\n await this.events.custom('XnsEstimateFailure').send(fields as T)\n }\n\n async xnsEstimateSuccess(fields: XnsEstimateSuccessFields | T) {\n await this.events.custom('XnsEstimateSuccess').send(fields as T)\n }\n\n async xnsPurchaseAttempted(fields: XnsPurchaseAttemptedFields | T) {\n await this.events.custom('XnsPurchaseAttempted').send(fields as T)\n }\n\n async xnsPurchaseFailure(fields: XnsPurchaseFailureFields | T) {\n await this.events.custom('XnsPurchaseFailure').send(fields as T)\n }\n\n async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n await this.events.purchase().send(fields)\n }\n\n async xnsReservationAttempted(fields: XnsReservationAttemptedFields | T) {\n await this.events.custom('XnsReservationAttempted').send(fields as T)\n }\n\n async xnsReservationFailure(fields: XnsReservationFailureFields | T) {\n await this.events.custom('XnsReservationFailure').send(fields as T)\n }\n\n async xnsReservationSuccess(fields: XnsReservationSuccessFields | T) {\n await this.events.custom('XnsReservationSuccess').send(fields as T)\n }\n\n async xyoNewsletterSignup(fields: XyoNewsletterSignupFields | T) {\n await this.events.custom('XyoNewsletterSignup').send(fields as T)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n PurchaseFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { XyCustomEvent } from '@xylabs/react-pixel'\n\nexport class XyEvents<T extends EmptyObject> {\n custom(name: string) {\n return new XyCustomEvent<PurchaseFields | T>(name)\n }\n\n pageview() {\n return new XyCustomEvent<ViewContentFields | T>('ViewContent')\n }\n\n purchase() {\n return new XyCustomEvent<PurchaseFields | T>('Purchase')\n }\n\n userClick() {\n return new XyCustomEvent<UserClickFields | T>('UserClick')\n }\n\n viewContent() {\n return new XyCustomEvent<ViewContentFields | T>('ViewContent')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n FunnelStartedFields, TestStartedFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { UserEventHandler } from '@xylabs/pixel'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nimport { FacebookEventHandler } from './FacebookEventHandler.ts'\nimport { GoogleEventHandler } from './GoogleEventHandler.ts'\nimport { MixpanelEventHandler } from './MixpanelEventHandler.ts'\nimport type {\n XnsEstimateAttemptedFields, XnsEstimateFailureFields, XnsEstimateSuccessFields,\n} from './XnsEstimateEventHandlerInterface.ts'\nimport type {\n XnsPurchaseAttemptedFields, XnsPurchaseFailureFields, XnsPurchaseSuccessFields,\n} from './XnsPurchaseEventHandlerInterface.ts'\nimport type {\n XnsReservationAttemptedFields, XnsReservationFailureFields, XnsReservationSuccessFields,\n} from './XnsReservationEventHandlerInterface.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport class XyoUserEvents<TData extends EmptyObject = EmptyObject> extends UserEventHandler<TData> {\n // eslint-disable-next-line sonarjs/public-static-readonly\n static instance: XyoUserEvents<EmptyObject>\n\n protected handlers: XyoEventHandlerInterface<TData>[]\n\n private constructor(handlers?: XyoEventHandlerInterface<TData>[]) {\n super()\n this.handlers = handlers ?? [new XyoEventHandler<TData>(), new FacebookEventHandler<TData>(), new GoogleEventHandler<TData>()]\n }\n\n static get<T extends EmptyObject = EmptyObject>(mixpanel?: Mixpanel) {\n this.instance = this.instance ?? (() => {\n const handlers = [new XyoEventHandler<T>(), new FacebookEventHandler<T>(), new GoogleEventHandler<T>()]\n if (mixpanel) handlers.push(new MixpanelEventHandler(mixpanel))\n return new XyoUserEvents<T>(handlers)\n })()\n return this.instance\n }\n\n funnelStarted<T extends TData>(_fields: T | FunnelStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n testStarted<T extends TData>(_fields: T | TestStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n async userClick<T extends TData>(fields: T | UserClickFields) {\n await Promise.all(this.handlers.map(handler => handler.userClick<T>(fields)))\n }\n\n async viewContent<T extends TData>(fields: T | ViewContentFields) {\n await Promise.all(this.handlers.map(handler => handler.viewContent(fields)))\n }\n\n async xnsEstimateAttempted<T extends TData>(fields: T | XnsEstimateAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateAttempted(fields)))\n }\n\n async xnsEstimateFailure<T extends TData>(fields: T | XnsEstimateFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateFailure(fields)))\n }\n\n async xnsEstimateSuccess<T extends TData>(fields: T | XnsEstimateSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateSuccess(fields)))\n }\n\n async xnsPurchaseAttempted<T extends TData>(fields: T | XnsPurchaseAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseAttempted(fields)))\n }\n\n async xnsPurchaseFailure<T extends TData>(fields: T | XnsPurchaseFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseFailure(fields)))\n }\n\n async xnsPurchaseSuccess<T extends TData>(fields: T | XnsPurchaseSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseSuccess(fields)))\n }\n\n async xnsReservationAttempted<T extends TData>(fields: T | XnsReservationAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationAttempted(fields)))\n }\n\n async xnsReservationFailure<T extends TData>(fields: T | XnsReservationFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationFailure(fields)))\n }\n\n async xnsReservationSuccess<T extends TData>(fields: T | XnsReservationSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationSuccess(fields)))\n }\n\n async xyoNewsletterSignup<T extends TData>(fields: T | XyoNewsletterSignupFields) {\n await Promise.all(this.handlers.map(handler => handler.xyoNewsletterSignup(fields)))\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport { FacebookCustomEvent, FacebookStandardEvents } from '@xylabs/react-pixel'\n\nexport interface FacebookUserClick extends Record<string, unknown> {\n elementName: string\n elementType: string\n}\n\nexport class FacebookEvents<T extends EmptyObject> extends FacebookStandardEvents<T> {\n custom<T extends EmptyObject>(name: string) {\n return new FacebookCustomEvent<T>(name)\n }\n\n userClick() {\n return new FacebookCustomEvent<FacebookUserClick | T>('UserClick')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { FacebookPurchase } from '@xylabs/react-pixel'\n\nimport type { CustomProperties } from './CustomProperties.ts'\nimport { FacebookEvents } from './Facebook/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport class FacebookEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected facebookEvents = new FacebookEvents<CustomProperties>()\n\n override get events() {\n return this.facebookEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n const facebookFields: FacebookPurchase = {\n contents: [\n {\n id: fields.id,\n currency: fields.currency ?? 'USD',\n quantity: fields.quantity ?? 1,\n price: fields.price,\n },\n ],\n content_name: fields.name,\n content_ids: [fields.id],\n content_type: 'product',\n num_items: fields.quantity ?? 1,\n currency: fields.currency ?? 'USD',\n value: fields.value,\n }\n await this.facebookEvents.purchase().send(facebookFields)\n }\n\n override async xyoNewsletterSignup(fields: XyoNewsletterSignupFields) {\n await this.facebookEvents.lead().send({ content_category: fields.name })\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n PurchaseFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { GoogleCustomEvent, GoogleStandardEvents } from '@xylabs/react-pixel'\n\nexport interface GoogleViewContent extends Record<string, unknown> {\n name: string\n path: string\n}\n\nexport interface GoogleUserClick extends Record<string, unknown> {\n elementName: string\n elementType: string\n}\n\nexport class GoogleEvents<TData extends EmptyObject = EmptyObject> extends GoogleStandardEvents<TData> {\n custom<T extends TData>(name: string) {\n return new GoogleCustomEvent<PurchaseFields | T>(name)\n }\n\n pageView<T extends TData>() {\n return new GoogleCustomEvent<ViewContentFields | T>('PageView')\n }\n\n userClick<T extends TData>() {\n return new GoogleCustomEvent<UserClickFields | T>('UserClick')\n }\n\n viewContent<T extends TData>() {\n return new GoogleCustomEvent<ViewContentFields | T>('ViewContent')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { GoogleCartProperties, GooglePurchaseProperties } from '@xylabs/react-pixel'\n\nimport type { CustomProperties } from './CustomProperties.ts'\nimport { GoogleEvents } from './Google/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface } from './XyoEventHandlerInterface.ts'\n\nexport class GoogleEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected googleEvents = new GoogleEvents<CustomProperties | GoogleCartProperties>()\n\n override get events() {\n return this.googleEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n const googleFields: GooglePurchaseProperties = {\n item_name: fields.name,\n id: fields.id,\n quantity: fields.quantity ?? 1,\n currency: fields.currency ?? 'USD',\n value: fields.value,\n }\n await this.googleEvents.purchase().send(googleFields)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport { MixpanelCustomEvent, MixpanelPageViewEvent } from '@xylabs/react-pixel'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nexport class MixpanelEvents<TData extends EmptyObject = EmptyObject> {\n constructor(protected mixpanel: Mixpanel) {}\n custom<T extends TData>(name: string) {\n return new MixpanelCustomEvent<T>(name, this.mixpanel)\n }\n\n pageView<T extends TData>() {\n return new MixpanelPageViewEvent<T>(this.mixpanel)\n }\n\n purchase<T extends TData>() {\n return new MixpanelCustomEvent<T>('Purchase', this.mixpanel)\n }\n\n userClick<T extends TData>() {\n return new MixpanelCustomEvent<T>('UserClick', this.mixpanel)\n }\n\n viewContent<T extends TData>() {\n return new MixpanelCustomEvent<T>('ViewContent', this.mixpanel)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nimport { MixpanelEvents } from './Mixpanel/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface } from './XyoEventHandlerInterface.ts'\n\nexport class MixpanelEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected mixpanelEvents: MixpanelEvents\n\n constructor(protected mixpanel: Mixpanel) {\n super()\n this.mixpanelEvents = new MixpanelEvents(mixpanel)\n }\n\n override get events() {\n return this.mixpanelEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n return await Promise.resolve(this.mixpanel.track('Purchase', fields))\n }\n}\n"],"mappings":"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","names":["useUserEvents","useXyoUserEvents","useUserEvents","UserEventHandler","XyCustomEvent","XyEvents","custom","name","XyCustomEvent","pageview","purchase","userClick","viewContent","XyoEventHandler","UserEventHandler","_events","XyEvents","events","funnelStarted","_fields","Error","testStarted","userClick","fields","send","viewContent","xnsEstimateAttempted","custom","xnsEstimateFailure","xnsEstimateSuccess","xnsPurchaseAttempted","xnsPurchaseFailure","xnsPurchaseSuccess","purchase","xnsReservationAttempted","xnsReservationFailure","xnsReservationSuccess","xyoNewsletterSignup","UserEventHandler","FacebookCustomEvent","FacebookStandardEvents","FacebookEvents","FacebookStandardEvents","custom","name","FacebookCustomEvent","userClick","FacebookEventHandler","XyoEventHandler","facebookEvents","FacebookEvents","events","xnsPurchaseSuccess","fields","facebookFields","contents","id","currency","quantity","price","content_name","name","content_ids","content_type","num_items","value","purchase","send","xyoNewsletterSignup","lead","content_category","GoogleCustomEvent","GoogleStandardEvents","GoogleEvents","GoogleStandardEvents","custom","name","GoogleCustomEvent","pageView","userClick","viewContent","GoogleEventHandler","XyoEventHandler","googleEvents","GoogleEvents","events","xnsPurchaseSuccess","fields","googleFields","item_name","name","id","quantity","currency","value","purchase","send","MixpanelCustomEvent","MixpanelPageViewEvent","MixpanelEvents","mixpanel","custom","name","MixpanelCustomEvent","pageView","MixpanelPageViewEvent","purchase","userClick","viewContent","MixpanelEventHandler","XyoEventHandler","mixpanelEvents","mixpanel","MixpanelEvents","events","xnsPurchaseSuccess","fields","Promise","resolve","track","XyoUserEvents","UserEventHandler","instance","handlers","XyoEventHandler","FacebookEventHandler","GoogleEventHandler","get","mixpanel","push","MixpanelEventHandler","funnelStarted","_fields","Error","testStarted","userClick","fields","Promise","all","map","handler","viewContent","xnsEstimateAttempted","xnsEstimateFailure","xnsEstimateSuccess","xnsPurchaseAttempted","xnsPurchaseFailure","xnsPurchaseSuccess","xnsReservationAttempted","xnsReservationFailure","xnsReservationSuccess","xyoNewsletterSignup"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useXyoUserEvents.ts","../../src/XyoEventHandler.ts","../../src/Xy/index.ts","../../src/XyoUserEvents.ts","../../src/Facebook/index.ts","../../src/FacebookEventHandler.ts","../../src/Google/index.ts","../../src/GoogleEventHandler.ts","../../src/Mixpanel/index.ts","../../src/MixpanelEventHandler.ts"],"sourcesContent":["import { useUserEvents } from '@xylabs/react-pixel'\n\nimport type { XyoUserEvents } from '../XyoUserEvents.ts'\n\nexport const useXyoUserEvents = () => {\n return useUserEvents(true) as XyoUserEvents\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n FunnelStartedFields, PurchaseFields, TestStartedFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { UserEventHandler } from '@xylabs/pixel'\nimport type { Promisable } from '@xylabs/promise'\n\nimport type {\n XnsEstimateAttemptedFields, XnsEstimateFailureFields, XnsEstimateSuccessFields,\n} from './XnsEstimateEventHandlerInterface.ts'\nimport type {\n XnsPurchaseAttemptedFields, XnsPurchaseFailureFields, XnsPurchaseSuccessFields,\n} from './XnsPurchaseEventHandlerInterface.js'\nimport type {\n XnsReservationAttemptedFields, XnsReservationFailureFields, XnsReservationSuccessFields,\n} from './XnsReservationEventHandlerInterface.ts'\nimport { XyEvents } from './Xy/index.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport interface Event<TData extends EmptyObject = EmptyObject> {\n send<T extends TData>(fields: T, eventId?: string): Promisable<void>\n}\n\nexport interface Events<TData extends EmptyObject = EmptyObject> {\n custom<T extends TData>(name: string): Event<T>\n purchase<T extends TData>(): Event<PurchaseFields | T>\n userClick<T extends TData>(): Event<UserClickFields | T>\n viewContent<T extends TData>(): Event<ViewContentFields | T>\n}\n\nexport class XyoEventHandler<T extends EmptyObject> extends UserEventHandler<T> implements XyoEventHandlerInterface<T> {\n private _events = new XyEvents()\n\n get events(): Events<T> {\n return this._events\n }\n\n funnelStarted(_fields: T | FunnelStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n testStarted(_fields: T | TestStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n async userClick(fields: UserClickFields) {\n await this.events.userClick().send(fields)\n }\n\n async viewContent(fields: ViewContentFields) {\n await this.events.viewContent().send(fields)\n }\n\n async xnsEstimateAttempted(fields: XnsEstimateAttemptedFields | T) {\n await this.events.custom('XnsEstimateAttempted').send(fields as T)\n }\n\n async xnsEstimateFailure(fields: XnsEstimateFailureFields | T) {\n await this.events.custom('XnsEstimateFailure').send(fields as T)\n }\n\n async xnsEstimateSuccess(fields: XnsEstimateSuccessFields | T) {\n await this.events.custom('XnsEstimateSuccess').send(fields as T)\n }\n\n async xnsPurchaseAttempted(fields: XnsPurchaseAttemptedFields | T) {\n await this.events.custom('XnsPurchaseAttempted').send(fields as T)\n }\n\n async xnsPurchaseFailure(fields: XnsPurchaseFailureFields | T) {\n await this.events.custom('XnsPurchaseFailure').send(fields as T)\n }\n\n async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n await this.events.purchase().send(fields)\n }\n\n async xnsReservationAttempted(fields: XnsReservationAttemptedFields | T) {\n await this.events.custom('XnsReservationAttempted').send(fields as T)\n }\n\n async xnsReservationFailure(fields: XnsReservationFailureFields | T) {\n await this.events.custom('XnsReservationFailure').send(fields as T)\n }\n\n async xnsReservationSuccess(fields: XnsReservationSuccessFields | T) {\n await this.events.custom('XnsReservationSuccess').send(fields as T)\n }\n\n async xyoNewsletterSignup(fields: XyoNewsletterSignupFields | T) {\n await this.events.custom('XyoNewsletterSignup').send(fields as T)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n PurchaseFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { XyCustomEvent } from '@xylabs/react-pixel'\n\nexport class XyEvents<T extends EmptyObject> {\n custom(name: string) {\n return new XyCustomEvent<PurchaseFields | T>(name)\n }\n\n pageview() {\n return new XyCustomEvent<ViewContentFields | T>('ViewContent')\n }\n\n purchase() {\n return new XyCustomEvent<PurchaseFields | T>('Purchase')\n }\n\n userClick() {\n return new XyCustomEvent<UserClickFields | T>('UserClick')\n }\n\n viewContent() {\n return new XyCustomEvent<ViewContentFields | T>('ViewContent')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n FunnelStartedFields, TestStartedFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { UserEventHandler } from '@xylabs/pixel'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nimport { FacebookEventHandler } from './FacebookEventHandler.ts'\nimport { GoogleEventHandler } from './GoogleEventHandler.ts'\nimport { MixpanelEventHandler } from './MixpanelEventHandler.ts'\nimport type {\n XnsEstimateAttemptedFields, XnsEstimateFailureFields, XnsEstimateSuccessFields,\n} from './XnsEstimateEventHandlerInterface.ts'\nimport type {\n XnsPurchaseAttemptedFields, XnsPurchaseFailureFields, XnsPurchaseSuccessFields,\n} from './XnsPurchaseEventHandlerInterface.ts'\nimport type {\n XnsReservationAttemptedFields, XnsReservationFailureFields, XnsReservationSuccessFields,\n} from './XnsReservationEventHandlerInterface.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport class XyoUserEvents<TData extends EmptyObject = EmptyObject> extends UserEventHandler<TData> {\n // eslint-disable-next-line sonarjs/public-static-readonly\n static instance: XyoUserEvents<EmptyObject>\n\n protected handlers: XyoEventHandlerInterface<TData>[]\n\n private constructor(handlers?: XyoEventHandlerInterface<TData>[]) {\n super()\n this.handlers = handlers ?? [new XyoEventHandler<TData>(), new FacebookEventHandler<TData>(), new GoogleEventHandler<TData>()]\n }\n\n static get<T extends EmptyObject = EmptyObject>(mixpanel?: Mixpanel) {\n this.instance = this.instance ?? (() => {\n const handlers = [new XyoEventHandler<T>(), new FacebookEventHandler<T>(), new GoogleEventHandler<T>()]\n if (mixpanel) handlers.push(new MixpanelEventHandler(mixpanel))\n return new XyoUserEvents<T>(handlers)\n })()\n return this.instance\n }\n\n funnelStarted<T extends TData>(_fields: T | FunnelStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n testStarted<T extends TData>(_fields: T | TestStartedFields): Promise<void> {\n throw new Error('Method not implemented.')\n }\n\n async userClick<T extends TData>(fields: T | UserClickFields) {\n await Promise.all(this.handlers.map(handler => handler.userClick<T>(fields)))\n }\n\n async viewContent<T extends TData>(fields: T | ViewContentFields) {\n await Promise.all(this.handlers.map(handler => handler.viewContent(fields)))\n }\n\n async xnsEstimateAttempted<T extends TData>(fields: T | XnsEstimateAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateAttempted(fields)))\n }\n\n async xnsEstimateFailure<T extends TData>(fields: T | XnsEstimateFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateFailure(fields)))\n }\n\n async xnsEstimateSuccess<T extends TData>(fields: T | XnsEstimateSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsEstimateSuccess(fields)))\n }\n\n async xnsPurchaseAttempted<T extends TData>(fields: T | XnsPurchaseAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseAttempted(fields)))\n }\n\n async xnsPurchaseFailure<T extends TData>(fields: T | XnsPurchaseFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseFailure(fields)))\n }\n\n async xnsPurchaseSuccess<T extends TData>(fields: T | XnsPurchaseSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsPurchaseSuccess(fields)))\n }\n\n async xnsReservationAttempted<T extends TData>(fields: T | XnsReservationAttemptedFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationAttempted(fields)))\n }\n\n async xnsReservationFailure<T extends TData>(fields: T | XnsReservationFailureFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationFailure(fields)))\n }\n\n async xnsReservationSuccess<T extends TData>(fields: T | XnsReservationSuccessFields) {\n await Promise.all(this.handlers.map(handler => handler.xnsReservationSuccess(fields)))\n }\n\n async xyoNewsletterSignup<T extends TData>(fields: T | XyoNewsletterSignupFields) {\n await Promise.all(this.handlers.map(handler => handler.xyoNewsletterSignup(fields)))\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport { FacebookCustomEvent, FacebookStandardEvents } from '@xylabs/react-pixel'\n\nexport interface FacebookUserClick extends Record<string, unknown> {\n elementName: string\n elementType: string\n}\n\nexport class FacebookEvents<T extends EmptyObject> extends FacebookStandardEvents<T> {\n custom<T extends EmptyObject>(name: string) {\n return new FacebookCustomEvent<T>(name)\n }\n\n userClick() {\n return new FacebookCustomEvent<FacebookUserClick | T>('UserClick')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { FacebookPurchase } from '@xylabs/react-pixel'\n\nimport type { CustomProperties } from './CustomProperties.ts'\nimport { FacebookEvents } from './Facebook/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface, XyoNewsletterSignupFields } from './XyoEventHandlerInterface.ts'\n\nexport class FacebookEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected facebookEvents = new FacebookEvents<CustomProperties>()\n\n override get events() {\n return this.facebookEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n const facebookFields: FacebookPurchase = {\n contents: [\n {\n id: fields.id,\n currency: fields.currency ?? 'USD',\n quantity: fields.quantity ?? 1,\n price: fields.price,\n },\n ],\n content_name: fields.name,\n content_ids: [fields.id],\n content_type: 'product',\n num_items: fields.quantity ?? 1,\n currency: fields.currency ?? 'USD',\n value: fields.value,\n }\n await this.facebookEvents.purchase().send(facebookFields)\n }\n\n override async xyoNewsletterSignup(fields: XyoNewsletterSignupFields) {\n await this.facebookEvents.lead().send({ content_category: fields.name })\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type {\n PurchaseFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { GoogleCustomEvent, GoogleStandardEvents } from '@xylabs/react-pixel'\n\nexport interface GoogleViewContent extends Record<string, unknown> {\n name: string\n path: string\n}\n\nexport interface GoogleUserClick extends Record<string, unknown> {\n elementName: string\n elementType: string\n}\n\nexport class GoogleEvents<TData extends EmptyObject = EmptyObject> extends GoogleStandardEvents<TData> {\n custom<T extends TData>(name: string) {\n return new GoogleCustomEvent<PurchaseFields | T>(name)\n }\n\n pageView<T extends TData>() {\n return new GoogleCustomEvent<ViewContentFields | T>('PageView')\n }\n\n userClick<T extends TData>() {\n return new GoogleCustomEvent<UserClickFields | T>('UserClick')\n }\n\n viewContent<T extends TData>() {\n return new GoogleCustomEvent<ViewContentFields | T>('ViewContent')\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { GoogleCartProperties, GooglePurchaseProperties } from '@xylabs/react-pixel'\n\nimport type { CustomProperties } from './CustomProperties.ts'\nimport { GoogleEvents } from './Google/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface } from './XyoEventHandlerInterface.ts'\n\nexport class GoogleEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected googleEvents = new GoogleEvents<CustomProperties | GoogleCartProperties>()\n\n override get events() {\n return this.googleEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n const googleFields: GooglePurchaseProperties = {\n item_name: fields.name,\n id: fields.id,\n quantity: fields.quantity ?? 1,\n currency: fields.currency ?? 'USD',\n value: fields.value,\n }\n await this.googleEvents.purchase().send(googleFields)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport { MixpanelCustomEvent, MixpanelPageViewEvent } from '@xylabs/react-pixel'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nexport class MixpanelEvents<TData extends EmptyObject = EmptyObject> {\n protected mixpanel: Mixpanel\n\n constructor(mixpanel: Mixpanel) {\n this.mixpanel = mixpanel\n }\n\n custom<T extends TData>(name: string) {\n return new MixpanelCustomEvent<T>(name, this.mixpanel)\n }\n\n pageView<T extends TData>() {\n return new MixpanelPageViewEvent<T>(this.mixpanel)\n }\n\n purchase<T extends TData>() {\n return new MixpanelCustomEvent<T>('Purchase', this.mixpanel)\n }\n\n userClick<T extends TData>() {\n return new MixpanelCustomEvent<T>('UserClick', this.mixpanel)\n }\n\n viewContent<T extends TData>() {\n return new MixpanelCustomEvent<T>('ViewContent', this.mixpanel)\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nimport { MixpanelEvents } from './Mixpanel/index.ts'\nimport type { XnsPurchaseSuccessFields } from './XnsPurchaseEventHandlerInterface.ts'\nimport type { Events } from './XyoEventHandler.ts'\nimport { XyoEventHandler } from './XyoEventHandler.ts'\nimport type { XyoEventHandlerInterface } from './XyoEventHandlerInterface.ts'\n\nexport class MixpanelEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {\n protected mixpanel: Mixpanel\n protected mixpanelEvents: MixpanelEvents\n\n constructor(mixpanel: Mixpanel) {\n super()\n this.mixpanel = mixpanel\n this.mixpanelEvents = new MixpanelEvents(mixpanel)\n }\n\n override get events() {\n return this.mixpanelEvents as Events<T>\n }\n\n override async xnsPurchaseSuccess(fields: XnsPurchaseSuccessFields) {\n return await Promise.resolve(this.mixpanel.track('Purchase', fields))\n }\n}\n"],"mappings":"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","names":["UserEventHandler","UserEventHandler"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-user-events",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -43,31 +43,33 @@
|
|
|
43
43
|
"src"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@xylabs/object": "
|
|
47
|
-
"@xylabs/pixel": "
|
|
48
|
-
"@xylabs/promise": "
|
|
49
|
-
"@xylabs/react-pixel": "
|
|
50
|
-
"mixpanel-browser": "
|
|
46
|
+
"@xylabs/object": "~5.0.8",
|
|
47
|
+
"@xylabs/pixel": "~5.0.8",
|
|
48
|
+
"@xylabs/promise": "~5.0.8",
|
|
49
|
+
"@xylabs/react-pixel": "~7.0.1",
|
|
50
|
+
"mixpanel-browser": "~2.68.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@mui/icons-material": "
|
|
54
|
-
"@mui/material": "
|
|
55
|
-
"@types/mixpanel-browser": "
|
|
56
|
-
"@types/react": "
|
|
57
|
-
"@xylabs/ts-scripts-yarn3": "
|
|
58
|
-
"@xylabs/tsconfig
|
|
59
|
-
"
|
|
60
|
-
"react
|
|
61
|
-
"react
|
|
62
|
-
"
|
|
53
|
+
"@mui/icons-material": "~7.3.1",
|
|
54
|
+
"@mui/material": "~7.3.1",
|
|
55
|
+
"@types/mixpanel-browser": "~2.66.0",
|
|
56
|
+
"@types/react": "~19.1.10",
|
|
57
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.1",
|
|
58
|
+
"@xylabs/tsconfig": "~7.1.1",
|
|
59
|
+
"@xylabs/tsconfig-dom": "~7.1.1",
|
|
60
|
+
"@xylabs/tsconfig-react": "~7.1.1",
|
|
61
|
+
"react": "~19.1.1",
|
|
62
|
+
"react-dom": "~19.1.1",
|
|
63
|
+
"react-router-dom": "~7.8.0",
|
|
64
|
+
"typescript": "~5.9.2"
|
|
63
65
|
},
|
|
64
66
|
"peerDependencies": {
|
|
65
67
|
"@mui/icons-material": ">=6 <8",
|
|
66
68
|
"@mui/material": ">=6 <8",
|
|
67
|
-
"@xylabs/pixel": "
|
|
68
|
-
"react": "
|
|
69
|
-
"react-dom": "
|
|
70
|
-
"react-router-dom": "
|
|
69
|
+
"@xylabs/pixel": "~2",
|
|
70
|
+
"react": "~19",
|
|
71
|
+
"react-dom": "~19",
|
|
72
|
+
"react-router-dom": "~7"
|
|
71
73
|
},
|
|
72
74
|
"publishConfig": {
|
|
73
75
|
"access": "public"
|
package/src/Mixpanel/index.ts
CHANGED
|
@@ -3,7 +3,12 @@ import { MixpanelCustomEvent, MixpanelPageViewEvent } from '@xylabs/react-pixel'
|
|
|
3
3
|
import type { Mixpanel } from 'mixpanel-browser'
|
|
4
4
|
|
|
5
5
|
export class MixpanelEvents<TData extends EmptyObject = EmptyObject> {
|
|
6
|
-
|
|
6
|
+
protected mixpanel: Mixpanel
|
|
7
|
+
|
|
8
|
+
constructor(mixpanel: Mixpanel) {
|
|
9
|
+
this.mixpanel = mixpanel
|
|
10
|
+
}
|
|
11
|
+
|
|
7
12
|
custom<T extends TData>(name: string) {
|
|
8
13
|
return new MixpanelCustomEvent<T>(name, this.mixpanel)
|
|
9
14
|
}
|
|
@@ -8,10 +8,12 @@ import { XyoEventHandler } from './XyoEventHandler.ts'
|
|
|
8
8
|
import type { XyoEventHandlerInterface } from './XyoEventHandlerInterface.ts'
|
|
9
9
|
|
|
10
10
|
export class MixpanelEventHandler<T extends EmptyObject> extends XyoEventHandler<T> implements XyoEventHandlerInterface<T> {
|
|
11
|
+
protected mixpanel: Mixpanel
|
|
11
12
|
protected mixpanelEvents: MixpanelEvents
|
|
12
13
|
|
|
13
|
-
constructor(
|
|
14
|
+
constructor(mixpanel: Mixpanel) {
|
|
14
15
|
super()
|
|
16
|
+
this.mixpanel = mixpanel
|
|
15
17
|
this.mixpanelEvents = new MixpanelEvents(mixpanel)
|
|
16
18
|
}
|
|
17
19
|
|