@xylabs/pixel 1.7.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.
Files changed (363) hide show
  1. package/dist/browser/index.d.ts +155 -13
  2. package/dist/browser/{index.js → index.mjs} +39 -12
  3. package/dist/browser/index.mjs.map +1 -0
  4. package/eslint.config.mjs +43 -0
  5. package/package.json +24 -47
  6. package/src/Pixel.ts +3 -3
  7. package/src/UtmFields.ts +3 -3
  8. package/src/spec/Pixel.spec.ts +6 -2
  9. package/vitest.config.ts +12 -0
  10. package/vitest.startup.ts +8 -0
  11. package/xy.config.ts +10 -0
  12. package/dist/browser/Api/Api.d.cts +0 -7
  13. package/dist/browser/Api/Api.d.cts.map +0 -1
  14. package/dist/browser/Api/Api.d.mts +0 -7
  15. package/dist/browser/Api/Api.d.mts.map +0 -1
  16. package/dist/browser/Api/Api.d.ts +0 -7
  17. package/dist/browser/Api/Api.d.ts.map +0 -1
  18. package/dist/browser/Api/UserEvent.d.cts +0 -25
  19. package/dist/browser/Api/UserEvent.d.cts.map +0 -1
  20. package/dist/browser/Api/UserEvent.d.mts +0 -25
  21. package/dist/browser/Api/UserEvent.d.mts.map +0 -1
  22. package/dist/browser/Api/UserEvent.d.ts +0 -25
  23. package/dist/browser/Api/UserEvent.d.ts.map +0 -1
  24. package/dist/browser/Api/UserEventSystem.d.cts +0 -3
  25. package/dist/browser/Api/UserEventSystem.d.cts.map +0 -1
  26. package/dist/browser/Api/UserEventSystem.d.mts +0 -3
  27. package/dist/browser/Api/UserEventSystem.d.mts.map +0 -1
  28. package/dist/browser/Api/UserEventSystem.d.ts +0 -3
  29. package/dist/browser/Api/UserEventSystem.d.ts.map +0 -1
  30. package/dist/browser/Api/index.d.cts +0 -4
  31. package/dist/browser/Api/index.d.cts.map +0 -1
  32. package/dist/browser/Api/index.d.mts +0 -4
  33. package/dist/browser/Api/index.d.mts.map +0 -1
  34. package/dist/browser/Api/index.d.ts +0 -4
  35. package/dist/browser/Api/index.d.ts.map +0 -1
  36. package/dist/browser/CommonFields.d.cts +0 -5
  37. package/dist/browser/CommonFields.d.cts.map +0 -1
  38. package/dist/browser/CommonFields.d.mts +0 -5
  39. package/dist/browser/CommonFields.d.mts.map +0 -1
  40. package/dist/browser/CommonFields.d.ts +0 -5
  41. package/dist/browser/CommonFields.d.ts.map +0 -1
  42. package/dist/browser/ExIds.d.cts +0 -10
  43. package/dist/browser/ExIds.d.cts.map +0 -1
  44. package/dist/browser/ExIds.d.mts +0 -10
  45. package/dist/browser/ExIds.d.mts.map +0 -1
  46. package/dist/browser/ExIds.d.ts +0 -10
  47. package/dist/browser/ExIds.d.ts.map +0 -1
  48. package/dist/browser/FunnelStartedFields.d.cts +0 -5
  49. package/dist/browser/FunnelStartedFields.d.cts.map +0 -1
  50. package/dist/browser/FunnelStartedFields.d.mts +0 -5
  51. package/dist/browser/FunnelStartedFields.d.mts.map +0 -1
  52. package/dist/browser/FunnelStartedFields.d.ts +0 -5
  53. package/dist/browser/FunnelStartedFields.d.ts.map +0 -1
  54. package/dist/browser/Pixel.d.cts +0 -24
  55. package/dist/browser/Pixel.d.cts.map +0 -1
  56. package/dist/browser/Pixel.d.mts +0 -24
  57. package/dist/browser/Pixel.d.mts.map +0 -1
  58. package/dist/browser/Pixel.d.ts +0 -24
  59. package/dist/browser/Pixel.d.ts.map +0 -1
  60. package/dist/browser/Referrer.d.cts +0 -13
  61. package/dist/browser/Referrer.d.cts.map +0 -1
  62. package/dist/browser/Referrer.d.mts +0 -13
  63. package/dist/browser/Referrer.d.mts.map +0 -1
  64. package/dist/browser/Referrer.d.ts +0 -13
  65. package/dist/browser/Referrer.d.ts.map +0 -1
  66. package/dist/browser/TestStartedFields.d.cts +0 -5
  67. package/dist/browser/TestStartedFields.d.cts.map +0 -1
  68. package/dist/browser/TestStartedFields.d.mts +0 -5
  69. package/dist/browser/TestStartedFields.d.mts.map +0 -1
  70. package/dist/browser/TestStartedFields.d.ts +0 -5
  71. package/dist/browser/TestStartedFields.d.ts.map +0 -1
  72. package/dist/browser/UniqueUserId.d.cts +0 -8
  73. package/dist/browser/UniqueUserId.d.cts.map +0 -1
  74. package/dist/browser/UniqueUserId.d.mts +0 -8
  75. package/dist/browser/UniqueUserId.d.mts.map +0 -1
  76. package/dist/browser/UniqueUserId.d.ts +0 -8
  77. package/dist/browser/UniqueUserId.d.ts.map +0 -1
  78. package/dist/browser/UserClickFields.d.cts +0 -6
  79. package/dist/browser/UserClickFields.d.cts.map +0 -1
  80. package/dist/browser/UserClickFields.d.mts +0 -6
  81. package/dist/browser/UserClickFields.d.mts.map +0 -1
  82. package/dist/browser/UserClickFields.d.ts +0 -6
  83. package/dist/browser/UserClickFields.d.ts.map +0 -1
  84. package/dist/browser/UserEventHandler.d.cts +0 -11
  85. package/dist/browser/UserEventHandler.d.cts.map +0 -1
  86. package/dist/browser/UserEventHandler.d.mts +0 -11
  87. package/dist/browser/UserEventHandler.d.mts.map +0 -1
  88. package/dist/browser/UserEventHandler.d.ts +0 -11
  89. package/dist/browser/UserEventHandler.d.ts.map +0 -1
  90. package/dist/browser/UtmFields.d.cts +0 -9
  91. package/dist/browser/UtmFields.d.cts.map +0 -1
  92. package/dist/browser/UtmFields.d.mts +0 -9
  93. package/dist/browser/UtmFields.d.mts.map +0 -1
  94. package/dist/browser/UtmFields.d.ts +0 -9
  95. package/dist/browser/UtmFields.d.ts.map +0 -1
  96. package/dist/browser/ViewContentFields.d.cts +0 -6
  97. package/dist/browser/ViewContentFields.d.cts.map +0 -1
  98. package/dist/browser/ViewContentFields.d.mts +0 -6
  99. package/dist/browser/ViewContentFields.d.mts.map +0 -1
  100. package/dist/browser/ViewContentFields.d.ts +0 -6
  101. package/dist/browser/ViewContentFields.d.ts.map +0 -1
  102. package/dist/browser/XyLabsTrackingEventJson.d.cts +0 -21
  103. package/dist/browser/XyLabsTrackingEventJson.d.cts.map +0 -1
  104. package/dist/browser/XyLabsTrackingEventJson.d.mts +0 -21
  105. package/dist/browser/XyLabsTrackingEventJson.d.mts.map +0 -1
  106. package/dist/browser/XyLabsTrackingEventJson.d.ts +0 -21
  107. package/dist/browser/XyLabsTrackingEventJson.d.ts.map +0 -1
  108. package/dist/browser/XyUserEventHandler.d.cts +0 -13
  109. package/dist/browser/XyUserEventHandler.d.cts.map +0 -1
  110. package/dist/browser/XyUserEventHandler.d.mts +0 -13
  111. package/dist/browser/XyUserEventHandler.d.mts.map +0 -1
  112. package/dist/browser/XyUserEventHandler.d.ts +0 -13
  113. package/dist/browser/XyUserEventHandler.d.ts.map +0 -1
  114. package/dist/browser/getSystemInfo.d.cts +0 -2
  115. package/dist/browser/getSystemInfo.d.cts.map +0 -1
  116. package/dist/browser/getSystemInfo.d.mts +0 -2
  117. package/dist/browser/getSystemInfo.d.mts.map +0 -1
  118. package/dist/browser/getSystemInfo.d.ts +0 -2
  119. package/dist/browser/getSystemInfo.d.ts.map +0 -1
  120. package/dist/browser/index.cjs +0 -285
  121. package/dist/browser/index.cjs.map +0 -1
  122. package/dist/browser/index.d.cts +0 -13
  123. package/dist/browser/index.d.cts.map +0 -1
  124. package/dist/browser/index.d.mts +0 -13
  125. package/dist/browser/index.d.mts.map +0 -1
  126. package/dist/browser/index.d.ts.map +0 -1
  127. package/dist/browser/index.js.map +0 -1
  128. package/dist/neutral/Api/Api.d.cts +0 -7
  129. package/dist/neutral/Api/Api.d.cts.map +0 -1
  130. package/dist/neutral/Api/Api.d.mts +0 -7
  131. package/dist/neutral/Api/Api.d.mts.map +0 -1
  132. package/dist/neutral/Api/Api.d.ts +0 -7
  133. package/dist/neutral/Api/Api.d.ts.map +0 -1
  134. package/dist/neutral/Api/UserEvent.d.cts +0 -25
  135. package/dist/neutral/Api/UserEvent.d.cts.map +0 -1
  136. package/dist/neutral/Api/UserEvent.d.mts +0 -25
  137. package/dist/neutral/Api/UserEvent.d.mts.map +0 -1
  138. package/dist/neutral/Api/UserEvent.d.ts +0 -25
  139. package/dist/neutral/Api/UserEvent.d.ts.map +0 -1
  140. package/dist/neutral/Api/UserEventSystem.d.cts +0 -3
  141. package/dist/neutral/Api/UserEventSystem.d.cts.map +0 -1
  142. package/dist/neutral/Api/UserEventSystem.d.mts +0 -3
  143. package/dist/neutral/Api/UserEventSystem.d.mts.map +0 -1
  144. package/dist/neutral/Api/UserEventSystem.d.ts +0 -3
  145. package/dist/neutral/Api/UserEventSystem.d.ts.map +0 -1
  146. package/dist/neutral/Api/index.d.cts +0 -4
  147. package/dist/neutral/Api/index.d.cts.map +0 -1
  148. package/dist/neutral/Api/index.d.mts +0 -4
  149. package/dist/neutral/Api/index.d.mts.map +0 -1
  150. package/dist/neutral/Api/index.d.ts +0 -4
  151. package/dist/neutral/Api/index.d.ts.map +0 -1
  152. package/dist/neutral/CommonFields.d.cts +0 -5
  153. package/dist/neutral/CommonFields.d.cts.map +0 -1
  154. package/dist/neutral/CommonFields.d.mts +0 -5
  155. package/dist/neutral/CommonFields.d.mts.map +0 -1
  156. package/dist/neutral/CommonFields.d.ts +0 -5
  157. package/dist/neutral/CommonFields.d.ts.map +0 -1
  158. package/dist/neutral/ExIds.d.cts +0 -10
  159. package/dist/neutral/ExIds.d.cts.map +0 -1
  160. package/dist/neutral/ExIds.d.mts +0 -10
  161. package/dist/neutral/ExIds.d.mts.map +0 -1
  162. package/dist/neutral/ExIds.d.ts +0 -10
  163. package/dist/neutral/ExIds.d.ts.map +0 -1
  164. package/dist/neutral/FunnelStartedFields.d.cts +0 -5
  165. package/dist/neutral/FunnelStartedFields.d.cts.map +0 -1
  166. package/dist/neutral/FunnelStartedFields.d.mts +0 -5
  167. package/dist/neutral/FunnelStartedFields.d.mts.map +0 -1
  168. package/dist/neutral/FunnelStartedFields.d.ts +0 -5
  169. package/dist/neutral/FunnelStartedFields.d.ts.map +0 -1
  170. package/dist/neutral/Pixel.d.cts +0 -24
  171. package/dist/neutral/Pixel.d.cts.map +0 -1
  172. package/dist/neutral/Pixel.d.mts +0 -24
  173. package/dist/neutral/Pixel.d.mts.map +0 -1
  174. package/dist/neutral/Pixel.d.ts +0 -24
  175. package/dist/neutral/Pixel.d.ts.map +0 -1
  176. package/dist/neutral/Referrer.d.cts +0 -13
  177. package/dist/neutral/Referrer.d.cts.map +0 -1
  178. package/dist/neutral/Referrer.d.mts +0 -13
  179. package/dist/neutral/Referrer.d.mts.map +0 -1
  180. package/dist/neutral/Referrer.d.ts +0 -13
  181. package/dist/neutral/Referrer.d.ts.map +0 -1
  182. package/dist/neutral/TestStartedFields.d.cts +0 -5
  183. package/dist/neutral/TestStartedFields.d.cts.map +0 -1
  184. package/dist/neutral/TestStartedFields.d.mts +0 -5
  185. package/dist/neutral/TestStartedFields.d.mts.map +0 -1
  186. package/dist/neutral/TestStartedFields.d.ts +0 -5
  187. package/dist/neutral/TestStartedFields.d.ts.map +0 -1
  188. package/dist/neutral/UniqueUserId.d.cts +0 -8
  189. package/dist/neutral/UniqueUserId.d.cts.map +0 -1
  190. package/dist/neutral/UniqueUserId.d.mts +0 -8
  191. package/dist/neutral/UniqueUserId.d.mts.map +0 -1
  192. package/dist/neutral/UniqueUserId.d.ts +0 -8
  193. package/dist/neutral/UniqueUserId.d.ts.map +0 -1
  194. package/dist/neutral/UserClickFields.d.cts +0 -6
  195. package/dist/neutral/UserClickFields.d.cts.map +0 -1
  196. package/dist/neutral/UserClickFields.d.mts +0 -6
  197. package/dist/neutral/UserClickFields.d.mts.map +0 -1
  198. package/dist/neutral/UserClickFields.d.ts +0 -6
  199. package/dist/neutral/UserClickFields.d.ts.map +0 -1
  200. package/dist/neutral/UserEventHandler.d.cts +0 -11
  201. package/dist/neutral/UserEventHandler.d.cts.map +0 -1
  202. package/dist/neutral/UserEventHandler.d.mts +0 -11
  203. package/dist/neutral/UserEventHandler.d.mts.map +0 -1
  204. package/dist/neutral/UserEventHandler.d.ts +0 -11
  205. package/dist/neutral/UserEventHandler.d.ts.map +0 -1
  206. package/dist/neutral/UtmFields.d.cts +0 -9
  207. package/dist/neutral/UtmFields.d.cts.map +0 -1
  208. package/dist/neutral/UtmFields.d.mts +0 -9
  209. package/dist/neutral/UtmFields.d.mts.map +0 -1
  210. package/dist/neutral/UtmFields.d.ts +0 -9
  211. package/dist/neutral/UtmFields.d.ts.map +0 -1
  212. package/dist/neutral/ViewContentFields.d.cts +0 -6
  213. package/dist/neutral/ViewContentFields.d.cts.map +0 -1
  214. package/dist/neutral/ViewContentFields.d.mts +0 -6
  215. package/dist/neutral/ViewContentFields.d.mts.map +0 -1
  216. package/dist/neutral/ViewContentFields.d.ts +0 -6
  217. package/dist/neutral/ViewContentFields.d.ts.map +0 -1
  218. package/dist/neutral/XyLabsTrackingEventJson.d.cts +0 -21
  219. package/dist/neutral/XyLabsTrackingEventJson.d.cts.map +0 -1
  220. package/dist/neutral/XyLabsTrackingEventJson.d.mts +0 -21
  221. package/dist/neutral/XyLabsTrackingEventJson.d.mts.map +0 -1
  222. package/dist/neutral/XyLabsTrackingEventJson.d.ts +0 -21
  223. package/dist/neutral/XyLabsTrackingEventJson.d.ts.map +0 -1
  224. package/dist/neutral/XyUserEventHandler.d.cts +0 -13
  225. package/dist/neutral/XyUserEventHandler.d.cts.map +0 -1
  226. package/dist/neutral/XyUserEventHandler.d.mts +0 -13
  227. package/dist/neutral/XyUserEventHandler.d.mts.map +0 -1
  228. package/dist/neutral/XyUserEventHandler.d.ts +0 -13
  229. package/dist/neutral/XyUserEventHandler.d.ts.map +0 -1
  230. package/dist/neutral/getSystemInfo.d.cts +0 -2
  231. package/dist/neutral/getSystemInfo.d.cts.map +0 -1
  232. package/dist/neutral/getSystemInfo.d.mts +0 -2
  233. package/dist/neutral/getSystemInfo.d.mts.map +0 -1
  234. package/dist/neutral/getSystemInfo.d.ts +0 -2
  235. package/dist/neutral/getSystemInfo.d.ts.map +0 -1
  236. package/dist/neutral/index.cjs +0 -285
  237. package/dist/neutral/index.cjs.map +0 -1
  238. package/dist/neutral/index.d.cts +0 -13
  239. package/dist/neutral/index.d.cts.map +0 -1
  240. package/dist/neutral/index.d.mts +0 -13
  241. package/dist/neutral/index.d.mts.map +0 -1
  242. package/dist/neutral/index.d.ts +0 -13
  243. package/dist/neutral/index.d.ts.map +0 -1
  244. package/dist/neutral/index.js +0 -252
  245. package/dist/neutral/index.js.map +0 -1
  246. package/dist/node/Api/Api.d.cts +0 -7
  247. package/dist/node/Api/Api.d.cts.map +0 -1
  248. package/dist/node/Api/Api.d.mts +0 -7
  249. package/dist/node/Api/Api.d.mts.map +0 -1
  250. package/dist/node/Api/Api.d.ts +0 -7
  251. package/dist/node/Api/Api.d.ts.map +0 -1
  252. package/dist/node/Api/UserEvent.d.cts +0 -25
  253. package/dist/node/Api/UserEvent.d.cts.map +0 -1
  254. package/dist/node/Api/UserEvent.d.mts +0 -25
  255. package/dist/node/Api/UserEvent.d.mts.map +0 -1
  256. package/dist/node/Api/UserEvent.d.ts +0 -25
  257. package/dist/node/Api/UserEvent.d.ts.map +0 -1
  258. package/dist/node/Api/UserEventSystem.d.cts +0 -3
  259. package/dist/node/Api/UserEventSystem.d.cts.map +0 -1
  260. package/dist/node/Api/UserEventSystem.d.mts +0 -3
  261. package/dist/node/Api/UserEventSystem.d.mts.map +0 -1
  262. package/dist/node/Api/UserEventSystem.d.ts +0 -3
  263. package/dist/node/Api/UserEventSystem.d.ts.map +0 -1
  264. package/dist/node/Api/index.d.cts +0 -4
  265. package/dist/node/Api/index.d.cts.map +0 -1
  266. package/dist/node/Api/index.d.mts +0 -4
  267. package/dist/node/Api/index.d.mts.map +0 -1
  268. package/dist/node/Api/index.d.ts +0 -4
  269. package/dist/node/Api/index.d.ts.map +0 -1
  270. package/dist/node/CommonFields.d.cts +0 -5
  271. package/dist/node/CommonFields.d.cts.map +0 -1
  272. package/dist/node/CommonFields.d.mts +0 -5
  273. package/dist/node/CommonFields.d.mts.map +0 -1
  274. package/dist/node/CommonFields.d.ts +0 -5
  275. package/dist/node/CommonFields.d.ts.map +0 -1
  276. package/dist/node/ExIds.d.cts +0 -10
  277. package/dist/node/ExIds.d.cts.map +0 -1
  278. package/dist/node/ExIds.d.mts +0 -10
  279. package/dist/node/ExIds.d.mts.map +0 -1
  280. package/dist/node/ExIds.d.ts +0 -10
  281. package/dist/node/ExIds.d.ts.map +0 -1
  282. package/dist/node/FunnelStartedFields.d.cts +0 -5
  283. package/dist/node/FunnelStartedFields.d.cts.map +0 -1
  284. package/dist/node/FunnelStartedFields.d.mts +0 -5
  285. package/dist/node/FunnelStartedFields.d.mts.map +0 -1
  286. package/dist/node/FunnelStartedFields.d.ts +0 -5
  287. package/dist/node/FunnelStartedFields.d.ts.map +0 -1
  288. package/dist/node/Pixel.d.cts +0 -24
  289. package/dist/node/Pixel.d.cts.map +0 -1
  290. package/dist/node/Pixel.d.mts +0 -24
  291. package/dist/node/Pixel.d.mts.map +0 -1
  292. package/dist/node/Pixel.d.ts +0 -24
  293. package/dist/node/Pixel.d.ts.map +0 -1
  294. package/dist/node/Referrer.d.cts +0 -13
  295. package/dist/node/Referrer.d.cts.map +0 -1
  296. package/dist/node/Referrer.d.mts +0 -13
  297. package/dist/node/Referrer.d.mts.map +0 -1
  298. package/dist/node/Referrer.d.ts +0 -13
  299. package/dist/node/Referrer.d.ts.map +0 -1
  300. package/dist/node/TestStartedFields.d.cts +0 -5
  301. package/dist/node/TestStartedFields.d.cts.map +0 -1
  302. package/dist/node/TestStartedFields.d.mts +0 -5
  303. package/dist/node/TestStartedFields.d.mts.map +0 -1
  304. package/dist/node/TestStartedFields.d.ts +0 -5
  305. package/dist/node/TestStartedFields.d.ts.map +0 -1
  306. package/dist/node/UniqueUserId.d.cts +0 -8
  307. package/dist/node/UniqueUserId.d.cts.map +0 -1
  308. package/dist/node/UniqueUserId.d.mts +0 -8
  309. package/dist/node/UniqueUserId.d.mts.map +0 -1
  310. package/dist/node/UniqueUserId.d.ts +0 -8
  311. package/dist/node/UniqueUserId.d.ts.map +0 -1
  312. package/dist/node/UserClickFields.d.cts +0 -6
  313. package/dist/node/UserClickFields.d.cts.map +0 -1
  314. package/dist/node/UserClickFields.d.mts +0 -6
  315. package/dist/node/UserClickFields.d.mts.map +0 -1
  316. package/dist/node/UserClickFields.d.ts +0 -6
  317. package/dist/node/UserClickFields.d.ts.map +0 -1
  318. package/dist/node/UserEventHandler.d.cts +0 -11
  319. package/dist/node/UserEventHandler.d.cts.map +0 -1
  320. package/dist/node/UserEventHandler.d.mts +0 -11
  321. package/dist/node/UserEventHandler.d.mts.map +0 -1
  322. package/dist/node/UserEventHandler.d.ts +0 -11
  323. package/dist/node/UserEventHandler.d.ts.map +0 -1
  324. package/dist/node/UtmFields.d.cts +0 -9
  325. package/dist/node/UtmFields.d.cts.map +0 -1
  326. package/dist/node/UtmFields.d.mts +0 -9
  327. package/dist/node/UtmFields.d.mts.map +0 -1
  328. package/dist/node/UtmFields.d.ts +0 -9
  329. package/dist/node/UtmFields.d.ts.map +0 -1
  330. package/dist/node/ViewContentFields.d.cts +0 -6
  331. package/dist/node/ViewContentFields.d.cts.map +0 -1
  332. package/dist/node/ViewContentFields.d.mts +0 -6
  333. package/dist/node/ViewContentFields.d.mts.map +0 -1
  334. package/dist/node/ViewContentFields.d.ts +0 -6
  335. package/dist/node/ViewContentFields.d.ts.map +0 -1
  336. package/dist/node/XyLabsTrackingEventJson.d.cts +0 -21
  337. package/dist/node/XyLabsTrackingEventJson.d.cts.map +0 -1
  338. package/dist/node/XyLabsTrackingEventJson.d.mts +0 -21
  339. package/dist/node/XyLabsTrackingEventJson.d.mts.map +0 -1
  340. package/dist/node/XyLabsTrackingEventJson.d.ts +0 -21
  341. package/dist/node/XyLabsTrackingEventJson.d.ts.map +0 -1
  342. package/dist/node/XyUserEventHandler.d.cts +0 -13
  343. package/dist/node/XyUserEventHandler.d.cts.map +0 -1
  344. package/dist/node/XyUserEventHandler.d.mts +0 -13
  345. package/dist/node/XyUserEventHandler.d.mts.map +0 -1
  346. package/dist/node/XyUserEventHandler.d.ts +0 -13
  347. package/dist/node/XyUserEventHandler.d.ts.map +0 -1
  348. package/dist/node/getSystemInfo.d.cts +0 -2
  349. package/dist/node/getSystemInfo.d.cts.map +0 -1
  350. package/dist/node/getSystemInfo.d.mts +0 -2
  351. package/dist/node/getSystemInfo.d.mts.map +0 -1
  352. package/dist/node/getSystemInfo.d.ts +0 -2
  353. package/dist/node/getSystemInfo.d.ts.map +0 -1
  354. package/dist/node/index.cjs +0 -296
  355. package/dist/node/index.cjs.map +0 -1
  356. package/dist/node/index.d.cts +0 -13
  357. package/dist/node/index.d.cts.map +0 -1
  358. package/dist/node/index.d.mts +0 -13
  359. package/dist/node/index.d.mts.map +0 -1
  360. package/dist/node/index.d.ts +0 -13
  361. package/dist/node/index.d.ts.map +0 -1
  362. package/dist/node/index.js +0 -253
  363. package/dist/node/index.js.map +0 -1
