@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.
Files changed (272) hide show
  1. package/dist/browser/Api/Api.d.cts +1 -1
  2. package/dist/browser/Api/Api.d.cts.map +1 -1
  3. package/dist/browser/Api/Api.d.mts +1 -1
  4. package/dist/browser/Api/Api.d.mts.map +1 -1
  5. package/dist/browser/Api/Api.d.ts +1 -1
  6. package/dist/browser/Api/Api.d.ts.map +1 -1
  7. package/dist/browser/Api/UserEvent.d.cts +2 -2
  8. package/dist/browser/Api/UserEvent.d.cts.map +1 -1
  9. package/dist/browser/Api/UserEvent.d.mts +2 -2
  10. package/dist/browser/Api/UserEvent.d.mts.map +1 -1
  11. package/dist/browser/Api/UserEvent.d.ts +2 -2
  12. package/dist/browser/Api/UserEvent.d.ts.map +1 -1
  13. package/dist/browser/Api/index.d.cts +3 -3
  14. package/dist/browser/Api/index.d.cts.map +1 -1
  15. package/dist/browser/Api/index.d.mts +3 -3
  16. package/dist/browser/Api/index.d.mts.map +1 -1
  17. package/dist/browser/Api/index.d.ts +3 -3
  18. package/dist/browser/Api/index.d.ts.map +1 -1
  19. package/dist/browser/FunnelStartedFields.d.cts +1 -1
  20. package/dist/browser/FunnelStartedFields.d.cts.map +1 -1
  21. package/dist/browser/FunnelStartedFields.d.mts +1 -1
  22. package/dist/browser/FunnelStartedFields.d.mts.map +1 -1
  23. package/dist/browser/FunnelStartedFields.d.ts +1 -1
  24. package/dist/browser/FunnelStartedFields.d.ts.map +1 -1
  25. package/dist/browser/Pixel.d.cts +2 -2
  26. package/dist/browser/Pixel.d.cts.map +1 -1
  27. package/dist/browser/Pixel.d.mts +2 -2
  28. package/dist/browser/Pixel.d.mts.map +1 -1
  29. package/dist/browser/Pixel.d.ts +2 -2
  30. package/dist/browser/Pixel.d.ts.map +1 -1
  31. package/dist/browser/TestStartedFields.d.cts +1 -1
  32. package/dist/browser/TestStartedFields.d.cts.map +1 -1
  33. package/dist/browser/TestStartedFields.d.mts +1 -1
  34. package/dist/browser/TestStartedFields.d.mts.map +1 -1
  35. package/dist/browser/TestStartedFields.d.ts +1 -1
  36. package/dist/browser/TestStartedFields.d.ts.map +1 -1
  37. package/dist/browser/UserClickFields.d.cts +1 -1
  38. package/dist/browser/UserClickFields.d.cts.map +1 -1
  39. package/dist/browser/UserClickFields.d.mts +1 -1
  40. package/dist/browser/UserClickFields.d.mts.map +1 -1
  41. package/dist/browser/UserClickFields.d.ts +1 -1
  42. package/dist/browser/UserClickFields.d.ts.map +1 -1
  43. package/dist/browser/UserEventHandler.d.cts +4 -4
  44. package/dist/browser/UserEventHandler.d.cts.map +1 -1
  45. package/dist/browser/UserEventHandler.d.mts +4 -4
  46. package/dist/browser/UserEventHandler.d.mts.map +1 -1
  47. package/dist/browser/UserEventHandler.d.ts +4 -4
  48. package/dist/browser/UserEventHandler.d.ts.map +1 -1
  49. package/dist/browser/ViewContentFields.d.cts +1 -1
  50. package/dist/browser/ViewContentFields.d.cts.map +1 -1
  51. package/dist/browser/ViewContentFields.d.mts +1 -1
  52. package/dist/browser/ViewContentFields.d.mts.map +1 -1
  53. package/dist/browser/ViewContentFields.d.ts +1 -1
  54. package/dist/browser/ViewContentFields.d.ts.map +1 -1
  55. package/dist/browser/XyUserEventHandler.d.cts +5 -5
  56. package/dist/browser/XyUserEventHandler.d.cts.map +1 -1
  57. package/dist/browser/XyUserEventHandler.d.mts +5 -5
  58. package/dist/browser/XyUserEventHandler.d.mts.map +1 -1
  59. package/dist/browser/XyUserEventHandler.d.ts +5 -5
  60. package/dist/browser/XyUserEventHandler.d.ts.map +1 -1
  61. package/dist/browser/index.cjs +1 -2
  62. package/dist/browser/index.cjs.map +1 -1
  63. package/dist/browser/index.d.cts +12 -12
  64. package/dist/browser/index.d.cts.map +1 -1
  65. package/dist/browser/index.d.mts +12 -12
  66. package/dist/browser/index.d.mts.map +1 -1
  67. package/dist/browser/index.d.ts +12 -12
  68. package/dist/browser/index.d.ts.map +1 -1
  69. package/dist/browser/index.js +1 -2
  70. package/dist/browser/index.js.map +1 -1
  71. package/dist/neutral/Api/Api.d.cts +7 -0
  72. package/dist/neutral/Api/Api.d.cts.map +1 -0
  73. package/dist/neutral/Api/Api.d.mts +7 -0
  74. package/dist/neutral/Api/Api.d.mts.map +1 -0
  75. package/dist/neutral/Api/Api.d.ts +7 -0
  76. package/dist/neutral/Api/Api.d.ts.map +1 -0
  77. package/dist/neutral/Api/UserEvent.d.cts +25 -0
  78. package/dist/neutral/Api/UserEvent.d.cts.map +1 -0
  79. package/dist/neutral/Api/UserEvent.d.mts +25 -0
  80. package/dist/neutral/Api/UserEvent.d.mts.map +1 -0
  81. package/dist/neutral/Api/UserEvent.d.ts +25 -0
  82. package/dist/neutral/Api/UserEvent.d.ts.map +1 -0
  83. package/dist/neutral/Api/UserEventSystem.d.cts +3 -0
  84. package/dist/neutral/Api/UserEventSystem.d.cts.map +1 -0
  85. package/dist/neutral/Api/UserEventSystem.d.mts +3 -0
  86. package/dist/neutral/Api/UserEventSystem.d.mts.map +1 -0
  87. package/dist/neutral/Api/UserEventSystem.d.ts +3 -0
  88. package/dist/neutral/Api/UserEventSystem.d.ts.map +1 -0
  89. package/dist/neutral/Api/index.d.cts +4 -0
  90. package/dist/neutral/Api/index.d.cts.map +1 -0
  91. package/dist/neutral/Api/index.d.mts +4 -0
  92. package/dist/neutral/Api/index.d.mts.map +1 -0
  93. package/dist/neutral/Api/index.d.ts +4 -0
  94. package/dist/neutral/Api/index.d.ts.map +1 -0
  95. package/dist/neutral/CommonFields.d.cts +5 -0
  96. package/dist/neutral/CommonFields.d.cts.map +1 -0
  97. package/dist/neutral/CommonFields.d.mts +5 -0
  98. package/dist/neutral/CommonFields.d.mts.map +1 -0
  99. package/dist/neutral/CommonFields.d.ts +5 -0
  100. package/dist/neutral/CommonFields.d.ts.map +1 -0
  101. package/dist/neutral/ExIds.d.cts +10 -0
  102. package/dist/neutral/ExIds.d.cts.map +1 -0
  103. package/dist/neutral/ExIds.d.mts +10 -0
  104. package/dist/neutral/ExIds.d.mts.map +1 -0
  105. package/dist/neutral/ExIds.d.ts +10 -0
  106. package/dist/neutral/ExIds.d.ts.map +1 -0
  107. package/dist/neutral/FunnelStartedFields.d.cts +5 -0
  108. package/dist/neutral/FunnelStartedFields.d.cts.map +1 -0
  109. package/dist/neutral/FunnelStartedFields.d.mts +5 -0
  110. package/dist/neutral/FunnelStartedFields.d.mts.map +1 -0
  111. package/dist/neutral/FunnelStartedFields.d.ts +5 -0
  112. package/dist/neutral/FunnelStartedFields.d.ts.map +1 -0
  113. package/dist/neutral/Pixel.d.cts +24 -0
  114. package/dist/neutral/Pixel.d.cts.map +1 -0
  115. package/dist/neutral/Pixel.d.mts +24 -0
  116. package/dist/neutral/Pixel.d.mts.map +1 -0
  117. package/dist/neutral/Pixel.d.ts +24 -0
  118. package/dist/neutral/Pixel.d.ts.map +1 -0
  119. package/dist/neutral/Referrer.d.cts +13 -0
  120. package/dist/neutral/Referrer.d.cts.map +1 -0
  121. package/dist/neutral/Referrer.d.mts +13 -0
  122. package/dist/neutral/Referrer.d.mts.map +1 -0
  123. package/dist/neutral/Referrer.d.ts +13 -0
  124. package/dist/neutral/Referrer.d.ts.map +1 -0
  125. package/dist/neutral/TestStartedFields.d.cts +5 -0
  126. package/dist/neutral/TestStartedFields.d.cts.map +1 -0
  127. package/dist/neutral/TestStartedFields.d.mts +5 -0
  128. package/dist/neutral/TestStartedFields.d.mts.map +1 -0
  129. package/dist/neutral/TestStartedFields.d.ts +5 -0
  130. package/dist/neutral/TestStartedFields.d.ts.map +1 -0
  131. package/dist/neutral/UniqueUserId.d.cts +8 -0
  132. package/dist/neutral/UniqueUserId.d.cts.map +1 -0
  133. package/dist/neutral/UniqueUserId.d.mts +8 -0
  134. package/dist/neutral/UniqueUserId.d.mts.map +1 -0
  135. package/dist/neutral/UniqueUserId.d.ts +8 -0
  136. package/dist/neutral/UniqueUserId.d.ts.map +1 -0
  137. package/dist/neutral/UserClickFields.d.cts +6 -0
  138. package/dist/neutral/UserClickFields.d.cts.map +1 -0
  139. package/dist/neutral/UserClickFields.d.mts +6 -0
  140. package/dist/neutral/UserClickFields.d.mts.map +1 -0
  141. package/dist/neutral/UserClickFields.d.ts +6 -0
  142. package/dist/neutral/UserClickFields.d.ts.map +1 -0
  143. package/dist/neutral/UserEventHandler.d.cts +11 -0
  144. package/dist/neutral/UserEventHandler.d.cts.map +1 -0
  145. package/dist/neutral/UserEventHandler.d.mts +11 -0
  146. package/dist/neutral/UserEventHandler.d.mts.map +1 -0
  147. package/dist/neutral/UserEventHandler.d.ts +11 -0
  148. package/dist/neutral/UserEventHandler.d.ts.map +1 -0
  149. package/dist/neutral/UtmFields.d.cts +9 -0
  150. package/dist/neutral/UtmFields.d.cts.map +1 -0
  151. package/dist/neutral/UtmFields.d.mts +9 -0
  152. package/dist/neutral/UtmFields.d.mts.map +1 -0
  153. package/dist/neutral/UtmFields.d.ts +9 -0
  154. package/dist/neutral/UtmFields.d.ts.map +1 -0
  155. package/dist/neutral/ViewContentFields.d.cts +6 -0
  156. package/dist/neutral/ViewContentFields.d.cts.map +1 -0
  157. package/dist/neutral/ViewContentFields.d.mts +6 -0
  158. package/dist/neutral/ViewContentFields.d.mts.map +1 -0
  159. package/dist/neutral/ViewContentFields.d.ts +6 -0
  160. package/dist/neutral/ViewContentFields.d.ts.map +1 -0
  161. package/dist/neutral/XyLabsTrackingEventJson.d.cts +21 -0
  162. package/dist/neutral/XyLabsTrackingEventJson.d.cts.map +1 -0
  163. package/dist/neutral/XyLabsTrackingEventJson.d.mts +21 -0
  164. package/dist/neutral/XyLabsTrackingEventJson.d.mts.map +1 -0
  165. package/dist/neutral/XyLabsTrackingEventJson.d.ts +21 -0
  166. package/dist/neutral/XyLabsTrackingEventJson.d.ts.map +1 -0
  167. package/dist/neutral/XyUserEventHandler.d.cts +13 -0
  168. package/dist/neutral/XyUserEventHandler.d.cts.map +1 -0
  169. package/dist/neutral/XyUserEventHandler.d.mts +13 -0
  170. package/dist/neutral/XyUserEventHandler.d.mts.map +1 -0
  171. package/dist/neutral/XyUserEventHandler.d.ts +13 -0
  172. package/dist/neutral/XyUserEventHandler.d.ts.map +1 -0
  173. package/dist/neutral/getSystemInfo.d.cts +2 -0
  174. package/dist/neutral/getSystemInfo.d.cts.map +1 -0
  175. package/dist/neutral/getSystemInfo.d.mts +2 -0
  176. package/dist/neutral/getSystemInfo.d.mts.map +1 -0
  177. package/dist/neutral/getSystemInfo.d.ts +2 -0
  178. package/dist/neutral/getSystemInfo.d.ts.map +1 -0
  179. package/dist/neutral/index.cjs +286 -0
  180. package/dist/neutral/index.cjs.map +1 -0
  181. package/dist/neutral/index.d.cts +13 -0
  182. package/dist/neutral/index.d.cts.map +1 -0
  183. package/dist/neutral/index.d.mts +13 -0
  184. package/dist/neutral/index.d.mts.map +1 -0
  185. package/dist/neutral/index.d.ts +13 -0
  186. package/dist/neutral/index.d.ts.map +1 -0
  187. package/dist/neutral/index.js +253 -0
  188. package/dist/neutral/index.js.map +1 -0
  189. package/dist/node/Api/Api.d.cts +1 -1
  190. package/dist/node/Api/Api.d.cts.map +1 -1
  191. package/dist/node/Api/Api.d.mts +1 -1
  192. package/dist/node/Api/Api.d.mts.map +1 -1
  193. package/dist/node/Api/Api.d.ts +1 -1
  194. package/dist/node/Api/Api.d.ts.map +1 -1
  195. package/dist/node/Api/UserEvent.d.cts +2 -2
  196. package/dist/node/Api/UserEvent.d.cts.map +1 -1
  197. package/dist/node/Api/UserEvent.d.mts +2 -2
  198. package/dist/node/Api/UserEvent.d.mts.map +1 -1
  199. package/dist/node/Api/UserEvent.d.ts +2 -2
  200. package/dist/node/Api/UserEvent.d.ts.map +1 -1
  201. package/dist/node/Api/index.d.cts +3 -3
  202. package/dist/node/Api/index.d.cts.map +1 -1
  203. package/dist/node/Api/index.d.mts +3 -3
  204. package/dist/node/Api/index.d.mts.map +1 -1
  205. package/dist/node/Api/index.d.ts +3 -3
  206. package/dist/node/Api/index.d.ts.map +1 -1
  207. package/dist/node/FunnelStartedFields.d.cts +1 -1
  208. package/dist/node/FunnelStartedFields.d.cts.map +1 -1
  209. package/dist/node/FunnelStartedFields.d.mts +1 -1
  210. package/dist/node/FunnelStartedFields.d.mts.map +1 -1
  211. package/dist/node/FunnelStartedFields.d.ts +1 -1
  212. package/dist/node/FunnelStartedFields.d.ts.map +1 -1
  213. package/dist/node/Pixel.d.cts +2 -2
  214. package/dist/node/Pixel.d.cts.map +1 -1
  215. package/dist/node/Pixel.d.mts +2 -2
  216. package/dist/node/Pixel.d.mts.map +1 -1
  217. package/dist/node/Pixel.d.ts +2 -2
  218. package/dist/node/Pixel.d.ts.map +1 -1
  219. package/dist/node/TestStartedFields.d.cts +1 -1
  220. package/dist/node/TestStartedFields.d.cts.map +1 -1
  221. package/dist/node/TestStartedFields.d.mts +1 -1
  222. package/dist/node/TestStartedFields.d.mts.map +1 -1
  223. package/dist/node/TestStartedFields.d.ts +1 -1
  224. package/dist/node/TestStartedFields.d.ts.map +1 -1
  225. package/dist/node/UserClickFields.d.cts +1 -1
  226. package/dist/node/UserClickFields.d.cts.map +1 -1
  227. package/dist/node/UserClickFields.d.mts +1 -1
  228. package/dist/node/UserClickFields.d.mts.map +1 -1
  229. package/dist/node/UserClickFields.d.ts +1 -1
  230. package/dist/node/UserClickFields.d.ts.map +1 -1
  231. package/dist/node/UserEventHandler.d.cts +4 -4
  232. package/dist/node/UserEventHandler.d.cts.map +1 -1
  233. package/dist/node/UserEventHandler.d.mts +4 -4
  234. package/dist/node/UserEventHandler.d.mts.map +1 -1
  235. package/dist/node/UserEventHandler.d.ts +4 -4
  236. package/dist/node/UserEventHandler.d.ts.map +1 -1
  237. package/dist/node/ViewContentFields.d.cts +1 -1
  238. package/dist/node/ViewContentFields.d.cts.map +1 -1
  239. package/dist/node/ViewContentFields.d.mts +1 -1
  240. package/dist/node/ViewContentFields.d.mts.map +1 -1
  241. package/dist/node/ViewContentFields.d.ts +1 -1
  242. package/dist/node/ViewContentFields.d.ts.map +1 -1
  243. package/dist/node/XyUserEventHandler.d.cts +5 -5
  244. package/dist/node/XyUserEventHandler.d.cts.map +1 -1
  245. package/dist/node/XyUserEventHandler.d.mts +5 -5
  246. package/dist/node/XyUserEventHandler.d.mts.map +1 -1
  247. package/dist/node/XyUserEventHandler.d.ts +5 -5
  248. package/dist/node/XyUserEventHandler.d.ts.map +1 -1
  249. package/dist/node/index.cjs +1 -2
  250. package/dist/node/index.cjs.map +1 -1
  251. package/dist/node/index.d.cts +12 -12
  252. package/dist/node/index.d.cts.map +1 -1
  253. package/dist/node/index.d.mts +12 -12
  254. package/dist/node/index.d.mts.map +1 -1
  255. package/dist/node/index.d.ts +12 -12
  256. package/dist/node/index.d.ts.map +1 -1
  257. package/dist/node/index.js +1 -2
  258. package/dist/node/index.js.map +1 -1
  259. package/jest.config.cjs +13 -11
  260. package/package.json +22 -18
  261. package/src/Api/Api.ts +1 -1
  262. package/src/Api/UserEvent.ts +2 -2
  263. package/src/Api/index.ts +3 -3
  264. package/src/FunnelStartedFields.ts +1 -1
  265. package/src/Pixel.ts +6 -6
  266. package/src/TestStartedFields.ts +1 -1
  267. package/src/UserClickFields.ts +1 -1
  268. package/src/UserEventHandler.ts +4 -4
  269. package/src/ViewContentFields.ts +1 -1
  270. package/src/XyUserEventHandler.ts +6 -6
  271. package/src/getSystemInfo.ts +1 -1
  272. package/src/index.ts +12 -12
