@envive-ai/react-hooks 0.1.1 → 0.1.3

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 (305) hide show
  1. package/dist/adapters/amplitude/index.cjs +14 -0
  2. package/dist/adapters/amplitude/index.d.cts +4 -0
  3. package/dist/adapters/amplitude/index.d.ts +4 -0
  4. package/dist/adapters/amplitude/index.js +12 -0
  5. package/dist/api-BtzLHcfU.cjs +268 -0
  6. package/dist/api-kpPTZhV9.js +189 -0
  7. package/dist/application/config/index.cjs +34 -0
  8. package/dist/application/config/index.d.cts +14 -0
  9. package/dist/application/config/index.d.ts +14 -0
  10. package/dist/application/config/index.js +32 -0
  11. package/dist/application/models/graphql/index.cjs +13 -0
  12. package/dist/application/models/graphql/index.d.cts +2 -0
  13. package/dist/application/models/graphql/index.d.ts +2 -0
  14. package/dist/application/models/graphql/index.js +12 -0
  15. package/dist/application/models/guards/api/index.cjs +15 -0
  16. package/dist/application/models/guards/api/index.d.cts +3 -0
  17. package/dist/application/models/guards/api/index.d.ts +3 -0
  18. package/dist/application/models/guards/api/index.js +4 -0
  19. package/dist/application/models/index.cjs +72 -0
  20. package/dist/application/models/index.d.cts +10 -0
  21. package/dist/application/models/index.d.ts +10 -0
  22. package/dist/application/models/index.js +12 -0
  23. package/dist/application/models/utilityTypes/index.cjs +1 -0
  24. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  25. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  26. package/dist/application/models/utilityTypes/index.js +3 -0
  27. package/dist/application/models/variantInfo/index.cjs +1 -0
  28. package/dist/application/models/variantInfo/index.d.cts +2 -0
  29. package/dist/application/models/variantInfo/index.d.ts +2 -0
  30. package/dist/application/models/variantInfo/index.js +3 -0
  31. package/dist/application/service/customerService/index.cjs +4 -0
  32. package/dist/application/service/customerService/index.d.cts +3 -0
  33. package/dist/application/service/customerService/index.d.ts +3 -0
  34. package/dist/application/service/customerService/index.js +4 -0
  35. package/dist/application/service/index.cjs +761 -0
  36. package/dist/application/service/index.d.cts +407 -0
  37. package/dist/application/service/index.d.ts +407 -0
  38. package/dist/application/service/index.js +727 -0
  39. package/dist/application/utils/index.cjs +38 -0
  40. package/dist/application/utils/index.d.cts +254 -0
  41. package/dist/application/utils/index.d.ts +254 -0
  42. package/dist/application/utils/index.js +12 -0
  43. package/dist/atomStore-B3tsg6mF.cjs +0 -0
  44. package/dist/atomStore-BNQyGmU_.cjs +57 -0
  45. package/dist/atomStore-FSZd_20F.js +1 -0
  46. package/dist/atomStore-TnLPtYns.js +31 -0
  47. package/dist/atoms/app/index.cjs +17 -0
  48. package/dist/atoms/app/index.d.cts +33 -0
  49. package/dist/atoms/app/index.d.ts +33 -0
  50. package/dist/atoms/app/index.js +12 -0
  51. package/dist/atoms/atomStore/index.cjs +7 -0
  52. package/dist/atoms/atomStore/index.d.cts +23 -0
  53. package/dist/atoms/atomStore/index.d.ts +23 -0
  54. package/dist/atoms/atomStore/index.js +4 -0
  55. package/dist/atoms/chat/index.cjs +41 -0
  56. package/dist/atoms/chat/index.d.cts +159 -0
  57. package/dist/atoms/chat/index.d.ts +159 -0
  58. package/dist/atoms/chat/index.js +12 -0
  59. package/dist/atoms/globalSearch/index.cjs +6 -0
  60. package/dist/atoms/globalSearch/index.d.cts +23 -0
  61. package/dist/atoms/globalSearch/index.d.ts +23 -0
  62. package/dist/atoms/globalSearch/index.js +3 -0
  63. package/dist/atoms/org/index.cjs +41 -0
  64. package/dist/atoms/org/index.d.cts +93 -0
  65. package/dist/atoms/org/index.d.ts +93 -0
  66. package/dist/atoms/org/index.js +13 -0
  67. package/dist/atoms/search/index.cjs +44 -0
  68. package/dist/atoms/search/index.d.cts +11 -0
  69. package/dist/atoms/search/index.d.ts +11 -0
  70. package/dist/atoms/search/index.js +14 -0
  71. package/dist/{bandolier-3rHPPhkF.cjs → bandolier-CQrxBHsk.cjs} +57 -47
  72. package/dist/{bandolier-DpF-HUG_.js → bandolier-Di9DpZ8e.js} +18 -8
  73. package/dist/{carpe-BG7Q_KCG.cjs → carpe-3NJOR-Rj.cjs} +36 -26
  74. package/dist/{carpe-DLuc07V7.js → carpe-DmWKaIQq.js} +18 -8
  75. package/dist/{cdnService-CAyO3axV.js → cdnService-BNreZjqy.js} +1 -1
  76. package/dist/{cdnService-DIF1i7VC.cjs → cdnService-vLxePdrU.cjs} +1 -1
  77. package/dist/chat-CCQMmhc1.cjs +5057 -0
  78. package/dist/chat-CCgyDehy.cjs +151 -0
  79. package/dist/chat-Dk6KPb1K.js +25 -0
  80. package/dist/chat-H6YcCS4I.js +4113 -0
  81. package/dist/components-CScS7Ii-.cjs +28 -0
  82. package/dist/components-DAQxVIn9.js +10 -0
  83. package/dist/config/locators/components/chat/index.cjs +23 -0
  84. package/dist/config/locators/components/chat/index.d.cts +2 -0
  85. package/dist/config/locators/components/chat/index.d.ts +2 -0
  86. package/dist/config/locators/components/chat/index.js +3 -0
  87. package/dist/config/locators/components/chat/variants/index.cjs +28 -0
  88. package/dist/config/locators/components/chat/variants/index.d.cts +15 -0
  89. package/dist/config/locators/components/chat/variants/index.d.ts +15 -0
  90. package/dist/config/locators/components/chat/variants/index.js +16 -0
  91. package/dist/config/locators/components/index.cjs +5 -0
  92. package/dist/config/locators/components/index.d.cts +2 -0
  93. package/dist/config/locators/components/index.d.ts +2 -0
  94. package/dist/config/locators/components/index.js +3 -0
  95. package/dist/config/locators/components/search/index.cjs +12 -0
  96. package/dist/config/locators/components/search/index.d.cts +7 -0
  97. package/dist/config/locators/components/search/index.d.ts +7 -0
  98. package/dist/config/locators/components/search/index.js +8 -0
  99. package/dist/config/locators/index.cjs +47 -0
  100. package/dist/config/locators/index.d.cts +24 -0
  101. package/dist/config/locators/index.d.ts +24 -0
  102. package/dist/config/locators/index.js +6 -0
  103. package/dist/contexts/index.cjs +21 -10
  104. package/dist/contexts/index.d.cts +12 -4
  105. package/dist/contexts/index.d.ts +12 -4
  106. package/dist/contexts/index.js +16 -5
  107. package/dist/{coterie-DUdvJvAs.cjs → coterie-D0UFsFC5.cjs} +26 -15
  108. package/dist/{coterie-FybYN_xE.js → coterie-JblRmIZL.js} +19 -8
  109. package/dist/customerService-C4wc0glQ.js +22 -0
  110. package/dist/customerService-zsDlp7g2.cjs +35 -0
  111. package/dist/custservice-types-D8Npo-5Z.js +22 -0
  112. package/dist/custservice-types-E9_OSaZ7.cjs +34 -0
  113. package/dist/default-C5ZTV8HA.cjs +4 -0
  114. package/dist/{default-CL94oJfj.js → default-DPv8m-eQ.js} +1 -1
  115. package/dist/{default-CKyjzyLc.cjs → default-DRKBosow.cjs} +1 -1
  116. package/dist/default-ao0vRl0W.js +4 -0
  117. package/dist/divIds-BWvq-i6I.js +22 -0
  118. package/dist/{divIds-BOqjn3bE.cjs → divIds-CFyAjjp3.cjs} +6 -79
  119. package/dist/{dreamlandBaby-WXcbsTXO.js → dreamlandBaby-CyS8oW8X.js} +18 -8
  120. package/dist/{dreamlandBaby-C8yzW4Nl.cjs → dreamlandBaby-y7kSvwH2.cjs} +29 -19
  121. package/dist/embedded-BlXJUbik.cjs +130 -0
  122. package/dist/embedded-C1jvFj3v.js +22 -0
  123. package/dist/events/index.cjs +4 -0
  124. package/dist/events/index.d.cts +45 -0
  125. package/dist/events/index.d.ts +45 -0
  126. package/dist/events/index.js +3 -0
  127. package/dist/events-DgFzlVJR.js +77 -0
  128. package/dist/events-bH-24eRW.cjs +89 -0
  129. package/dist/featureFlagService-CroFRxvD.d.cts +17 -0
  130. package/dist/featureFlagService-NkJ2fuEj.d.ts +17 -0
  131. package/dist/featureGates-BMWXU0dS.d.ts +90 -0
  132. package/dist/featureGates-N_gyHCTn.d.cts +90 -0
  133. package/dist/{fiveCbd-CZYzZPl3.cjs → fiveCbd-CXVuIBiZ.cjs} +33 -23
  134. package/dist/{fiveCbd-kl6CoxoF.js → fiveCbd-Cyc3-Ab9.js} +18 -8
  135. package/dist/{forLoveAndLemons-BNu-PfFB.cjs → forLoveAndLemons-CxQS0USq.cjs} +18 -10
  136. package/dist/{forLoveAndLemons-BD2qh-6B.js → forLoveAndLemons-D8mcgmdk.js} +14 -6
  137. package/dist/{types-DGoFEos_.d.cts → frontendConfig-KeNqU1wa.d.cts} +39 -275
  138. package/dist/{types-D4vlfTd0.d.ts → frontendConfig-cPvCTWm6.d.ts} +39 -275
  139. package/dist/globalSearch-BC0rOX3E.js +13 -0
  140. package/dist/globalSearch-hxbXekus.cjs +38 -0
  141. package/dist/{greenpan-LDDXZTsh.js → greenpan-JM6SHcqO.js} +18 -8
  142. package/dist/{greenpan-D6fDmjU8.cjs → greenpan-eIzyxVsn.cjs} +31 -21
  143. package/dist/{grooveLife-D-1qfxwj.js → grooveLife-BmsUc2cD.js} +19 -9
  144. package/dist/{grooveLife-CcylXabB.cjs → grooveLife-KdTizVUn.cjs} +30 -20
  145. package/dist/{homegrownCannabis-BEZzwFlm.cjs → homegrownCannabis-C0GDai4r.cjs} +28 -17
  146. package/dist/{homegrownCannabis-BScZhy9v.js → homegrownCannabis-a9udocBT.js} +18 -7
  147. package/dist/hooks/index.cjs +38 -27
  148. package/dist/hooks/index.d.cts +20 -310
  149. package/dist/hooks/index.d.ts +16 -307
  150. package/dist/hooks/index.js +16 -5
  151. package/dist/{contexts-C4Iz162H.cjs → hooks-DjOa7ihH.cjs} +300 -4600
  152. package/dist/{contexts-Dq7tO_0y.js → hooks-fneW8SWw.js} +121 -4428
  153. package/dist/index-BQErGgfM.d.cts +202 -0
  154. package/dist/index-BdNKc2ix.d.cts +8 -0
  155. package/dist/index-BrXuc_Ck.d.cts +24 -0
  156. package/dist/index-C4zjAR1c.d.cts +227 -0
  157. package/dist/index-CGB6CAmr.d.ts +6 -0
  158. package/dist/index-CIco0cCQ.d.ts +183 -0
  159. package/dist/index-COG1kOZG.d.ts +749 -0
  160. package/dist/index-CVxe7FpL.d.cts +6 -0
  161. package/dist/index-Cn1SeI5y.d.cts +183 -0
  162. package/dist/index-CnqHN_jz.d.ts +202 -0
  163. package/dist/index-Cqg6ltII.d.ts +38 -0
  164. package/dist/index-DE_7Q8qK.d.ts +94 -0
  165. package/dist/index-Da0UzyI9.d.ts +24 -0
  166. package/dist/index-DbWWcYax.d.cts +749 -0
  167. package/dist/index-DtoVXd6O.d.cts +97 -0
  168. package/dist/index-JClBRnSX.d.cts +94 -0
  169. package/dist/index-ghzD_356.d.ts +8 -0
  170. package/dist/index-hdbCEjYy.d.cts +38 -0
  171. package/dist/index-luJrHgPN.d.ts +97 -0
  172. package/dist/index-tfRj22E1.d.ts +227 -0
  173. package/dist/interceptors/index.cjs +14 -0
  174. package/dist/interceptors/index.d.cts +25 -0
  175. package/dist/interceptors/index.d.ts +25 -0
  176. package/dist/interceptors/index.js +13 -0
  177. package/dist/{jackArcher-BwMClqMP.cjs → jackArcher-B6OJ0N3a.cjs} +35 -25
  178. package/dist/{jackArcher-cJJVulZ9.js → jackArcher-B9fe4Hv8.js} +18 -8
  179. package/dist/{jordanCraig-DGsCO2o1.cjs → jordanCraig-0CB_m_ts.cjs} +78 -68
  180. package/dist/{jordanCraig-DNDMT0hn.js → jordanCraig-DNm1iw1L.js} +18 -8
  181. package/dist/{kindredBravely-ROyesnVk.js → kindredBravely-CZgt7DJA.js} +17 -7
  182. package/dist/{kindredBravely-wV2XT1r_.cjs → kindredBravely-KvYPbckZ.cjs} +28 -18
  183. package/dist/{kutFromTheKloth-B6GR8tO9.cjs → kutFromTheKloth-BxgtWZs9.cjs} +29 -19
  184. package/dist/{kutFromTheKloth-BCUOHegv.js → kutFromTheKloth-SmteSZjk.js} +18 -8
  185. package/dist/{larryAndSerges-CIqB9tKz.cjs → larryAndSerges-6O_u3L90.cjs} +21 -12
  186. package/dist/{larryAndSerges-CqS02fnX.js → larryAndSerges-DO-zG8ES.js} +14 -5
  187. package/dist/{leapsAndRebounds-j4YqSvNb.js → leapsAndRebounds-BK62AmXw.js} +18 -8
  188. package/dist/{leapsAndRebounds-CFj9F_z1.cjs → leapsAndRebounds-gPsWVUmQ.cjs} +31 -21
  189. package/dist/locators-C2DX_nX6.js +1 -0
  190. package/dist/locators-CUpyd9Wt.cjs +0 -0
  191. package/dist/logger-Be0NyKaY.cjs +25 -0
  192. package/dist/logger-BexDfK3W.js +19 -0
  193. package/dist/{longevityrx-C-Yc5LPR.cjs → longevityrx-DjKbwJo3.cjs} +26 -16
  194. package/dist/{longevityrx-9sUQZCVZ.js → longevityrx-eq5TeUcy.js} +18 -8
  195. package/dist/{lookOptic-dbaaorhR.cjs → lookOptic-BPPqms_j.cjs} +26 -16
  196. package/dist/{lookOptic-CQryypdM.js → lookOptic-jRpBXQCN.js} +18 -8
  197. package/dist/{mantraBrand-CifBQtHp.js → mantraBrand-BZOZfkUK.js} +19 -9
  198. package/dist/{mantraBrand-D5MTZ6Mj.cjs → mantraBrand-Cp8zptkj.cjs} +47 -37
  199. package/dist/{medterra-BCrXdmFE.cjs → medterra-BHYCBgvQ.cjs} +38 -28
  200. package/dist/{medterra-DhENCf-m.js → medterra-CShe6CLY.js} +18 -8
  201. package/dist/{modells-C_P_894S.cjs → modells-DE7-gmjK.cjs} +32 -22
  202. package/dist/{modells-aQrV10D7.js → modells-DFyJxNwT.js} +18 -8
  203. package/dist/nodeSelector-DpKXszfU.d.ts +30 -0
  204. package/dist/nodeSelector-vKB44CDB.d.cts +30 -0
  205. package/dist/org-Bkn6fl6I.cjs +106 -0
  206. package/dist/org-CX8HFbc9.js +63 -0
  207. package/dist/{pressedFloral-DErfwwl0.cjs → pressedFloral-BMkCVs8c.cjs} +37 -27
  208. package/dist/{pressedFloral-D-amnTQK.js → pressedFloral-aK9br-LF.js} +18 -8
  209. package/dist/search-DtIFZeMA.cjs +743 -0
  210. package/dist/search-eWwg8pNn.js +542 -0
  211. package/dist/search-filter-types-ByJnFPc4.d.cts +101 -0
  212. package/dist/search-filter-types-DPgeG8FS.d.ts +101 -0
  213. package/dist/{skinPerfection-DRVPJp3h.js → skinPerfection-B9G6yLM2.js} +18 -8
  214. package/dist/{skinPerfection-DF6nQXjh.cjs → skinPerfection-BBC1q65Z.cjs} +26 -16
  215. package/dist/{snapSupplements-CLZjItJi.cjs → snapSupplements-D7hx6Kgj.cjs} +26 -16
  216. package/dist/{snapSupplements-Yxs4jgC-.js → snapSupplements-DKvJl__T.js} +18 -8
  217. package/dist/{spanx-Cpbot5J5.cjs → spanx-D-ZKkxjM.cjs} +32 -22
  218. package/dist/{spanx-DVDyAyFC.js → spanx-yl7YfVrf.js} +20 -10
  219. package/dist/{spanxStaging-DbaVonN6.cjs → spanxStaging-CXeIg6zI.cjs} +36 -26
  220. package/dist/{spanxStaging-DAiFEMRU.js → spanxStaging-DzGXL9wD.js} +20 -10
  221. package/dist/suggestionBarV2-types-B0RbMStE.js +9 -0
  222. package/dist/suggestionBarV2-types-DG3Ekk44.cjs +15 -0
  223. package/dist/{supergoop-B5VQlsoe.cjs → supergoop-CSpDPOpl.cjs} +29 -18
  224. package/dist/{supergoop-C4McrZPT.js → supergoop-D0UkuRiA.js} +18 -7
  225. package/dist/test-types-C9b_OdfO.d.ts +39 -0
  226. package/dist/test-types-CpKCxk8U.d.cts +39 -0
  227. package/dist/types/index.cjs +6 -0
  228. package/dist/types/index.d.cts +3 -0
  229. package/dist/types/index.d.ts +3 -0
  230. package/dist/types/index.js +4 -0
  231. package/dist/types-BE4faOO_.d.cts +32 -0
  232. package/dist/{types-DZzSQ5a6.js → types-C3S1H4hl.js} +58 -58
  233. package/dist/types-TD8g7LnH.d.ts +32 -0
  234. package/dist/{types-QJObznro.cjs → types-lcjuhDBt.cjs} +58 -58
  235. package/dist/{uniqueVintage-BLp_UtBR.cjs → uniqueVintage-DygVpCqU.cjs} +48 -38
  236. package/dist/{uniqueVintage-CS4TgOJW.js → uniqueVintage-_n0FZFVj.js} +18 -8
  237. package/dist/useMessageInterceptor-BP6gzo8a.js +57 -0
  238. package/dist/useMessageInterceptor-BnUG2Pzt.cjs +72 -0
  239. package/dist/utilityTypes-DMdsI0DG.cjs +0 -0
  240. package/dist/utilityTypes-UWdNHElu.js +1 -0
  241. package/dist/variant-DH4zusMi.d.cts +12 -0
  242. package/dist/variant-DTEqSBHd.d.ts +12 -0
  243. package/dist/variantInfo-BTvC6CQh.js +1 -0
  244. package/dist/variantInfo-Cz2YXraO.cjs +0 -0
  245. package/dist/{venaCbd-DfnFV7Qp.js → venaCbd-BS0dvdBm.js} +18 -8
  246. package/dist/{venaCbd-BxmadOeJ.cjs → venaCbd-Pqg0bj-P.cjs} +31 -21
  247. package/dist/{westonJonBoucher-C0FE4Wup.js → westonJonBoucher-CLw8Hy6u.js} +18 -8
  248. package/dist/{westonJonBoucher-BZdusJgo.cjs → westonJonBoucher-CeA0jwxe.cjs} +31 -21
  249. package/dist/{wineEnthusiast-CmhNg47M.js → wineEnthusiast-M9P18d1w.js} +18 -8
  250. package/dist/{wineEnthusiast-DQxdV8Yg.cjs → wineEnthusiast-gHBaQMbe.cjs} +30 -20
  251. package/dist/{wolfMattress-vMvqmwgI.js → wolfMattress-BQHjoQYu.js} +18 -7
  252. package/dist/{wolfMattress-CqyOUgPB.cjs → wolfMattress-CdmN-Evm.cjs} +30 -19
  253. package/dist/{wolfTactical-DvqxZtoA.js → wolfTactical-Cc2ZLBRh.js} +18 -8
  254. package/dist/{wolfTactical-q3TVDP85.cjs → wolfTactical-dObnPgAG.cjs} +30 -20
  255. package/package.json +101 -3
  256. package/src/adapters/amplitude/amplitudeAdapter.ts +1 -1
  257. package/src/adapters/spiffy/commerce/api.ts +1 -1
  258. package/src/adapters/spiffy/commerce/graphql.ts +61 -37
  259. package/src/application/config/index.ts +1 -0
  260. package/src/application/models/index.ts +102 -17
  261. package/src/application/models/supportedOrgs.ts +89 -65
  262. package/src/application/service/index.ts +32 -0
  263. package/src/application/service/pageVariantService.ts +201 -114
  264. package/src/application/service/searchService.ts +1 -1
  265. package/src/application/service/windowFrontendConfigService.ts +40 -18
  266. package/src/application/utils/index.ts +22 -3
  267. package/src/atoms/app/variant.ts +48 -29
  268. package/src/atoms/atomStore/index.ts +1 -0
  269. package/src/atoms/chat/messageQueue.ts +34 -17
  270. package/src/atoms/chat/performanceMetrics.ts +51 -38
  271. package/src/atoms/chat/renderedWidgetRefs.ts +14 -15
  272. package/src/atoms/globalSearch/index.ts +1 -0
  273. package/src/atoms/org/org.ts +1 -3
  274. package/src/atoms/org/orgUIConfig.ts +31 -24
  275. package/src/contexts/chatContext.tsx +124 -72
  276. package/src/contexts/systemSettingsContext.tsx +21 -8
  277. package/src/events/registerAnalyticsListeners.ts +13 -9
  278. package/src/hooks/useFileUpload.ts +9 -7
  279. package/src/hooks/useSearch.tsx +9 -6
  280. package/src/initialize.ts +1 -1
  281. package/src/interceptors/index.ts +3 -0
  282. package/src/main.tsx +1 -1
  283. package/src/types/index.ts +4 -0
  284. package/src/types/search-filter-types.ts +7 -7
  285. package/dist/GridInsertionService-C00upKLB.js +0 -40
  286. package/dist/GridInsertionService-CMJVhD6q.cjs +0 -52
  287. package/dist/custservice-types-BgjGHCtD.cjs +0 -16
  288. package/dist/custservice-types-V6FWABp4.js +0 -10
  289. package/dist/default-DMtAjA62.cjs +0 -4
  290. package/dist/default-zcmT2032.js +0 -4
  291. package/dist/divIds-Cfp3v_rG.js +0 -35
  292. package/dist/domInsertionService-BtzuH2Sc.js +0 -65
  293. package/dist/domInsertionService-Cb9814oM.cjs +0 -89
  294. package/dist/suggestionBarV2-types-XHYD3j8E.cjs +0 -46
  295. package/dist/suggestionBarV2-types-aiQmVx5m.js +0 -34
  296. package/src/atoms/index.ts +0 -5
  297. package/src/index.ts +0 -31
  298. /package/dist/{entrypoints-RmIbdYxh.js → entrypoints-CmmOszXO.js} +0 -0
  299. /package/dist/{entrypoints-C8JwiMYA.cjs → entrypoints-fowCLUT2.cjs} +0 -0
  300. /package/dist/{enviveConfigContext-Dfr2VH6u.cjs → enviveConfigContext-Bs8kepnO.cjs} +0 -0
  301. /package/dist/{enviveConfigContext-CUGLpPGU.js → enviveConfigContext-CWVdVWKW.js} +0 -0
  302. /package/dist/{socialProofClasses-CaA83vI4.cjs → socialProofClasses-BYLiEXpU.cjs} +0 -0
  303. /package/dist/{socialProofClasses-KB7zOMmg.js → socialProofClasses-CkJufEGb.js} +0 -0
  304. /package/src/atoms/{atomStore.ts → atomStore/atomStore.ts} +0 -0
  305. /package/src/atoms/{globalSearch.ts → globalSearch/globalSearch.ts} +0 -0
