@xylabs/pixel 1.6.0 → 2.0.0

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