@xylabs/pixel 1.5.0 → 1.6.0
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/browser/Api/Api.d.cts +1 -1
- package/dist/browser/Api/Api.d.cts.map +1 -1
- package/dist/browser/Api/Api.d.mts +1 -1
- package/dist/browser/Api/Api.d.mts.map +1 -1
- package/dist/browser/Api/Api.d.ts +1 -1
- package/dist/browser/Api/Api.d.ts.map +1 -1
- package/dist/browser/Api/UserEvent.d.cts +2 -2
- package/dist/browser/Api/UserEvent.d.cts.map +1 -1
- package/dist/browser/Api/UserEvent.d.mts +2 -2
- package/dist/browser/Api/UserEvent.d.mts.map +1 -1
- package/dist/browser/Api/UserEvent.d.ts +2 -2
- package/dist/browser/Api/UserEvent.d.ts.map +1 -1
- package/dist/browser/Api/index.d.cts +3 -3
- package/dist/browser/Api/index.d.cts.map +1 -1
- package/dist/browser/Api/index.d.mts +3 -3
- package/dist/browser/Api/index.d.mts.map +1 -1
- package/dist/browser/Api/index.d.ts +3 -3
- package/dist/browser/Api/index.d.ts.map +1 -1
- package/dist/browser/FunnelStartedFields.d.cts +1 -1
- package/dist/browser/FunnelStartedFields.d.cts.map +1 -1
- package/dist/browser/FunnelStartedFields.d.mts +1 -1
- package/dist/browser/FunnelStartedFields.d.mts.map +1 -1
- package/dist/browser/FunnelStartedFields.d.ts +1 -1
- package/dist/browser/FunnelStartedFields.d.ts.map +1 -1
- package/dist/browser/Pixel.d.cts +2 -2
- package/dist/browser/Pixel.d.cts.map +1 -1
- package/dist/browser/Pixel.d.mts +2 -2
- package/dist/browser/Pixel.d.mts.map +1 -1
- package/dist/browser/Pixel.d.ts +2 -2
- package/dist/browser/Pixel.d.ts.map +1 -1
- package/dist/browser/TestStartedFields.d.cts +1 -1
- package/dist/browser/TestStartedFields.d.cts.map +1 -1
- package/dist/browser/TestStartedFields.d.mts +1 -1
- package/dist/browser/TestStartedFields.d.mts.map +1 -1
- package/dist/browser/TestStartedFields.d.ts +1 -1
- package/dist/browser/TestStartedFields.d.ts.map +1 -1
- package/dist/browser/UserClickFields.d.cts +1 -1
- package/dist/browser/UserClickFields.d.cts.map +1 -1
- package/dist/browser/UserClickFields.d.mts +1 -1
- package/dist/browser/UserClickFields.d.mts.map +1 -1
- package/dist/browser/UserClickFields.d.ts +1 -1
- package/dist/browser/UserClickFields.d.ts.map +1 -1
- package/dist/browser/UserEventHandler.d.cts +4 -4
- package/dist/browser/UserEventHandler.d.cts.map +1 -1
- package/dist/browser/UserEventHandler.d.mts +4 -4
- package/dist/browser/UserEventHandler.d.mts.map +1 -1
- package/dist/browser/UserEventHandler.d.ts +4 -4
- package/dist/browser/UserEventHandler.d.ts.map +1 -1
- package/dist/browser/ViewContentFields.d.cts +1 -1
- package/dist/browser/ViewContentFields.d.cts.map +1 -1
- package/dist/browser/ViewContentFields.d.mts +1 -1
- package/dist/browser/ViewContentFields.d.mts.map +1 -1
- package/dist/browser/ViewContentFields.d.ts +1 -1
- package/dist/browser/ViewContentFields.d.ts.map +1 -1
- package/dist/browser/XyUserEventHandler.d.cts +5 -5
- package/dist/browser/XyUserEventHandler.d.cts.map +1 -1
- package/dist/browser/XyUserEventHandler.d.mts +5 -5
- package/dist/browser/XyUserEventHandler.d.mts.map +1 -1
- package/dist/browser/XyUserEventHandler.d.ts +5 -5
- package/dist/browser/XyUserEventHandler.d.ts.map +1 -1
- package/dist/browser/index.cjs +1 -2
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +12 -12
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +12 -12
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +12 -12
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/Api/Api.d.cts +7 -0
- package/dist/neutral/Api/Api.d.cts.map +1 -0
- package/dist/neutral/Api/Api.d.mts +7 -0
- package/dist/neutral/Api/Api.d.mts.map +1 -0
- package/dist/neutral/Api/Api.d.ts +7 -0
- package/dist/neutral/Api/Api.d.ts.map +1 -0
- package/dist/neutral/Api/UserEvent.d.cts +25 -0
- package/dist/neutral/Api/UserEvent.d.cts.map +1 -0
- package/dist/neutral/Api/UserEvent.d.mts +25 -0
- package/dist/neutral/Api/UserEvent.d.mts.map +1 -0
- package/dist/neutral/Api/UserEvent.d.ts +25 -0
- package/dist/neutral/Api/UserEvent.d.ts.map +1 -0
- package/dist/neutral/Api/UserEventSystem.d.cts +3 -0
- package/dist/neutral/Api/UserEventSystem.d.cts.map +1 -0
- package/dist/neutral/Api/UserEventSystem.d.mts +3 -0
- package/dist/neutral/Api/UserEventSystem.d.mts.map +1 -0
- package/dist/neutral/Api/UserEventSystem.d.ts +3 -0
- package/dist/neutral/Api/UserEventSystem.d.ts.map +1 -0
- package/dist/neutral/Api/index.d.cts +4 -0
- package/dist/neutral/Api/index.d.cts.map +1 -0
- package/dist/neutral/Api/index.d.mts +4 -0
- package/dist/neutral/Api/index.d.mts.map +1 -0
- package/dist/neutral/Api/index.d.ts +4 -0
- package/dist/neutral/Api/index.d.ts.map +1 -0
- package/dist/neutral/CommonFields.d.cts +5 -0
- package/dist/neutral/CommonFields.d.cts.map +1 -0
- package/dist/neutral/CommonFields.d.mts +5 -0
- package/dist/neutral/CommonFields.d.mts.map +1 -0
- package/dist/neutral/CommonFields.d.ts +5 -0
- package/dist/neutral/CommonFields.d.ts.map +1 -0
- package/dist/neutral/ExIds.d.cts +10 -0
- package/dist/neutral/ExIds.d.cts.map +1 -0
- package/dist/neutral/ExIds.d.mts +10 -0
- package/dist/neutral/ExIds.d.mts.map +1 -0
- package/dist/neutral/ExIds.d.ts +10 -0
- package/dist/neutral/ExIds.d.ts.map +1 -0
- package/dist/neutral/FunnelStartedFields.d.cts +5 -0
- package/dist/neutral/FunnelStartedFields.d.cts.map +1 -0
- package/dist/neutral/FunnelStartedFields.d.mts +5 -0
- package/dist/neutral/FunnelStartedFields.d.mts.map +1 -0
- package/dist/neutral/FunnelStartedFields.d.ts +5 -0
- package/dist/neutral/FunnelStartedFields.d.ts.map +1 -0
- package/dist/neutral/Pixel.d.cts +24 -0
- package/dist/neutral/Pixel.d.cts.map +1 -0
- package/dist/neutral/Pixel.d.mts +24 -0
- package/dist/neutral/Pixel.d.mts.map +1 -0
- package/dist/neutral/Pixel.d.ts +24 -0
- package/dist/neutral/Pixel.d.ts.map +1 -0
- package/dist/neutral/Referrer.d.cts +13 -0
- package/dist/neutral/Referrer.d.cts.map +1 -0
- package/dist/neutral/Referrer.d.mts +13 -0
- package/dist/neutral/Referrer.d.mts.map +1 -0
- package/dist/neutral/Referrer.d.ts +13 -0
- package/dist/neutral/Referrer.d.ts.map +1 -0
- package/dist/neutral/TestStartedFields.d.cts +5 -0
- package/dist/neutral/TestStartedFields.d.cts.map +1 -0
- package/dist/neutral/TestStartedFields.d.mts +5 -0
- package/dist/neutral/TestStartedFields.d.mts.map +1 -0
- package/dist/neutral/TestStartedFields.d.ts +5 -0
- package/dist/neutral/TestStartedFields.d.ts.map +1 -0
- package/dist/neutral/UniqueUserId.d.cts +8 -0
- package/dist/neutral/UniqueUserId.d.cts.map +1 -0
- package/dist/neutral/UniqueUserId.d.mts +8 -0
- package/dist/neutral/UniqueUserId.d.mts.map +1 -0
- package/dist/neutral/UniqueUserId.d.ts +8 -0
- package/dist/neutral/UniqueUserId.d.ts.map +1 -0
- package/dist/neutral/UserClickFields.d.cts +6 -0
- package/dist/neutral/UserClickFields.d.cts.map +1 -0
- package/dist/neutral/UserClickFields.d.mts +6 -0
- package/dist/neutral/UserClickFields.d.mts.map +1 -0
- package/dist/neutral/UserClickFields.d.ts +6 -0
- package/dist/neutral/UserClickFields.d.ts.map +1 -0
- package/dist/neutral/UserEventHandler.d.cts +11 -0
- package/dist/neutral/UserEventHandler.d.cts.map +1 -0
- package/dist/neutral/UserEventHandler.d.mts +11 -0
- package/dist/neutral/UserEventHandler.d.mts.map +1 -0
- package/dist/neutral/UserEventHandler.d.ts +11 -0
- package/dist/neutral/UserEventHandler.d.ts.map +1 -0
- package/dist/neutral/UtmFields.d.cts +9 -0
- package/dist/neutral/UtmFields.d.cts.map +1 -0
- package/dist/neutral/UtmFields.d.mts +9 -0
- package/dist/neutral/UtmFields.d.mts.map +1 -0
- package/dist/neutral/UtmFields.d.ts +9 -0
- package/dist/neutral/UtmFields.d.ts.map +1 -0
- package/dist/neutral/ViewContentFields.d.cts +6 -0
- package/dist/neutral/ViewContentFields.d.cts.map +1 -0
- package/dist/neutral/ViewContentFields.d.mts +6 -0
- package/dist/neutral/ViewContentFields.d.mts.map +1 -0
- package/dist/neutral/ViewContentFields.d.ts +6 -0
- package/dist/neutral/ViewContentFields.d.ts.map +1 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.cts +21 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.cts.map +1 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.mts +21 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.mts.map +1 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.ts +21 -0
- package/dist/neutral/XyLabsTrackingEventJson.d.ts.map +1 -0
- package/dist/neutral/XyUserEventHandler.d.cts +13 -0
- package/dist/neutral/XyUserEventHandler.d.cts.map +1 -0
- package/dist/neutral/XyUserEventHandler.d.mts +13 -0
- package/dist/neutral/XyUserEventHandler.d.mts.map +1 -0
- package/dist/neutral/XyUserEventHandler.d.ts +13 -0
- package/dist/neutral/XyUserEventHandler.d.ts.map +1 -0
- package/dist/neutral/getSystemInfo.d.cts +2 -0
- package/dist/neutral/getSystemInfo.d.cts.map +1 -0
- package/dist/neutral/getSystemInfo.d.mts +2 -0
- package/dist/neutral/getSystemInfo.d.mts.map +1 -0
- package/dist/neutral/getSystemInfo.d.ts +2 -0
- package/dist/neutral/getSystemInfo.d.ts.map +1 -0
- package/dist/neutral/index.cjs +286 -0
- package/dist/neutral/index.cjs.map +1 -0
- package/dist/neutral/index.d.cts +13 -0
- package/dist/neutral/index.d.cts.map +1 -0
- package/dist/neutral/index.d.mts +13 -0
- package/dist/neutral/index.d.mts.map +1 -0
- package/dist/neutral/index.d.ts +13 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.js +253 -0
- package/dist/neutral/index.js.map +1 -0
- package/dist/node/Api/Api.d.cts +1 -1
- package/dist/node/Api/Api.d.cts.map +1 -1
- package/dist/node/Api/Api.d.mts +1 -1
- package/dist/node/Api/Api.d.mts.map +1 -1
- package/dist/node/Api/Api.d.ts +1 -1
- package/dist/node/Api/Api.d.ts.map +1 -1
- package/dist/node/Api/UserEvent.d.cts +2 -2
- package/dist/node/Api/UserEvent.d.cts.map +1 -1
- package/dist/node/Api/UserEvent.d.mts +2 -2
- package/dist/node/Api/UserEvent.d.mts.map +1 -1
- package/dist/node/Api/UserEvent.d.ts +2 -2
- package/dist/node/Api/UserEvent.d.ts.map +1 -1
- package/dist/node/Api/index.d.cts +3 -3
- package/dist/node/Api/index.d.cts.map +1 -1
- package/dist/node/Api/index.d.mts +3 -3
- package/dist/node/Api/index.d.mts.map +1 -1
- package/dist/node/Api/index.d.ts +3 -3
- package/dist/node/Api/index.d.ts.map +1 -1
- package/dist/node/FunnelStartedFields.d.cts +1 -1
- package/dist/node/FunnelStartedFields.d.cts.map +1 -1
- package/dist/node/FunnelStartedFields.d.mts +1 -1
- package/dist/node/FunnelStartedFields.d.mts.map +1 -1
- package/dist/node/FunnelStartedFields.d.ts +1 -1
- package/dist/node/FunnelStartedFields.d.ts.map +1 -1
- package/dist/node/Pixel.d.cts +2 -2
- package/dist/node/Pixel.d.cts.map +1 -1
- package/dist/node/Pixel.d.mts +2 -2
- package/dist/node/Pixel.d.mts.map +1 -1
- package/dist/node/Pixel.d.ts +2 -2
- package/dist/node/Pixel.d.ts.map +1 -1
- package/dist/node/TestStartedFields.d.cts +1 -1
- package/dist/node/TestStartedFields.d.cts.map +1 -1
- package/dist/node/TestStartedFields.d.mts +1 -1
- package/dist/node/TestStartedFields.d.mts.map +1 -1
- package/dist/node/TestStartedFields.d.ts +1 -1
- package/dist/node/TestStartedFields.d.ts.map +1 -1
- package/dist/node/UserClickFields.d.cts +1 -1
- package/dist/node/UserClickFields.d.cts.map +1 -1
- package/dist/node/UserClickFields.d.mts +1 -1
- package/dist/node/UserClickFields.d.mts.map +1 -1
- package/dist/node/UserClickFields.d.ts +1 -1
- package/dist/node/UserClickFields.d.ts.map +1 -1
- package/dist/node/UserEventHandler.d.cts +4 -4
- package/dist/node/UserEventHandler.d.cts.map +1 -1
- package/dist/node/UserEventHandler.d.mts +4 -4
- package/dist/node/UserEventHandler.d.mts.map +1 -1
- package/dist/node/UserEventHandler.d.ts +4 -4
- package/dist/node/UserEventHandler.d.ts.map +1 -1
- package/dist/node/ViewContentFields.d.cts +1 -1
- package/dist/node/ViewContentFields.d.cts.map +1 -1
- package/dist/node/ViewContentFields.d.mts +1 -1
- package/dist/node/ViewContentFields.d.mts.map +1 -1
- package/dist/node/ViewContentFields.d.ts +1 -1
- package/dist/node/ViewContentFields.d.ts.map +1 -1
- package/dist/node/XyUserEventHandler.d.cts +5 -5
- package/dist/node/XyUserEventHandler.d.cts.map +1 -1
- package/dist/node/XyUserEventHandler.d.mts +5 -5
- package/dist/node/XyUserEventHandler.d.mts.map +1 -1
- package/dist/node/XyUserEventHandler.d.ts +5 -5
- package/dist/node/XyUserEventHandler.d.ts.map +1 -1
- package/dist/node/index.cjs +1 -2
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +12 -12
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +12 -12
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +12 -12
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -2
- package/dist/node/index.js.map +1 -1
- package/jest.config.cjs +13 -11
- package/package.json +22 -18
- package/src/Api/Api.ts +1 -1
- package/src/Api/UserEvent.ts +2 -2
- package/src/Api/index.ts +3 -3
- package/src/FunnelStartedFields.ts +1 -1
- package/src/Pixel.ts +6 -6
- package/src/TestStartedFields.ts +1 -1
- package/src/UserClickFields.ts +1 -1
- package/src/UserEventHandler.ts +4 -4
- package/src/ViewContentFields.ts +1 -1
- package/src/XyUserEventHandler.ts +6 -6
- package/src/getSystemInfo.ts +1 -1
- package/src/index.ts +12 -12
package/dist/node/index.d.mts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export * from './Api';
|
|
2
|
-
export * from './FunnelStartedFields';
|
|
3
|
-
export * from './Pixel';
|
|
4
|
-
export * from './Referrer';
|
|
5
|
-
export * from './TestStartedFields';
|
|
6
|
-
export * from './UniqueUserId';
|
|
7
|
-
export * from './UserClickFields';
|
|
8
|
-
export * from './UserEventHandler';
|
|
9
|
-
export * from './UtmFields';
|
|
10
|
-
export * from './ViewContentFields';
|
|
11
|
-
export * from './XyLabsTrackingEventJson';
|
|
12
|
-
export * from './XyUserEventHandler';
|
|
1
|
+
export * from './Api/index.js';
|
|
2
|
+
export * from './FunnelStartedFields.js';
|
|
3
|
+
export * from './Pixel.js';
|
|
4
|
+
export * from './Referrer.js';
|
|
5
|
+
export * from './TestStartedFields.js';
|
|
6
|
+
export * from './UniqueUserId.js';
|
|
7
|
+
export * from './UserClickFields.js';
|
|
8
|
+
export * from './UserEventHandler.js';
|
|
9
|
+
export * from './UtmFields.js';
|
|
10
|
+
export * from './ViewContentFields.js';
|
|
11
|
+
export * from './XyLabsTrackingEventJson.js';
|
|
12
|
+
export * from './XyUserEventHandler.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA"}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export * from './Api';
|
|
2
|
-
export * from './FunnelStartedFields';
|
|
3
|
-
export * from './Pixel';
|
|
4
|
-
export * from './Referrer';
|
|
5
|
-
export * from './TestStartedFields';
|
|
6
|
-
export * from './UniqueUserId';
|
|
7
|
-
export * from './UserClickFields';
|
|
8
|
-
export * from './UserEventHandler';
|
|
9
|
-
export * from './UtmFields';
|
|
10
|
-
export * from './ViewContentFields';
|
|
11
|
-
export * from './XyLabsTrackingEventJson';
|
|
12
|
-
export * from './XyUserEventHandler';
|
|
1
|
+
export * from './Api/index.js';
|
|
2
|
+
export * from './FunnelStartedFields.js';
|
|
3
|
+
export * from './Pixel.js';
|
|
4
|
+
export * from './Referrer.js';
|
|
5
|
+
export * from './TestStartedFields.js';
|
|
6
|
+
export * from './UniqueUserId.js';
|
|
7
|
+
export * from './UserClickFields.js';
|
|
8
|
+
export * from './UserEventHandler.js';
|
|
9
|
+
export * from './UtmFields.js';
|
|
10
|
+
export * from './ViewContentFields.js';
|
|
11
|
+
export * from './XyLabsTrackingEventJson.js';
|
|
12
|
+
export * from './XyUserEventHandler.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA"}
|
package/dist/node/index.js
CHANGED
|
@@ -191,8 +191,7 @@ var XyPixel = class _XyPixel {
|
|
|
191
191
|
}
|
|
192
192
|
async tryFlushQueue() {
|
|
193
193
|
await this.queueMutex.runExclusive(async () => {
|
|
194
|
-
if (this.queue.length === 0)
|
|
195
|
-
return;
|
|
194
|
+
if (this.queue.length === 0) return;
|
|
196
195
|
const api = _XyPixel.api;
|
|
197
196
|
if (api) {
|
|
198
197
|
const events = this.queue;
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Api/Api.ts","../../src/Pixel.ts","../../src/getSystemInfo.ts","../../src/Referrer.ts","../../src/UniqueUserId.ts","../../src/UtmFields.ts","../../src/UserEventHandler.ts","../../src/XyUserEventHandler.ts"],"sourcesContent":["import axios from 'axios'\n\nimport { UserEvent } from './UserEvent'\n\nconst apiBaseUri: Record<string, string> = {\n beta: 'https://pixel.xylabs.com',\n local: 'http://localhost:3030',\n prod: 'https://pixel.xylabs.com',\n}\n\nexport class PixelApi {\n private endPoint: string\n\n /* baseUri can either be a preset (prod, beta, local), or a specific uri */\n constructor(baseUri = 'prod') {\n this.endPoint = apiBaseUri[baseUri] ? `${apiBaseUri[baseUri]}/t/event/queue` : baseUri\n }\n\n async trackEvents(events: UserEvent[]) {\n return (await axios.post(this.endPoint, events)).data\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Mutex } from 'async-mutex'\nimport Cookies from 'js-cookie'\nimport md5 from 'md5'\n\nimport { PixelApi, UserEvent } from './Api'\nimport { ExIds } from './ExIds'\nimport { getSystemInfo } from './getSystemInfo'\nimport { Referrer } from './Referrer'\nimport { UniqueUserId } from './UniqueUserId'\nimport { UtmFields } from './UtmFields'\n\nconst emailHashLocalStorageName = 'xy_email_hash'\n\nexport class XyPixel {\n static api = new PixelApi()\n\n private static _instance?: XyPixel\n private static utmFieldsObj: UtmFields\n\n cid = new UniqueUserId().id\n email?: string\n email_hash?: string | null\n exids?: ExIds\n pixelId?: string\n\n queue: UserEvent[] = []\n\n private queueMutex = new Mutex()\n\n private constructor(pixelId: string) {\n this.pixelId = pixelId\n this.email_hash = localStorage.getItem(emailHashLocalStorageName)\n }\n\n static get instance(): XyPixel {\n return assertEx(this._instance, 'XyPixel uninitialized')\n }\n\n static init(pixelId: string) {\n this._instance = new XyPixel(pixelId)\n return this._instance\n }\n\n static selectApi(api: PixelApi) {\n this.api = api\n }\n\n private static utmFields = () => {\n if (XyPixel.utmFieldsObj === undefined) {\n XyPixel.utmFieldsObj = new UtmFields()\n }\n return XyPixel.utmFieldsObj\n }\n\n identify(email?: string) {\n this.email = email\n this.email_hash = email ? md5(email) : undefined\n if (this.email_hash) {\n localStorage.setItem(emailHashLocalStorageName, this.email_hash)\n }\n }\n\n async send<T extends Record<string, unknown>>(event: string, fields?: T, eventId?: string) {\n this.updateFbId()\n const utm = XyPixel.utmFields().update()\n const referrer = new Referrer()\n this.queue.push({\n cid: this.cid,\n create_time: Date.now(),\n email_hash: this.email_hash ?? undefined,\n event,\n event_id: eventId,\n exids: this.exids,\n fields,\n host: document.location.host,\n pathname: document.location.pathname,\n pixel: this.pixelId,\n referrer: referrer.toJson(),\n system: getSystemInfo(),\n utm,\n })\n await this.tryFlushQueue()\n }\n\n private async tryFlushQueue() {\n await this.queueMutex.runExclusive(async () => {\n if (this.queue.length === 0) return\n const api = XyPixel.api\n if (api) {\n const events = this.queue\n this.queue = []\n try {\n await api.trackEvents(events)\n } catch (ex) {\n if (events) {\n //put it back since it failed\n this.queue = [...this.queue, ...events]\n }\n console.error(ex)\n }\n }\n })\n }\n\n private updateFbId() {\n this.exids = {\n fbc: Cookies.get('_fbc'),\n fbp: Cookies.get('_fbp'),\n ga: Cookies.get('_ga'),\n gclid: Cookies.get('_gcl_aw'),\n rdt_uid: Cookies.get('rdt_uid'),\n scid: Cookies.get('_scid'),\n tt_sessionId: sessionStorage.getItem('tt_sessionId') ?? undefined,\n }\n }\n}\n","import { parse } from 'bowser'\n\nimport { UserEventSystem } from './Api'\n\nlet systemInfo: UserEventSystem | undefined\n\nexport const getSystemInfo = () => {\n try {\n systemInfo = systemInfo || parse(window.navigator.userAgent)\n } catch (ex) {\n console.log(`getSystemInfo Error: ${ex}`)\n }\n return systemInfo\n}\n","export class Referrer {\n private static storageId = '_coin_referrer'\n local: string\n session: string\n constructor() {\n this.session = this.getFromSession() ?? document.referrer\n sessionStorage.setItem(Referrer.storageId, this.session)\n this.local = this.getFromLocal() ?? document.referrer\n window.localStorage.setItem(Referrer.storageId, this.local)\n }\n\n toJson() {\n if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {\n return {\n local: this.local,\n session: this.session,\n }\n }\n }\n\n private getFromLocal() {\n const value = window.localStorage.getItem(Referrer.storageId)\n if (value && value.length > 0) {\n return value\n }\n }\n\n private getFromSession() {\n const value = sessionStorage.getItem(Referrer.storageId)\n if (value && value.length > 0) {\n return value\n }\n }\n}\n","import randomBytes from 'randombytes'\n\nexport class UniqueUserId {\n private static localStorageId = '_coin_cid'\n id: string\n\n constructor() {\n this.id = window.localStorage.getItem(UniqueUserId.localStorageId) ?? this.generateId()\n window.localStorage.setItem(UniqueUserId.localStorageId, this.id)\n }\n\n toString() {\n return this.id\n }\n\n private generateId() {\n return randomBytes(16).toString('base64')\n }\n}\n","import { isEqual } from '@xylabs/lodash'\n\nexport class UtmFields {\n private static localStorageId = '_coin_utm'\n fields: Record<string, string>[] = []\n constructor() {\n const storedString = window.localStorage.getItem(UtmFields.localStorageId) ?? '[]'\n try {\n this.fields = JSON.parse(storedString)\n } catch {\n this.fields = []\n }\n //this clears the old object version if needed\n if (!Array.isArray(this.fields)) {\n this.fields = []\n }\n this.update()\n window.localStorage.setItem(UtmFields.localStorageId, JSON.stringify(this.fields))\n }\n\n getUtmRecord = () => {\n const record: Record<string, string> = {}\n const parsedQueryString = document.location.search.split('?')[1]?.split('&') ?? []\n parsedQueryString.map((item) => {\n const [fullKey, value] = item.split('=')\n const [keyCategory, keyName] = fullKey.split('_')\n if (keyCategory === 'utm') {\n record[keyName] = value\n }\n })\n return Object.keys(record).length > 0 ? record : null\n }\n\n toString() {\n return JSON.stringify(this.fields)\n }\n\n //check the query string and if there an new/updated utm values, add them to the fields\n update() {\n const record = this.getUtmRecord()\n if (record && !isEqual(this.fields.at(-1), record)) {\n this.fields.push(record)\n }\n return this.fields ?? undefined\n }\n}\n","import { FunnelStartedFields } from './FunnelStartedFields'\nimport { TestStartedFields } from './TestStartedFields'\nimport { UserClickFields } from './UserClickFields'\nimport { ViewContentFields } from './ViewContentFields'\n\nexport abstract class UserEventHandler<T> {\n abstract funnelStarted(fields: T | FunnelStartedFields): Promise<void>\n abstract testStarted(fields: T | TestStartedFields): Promise<void>\n abstract userClick(fields: T | UserClickFields): Promise<void>\n abstract viewContent(fields: T | ViewContentFields): Promise<void>\n}\n","import { FunnelStartedFields } from './FunnelStartedFields'\nimport { XyPixel } from './Pixel'\nimport { TestStartedFields } from './TestStartedFields'\nimport { UserClickFields } from './UserClickFields'\nimport { UserEventHandler } from './UserEventHandler'\nimport { ViewContentFields } from './ViewContentFields'\n\nexport class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {\n constructor() {\n super()\n }\n\n async funnelStarted(fields: T | FunnelStartedFields) {\n return await XyPixel.instance.send('FunnelStarted', fields)\n }\n\n async testStarted(fields: T | TestStartedFields) {\n return await XyPixel.instance.send('TestStarted', fields)\n }\n\n async userClick(fields: T | UserClickFields) {\n return await XyPixel.instance.send('ViewPage', fields)\n }\n\n async viewContent(fields: T | ViewContentFields) {\n return await XyPixel.instance.send('ViewContent', fields)\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/Api/Api.ts","../../src/Pixel.ts","../../src/getSystemInfo.ts","../../src/Referrer.ts","../../src/UniqueUserId.ts","../../src/UtmFields.ts","../../src/UserEventHandler.ts","../../src/XyUserEventHandler.ts"],"sourcesContent":["import axios from 'axios'\n\nimport { UserEvent } from './UserEvent.js'\n\nconst apiBaseUri: Record<string, string> = {\n beta: 'https://pixel.xylabs.com',\n local: 'http://localhost:3030',\n prod: 'https://pixel.xylabs.com',\n}\n\nexport class PixelApi {\n private endPoint: string\n\n /* baseUri can either be a preset (prod, beta, local), or a specific uri */\n constructor(baseUri = 'prod') {\n this.endPoint = apiBaseUri[baseUri] ? `${apiBaseUri[baseUri]}/t/event/queue` : baseUri\n }\n\n async trackEvents(events: UserEvent[]) {\n return (await axios.post(this.endPoint, events)).data\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Mutex } from 'async-mutex'\nimport Cookies from 'js-cookie'\nimport md5 from 'md5'\n\nimport { PixelApi, UserEvent } from './Api/index.js'\nimport { ExIds } from './ExIds.js'\nimport { getSystemInfo } from './getSystemInfo.js'\nimport { Referrer } from './Referrer.js'\nimport { UniqueUserId } from './UniqueUserId.js'\nimport { UtmFields } from './UtmFields.js'\n\nconst emailHashLocalStorageName = 'xy_email_hash'\n\nexport class XyPixel {\n static api = new PixelApi()\n\n private static _instance?: XyPixel\n private static utmFieldsObj: UtmFields\n\n cid = new UniqueUserId().id\n email?: string\n email_hash?: string | null\n exids?: ExIds\n pixelId?: string\n\n queue: UserEvent[] = []\n\n private queueMutex = new Mutex()\n\n private constructor(pixelId: string) {\n this.pixelId = pixelId\n this.email_hash = localStorage.getItem(emailHashLocalStorageName)\n }\n\n static get instance(): XyPixel {\n return assertEx(this._instance, 'XyPixel uninitialized')\n }\n\n static init(pixelId: string) {\n this._instance = new XyPixel(pixelId)\n return this._instance\n }\n\n static selectApi(api: PixelApi) {\n this.api = api\n }\n\n private static utmFields = () => {\n if (XyPixel.utmFieldsObj === undefined) {\n XyPixel.utmFieldsObj = new UtmFields()\n }\n return XyPixel.utmFieldsObj\n }\n\n identify(email?: string) {\n this.email = email\n this.email_hash = email ? md5(email) : undefined\n if (this.email_hash) {\n localStorage.setItem(emailHashLocalStorageName, this.email_hash)\n }\n }\n\n async send<T extends Record<string, unknown>>(event: string, fields?: T, eventId?: string) {\n this.updateFbId()\n const utm = XyPixel.utmFields().update()\n const referrer = new Referrer()\n this.queue.push({\n cid: this.cid,\n create_time: Date.now(),\n email_hash: this.email_hash ?? undefined,\n event,\n event_id: eventId,\n exids: this.exids,\n fields,\n host: document.location.host,\n pathname: document.location.pathname,\n pixel: this.pixelId,\n referrer: referrer.toJson(),\n system: getSystemInfo(),\n utm,\n })\n await this.tryFlushQueue()\n }\n\n private async tryFlushQueue() {\n await this.queueMutex.runExclusive(async () => {\n if (this.queue.length === 0) return\n const api = XyPixel.api\n if (api) {\n const events = this.queue\n this.queue = []\n try {\n await api.trackEvents(events)\n } catch (ex) {\n if (events) {\n //put it back since it failed\n this.queue = [...this.queue, ...events]\n }\n console.error(ex)\n }\n }\n })\n }\n\n private updateFbId() {\n this.exids = {\n fbc: Cookies.get('_fbc'),\n fbp: Cookies.get('_fbp'),\n ga: Cookies.get('_ga'),\n gclid: Cookies.get('_gcl_aw'),\n rdt_uid: Cookies.get('rdt_uid'),\n scid: Cookies.get('_scid'),\n tt_sessionId: sessionStorage.getItem('tt_sessionId') ?? undefined,\n }\n }\n}\n","import { parse } from 'bowser'\n\nimport { UserEventSystem } from './Api/index.js'\n\nlet systemInfo: UserEventSystem | undefined\n\nexport const getSystemInfo = () => {\n try {\n systemInfo = systemInfo || parse(window.navigator.userAgent)\n } catch (ex) {\n console.log(`getSystemInfo Error: ${ex}`)\n }\n return systemInfo\n}\n","export class Referrer {\n private static storageId = '_coin_referrer'\n local: string\n session: string\n constructor() {\n this.session = this.getFromSession() ?? document.referrer\n sessionStorage.setItem(Referrer.storageId, this.session)\n this.local = this.getFromLocal() ?? document.referrer\n window.localStorage.setItem(Referrer.storageId, this.local)\n }\n\n toJson() {\n if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {\n return {\n local: this.local,\n session: this.session,\n }\n }\n }\n\n private getFromLocal() {\n const value = window.localStorage.getItem(Referrer.storageId)\n if (value && value.length > 0) {\n return value\n }\n }\n\n private getFromSession() {\n const value = sessionStorage.getItem(Referrer.storageId)\n if (value && value.length > 0) {\n return value\n }\n }\n}\n","import randomBytes from 'randombytes'\n\nexport class UniqueUserId {\n private static localStorageId = '_coin_cid'\n id: string\n\n constructor() {\n this.id = window.localStorage.getItem(UniqueUserId.localStorageId) ?? this.generateId()\n window.localStorage.setItem(UniqueUserId.localStorageId, this.id)\n }\n\n toString() {\n return this.id\n }\n\n private generateId() {\n return randomBytes(16).toString('base64')\n }\n}\n","import { isEqual } from '@xylabs/lodash'\n\nexport class UtmFields {\n private static localStorageId = '_coin_utm'\n fields: Record<string, string>[] = []\n constructor() {\n const storedString = window.localStorage.getItem(UtmFields.localStorageId) ?? '[]'\n try {\n this.fields = JSON.parse(storedString)\n } catch {\n this.fields = []\n }\n //this clears the old object version if needed\n if (!Array.isArray(this.fields)) {\n this.fields = []\n }\n this.update()\n window.localStorage.setItem(UtmFields.localStorageId, JSON.stringify(this.fields))\n }\n\n getUtmRecord = () => {\n const record: Record<string, string> = {}\n const parsedQueryString = document.location.search.split('?')[1]?.split('&') ?? []\n parsedQueryString.map((item) => {\n const [fullKey, value] = item.split('=')\n const [keyCategory, keyName] = fullKey.split('_')\n if (keyCategory === 'utm') {\n record[keyName] = value\n }\n })\n return Object.keys(record).length > 0 ? record : null\n }\n\n toString() {\n return JSON.stringify(this.fields)\n }\n\n //check the query string and if there an new/updated utm values, add them to the fields\n update() {\n const record = this.getUtmRecord()\n if (record && !isEqual(this.fields.at(-1), record)) {\n this.fields.push(record)\n }\n return this.fields ?? undefined\n }\n}\n","import { FunnelStartedFields } from './FunnelStartedFields.js'\nimport { TestStartedFields } from './TestStartedFields.js'\nimport { UserClickFields } from './UserClickFields.js'\nimport { ViewContentFields } from './ViewContentFields.js'\n\nexport abstract class UserEventHandler<T> {\n abstract funnelStarted(fields: T | FunnelStartedFields): Promise<void>\n abstract testStarted(fields: T | TestStartedFields): Promise<void>\n abstract userClick(fields: T | UserClickFields): Promise<void>\n abstract viewContent(fields: T | ViewContentFields): Promise<void>\n}\n","import { FunnelStartedFields } from './FunnelStartedFields.js'\nimport { XyPixel } from './Pixel.js'\nimport { TestStartedFields } from './TestStartedFields.js'\nimport { UserClickFields } from './UserClickFields.js'\nimport { UserEventHandler } from './UserEventHandler.js'\nimport { ViewContentFields } from './ViewContentFields.js'\n\nexport class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {\n constructor() {\n super()\n }\n\n async funnelStarted(fields: T | FunnelStartedFields) {\n return await XyPixel.instance.send('FunnelStarted', fields)\n }\n\n async testStarted(fields: T | TestStartedFields) {\n return await XyPixel.instance.send('TestStarted', fields)\n }\n\n async userClick(fields: T | UserClickFields) {\n return await XyPixel.instance.send('ViewPage', fields)\n }\n\n async viewContent(fields: T | ViewContentFields) {\n return await XyPixel.instance.send('ViewContent', fields)\n }\n}\n"],"mappings":"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","names":[]}
|
package/jest.config.cjs
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
const generateJestConfig = ({ esModules }) => {
|
|
2
|
-
const
|
|
2
|
+
const esModulesList = Array.isArray(esModules) ? esModules.join('|') : esModules
|
|
3
3
|
return {
|
|
4
|
-
globals: {
|
|
5
|
-
'ts-jest': {
|
|
6
|
-
tsconfig: 'tsconfig.test.json',
|
|
7
|
-
},
|
|
8
|
-
},
|
|
9
4
|
moduleNameMapper: {
|
|
10
5
|
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
11
6
|
},
|
|
12
|
-
preset: 'ts-jest
|
|
7
|
+
preset: 'ts-jest',
|
|
13
8
|
testEnvironment: 'jsdom',
|
|
14
|
-
testRegex:
|
|
9
|
+
testRegex: String.raw`(/__tests__/.*|(\.|/)(test|spec))\.tsx?$`,
|
|
15
10
|
transform: {
|
|
16
|
-
[`(${
|
|
17
|
-
'^.+\\.tsx?$':
|
|
11
|
+
[`(${esModulesList}).+\\.js$`]: 'babel-jest',
|
|
12
|
+
'^.+\\.tsx?$': [
|
|
13
|
+
'ts-jest',
|
|
14
|
+
{
|
|
15
|
+
tsconfig: 'tsconfig.test.json',
|
|
16
|
+
useESM: true,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
18
19
|
},
|
|
19
|
-
transformIgnorePatterns: [`./node_modules/(?!${
|
|
20
|
+
transformIgnorePatterns: [`./node_modules/(?!${esModulesList})`],
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
// eslint-disable-next-line no-undef
|
|
23
25
|
module.exports = generateJestConfig({ esModules: ['is-ip', 'ip-regex'] })
|
package/package.json
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"url": "https://github.com/xylabs/sdk-pixel-js/issues"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@xylabs/assert": "^3.
|
|
13
|
-
"@xylabs/lodash": "^3.
|
|
14
|
-
"async-mutex": "^0.
|
|
12
|
+
"@xylabs/assert": "^3.5.9",
|
|
13
|
+
"@xylabs/lodash": "^3.5.9",
|
|
14
|
+
"async-mutex": "^0.5.0",
|
|
15
15
|
"bowser": "^2.11.0",
|
|
16
16
|
"js-cookie": "^3.0.5",
|
|
17
17
|
"lodash-es": "^4.17.21",
|
|
@@ -25,25 +25,29 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/jest": "^29.5.12",
|
|
27
27
|
"@types/js-cookie": "^3.0.6",
|
|
28
|
-
"@types/jsdom": "^21.1.
|
|
28
|
+
"@types/jsdom": "^21.1.7",
|
|
29
29
|
"@types/lodash-es": "^4.17.12",
|
|
30
30
|
"@types/md5": "^2.3.5",
|
|
31
|
-
"@types/node": "^20.
|
|
31
|
+
"@types/node": "^20.14.10",
|
|
32
32
|
"@types/randombytes": "^2.0.3",
|
|
33
|
-
"@xylabs/eslint-config": "^3.
|
|
34
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
35
|
-
"@xylabs/tsconfig-dom": "^3.
|
|
36
|
-
"@xylabs/tsconfig-jest": "^3.
|
|
37
|
-
"
|
|
38
|
-
"
|
|
33
|
+
"@xylabs/eslint-config": "^3.11.12",
|
|
34
|
+
"@xylabs/ts-scripts-yarn3": "^3.11.12",
|
|
35
|
+
"@xylabs/tsconfig-dom": "^3.11.12",
|
|
36
|
+
"@xylabs/tsconfig-dom-jest": "^3.11.12",
|
|
37
|
+
"@xylabs/tsconfig-jest": "^3.11.12",
|
|
38
|
+
"axios": "^1.7.2",
|
|
39
|
+
"eslint": "^9.6.0",
|
|
39
40
|
"jest": "^29.7.0",
|
|
40
41
|
"jest-environment-jsdom": "^29.7.0",
|
|
41
|
-
"jsdom": "^24.
|
|
42
|
-
"npm-package-json-lint": "^
|
|
43
|
-
"reflect-metadata": "^0.2.
|
|
44
|
-
"ts-jest": "^29.
|
|
42
|
+
"jsdom": "^24.1.0",
|
|
43
|
+
"npm-package-json-lint": "^8.0.0",
|
|
44
|
+
"reflect-metadata": "^0.2.2",
|
|
45
|
+
"ts-jest": "^29.2.2",
|
|
45
46
|
"ts-node": "^10.9.2",
|
|
46
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.5.3"
|
|
48
|
+
},
|
|
49
|
+
"resolutions": {
|
|
50
|
+
"eslint": "^8"
|
|
47
51
|
},
|
|
48
52
|
"types": "dist/browser/index.d.ts",
|
|
49
53
|
"exports": {
|
|
@@ -85,7 +89,7 @@
|
|
|
85
89
|
"url": "https://github.com/xylabs/sdk-pixel-js.git"
|
|
86
90
|
},
|
|
87
91
|
"sideEffects": false,
|
|
88
|
-
"version": "1.
|
|
89
|
-
"packageManager": "yarn@4.
|
|
92
|
+
"version": "1.6.0",
|
|
93
|
+
"packageManager": "yarn@4.3.1",
|
|
90
94
|
"type": "module"
|
|
91
95
|
}
|
package/src/Api/Api.ts
CHANGED
package/src/Api/UserEvent.ts
CHANGED
package/src/Api/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './Api'
|
|
2
|
-
export * from './UserEvent'
|
|
3
|
-
export * from './UserEventSystem'
|
|
1
|
+
export * from './Api.js'
|
|
2
|
+
export * from './UserEvent.js'
|
|
3
|
+
export * from './UserEventSystem.js'
|
package/src/Pixel.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { Mutex } from 'async-mutex'
|
|
|
3
3
|
import Cookies from 'js-cookie'
|
|
4
4
|
import md5 from 'md5'
|
|
5
5
|
|
|
6
|
-
import { PixelApi, UserEvent } from './Api'
|
|
7
|
-
import { ExIds } from './ExIds'
|
|
8
|
-
import { getSystemInfo } from './getSystemInfo'
|
|
9
|
-
import { Referrer } from './Referrer'
|
|
10
|
-
import { UniqueUserId } from './UniqueUserId'
|
|
11
|
-
import { UtmFields } from './UtmFields'
|
|
6
|
+
import { PixelApi, UserEvent } from './Api/index.js'
|
|
7
|
+
import { ExIds } from './ExIds.js'
|
|
8
|
+
import { getSystemInfo } from './getSystemInfo.js'
|
|
9
|
+
import { Referrer } from './Referrer.js'
|
|
10
|
+
import { UniqueUserId } from './UniqueUserId.js'
|
|
11
|
+
import { UtmFields } from './UtmFields.js'
|
|
12
12
|
|
|
13
13
|
const emailHashLocalStorageName = 'xy_email_hash'
|
|
14
14
|
|
package/src/TestStartedFields.ts
CHANGED
package/src/UserClickFields.ts
CHANGED
package/src/UserEventHandler.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FunnelStartedFields } from './FunnelStartedFields'
|
|
2
|
-
import { TestStartedFields } from './TestStartedFields'
|
|
3
|
-
import { UserClickFields } from './UserClickFields'
|
|
4
|
-
import { ViewContentFields } from './ViewContentFields'
|
|
1
|
+
import { FunnelStartedFields } from './FunnelStartedFields.js'
|
|
2
|
+
import { TestStartedFields } from './TestStartedFields.js'
|
|
3
|
+
import { UserClickFields } from './UserClickFields.js'
|
|
4
|
+
import { ViewContentFields } from './ViewContentFields.js'
|
|
5
5
|
|
|
6
6
|
export abstract class UserEventHandler<T> {
|
|
7
7
|
abstract funnelStarted(fields: T | FunnelStartedFields): Promise<void>
|
package/src/ViewContentFields.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FunnelStartedFields } from './FunnelStartedFields'
|
|
2
|
-
import { XyPixel } from './Pixel'
|
|
3
|
-
import { TestStartedFields } from './TestStartedFields'
|
|
4
|
-
import { UserClickFields } from './UserClickFields'
|
|
5
|
-
import { UserEventHandler } from './UserEventHandler'
|
|
6
|
-
import { ViewContentFields } from './ViewContentFields'
|
|
1
|
+
import { FunnelStartedFields } from './FunnelStartedFields.js'
|
|
2
|
+
import { XyPixel } from './Pixel.js'
|
|
3
|
+
import { TestStartedFields } from './TestStartedFields.js'
|
|
4
|
+
import { UserClickFields } from './UserClickFields.js'
|
|
5
|
+
import { UserEventHandler } from './UserEventHandler.js'
|
|
6
|
+
import { ViewContentFields } from './ViewContentFields.js'
|
|
7
7
|
|
|
8
8
|
export class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {
|
|
9
9
|
constructor() {
|
package/src/getSystemInfo.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * from './Api'
|
|
2
|
-
export * from './FunnelStartedFields'
|
|
3
|
-
export * from './Pixel'
|
|
4
|
-
export * from './Referrer'
|
|
5
|
-
export * from './TestStartedFields'
|
|
6
|
-
export * from './UniqueUserId'
|
|
7
|
-
export * from './UserClickFields'
|
|
8
|
-
export * from './UserEventHandler'
|
|
9
|
-
export * from './UtmFields'
|
|
10
|
-
export * from './ViewContentFields'
|
|
11
|
-
export * from './XyLabsTrackingEventJson'
|
|
12
|
-
export * from './XyUserEventHandler'
|
|
1
|
+
export * from './Api/index.js'
|
|
2
|
+
export * from './FunnelStartedFields.js'
|
|
3
|
+
export * from './Pixel.js'
|
|
4
|
+
export * from './Referrer.js'
|
|
5
|
+
export * from './TestStartedFields.js'
|
|
6
|
+
export * from './UniqueUserId.js'
|
|
7
|
+
export * from './UserClickFields.js'
|
|
8
|
+
export * from './UserEventHandler.js'
|
|
9
|
+
export * from './UtmFields.js'
|
|
10
|
+
export * from './ViewContentFields.js'
|
|
11
|
+
export * from './XyLabsTrackingEventJson.js'
|
|
12
|
+
export * from './XyUserEventHandler.js'
|