@@ -1,9 +1,9 @@
1
- import { v4 as uuid } from 'uuid';
2
- import { createVisitUserEvent } from 'src/hooks/utils';
3
- import CommerceApiClient from 'src/adapters/spiffy/commerce/api';
4
- import Logger from 'src/application/logging/logger';
5
- import { getAtomStore } from 'src/atoms/atomStore';
6
- import { featureFlagServiceAtom } from 'src/atoms/org/org';
1
+ import { v4 as uuid } from "uuid";
2
+ import { createVisitUserEvent } from "src/hooks/utils";
3
+ import CommerceApiClient from "src/adapters/spiffy/commerce/api";
4
+ import Logger from "src/application/logging/logger";
5
+ import { getAtomStore } from "src/atoms/atomStore/atomStore";
6
+ import { featureFlagServiceAtom } from "src/atoms/org/org";
7
7
  import {
8
8
  CategoryExtractor,
9
9
  CategoryExtractorType,
@@ -12,26 +12,31 @@ import {
12
12
  PageVariantConfig,
13
13
  PageVariantTest,
14
14
  PageVariantTestType,
15
- } from 'src/contexts/types';
16
- import { ShopifyUrlService } from 'src/application/service/shopifyUrlService';
17
- import { Message, MessageRole, MessageType, VariantInfo } from 'src/application/models';
18
- import { FeatureGates } from 'src/application/models/featureGates';
19
- import { appDetailsAtom } from 'src/atoms/app';
15
+ } from "src/contexts/types";
16
+ import { ShopifyUrlService } from "src/application/service/shopifyUrlService";
17
+ import {
18
+ Message,
19
+ MessageRole,
20
+ MessageType,
21
+ VariantInfo,
22
+ } from "src/application/models";
23
+ import { FeatureGates } from "src/application/models/featureGates";
24
+ import { appDetailsAtom } from "src/atoms/app";
20
25
 
