@xylabs/pixel 1.6.0 → 2.0.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/index.d.ts +155 -13
- package/dist/browser/{index.js → index.mjs} +40 -14
- package/dist/browser/index.mjs.map +1 -0
- package/eslint.config.mjs +43 -0
- package/package.json +24 -48
- package/src/Pixel.ts +3 -3
- package/src/UniqueUserId.ts +1 -3
- package/src/UtmFields.ts +3 -3
- package/src/spec/Pixel.spec.ts +6 -2
- package/vitest.config.ts +12 -0
- package/vitest.startup.ts +8 -0
- package/xy.config.ts +10 -0
- package/dist/browser/Api/Api.d.cts +0 -7
- package/dist/browser/Api/Api.d.cts.map +0 -1
- package/dist/browser/Api/Api.d.mts +0 -7
- package/dist/browser/Api/Api.d.mts.map +0 -1
- package/dist/browser/Api/Api.d.ts +0 -7
- package/dist/browser/Api/Api.d.ts.map +0 -1
- package/dist/browser/Api/UserEvent.d.cts +0 -25
- package/dist/browser/Api/UserEvent.d.cts.map +0 -1
- package/dist/browser/Api/UserEvent.d.mts +0 -25
- package/dist/browser/Api/UserEvent.d.mts.map +0 -1
- package/dist/browser/Api/UserEvent.d.ts +0 -25
- package/dist/browser/Api/UserEvent.d.ts.map +0 -1
- package/dist/browser/Api/UserEventSystem.d.cts +0 -3
- package/dist/browser/Api/UserEventSystem.d.cts.map +0 -1
- package/dist/browser/Api/UserEventSystem.d.mts +0 -3
- package/dist/browser/Api/UserEventSystem.d.mts.map +0 -1
- package/dist/browser/Api/UserEventSystem.d.ts +0 -3
- package/dist/browser/Api/UserEventSystem.d.ts.map +0 -1
- package/dist/browser/Api/index.d.cts +0 -4
- package/dist/browser/Api/index.d.cts.map +0 -1
- package/dist/browser/Api/index.d.mts +0 -4
- package/dist/browser/Api/index.d.mts.map +0 -1
- package/dist/browser/Api/index.d.ts +0 -4
- package/dist/browser/Api/index.d.ts.map +0 -1
- package/dist/browser/CommonFields.d.cts +0 -5
- package/dist/browser/CommonFields.d.cts.map +0 -1
- package/dist/browser/CommonFields.d.mts +0 -5
- package/dist/browser/CommonFields.d.mts.map +0 -1
- package/dist/browser/CommonFields.d.ts +0 -5
- package/dist/browser/CommonFields.d.ts.map +0 -1
- package/dist/browser/ExIds.d.cts +0 -10
- package/dist/browser/ExIds.d.cts.map +0 -1
- package/dist/browser/ExIds.d.mts +0 -10
- package/dist/browser/ExIds.d.mts.map +0 -1
- package/dist/browser/ExIds.d.ts +0 -10
- package/dist/browser/ExIds.d.ts.map +0 -1
- package/dist/browser/FunnelStartedFields.d.cts +0 -5
- package/dist/browser/FunnelStartedFields.d.cts.map +0 -1
- package/dist/browser/FunnelStartedFields.d.mts +0 -5
- package/dist/browser/FunnelStartedFields.d.mts.map +0 -1
- package/dist/browser/FunnelStartedFields.d.ts +0 -5
- package/dist/browser/FunnelStartedFields.d.ts.map +0 -1
- package/dist/browser/Pixel.d.cts +0 -24
- package/dist/browser/Pixel.d.cts.map +0 -1
- package/dist/browser/Pixel.d.mts +0 -24
- package/dist/browser/Pixel.d.mts.map +0 -1
- package/dist/browser/Pixel.d.ts +0 -24
- package/dist/browser/Pixel.d.ts.map +0 -1
- package/dist/browser/Referrer.d.cts +0 -13
- package/dist/browser/Referrer.d.cts.map +0 -1
- package/dist/browser/Referrer.d.mts +0 -13
- package/dist/browser/Referrer.d.mts.map +0 -1
- package/dist/browser/Referrer.d.ts +0 -13
- package/dist/browser/Referrer.d.ts.map +0 -1
- package/dist/browser/TestStartedFields.d.cts +0 -5
- package/dist/browser/TestStartedFields.d.cts.map +0 -1
- package/dist/browser/TestStartedFields.d.mts +0 -5
- package/dist/browser/TestStartedFields.d.mts.map +0 -1
- package/dist/browser/TestStartedFields.d.ts +0 -5
- package/dist/browser/TestStartedFields.d.ts.map +0 -1
- package/dist/browser/UniqueUserId.d.cts +0 -8
- package/dist/browser/UniqueUserId.d.cts.map +0 -1
- package/dist/browser/UniqueUserId.d.mts +0 -8
- package/dist/browser/UniqueUserId.d.mts.map +0 -1
- package/dist/browser/UniqueUserId.d.ts +0 -8
- package/dist/browser/UniqueUserId.d.ts.map +0 -1
- package/dist/browser/UserClickFields.d.cts +0 -6
- package/dist/browser/UserClickFields.d.cts.map +0 -1
- package/dist/browser/UserClickFields.d.mts +0 -6
- package/dist/browser/UserClickFields.d.mts.map +0 -1
- package/dist/browser/UserClickFields.d.ts +0 -6
- package/dist/browser/UserClickFields.d.ts.map +0 -1
- package/dist/browser/UserEventHandler.d.cts +0 -11
- package/dist/browser/UserEventHandler.d.cts.map +0 -1
- package/dist/browser/UserEventHandler.d.mts +0 -11
- package/dist/browser/UserEventHandler.d.mts.map +0 -1
- package/dist/browser/UserEventHandler.d.ts +0 -11
- package/dist/browser/UserEventHandler.d.ts.map +0 -1
- package/dist/browser/UtmFields.d.cts +0 -9
- package/dist/browser/UtmFields.d.cts.map +0 -1
- package/dist/browser/UtmFields.d.mts +0 -9
- package/dist/browser/UtmFields.d.mts.map +0 -1
- package/dist/browser/UtmFields.d.ts +0 -9
- package/dist/browser/UtmFields.d.ts.map +0 -1
- package/dist/browser/ViewContentFields.d.cts +0 -6
- package/dist/browser/ViewContentFields.d.cts.map +0 -1
- package/dist/browser/ViewContentFields.d.mts +0 -6
- package/dist/browser/ViewContentFields.d.mts.map +0 -1
- package/dist/browser/ViewContentFields.d.ts +0 -6
- package/dist/browser/ViewContentFields.d.ts.map +0 -1
- package/dist/browser/XyLabsTrackingEventJson.d.cts +0 -21
- package/dist/browser/XyLabsTrackingEventJson.d.cts.map +0 -1
- package/dist/browser/XyLabsTrackingEventJson.d.mts +0 -21
- package/dist/browser/XyLabsTrackingEventJson.d.mts.map +0 -1
- package/dist/browser/XyLabsTrackingEventJson.d.ts +0 -21
- package/dist/browser/XyLabsTrackingEventJson.d.ts.map +0 -1
- package/dist/browser/XyUserEventHandler.d.cts +0 -13
- package/dist/browser/XyUserEventHandler.d.cts.map +0 -1
- package/dist/browser/XyUserEventHandler.d.mts +0 -13
- package/dist/browser/XyUserEventHandler.d.mts.map +0 -1
- package/dist/browser/XyUserEventHandler.d.ts +0 -13
- package/dist/browser/XyUserEventHandler.d.ts.map +0 -1
- package/dist/browser/getSystemInfo.d.cts +0 -2
- package/dist/browser/getSystemInfo.d.cts.map +0 -1
- package/dist/browser/getSystemInfo.d.mts +0 -2
- package/dist/browser/getSystemInfo.d.mts.map +0 -1
- package/dist/browser/getSystemInfo.d.ts +0 -2
- package/dist/browser/getSystemInfo.d.ts.map +0 -1
- package/dist/browser/index.cjs +0 -286
- package/dist/browser/index.cjs.map +0 -1
- package/dist/browser/index.d.cts +0 -13
- package/dist/browser/index.d.cts.map +0 -1
- package/dist/browser/index.d.mts +0 -13
- package/dist/browser/index.d.mts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/Api/Api.d.cts +0 -7
- package/dist/neutral/Api/Api.d.cts.map +0 -1
- package/dist/neutral/Api/Api.d.mts +0 -7
- package/dist/neutral/Api/Api.d.mts.map +0 -1
- package/dist/neutral/Api/Api.d.ts +0 -7
- package/dist/neutral/Api/Api.d.ts.map +0 -1
- package/dist/neutral/Api/UserEvent.d.cts +0 -25
- package/dist/neutral/Api/UserEvent.d.cts.map +0 -1
- package/dist/neutral/Api/UserEvent.d.mts +0 -25
- package/dist/neutral/Api/UserEvent.d.mts.map +0 -1
- package/dist/neutral/Api/UserEvent.d.ts +0 -25
- package/dist/neutral/Api/UserEvent.d.ts.map +0 -1
- package/dist/neutral/Api/UserEventSystem.d.cts +0 -3
- package/dist/neutral/Api/UserEventSystem.d.cts.map +0 -1
- package/dist/neutral/Api/UserEventSystem.d.mts +0 -3
- package/dist/neutral/Api/UserEventSystem.d.mts.map +0 -1
- package/dist/neutral/Api/UserEventSystem.d.ts +0 -3
- package/dist/neutral/Api/UserEventSystem.d.ts.map +0 -1
- package/dist/neutral/Api/index.d.cts +0 -4
- package/dist/neutral/Api/index.d.cts.map +0 -1
- package/dist/neutral/Api/index.d.mts +0 -4
- package/dist/neutral/Api/index.d.mts.map +0 -1
- package/dist/neutral/Api/index.d.ts +0 -4
- package/dist/neutral/Api/index.d.ts.map +0 -1
- package/dist/neutral/CommonFields.d.cts +0 -5
- package/dist/neutral/CommonFields.d.cts.map +0 -1
- package/dist/neutral/CommonFields.d.mts +0 -5
- package/dist/neutral/CommonFields.d.mts.map +0 -1
- package/dist/neutral/CommonFields.d.ts +0 -5
- package/dist/neutral/CommonFields.d.ts.map +0 -1
- package/dist/neutral/ExIds.d.cts +0 -10
- package/dist/neutral/ExIds.d.cts.map +0 -1
- package/dist/neutral/ExIds.d.mts +0 -10
- package/dist/neutral/ExIds.d.mts.map +0 -1
- package/dist/neutral/ExIds.d.ts +0 -10
- package/dist/neutral/ExIds.d.ts.map +0 -1
- package/dist/neutral/FunnelStartedFields.d.cts +0 -5
- package/dist/neutral/FunnelStartedFields.d.cts.map +0 -1
- package/dist/neutral/FunnelStartedFields.d.mts +0 -5
- package/dist/neutral/FunnelStartedFields.d.mts.map +0 -1
- package/dist/neutral/FunnelStartedFields.d.ts +0 -5
- package/dist/neutral/FunnelStartedFields.d.ts.map +0 -1
- package/dist/neutral/Pixel.d.cts +0 -24
- package/dist/neutral/Pixel.d.cts.map +0 -1
- package/dist/neutral/Pixel.d.mts +0 -24
- package/dist/neutral/Pixel.d.mts.map +0 -1
- package/dist/neutral/Pixel.d.ts +0 -24
- package/dist/neutral/Pixel.d.ts.map +0 -1
- package/dist/neutral/Referrer.d.cts +0 -13
- package/dist/neutral/Referrer.d.cts.map +0 -1
- package/dist/neutral/Referrer.d.mts +0 -13
- package/dist/neutral/Referrer.d.mts.map +0 -1
- package/dist/neutral/Referrer.d.ts +0 -13
- package/dist/neutral/Referrer.d.ts.map +0 -1
- package/dist/neutral/TestStartedFields.d.cts +0 -5
- package/dist/neutral/TestStartedFields.d.cts.map +0 -1
- package/dist/neutral/TestStartedFields.d.mts +0 -5
- package/dist/neutral/TestStartedFields.d.mts.map +0 -1
- package/dist/neutral/TestStartedFields.d.ts +0 -5
- package/dist/neutral/TestStartedFields.d.ts.map +0 -1
- package/dist/neutral/UniqueUserId.d.cts +0 -8
- package/dist/neutral/UniqueUserId.d.cts.map +0 -1
- package/dist/neutral/UniqueUserId.d.mts +0 -8
- package/dist/neutral/UniqueUserId.d.mts.map +0 -1
- package/dist/neutral/UniqueUserId.d.ts +0 -8
- package/dist/neutral/UniqueUserId.d.ts.map +0 -1
- package/dist/neutral/UserClickFields.d.cts +0 -6
- package/dist/neutral/UserClickFields.d.cts.map +0 -1
- package/dist/neutral/UserClickFields.d.mts +0 -6
- package/dist/neutral/UserClickFields.d.mts.map +0 -1
- package/dist/neutral/UserClickFields.d.ts +0 -6
- package/dist/neutral/UserClickFields.d.ts.map +0 -1
- package/dist/neutral/UserEventHandler.d.cts +0 -11
- package/dist/neutral/UserEventHandler.d.cts.map +0 -1
- package/dist/neutral/UserEventHandler.d.mts +0 -11
- package/dist/neutral/UserEventHandler.d.mts.map +0 -1
- package/dist/neutral/UserEventHandler.d.ts +0 -11
- package/dist/neutral/UserEventHandler.d.ts.map +0 -1
- package/dist/neutral/UtmFields.d.cts +0 -9
- package/dist/neutral/UtmFields.d.cts.map +0 -1
- package/dist/neutral/UtmFields.d.mts +0 -9
- package/dist/neutral/UtmFields.d.mts.map +0 -1
- package/dist/neutral/UtmFields.d.ts +0 -9
- package/dist/neutral/UtmFields.d.ts.map +0 -1
- package/dist/neutral/ViewContentFields.d.cts +0 -6
- package/dist/neutral/ViewContentFields.d.cts.map +0 -1
- package/dist/neutral/ViewContentFields.d.mts +0 -6
- package/dist/neutral/ViewContentFields.d.mts.map +0 -1
- package/dist/neutral/ViewContentFields.d.ts +0 -6
- package/dist/neutral/ViewContentFields.d.ts.map +0 -1
- package/dist/neutral/XyLabsTrackingEventJson.d.cts +0 -21
- package/dist/neutral/XyLabsTrackingEventJson.d.cts.map +0 -1
- package/dist/neutral/XyLabsTrackingEventJson.d.mts +0 -21
- package/dist/neutral/XyLabsTrackingEventJson.d.mts.map +0 -1
- package/dist/neutral/XyLabsTrackingEventJson.d.ts +0 -21
- package/dist/neutral/XyLabsTrackingEventJson.d.ts.map +0 -1
- package/dist/neutral/XyUserEventHandler.d.cts +0 -13
- package/dist/neutral/XyUserEventHandler.d.cts.map +0 -1
- package/dist/neutral/XyUserEventHandler.d.mts +0 -13
- package/dist/neutral/XyUserEventHandler.d.mts.map +0 -1
- package/dist/neutral/XyUserEventHandler.d.ts +0 -13
- package/dist/neutral/XyUserEventHandler.d.ts.map +0 -1
- package/dist/neutral/getSystemInfo.d.cts +0 -2
- package/dist/neutral/getSystemInfo.d.cts.map +0 -1
- package/dist/neutral/getSystemInfo.d.mts +0 -2
- package/dist/neutral/getSystemInfo.d.mts.map +0 -1
- package/dist/neutral/getSystemInfo.d.ts +0 -2
- package/dist/neutral/getSystemInfo.d.ts.map +0 -1
- package/dist/neutral/index.cjs +0 -286
- package/dist/neutral/index.cjs.map +0 -1
- package/dist/neutral/index.d.cts +0 -13
- package/dist/neutral/index.d.cts.map +0 -1
- package/dist/neutral/index.d.mts +0 -13
- package/dist/neutral/index.d.mts.map +0 -1
- package/dist/neutral/index.d.ts +0 -13
- package/dist/neutral/index.d.ts.map +0 -1
- package/dist/neutral/index.js +0 -253
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/Api/Api.d.cts +0 -7
- package/dist/node/Api/Api.d.cts.map +0 -1
- package/dist/node/Api/Api.d.mts +0 -7
- package/dist/node/Api/Api.d.mts.map +0 -1
- package/dist/node/Api/Api.d.ts +0 -7
- package/dist/node/Api/Api.d.ts.map +0 -1
- package/dist/node/Api/UserEvent.d.cts +0 -25
- package/dist/node/Api/UserEvent.d.cts.map +0 -1
- package/dist/node/Api/UserEvent.d.mts +0 -25
- package/dist/node/Api/UserEvent.d.mts.map +0 -1
- package/dist/node/Api/UserEvent.d.ts +0 -25
- package/dist/node/Api/UserEvent.d.ts.map +0 -1
- package/dist/node/Api/UserEventSystem.d.cts +0 -3
- package/dist/node/Api/UserEventSystem.d.cts.map +0 -1
- package/dist/node/Api/UserEventSystem.d.mts +0 -3
- package/dist/node/Api/UserEventSystem.d.mts.map +0 -1
- package/dist/node/Api/UserEventSystem.d.ts +0 -3
- package/dist/node/Api/UserEventSystem.d.ts.map +0 -1
- package/dist/node/Api/index.d.cts +0 -4
- package/dist/node/Api/index.d.cts.map +0 -1
- package/dist/node/Api/index.d.mts +0 -4
- package/dist/node/Api/index.d.mts.map +0 -1
- package/dist/node/Api/index.d.ts +0 -4
- package/dist/node/Api/index.d.ts.map +0 -1
- package/dist/node/CommonFields.d.cts +0 -5
- package/dist/node/CommonFields.d.cts.map +0 -1
- package/dist/node/CommonFields.d.mts +0 -5
- package/dist/node/CommonFields.d.mts.map +0 -1
- package/dist/node/CommonFields.d.ts +0 -5
- package/dist/node/CommonFields.d.ts.map +0 -1
- package/dist/node/ExIds.d.cts +0 -10
- package/dist/node/ExIds.d.cts.map +0 -1
- package/dist/node/ExIds.d.mts +0 -10
- package/dist/node/ExIds.d.mts.map +0 -1
- package/dist/node/ExIds.d.ts +0 -10
- package/dist/node/ExIds.d.ts.map +0 -1
- package/dist/node/FunnelStartedFields.d.cts +0 -5
- package/dist/node/FunnelStartedFields.d.cts.map +0 -1
- package/dist/node/FunnelStartedFields.d.mts +0 -5
- package/dist/node/FunnelStartedFields.d.mts.map +0 -1
- package/dist/node/FunnelStartedFields.d.ts +0 -5
- package/dist/node/FunnelStartedFields.d.ts.map +0 -1
- package/dist/node/Pixel.d.cts +0 -24
- package/dist/node/Pixel.d.cts.map +0 -1
- package/dist/node/Pixel.d.mts +0 -24
- package/dist/node/Pixel.d.mts.map +0 -1
- package/dist/node/Pixel.d.ts +0 -24
- package/dist/node/Pixel.d.ts.map +0 -1
- package/dist/node/Referrer.d.cts +0 -13
- package/dist/node/Referrer.d.cts.map +0 -1
- package/dist/node/Referrer.d.mts +0 -13
- package/dist/node/Referrer.d.mts.map +0 -1
- package/dist/node/Referrer.d.ts +0 -13
- package/dist/node/Referrer.d.ts.map +0 -1
- package/dist/node/TestStartedFields.d.cts +0 -5
- package/dist/node/TestStartedFields.d.cts.map +0 -1
- package/dist/node/TestStartedFields.d.mts +0 -5
- package/dist/node/TestStartedFields.d.mts.map +0 -1
- package/dist/node/TestStartedFields.d.ts +0 -5
- package/dist/node/TestStartedFields.d.ts.map +0 -1
- package/dist/node/UniqueUserId.d.cts +0 -8
- package/dist/node/UniqueUserId.d.cts.map +0 -1
- package/dist/node/UniqueUserId.d.mts +0 -8
- package/dist/node/UniqueUserId.d.mts.map +0 -1
- package/dist/node/UniqueUserId.d.ts +0 -8
- package/dist/node/UniqueUserId.d.ts.map +0 -1
- package/dist/node/UserClickFields.d.cts +0 -6
- package/dist/node/UserClickFields.d.cts.map +0 -1
- package/dist/node/UserClickFields.d.mts +0 -6
- package/dist/node/UserClickFields.d.mts.map +0 -1
- package/dist/node/UserClickFields.d.ts +0 -6
- package/dist/node/UserClickFields.d.ts.map +0 -1
- package/dist/node/UserEventHandler.d.cts +0 -11
- package/dist/node/UserEventHandler.d.cts.map +0 -1
- package/dist/node/UserEventHandler.d.mts +0 -11
- package/dist/node/UserEventHandler.d.mts.map +0 -1
- package/dist/node/UserEventHandler.d.ts +0 -11
- package/dist/node/UserEventHandler.d.ts.map +0 -1
- package/dist/node/UtmFields.d.cts +0 -9
- package/dist/node/UtmFields.d.cts.map +0 -1
- package/dist/node/UtmFields.d.mts +0 -9
- package/dist/node/UtmFields.d.mts.map +0 -1
- package/dist/node/UtmFields.d.ts +0 -9
- package/dist/node/UtmFields.d.ts.map +0 -1
- package/dist/node/ViewContentFields.d.cts +0 -6
- package/dist/node/ViewContentFields.d.cts.map +0 -1
- package/dist/node/ViewContentFields.d.mts +0 -6
- package/dist/node/ViewContentFields.d.mts.map +0 -1
- package/dist/node/ViewContentFields.d.ts +0 -6
- package/dist/node/ViewContentFields.d.ts.map +0 -1
- package/dist/node/XyLabsTrackingEventJson.d.cts +0 -21
- package/dist/node/XyLabsTrackingEventJson.d.cts.map +0 -1
- package/dist/node/XyLabsTrackingEventJson.d.mts +0 -21
- package/dist/node/XyLabsTrackingEventJson.d.mts.map +0 -1
- package/dist/node/XyLabsTrackingEventJson.d.ts +0 -21
- package/dist/node/XyLabsTrackingEventJson.d.ts.map +0 -1
- package/dist/node/XyUserEventHandler.d.cts +0 -13
- package/dist/node/XyUserEventHandler.d.cts.map +0 -1
- package/dist/node/XyUserEventHandler.d.mts +0 -13
- package/dist/node/XyUserEventHandler.d.mts.map +0 -1
- package/dist/node/XyUserEventHandler.d.ts +0 -13
- package/dist/node/XyUserEventHandler.d.ts.map +0 -1
- package/dist/node/getSystemInfo.d.cts +0 -2
- package/dist/node/getSystemInfo.d.cts.map +0 -1
- package/dist/node/getSystemInfo.d.mts +0 -2
- package/dist/node/getSystemInfo.d.mts.map +0 -1
- package/dist/node/getSystemInfo.d.ts +0 -2
- package/dist/node/getSystemInfo.d.ts.map +0 -1
- package/dist/node/index.cjs +0 -297
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.d.cts +0 -13
- package/dist/node/index.d.cts.map +0 -1
- package/dist/node/index.d.mts +0 -13
- package/dist/node/index.d.mts.map +0 -1
- package/dist/node/index.d.ts +0 -13
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.js +0 -254
- package/dist/node/index.js.map +0 -1
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,13 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import Bowser from 'bowser';
|
|
2
|
+
|
|
3
|
+
interface ExIds {
|
|
4
|
+
fbc?: string;
|
|
5
|
+
fbp?: string;
|
|
6
|
+
ga?: string;
|
|
7
|
+
gclid?: string;
|
|
8
|
+
rdt_uid?: string;
|
|
9
|
+
scid?: string;
|
|
10
|
+
tt_sessionId?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type UserEventSystem = Bowser.Parser.ParsedResult;
|
|
14
|
+
|
|
15
|
+
interface UserEvent {
|
|
16
|
+
cid: string;
|
|
17
|
+
create_time?: number;
|
|
18
|
+
email?: string;
|
|
19
|
+
email_hash?: string;
|
|
20
|
+
event?: string;
|
|
21
|
+
event_id?: string;
|
|
22
|
+
exids?: ExIds;
|
|
23
|
+
fields?: Record<string, unknown>;
|
|
24
|
+
host?: string;
|
|
25
|
+
pathname?: string;
|
|
26
|
+
pixel?: string;
|
|
27
|
+
receive_time?: number;
|
|
28
|
+
referrer?: {
|
|
29
|
+
local: string;
|
|
30
|
+
session: string;
|
|
31
|
+
};
|
|
32
|
+
rid?: string;
|
|
33
|
+
system?: UserEventSystem;
|
|
34
|
+
uid?: string;
|
|
35
|
+
utm?: Record<string, string>[] | Record<string, string[]>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare class PixelApi {
|
|
39
|
+
private endPoint;
|
|
40
|
+
constructor(baseUri?: string);
|
|
41
|
+
trackEvents(events: UserEvent[]): Promise<any>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface CommonFields extends Record<string, unknown> {
|
|
45
|
+
funnel?: string;
|
|
46
|
+
testData?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
interface FunnelStartedFields extends CommonFields {
|
|
50
|
+
name: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
declare class XyPixel {
|
|
54
|
+
static api: PixelApi;
|
|
55
|
+
private static _instance?;
|
|
56
|
+
private static utmFieldsObj;
|
|
57
|
+
cid: string;
|
|
58
|
+
email?: string;
|
|
59
|
+
email_hash?: string | null;
|
|
60
|
+
exids?: ExIds;
|
|
61
|
+
pixelId?: string;
|
|
62
|
+
queue: UserEvent[];
|
|
63
|
+
private queueMutex;
|
|
64
|
+
private constructor();
|
|
65
|
+
static get instance(): XyPixel;
|
|
66
|
+
static init(pixelId: string): XyPixel;
|
|
67
|
+
static selectApi(api: PixelApi): void;
|
|
68
|
+
private static utmFields;
|
|
69
|
+
identify(email?: string): void;
|
|
70
|
+
send<T extends Record<string, unknown>>(event: string, fields?: T, eventId?: string): Promise<void>;
|
|
71
|
+
private tryFlushQueue;
|
|
72
|
+
private updateFbId;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
declare class Referrer {
|
|
76
|
+
private static storageId;
|
|
77
|
+
local: string;
|
|
78
|
+
session: string;
|
|
79
|
+
constructor();
|
|
80
|
+
toJson(): {
|
|
81
|
+
local: string;
|
|
82
|
+
session: string;
|
|
83
|
+
} | undefined;
|
|
84
|
+
private getFromLocal;
|
|
85
|
+
private getFromSession;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface TestStartedFields extends CommonFields {
|
|
89
|
+
name: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
declare class UniqueUserId {
|
|
93
|
+
private static localStorageId;
|
|
94
|
+
id: string;
|
|
95
|
+
constructor();
|
|
96
|
+
toString(): string;
|
|
97
|
+
private generateId;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
interface UserClickFields extends CommonFields {
|
|
101
|
+
elementName: string;
|
|
102
|
+
elementType: string;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
interface ViewContentFields extends CommonFields {
|
|
106
|
+
name: string;
|
|
107
|
+
path: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
declare abstract class UserEventHandler<T> {
|
|
111
|
+
abstract funnelStarted(fields: T | FunnelStartedFields): Promise<void>;
|
|
112
|
+
abstract testStarted(fields: T | TestStartedFields): Promise<void>;
|
|
113
|
+
abstract userClick(fields: T | UserClickFields): Promise<void>;
|
|
114
|
+
abstract viewContent(fields: T | ViewContentFields): Promise<void>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
declare class UtmFields {
|
|
118
|
+
private static localStorageId;
|
|
119
|
+
fields: Record<string, string>[];
|
|
120
|
+
constructor();
|
|
121
|
+
getUtmRecord: () => Record<string, string> | null;
|
|
122
|
+
toString(): string;
|
|
123
|
+
update(): Record<string, string>[];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
interface XyLabsTrackingEventJson {
|
|
127
|
+
cid: string;
|
|
128
|
+
create_time?: number;
|
|
129
|
+
email?: string;
|
|
130
|
+
email_hash?: string;
|
|
131
|
+
event?: string;
|
|
132
|
+
event_id?: string;
|
|
133
|
+
exids?: Record<string, string>;
|
|
134
|
+
fields?: Record<string, unknown>;
|
|
135
|
+
host?: string;
|
|
136
|
+
ip?: string;
|
|
137
|
+
pathname?: string;
|
|
138
|
+
pixel?: string;
|
|
139
|
+
receive_time?: number;
|
|
140
|
+
rid?: string;
|
|
141
|
+
system?: unknown;
|
|
142
|
+
ua?: string;
|
|
143
|
+
uid?: string;
|
|
144
|
+
utm?: Record<string, string>[] | Record<string, string[]>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
declare class XyUserEventHandler<T extends Record<string, unknown>> extends UserEventHandler<T> {
|
|
148
|
+
constructor();
|
|
149
|
+
funnelStarted(fields: T | FunnelStartedFields): Promise<void>;
|
|
150
|
+
testStarted(fields: T | TestStartedFields): Promise<void>;
|
|
151
|
+
userClick(fields: T | UserClickFields): Promise<void>;
|
|
152
|
+
viewContent(fields: T | ViewContentFields): Promise<void>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export { type FunnelStartedFields, PixelApi, Referrer, type TestStartedFields, UniqueUserId, type UserClickFields, type UserEvent, UserEventHandler, type UserEventSystem, UtmFields, type ViewContentFields, type XyLabsTrackingEventJson, XyPixel, XyUserEventHandler };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/Api/Api.ts
|
|
2
5
|
import axios from "axios";
|
|
3
6
|
var apiBaseUri = {
|
|
@@ -6,6 +9,9 @@ var apiBaseUri = {
|
|
|
6
9
|
prod: "https://pixel.xylabs.com"
|
|
7
10
|
};
|
|
8
11
|
var PixelApi = class {
|
|
12
|
+
static {
|
|
13
|
+
__name(this, "PixelApi");
|
|
14
|
+
}
|
|
9
15
|
endPoint;
|
|
10
16
|
/* baseUri can either be a preset (prod, beta, local), or a specific uri */
|
|
11
17
|
constructor(baseUri = "prod") {
|
|
@@ -20,22 +26,25 @@ var PixelApi = class {
|
|
|
20
26
|
import { assertEx } from "@xylabs/assert";
|
|
21
27
|
import { Mutex } from "async-mutex";
|
|
22
28
|
import Cookies from "js-cookie";
|
|
23
|
-
import md5 from "md5";
|
|
29
|
+
import md5 from "spark-md5";
|
|
24
30
|
|
|
25
31
|
// src/getSystemInfo.ts
|
|
26
32
|
import { parse } from "bowser";
|
|
27
33
|
var systemInfo;
|
|
28
|
-
var getSystemInfo = () => {
|
|
34
|
+
var getSystemInfo = /* @__PURE__ */ __name(() => {
|
|
29
35
|
try {
|
|
30
36
|
systemInfo = systemInfo || parse(window.navigator.userAgent);
|
|
31
37
|
} catch (ex) {
|
|
32
38
|
console.log(`getSystemInfo Error: ${ex}`);
|
|
33
39
|
}
|
|
34
40
|
return systemInfo;
|
|
35
|
-
};
|
|
41
|
+
}, "getSystemInfo");
|
|
36
42
|
|
|
37
43
|
// src/Referrer.ts
|
|
38
44
|
var Referrer = class _Referrer {
|
|
45
|
+
static {
|
|
46
|
+
__name(this, "Referrer");
|
|
47
|
+
}
|
|
39
48
|
static storageId = "_coin_referrer";
|
|
40
49
|
local;
|
|
41
50
|
session;
|
|
@@ -68,8 +77,10 @@ var Referrer = class _Referrer {
|
|
|
68
77
|
};
|
|
69
78
|
|
|
70
79
|
// src/UniqueUserId.ts
|
|
71
|
-
import randomBytes from "randombytes";
|
|
72
80
|
var UniqueUserId = class _UniqueUserId {
|
|
81
|
+
static {
|
|
82
|
+
__name(this, "UniqueUserId");
|
|
83
|
+
}
|
|
73
84
|
static localStorageId = "_coin_cid";
|
|
74
85
|
id;
|
|
75
86
|
constructor() {
|
|
@@ -80,13 +91,16 @@ var UniqueUserId = class _UniqueUserId {
|
|
|
80
91
|
return this.id;
|
|
81
92
|
}
|
|
82
93
|
generateId() {
|
|
83
|
-
return
|
|
94
|
+
return crypto.randomUUID();
|
|
84
95
|
}
|
|
85
96
|
};
|
|
86
97
|
|
|
87
98
|
// src/UtmFields.ts
|
|
88
|
-
import
|
|
99
|
+
import isEqual from "fast-deep-equal";
|
|
89
100
|
var UtmFields = class _UtmFields {
|
|
101
|
+
static {
|
|
102
|
+
__name(this, "UtmFields");
|
|
103
|
+
}
|
|
90
104
|
static localStorageId = "_coin_utm";
|
|
91
105
|
fields = [];
|
|
92
106
|
constructor() {
|
|
@@ -102,7 +116,7 @@ var UtmFields = class _UtmFields {
|
|
|
102
116
|
this.update();
|
|
103
117
|
window.localStorage.setItem(_UtmFields.localStorageId, JSON.stringify(this.fields));
|
|
104
118
|
}
|
|
105
|
-
getUtmRecord = () => {
|
|
119
|
+
getUtmRecord = /* @__PURE__ */ __name(() => {
|
|
106
120
|
const record = {};
|
|
107
121
|
const parsedQueryString = document.location.search.split("?")[1]?.split("&") ?? [];
|
|
108
122
|
parsedQueryString.map((item) => {
|
|
@@ -113,11 +127,11 @@ var UtmFields = class _UtmFields {
|
|
|
113
127
|
}
|
|
114
128
|
});
|
|
115
129
|
return Object.keys(record).length > 0 ? record : null;
|
|
116
|
-
};
|
|
130
|
+
}, "getUtmRecord");
|
|
117
131
|
toString() {
|
|
118
132
|
return JSON.stringify(this.fields);
|
|
119
133
|
}
|
|
120
|
-
//check the query string and if there an new/updated utm values, add them to the fields
|
|
134
|
+
// check the query string and if there an new/updated utm values, add them to the fields
|
|
121
135
|
update() {
|
|
122
136
|
const record = this.getUtmRecord();
|
|
123
137
|
if (record && !isEqual(this.fields.at(-1), record)) {
|
|
@@ -130,6 +144,9 @@ var UtmFields = class _UtmFields {
|
|
|
130
144
|
// src/Pixel.ts
|
|
131
145
|
var emailHashLocalStorageName = "xy_email_hash";
|
|
132
146
|
var XyPixel = class _XyPixel {
|
|
147
|
+
static {
|
|
148
|
+
__name(this, "XyPixel");
|
|
149
|
+
}
|
|
133
150
|
static api = new PixelApi();
|
|
134
151
|
static _instance;
|
|
135
152
|
static utmFieldsObj;
|
|
@@ -154,15 +171,15 @@ var XyPixel = class _XyPixel {
|
|
|
154
171
|
static selectApi(api) {
|
|
155
172
|
this.api = api;
|
|
156
173
|
}
|
|
157
|
-
static utmFields = () => {
|
|
174
|
+
static utmFields = /* @__PURE__ */ __name(() => {
|
|
158
175
|
if (_XyPixel.utmFieldsObj === void 0) {
|
|
159
176
|
_XyPixel.utmFieldsObj = new UtmFields();
|
|
160
177
|
}
|
|
161
178
|
return _XyPixel.utmFieldsObj;
|
|
162
|
-
};
|
|
179
|
+
}, "utmFields");
|
|
163
180
|
identify(email) {
|
|
164
181
|
this.email = email;
|
|
165
|
-
this.email_hash = email ? md5(email) : void 0;
|
|
182
|
+
this.email_hash = email ? md5.hash(email, true) : void 0;
|
|
166
183
|
if (this.email_hash) {
|
|
167
184
|
localStorage.setItem(emailHashLocalStorageName, this.email_hash);
|
|
168
185
|
}
|
|
@@ -199,7 +216,10 @@ var XyPixel = class _XyPixel {
|
|
|
199
216
|
await api.trackEvents(events);
|
|
200
217
|
} catch (ex) {
|
|
201
218
|
if (events) {
|
|
202
|
-
this.queue = [
|
|
219
|
+
this.queue = [
|
|
220
|
+
...this.queue,
|
|
221
|
+
...events
|
|
222
|
+
];
|
|
203
223
|
}
|
|
204
224
|
console.error(ex);
|
|
205
225
|
}
|
|
@@ -221,10 +241,16 @@ var XyPixel = class _XyPixel {
|
|
|
221
241
|
|
|
222
242
|
// src/UserEventHandler.ts
|
|
223
243
|
var UserEventHandler = class {
|
|
244
|
+
static {
|
|
245
|
+
__name(this, "UserEventHandler");
|
|
246
|
+
}
|
|
224
247
|
};
|
|
225
248
|
|
|
226
249
|
// src/XyUserEventHandler.ts
|
|
227
250
|
var XyUserEventHandler = class extends UserEventHandler {
|
|
251
|
+
static {
|
|
252
|
+
__name(this, "XyUserEventHandler");
|
|
253
|
+
}
|
|
228
254
|
constructor() {
|
|
229
255
|
super();
|
|
230
256
|
}
|
|
@@ -250,4 +276,4 @@ export {
|
|
|
250
276
|
XyPixel,
|
|
251
277
|
XyUserEventHandler
|
|
252
278
|
};
|
|
253
|
-
//# sourceMappingURL=index.
|
|
279
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +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.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 'spark-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.hash(email, true) : 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","export 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 crypto.randomUUID()\n }\n}\n","import isEqual from 'fast-deep-equal'\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":["axios","apiBaseUri","beta","local","prod","PixelApi","endPoint","constructor","baseUri","trackEvents","events","axios","post","data","assertEx","Mutex","Cookies","md5","parse","systemInfo","getSystemInfo","parse","window","navigator","userAgent","ex","console","log","Referrer","storageId","local","session","constructor","getFromSession","document","referrer","sessionStorage","setItem","getFromLocal","window","localStorage","toJson","length","value","getItem","UniqueUserId","localStorageId","id","constructor","window","localStorage","getItem","generateId","setItem","toString","crypto","randomUUID","isEqual","UtmFields","localStorageId","fields","constructor","storedString","window","localStorage","getItem","JSON","parse","Array","isArray","update","setItem","stringify","getUtmRecord","record","parsedQueryString","document","location","search","split","map","item","fullKey","value","keyCategory","keyName","Object","keys","length","toString","isEqual","at","push","undefined","emailHashLocalStorageName","XyPixel","api","PixelApi","_instance","utmFieldsObj","cid","UniqueUserId","id","email","email_hash","exids","pixelId","queue","queueMutex","Mutex","localStorage","getItem","instance","assertEx","init","selectApi","utmFields","undefined","UtmFields","identify","md5","hash","setItem","send","event","fields","eventId","updateFbId","utm","update","referrer","Referrer","push","create_time","Date","now","event_id","host","document","location","pathname","pixel","toJson","system","getSystemInfo","tryFlushQueue","runExclusive","length","events","trackEvents","ex","console","error","fbc","Cookies","get","fbp","ga","gclid","rdt_uid","scid","tt_sessionId","sessionStorage","UserEventHandler","XyUserEventHandler","UserEventHandler","constructor","funnelStarted","fields","XyPixel","instance","send","testStarted","userClick","viewContent"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// eslint.config.mjs
|
|
2
|
+
|
|
3
|
+
import { config as xylabsConfig, rulesConfig, importConfig } from '@xylabs/eslint-config-flat'
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
{
|
|
7
|
+
ignores: ['.yarn/**', 'jest.config.cjs', '**/dist/**', 'dist', 'build/**', 'node_modules/**'],
|
|
8
|
+
},
|
|
9
|
+
...xylabsConfig,
|
|
10
|
+
{
|
|
11
|
+
rules: {
|
|
12
|
+
'no-restricted-imports': [
|
|
13
|
+
'warn',
|
|
14
|
+
{
|
|
15
|
+
paths: [
|
|
16
|
+
...rulesConfig.rules['no-restricted-imports'][1].paths,
|
|
17
|
+
'@types/node',
|
|
18
|
+
'@xyo-network/archivist',
|
|
19
|
+
'@xyo-network/bridge',
|
|
20
|
+
'@xyo-network/core',
|
|
21
|
+
'@xyo-network/diviner',
|
|
22
|
+
'@xyo-network/module',
|
|
23
|
+
'@xyo-network/modules',
|
|
24
|
+
'@xyo-network/node',
|
|
25
|
+
'@xyo-network/sdk',
|
|
26
|
+
'@xyo-network/plugins',
|
|
27
|
+
'@xyo-network/protocol',
|
|
28
|
+
'@xyo-network/sentinel',
|
|
29
|
+
'@xyo-network/witness',
|
|
30
|
+
'@xyo-network/core-payload-plugins',
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
...importConfig,
|
|
38
|
+
rules: {
|
|
39
|
+
...importConfig.rules,
|
|
40
|
+
'import-x/no-cycle': ['warn', { maxDepth: 5 }]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
]
|
package/package.json
CHANGED
|
@@ -9,17 +9,13 @@
|
|
|
9
9
|
"url": "https://github.com/xylabs/sdk-pixel-js/issues"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@xylabs/assert": "^
|
|
13
|
-
"@xylabs/lodash": "^3.5.9",
|
|
12
|
+
"@xylabs/assert": "^4.0.1",
|
|
14
13
|
"async-mutex": "^0.5.0",
|
|
14
|
+
"axios": "^1.7.4",
|
|
15
15
|
"bowser": "^2.11.0",
|
|
16
|
+
"fast-deep-equal": "^3.1.3",
|
|
16
17
|
"js-cookie": "^3.0.5",
|
|
17
|
-
"
|
|
18
|
-
"md5": "^2.3.0",
|
|
19
|
-
"randombytes": "^2.1.0"
|
|
20
|
-
},
|
|
21
|
-
"peerDependencies": {
|
|
22
|
-
"axios": "^1.2"
|
|
18
|
+
"spark-md5": "^3.0.2"
|
|
23
19
|
},
|
|
24
20
|
"description": "Event Client for xylabs ESB",
|
|
25
21
|
"devDependencies": {
|
|
@@ -27,57 +23,37 @@
|
|
|
27
23
|
"@types/js-cookie": "^3.0.6",
|
|
28
24
|
"@types/jsdom": "^21.1.7",
|
|
29
25
|
"@types/lodash-es": "^4.17.12",
|
|
30
|
-
"@types/
|
|
31
|
-
"@types/node": "^20.14.10",
|
|
26
|
+
"@types/node": "^22.3.0",
|
|
32
27
|
"@types/randombytes": "^2.0.3",
|
|
33
|
-
"@
|
|
34
|
-
"@xylabs/
|
|
35
|
-
"@xylabs/
|
|
36
|
-
"@xylabs/tsconfig-dom
|
|
37
|
-
"@xylabs/tsconfig-jest": "^
|
|
38
|
-
"
|
|
39
|
-
"
|
|
28
|
+
"@types/spark-md5": "^3.0.4",
|
|
29
|
+
"@xylabs/eslint-config-flat": "^4.0.0-rc.15",
|
|
30
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
|
|
31
|
+
"@xylabs/tsconfig-dom": "^4.0.0-rc.15",
|
|
32
|
+
"@xylabs/tsconfig-dom-jest": "^4.0.0-rc.15",
|
|
33
|
+
"@xylabs/tsconfig-jest": "^4.0.0-rc.15",
|
|
34
|
+
"axios": "^1.7.4",
|
|
35
|
+
"dotenv": "^16.4.5",
|
|
36
|
+
"eslint": "^9.9.0",
|
|
37
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
40
38
|
"jest": "^29.7.0",
|
|
41
39
|
"jest-environment-jsdom": "^29.7.0",
|
|
42
|
-
"jsdom": "^24.1.
|
|
40
|
+
"jsdom": "^24.1.1",
|
|
43
41
|
"npm-package-json-lint": "^8.0.0",
|
|
44
42
|
"reflect-metadata": "^0.2.2",
|
|
45
|
-
"ts-jest": "^29.2.
|
|
43
|
+
"ts-jest": "^29.2.4",
|
|
46
44
|
"ts-node": "^10.9.2",
|
|
47
|
-
"typescript": "^5.5.
|
|
48
|
-
|
|
49
|
-
"resolutions": {
|
|
50
|
-
"eslint": "^8"
|
|
45
|
+
"typescript": "^5.5.4",
|
|
46
|
+
"vitest": "^2.0.5"
|
|
51
47
|
},
|
|
52
48
|
"types": "dist/browser/index.d.ts",
|
|
53
49
|
"exports": {
|
|
54
50
|
".": {
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
"types": "./dist/node/index.d.mts",
|
|
58
|
-
"default": "./dist/node/index.js"
|
|
59
|
-
},
|
|
60
|
-
"require": {
|
|
61
|
-
"types": "./dist/node/index.d.cts",
|
|
62
|
-
"default": "./dist/node/index.cjs"
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
"browser": {
|
|
66
|
-
"import": {
|
|
67
|
-
"types": "./dist/browser/index.d.mts",
|
|
68
|
-
"default": "./dist/browser/index.js"
|
|
69
|
-
},
|
|
70
|
-
"require": {
|
|
71
|
-
"types": "./dist/browser/index.d.cts",
|
|
72
|
-
"default": "./dist/browser/index.cjs"
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"default": "./dist/browser/index.js"
|
|
51
|
+
"types": "./dist/browser/index.d.ts",
|
|
52
|
+
"default": "./dist/browser/index.mjs"
|
|
76
53
|
},
|
|
77
54
|
"./package.json": "./package.json"
|
|
78
55
|
},
|
|
79
|
-
"
|
|
80
|
-
"module": "dist/browser/index.js",
|
|
56
|
+
"module": "dist/browser/index.mjs",
|
|
81
57
|
"homepage": "https://xylabs.com",
|
|
82
58
|
"license": "LGPL-3.0-or-later",
|
|
83
59
|
"name": "@xylabs/pixel",
|
|
@@ -89,7 +65,7 @@
|
|
|
89
65
|
"url": "https://github.com/xylabs/sdk-pixel-js.git"
|
|
90
66
|
},
|
|
91
67
|
"sideEffects": false,
|
|
92
|
-
"version": "
|
|
93
|
-
"packageManager": "yarn@4.
|
|
68
|
+
"version": "2.0.0",
|
|
69
|
+
"packageManager": "yarn@4.4.0",
|
|
94
70
|
"type": "module"
|
|
95
71
|
}
|
package/src/Pixel.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { Mutex } from 'async-mutex'
|
|
3
3
|
import Cookies from 'js-cookie'
|
|
4
|
-
import md5 from 'md5'
|
|
4
|
+
import md5 from 'spark-md5'
|
|
5
5
|
|
|
6
6
|
import { PixelApi, UserEvent } from './Api/index.js'
|
|
7
7
|
import { ExIds } from './ExIds.js'
|
|
@@ -55,7 +55,7 @@ export class XyPixel {
|
|
|
55
55
|
|
|
56
56
|
identify(email?: string) {
|
|
57
57
|
this.email = email
|
|
58
|
-
this.email_hash = email ? md5(email) : undefined
|
|
58
|
+
this.email_hash = email ? md5.hash(email, true) : undefined
|
|
59
59
|
if (this.email_hash) {
|
|
60
60
|
localStorage.setItem(emailHashLocalStorageName, this.email_hash)
|
|
61
61
|
}
|
|
@@ -94,7 +94,7 @@ export class XyPixel {
|
|
|
94
94
|
await api.trackEvents(events)
|
|
95
95
|
} catch (ex) {
|
|
96
96
|
if (events) {
|
|
97
|
-
//put it back since it failed
|
|
97
|
+
// put it back since it failed
|
|
98
98
|
this.queue = [...this.queue, ...events]
|
|
99
99
|
}
|
|
100
100
|
console.error(ex)
|
package/src/UniqueUserId.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import randomBytes from 'randombytes'
|
|
2
|
-
|
|
3
1
|
export class UniqueUserId {
|
|
4
2
|
private static localStorageId = '_coin_cid'
|
|
5
3
|
id: string
|
|
@@ -14,6 +12,6 @@ export class UniqueUserId {
|
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
private generateId() {
|
|
17
|
-
return
|
|
15
|
+
return crypto.randomUUID()
|
|
18
16
|
}
|
|
19
17
|
}
|
package/src/UtmFields.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import isEqual from 'fast-deep-equal'
|
|
2
2
|
|
|
3
3
|
export class UtmFields {
|
|
4
4
|
private static localStorageId = '_coin_utm'
|
|
@@ -10,7 +10,7 @@ export class UtmFields {
|
|
|
10
10
|
} catch {
|
|
11
11
|
this.fields = []
|
|
12
12
|
}
|
|
13
|
-
//this clears the old object version if needed
|
|
13
|
+
// this clears the old object version if needed
|
|
14
14
|
if (!Array.isArray(this.fields)) {
|
|
15
15
|
this.fields = []
|
|
16
16
|
}
|
|
@@ -35,7 +35,7 @@ export class UtmFields {
|
|
|
35
35
|
return JSON.stringify(this.fields)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
//check the query string and if there an new/updated utm values, add them to the fields
|
|
38
|
+
// check the query string and if there an new/updated utm values, add them to the fields
|
|
39
39
|
update() {
|
|
40
40
|
const record = this.getUtmRecord()
|
|
41
41
|
if (record && !isEqual(this.fields.at(-1), record)) {
|
package/src/spec/Pixel.spec.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { PixelApi } from '../Api/index.ts'
|
|
6
|
+
import { XyPixel } from '../Pixel.ts'
|
|
3
7
|
|
|
4
8
|
test('all', async () => {
|
|
5
9
|
XyPixel.api = new PixelApi('prod')
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import dotenv from 'dotenv'
|
|
2
|
+
// eslint-disable-next-line import-x/no-internal-modules
|
|
3
|
+
import { defineConfig } from 'vitest/config'
|
|
4
|
+
|
|
5
|
+
dotenv.config()
|
|
6
|
+
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
test: {
|
|
9
|
+
globals: true,
|
|
10
|
+
setupFiles: ['./vitest.startup.ts'],
|
|
11
|
+
},
|
|
12
|
+
})
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as matchers from 'jest-extended'
|
|
2
|
+
import { expect, vi } from 'vitest'
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
(globalThis as any).jest = vi // replace jest with vi
|
|
6
|
+
|
|
7
|
+
// Extend Vitest's expect with jest-extended matchers
|
|
8
|
+
expect.extend(matchers)
|
package/xy.config.ts
ADDED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../src/Api/Api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQ1C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAQ;gBAGZ,OAAO,SAAS;IAItB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE;CAGtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../../src/Api/Api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQ1C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAQ;gBAGZ,OAAO,SAAS;IAItB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE;CAGtC"}
|