@envive-ai/react-hooks 0.1.5 → 0.1.7

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 (747) hide show
  1. package/dist/NewOrgConfig-C5YL4Y62.cjs +20 -0
  2. package/dist/NewOrgConfig-CRyIfb_l.js +15 -0
  3. package/dist/SystemSettingsContext-Cb9YHln8.cjs +20 -0
  4. package/dist/SystemSettingsContext-D3mmGGcv.js +13 -0
  5. package/dist/TrackComponentVisibleEvent-C7c_rHFW.cjs +59 -0
  6. package/dist/TrackComponentVisibleEvent-DXTEBjGM.js +52 -0
  7. package/dist/amplitudeContext-CB_F-nJY.d.cts +52 -0
  8. package/dist/amplitudeContext-Cak6ijMq.js +287 -0
  9. package/dist/amplitudeContext-DFYBDc0h.d.ts +52 -0
  10. package/dist/amplitudeContext-sTEsPaVG.cjs +309 -0
  11. package/dist/api-DSFlctlc.cjs +269 -0
  12. package/dist/api-JTNjuOfc.js +190 -0
  13. package/dist/app-D_upYeqF.js +132 -0
  14. package/dist/app-KXTMPa4s.cjs +178 -0
  15. package/dist/application/models/graphql/index.cjs +4 -12
  16. package/dist/application/models/graphql/index.d.cts +1 -1
  17. package/dist/application/models/graphql/index.d.ts +1 -1
  18. package/dist/application/models/graphql/index.js +2 -10
  19. package/dist/application/models/guards/api/index.cjs +2 -2
  20. package/dist/application/models/guards/api/index.d.cts +2 -2
  21. package/dist/application/models/guards/api/index.d.ts +2 -2
  22. package/dist/application/models/guards/api/index.js +2 -2
  23. package/dist/application/models/index.cjs +52 -56
  24. package/dist/application/models/index.d.cts +10 -8
  25. package/dist/application/models/index.d.ts +11 -9
  26. package/dist/application/models/index.js +10 -11
  27. package/dist/application/models/utilityTypes/index.cjs +1 -1
  28. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  29. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  30. package/dist/application/models/utilityTypes/index.js +1 -1
  31. package/dist/application/models/variantInfo/index.cjs +1 -1
  32. package/dist/application/models/variantInfo/index.d.ts +1 -1
  33. package/dist/application/models/variantInfo/index.js +1 -1
  34. package/dist/application/utils/index.cjs +46 -37
  35. package/dist/application/utils/index.d.cts +21 -13
  36. package/dist/application/utils/index.d.ts +21 -13
  37. package/dist/application/utils/index.js +19 -10
  38. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-DEZyFCNz.cjs} +1 -1
  39. package/dist/{atomStore-B1cgmbP0.js → atomStore-DnPEioF4.js} +1 -1
  40. package/dist/atoms/app/index.cjs +18 -16
  41. package/dist/atoms/app/index.d.cts +23 -18
  42. package/dist/atoms/app/index.d.ts +24 -19
  43. package/dist/atoms/app/index.js +14 -11
  44. package/dist/atoms/atomStore/index.cjs +2 -1
  45. package/dist/atoms/atomStore/index.d.cts +24 -2
  46. package/dist/atoms/atomStore/index.d.ts +24 -2
  47. package/dist/atoms/atomStore/index.js +2 -1
  48. package/dist/atoms/chat/index.cjs +50 -40
  49. package/dist/atoms/chat/index.d.cts +38 -35
  50. package/dist/atoms/chat/index.d.ts +39 -36
  51. package/dist/atoms/chat/index.js +20 -10
  52. package/dist/atoms/globalSearch/index.cjs +1 -1
  53. package/dist/atoms/globalSearch/index.d.cts +5 -5
  54. package/dist/atoms/globalSearch/index.d.ts +6 -6
  55. package/dist/atoms/globalSearch/index.js +1 -1
  56. package/dist/atoms/org/index.cjs +18 -38
  57. package/dist/atoms/org/index.d.cts +36 -54
  58. package/dist/atoms/org/index.d.ts +36 -54
  59. package/dist/atoms/org/index.js +5 -11
  60. package/dist/atoms/search/index.cjs +57 -41
  61. package/dist/atoms/search/index.d.cts +11 -8
  62. package/dist/atoms/search/index.d.ts +12 -9
  63. package/dist/atoms/search/index.js +26 -10
  64. package/dist/atoms/search/types.cjs +5 -0
  65. package/dist/atoms/search/types.d.cts +2 -0
  66. package/dist/atoms/search/types.d.ts +2 -0
  67. package/dist/atoms/search/types.js +3 -0
  68. package/dist/cdnContext-BMjVfBft.cjs +53 -0
  69. package/dist/cdnContext-DgsJ00Tb.js +38 -0
  70. package/dist/{chat-CHmD79E1.js → chat-B4lkFIxz.js} +1 -1
  71. package/dist/chat-D1Eat8Ih.cjs +394 -0
  72. package/dist/chat-DPJGdUkz.js +258 -0
  73. package/dist/{chat-_NzpO_Hn.cjs → chat-zA-K4tR_.cjs} +1 -1
  74. package/dist/chatElementDisplayLocation-9SW40Dd3.d.cts +25 -0
  75. package/dist/chatElementDisplayLocation-C1tRM5OD.d.ts +25 -0
  76. package/dist/chatSearch-B5jMnCYX.js +315 -0
  77. package/dist/chatSearch-DWMiyWN0.cjs +444 -0
  78. package/dist/chatState-BisPJd5g.cjs +120 -0
  79. package/dist/chatState-BrmBYY8l.js +34 -0
  80. package/dist/commerce-api-CxDIfeME.cjs +318 -0
  81. package/dist/commerce-api-DagLj3D_.js +311 -0
  82. package/dist/{components-Dl-TMD9k.js → components-B1edduHz.js} +1 -1
  83. package/dist/{components-D0XDRcaN.cjs → components-g0G58Kat.cjs} +1 -1
  84. package/dist/config/locators/components/chat/index.cjs +1 -1
  85. package/dist/config/locators/components/chat/index.d.cts +1 -1
  86. package/dist/config/locators/components/chat/index.d.ts +1 -1
  87. package/dist/config/locators/components/chat/index.js +1 -1
  88. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  89. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  90. package/dist/config/locators/components/index.cjs +1 -1
  91. package/dist/config/locators/components/index.d.cts +1 -1
  92. package/dist/config/locators/components/index.d.ts +1 -1
  93. package/dist/config/locators/components/index.js +1 -1
  94. package/dist/config/locators/components/search/index.d.cts +1 -1
  95. package/dist/config/locators/components/search/index.d.ts +1 -1
  96. package/dist/config/locators/index.cjs +42 -22
  97. package/dist/config/locators/index.d.cts +2 -2
  98. package/dist/config/locators/index.d.ts +3 -3
  99. package/dist/config/locators/index.js +25 -5
  100. package/dist/contexts/amplitudeContext/index.cjs +21 -0
  101. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  102. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  103. package/dist/contexts/amplitudeContext/index.js +19 -0
  104. package/dist/contexts/cdnContext/index.cjs +7 -0
  105. package/dist/contexts/cdnContext/index.d.cts +15 -0
  106. package/dist/contexts/cdnContext/index.d.ts +15 -0
  107. package/dist/contexts/cdnContext/index.js +6 -0
  108. package/dist/contexts/chatContext/index.cjs +329 -0
  109. package/dist/contexts/chatContext/index.d.cts +15 -0
  110. package/dist/contexts/chatContext/index.d.ts +15 -0
  111. package/dist/contexts/chatContext/index.js +322 -0
  112. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  113. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  114. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  115. package/dist/contexts/enviveConfigContext/index.js +6 -0
  116. package/dist/contexts/enviveCssContext/index.cjs +65 -0
  117. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  118. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  119. package/dist/contexts/enviveCssContext/index.js +62 -0
  120. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  121. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  122. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  123. package/dist/contexts/featureFlagContext/index.js +103 -0
  124. package/dist/contexts/featureFlagServiceContext/index.cjs +6 -0
  125. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  126. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  127. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  128. package/dist/contexts/graphqlContext/index.cjs +15 -0
  129. package/dist/contexts/graphqlContext/index.d.cts +12 -0
  130. package/dist/contexts/graphqlContext/index.d.ts +12 -0
  131. package/dist/contexts/graphqlContext/index.js +14 -0
  132. package/dist/contexts/localStorageContext/index.cjs +6 -0
  133. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  134. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  135. package/dist/contexts/localStorageContext/index.js +4 -0
  136. package/dist/contexts/newOrgConfigContext/index.cjs +19 -0
  137. package/dist/contexts/newOrgConfigContext/index.d.cts +30 -0
  138. package/dist/contexts/newOrgConfigContext/index.d.ts +30 -0
  139. package/dist/contexts/newOrgConfigContext/index.js +18 -0
  140. package/dist/contexts/searchContext/index.cjs +23 -0
  141. package/dist/contexts/searchContext/index.d.cts +16 -0
  142. package/dist/contexts/searchContext/index.d.ts +16 -0
  143. package/dist/contexts/searchContext/index.js +22 -0
  144. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  145. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  146. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  147. package/dist/contexts/sessionStorageContext/index.js +4 -0
  148. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  149. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  150. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  151. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  152. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  153. package/dist/contexts/systemSettingsContext/index.d.cts +36 -0
  154. package/dist/contexts/systemSettingsContext/index.d.ts +36 -0
  155. package/dist/contexts/systemSettingsContext/index.js +6 -0
  156. package/dist/contexts/types.cjs +7 -0
  157. package/dist/contexts/types.d.cts +4 -0
  158. package/dist/contexts/types.d.ts +4 -0
  159. package/dist/contexts/types.js +3 -0
  160. package/dist/contexts/userIdentityContext/index.cjs +26 -0
  161. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  162. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  163. package/dist/contexts/userIdentityContext/index.js +25 -0
  164. package/dist/domObserver-B6cRGTny.js +285 -0
  165. package/dist/domObserver-DQZwhPrc.cjs +304 -0
  166. package/dist/enviveConfig-BJZ4zTJo.js +62 -0
  167. package/dist/enviveConfig-DdBrcGSQ.cjs +130 -0
  168. package/dist/enviveConfigContext-78orE_uH.cjs +60 -0
  169. package/dist/enviveConfigContext-jBCCWQH9.js +45 -0
  170. package/dist/events/index.cjs +1 -1
  171. package/dist/events/index.d.ts +1 -1
  172. package/dist/events/index.js +1 -1
  173. package/dist/{events-ClCDFK7t.js → events-BHJJjPDN.js} +1 -1
  174. package/dist/{events-Da7gpmGv.cjs → events-B_fJZf9E.cjs} +1 -1
  175. package/dist/featureFlagServiceContext-ChL7DJ53.cjs +56 -0
  176. package/dist/featureFlagServiceContext-D1PzHsEs.d.ts +23 -0
  177. package/dist/featureFlagServiceContext-DQwlCTde.d.cts +23 -0
  178. package/dist/featureFlagServiceContext-DzFfmb1Z.js +42 -0
  179. package/dist/featureGates-Blx10fwB.js +27 -0
  180. package/dist/featureGates-DcZNrUma.cjs +33 -0
  181. package/dist/frontendConfig-DrvrQSm8.d.ts +857 -0
  182. package/dist/frontendConfig-wg41mBok.d.cts +857 -0
  183. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-Bnjlxtr5.cjs} +1 -1
  184. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-CRWUqnjq.js} +1 -1
  185. package/dist/graphql-B9HhDXYt.cjs +53 -0
  186. package/dist/graphql-W7GMIHUu.js +36 -0
  187. package/dist/graphqlConfig-Bn-HLHsh.cjs +39 -0
  188. package/dist/graphqlConfig-DtZm_YaH.js +14 -0
  189. package/dist/graphqlContext-BJg7B--J.js +96 -0
  190. package/dist/graphqlContext-DI-_VRmb.cjs +111 -0
  191. package/dist/hooks/AmplitudeOperations/index.cjs +21 -0
  192. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  193. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  194. package/dist/hooks/AmplitudeOperations/index.js +21 -0
  195. package/dist/hooks/AppDetails/index.cjs +18 -0
  196. package/dist/hooks/AppDetails/index.d.cts +26 -0
  197. package/dist/hooks/AppDetails/index.d.ts +26 -0
  198. package/dist/hooks/AppDetails/index.js +18 -0
  199. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  200. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  201. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  202. package/dist/hooks/BlockBackButton/index.js +27 -0
  203. package/dist/hooks/CdnOperations/index.cjs +24 -0
  204. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  205. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  206. package/dist/hooks/CdnOperations/index.js +22 -0
  207. package/dist/hooks/ChatToggle/index.cjs +63 -0
  208. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  209. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  210. package/dist/hooks/ChatToggle/index.js +61 -0
  211. package/dist/hooks/ChatToggleAnalytics/index.cjs +37 -0
  212. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  213. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  214. package/dist/hooks/ChatToggleAnalytics/index.js +35 -0
  215. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  216. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  217. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  218. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  219. package/dist/hooks/Debounce/index.cjs +3 -0
  220. package/dist/hooks/Debounce/index.d.cts +5 -0
  221. package/dist/hooks/Debounce/index.d.ts +5 -0
  222. package/dist/hooks/Debounce/index.js +3 -0
  223. package/dist/hooks/ElementObserver/index.cjs +179 -0
  224. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  225. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  226. package/dist/hooks/ElementObserver/index.js +177 -0
  227. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  228. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  229. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  230. package/dist/hooks/GrabAndScroll/index.js +97 -0
  231. package/dist/hooks/GraphQLConfig/index.cjs +16 -0
  232. package/dist/hooks/GraphQLConfig/index.d.cts +15 -0
  233. package/dist/hooks/GraphQLConfig/index.d.ts +15 -0
  234. package/dist/hooks/GraphQLConfig/index.js +15 -0
  235. package/dist/hooks/IdentifyUser/index.cjs +59 -0
  236. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  237. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  238. package/dist/hooks/IdentifyUser/index.js +57 -0
  239. package/dist/hooks/ImageResolver/index.cjs +54 -0
  240. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  241. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  242. package/dist/hooks/ImageResolver/index.js +52 -0
  243. package/dist/hooks/Intersection/index.cjs +3 -0
  244. package/dist/hooks/Intersection/index.d.cts +7 -0
  245. package/dist/hooks/Intersection/index.d.ts +7 -0
  246. package/dist/hooks/Intersection/index.js +3 -0
  247. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  248. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  249. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  250. package/dist/hooks/IsSmallScreen/index.js +20 -0
  251. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  252. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  253. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  254. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  255. package/dist/hooks/MessageFilter/index.cjs +53 -0
  256. package/dist/hooks/MessageFilter/index.d.cts +29 -0
  257. package/dist/hooks/MessageFilter/index.d.ts +29 -0
  258. package/dist/hooks/MessageFilter/index.js +53 -0
  259. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  260. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  261. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  262. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  263. package/dist/hooks/NewOrgConfig/index.cjs +19 -0
  264. package/dist/hooks/NewOrgConfig/index.d.cts +22 -0
  265. package/dist/hooks/NewOrgConfig/index.d.ts +22 -0
  266. package/dist/hooks/NewOrgConfig/index.js +19 -0
  267. package/dist/hooks/Search/index.cjs +324 -0
  268. package/dist/hooks/Search/index.d.cts +66 -0
  269. package/dist/hooks/Search/index.d.ts +66 -0
  270. package/dist/hooks/Search/index.js +321 -0
  271. package/dist/hooks/SearchOperations/index.cjs +101 -0
  272. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  273. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  274. package/dist/hooks/SearchOperations/index.js +98 -0
  275. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  276. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  277. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  278. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  279. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  280. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  281. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  282. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  283. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  284. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  285. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  286. package/dist/hooks/SnapCalculator/index.js +27 -0
  287. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  288. package/dist/hooks/SystemSettingsContext/index.d.cts +22 -0
  289. package/dist/hooks/SystemSettingsContext/index.d.ts +22 -0
  290. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  291. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +21 -0
  292. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  293. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  294. package/dist/hooks/TrackComponentVisibleEvent/index.js +21 -0
  295. package/dist/hooks/UpdateAnalyticsProps/index.cjs +61 -0
  296. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  297. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  298. package/dist/hooks/UpdateAnalyticsProps/index.js +58 -0
  299. package/dist/index-BCLaqnc2.d.cts +689 -0
  300. package/dist/{index-D2VaMPA3.d.ts → index-BS7-_CW4.d.ts} +1 -1
  301. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  302. package/dist/index-Bs0QtkSu.d.ts +689 -0
  303. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  304. package/dist/index-CKeS9dud.d.ts +28 -0
  305. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  306. package/dist/index-CyXULMyI.d.cts +186 -0
  307. package/dist/index-Cz10TYQA.d.cts +28 -0
  308. package/dist/{index-CSIOQD-A.d.ts → index-D8ThXrqI.d.ts} +1 -1
  309. package/dist/{index-Dxpscrvz.d.ts → index-D9VegTU-.d.ts} +1 -1
  310. package/dist/{index-Cr2y08f1.d.ts → index-DBqgBV9N.d.ts} +1 -1
  311. package/dist/{index-CKKkTsms.d.ts → index-DNUKSg6R.d.ts} +1 -1
  312. package/dist/{index-BdNKc2ix.d.cts → index-DO0s5KNA.d.cts} +1 -1
  313. package/dist/{index-Cx9e-fRi.d.ts → index-DuyZQOE1.d.ts} +2 -2
  314. package/dist/{index-BrXuc_Ck.d.cts → index-REhT-Pls.d.cts} +1 -1
  315. package/dist/index-fKJB9EFb.d.ts +186 -0
  316. package/dist/interceptors/index.cjs +3 -12
  317. package/dist/interceptors/index.d.cts +12 -18
  318. package/dist/interceptors/index.d.ts +13 -19
  319. package/dist/interceptors/index.js +3 -11
  320. package/dist/interceptors/types.cjs +1 -0
  321. package/dist/interceptors/types.d.cts +12 -0
  322. package/dist/interceptors/types.d.ts +12 -0
  323. package/dist/interceptors/types.js +3 -0
  324. package/dist/localStorageContext-6OrGDFid.js +95 -0
  325. package/dist/localStorageContext-Bld0OWmG.cjs +115 -0
  326. package/dist/{logger-Dln20ans.cjs → logger-CSL2jqI9.cjs} +1 -1
  327. package/dist/{logger-pdEEY8T2.js → logger-D5MFf3nW.js} +1 -1
  328. package/dist/models-Dn8Emdzc.js +1295 -0
  329. package/dist/models-ZpQcRZQK.cjs +1536 -0
  330. package/dist/newOrgConfigAtom--tewb_G0.js +8 -0
  331. package/dist/newOrgConfigAtom-DkSi45_Q.cjs +15 -0
  332. package/dist/newOrgConfigContext-B3aeblfE.cjs +68 -0
  333. package/dist/newOrgConfigContext-B5mzHKTG.js +53 -0
  334. package/dist/{nodeSelector-vKB44CDB.d.cts → nodeSelector-XsUa5vNH.d.cts} +1 -1
  335. package/dist/org-B2uRkPt3.js +12 -0
  336. package/dist/org-ClUxpHPZ.cjs +43 -0
  337. package/dist/orgAnalyticsConfig-CuWXijsr.cjs +39 -0
  338. package/dist/orgAnalyticsConfig-DOceTdNp.js +14 -0
  339. package/dist/search-BIomqYy6.d.ts +20 -0
  340. package/dist/search-B_Hg-Es2.d.cts +20 -0
  341. package/dist/search-Bn4x-3TG.js +126 -0
  342. package/dist/search-DsQm_pAi.cjs +205 -0
  343. package/dist/{search-filter-types-C-zZSpGo.d.ts → search-filter-types-B5xcaEit.d.ts} +1 -1
  344. package/dist/{search-filter-types-9rTb3jMj.d.cts → search-filter-types-Byd0lEUa.d.cts} +1 -1
  345. package/dist/searchContext-Cn-pCoDy.cjs +145 -0
  346. package/dist/searchContext-fQDGSvUF.js +129 -0
  347. package/dist/searchServiceAdapter-BSPZOg1r.js +16 -0
  348. package/dist/searchServiceAdapter-DrjFCiw8.cjs +34 -0
  349. package/dist/sessionStorageContext-C5MUl2zf.js +52 -0
  350. package/dist/sessionStorageContext-CXE7iHtP.cjs +66 -0
  351. package/dist/shopifyUrlContext-7ppKx1jJ.cjs +75 -0
  352. package/dist/shopifyUrlContext-BSYWsoX9.js +61 -0
  353. package/dist/spiffyWidgets-CdxRcXhW.d.ts +20 -0
  354. package/dist/spiffyWidgets-DxGuuuCG.d.cts +20 -0
  355. package/dist/systemSettingsContext-BdAe_3Ll.cjs +60 -0
  356. package/dist/systemSettingsContext-Cjyo2o3N.js +39 -0
  357. package/dist/{test-types-CuOq25VT.d.cts → test-types-DQB1JqOf.d.cts} +1 -1
  358. package/dist/{test-types-CXVJxTeu.d.ts → test-types-ZuRAYwox.d.ts} +1 -1
  359. package/dist/types/index.cjs +33 -5
  360. package/dist/types/index.d.cts +2 -2
  361. package/dist/types/index.d.ts +2 -2
  362. package/dist/types/index.js +30 -3
  363. package/dist/types-BCz-hOvv.d.ts +51 -0
  364. package/dist/types-BwNrLPSZ.cjs +106 -0
  365. package/dist/types-D3uOF0Oy.js +76 -0
  366. package/dist/types-DIk0FLwd.js +30 -0
  367. package/dist/types-DNLkuGWZ.cjs +48 -0
  368. package/dist/types-DzwBmZHy.d.cts +10 -0
  369. package/dist/types-Eip78dWv.d.cts +51 -0
  370. package/dist/types-YvACLe2e.d.ts +10 -0
  371. package/dist/types.cjs +0 -0
  372. package/dist/types.d.cts +15 -0
  373. package/dist/types.d.ts +15 -0
  374. package/dist/types.js +1 -0
  375. package/dist/unsupportedProductExceptions--t7AQFou.js +20 -0
  376. package/dist/unsupportedProductExceptions-Dak4AD-t.cjs +32 -0
  377. package/dist/urlsParser-BV5yF8sa.cjs +78 -0
  378. package/dist/urlsParser-DUgV_Qy9.js +42 -0
  379. package/dist/useAmplitudeOperations-C6Osqkso.js +34 -0
  380. package/dist/useAmplitudeOperations-Cco_B3A5.cjs +41 -0
  381. package/dist/useAppDetails-CGqtN6sJ.cjs +38 -0
  382. package/dist/useAppDetails-DwX2Rhed.js +30 -0
  383. package/dist/useDebounce-BJqnCBcl.cjs +26 -0
  384. package/dist/useDebounce-Ce31ph7m.js +19 -0
  385. package/dist/useGraphQLConfig-ByOZb3oZ.js +63 -0
  386. package/dist/useGraphQLConfig-DItL4BgM.cjs +76 -0
  387. package/dist/useIntersection-Czeo04jt.js +21 -0
  388. package/dist/useIntersection-DnZNLcnu.cjs +28 -0
  389. package/dist/useMessageInterceptor-C9p9No1n.cjs +33 -0
  390. package/dist/useMessageInterceptor-tntd2rvB.js +25 -0
  391. package/dist/userIdentityContext-C1HzZFb2.cjs +125 -0
  392. package/dist/userIdentityContext-CDfosvOO.js +109 -0
  393. package/dist/userIdentityContext-DBXoLrFu.d.cts +20 -0
  394. package/dist/userIdentityContext-W1OWF3cG.d.ts +20 -0
  395. package/dist/utilityTypes-CWJZb9BZ.js +1 -0
  396. package/dist/utilityTypes-YGiMSyV7.cjs +0 -0
  397. package/dist/utils-BA5HXmkL.cjs +74 -0
  398. package/dist/utils-BTDw2aMx.cjs +715 -0
  399. package/dist/utils-C7S9YiFp.js +54 -0
  400. package/dist/utils-CF13DfA1.js +606 -0
  401. package/dist/variantInfo-58JLeDJb.js +1 -0
  402. package/dist/variantInfo-DRFLcGc7.cjs +0 -0
  403. package/package.json +278 -25
  404. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  405. package/src/application/models/colorsConfig.ts +18 -18
  406. package/src/application/models/frontendConfig.ts +3 -3
  407. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  408. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  409. package/src/application/models/index.ts +0 -3
  410. package/src/application/models/localStorageEventListener.ts +2 -2
  411. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  412. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  413. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  414. package/src/application/utils/analyticsUtils.ts +53 -22
  415. package/src/application/utils/cdnUtils.ts +11 -0
  416. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  417. package/src/atoms/app/index.ts +7 -17
  418. package/src/atoms/app/variant.ts +13 -4
  419. package/src/atoms/chat/chatState.ts +28 -18
  420. package/src/atoms/chat/messageQueue.ts +36 -5
  421. package/src/atoms/chat/replies.ts +45 -37
  422. package/src/atoms/envive/enviveConfig.ts +10 -6
  423. package/src/atoms/org/graphqlConfig.ts +6 -38
  424. package/src/atoms/org/index.ts +3 -4
  425. package/src/atoms/org/newOrgConfigAtom.ts +4 -0
  426. package/src/atoms/search/chatSearch.ts +11 -5
  427. package/src/atoms/search/searchAPI.ts +22 -12
  428. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  429. package/src/contexts/amplitudeContext/amplitudeContext.tsx +465 -0
  430. package/src/contexts/amplitudeContext/index.ts +1 -0
  431. package/src/contexts/cdnContext/cdnContext.tsx +48 -0
  432. package/src/contexts/cdnContext/index.ts +1 -0
  433. package/src/contexts/{chatContext.tsx → chatContext/chatContext.tsx} +16 -13
  434. package/src/contexts/chatContext/index.ts +1 -0
  435. package/src/contexts/{enviveConfigContext.tsx → enviveConfigContext/enviveConfigContext.tsx} +23 -18
  436. package/src/contexts/enviveConfigContext/index.ts +1 -0
  437. package/src/contexts/enviveCssContext/enviveCssContext.tsx +49 -0
  438. package/src/contexts/enviveCssContext/index.ts +1 -0
  439. package/src/contexts/featureFlagContext/featureFlagContext.tsx +193 -0
  440. package/src/contexts/featureFlagContext/index.ts +1 -0
  441. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +87 -0
  442. package/src/contexts/featureFlagServiceContext/index.ts +1 -0
  443. package/src/contexts/graphqlContext/graphqlContext.tsx +165 -0
  444. package/src/contexts/graphqlContext/index.ts +1 -0
  445. package/src/contexts/localStorageContext/index.ts +1 -0
  446. package/src/contexts/localStorageContext/localStorageContext.tsx +159 -0
  447. package/src/contexts/newOrgConfigContext/index.ts +1 -0
  448. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +70 -0
  449. package/src/contexts/searchContext/index.ts +1 -0
  450. package/src/contexts/searchContext/searchContext.tsx +187 -0
  451. package/src/contexts/sessionStorageContext/index.ts +1 -0
  452. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +80 -0
  453. package/src/contexts/shopifyUrlContext/index.ts +1 -0
  454. package/src/contexts/shopifyUrlContext/shopifyUrlContext.tsx +97 -0
  455. package/src/contexts/systemSettingsContext/index.ts +1 -0
  456. package/src/contexts/types.ts +12 -8
  457. package/src/contexts/userIdentityContext/index.ts +1 -0
  458. package/src/contexts/userIdentityContext/userIdentityContext.tsx +197 -0
  459. package/src/events/registerAnalyticsListeners.ts +32 -38
  460. package/src/favicon.ico +0 -0
  461. package/src/hooks/AmplitudeOperations/index.ts +1 -0
  462. package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +35 -0
  463. package/src/hooks/AppDetails/index.ts +1 -0
  464. package/src/hooks/AppDetails/useAppDetails.ts +47 -0
  465. package/src/hooks/BlockBackButton/index.ts +1 -0
  466. package/src/hooks/CdnOperations/index.ts +1 -0
  467. package/src/hooks/CdnOperations/useCdnOperations.ts +16 -0
  468. package/src/hooks/ChatToggle/index.ts +1 -0
  469. package/src/hooks/{useChatToggle.ts → ChatToggle/useChatToggle.ts} +5 -4
  470. package/src/hooks/ChatToggleAnalytics/index.ts +1 -0
  471. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +15 -0
  472. package/src/hooks/CustomerSupportHandoff/index.ts +1 -0
  473. package/src/hooks/Debounce/index.ts +1 -0
  474. package/src/hooks/ElementObserver/index.ts +1 -0
  475. package/src/hooks/GrabAndScroll/index.ts +1 -0
  476. package/src/hooks/GraphQLConfig/index.ts +1 -0
  477. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +63 -0
  478. package/src/hooks/IdentifyUser/index.ts +1 -0
  479. package/src/hooks/IdentifyUser/useIdentifyUser.ts +33 -0
  480. package/src/hooks/ImageResolver/index.ts +1 -0
  481. package/src/hooks/{useImageResolver.ts → ImageResolver/useImageResolver.ts} +7 -7
  482. package/src/hooks/Intersection/index.ts +1 -0
  483. package/src/hooks/IsSmallScreen/index.ts +1 -0
  484. package/src/hooks/LocalStorageOperations/index.ts +1 -0
  485. package/src/hooks/LocalStorageOperations/useLocalStorageOperations.ts +92 -0
  486. package/src/hooks/MessageFilter/index.ts +1 -0
  487. package/src/hooks/MessageScrollObserver/index.ts +1 -0
  488. package/src/hooks/NewOrgConfig/index.ts +1 -0
  489. package/src/hooks/NewOrgConfig/useNewOrgConfig.ts +7 -0
  490. package/src/hooks/Search/index.ts +1 -0
  491. package/src/hooks/{useSearch.tsx → Search/useSearch.tsx} +24 -20
  492. package/src/hooks/SearchOperations/index.ts +1 -0
  493. package/src/hooks/SearchOperations/useSearchOperations.ts +97 -0
  494. package/src/hooks/SessionStorageOperations/index.ts +1 -0
  495. package/src/hooks/SessionStorageOperations/useSessionStorageOperations.ts +28 -0
  496. package/src/hooks/ShopifyUrlOperations/index.ts +1 -0
  497. package/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.ts +45 -0
  498. package/src/hooks/SnapCalculator/index.ts +1 -0
  499. package/src/hooks/SystemSettingsContext/index.ts +1 -0
  500. package/src/hooks/SystemSettingsContext/useSystemSettingsContext.ts +14 -0
  501. package/src/hooks/TrackComponentVisibleEvent/index.ts +1 -0
  502. package/src/hooks/{useTrackComponentVisibleEvent.ts → TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts} +12 -8
  503. package/src/hooks/UpdateAnalyticsProps/index.ts +1 -0
  504. package/src/hooks/{useUpdateAnalyticsProps.ts → UpdateAnalyticsProps/useUpdateAnalyticsProps.ts} +28 -17
  505. package/src/interceptors/index.ts +0 -1
  506. package/src/interceptors/useMessageInterceptor.ts +5 -8
  507. package/src/merchants/domInsertion.ts +30 -0
  508. package/src/merchants/gridInsertion.ts +19 -0
  509. package/src/types/config-versions.ts +6 -0
  510. package/src/types.ts +0 -53
  511. package/dist/adapters/amplitude/index.cjs +0 -14
  512. package/dist/adapters/amplitude/index.d.cts +0 -6
  513. package/dist/adapters/amplitude/index.d.ts +0 -6
  514. package/dist/adapters/amplitude/index.js +0 -12
  515. package/dist/api-B2euFL-5.cjs +0 -269
  516. package/dist/api-XRr_lAG6.js +0 -190
  517. package/dist/application/config/index.cjs +0 -43
  518. package/dist/application/config/index.d.cts +0 -15
  519. package/dist/application/config/index.d.ts +0 -15
  520. package/dist/application/config/index.js +0 -41
  521. package/dist/application/service/customerService/index.cjs +0 -4
  522. package/dist/application/service/customerService/index.d.cts +0 -3
  523. package/dist/application/service/customerService/index.d.ts +0 -3
  524. package/dist/application/service/customerService/index.js +0 -4
  525. package/dist/application/service/index.cjs +0 -42
  526. package/dist/application/service/index.d.cts +0 -413
  527. package/dist/application/service/index.d.ts +0 -413
  528. package/dist/application/service/index.js +0 -12
  529. package/dist/atomStore-ONYy0XuA.d.cts +0 -24
  530. package/dist/atomStore-kOKiEcNl.d.ts +0 -24
  531. package/dist/bandolier-Da4wt6sm.cjs +0 -1230
  532. package/dist/bandolier-DzEmYWcz.js +0 -1230
  533. package/dist/carpe-AXipz0Xl.cjs +0 -608
  534. package/dist/carpe-CaUKwcEa.js +0 -606
  535. package/dist/contexts/index.cjs +0 -26
  536. package/dist/contexts/index.d.cts +0 -10
  537. package/dist/contexts/index.d.ts +0 -10
  538. package/dist/contexts/index.js +0 -12
  539. package/dist/contexts-CtRlNXaS.js +0 -7674
  540. package/dist/contexts-CtgmnYNn.cjs +0 -9088
  541. package/dist/coterie--MGvWeVh.cjs +0 -240
  542. package/dist/coterie-oKHAT0lx.js +0 -240
  543. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  544. package/dist/customerService-BHQRnLhC.js +0 -23
  545. package/dist/custservice-types-C8-9vKWb.cjs +0 -35
  546. package/dist/custservice-types-CamCiXjq.js +0 -23
  547. package/dist/default-B4fINY5_.cjs +0 -4
  548. package/dist/default-BrTQxA0c.js +0 -4
  549. package/dist/default-C3LrcbZB.cjs +0 -199
  550. package/dist/default-CXkYrLEr.js +0 -176
  551. package/dist/divIds-0Vj9g-fM.js +0 -23
  552. package/dist/divIds-CjceLRD9.cjs +0 -131
  553. package/dist/dreamlandBaby-BEqt0eKF.js +0 -347
  554. package/dist/dreamlandBaby-DBDjEJCc.cjs +0 -347
  555. package/dist/embedded-B5Wi9g0T.cjs +0 -131
  556. package/dist/embedded-_cLpd6FK.js +0 -23
  557. package/dist/entrypoints-CNUvSgnk.js +0 -7
  558. package/dist/entrypoints-DM9Sm18O.cjs +0 -19
  559. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  560. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  561. package/dist/fiveCbd-CdqNt16h.cjs +0 -614
  562. package/dist/fiveCbd-D6B-sgnX.js +0 -614
  563. package/dist/forLoveAndLemons-C7GsJG7f.cjs +0 -668
  564. package/dist/forLoveAndLemons-gNDlMtPR.js +0 -666
  565. package/dist/greenpan-B5AaW4M_.js +0 -398
  566. package/dist/greenpan-DrORpYms.cjs +0 -398
  567. package/dist/grooveLife-BJqsfH2H.cjs +0 -343
  568. package/dist/grooveLife-xIUmDM8s.js +0 -343
  569. package/dist/homegrownCannabis-8TZ21u6L.cjs +0 -411
  570. package/dist/homegrownCannabis-BtMuEvbZ.js +0 -411
  571. package/dist/hooks/index.cjs +0 -37
  572. package/dist/hooks/index.d.cts +0 -232
  573. package/dist/hooks/index.d.ts +0 -232
  574. package/dist/hooks/index.js +0 -12
  575. package/dist/index-CKUpnyJQ.d.ts +0 -72
  576. package/dist/index-CbJZOEU4.d.ts +0 -203
  577. package/dist/index-DFL1dIT_.d.ts +0 -7
  578. package/dist/index-DXpgMVpp.d.ts +0 -749
  579. package/dist/index-K2kNsOTw.d.cts +0 -203
  580. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  581. package/dist/index-VHFMGkO-.d.cts +0 -72
  582. package/dist/index-VSFakgAI.d.cts +0 -95
  583. package/dist/index-aNW5V9fh.d.cts +0 -749
  584. package/dist/index-zZjcds15.d.cts +0 -7
  585. package/dist/jackArcher-WtkbLBZj.cjs +0 -728
  586. package/dist/jackArcher-sO9EbgrZ.js +0 -728
  587. package/dist/jordanCraig-471FcgqF.cjs +0 -1787
  588. package/dist/jordanCraig-DNOncplU.js +0 -1787
  589. package/dist/kindredBravely-BlLyHGMX.cjs +0 -491
  590. package/dist/kindredBravely-cqZ4OvXp.js +0 -491
  591. package/dist/kutFromTheKloth-3mOIryvt.cjs +0 -370
  592. package/dist/kutFromTheKloth-DtVNCMKa.js +0 -370
  593. package/dist/larryAndSerges-88Bvq-Us.cjs +0 -262
  594. package/dist/larryAndSerges-cvak6May.js +0 -262
  595. package/dist/leapsAndRebounds-Dmf8eUPq.js +0 -361
  596. package/dist/leapsAndRebounds-iWKc923H.cjs +0 -361
  597. package/dist/longevityrx-BTMI9vn-.js +0 -321
  598. package/dist/longevityrx-CobPyigd.cjs +0 -321
  599. package/dist/lookOptic-C4H_c0JZ.cjs +0 -283
  600. package/dist/lookOptic-Jwf7EAU8.js +0 -283
  601. package/dist/mantraBrand-CySGqbn6.cjs +0 -751
  602. package/dist/mantraBrand-DoaVj837.js +0 -751
  603. package/dist/medterra-BnZ5p27n.cjs +0 -584
  604. package/dist/medterra-DaICcPPp.js +0 -584
  605. package/dist/modells-CZ1L6dD_.js +0 -485
  606. package/dist/modells-DF0SndHr.cjs +0 -485
  607. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  608. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  609. package/dist/pressedFloral-B3t2cYzs.cjs +0 -662
  610. package/dist/pressedFloral-Dsws2Kfb.js +0 -662
  611. package/dist/skinPerfection-CILQM2bR.cjs +0 -335
  612. package/dist/skinPerfection-DmQCntRf.js +0 -335
  613. package/dist/snapSupplements--X_v0KRM.js +0 -286
  614. package/dist/snapSupplements-Djuzl0Ed.cjs +0 -286
  615. package/dist/socialProofClasses-DdzG1tZy.js +0 -10
  616. package/dist/socialProofClasses-ky69yppk.cjs +0 -40
  617. package/dist/spanx-Bo81yXSF.cjs +0 -664
  618. package/dist/spanx-DauxB8KE.js +0 -662
  619. package/dist/spanxStaging-BucYQvR1.cjs +0 -849
  620. package/dist/spanxStaging-CfXUukdP.js +0 -846
  621. package/dist/suggestionBarV2-types-B3lwrENK.cjs +0 -16
  622. package/dist/suggestionBarV2-types-Penx3Y67.js +0 -10
  623. package/dist/supergoop-8qa_NV3F.cjs +0 -338
  624. package/dist/supergoop-DOaui-A6.js +0 -336
  625. package/dist/types-CD4LFta-.d.cts +0 -33
  626. package/dist/types-CGC6Oozp.cjs +0 -231
  627. package/dist/types-CnTCkyvK.js +0 -177
  628. package/dist/types-DBdI0j89.d.ts +0 -33
  629. package/dist/uniqueVintage-BWkDgt1z.js +0 -1212
  630. package/dist/uniqueVintage-DAne8XcL.cjs +0 -1214
  631. package/dist/variant-CC1nrywd.d.ts +0 -13
  632. package/dist/variant-CQTuQQSq.d.cts +0 -13
  633. package/dist/venaCbd-B1HO_Pkr.cjs +0 -366
  634. package/dist/venaCbd-CnByO-5R.js +0 -366
  635. package/dist/westonJonBoucher-BAGXegsX.js +0 -423
  636. package/dist/westonJonBoucher-BRfHWMbs.cjs +0 -423
  637. package/dist/wineEnthusiast-DW8JVwV8.cjs +0 -941
  638. package/dist/wineEnthusiast-EJbhMeKQ.js +0 -941
  639. package/dist/wolfMattress-B6INZNRJ.cjs +0 -373
  640. package/dist/wolfMattress-D9P7ErH_.js +0 -373
  641. package/dist/wolfTactical-C5Pupi3J.js +0 -350
  642. package/dist/wolfTactical-TMthZM93.cjs +0 -350
  643. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  644. package/src/adapters/amplitude/index.ts +0 -2
  645. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  646. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  647. package/src/application/config/generalStaticConfig.ts +0 -40
  648. package/src/application/config/index.ts +0 -1
  649. package/src/application/models/domMutationContinuation.ts +0 -7
  650. package/src/application/models/domObservationStrategy.ts +0 -9
  651. package/src/application/models/supportedOrgs.ts +0 -161
  652. package/src/application/service/cachingService.ts +0 -84
  653. package/src/application/service/cdnService.ts +0 -20
  654. package/src/application/service/customerService/index.ts +0 -8
  655. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  656. package/src/application/service/domMutationObserver.ts +0 -320
  657. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  658. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  659. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  660. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  661. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  662. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  663. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  664. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  665. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  666. package/src/application/service/featureFlagService.ts +0 -130
  667. package/src/application/service/graphqlConfigService.ts +0 -59
  668. package/src/application/service/index.ts +0 -32
  669. package/src/application/service/kustomerIntegrationService.ts +0 -111
  670. package/src/application/service/localStorageService.ts +0 -77
  671. package/src/application/service/pageVariantService.ts +0 -866
  672. package/src/application/service/searchService.ts +0 -147
  673. package/src/application/service/sessionStorageService.ts +0 -27
  674. package/src/application/service/shopifyUrlService.ts +0 -63
  675. package/src/application/service/userIdentityService.ts +0 -114
  676. package/src/application/service/windowChatToggleService.ts +0 -80
  677. package/src/application/service/windowDataLayerService.ts +0 -181
  678. package/src/application/service/windowFrontendConfigService.ts +0 -129
  679. package/src/atoms/org/merchantCss.ts +0 -161
  680. package/src/atoms/org/org.ts +0 -251
  681. package/src/atoms/org/orgPageConfig.ts +0 -41
  682. package/src/atoms/org/orgUIConfig.ts +0 -142
  683. package/src/contexts/enviveCssContext.tsx +0 -20
  684. package/src/contexts/index.ts +0 -6
  685. package/src/contexts/orgConfigContext.tsx +0 -106
  686. package/src/enabled-features.ts +0 -83
  687. package/src/hooks/index.ts +0 -21
  688. package/src/hooks/useDynamicVariants.ts +0 -226
  689. package/src/hooks/useFileUpload.ts +0 -63
  690. package/src/hooks/useHideElements.ts +0 -85
  691. package/src/hooks/useNewOrgConfig.ts +0 -80
  692. package/src/hooks/useSystemSettingsContext.ts +0 -12
  693. package/src/interceptors/useFormEscalation.ts +0 -57
  694. package/src/merchants/bandolier/bandolier.ts +0 -1389
  695. package/src/merchants/carpe/carpe.ts +0 -656
  696. package/src/merchants/coterie/coterie.ts +0 -280
  697. package/src/merchants/default.ts +0 -193
  698. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +0 -375
  699. package/src/merchants/fiveCbd/fiveCbd.ts +0 -697
  700. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +0 -721
  701. package/src/merchants/greenpan/greenpan.ts +0 -440
  702. package/src/merchants/grooveLife/grooveLife.ts +0 -386
  703. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +0 -468
  704. package/src/merchants/init-merchant.sh +0 -53
  705. package/src/merchants/jackArcher/jackArcher.ts +0 -974
  706. package/src/merchants/jordanCraig/jordanCraig.ts +0 -1927
  707. package/src/merchants/kindredBravely/kindredBravely.ts +0 -529
  708. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +0 -418
  709. package/src/merchants/larryAndSerges/larryAndSerges.ts +0 -314
  710. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +0 -424
  711. package/src/merchants/longevityrx/longevityrx.ts +0 -368
  712. package/src/merchants/lookOptic/lookOptic.ts +0 -323
  713. package/src/merchants/mantraBrand/mantraBrand.ts +0 -838
  714. package/src/merchants/medterra/medterra.ts +0 -670
  715. package/src/merchants/modells/modells.ts +0 -546
  716. package/src/merchants/pressedFloral/pressedFloral.ts +0 -734
  717. package/src/merchants/skinPerfection/skinPerfection.ts +0 -379
  718. package/src/merchants/snapSupplements/snapSupplements.ts +0 -325
  719. package/src/merchants/spanx/spanx.ts +0 -810
  720. package/src/merchants/spanx/spanxStaging.ts +0 -942
  721. package/src/merchants/supergoop/supergoop.ts +0 -376
  722. package/src/merchants/uniqueVintage/uniqueVintage.ts +0 -1314
  723. package/src/merchants/venaCbd/venaCbd.ts +0 -410
  724. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +0 -473
  725. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +0 -990
  726. package/src/merchants/wolfMattress/wolfMattress.ts +0 -411
  727. package/src/merchants/wolfTactical/wolfTactical.ts +0 -389
  728. /package/dist/{locators-CugndTUM.cjs → AmplitudeOperations-CgIVPUlr.cjs} +0 -0
  729. /package/dist/{locators-DnKpajbY.js → AmplitudeOperations-YpyaR7Mp.js} +0 -0
  730. /package/dist/{utilityTypes-BVikejDo.js → atomStore-C2OI76yN.js} +0 -0
  731. /package/dist/{utilityTypes-C4h2wgAK.cjs → atomStore-DWmT1six.cjs} +0 -0
  732. /package/dist/{variantInfo-CzhR5W6h.js → types-DQoXDiso.js} +0 -0
  733. /package/dist/{variantInfo-CNRTY0gH.cjs → types-o3zWarRp.cjs} +0 -0
  734. /package/src/contexts/{systemSettingsContext.tsx → systemSettingsContext/systemSettingsContext.tsx} +0 -0
  735. /package/src/hooks/{useBlockBackButton.ts → BlockBackButton/useBlockBackButton.ts} +0 -0
  736. /package/src/hooks/{useCustomerSupportHandoff.ts → CustomerSupportHandoff/useCustomerSupportHandoff.ts} +0 -0
  737. /package/src/hooks/{useDebounce.ts → Debounce/useDebounce.ts} +0 -0
  738. /package/src/hooks/{useElementObserver.ts → ElementObserver/useElementObserver.ts} +0 -0
  739. /package/src/hooks/{useGrabAndScroll.ts → GrabAndScroll/useGrabAndScroll.ts} +0 -0
  740. /package/src/hooks/{useIntersection.ts → Intersection/useIntersection.ts} +0 -0
  741. /package/src/hooks/{useIsSmallScreen.ts → IsSmallScreen/useIsSmallScreen.ts} +0 -0
  742. /package/src/hooks/{useMessageFilter.ts → MessageFilter/useMessageFilter.ts} +0 -0
  743. /package/src/hooks/{useMessageScrollObserver.ts → MessageScrollObserver/useMessageScrollObserver.ts} +0 -0
  744. /package/src/hooks/{useSnapCalculator.ts → SnapCalculator/useSnapCalculator.ts} +0 -0
  745. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  746. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  747. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -1,866 +0,0 @@
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
- import {
8
- CategoryExtractor,
9
- CategoryExtractorType,
10
- IdExtractor,
11
- OrgPageConfig,
12
- PageVariantConfig,
13
- PageVariantTest,
14
- PageVariantTestType,
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";
25
-
26
- import {
27
- PageVisitCategory,
28
- type SupportedEventProductCategory,
29
- } from "@spiffy-ai/commerce-api-client";
30
- import {
31
- SupportedEvent,
32
- urlResolverAtom,
33
- UrlResolverResponse,
34
- UrlResolvingPDPConfig,
35
- UrlResolvingPLPConfig,
36
- } from "src/atoms/app/variant";
37
- import { chatAtom, lastAssistantMessageAtom } from "src/atoms/chat";
38
- import { StringUtils } from "../utils/stringUtils";
39
-
40
- /**
41
- * This class is used to resolve the PageVariants for the Spiffy App.
42
- * It includes a number of static utility functions for performing pageTests and
43
- * extracting data necessary to build the PageVariants.
44
- *
45
- * Under most circumstances only `getVariantInfoWithPageConfig` will be called externally
46
- * The other functions should be used internally by that function.
47
- */
48
- class PageVariantService {
49
- public static readonly pageTest = async (
50
- test: PageVariantTest,
51
- pageVariantConfig: PageVariantConfig,
52
- atomValues?: {
53
- responseStreaming: boolean;
54
- messages: Message[][];
55
- lastAssistantMessage?: Message[] | null | undefined;
56
- }
57
- ): Promise<boolean> => {
58
- switch (test.testType) {
59
- case PageVariantTestType.UrlResolver: {
60
- const url = window._spiffy.variantUrlOverride ?? window.location.href;
61
- const response = await PageVariantService.getCachedUrlResolver(url);
62
- return (
63
- response.ready &&
64
- response.variant_type === pageVariantConfig.variantType
65
- );
66
- }
67
- case PageVariantTestType.ShopifyPDP:
68
- return ShopifyUrlService.isOnPdpPage();
69
- case PageVariantTestType.ShopifyPLP:
70
- return ShopifyUrlService.isOnPlpPage();
71
- case PageVariantTestType.PageCategory:
72
- return !!PageVariantService.getCategory(test.extractor);
73
- case PageVariantTestType.FeatureGate:
74
- return PageVariantService.checkFeatureGate(test.featureGate);
75
- case PageVariantTestType.PlpId:
76
- return PageVariantService.checkPlpIds({
77
- plpIds: test.plpIds,
78
- plpIdExtractor: test.plpIdExtractor,
79
- });
80
- case PageVariantTestType.QueryParam:
81
- return PageVariantService.checkQueryParam({
82
- queryParam: test.queryParam,
83
- });
84
- case PageVariantTestType.ProductId:
85
- return PageVariantService.checkProductId({
86
- productIds: test.productIds,
87
- productIdExtractor: test.productIdExtractor,
88
- });
89
- case PageVariantTestType.Fallback:
90
- // The 'fallback' testType will always evaluate to true
91
- return true;
92
- case PageVariantTestType.CatalogCategory:
93
- return PageVariantService.checkCatalogCategory(
94
- test.category,
95
- pageVariantConfig
96
- );
97
- case PageVariantTestType.TopCatalogCategory:
98
- return PageVariantService.checkInTopCategory(
99
- test.topCategory,
100
- pageVariantConfig
101
- );
102
- case PageVariantTestType.HasReviews:
103
- return PageVariantService.checkHasReviews(
104
- pageVariantConfig,
105
- test.reviewMinimum
106
- );
107
- case PageVariantTestType.InCollection:
108
- return PageVariantService.checkInCollection(
109
- test.collections,
110
- pageVariantConfig
111
- );
112
- case PageVariantTestType.HasMerchantTag:
113
- return PageVariantService.checkHasMerchantTag(
114
- test.merchantTags,
115
- pageVariantConfig
116
- );
117
- case PageVariantTestType.UserHasInteracted:
118
- return PageVariantService.userHasInteracted(atomValues?.messages);
119
- case PageVariantTestType.UserHasNotInteracted:
120
- return PageVariantService.userHasNotInteracted(atomValues?.messages);
121
- case PageVariantTestType.isLoading:
122
- return PageVariantService.isLoading(
123
- atomValues?.messages,
124
- atomValues?.responseStreaming
125
- );
126
- case PageVariantTestType.isProductComparison:
127
- return PageVariantService.isProductComparison(
128
- atomValues?.lastAssistantMessage
129
- );
130
- default:
131
- // If there is a testType that we do not cover - default to false
132
- Logger.logInfo(`[Spiffy] pageTest - ${test} not supported`);
133
- return false;
134
- }
135
- };
136
-
137
- private static readonly getCachedUrlResolver = async (url: string) => {
138
- // Check atom cache first (like OrgConfig does)
139
- const atomStore = getAtomStore();
140
- const cache = atomStore.get(urlResolverAtom);
141
- const cachedUrlResolver = cache?.[url];
142
-
143
- if (cachedUrlResolver) {
144
- return cachedUrlResolver;
145
- }
146
-
147
- const response = (await CommerceApiClient.resolveUrl(
148
- url
149
- )) as UrlResolverResponse;
150
-
151
- // Store in atom cache for this URL (will be persisted to sessionStorage automatically)
152
- atomStore.set(urlResolverAtom, { url, response });
153
-
154
- return response;
155
- };
156
-
157
- /**
158
- * Checks if the current page matches the expected catalog category.
159
- *
160
- * @param category - The expected catalog category as defined by data in Elastic Search.
161
- * @param pageVariantConfig - The variant config for the current page.
162
- *
163
- * @returns True if the current page matches the expected catalog category.
164
- */
165
- private static readonly checkCatalogCategory = async (
166
- category: SupportedEventProductCategory | string,
167
- pageVariantConfig: PageVariantConfig
168
- ): Promise<boolean> => {
169
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(
170
- pageVariantConfig
171
- );
172
- if (supportedEventResponse && supportedEventResponse.category) {
173
- return supportedEventResponse?.category === category;
174
- }
175
-
176
- return false;
177
- };
178
-
179
- private static readonly checkInTopCategory = async (
180
- topCategory: string[],
181
- pageVariantConfig: PageVariantConfig
182
- ): Promise<boolean> => {
183
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(
184
- pageVariantConfig
185
- );
186
- if (supportedEventResponse && supportedEventResponse?.top_category) {
187
- return topCategory.includes(supportedEventResponse?.top_category);
188
- }
189
-
190
- return false;
191
- };
192
-
193
- private static readonly checkHasReviews = async (
194
- pageVariantConfig: PageVariantConfig,
195
- reviewMinimum: number = 0
196
- ): Promise<boolean> => {
197
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(
198
- pageVariantConfig
199
- );
200
- if (supportedEventResponse?.numberOfReviews) {
201
- return supportedEventResponse.numberOfReviews >= reviewMinimum;
202
- }
203
- return false;
204
- };
205
-
206
- private static readonly checkInCollection = async (
207
- collections: string[],
208
- pageVariantConfig: PageVariantConfig
209
- ): Promise<boolean> => {
210
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(
211
- pageVariantConfig
212
- );
213
- if (supportedEventResponse?.collections) {
214
- return supportedEventResponse.collections.some((collection) =>
215
- collections.includes(collection)
216
- );
217
- }
218
- return false;
219
- };
220
-
221
- private static readonly checkHasMerchantTag = async (
222
- merchantTags: string[],
223
- pageVariantConfig: PageVariantConfig
224
- ): Promise<boolean> => {
225
- const supportedEventResponse = await PageVariantService.checkSupportedEvent(
226
- pageVariantConfig
227
- );
228
-
229
- if (supportedEventResponse?.merchant_tags) {
230
- return supportedEventResponse.merchant_tags.some((tag) =>
231
- merchantTags.includes(tag)
232
- );
233
- }
234
-
235
- return false;
236
- };
237
-
238
- private static readonly userHasInteracted = (msgs?: Message[][]): boolean => {
239
- if (msgs) {
240
- return msgs.some((m) => m.some((msg) => msg.role === MessageRole.User));
241
- }
242
-
243
- const atomStore = getAtomStore();
244
- const { messages } = atomStore.get(chatAtom);
245
- return messages.some((m) => m.some((msg) => msg.role === MessageRole.User));
246
- };
247
-
248
- private static readonly userHasNotInteracted = (
249
- msgs?: Message[][]
250
- ): boolean => {
251
- if (msgs) {
252
- return !msgs.some((m) => m.some((msg) => msg.role === MessageRole.User));
253
- }
254
-
255
- const atomStore = getAtomStore();
256
- const chat = atomStore.get(chatAtom);
257
- return !chat.messages.some((m) =>
258
- m.some((msg) => msg.role === MessageRole.User)
259
- );
260
- };
261
-
262
- private static readonly isLoading = (
263
- msgs?: Message[][],
264
- responseStream?: boolean
265
- ): boolean => {
266
- if (msgs) {
267
- return responseStream || (!responseStream && msgs.length === 0);
268
- }
269
-
270
- const atomStore = getAtomStore();
271
- const { responseStreaming, messages } = atomStore.get(chatAtom);
272
- return responseStreaming || (!responseStreaming && messages.length === 0);
273
- };
274
-
275
- private static readonly isProductComparison = (
276
- lastMsg: Message[] | null | undefined
277
- ): boolean => {
278
- if (lastMsg) {
279
- return (
280
- lastMsg?.filter((msg) => msg.type === MessageType.Product).length === 2
281
- );
282
- }
283
-
284
- const atomStore = getAtomStore();
285
- const lastAssistantMessage = atomStore.get(lastAssistantMessageAtom);
286
- return (
287
- lastAssistantMessage?.filter((msg) => msg.type === MessageType.Product)
288
- .length === 2
289
- );
290
- };
291
-
292
- private static readonly checkPlpIds = async ({
293
- plpIds,
294
- plpIdExtractor,
295
- }: {
296
- plpIds: string[];
297
- plpIdExtractor: IdExtractor;
298
- }): Promise<boolean> => {
299
- let currentPlpId: string | null;
300
- if (plpIdExtractor === "url-resolver-plp-id") {
301
- currentPlpId = await PageVariantService.getIdFromUrlResolver("plpId");
302
- } else {
303
- currentPlpId = await PageVariantService.getId(plpIdExtractor);
304
- }
305
- const result = plpIds.includes(currentPlpId ?? "");
306
- return result;
307
- };
308
-
309
- private static readonly checkQueryParam = async ({
310
- queryParam,
311
- }: {
312
- queryParam: string;
313
- }): Promise<boolean> => {
314
- const params = new URLSearchParams(window.location.search);
315
- return params.has(queryParam);
316
- };
317
-
318
- private static readonly checkProductId = async ({
319
- productIds,
320
- productIdExtractor,
321
- }: {
322
- productIds: string[];
323
- productIdExtractor: IdExtractor;
324
- }): Promise<boolean> => {
325
- let currentProductId: string | null;
326
- if (productIdExtractor === "url-resolver-product-id") {
327
- currentProductId = await PageVariantService.getIdFromUrlResolver(
328
- "productId"
329
- );
330
- } else {
331
- currentProductId = await PageVariantService.getId(productIdExtractor);
332
- }
333
- const result = productIds.includes(currentProductId ?? "");
334
- return result;
335
- };
336
-
337
- static checkFeatureGate(featureGate: FeatureGates): boolean {
338
- const atomStore = getAtomStore();
339
- const featureFlagService = atomStore.get(featureFlagServiceAtom);
340
-
341
- return featureFlagService?.isFeatureGateEnabled(featureGate) || false;
342
- }
343
-
344
- static getCategory(extractor: CategoryExtractor): PageVisitCategory | null {
345
- if (extractor.type === CategoryExtractorType.VisitCategoryDefault) {
346
- return extractor.value;
347
- }
348
-
349
- if (extractor.type === CategoryExtractorType.VisitCategoryMap) {
350
- const urlMap = Object.entries(extractor.map);
351
-
352
- const matched = urlMap.find(([, urls]) => {
353
- const hostMatched = StringUtils.findMatchingPattern(
354
- urls,
355
- window.location
356
- );
357
- if (hostMatched) {
358
- return hostMatched;
359
- }
360
-
361
- return urls.find((url) => window.location.pathname.includes(url));
362
- });
363
-
364
- if (matched) {
365
- return matched[0] as PageVisitCategory;
366
- }
367
-
368
- return null;
369
- }
370
-
371
- Logger.logError(
372
- `[spiffy-ai] PageVariantService.getCategory error - extractor=${extractor} not supported`,
373
- undefined
374
- );
375
- return null;
376
- }
377
-
378
- static async getId(extractor?: IdExtractor): Promise<string | null> {
379
- if (!extractor || extractor === "null") {
380
- Logger.logDebug(
381
- `[spiffy-ai] PageVariantService.getId - extractor=${extractor} is null or not supported`
382
- );
383
- return null;
384
- }
385
-
386
- // Handle URL resolver extractors
387
- if (extractor === "url-resolver-product-id") {
388
- return PageVariantService.getIdFromUrlResolver("productId");
389
- }
390
-
391
- if (extractor === "url-resolver-plp-id") {
392
- return PageVariantService.getIdFromUrlResolver("plpId");
393
- }
394
-
395
- // Handle regular extractors
396
- return ShopifyUrlService.getPlpOrPdpId(extractor);
397
- }
398
-
399
- private static readonly getIdFromUrlResolver = async (
400
- field: "productId" | "plpId"
401
- ) => {
402
- const url = window._spiffy.variantUrlOverride ?? window.location.href;
403
- const response = await this.getCachedUrlResolver(url);
404
- // PDP
405
- if (field === "productId" && response.variant_type === "pdp") {
406
- let productId: string | undefined;
407
- if (
408
- response.user_event?.attributes &&
409
- "product_id" in response.user_event.attributes
410
- ) {
411
- productId = response.user_event.attributes.product_id;
412
- }
413
- return productId ?? null;
414
- }
415
-
416
- // PLP
417
- if (field === "plpId" && response.variant_type === "plp") {
418
- let plpId: string | undefined;
419
- if (
420
- response.user_event?.category === "plp_visit" &&
421
- response.user_event.attributes &&
422
- "attributes" in response.user_event.attributes &&
423
- response.user_event.attributes.attributes &&
424
- "id" in response.user_event.attributes.attributes
425
- ) {
426
- plpId = response.user_event.attributes.attributes.id;
427
- }
428
- return plpId ?? null;
429
- }
430
- return null;
431
- };
432
-
433
- // /**
434
- // * Transforms backend page_variant to frontend PageVariantConfig: check -> test
435
- // *
436
- // * @param backendPageVariant - Backend page variant with variant_checks
437
- // * @returns Frontend PageVariantConfig with variantTests
438
- // */
439
- // private static readonly transformBackendPageVariantToFrontend = (
440
- // backendPageVariant: BackendPageVariantConfig,
441
- // ): PageVariantConfig => {
442
- // const convertChecktoTest = (checks: PageVariantCheckConfig[]): PageVariantTest[] => checks.map((check: PageVariantCheckConfig): PageVariantTest => {
443
- // switch (check.check_type) {
444
- // case 'ShopifyPDP':
445
- // return {
446
- // testType: PageVariantTestType.ShopifyPDP,
447
- // };
448
- // case 'ShopifyPLP':
449
- // return {
450
- // testType: PageVariantTestType.ShopifyPLP,
451
- // };
452
- // case 'FeatureGate':
453
- // return {
454
- // testType: PageVariantTestType.FeatureGate,
455
- // featureGate: check.feature_gate as FeatureGates,
456
- // };
457
- // case 'ProductId':
458
- // return {
459
- // testType: PageVariantTestType.ProductId,
460
- // productIdExtractor: check.product_id_extractor as IdExtractor,
461
- // productIds: check.product_ids as string[],
462
- // };
463
- // case 'PlpId':
464
- // return {
465
- // testType: PageVariantTestType.PlpId,
466
- // plpIdExtractor: check.plp_id_extractor as IdExtractor,
467
- // plpIds: check.plp_ids as string[],
468
- // };
469
- // case 'InCollection':
470
- // return {
471
- // testType: PageVariantTestType.InCollection,
472
- // collections: check.collections as string[],
473
- // };
474
- // case 'QueryParam':
475
- // return {
476
- // testType: PageVariantTestType.QueryParam,
477
- // queryParam: check.query_param as string,
478
- // };
479
- // case 'PageCategory':
480
- // return {
481
- // testType: PageVariantTestType.PageCategory,
482
- // extractor: check.extractor as CategoryExtractor,
483
- // };
484
- // case 'CatalogCategory':
485
- // return {
486
- // testType: PageVariantTestType.CatalogCategory,
487
- // category: check.category as SupportedEventProductCategory,
488
- // };
489
- // case 'TopCatalogCategory':
490
- // return {
491
- // testType: PageVariantTestType.TopCatalogCategory,
492
- // topCategory: check.top_category as SupportedEventProductCategory[],
493
- // };
494
- // case 'HasReviews':
495
- // return {
496
- // testType: PageVariantTestType.HasReviews,
497
- // reviewMinimum: check?.review_minimum,
498
- // };
499
- // case 'UrlResolver':
500
- // return {
501
- // testType: PageVariantTestType.UrlResolver,
502
- // };
503
- // case 'Fallback':
504
- // return {
505
- // testType: PageVariantTestType.Fallback,
506
- // };
507
- // case 'HasMerchantTag':
508
- // return {
509
- // testType: PageVariantTestType.HasMerchantTag,
510
- // merchantTags: check.merchant_tags as string[],
511
- // };
512
- // default:
513
- // throw new Error(`Unsupported check_type: ${check.check_type}`);
514
- // }
515
- // });
516
- // const variantTests: PageVariantTest[] = convertChecktoTest(
517
- // backendPageVariant.variant_checks || [],
518
- // );
519
-
520
- // const widgetMounting: WidgetMounting[] = backendPageVariant.widget_mounting.map(
521
- // (widgetMountingConfig: BackendWidgetMountingConfig) => {
522
- // if (widgetMountingConfig.mounting_point_widgets?.length) {
523
- // return {
524
- // mountingConfigId: widgetMountingConfig.mounting_config_id,
525
- // mountingPointWidgets: widgetMountingConfig.mounting_point_widgets.map(
526
- // (mountingPointWidget) => ({
527
- // tests: convertChecktoTest(mountingPointWidget.checks),
528
- // widgetConfigId: mountingPointWidget.widget_config_id,
529
- // }),
530
- // ),
531
- // } as DynamicWidgetMounting;
532
- // }
533
- // return {
534
- // mountingConfigId: widgetMountingConfig.mounting_config_id,
535
- // widgetConfigId: widgetMountingConfig.widget_config_id,
536
- // } as StaticWidgetMounting;
537
- // },
538
- // );
539
-
540
- // return {
541
- // variantId: backendPageVariant.variant_id,
542
- // variantType: backendPageVariant.variant_type,
543
- // variantTests,
544
- // widgetMounting,
545
- // ...(backendPageVariant.variant_type === 'pdp' && {
546
- // productIdExtractor: backendPageVariant.product_id_extractor as IdExtractor,
547
- // ...(backendPageVariant.parent_product_id_extractor && {
548
- // parentProductIdExtractor: backendPageVariant.parent_product_id_extractor as IdExtractor,
549
- // }),
550
- // }),
551
- // ...(backendPageVariant.variant_type === 'plp' && {
552
- // plpIdExtractor: backendPageVariant.plp_id_extractor as IdExtractor,
553
- // }),
554
- // } as PageVariantConfig;
555
- // };
556
-
557
- /**
558
- * Gets the variant info for the current page based on the merchant's page config.
559
- *
560
- * @param orgPageConfig - The merchant's page config.
561
- *
562
- * @returns The variant info for the current page, or undefined if the page tests do not
563
- * return any matches.
564
- */
565
- static readonly getVariantInfoWithPageConfig = async (
566
- orgPageConfig: OrgPageConfig
567
- ): Promise<[VariantInfo, PageVariantConfig] | undefined> => {
568
- // First check if there is a variant override set
569
- if (window?._spiffy?.variantInfoOverride) {
570
- Logger.logDebug(
571
- "[spiffy-ai] Found variantInfoOverride",
572
- window._spiffy.variantInfoOverride
573
- );
574
- const matchingPageVariantConfig = orgPageConfig.pageVariants.find(
575
- (pageVariant) =>
576
- pageVariant.variantId ===
577
- window._spiffy.variantInfoOverride?.variantId
578
- );
579
- if (matchingPageVariantConfig) {
580
- Logger.logInfo(
581
- "[spiffy-ai] Returning overriden variantInfo",
582
- window._spiffy.variantInfoOverride
583
- );
584
- return [window._spiffy.variantInfoOverride, matchingPageVariantConfig];
585
- }
586
- Logger.logWarn(
587
- "[spiffy-ai] Found variantInfoOverride but no matching pageVariantConfig",
588
- window._spiffy.variantInfoOverride
589
- );
590
- }
591
-
592
- // Disable the page_variant coming from the backend as it is returning null for merchants today
593
- // const atomStore = getAtomStore();
594
-
595
- // const isGraphQLPageConfigsEnabled = PageVariantService.checkFeatureGate(
596
- // FeatureGates.IsGraphQLPageConfigsEnabled,
597
- // );
598
-
599
- // if (isGraphQLPageConfigsEnabled) {
600
- // // If GraphQL page configs are enabled, use the URL resolver to get the page variant
601
- // const url =
602
- // window._spiffy.variantUrlOverride ?? `${window.location.origin}${window.location.pathname}`;
603
- // const response = await PageVariantService.getCachedUrlResolver(url);
604
-
605
- // if (response?.page_variant) {
606
- // // Transform backend page_variant to frontend PageVariantConfig
607
- // const frontendPageVariant = PageVariantService.transformBackendPageVariantToFrontend(
608
- // response.page_variant,
609
- // );
610
-
611
- // atomStore.set(orgPageConfigAtom, [frontendPageVariant]);
612
-
613
- // const variantInfo = await PageVariantService.parsePageVariantConfig(
614
- // frontendPageVariant,
615
- // url,
616
- // );
617
- // if (variantInfo) {
618
- // return [variantInfo, frontendPageVariant];
619
- // }
620
- // }
621
-
622
- // Logger.logWarn('[spiffy-ai] no page variant fetched', undefined);
623
- // await tellExtensionAboutInjectionError(new Error('No pagevariantConfig matched'));
624
-
625
- // return undefined;
626
- // }
627
-
628
- // If GraphQL page configs are not enabled, use the local page config
629
-
630
- // return the first variant that passes all of its tests
631
- for await (const pageVariant of [...orgPageConfig.pageVariants]) {
632
- const testResults = await Promise.all(
633
- pageVariant.variantTests.map((test) =>
634
- PageVariantService.pageTest(test, pageVariant)
635
- )
636
- );
637
-
638
- if (testResults.every((result) => result)) {
639
- // this URL eventually gets used to look up whether a product/page is supported
640
- // the backend does not strip out query params which can return different results
641
- // for the same page. Strip out the query params here to ensure consistent results.
642
- const url = `${window.location.origin}${window.location.pathname}`;
643
- const variantInfo = await this.parsePageVariantConfig(pageVariant, url);
644
-
645
- if (variantInfo) {
646
- return [variantInfo, pageVariant];
647
- }
648
- }
649
- }
650
-
651
- Logger.logWarn(
652
- "[spiffy-ai] no pageVariantConfig matched",
653
- undefined,
654
- orgPageConfig.pageVariants
655
- );
656
- // TODO: remove or enable if we decide to support injection in this repo.
657
- // await tellExtensionAboutInjectionError(
658
- // new Error("No pagevariantConfig matched")
659
- // );
660
-
661
- return undefined;
662
- };
663
-
664
- /**
665
- * Checks if the current page is supported. A page is supported if it has been indexed in
666
- * Elastic Search and its category has been whitelisted by the backend.
667
- *
668
- * @param pageVariantConfig - The variant config for the current page which is used to get
669
- * the variant info.
670
- *
671
- * @returns The supported event response from the backend, or undefined if the page is not supported.
672
- */
673
- static readonly checkSupportedEvent = async (
674
- pageVariantConfig: PageVariantConfig
675
- ): Promise<SupportedEvent | undefined> => {
676
- try {
677
- const variantInfo = await this.parsePageVariantConfig(
678
- pageVariantConfig,
679
- window.location.href
680
- );
681
-
682
- const usesURLResolver = pageVariantConfig.variantTests.some(
683
- (test) => test.testType === PageVariantTestType.UrlResolver
684
- );
685
-
686
- if (
687
- !variantInfo ||
688
- (variantInfo.variant === "plp" && !variantInfo.plpId) ||
689
- (variantInfo.variant === "pdp" && !variantInfo.productId) ||
690
- (variantInfo.variant === "page_visit" && !variantInfo.url)
691
- ) {
692
- return undefined;
693
- }
694
-
695
- const atomStore = getAtomStore();
696
- const appDetails = atomStore.get(appDetailsAtom);
697
-
698
- const visitEvent = createVisitUserEvent({ variantInfo });
699
-
700
- if (!visitEvent) {
701
- Logger.logWarn("spiffy-ai] no visitEvent found", variantInfo);
702
- return undefined;
703
- }
704
-
705
- if (!usesURLResolver) {
706
- return await CommerceApiClient.isSupportedEvent({
707
- id: uuid(),
708
- context: appDetails,
709
- userEvent: visitEvent,
710
- });
711
- }
712
-
713
- // If it got here, it means that the page is supported by the URL resolver.
714
- // We still need to populate a supported event object to make the widgets show up.
715
- const url = window._spiffy.variantUrlOverride ?? window.location.href;
716
- const response = await this.getCachedUrlResolver(url);
717
-
718
- const basicResponse = {
719
- supported: true,
720
- ready: response.ready,
721
- numberOfReviews: 0,
722
- } as SupportedEvent;
723
-
724
- if (variantInfo.variant === "plp") {
725
- const { top_category } =
726
- response.specific_details as UrlResolvingPLPConfig;
727
- return {
728
- ...basicResponse,
729
- top_category,
730
- };
731
- }
732
-
733
- if (variantInfo.variant === "pdp") {
734
- const { collections, number_of_reviews, merchant_tags } =
735
- response.specific_details as UrlResolvingPDPConfig;
736
- return {
737
- ...basicResponse,
738
- numberOfReviews: number_of_reviews || 0,
739
- collections: collections || [],
740
- merchant_tags,
741
- };
742
- }
743
-
744
- return basicResponse;
745
- } catch (error) {
746
- Logger.logError("spiffy-ai] error checking supported event", error, {
747
- pageVariantConfig,
748
- });
749
- return undefined;
750
- }
751
- };
752
-
753
- /**
754
- * Parses the page variant config into a variant info object.
755
- *
756
- * @param pageVariantConfig - The variant config for the current page.
757
- * @param url - The current URL of the page. This is used to extract the pdp/plp id.
758
- *
759
- * @returns The variant info for the current page, or undefined if the page variant config is invalid or not supported.
760
- */
761
- private static readonly parsePageVariantConfig = async (
762
- pageVariantConfig: PageVariantConfig,
763
- url: string
764
- ): Promise<VariantInfo | undefined> => {
765
- if (window?._spiffy?.variantInfoOverride) {
766
- return window._spiffy.variantInfoOverride;
767
- }
768
-
769
- if (pageVariantConfig.variantType === "pdp") {
770
- let productId: string = "";
771
- if (pageVariantConfig.productIdExtractor === "url-resolver-product-id") {
772
- productId =
773
- (await PageVariantService.getIdFromUrlResolver("productId")) ?? "";
774
- } else {
775
- productId =
776
- (await PageVariantService.getId(
777
- pageVariantConfig.productIdExtractor
778
- )) ?? "";
779
- }
780
- const parentProductId =
781
- (await PageVariantService.getId(
782
- pageVariantConfig.parentProductIdExtractor
783
- )) ?? "";
784
- return {
785
- variantId: pageVariantConfig.variantId,
786
- variant: pageVariantConfig.variantType,
787
- parentProductId,
788
- productId,
789
- url,
790
- };
791
- }
792
-
793
- if (pageVariantConfig.variantType === "plp") {
794
- let plpId: string = "";
795
- if (pageVariantConfig.plpIdExtractor === "url-resolver-plp-id") {
796
- plpId = (await PageVariantService.getIdFromUrlResolver("plpId")) ?? "";
797
- } else {
798
- plpId =
799
- (await PageVariantService.getId(pageVariantConfig.plpIdExtractor)) ??
800
- "";
801
- }
802
- return {
803
- variantId: pageVariantConfig.variantId,
804
- variant: pageVariantConfig.variantType,
805
- plpId,
806
- url,
807
- };
808
- }
809
-
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
- );
819
-
820
- // This *should* only be the result of invalid config. Should we throw an error here or handle it with a default value?
821
- if (pageVisitCategory === null) {
822
- throw new Error(
823
- "[spiffy-ai] - Invalid variant config produced invalid pageVisitCategory"
824
- );
825
- }
826
-
827
- return {
828
- variantId: pageVariantConfig.variantId,
829
- variant: pageVariantConfig.variantType,
830
- url,
831
- pageVisitCategory,
832
- };
833
- }
834
-
835
- if (pageVariantConfig.variantType === "homepage") {
836
- return {
837
- variantId: pageVariantConfig.variantId,
838
- variant: "page_visit",
839
- pageVisitCategory: PageVisitCategory.Homepage,
840
- url,
841
- };
842
- }
843
-
844
- if (pageVariantConfig.variantType === "search") {
845
- return {
846
- variantId: pageVariantConfig.variantId,
847
- variant: "page_visit",
848
- pageVisitCategory: PageVisitCategory.Search,
849
- url,
850
- };
851
- }
852
-
853
- if (pageVariantConfig.variantType === "other") {
854
- return {
855
- variantId: pageVariantConfig.variantId,
856
- variant: "page_visit",
857
- pageVisitCategory: PageVisitCategory.Other,
858
- url,
859
- };
860
- }
861
-
862
- return undefined;
863
- };
864
- }
865
-
866
- export { PageVariantService };