21
26
  import {
22
27
  PageVisitCategory,
23
28
  type SupportedEventProductCategory,
24
- } from '@spiffy-ai/commerce-api-client';
29
+ } from "@spiffy-ai/commerce-api-client";
25
30
  import {
26
31
  SupportedEvent,
27
32
  urlResolverAtom,
28
33
  UrlResolverResponse,
29
34
  UrlResolvingPDPConfig,
30
35
  UrlResolvingPLPConfig,
31
- } from 'src/atoms/app/variant';
32
- import { tellExtensionAboutInjectionError } from 'src/extension';
33
- import { chatAtom, lastAssistantMessageAtom } from 'src/atoms/chat';
34
- import { StringUtils } from '../utils/stringUtils';
36
+ } from "src/atoms/app/variant";
37
+ import { tellExtensionAboutInjectionError } from "src/extension";
38
+ import { chatAtom, lastAssistantMessageAtom } from "src/atoms/chat";
39
+ import { StringUtils } from "../utils/stringUtils";
35
40
 
36
41
  /**
37
42
  * This class is used to resolve the PageVariants for the Spiffy App.
@@ -49,13 +54,16 @@ class PageVariantService {
49
54
  responseStreaming: boolean;
50
55
  messages: Message[][];
51
56
  lastAssistantMessage?: Message[] | null | undefined;
52
- },
57
+ }
53
58
  ): Promise<boolean> => {
54
59
  switch (test.testType) {
55
60
  case PageVariantTestType.UrlResolver: {
56
61
  const url = window._spiffy.variantUrlOverride ?? window.location.href;
57
62
  const response = await PageVariantService.getCachedUrlResolver(url);
58
- return response.ready && response.variant_type === pageVariantConfig.variantType;
63
+ return (
64
+ response.ready &&
65
+ response.variant_type === pageVariantConfig.variantType
66
+ );
59
67
  }
60
68
  case PageVariantTestType.ShopifyPDP:
61
69
  return ShopifyUrlService.isOnPdpPage();
@@ -83,23 +91,43 @@ class PageVariantService {
83
91
  // The 'fallback' testType will always evaluate to true
84
92
  return true;
85
93
  case PageVariantTestType.CatalogCategory:
86
- return PageVariantService.checkCatalogCategory(test.category, pageVariantConfig);
94
+ return PageVariantService.checkCatalogCategory(
95
+ test.category,
96
+ pageVariantConfig
97
+ );
87
98
  case PageVariantTestType.TopCatalogCategory:
88
- return PageVariantService.checkInTopCategory(test.topCategory, pageVariantConfig);
99
+ return PageVariantService.checkInTopCategory(
100
+ test.topCategory,
101
+ pageVariantConfig
102
+ );
89
103
  case PageVariantTestType.HasReviews:
90
- return PageVariantService.checkHasReviews(pageVariantConfig, test.reviewMinimum);
104
+ return PageVariantService.checkHasReviews(
105
+ pageVariantConfig,
106
+ test.reviewMinimum
107
+ );
91
108
  case PageVariantTestType.InCollection:
92
- return PageVariantService.checkInCollection(test.collections, pageVariantConfig);
109
+ return PageVariantService.checkInCollection(
110
+ test.collections,
111
+ pageVariantConfig
112
+ );
93
113
  case PageVariantTestType.HasMerchantTag:
94
- return PageVariantService.checkHasMerchantTag(test.merchantTags, pageVariantConfig);
114
+ return PageVariantService.checkHasMerchantTag(
115
+ test.merchantTags,
116
+ pageVariantConfig
117
+ );
95
118
  case PageVariantTestType.UserHasInteracted:
96
119
  return PageVariantService.userHasInteracted(atomValues?.messages);
97
120
  case PageVariantTestType.UserHasNotInteracted:
98
121
  return PageVariantService.userHasNotInteracted(atomValues?.messages);
99
122
  case PageVariantTestType.isLoading:
100
- return PageVariantService.isLoading(atomValues?.messages, atomValues?.responseStreaming);
123
+ return PageVariantService.isLoading(
124
+ atomValues?.messages,
125
+ atomValues?.responseStreaming
126
+ );
101
127
  case PageVariantTestType.isProductComparison:
102
- return PageVariantService.isProductComparison(atomValues?.lastAssistantMessage);
128
+ return PageVariantService.isProductComparison(
129
+ atomValues?.lastAssistantMessage
130
+ );
103
131
  default:
104
132
  // If there is a testType that we do not cover - default to false
105
133
  Logger.logInfo(`[Spiffy] pageTest - ${test} not supported`);
@@ -117,7 +145,9 @@ class PageVariantService {
117
145
  return cachedUrlResolver;
118
146
  }
119
147
 
120
- const response = (await CommerceApiClient.resolveUrl(url)) as UrlResolverResponse;
148
+ const response = (await CommerceApiClient.resolveUrl(
149
+ url
150
+ )) as UrlResolverResponse;
121
151
 
122
152
  // Store in atom cache for this URL (will be persisted to sessionStorage automatically)
123
153
  atomStore.set(urlResolverAtom, { url, response });
@@ -135,9 +165,11 @@ class PageVariantService {
135
165
  */