@@ -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,OAAO,CAAA;AACrB,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
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"}
@@ -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,OAAO,CAAA;AACrB,cAAc,uBAAuB,CAAA;AACrC,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA"}
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"}
@@ -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;
@@ -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":";AAAA,OAAO,WAAW;AAIlB,IAAM,aAAqC;AAAA,EACzC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AACR;AAEO,IAAM,WAAN,MAAe;AAAA,EACZ;AAAA;AAAA,EAGR,YAAY,UAAU,QAAQ;AAC5B,SAAK,WAAW,WAAW,OAAO,IAAI,GAAG,WAAW,OAAO,CAAC,mBAAmB;AAAA,EACjF;AAAA,EAEA,MAAM,YAAY,QAAqB;AACrC,YAAQ,MAAM,MAAM,KAAK,KAAK,UAAU,MAAM,GAAG;AAAA,EACnD;AACF;;;ACrBA,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB,OAAO,aAAa;AACpB,OAAO,SAAS;;;ACHhB,SAAS,aAAa;AAItB,IAAI;AAEG,IAAM,gBAAgB,MAAM;AACjC,MAAI;AACF,iBAAa,cAAc,MAAM,OAAO,UAAU,SAAS;AAAA,EAC7D,SAAS,IAAI;AACX,YAAQ,IAAI,wBAAwB,EAAE,EAAE;AAAA,EAC1C;AACA,SAAO;AACT;;;ACbO,IAAM,WAAN,MAAM,UAAS;AAAA,EACpB,OAAe,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,cAAc;AACZ,SAAK,UAAU,KAAK,eAAe,KAAK,SAAS;AACjD,mBAAe,QAAQ,UAAS,WAAW,KAAK,OAAO;AACvD,SAAK,QAAQ,KAAK,aAAa,KAAK,SAAS;AAC7C,WAAO,aAAa,QAAQ,UAAS,WAAW,KAAK,KAAK;AAAA,EAC5D;AAAA,EAEA,SAAS;AACP,QAAK,KAAK,SAAS,KAAK,MAAM,SAAS,KAAO,KAAK,WAAW,KAAK,QAAQ,SAAS,GAAI;AACtF,aAAO;AAAA,QACL,OAAO,KAAK;AAAA,QACZ,SAAS,KAAK;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,eAAe;AACrB,UAAM,QAAQ,OAAO,aAAa,QAAQ,UAAS,SAAS;AAC5D,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEQ,iBAAiB;AACvB,UAAM,QAAQ,eAAe,QAAQ,UAAS,SAAS;AACvD,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;ACjCA,OAAO,iBAAiB;AAEjB,IAAM,eAAN,MAAM,cAAa;AAAA,EACxB,OAAe,iBAAiB;AAAA,EAChC;AAAA,EAEA,cAAc;AACZ,SAAK,KAAK,OAAO,aAAa,QAAQ,cAAa,cAAc,KAAK,KAAK,WAAW;AACtF,WAAO,aAAa,QAAQ,cAAa,gBAAgB,KAAK,EAAE;AAAA,EAClE;AAAA,EAEA,WAAW;AACT,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,aAAa;AACnB,WAAO,YAAY,EAAE,EAAE,SAAS,QAAQ;AAAA,EAC1C;AACF;;;AClBA,SAAS,eAAe;AAEjB,IAAM,YAAN,MAAM,WAAU;AAAA,EACrB,OAAe,iBAAiB;AAAA,EAChC,SAAmC,CAAC;AAAA,EACpC,cAAc;AACZ,UAAM,eAAe,OAAO,aAAa,QAAQ,WAAU,cAAc,KAAK;AAC9E,QAAI;AACF,WAAK,SAAS,KAAK,MAAM,YAAY;AAAA,IACvC,QAAQ;AACN,WAAK,SAAS,CAAC;AAAA,IACjB;AAEA,QAAI,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG;AAC/B,WAAK,SAAS,CAAC;AAAA,IACjB;AACA,SAAK,OAAO;AACZ,WAAO,aAAa,QAAQ,WAAU,gBAAgB,KAAK,UAAU,KAAK,MAAM,CAAC;AAAA,EACnF;AAAA,EAEA,eAAe,MAAM;AApBvB;AAqBI,UAAM,SAAiC,CAAC;AACxC,UAAM,sBAAoB,cAAS,SAAS,OAAO,MAAM,GAAG,EAAE,CAAC,MAArC,mBAAwC,MAAM,SAAQ,CAAC;AACjF,sBAAkB,IAAI,CAAC,SAAS;AAC9B,YAAM,CAAC,SAAS,KAAK,IAAI,KAAK,MAAM,GAAG;AACvC,YAAM,CAAC,aAAa,OAAO,IAAI,QAAQ,MAAM,GAAG;AAChD,UAAI,gBAAgB,OAAO;AACzB,eAAO,OAAO,IAAI;AAAA,MACpB;AAAA,IACF,CAAC;AACD,WAAO,OAAO,KAAK,MAAM,EAAE,SAAS,IAAI,SAAS;AAAA,EACnD;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,UAAU,KAAK,MAAM;AAAA,EACnC;AAAA;AAAA,EAGA,SAAS;AACP,UAAM,SAAS,KAAK,aAAa;AACjC,QAAI,UAAU,CAAC,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,MAAM,GAAG;AAClD,WAAK,OAAO,KAAK,MAAM;AAAA,IACzB;AACA,WAAO,KAAK,UAAU;AAAA,EACxB;AACF;;;AJjCA,IAAM,4BAA4B;AAE3B,IAAM,UAAN,MAAM,SAAQ;AAAA,EACnB,OAAO,MAAM,IAAI,SAAS;AAAA,EAE1B,OAAe;AAAA,EACf,OAAe;AAAA,EAEf,MAAM,IAAI,aAAa,EAAE;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,QAAqB,CAAC;AAAA,EAEd,aAAa,IAAI,MAAM;AAAA,EAEvB,YAAY,SAAiB;AACnC,SAAK,UAAU;AACf,SAAK,aAAa,aAAa,QAAQ,yBAAyB;AAAA,EAClE;AAAA,EAEA,WAAW,WAAoB;AAC7B,WAAO,SAAS,KAAK,WAAW,uBAAuB;AAAA,EACzD;AAAA,EAEA,OAAO,KAAK,SAAiB;AAC3B,SAAK,YAAY,IAAI,SAAQ,OAAO;AACpC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAO,UAAU,KAAe;AAC9B,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,OAAe,YAAY,MAAM;AAC/B,QAAI,SAAQ,iBAAiB,QAAW;AACtC,eAAQ,eAAe,IAAI,UAAU;AAAA,IACvC;AACA,WAAO,SAAQ;AAAA,EACjB;AAAA,EAEA,SAAS,OAAgB;AACvB,SAAK,QAAQ;AACb,SAAK,aAAa,QAAQ,IAAI,KAAK,IAAI;AACvC,QAAI,KAAK,YAAY;AACnB,mBAAa,QAAQ,2BAA2B,KAAK,UAAU;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAM,KAAwC,OAAe,QAAY,SAAkB;AACzF,SAAK,WAAW;AAChB,UAAM,MAAM,SAAQ,UAAU,EAAE,OAAO;AACvC,UAAM,WAAW,IAAI,SAAS;AAC9B,SAAK,MAAM,KAAK;AAAA,MACd,KAAK,KAAK;AAAA,MACV,aAAa,KAAK,IAAI;AAAA,MACtB,YAAY,KAAK,cAAc;AAAA,MAC/B;AAAA,MACA,UAAU;AAAA,MACV,OAAO,KAAK;AAAA,MACZ;AAAA,MACA,MAAM,SAAS,SAAS;AAAA,MACxB,UAAU,SAAS,SAAS;AAAA,MAC5B,OAAO,KAAK;AAAA,MACZ,UAAU,SAAS,OAAO;AAAA,MAC1B,QAAQ,cAAc;AAAA,MACtB;AAAA,IACF,CAAC;AACD,UAAM,KAAK,cAAc;AAAA,EAC3B;AAAA,EAEA,MAAc,gBAAgB;AAC5B,UAAM,KAAK,WAAW,aAAa,YAAY;AAC7C,UAAI,KAAK,MAAM,WAAW,EAAG;AAC7B,YAAM,MAAM,SAAQ;AACpB,UAAI,KAAK;AACP,cAAM,SAAS,KAAK;AACpB,aAAK,QAAQ,CAAC;AACd,YAAI;AACF,gBAAM,IAAI,YAAY,MAAM;AAAA,QAC9B,SAAS,IAAI;AACX,cAAI,QAAQ;AAEV,iBAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAG,MAAM;AAAA,UACxC;AACA,kBAAQ,MAAM,EAAE;AAAA,QAClB;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,aAAa;AACnB,SAAK,QAAQ;AAAA,MACX,KAAK,QAAQ,IAAI,MAAM;AAAA,MACvB,KAAK,QAAQ,IAAI,MAAM;AAAA,MACvB,IAAI,QAAQ,IAAI,KAAK;AAAA,MACrB,OAAO,QAAQ,IAAI,SAAS;AAAA,MAC5B,SAAS,QAAQ,IAAI,SAAS;AAAA,MAC9B,MAAM,QAAQ,IAAI,OAAO;AAAA,MACzB,cAAc,eAAe,QAAQ,cAAc,KAAK;AAAA,IAC1D;AAAA,EACF;AACF;;;AK/GO,IAAe,mBAAf,MAAmC;AAK1C;;;ACHO,IAAM,qBAAN,cAAoE,iBAAoB;AAAA,EAC7F,cAAc;AACZ,UAAM;AAAA,EACR;AAAA,EAEA,MAAM,cAAc,QAAiC;AACnD,WAAO,MAAM,QAAQ,SAAS,KAAK,iBAAiB,MAAM;AAAA,EAC5D;AAAA,EAEA,MAAM,YAAY,QAA+B;AAC/C,WAAO,MAAM,QAAQ,SAAS,KAAK,eAAe,MAAM;AAAA,EAC1D;AAAA,EAEA,MAAM,UAAU,QAA6B;AAC3C,WAAO,MAAM,QAAQ,SAAS,KAAK,YAAY,MAAM;AAAA,EACvD;AAAA,EAEA,MAAM,YAAY,QAA+B;AAC/C,WAAO,MAAM,QAAQ,SAAS,KAAK,eAAe,MAAM;AAAA,EAC1D;AACF;","names":[]}
package/jest.config.cjs CHANGED
@@ -1,23 +1,25 @@
1
1
  const generateJestConfig = ({ esModules }) => {
2
- const esModuleslist = Array.isArray(esModules) ? esModules.join('|') : esModules
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/presets/default-esm',
7
+ preset: 'ts-jest',
13
8
  testEnvironment: 'jsdom',
14
- testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
9
+ testRegex: String.raw`(/__tests__/.*|(\.|/)(test|spec))\.tsx?$`,
15
10
  transform: {
16
- [`(${esModuleslist}).+\\.js$`]: 'babel-jest',
17
- '^.+\\.tsx?$': 'ts-jest',
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/(?!${esModuleslist})`],
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.0.6",
13
- "@xylabs/lodash": "^3.0.6",
14
- "async-mutex": "^0.4.1",
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.6",
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.11.24",
31
+ "@types/node": "^20.14.10",
32
32
  "@types/randombytes": "^2.0.3",
33
- "@xylabs/eslint-config": "^3.4.1",
34
- "@xylabs/ts-scripts-yarn3": "^3.4.1",
35
- "@xylabs/tsconfig-dom": "^3.4.1",
36
- "@xylabs/tsconfig-jest": "^3.4.1",
37
- "axios": "^1.6.7",
38
- "eslint": "^8.57.0",
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.0.0",
42
- "npm-package-json-lint": "^7.1.0",
43
- "reflect-metadata": "^0.2.1",
44
- "ts-jest": "^29.1.2",
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.3.3"
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.5.0",
89
- "packageManager": "yarn@4.1.1",
92
+ "version": "1.6.0",
93
+ "packageManager": "yarn@4.3.1",
90
94
  "type": "module"
91
95
  }
package/src/Api/Api.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios'
2
2
 
3
- import { UserEvent } from './UserEvent'
3
+ import { UserEvent } from './UserEvent.js'
4
4
 
5
5
  const apiBaseUri: Record<string, string> = {
6
6
  beta: 'https://pixel.xylabs.com',
@@ -1,5 +1,5 @@
1
- import { ExIds } from '../ExIds'
2
- import { UserEventSystem } from './UserEventSystem'
1
+ import { ExIds } from '../ExIds.js'
2
+ import { UserEventSystem } from './UserEventSystem.js'
3
3
 
4
4
  export interface UserEvent {
5
5
  cid: string
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'
@@ -1,4 +1,4 @@
1
- import { CommonFields } from './CommonFields'
1
+ import { CommonFields } from './CommonFields.js'
2
2
 
3
3
  export interface FunnelStartedFields extends CommonFields {
4
4
  name: string
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
 
@@ -1,4 +1,4 @@
1
- import { CommonFields } from './CommonFields'
1
+ import { CommonFields } from './CommonFields.js'
2
2
 
3
3
  export interface TestStartedFields extends CommonFields {
4
4
  name: string
@@ -1,4 +1,4 @@
1
- import { CommonFields } from './CommonFields'
1
+ import { CommonFields } from './CommonFields.js'
2
2
 
3
3
  export interface UserClickFields extends CommonFields {
4
4
  elementName: string
@@ -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>
@@ -1,4 +1,4 @@
1
- import { CommonFields } from './CommonFields'
1
+ import { CommonFields } from './CommonFields.js'
2
2
 
3
3
  export interface ViewContentFields extends CommonFields {
4
4
  name: string
@@ -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() {
@@ -1,6 +1,6 @@
1
1
  import { parse } from 'bowser'
2
2
 
3
- import { UserEventSystem } from './Api'
3
+ import { UserEventSystem } from './Api/index.js'
4
4
 
5
5
  let systemInfo: UserEventSystem | undefined
6
6
 
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'