@@ -1,13 +1,155 @@
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
- //# sourceMappingURL=index.d.ts.map
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;
@@ -69,6 +78,9 @@ var Referrer = class _Referrer {
69
78
 
70
79
  // src/UniqueUserId.ts
71
80
  var UniqueUserId = class _UniqueUserId {
81
+ static {
82
+ __name(this, "UniqueUserId");
83
+ }
72
84
  static localStorageId = "_coin_cid";
73
85
  id;
74
86
  constructor() {
@@ -84,8 +96,11 @@ var UniqueUserId = class _UniqueUserId {
84
96
  };
85
97
 
86
98
  // src/UtmFields.ts
87
- import { isEqual } from "@xylabs/lodash";
99
+ import isEqual from "fast-deep-equal";
88
100
  var UtmFields = class _UtmFields {
101
+ static {
102
+ __name(this, "UtmFields");
103
+ }
89
104
  static localStorageId = "_coin_utm";
90
105
  fields = [];
91
106
  constructor() {
@@ -101,7 +116,7 @@ var UtmFields = class _UtmFields {
101
116
  this.update();
102
117
  window.localStorage.setItem(_UtmFields.localStorageId, JSON.stringify(this.fields));
103
118
  }
104
- getUtmRecord = () => {
119
+ getUtmRecord = /* @__PURE__ */ __name(() => {
105
120
  const record = {};
106
121
  const parsedQueryString = document.location.search.split("?")[1]?.split("&") ?? [];
107
122
  parsedQueryString.map((item) => {
@@ -112,11 +127,11 @@ var UtmFields = class _UtmFields {
112
127
  }
113
128
  });
114
129
  return Object.keys(record).length > 0 ? record : null;
115
- };
130
+ }, "getUtmRecord");
116
131
  toString() {
117
132
  return JSON.stringify(this.fields);
118
133
  }
119
- //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
120
135
  update() {
121
136
  const record = this.getUtmRecord();
122
137
  if (record && !isEqual(this.fields.at(-1), record)) {
@@ -129,6 +144,9 @@ var UtmFields = class _UtmFields {
129
144
  // src/Pixel.ts
130
145
  var emailHashLocalStorageName = "xy_email_hash";
131
146
  var XyPixel = class _XyPixel {
147
+ static {
148
+ __name(this, "XyPixel");
149
+ }
132
150
  static api = new PixelApi();
133
151
  static _instance;
134
152
  static utmFieldsObj;
@@ -153,15 +171,15 @@ var XyPixel = class _XyPixel {
153
171
  static selectApi(api) {
154
172
  this.api = api;
155
173
  }
156
- static utmFields = () => {
174
+ static utmFields = /* @__PURE__ */ __name(() => {
157
175
  if (_XyPixel.utmFieldsObj === void 0) {
158
176
  _XyPixel.utmFieldsObj = new UtmFields();
159
177
  }
160
178
  return _XyPixel.utmFieldsObj;
161
- };
179
+ }, "utmFields");
162
180
  identify(email) {
163
181
  this.email = email;
164
- this.email_hash = email ? md5(email) : void 0;
182
+ this.email_hash = email ? md5.hash(email, true) : void 0;
165
183
  if (this.email_hash) {
166
184
  localStorage.setItem(emailHashLocalStorageName, this.email_hash);
167
185
  }
@@ -198,7 +216,10 @@ var XyPixel = class _XyPixel {
198
216
  await api.trackEvents(events);
199
217
  } catch (ex) {
200
218
  if (events) {
201
- this.queue = [...this.queue, ...events];
219
+ this.queue = [
220
+ ...this.queue,
221
+ ...events
222
+ ];
202
223
  }
203
224
  console.error(ex);
204
225
  }
@@ -220,10 +241,16 @@ var XyPixel = class _XyPixel {
220
241
 
221
242
  // src/UserEventHandler.ts
222
243
  var UserEventHandler = class {
244
+ static {
245
+ __name(this, "UserEventHandler");
246
+ }
223
247
  };
224
248
 
225
249
  // src/XyUserEventHandler.ts
226
250
  var XyUserEventHandler = class extends UserEventHandler {
251
+ static {
252
+ __name(this, "XyUserEventHandler");
253
+ }
227
254
  constructor() {
228
255
  super();
229
256
  }
@@ -249,4 +276,4 @@ export {
249
276
  XyPixel,
250
277
  XyUserEventHandler
251
278
  };
252
- //# sourceMappingURL=index.js.map
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,16 +9,13 @@
9
9
  "url": "https://github.com/xylabs/sdk-pixel-js/issues"
10
10
  },
11
11
  "dependencies": {
12
- "@xylabs/assert": "^3.5.9",
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
- "lodash-es": "^4.17.21",
18
- "md5": "^2.3.0"
19
- },
20
- "peerDependencies": {
21
- "axios": "^1.2"
18
+ "spark-md5": "^3.0.2"
22
19
  },
23
20
  "description": "Event Client for xylabs ESB",
24
21
  "devDependencies": {
@@ -26,57 +23,37 @@
26
23
  "@types/js-cookie": "^3.0.6",
27
24
  "@types/jsdom": "^21.1.7",
28
25
  "@types/lodash-es": "^4.17.12",
29
- "@types/md5": "^2.3.5",
30
- "@types/node": "^20.14.10",
26
+ "@types/node": "^22.3.0",
31
27
  "@types/randombytes": "^2.0.3",
32
- "@xylabs/eslint-config": "^3.11.12",
33
- "@xylabs/ts-scripts-yarn3": "^3.11.12",
34
- "@xylabs/tsconfig-dom": "^3.11.12",
35
- "@xylabs/tsconfig-dom-jest": "^3.11.12",
36
- "@xylabs/tsconfig-jest": "^3.11.12",
37
- "axios": "^1.7.2",
38
- "eslint": "^9.6.0",
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",
39
38
  "jest": "^29.7.0",
40
39
  "jest-environment-jsdom": "^29.7.0",
41
- "jsdom": "^24.1.0",
40
+ "jsdom": "^24.1.1",
42
41
  "npm-package-json-lint": "^8.0.0",
43
42
  "reflect-metadata": "^0.2.2",
44
- "ts-jest": "^29.2.2",
43
+ "ts-jest": "^29.2.4",
45
44
  "ts-node": "^10.9.2",
46
- "typescript": "^5.5.3"
47
- },
48
- "resolutions": {
49
- "eslint": "^8"
45
+ "typescript": "^5.5.4",
46
+ "vitest": "^2.0.5"
50
47
  },
51
48
  "types": "dist/browser/index.d.ts",
52
49
  "exports": {
53
50
  ".": {
54
- "node": {
55
- "import": {
56
- "types": "./dist/node/index.d.mts",
57
- "default": "./dist/node/index.js"
58
- },
59
- "require": {
60
- "types": "./dist/node/index.d.cts",
61
- "default": "./dist/node/index.cjs"
62
- }
63
- },
64
- "browser": {
65
- "import": {
66
- "types": "./dist/browser/index.d.mts",
67
- "default": "./dist/browser/index.js"
68
- },
69
- "require": {
70
- "types": "./dist/browser/index.d.cts",
71
- "default": "./dist/browser/index.cjs"
72
- }
73
- },
74
- "default": "./dist/browser/index.js"
51
+ "types": "./dist/browser/index.d.ts",
52
+ "default": "./dist/browser/index.mjs"
75
53
  },
76
54
  "./package.json": "./package.json"
77
55
  },
78
- "main": "dist/browser/index.cjs",
79
- "module": "dist/browser/index.js",
56
+ "module": "dist/browser/index.mjs",
80
57
  "homepage": "https://xylabs.com",
81
58
  "license": "LGPL-3.0-or-later",
82
59
  "name": "@xylabs/pixel",
@@ -88,7 +65,7 @@
88
65
  "url": "https://github.com/xylabs/sdk-pixel-js.git"
89
66
  },
90
67
  "sideEffects": false,
91
- "version": "1.7.0",
92
- "packageManager": "yarn@4.3.1",
68
+ "version": "2.0.0",
69
+ "packageManager": "yarn@4.4.0",
93
70
  "type": "module"
94
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/UtmFields.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { isEqual } from '@xylabs/lodash'
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)) {
@@ -1,5 +1,9 @@
1
- import { PixelApi } from '../Api'
2
- import { XyPixel } from '../Pixel'
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')
@@ -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
@@ -0,0 +1,10 @@
1
+ import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
+ const config: XyTsupConfig = {
3
+ compile: {
4
+ browser: { src: true },
5
+ neutral: {},
6
+ node: {},
7
+ },
8
+ }
9
+
10
+ export default config
@@ -1,7 +0,0 @@
1
- import { UserEvent } from './UserEvent.js';
2
- export declare class PixelApi {
3
- private endPoint;
4
- constructor(baseUri?: string);
5
- trackEvents(events: UserEvent[]): Promise<any>;
6
- }
7
- //# sourceMappingURL=Api.d.ts.map
@@ -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,7 +0,0 @@
1
- import { UserEvent } from './UserEvent.js';
2
- export declare class PixelApi {
3
- private endPoint;
4
- constructor(baseUri?: string);
5
- trackEvents(events: UserEvent[]): Promise<any>;
6
- }
7
- //# sourceMappingURL=Api.d.ts.map
@@ -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,7 +0,0 @@
1
- import { UserEvent } from './UserEvent.js';
2
- export declare class PixelApi {
3
- private endPoint;
4
- constructor(baseUri?: string);
5
- trackEvents(events: UserEvent[]): Promise<any>;
6
- }
7
- //# sourceMappingURL=Api.d.ts.map
@@ -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"}