136
166
  private static readonly checkCatalogCategory = async (
137
167
  category: SupportedEventProductCategory | string,
138
- pageVariantConfig: PageVariantConfig,
168
+ pageVariantConfig: PageVariantConfig
139
169
  ): Promise<boolean> => {
140
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(pageVariantConfig);
170
+ const supportedEventResponse = await PageVariantService.checkSupportedEvent(
171
+ pageVariantConfig
172
+ );
141
173
  if (supportedEventResponse && supportedEventResponse.category) {
142
174
  return supportedEventResponse?.category === category;
143
175
  }
@@ -147,9 +179,11 @@ class PageVariantService {
147
179
 
148
180
  private static readonly checkInTopCategory = async (
149
181
  topCategory: string[],
150
- pageVariantConfig: PageVariantConfig,
182
+ pageVariantConfig: PageVariantConfig
151
183
  ): Promise<boolean> => {
152
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(pageVariantConfig);
184
+ const supportedEventResponse = await PageVariantService.checkSupportedEvent(
185
+ pageVariantConfig
186
+ );
153
187
  if (supportedEventResponse && supportedEventResponse?.top_category) {
154
188
  return topCategory.includes(supportedEventResponse?.top_category);
155
189
  }
@@ -159,9 +193,11 @@ class PageVariantService {
159
193
 
160
194
  private static readonly checkHasReviews = async (
161
195
  pageVariantConfig: PageVariantConfig,
162
- reviewMinimum: number = 0,
196
+ reviewMinimum: number = 0
163
197
  ): Promise<boolean> => {
164
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(pageVariantConfig);
198
+ const supportedEventResponse = await PageVariantService.checkSupportedEvent(
199
+ pageVariantConfig
200
+ );
165
201
  if (supportedEventResponse?.numberOfReviews) {
166
202
  return supportedEventResponse.numberOfReviews >= reviewMinimum;
167
203
  }
@@ -170,12 +206,14 @@ class PageVariantService {
170
206
 
171
207
  private static readonly checkInCollection = async (
172
208
  collections: string[],
173
- pageVariantConfig: PageVariantConfig,
209
+ pageVariantConfig: PageVariantConfig
174
210
  ): Promise<boolean> => {
175
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(pageVariantConfig);
211
+ const supportedEventResponse = await PageVariantService.checkSupportedEvent(
212
+ pageVariantConfig
213
+ );
176
214
  if (supportedEventResponse?.collections) {
177
215
  return supportedEventResponse.collections.some((collection) =>
178
- collections.includes(collection),
216
+ collections.includes(collection)
179
217
  );
180
218
  }
181
219
  return false;
@@ -183,12 +221,16 @@ class PageVariantService {
183
221
 
184
222
  private static readonly checkHasMerchantTag = async (
185
223
  merchantTags: string[],
186
- pageVariantConfig: PageVariantConfig,
224
+ pageVariantConfig: PageVariantConfig
187
225
  ): Promise<boolean> => {
188
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(pageVariantConfig);
226
+ const supportedEventResponse = await PageVariantService.checkSupportedEvent(
227
+ pageVariantConfig
228
+ );
189
229
 
190
230
  if (supportedEventResponse?.merchant_tags) {
191
- return supportedEventResponse.merchant_tags.some((tag) => merchantTags.includes(tag));
231
+ return supportedEventResponse.merchant_tags.some((tag) =>
232
+ merchantTags.includes(tag)
233
+ );
192
234
  }
193
235
 
194
236
  return false;
@@ -204,17 +246,24 @@ class PageVariantService {
204
246
  return messages.some((m) => m.some((msg) => msg.role === MessageRole.User));
205
247
  };
206
248
 
207
- private static readonly userHasNotInteracted = (msgs?: Message[][]): boolean => {
249
+ private static readonly userHasNotInteracted = (
250
+ msgs?: Message[][]
251
+ ): boolean => {
208
252
  if (msgs) {
209
253
  return !msgs.some((m) => m.some((msg) => msg.role === MessageRole.User));
210
254
  }
211
255
 
212
256
  const atomStore = getAtomStore();
213
257
  const chat = atomStore.get(chatAtom);
214
- return !chat.messages.some((m) => m.some((msg) => msg.role === MessageRole.User));
258
+ return !chat.messages.some((m) =>
259
+ m.some((msg) => msg.role === MessageRole.User)
260
+ );
215
261
  };
216
262
 
217
- private static readonly isLoading = (msgs?: Message[][], responseStream?: boolean): boolean => {
263
+ private static readonly isLoading = (
264
+ msgs?: Message[][],
265
+ responseStream?: boolean
266
+ ): boolean => {
218
267
  if (msgs) {
219
268
  return responseStream || (!responseStream && msgs.length === 0);
220
269
  }
@@ -225,15 +274,20 @@ class PageVariantService {
225
274
  };
226
275
 
227
276
  private static readonly isProductComparison = (
228
- lastMsg: Message[] | null | undefined,
277
+ lastMsg: Message[] | null | undefined
229
278
  ): boolean => {
230
279
  if (lastMsg) {
231
- return lastMsg?.filter((msg) => msg.type === MessageType.Product).length === 2;
280
+ return (
281
+ lastMsg?.filter((msg) => msg.type === MessageType.Product).length === 2
282
+ );
232
283
  }
233
284
 
234
285
  const atomStore = getAtomStore();
235
286
  const lastAssistantMessage = atomStore.get(lastAssistantMessageAtom);
236
- return lastAssistantMessage?.filter((msg) => msg.type === MessageType.Product).length === 2;
287
+ return (
288
+ lastAssistantMessage?.filter((msg) => msg.type === MessageType.Product)
289
+ .length === 2
290
+ );
237
291
  };
238
292
 
239
293
  private static readonly checkPlpIds = async ({
@@ -244,12 +298,12 @@ class PageVariantService {
244
298
  plpIdExtractor: IdExtractor;
245
299
  }): Promise<boolean> => {
246
300
  let currentPlpId: string | null;
247
- if (plpIdExtractor === 'url-resolver-plp-id') {
248
- currentPlpId = await PageVariantService.getIdFromUrlResolver('plpId');
301
+ if (plpIdExtractor === "url-resolver-plp-id") {
302
+ currentPlpId = await PageVariantService.getIdFromUrlResolver("plpId");
249
303
  } else {
250
304
  currentPlpId = await PageVariantService.getId(plpIdExtractor);
251
305
  }
252
- const result = plpIds.includes(currentPlpId ?? '');
306
+ const result = plpIds.includes(currentPlpId ?? "");
253
307
  return result;
254
308
  };
255
309
 
@@ -270,12 +324,14 @@ class PageVariantService {
270
324
  productIdExtractor: IdExtractor;
271
325
  }): Promise<boolean> => {
272
326
  let currentProductId: string | null;
273
- if (productIdExtractor === 'url-resolver-product-id') {
274
- currentProductId = await PageVariantService.getIdFromUrlResolver('productId');
327
+ if (productIdExtractor === "url-resolver-product-id") {
328
+ currentProductId = await PageVariantService.getIdFromUrlResolver(
329
+ "productId"
330
+ );
275
331
  } else {
276
332
  currentProductId = await PageVariantService.getId(productIdExtractor);
277
333
  }
278
- const result = productIds.includes(currentProductId ?? '');
334
+ const result = productIds.includes(currentProductId ?? "");
279
335
  return result;
280
336
  };
281
337
 
@@ -295,7 +351,10 @@ class PageVariantService {
295
351
  const urlMap = Object.entries(extractor.map);
296
352
 
297
353
  const matched = urlMap.find(([, urls]) => {
298
- const hostMatched = StringUtils.findMatchingPattern(urls, window.location);
354
+ const hostMatched = StringUtils.findMatchingPattern(
355
+ urls,
356
+ window.location
357
+ );
299
358
  if (hostMatched) {
300
359
  return hostMatched;
301
360
  }
@@ -312,53 +371,58 @@ class PageVariantService {
312
371
 
313
372
  Logger.logError(
314
373
  `[spiffy-ai] PageVariantService.getCategory error - extractor=${extractor} not supported`,
315
- undefined,
374
+ undefined
316
375
  );
317
376
  return null;
318
377
  }
319
378
 
320
379
  static async getId(extractor?: IdExtractor): Promise<string | null> {
321
- if (!extractor || extractor === 'null') {
380
+ if (!extractor || extractor === "null") {
322
381
  Logger.logDebug(
323
- `[spiffy-ai] PageVariantService.getId - extractor=${extractor} is null or not supported`,
382
+ `[spiffy-ai] PageVariantService.getId - extractor=${extractor} is null or not supported`
324
383
  );
325
384
  return null;
326
385
  }
327
386
 
328
387
  // Handle URL resolver extractors
329
- if (extractor === 'url-resolver-product-id') {
330
- return PageVariantService.getIdFromUrlResolver('productId');
388
+ if (extractor === "url-resolver-product-id") {
389
+ return PageVariantService.getIdFromUrlResolver("productId");
331
390
  }
332
391
 
333
- if (extractor === 'url-resolver-plp-id') {
334
- return PageVariantService.getIdFromUrlResolver('plpId');
392
+ if (extractor === "url-resolver-plp-id") {
393
+ return PageVariantService.getIdFromUrlResolver("plpId");
335
394
  }
336
395
 
337
396
  // Handle regular extractors
338
397
  return ShopifyUrlService.getPlpOrPdpId(extractor);
339
398
  }
340
399
 
341
- private static readonly getIdFromUrlResolver = async (field: 'productId' | 'plpId') => {
400
+ private static readonly getIdFromUrlResolver = async (
401
+ field: "productId" | "plpId"
402
+ ) => {
342
403
  const url = window._spiffy.variantUrlOverride ?? window.location.href;
343
404
  const response = await this.getCachedUrlResolver(url);
344
405
  // PDP
345
- if (field === 'productId' && response.variant_type === 'pdp') {
406
+ if (field === "productId" && response.variant_type === "pdp") {
346
407
  let productId: string | undefined;
347
- if (response.user_event?.attributes && 'product_id' in response.user_event.attributes) {
408
+ if (
409
+ response.user_event?.attributes &&
410
+ "product_id" in response.user_event.attributes
411
+ ) {
348
412
  productId = response.user_event.attributes.product_id;
349
413
  }
350
414
  return productId ?? null;
351
415
  }
352
416
 
353
417
  // PLP
354
- if (field === 'plpId' && response.variant_type === 'plp') {
418
+ if (field === "plpId" && response.variant_type === "plp") {
355
419
  let plpId: string | undefined;
356
420
  if (
357
- response.user_event?.category === 'plp_visit' &&
421
+ response.user_event?.category === "plp_visit" &&
358
422
  response.user_event.attributes &&
359
- 'attributes' in response.user_event.attributes &&
423
+ "attributes" in response.user_event.attributes &&
360
424
  response.user_event.attributes.attributes &&
361
- 'id' in response.user_event.attributes.attributes
425
+ "id" in response.user_event.attributes.attributes
362
426
  ) {
363
427
  plpId = response.user_event.attributes.attributes.id;
364
428
  }
@@ -500,24 +564,29 @@ class PageVariantService {
500
564
  * return any matches.
501
565
  */
502
566
  static readonly getVariantInfoWithPageConfig = async (
503
- orgPageConfig: OrgPageConfig,
567
+ orgPageConfig: OrgPageConfig
504
568
  ): Promise<[VariantInfo, PageVariantConfig] | undefined> => {
505
569
  // First check if there is a variant override set
506
570
  if (window?._spiffy?.variantInfoOverride) {
507
- Logger.logDebug('[spiffy-ai] Found variantInfoOverride', window._spiffy.variantInfoOverride);
571
+ Logger.logDebug(
572
+ "[spiffy-ai] Found variantInfoOverride",
573
+ window._spiffy.variantInfoOverride
574
+ );
508
575
  const matchingPageVariantConfig = orgPageConfig.pageVariants.find(
509
- (pageVariant) => pageVariant.variantId === window._spiffy.variantInfoOverride?.variantId,
576
+ (pageVariant) =>
577
+ pageVariant.variantId ===
578
+ window._spiffy.variantInfoOverride?.variantId
510
579
  );
511
580
  if (matchingPageVariantConfig) {
512
581
  Logger.logInfo(
513
- '[spiffy-ai] Returning overriden variantInfo',
514
- window._spiffy.variantInfoOverride,
582
+ "[spiffy-ai] Returning overriden variantInfo",
583
+ window._spiffy.variantInfoOverride
515
584
  );
516
585
  return [window._spiffy.variantInfoOverride, matchingPageVariantConfig];
517
586
  }
518
587
  Logger.logWarn(
519
- '[spiffy-ai] Found variantInfoOverride but no matching pageVariantConfig',
520
- window._spiffy.variantInfoOverride,
588
+ "[spiffy-ai] Found variantInfoOverride but no matching pageVariantConfig",
589
+ window._spiffy.variantInfoOverride
521
590
  );
522
591
  }
523
592
 
@@ -562,7 +631,9 @@ class PageVariantService {
562
631
  // return the first variant that passes all of its tests
563
632
  for await (const pageVariant of [...orgPageConfig.pageVariants]) {
564
633
  const testResults = await Promise.all(
565
- pageVariant.variantTests.map((test) => PageVariantService.pageTest(test, pageVariant)),
634
+ pageVariant.variantTests.map((test) =>
635
+ PageVariantService.pageTest(test, pageVariant)
636
+ )
566
637
  );
567
638
 
568
639
  if (testResults.every((result) => result)) {
@@ -579,11 +650,13 @@ class PageVariantService {
579
650
  }
580
651
 
581
652
  Logger.logWarn(
582
- '[spiffy-ai] no pageVariantConfig matched',
653
+ "[spiffy-ai] no pageVariantConfig matched",
583
654
  undefined,
584
- orgPageConfig.pageVariants,
655
+ orgPageConfig.pageVariants
656
+ );
657
+ await tellExtensionAboutInjectionError(
658
+ new Error("No pagevariantConfig matched")
585
659
  );
586
- await tellExtensionAboutInjectionError(new Error('No pagevariantConfig matched'));
587
660
 
588
661
  return undefined;
589
662
  };
@@ -598,23 +671,23 @@ class PageVariantService {
598
671
  * @returns The supported event response from the backend, or undefined if the page is not supported.
599
672
  */
600
673
  static readonly checkSupportedEvent = async (
601
- pageVariantConfig: PageVariantConfig,
674
+ pageVariantConfig: PageVariantConfig
602
675
  ): Promise<SupportedEvent | undefined> => {
603
676
  try {
604
677
  const variantInfo = await this.parsePageVariantConfig(
605
678
  pageVariantConfig,
606
- window.location.href,
679
+ window.location.href
607
680
  );
608
681
 
609
682
  const usesURLResolver = pageVariantConfig.variantTests.some(
610
- (test) => test.testType === PageVariantTestType.UrlResolver,
683
+ (test) => test.testType === PageVariantTestType.UrlResolver
611
684
  );
612
685
 
613
686
  if (
614
687
  !variantInfo ||
615
- (variantInfo.variant === 'plp' && !variantInfo.plpId) ||
616
- (variantInfo.variant === 'pdp' && !variantInfo.productId) ||
617
- (variantInfo.variant === 'page_visit' && !variantInfo.url)
688
+ (variantInfo.variant === "plp" && !variantInfo.plpId) ||
689
+ (variantInfo.variant === "pdp" && !variantInfo.productId) ||
690
+ (variantInfo.variant === "page_visit" && !variantInfo.url)
618
691
  ) {
619
692
  return undefined;
620
693
  }
@@ -625,7 +698,7 @@ class PageVariantService {
625
698
  const visitEvent = createVisitUserEvent({ variantInfo });
626
699
 
627
700
  if (!visitEvent) {
628
- Logger.logWarn('spiffy-ai] no visitEvent found', variantInfo);
701
+ Logger.logWarn("spiffy-ai] no visitEvent found", variantInfo);
629
702
  return undefined;
630
703
  }
631
704
 
@@ -648,15 +721,16 @@ class PageVariantService {
648
721
  numberOfReviews: 0,
649
722
  } as SupportedEvent;
650
723
 
651
- if (variantInfo.variant === 'plp') {
652
- const { top_category } = response.specific_details as UrlResolvingPLPConfig;
724
+ if (variantInfo.variant === "plp") {
725
+ const { top_category } =
726
+ response.specific_details as UrlResolvingPLPConfig;
653
727
  return {
654
728
  ...basicResponse,
655
729
  top_category,
656
730
  };
657
731
  }
658
732
 
659
- if (variantInfo.variant === 'pdp') {
733
+ if (variantInfo.variant === "pdp") {
660
734
  const { collections, number_of_reviews, merchant_tags } =
661
735
  response.specific_details as UrlResolvingPDPConfig;
662
736
  return {
@@ -669,7 +743,9 @@ class PageVariantService {
669
743
 
670
744
  return basicResponse;
671
745
  } catch (error) {
672
- Logger.logError('spiffy-ai] error checking supported event', error, { pageVariantConfig });
746
+ Logger.logError("spiffy-ai] error checking supported event", error, {
747
+ pageVariantConfig,
748
+ });
673
749
  return undefined;
674
750
  }
675
751
  };
@@ -684,21 +760,27 @@ class PageVariantService {
684
760
  */
685
761
  private static readonly parsePageVariantConfig = async (
686
762
  pageVariantConfig: PageVariantConfig,
687
- url: string,
763
+ url: string
688
764
  ): Promise<VariantInfo | undefined> => {
689
765
  if (window?._spiffy?.variantInfoOverride) {
690
766
  return window._spiffy.variantInfoOverride;
691
767
  }
692
768
 
693
- if (pageVariantConfig.variantType === 'pdp') {
694
- let productId: string = '';
695
- if (pageVariantConfig.productIdExtractor === 'url-resolver-product-id') {
696
- productId = (await PageVariantService.getIdFromUrlResolver('productId')) ?? '';
769
+ if (pageVariantConfig.variantType === "pdp") {
770
+ let productId: string = "";
771
+ if (pageVariantConfig.productIdExtractor === "url-resolver-product-id") {
772
+ productId =
773
+ (await PageVariantService.getIdFromUrlResolver("productId")) ?? "";
697
774
  } else {
698
- productId = (await PageVariantService.getId(pageVariantConfig.productIdExtractor)) ?? '';
775
+ productId =
776
+ (await PageVariantService.getId(
777
+ pageVariantConfig.productIdExtractor
778
+ )) ?? "";
699
779
  }
700
780
  const parentProductId =
701
- (await PageVariantService.getId(pageVariantConfig.parentProductIdExtractor)) ?? '';
781
+ (await PageVariantService.getId(
782
+ pageVariantConfig.parentProductIdExtractor
783
+ )) ?? "";
702
784
  return {
703
785
  variantId: pageVariantConfig.variantId,
704
786
  variant: pageVariantConfig.variantType,
@@ -708,12 +790,14 @@ class PageVariantService {
708
790
  };
709
791
  }
710
792
 
711
- if (pageVariantConfig.variantType === 'plp') {
712
- let plpId: string = '';
713
- if (pageVariantConfig.plpIdExtractor === 'url-resolver-plp-id') {
714
- plpId = (await PageVariantService.getIdFromUrlResolver('plpId')) ?? '';
793
+ if (pageVariantConfig.variantType === "plp") {
794
+ let plpId: string = "";
795
+ if (pageVariantConfig.plpIdExtractor === "url-resolver-plp-id") {
796
+ plpId = (await PageVariantService.getIdFromUrlResolver("plpId")) ?? "";
715
797
  } else {
716
- plpId = (await PageVariantService.getId(pageVariantConfig.plpIdExtractor)) ?? '';
798
+ plpId =
799
+ (await PageVariantService.getId(pageVariantConfig.plpIdExtractor)) ??
800
+ "";
717
801
  }
718
802
  return {
719
803
  variantId: pageVariantConfig.variantId,
@@ -723,18 +807,21 @@ class PageVariantService {
723
807
  };
724
808
  }
725
809
 
726
- if (pageVariantConfig.variantType === 'page_visit') {
727
- const pageVisitCategory = pageVariantConfig.variantTests.reduce<PageVisitCategory | null>(
728
- (acc, currentTest) =>
729
- currentTest.testType === PageVariantTestType.PageCategory
730
- ? PageVariantService.getCategory(currentTest.extractor)
731
- : acc,
732
- null,
733
- );
810
+ if (pageVariantConfig.variantType === "page_visit") {
811
+ const pageVisitCategory =
812
+ pageVariantConfig.variantTests.reduce<PageVisitCategory | null>(
813
+ (acc, currentTest) =>
814
+ currentTest.testType === PageVariantTestType.PageCategory
815
+ ? PageVariantService.getCategory(currentTest.extractor)
816
+ : acc,
817
+ null
818
+ );
734
819
 
735
820
  // This *should* only be the result of invalid config. Should we throw an error here or handle it with a default value?
736
821
  if (pageVisitCategory === null) {
737
- throw new Error('[spiffy-ai] - Invalid variant config produced invalid pageVisitCategory');
822
+ throw new Error(
823
+ "[spiffy-ai] - Invalid variant config produced invalid pageVisitCategory"
824
+ );
738
825
  }
739
826
 
740
827
  return {
@@ -745,28 +832,28 @@ class PageVariantService {
745
832
  };
746
833
  }
747
834
 
748
- if (pageVariantConfig.variantType === 'homepage') {
835
+ if (pageVariantConfig.variantType === "homepage") {
749
836
  return {
750
837
  variantId: pageVariantConfig.variantId,
751
- variant: 'page_visit',
838
+ variant: "page_visit",
752
839
  pageVisitCategory: PageVisitCategory.Homepage,
753
840
  url,
754
841
  };
755
842
  }
756
843
 
757
- if (pageVariantConfig.variantType === 'search') {
844
+ if (pageVariantConfig.variantType === "search") {
758
845
  return {
759
846
  variantId: pageVariantConfig.variantId,
760
- variant: 'page_visit',
847
+ variant: "page_visit",
761
848
  pageVisitCategory: PageVisitCategory.Search,
762
849
  url,
763
850
  };
764
851
  }
765
852
 
766
- if (pageVariantConfig.variantType === 'other') {
853
+ if (pageVariantConfig.variantType === "other") {
767
854
  return {
768
855
  variantId: pageVariantConfig.variantId,
769
- variant: 'page_visit',
856
+ variant: "page_visit",
770
857
  pageVisitCategory: PageVisitCategory.Other,
771
858
  url,
772
859
  };
@@ -4,7 +4,7 @@ import {
4
4
  ResponseError,
5
5
  SearchApi,
6
6
  } from "@spiffy-ai/commerce-api-client";
7
- import { getAtomStore } from "src/atoms/atomStore";
7
+ import { getAtomStore } from "src/atoms/atomStore/atomStore";
8
8
  import { apiKeyAtom } from "src/atoms/org/org";
9
9
  import { appDetailsAtom } from "src/atoms/app";
10
10
  import Logger from "src/application/logging/logger";