@envive-ai/react-hooks 0.1.5 → 0.1.6

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 (491) hide show
  1. package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
  2. package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
  3. package/dist/amplitudeContext-hY3caPC6.js +322 -0
  4. package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
  5. package/dist/api-DjeZXxl_.js +207 -0
  6. package/dist/api-_JaUnIUj.cjs +292 -0
  7. package/dist/app-CjsQ2_n-.js +132 -0
  8. package/dist/app-CnKRZ9RW.cjs +178 -0
  9. package/dist/application/models/graphql/index.cjs +3 -12
  10. package/dist/application/models/graphql/index.d.cts +1 -1
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/graphql/index.js +1 -10
  13. package/dist/application/models/guards/api/index.cjs +1 -2
  14. package/dist/application/models/guards/api/index.d.cts +2 -2
  15. package/dist/application/models/guards/api/index.d.ts +2 -2
  16. package/dist/application/models/guards/api/index.js +1 -2
  17. package/dist/application/models/index.cjs +48 -54
  18. package/dist/application/models/index.d.cts +7 -9
  19. package/dist/application/models/index.d.ts +7 -9
  20. package/dist/application/models/index.js +7 -11
  21. package/dist/application/models/utilityTypes/index.cjs +1 -1
  22. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  23. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  24. package/dist/application/models/utilityTypes/index.js +1 -1
  25. package/dist/application/models/variantInfo/index.cjs +1 -1
  26. package/dist/application/models/variantInfo/index.d.cts +1 -1
  27. package/dist/application/models/variantInfo/index.d.ts +1 -1
  28. package/dist/application/models/variantInfo/index.js +1 -1
  29. package/dist/application/utils/index.cjs +40 -37
  30. package/dist/application/utils/index.d.cts +18 -14
  31. package/dist/application/utils/index.d.ts +19 -15
  32. package/dist/application/utils/index.js +13 -10
  33. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
  34. package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
  35. package/dist/atoms/app/index.cjs +14 -16
  36. package/dist/atoms/app/index.d.cts +20 -19
  37. package/dist/atoms/app/index.d.ts +20 -19
  38. package/dist/atoms/app/index.js +10 -11
  39. package/dist/atoms/atomStore/index.cjs +2 -1
  40. package/dist/atoms/atomStore/index.d.cts +24 -2
  41. package/dist/atoms/atomStore/index.d.ts +24 -2
  42. package/dist/atoms/atomStore/index.js +2 -1
  43. package/dist/atoms/chat/index.cjs +44 -40
  44. package/dist/atoms/chat/index.d.cts +35 -36
  45. package/dist/atoms/chat/index.d.ts +35 -36
  46. package/dist/atoms/chat/index.js +14 -10
  47. package/dist/atoms/globalSearch/index.cjs +1 -1
  48. package/dist/atoms/globalSearch/index.d.cts +5 -5
  49. package/dist/atoms/globalSearch/index.d.ts +6 -6
  50. package/dist/atoms/globalSearch/index.js +1 -1
  51. package/dist/atoms/org/index.cjs +26 -38
  52. package/dist/atoms/org/index.d.cts +35 -48
  53. package/dist/atoms/org/index.d.ts +35 -48
  54. package/dist/atoms/org/index.js +11 -11
  55. package/dist/atoms/search/index.cjs +47 -41
  56. package/dist/atoms/search/index.d.cts +7 -9
  57. package/dist/atoms/search/index.d.ts +7 -9
  58. package/dist/atoms/search/index.js +16 -10
  59. package/dist/bandolier-DYEz4-8C.js +1229 -0
  60. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  61. package/dist/carpe-CsG5jCcl.cjs +607 -0
  62. package/dist/carpe-DONk00bZ.js +605 -0
  63. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  64. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  65. package/dist/{chat-_NzpO_Hn.cjs → chat-BubCW1as.cjs} +1 -1
  66. package/dist/chat-CO7cRkaq.cjs +506 -0
  67. package/dist/{chat-CHmD79E1.js → chat-CV6MXeID.js} +1 -1
  68. package/dist/chat-hcRc4RRd.js +285 -0
  69. package/dist/{components-Dl-TMD9k.js → components-B4T3Uzth.js} +1 -1
  70. package/dist/{components-D0XDRcaN.cjs → components-Cw9WjA6g.cjs} +1 -1
  71. package/dist/config/locators/components/chat/index.cjs +1 -1
  72. package/dist/config/locators/components/chat/index.d.cts +1 -1
  73. package/dist/config/locators/components/chat/index.d.ts +1 -1
  74. package/dist/config/locators/components/chat/index.js +1 -1
  75. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  76. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  77. package/dist/config/locators/components/index.cjs +1 -1
  78. package/dist/config/locators/components/index.d.cts +1 -1
  79. package/dist/config/locators/components/index.d.ts +1 -1
  80. package/dist/config/locators/components/index.js +1 -1
  81. package/dist/config/locators/components/search/index.d.ts +1 -1
  82. package/dist/config/locators/index.cjs +4 -4
  83. package/dist/config/locators/index.d.cts +2 -2
  84. package/dist/config/locators/index.d.ts +2 -2
  85. package/dist/config/locators/index.js +4 -4
  86. package/dist/contexts/index.cjs +45 -14
  87. package/dist/contexts/index.d.cts +10 -10
  88. package/dist/contexts/index.d.ts +10 -10
  89. package/dist/contexts/index.js +22 -11
  90. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  91. package/dist/contexts-DGlr7M1o.js +2596 -0
  92. package/dist/coterie-CKB93qfz.cjs +239 -0
  93. package/dist/{coterie--MGvWeVh.cjs → coterie-DHcj2fRE.js} +64 -65
  94. package/dist/{custservice-types-C8-9vKWb.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  95. package/dist/{custservice-types-CamCiXjq.js → custservice-types-mnIunabv.js} +1 -1
  96. package/dist/default-BnB4p0Se.cjs +234 -0
  97. package/dist/default-D6f5Dyt7.js +199 -0
  98. package/dist/default-ZKkE5zT4.cjs +4 -0
  99. package/dist/default-legGZJwI.js +4 -0
  100. package/dist/{divIds-CjceLRD9.cjs → divIds-2dJlU3z8.cjs} +1 -15
  101. package/dist/{divIds-0Vj9g-fM.js → divIds-BUrN2vY-.js} +2 -4
  102. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  103. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  104. package/dist/{embedded-_cLpd6FK.js → embedded-BJLWIriJ.js} +1 -1
  105. package/dist/{embedded-B5Wi9g0T.cjs → embedded-Dl79TJLC.cjs} +1 -1
  106. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  107. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  108. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  109. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  110. package/dist/events/index.cjs +1 -1
  111. package/dist/events/index.js +1 -1
  112. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  113. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  114. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  115. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  116. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  117. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  118. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  119. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  120. package/dist/graphql-BNW60InJ.cjs +128 -0
  121. package/dist/graphql-CjB8wHzm.js +74 -0
  122. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  123. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  124. package/dist/greenpan-B_EbPkSP.js +397 -0
  125. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  126. package/dist/grooveLife-Ckuir319.js +342 -0
  127. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  128. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  129. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  130. package/dist/hooks/index.cjs +39 -13
  131. package/dist/hooks/index.d.cts +127 -45
  132. package/dist/hooks/index.d.ts +124 -42
  133. package/dist/hooks/index.js +22 -11
  134. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  135. package/dist/{index-BdNKc2ix.d.cts → index-BDPWBU3h.d.cts} +1 -1
  136. package/dist/index-BMPtlgac.d.ts +191 -0
  137. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  138. package/dist/{index-BrXuc_Ck.d.cts → index-Byb45OPg.d.cts} +1 -1
  139. package/dist/{index-CSIOQD-A.d.ts → index-C6KdON7d.d.ts} +1 -1
  140. package/dist/index-C7pGDl1A.d.ts +1609 -0
  141. package/dist/{index-K2kNsOTw.d.cts → index-C9lgsCWp.d.cts} +32 -32
  142. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  143. package/dist/{index-CbJZOEU4.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  144. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  145. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  146. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  147. package/dist/{index-Cr2y08f1.d.ts → index-DOii3C6b.d.ts} +1 -1
  148. package/dist/index-DTu2X-YS.d.cts +1609 -0
  149. package/dist/index-OEifcBsm.d.cts +191 -0
  150. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  151. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  152. package/dist/interceptors/index.cjs +2 -12
  153. package/dist/interceptors/index.d.cts +8 -13
  154. package/dist/interceptors/index.d.ts +8 -13
  155. package/dist/interceptors/index.js +2 -11
  156. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  157. package/dist/{jackArcher-sO9EbgrZ.js → jackArcher-BwkWGybC.js} +24 -25
  158. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  159. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  160. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  161. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  162. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  163. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  164. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  165. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  166. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  167. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  168. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  169. package/dist/longevityrx-DfPDfvAt.js +320 -0
  170. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  171. package/dist/{lookOptic-Jwf7EAU8.js → lookOptic-FgVW1afF.js} +19 -20
  172. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  173. package/dist/{mantraBrand-DoaVj837.js → mantraBrand-uV8HCDR8.js} +22 -23
  174. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  175. package/dist/medterra-DgzE7-mj.js +583 -0
  176. package/dist/modells-CJjsxOIR.js +484 -0
  177. package/dist/modells-Ck5KbRFj.cjs +484 -0
  178. package/dist/models-BkXg5eIP.cjs +1534 -0
  179. package/dist/models-UZ6HszfZ.js +1281 -0
  180. package/dist/{nodeSelector-DybpVr-i.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  181. package/dist/{nodeSelector-vKB44CDB.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  182. package/dist/org-C2RrBVQR.cjs +81 -0
  183. package/dist/org-xMytX--e.js +38 -0
  184. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  185. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  186. package/dist/pressedFloral-Bteoboms.js +661 -0
  187. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  188. package/dist/search-BMOAmrmY.js +459 -0
  189. package/dist/search-Df0Ifneg.cjs +672 -0
  190. package/dist/{search-filter-types-9rTb3jMj.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  191. package/dist/{search-filter-types-C-zZSpGo.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  192. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  193. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  194. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  195. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  196. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  197. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  198. package/dist/spanx-B4WFA_rI.js +661 -0
  199. package/dist/spanx-BWoE4F8b.cjs +663 -0
  200. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  201. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  202. package/dist/{suggestionBarV2-types-Penx3Y67.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  203. package/dist/{suggestionBarV2-types-B3lwrENK.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  204. package/dist/supergoop-22dd5_BS.js +323 -0
  205. package/dist/supergoop-B-a4cku2.cjs +323 -0
  206. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  207. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  208. package/dist/types/index.cjs +2 -2
  209. package/dist/types/index.d.cts +2 -2
  210. package/dist/types/index.d.ts +2 -2
  211. package/dist/types/index.js +2 -2
  212. package/dist/types--pr1GQQx.js +154 -0
  213. package/dist/types-BVSyY3Hk.cjs +196 -0
  214. package/dist/{uniqueVintage-BWkDgt1z.js → uniqueVintage-CJXiNNe7.js} +19 -20
  215. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  216. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  217. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  218. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  219. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  220. package/dist/utils-C9ZSCx12.js +888 -0
  221. package/dist/utils-D5HO61hG.cjs +1016 -0
  222. package/dist/variantInfo-DbVxA1yE.js +1 -0
  223. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  224. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  225. package/dist/venaCbd-CanovPS_.js +365 -0
  226. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  227. package/dist/{westonJonBoucher-BAGXegsX.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  228. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  229. package/dist/{wineEnthusiast-EJbhMeKQ.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  230. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  231. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  232. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  233. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  234. package/package.json +100 -19
  235. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  236. package/src/application/models/colorsConfig.ts +18 -18
  237. package/src/application/models/frontendConfig.ts +3 -3
  238. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  239. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  240. package/src/application/models/index.ts +0 -2
  241. package/src/application/models/localStorageEventListener.ts +2 -2
  242. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  243. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  244. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  245. package/src/application/utils/analyticsUtils.ts +53 -22
  246. package/src/application/utils/cdnUtils.ts +11 -0
  247. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  248. package/src/atoms/app/index.ts +7 -17
  249. package/src/atoms/app/variant.ts +13 -4
  250. package/src/atoms/chat/chatState.ts +28 -18
  251. package/src/atoms/chat/messageQueue.ts +36 -5
  252. package/src/atoms/chat/replies.ts +45 -37
  253. package/src/atoms/envive/enviveConfig.ts +10 -6
  254. package/src/atoms/org/graphqlConfig.ts +7 -1
  255. package/src/atoms/org/index.ts +3 -3
  256. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  257. package/src/atoms/org/orgPageConfig.ts +6 -5
  258. package/src/atoms/search/chatSearch.ts +11 -5
  259. package/src/atoms/search/searchAPI.ts +22 -12
  260. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  261. package/src/contexts/amplitudeContext.tsx +466 -0
  262. package/src/contexts/cdnContext.tsx +48 -0
  263. package/src/contexts/chatContext.tsx +15 -12
  264. package/src/contexts/enviveConfigContext.tsx +22 -17
  265. package/src/contexts/enviveCssContext.tsx +34 -5
  266. package/src/contexts/featureFlagContext.tsx +193 -0
  267. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  268. package/src/contexts/graphqlContext.tsx +165 -0
  269. package/src/contexts/index.ts +13 -3
  270. package/src/contexts/localStorageContext.tsx +159 -0
  271. package/src/contexts/newOrgConfigContext.tsx +104 -0
  272. package/src/contexts/orgConfigContext.tsx +92 -92
  273. package/src/contexts/searchContext.tsx +187 -0
  274. package/src/contexts/sessionStorageContext.tsx +80 -0
  275. package/src/contexts/shopifyUrlContext.tsx +97 -0
  276. package/src/contexts/types.ts +12 -8
  277. package/src/contexts/userIdentityContext.tsx +197 -0
  278. package/src/events/registerAnalyticsListeners.ts +32 -38
  279. package/src/hooks/index.ts +10 -4
  280. package/src/hooks/useAmplitudeOperations.ts +35 -0
  281. package/src/hooks/useAppDetails.ts +49 -0
  282. package/src/hooks/useCdnOperations.ts +16 -0
  283. package/src/hooks/useChatToggle.ts +5 -4
  284. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  285. package/src/hooks/useGraphQLConfig.ts +63 -0
  286. package/src/hooks/useIdentifyUser.ts +33 -0
  287. package/src/hooks/useImageResolver.ts +7 -7
  288. package/src/hooks/useLocalStorageOperations.ts +92 -0
  289. package/src/hooks/useNewOrgConfig.ts +3 -76
  290. package/src/hooks/useSearch.tsx +21 -18
  291. package/src/hooks/useSearchOperations.ts +97 -0
  292. package/src/hooks/useSessionStorageOperations.ts +28 -0
  293. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  294. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  295. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  296. package/src/interceptors/index.ts +0 -1
  297. package/src/interceptors/useMessageInterceptor.ts +5 -8
  298. package/src/merchants/bandolier/bandolier.ts +10 -28
  299. package/src/merchants/carpe/carpe.ts +5 -8
  300. package/src/merchants/coterie/coterie.ts +3 -6
  301. package/src/merchants/default.ts +73 -70
  302. package/src/merchants/domInsertion.ts +30 -0
  303. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  304. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  305. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  306. package/src/merchants/greenpan/greenpan.ts +6 -12
  307. package/src/merchants/gridInsertion.ts +19 -0
  308. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  309. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  310. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  311. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  312. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  313. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  314. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  315. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  316. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  317. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  318. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  319. package/src/merchants/medterra/medterra.ts +14 -11
  320. package/src/merchants/modells/modells.ts +6 -9
  321. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  322. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  323. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  324. package/src/merchants/spanx/spanx.ts +6 -6
  325. package/src/merchants/spanx/spanxStaging.ts +6 -12
  326. package/src/merchants/supergoop/supergoop.ts +11 -12
  327. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  328. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  329. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  330. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  331. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  332. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  333. package/src/types/config-versions.ts +6 -0
  334. package/src/types.ts +0 -53
  335. package/dist/adapters/amplitude/index.cjs +0 -14
  336. package/dist/adapters/amplitude/index.d.cts +0 -6
  337. package/dist/adapters/amplitude/index.d.ts +0 -6
  338. package/dist/adapters/amplitude/index.js +0 -12
  339. package/dist/api-B2euFL-5.cjs +0 -269
  340. package/dist/api-XRr_lAG6.js +0 -190
  341. package/dist/application/config/index.cjs +0 -43
  342. package/dist/application/config/index.d.cts +0 -15
  343. package/dist/application/config/index.d.ts +0 -15
  344. package/dist/application/config/index.js +0 -41
  345. package/dist/application/service/customerService/index.cjs +0 -4
  346. package/dist/application/service/customerService/index.d.cts +0 -3
  347. package/dist/application/service/customerService/index.d.ts +0 -3
  348. package/dist/application/service/customerService/index.js +0 -4
  349. package/dist/application/service/index.cjs +0 -42
  350. package/dist/application/service/index.d.cts +0 -413
  351. package/dist/application/service/index.d.ts +0 -413
  352. package/dist/application/service/index.js +0 -12
  353. package/dist/atomStore-ONYy0XuA.d.cts +0 -24
  354. package/dist/atomStore-kOKiEcNl.d.ts +0 -24
  355. package/dist/bandolier-Da4wt6sm.cjs +0 -1230
  356. package/dist/bandolier-DzEmYWcz.js +0 -1230
  357. package/dist/carpe-AXipz0Xl.cjs +0 -608
  358. package/dist/carpe-CaUKwcEa.js +0 -606
  359. package/dist/contexts-CtRlNXaS.js +0 -7674
  360. package/dist/contexts-CtgmnYNn.cjs +0 -9088
  361. package/dist/coterie-oKHAT0lx.js +0 -240
  362. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  363. package/dist/customerService-BHQRnLhC.js +0 -23
  364. package/dist/default-B4fINY5_.cjs +0 -4
  365. package/dist/default-BrTQxA0c.js +0 -4
  366. package/dist/default-C3LrcbZB.cjs +0 -199
  367. package/dist/default-CXkYrLEr.js +0 -176
  368. package/dist/dreamlandBaby-BEqt0eKF.js +0 -347
  369. package/dist/dreamlandBaby-DBDjEJCc.cjs +0 -347
  370. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  371. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  372. package/dist/fiveCbd-CdqNt16h.cjs +0 -614
  373. package/dist/fiveCbd-D6B-sgnX.js +0 -614
  374. package/dist/forLoveAndLemons-C7GsJG7f.cjs +0 -668
  375. package/dist/forLoveAndLemons-gNDlMtPR.js +0 -666
  376. package/dist/greenpan-B5AaW4M_.js +0 -398
  377. package/dist/greenpan-DrORpYms.cjs +0 -398
  378. package/dist/grooveLife-BJqsfH2H.cjs +0 -343
  379. package/dist/grooveLife-xIUmDM8s.js +0 -343
  380. package/dist/homegrownCannabis-8TZ21u6L.cjs +0 -411
  381. package/dist/homegrownCannabis-BtMuEvbZ.js +0 -411
  382. package/dist/index-CKUpnyJQ.d.ts +0 -72
  383. package/dist/index-DFL1dIT_.d.ts +0 -7
  384. package/dist/index-DXpgMVpp.d.ts +0 -749
  385. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  386. package/dist/index-VHFMGkO-.d.cts +0 -72
  387. package/dist/index-VSFakgAI.d.cts +0 -95
  388. package/dist/index-aNW5V9fh.d.cts +0 -749
  389. package/dist/index-zZjcds15.d.cts +0 -7
  390. package/dist/jackArcher-WtkbLBZj.cjs +0 -728
  391. package/dist/jordanCraig-471FcgqF.cjs +0 -1787
  392. package/dist/jordanCraig-DNOncplU.js +0 -1787
  393. package/dist/kindredBravely-BlLyHGMX.cjs +0 -491
  394. package/dist/kindredBravely-cqZ4OvXp.js +0 -491
  395. package/dist/kutFromTheKloth-3mOIryvt.cjs +0 -370
  396. package/dist/kutFromTheKloth-DtVNCMKa.js +0 -370
  397. package/dist/larryAndSerges-88Bvq-Us.cjs +0 -262
  398. package/dist/larryAndSerges-cvak6May.js +0 -262
  399. package/dist/leapsAndRebounds-Dmf8eUPq.js +0 -361
  400. package/dist/leapsAndRebounds-iWKc923H.cjs +0 -361
  401. package/dist/logger-Dln20ans.cjs +0 -26
  402. package/dist/logger-pdEEY8T2.js +0 -20
  403. package/dist/longevityrx-BTMI9vn-.js +0 -321
  404. package/dist/longevityrx-CobPyigd.cjs +0 -321
  405. package/dist/lookOptic-C4H_c0JZ.cjs +0 -283
  406. package/dist/mantraBrand-CySGqbn6.cjs +0 -751
  407. package/dist/medterra-BnZ5p27n.cjs +0 -584
  408. package/dist/medterra-DaICcPPp.js +0 -584
  409. package/dist/modells-CZ1L6dD_.js +0 -485
  410. package/dist/modells-DF0SndHr.cjs +0 -485
  411. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  412. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  413. package/dist/pressedFloral-B3t2cYzs.cjs +0 -662
  414. package/dist/pressedFloral-Dsws2Kfb.js +0 -662
  415. package/dist/skinPerfection-CILQM2bR.cjs +0 -335
  416. package/dist/skinPerfection-DmQCntRf.js +0 -335
  417. package/dist/snapSupplements--X_v0KRM.js +0 -286
  418. package/dist/snapSupplements-Djuzl0Ed.cjs +0 -286
  419. package/dist/spanx-Bo81yXSF.cjs +0 -664
  420. package/dist/spanx-DauxB8KE.js +0 -662
  421. package/dist/spanxStaging-BucYQvR1.cjs +0 -849
  422. package/dist/spanxStaging-CfXUukdP.js +0 -846
  423. package/dist/supergoop-8qa_NV3F.cjs +0 -338
  424. package/dist/supergoop-DOaui-A6.js +0 -336
  425. package/dist/types-CD4LFta-.d.cts +0 -33
  426. package/dist/types-CGC6Oozp.cjs +0 -231
  427. package/dist/types-CnTCkyvK.js +0 -177
  428. package/dist/types-DBdI0j89.d.ts +0 -33
  429. package/dist/uniqueVintage-DAne8XcL.cjs +0 -1214
  430. package/dist/variant-CC1nrywd.d.ts +0 -13
  431. package/dist/variant-CQTuQQSq.d.cts +0 -13
  432. package/dist/venaCbd-B1HO_Pkr.cjs +0 -366
  433. package/dist/venaCbd-CnByO-5R.js +0 -366
  434. package/dist/westonJonBoucher-BRfHWMbs.cjs +0 -423
  435. package/dist/wineEnthusiast-DW8JVwV8.cjs +0 -941
  436. package/dist/wolfMattress-B6INZNRJ.cjs +0 -373
  437. package/dist/wolfMattress-D9P7ErH_.js +0 -373
  438. package/dist/wolfTactical-C5Pupi3J.js +0 -350
  439. package/dist/wolfTactical-TMthZM93.cjs +0 -350
  440. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  441. package/src/adapters/amplitude/index.ts +0 -2
  442. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  443. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  444. package/src/application/config/generalStaticConfig.ts +0 -40
  445. package/src/application/config/index.ts +0 -1
  446. package/src/application/models/domMutationContinuation.ts +0 -7
  447. package/src/application/models/domObservationStrategy.ts +0 -9
  448. package/src/application/service/cachingService.ts +0 -84
  449. package/src/application/service/cdnService.ts +0 -20
  450. package/src/application/service/customerService/index.ts +0 -8
  451. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  452. package/src/application/service/domMutationObserver.ts +0 -320
  453. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  454. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  455. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  456. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  457. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  458. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  459. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  460. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  461. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  462. package/src/application/service/featureFlagService.ts +0 -130
  463. package/src/application/service/graphqlConfigService.ts +0 -59
  464. package/src/application/service/index.ts +0 -32
  465. package/src/application/service/kustomerIntegrationService.ts +0 -111
  466. package/src/application/service/localStorageService.ts +0 -77
  467. package/src/application/service/pageVariantService.ts +0 -866
  468. package/src/application/service/searchService.ts +0 -147
  469. package/src/application/service/sessionStorageService.ts +0 -27
  470. package/src/application/service/shopifyUrlService.ts +0 -63
  471. package/src/application/service/userIdentityService.ts +0 -114
  472. package/src/application/service/windowChatToggleService.ts +0 -80
  473. package/src/application/service/windowDataLayerService.ts +0 -181
  474. package/src/application/service/windowFrontendConfigService.ts +0 -129
  475. package/src/atoms/org/merchantCss.ts +0 -161
  476. package/src/atoms/org/org.ts +0 -251
  477. package/src/atoms/org/orgUIConfig.ts +0 -142
  478. package/src/enabled-features.ts +0 -83
  479. package/src/hooks/useDynamicVariants.ts +0 -226
  480. package/src/hooks/useFileUpload.ts +0 -63
  481. package/src/hooks/useHideElements.ts +0 -85
  482. package/src/interceptors/useFormEscalation.ts +0 -57
  483. /package/dist/{locators-DnKpajbY.js → atomStore-CZnUUsrr.js} +0 -0
  484. /package/dist/{locators-CugndTUM.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  485. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  486. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  487. /package/dist/{variantInfo-CzhR5W6h.js → utilityTypes-8sETsYPk.js} +0 -0
  488. /package/dist/{variantInfo-CNRTY0gH.cjs → utilityTypes-COShxVir.cjs} +0 -0
  489. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  490. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  491. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -1,129 +0,0 @@
1
- import Logger from "src/application/logging/logger";
2
- import { applyOverrides, Override } from "src/application/utils/overrides";
3
- import { getAtomStore } from "src/atoms/atomStore/atomStore";
4
- import { identifyingPrefixAtom } from "src/atoms/envive/enviveConfig";
5
- import {
6
- colorsConfigAtom,
7
- frontendConfigAtom,
8
- } from "src/atoms/org/graphqlConfig";
9
- import { orgPageConfigAtom } from "src/atoms/org/orgPageConfig";
10
- import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
11
- import {
12
- ColorMapping,
13
- OrgUIConfig,
14
- WidgetConfig,
15
- WidgetMountingConfig,
16
- } from "src/contexts/types";
17
-
18
- type CustomizableFrontendConfig = {
19
- orgUIConfig: OrgUIConfig | undefined;
20
- colorsConfig: ColorMapping;
21
- mountingConfigs: Record<string, WidgetMountingConfig>;
22
- widgetConfigs: Record<string, WidgetConfig>;
23
- };
24
- type FrontendConfigOverrides = Override<CustomizableFrontendConfig>;
25
-
26
- class WindowFrontendConfigService {
27
- private static instance: WindowFrontendConfigService | undefined;
28
-
29
- private isInitialized = false;
30
-
31
- static getSingletonInstance(): WindowFrontendConfigService {
32
- if (!this.instance) {
33
- this.instance = new WindowFrontendConfigService();
34
- }
35
- return this.instance;
36
- }
37
-
38
- init() {
39
- if (this.isInitialized) return;
40
- this.isInitialized = true;
41
-
42
- try {
43
- const atomStore = getAtomStore();
44
- const identifyingPrefix = atomStore.get(identifyingPrefixAtom);
45
- if (!window[identifyingPrefix]) {
46
- window[identifyingPrefix] = {} as Window[typeof identifyingPrefix];
47
- }
48
-
49
- // Attach an explicit apply function to be called by the host page
50
- const apply = (overrides: FrontendConfigOverrides[]) => {
51
- Logger.logDebug("[spiffy-ai] applyFrontendConfigOverrides invoked");
52
- WindowFrontendConfigService.applyOverridesToFrontendConfig(overrides);
53
- };
54
-
55
- window[identifyingPrefix].applyFrontendConfigOverrides = apply;
56
-
57
- Logger.logDebug(
58
- "[spiffy-ai] FrontendConfig overrides apply function attached"
59
- );
60
- } catch (e) {
61
- Logger.logError(
62
- "[spiffy-ai] Failed to attach FrontendConfig overrides apply function",
63
- e
64
- );
65
- }
66
- }
67
-
68
- private static async applyOverridesToFrontendConfig(
69
- overrides: FrontendConfigOverrides[]
70
- ) {
71
- const atomStore = getAtomStore();
72
- try {
73
- // Get the current frontend config(s) from the atoms once
74
- const frontendConfig = await atomStore.get(frontendConfigAtom);
75
- // Get the orgPageConfig for widgetConfigs and mountingConfigs, but don't write to it
76
- // If you use frontendConfigAtom to get the mountingConfigs and widgetConfigs,
77
- // you will get {}, which are not the full version of the mountingConfigs and widgetConfigs
78
- const orgPageConfig = await atomStore.get(orgPageConfigAtom);
79
-
80
- let currentConfig: CustomizableFrontendConfig = {
81
- orgUIConfig: atomStore.get(orgUIConfigAtom),
82
- colorsConfig: (await atomStore.get(colorsConfigAtom)) as ColorMapping,
83
- mountingConfigs: orgPageConfig.mountingConfigs,
84
- widgetConfigs: orgPageConfig.widgetConfigs,
85
- };
86
-
87
- Logger.logInfo("[spiffy-ai] base config", {
88
- baseConfig: currentConfig,
89
- });
90
-
91
- for (let i = 0; i < overrides.length; i += 1) {
92
- const currentOverride = overrides[i];
93
- currentConfig = applyOverrides<CustomizableFrontendConfig>(
94
- currentConfig,
95
- currentOverride,
96
- {
97
- arrayStrategy: "mergeByIndex",
98
- }
99
- );
100
- }
101
-
102
- // Update the atoms with the new frontend config(s)
103
- if (currentConfig.orgUIConfig) {
104
- atomStore.set(orgUIConfigAtom, currentConfig.orgUIConfig);
105
- }
106
- atomStore.set(colorsConfigAtom, currentConfig.colorsConfig);
107
- // Write to the frontendConfigAtom to update the mountingConfigs and widgetConfigs
108
- // This is the only way to update the mountingConfigs and widgetConfigs
109
- // because the orgPageConfigAtom write only updates the pageVariants
110
- atomStore.set(frontendConfigAtom, {
111
- ...frontendConfig,
112
- mountingConfigs: currentConfig.mountingConfigs,
113
- widgetConfigs: currentConfig.widgetConfigs,
114
- });
115
-
116
- Logger.logInfo("[spiffy-ai] atoms updated via overrides", {
117
- currentConfig,
118
- });
119
- } catch (e) {
120
- Logger.logError(
121
- "[spiffy-ai] Failed to apply FrontendConfig overrides",
122
- e
123
- );
124
- }
125
- }
126
- }
127
-
128
- export const initWindowFrontendConfigOverridesApplyFunction = () =>
129
- WindowFrontendConfigService.getSingletonInstance().init();
@@ -1,161 +0,0 @@
1
- import { atom } from "jotai";
2
- import { ColorNames } from "src/contexts/types";
3
- import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
4
- import {
5
- colorsConfigAtom,
6
- internalGraphQLColorsConfigAtom,
7
- } from "src/atoms/org/graphqlConfig";
8
-
9
- const tailwindStyles = `@tailwind base;
10
- @tailwind components;
11
- @tailwind utilities;
12
-
13
- @layer utilities {
14
- /* Provides a utility class to disable scroll bars */
15
- /* Chrome, Safari and Opera */
16
- .spiffy-tw-no-scrollbar::-webkit-scrollbar {
17
- display: none;
18
- }
19
-
20
- .spiffy-tw-no-scrollbar {
21
- -ms-overflow-style: none; /* IE and Edge */
22
- scrollbar-width: none; /* Firefox */
23
- }
24
-
25
- .spiffy-tw-typography-ul,
26
- .spiffy-tw-typography-ol {
27
- list-style: inherit;
28
- margin: 0;
29
- padding-left: 24px;
30
- line-height: 4px;
31
- }
32
- }
33
-
34
- /*
35
- * TODO: this needs to be re-scoped to target the application root instead
36
- * of the individual components.
37
- */
38
- #spiffy-ai-container,
39
- #spiffy-ai-chat-preview,
40
- #spiffy-ai-chat-preview-contents,
41
- #spiffy-ai-floating-button {
42
- font-family: 'Inter Variable', sans-serif;
43
- h1,
44
- h2,
45
- h3,
46
- h4,
47
- h5,
48
- h6 {
49
- font-family: Poppins, sans-serif;
50
- }
51
- }
52
-
53
- /* inter-latin-wght-normal */
54
- @font-face {
55
- font-family: 'Inter Variable';
56
- font-style: normal;
57
- font-display: swap;
58
- font-weight: 100 900;
59
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2)
60
- format('woff2-variations');
61
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
62
- U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
63
- }
64
-
65
- /* inter-latin-wght-italic */
66
- @font-face {
67
- font-family: 'Inter Variable';
68
- font-style: italic;
69
- font-display: swap;
70
- font-weight: 100 900;
71
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-italic.woff2)
72
- format('woff2-variations');
73
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
74
- U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
75
- }
76
-
77
- /* poppins-latin-400-normal */
78
- @font-face {
79
- font-family: 'Poppins';
80
- font-style: normal;
81
- font-display: swap;
82
- font-weight: 400;
83
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff2)
84
- format('woff2'),
85
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff)
86
- format('woff');
87
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
88
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
89
- U+FFFD;
90
- }
91
-
92
- /* poppins-latin-500-normal */
93
- @font-face {
94
- font-family: 'Poppins';
95
- font-style: normal;
96
- font-display: swap;
97
- font-weight: 500;
98
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff2)
99
- format('woff2'),
100
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff)
101
- format('woff');
102
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
103
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
104
- U+FFFD;
105
- }
106
-
107
- /* poppins-latin-600-normal */
108
- @font-face {
109
- font-family: 'Poppins';
110
- font-style: normal;
111
- font-display: swap;
112
- font-weight: 600;
113
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff2)
114
- format('woff2'),
115
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff)
116
- format('woff');
117
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
118
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
119
- U+FFFD;
120
- }`;
121
-
122
- export const orgMerchantCssAtom = atom(async (get) => {
123
- const orgUIConfig = get(orgUIConfigAtom);
124
- const colors = await get(internalGraphQLColorsConfigAtom);
125
- const merchantThemeCss = colors
126
- ? `
127
- ${tailwindStyles}
128
-
129
- * {
130
- --spiffy-colors-text-primary: ${colors[ColorNames.TextPrimary]};
131
- --spiffy-colors-text-secondary: ${colors[ColorNames.TextSecondary]};
132
- --spiffy-colors-text-accent: ${colors[ColorNames.TextAccent]};
133
- --spiffy-colors-text-link: ${colors[ColorNames.TextLink]};
134
- --spiffy-colors-text-light: ${colors[ColorNames.TextLight]};
135
- --spiffy-colors-background-primary: ${colors[ColorNames.BackgroundPrimary]};
136
- --spiffy-colors-background-secondary: ${
137
- colors[ColorNames.BackgroundSecondary]
138
- };
139
- --spiffy-colors-background-secondary-dark: ${
140
- colors[ColorNames.BackgroundSecondaryDark]
141
- };
142
- --spiffy-colors-background-tertiary: ${colors[ColorNames.BackgroundTertiary]};
143
- --spiffy-colors-background-dark: ${colors[ColorNames.BackgroundDark]};
144
- --spiffy-colors-background-light: ${colors[ColorNames.BackgroundLight]};
145
- --spiffy-colors-background-saturated: ${
146
- colors[ColorNames.BackgroundSaturated]
147
- };
148
- --spiffy-colors-border-light: ${colors[ColorNames.BorderLight]};
149
- --spiffy-colors-border-medium: ${colors[ColorNames.BorderMedium]};
150
- --spiffy-colors-border-dark: ${colors[ColorNames.BorderDark]};
151
- --spiffy-colors-border-outline: ${colors[ColorNames.BorderOutline]};
152
- --spiffy-colors-accent-primary: ${colors[ColorNames.AccentPrimary]};
153
- --spiffy-colors-accent-secondary: ${colors[ColorNames.AccentSecondary]};
154
- }`
155
- : `
156
- * {}`;
157
-
158
- const merchantOverrideCss = orgUIConfig?.merchantOverrideCss;
159
-
160
- return `${merchantThemeCss} ${merchantOverrideCss}`;
161
- });
@@ -1,251 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-use-before-define */
2
- import Logger from "src/application/logging/logger";
3
- import { ContextSourceEnum } from "@spiffy-ai/commerce-api-client";
4
- import { atom } from "jotai";
5
- import { atomWithStorage, createJSONStorage } from "jotai/utils";
6
- import CommerceApiClient from "src/adapters/spiffy/commerce/api";
7
- import { OrgConfig } from "src/application/models/api/orgConfigResults";
8
- import { FeatureFlagService } from "src/application/service/featureFlagService";
9
- import { UserIdentityService } from "src/application/service/userIdentityService";
10
- import { AtomStore, getAtomStore } from "src/atoms/atomStore/atomStore";
11
- import { PerfMetricsEvents, logPerfMetricAtom } from "src/atoms/chat";
12
- import { orgAnalyticsConfigAtom } from "src/atoms/org/orgAnalyticsConfig";
13
- import { colorsConfigAtom, frontendConfigAtom } from "./graphqlConfig";
14
- import { GraphQLConfigService } from "src/application/service/graphqlConfigService";
15
- import {
16
- orgLevelApiKeyAtom,
17
- orgShortNameAtom as enviveOrgShortNameAtom,
18
- contextSourceAtom,
19
- baseUrlAtom,
20
- } from "src/atoms/envive/enviveConfig";
21
-
22
- const internalApiKeyAtom = atom<string | undefined>(undefined);
23
- const internalEndpointURLAtom = atom<string | undefined>(undefined);
24
- const internalSourceAtom = atom<ContextSourceEnum | undefined>(undefined);
25
-
26
- export const getApiKeyEnvVar = (shortName: string): string =>
27
- `VITE_${shortName.replace(/-/g, "_").toUpperCase()}_API_KEY`;
28
-
29
- export const apiKeyAtom = atom(
30
- (get) => {
31
- const apiKey = get(internalApiKeyAtom);
32
-
33
- if (apiKey) {
34
- return apiKey;
35
- }
36
-
37
- const orgLevelApiKey = get(orgLevelApiKeyAtom);
38
- const orgShortName = get(enviveOrgShortNameAtom);
39
-
40
- if (orgLevelApiKey) {
41
- return orgLevelApiKey;
42
- }
43
-
44
- if (
45
- window._spiffy?.publicKey &&
46
- typeof window._spiffy.publicKey === "string"
47
- ) {
48
- return window._spiffy.publicKey;
49
- }
50
-
51
- // During initial render, orgShortName might not be set yet
52
- // Return undefined instead of throwing to allow for lazy initialization
53
- if (!orgShortName) {
54
- Logger.logWarn(
55
- "[spiffy-ai] orgShortName not yet available, returning undefined for apiKey",
56
- undefined
57
- );
58
- return undefined;
59
- }
60
-
61
- // The merchant probably forgot to set the apiKey
62
- throw new Error(`[spiffy-ai]: apiKey is missing`);
63
- },
64
- (_, set, newVal: string | undefined) => {
65
- set(internalApiKeyAtom, newVal);
66
- }
67
- );
68
-
69
- const orgConfigStorageUtil = createJSONStorage<
70
- Record<string, OrgConfig> | undefined
71
- >(() => sessionStorage);
72
- export const storedOrgConfigAtom = atomWithStorage(
73
- "spiffy-org-config",
74
- undefined,
75
- orgConfigStorageUtil,
76
- {
77
- getOnInit: true,
78
- }
79
- );
80
-
81
- const internalFeatureFlagServiceAtom = atom<FeatureFlagService | undefined>(
82
- undefined
83
- );
84
- const internalOrgConfigAtom = atom<OrgConfig | undefined>(undefined);
85
- const internalOrgDomainAtom = atom<string | undefined>(undefined);
86
- const internalOrgIdAtom = atom<string | undefined>(undefined);
87
- const internalOrgShortNameAtom = atom<string | undefined>(undefined);
88
- export const featureFlagServiceAtom = atom(
89
- (get) => {
90
- const featureFlagService = get(internalFeatureFlagServiceAtom);
91
- if (featureFlagService) {
92
- return featureFlagService;
93
- }
94
-
95
- const orgConfig = get(internalOrgConfigAtom);
96
- if (orgConfig) {
97
- return new FeatureFlagService(orgConfig.gates);
98
- }
99
-
100
- return undefined; // Return undefined instead of throwing
101
- },
102
- (_, set, value: FeatureFlagService) => {
103
- set(internalFeatureFlagServiceAtom, value);
104
- }
105
- );
106
- export const orgConfigAtom = atom(
107
- (get) => {
108
- const orgConfig = get(internalOrgConfigAtom);
109
- return orgConfig; // Return undefined if not set instead of throwing
110
- },
111
- (_, set, value: OrgConfig) => {
112
- set(internalOrgConfigAtom, value);
113
- }
114
- );
115
- export const orgShortNameAtom = atom(
116
- (get) => {
117
- const orgShortName = get(internalOrgShortNameAtom);
118
- return orgShortName; // Return undefined if not set instead of throwing
119
- },
120
- (_, set, value: string) => {
121
- set(internalOrgShortNameAtom, value);
122
- }
123
- );
124
- export const orgDomainAtom = atom(
125
- (get) => {
126
- const orgDomain = get(internalOrgDomainAtom);
127
- return orgDomain; // Return undefined if not set instead of throwing
128
- },
129
- (_, set, value: string) => {
130
- set(internalOrgDomainAtom, value);
131
- }
132
- );
133
- export const orgIdAtom = atom(
134
- (get) => {
135
- const orgId = get(internalOrgIdAtom);
136
- return orgId; // Return undefined if not set instead of throwing
137
- },
138
- (_, set, value: string) => {
139
- set(internalOrgIdAtom, value);
140
- }
141
- );
142
-
143
- export const resetStoredOrgConfigAtom = () => {
144
- const atomStore = getAtomStore();
145
- atomStore.set(storedOrgConfigAtom, {});
146
- };
147
-
148
- /**
149
- * This function is used to return an orgConfig corresponding to a given API key
150
- *
151
- * @param apiKeyOverride an optional new api key to override the current key stored in apiKeyAtom
152
- *
153
- * @returns The OrgAnalyticsConfig object or throws an error if the config was not successfully retrieved
154
- */
155
- export const getAsyncOrgConfig = async (
156
- apiKeyOverride?: string
157
- ): Promise<OrgConfig> => {
158
- const atomStore = getAtomStore();
159
- const apiKey = apiKeyOverride ?? atomStore.get(apiKeyAtom);
160
-
161
- // If apiKey is still undefined, we need to wait or throw an error
162
- if (!apiKey) {
163
- throw new Error(
164
- "[spiffy-ai] API key is required but not available. Ensure EnviveConfigProvider is properly set up with orgLevelApiKey or orgShortName."
165
- );
166
- }
167
-
168
- atomStore.set(apiKeyAtom, apiKey);
169
-
170
- atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadStarted);
171
- const maybeOrgConfigByApiKey = atomStore.get(storedOrgConfigAtom);
172
- let maybeOrgConfig = maybeOrgConfigByApiKey?.[apiKey];
173
- if (!maybeOrgConfig) {
174
- const userId = UserIdentityService.getUserIdOrDefault();
175
- maybeOrgConfig = await CommerceApiClient.getOrgConfig(userId);
176
- }
177
-
178
- if (!maybeOrgConfig) {
179
- throw new Error("[spiffy-ai] Org config is not defined but is required");
180
- }
181
-
182
- const latestConfig = maybeOrgConfig.configs?.find(
183
- (config: any) => config.isLatest
184
- );
185
-
186
- if (!latestConfig) {
187
- throw new Error("[spiffy-ai] no latest org config is found");
188
- }
189
-
190
- const orgConfig: OrgConfig = {
191
- ...maybeOrgConfig,
192
- configs: [{ ...latestConfig }],
193
- };
194
-
195
- // TODO this should never be undefined, update the SDK to enforce this
196
- if (!orgConfig.org) {
197
- throw new Error("[spiffy-ai] orgConfig.org is not defined but is required");
198
- }
199
-
200
- atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadEnded);
201
- atomStore.set(orgShortNameAtom, orgConfig.org.org.shortName);
202
- atomStore.set(orgDomainAtom, orgConfig.org.org.domain);
203
- atomStore.set(orgIdAtom, orgConfig.org.org.id);
204
- atomStore.set(storedOrgConfigAtom, {
205
- ...maybeOrgConfigByApiKey,
206
- [apiKey]: orgConfig,
207
- });
208
- atomStore.set(orgConfigAtom, orgConfig);
209
- atomStore.set(orgAnalyticsConfigAtom, {
210
- ...latestConfig.config,
211
- });
212
- atomStore.set(
213
- featureFlagServiceAtom,
214
- new FeatureFlagService(orgConfig.gates)
215
- );
216
-
217
- try {
218
- Logger.logDebug("getAsyncOrgConfig: Starting GraphQL config fetch");
219
- await GraphQLConfigService.fetchAndSetGraphQLConfig(atomStore);
220
- Logger.logDebug(
221
- "getAsyncOrgConfig: GraphQL config fetch completed successfully"
222
- );
223
-
224
- // Get the GraphQL config data that was just fetched and stored in atoms
225
- // Note: colorsConfigAtom is async, so we need to await it
226
- const colorsConfig = await atomStore.get(colorsConfigAtom);
227
- const frontendConfig = atomStore.get(frontendConfigAtom);
228
-
229
- // Merge the GraphQL config data into the orgConfig
230
- const enhancedOrgConfig = {
231
- ...orgConfig,
232
- colorsConfig,
233
- frontendConfig,
234
- };
235
-
236
- Logger.logDebug("getAsyncOrgConfig: Enhanced orgConfig with GraphQL data", {
237
- hasColorsConfig: !!colorsConfig,
238
- hasFrontendConfig: !!frontendConfig,
239
- frontendConfigKeys: frontendConfig ? Object.keys(frontendConfig) : [],
240
- });
241
-
242
- return enhancedOrgConfig;
243
- } catch (graphqlError) {
244
- Logger.logError(
245
- "getAsyncOrgConfig: GraphQL config fetch failed",
246
- graphqlError
247
- );
248
- // Don't throw here - the main org config is still valid even if GraphQL config fails
249
- return orgConfig;
250
- }
251
- };
@@ -1,142 +0,0 @@
1
- import { atom } from "jotai";
2
- import { FeatureGates, getOrgInfo } from "src/application/models";
3
- import { findCustomerServiceImpl } from "src/application/service/customerService";
4
- import { CustomerServiceIntegrationMode } from "src/application/service/customerService/types";
5
- import { featureFlagServiceAtom, orgShortNameAtom } from "src/atoms/org/org";
6
- import { OrgUIConfig } from "src/contexts/types";
7
- import { getAtomStore } from "src/atoms/atomStore/atomStore";
8
- import Logger from "src/application/logging/logger";
9
-
10
- const getCustomerServiceIntegrationMode = ({
11
- integrationMode,
12
- isNewFeatureEnabled,
13
- }: {
14
- integrationMode: CustomerServiceIntegrationMode;
15
- isNewFeatureEnabled: boolean;
16
- }): CustomerServiceIntegrationMode => {
17
- if (integrationMode !== CustomerServiceIntegrationMode.full) {
18
- return integrationMode;
19
- }
20
- // Only allow CustomerServiceIntegrationMode.full if `isNewFeatureEnabled` is also true
21
- return isNewFeatureEnabled
22
- ? integrationMode
23
- : CustomerServiceIntegrationMode.simple;
24
- };
25
-
26
- const internalOrgUIConfigAtom = atom<OrgUIConfig | undefined>(undefined);
27
-
28
- export const orgUIConfigAtom = atom(
29
- (get) => {
30
- const orgUIConfig = get(internalOrgUIConfigAtom);
31
- return orgUIConfig; // Return undefined if not set instead of throwing
32
- },
33
- (_, set, value: OrgUIConfig) => {
34
- set(internalOrgUIConfigAtom, value);
35
- }
36
- );
37
-
38
- export const getOrgUIConfig = async (
39
- graphqlOrgUIConfig?: Omit<OrgUIConfig, "merchantOverrideCss">,
40
- graphqlMerchantOverrideCss?: string
41
- ) => {
42
- const atomStore = getAtomStore();
43
- const orgShortName = atomStore.get(orgShortNameAtom);
44
- if (!orgShortName) {
45
- Logger.logWarn("orgShortName is undefined, cannot get org info", undefined);
46
- return;
47
- }
48
-
49
- const orgInfo = await getOrgInfo(orgShortName);
50
-
51
- const featureFlagService = atomStore.get(featureFlagServiceAtom);
52
- if (!featureFlagService) {
53
- Logger.logWarn(
54
- "featureFlagService is undefined, cannot get feature flags",
55
- undefined
56
- );
57
- return;
58
- }
59
-
60
- const isNewFeatureEnabled = featureFlagService.isFeatureGateEnabled(
61
- FeatureGates.IsNewFeatureEnabled
62
- );
63
- const enableWatermark = featureFlagService.isFeatureGateEnabled(
64
- FeatureGates.IsWatermarkEnabled
65
- );
66
- const userQueryAwaysEnabled = featureFlagService.isFeatureGateEnabled(
67
- FeatureGates.IsUserQueryAlwaysEnabled
68
- );
69
- const isGraphQLUIConfigsEnabled = featureFlagService.isFeatureGateEnabled(
70
- FeatureGates.IsGraphQLUIConfigsEnabled
71
- );
72
- const isGraphQLComponentConfigsEnabled =
73
- featureFlagService.isFeatureGateEnabled(
74
- FeatureGates.IsGraphQLComponentConfigsEnabled
75
- );
76
-
77
- const localOrgUIConfig = orgInfo.orgUIConfig();
78
- let orgUIConfig: Partial<OrgUIConfig> = { ...localOrgUIConfig };
79
-
80
- if (isGraphQLUIConfigsEnabled && graphqlMerchantOverrideCss) {
81
- orgUIConfig = {
82
- ...orgUIConfig,
83
- merchantOverrideCss: graphqlMerchantOverrideCss,
84
- };
85
- }
86
-
87
- if (isGraphQLComponentConfigsEnabled && graphqlOrgUIConfig) {
88
- orgUIConfig = {
89
- ...orgUIConfig,
90
- ...graphqlOrgUIConfig,
91
- };
92
- }
93
-
94
- Logger.logInfo("[spiffy-ai] Feature gate enableWatermark check", {
95
- enableWatermark,
96
- floatingChatConfig: orgUIConfig.floatingChatConfig,
97
- });
98
-
99
- const updatedOrgUIConfig: OrgUIConfig = {
100
- ...orgUIConfig,
101
- conversationalSearch: orgUIConfig.conversationalSearch
102
- ? {
103
- ...orgUIConfig.conversationalSearch,
104
- enabled: isNewFeatureEnabled,
105
- }
106
- : undefined,
107
- customerServiceIntegration: {
108
- ...orgUIConfig.customerServiceIntegration,
109
- integrationMode: getCustomerServiceIntegrationMode({
110
- isNewFeatureEnabled,
111
- integrationMode:
112
- orgUIConfig.customerServiceIntegration?.integrationMode ??
113
- CustomerServiceIntegrationMode.none,
114
- }),
115
- },
116
- floatingChatConfig: {
117
- ...orgUIConfig.floatingChatConfig,
118
- // Only enable the watermark if it is enabled in config and through featureFlag.
119
- // This enables a quick "off-switch" in case a merchant tells us to turn it off
120
- // quickly. This can be removed once the config is moved to the backend
121
- enableWatermark:
122
- orgUIConfig.floatingChatConfig?.enableWatermark && enableWatermark,
123
- userQueryInputEnabled:
124
- orgUIConfig.floatingChatConfig?.userQueryInputEnabled ||
125
- userQueryAwaysEnabled,
126
- },
127
- } as OrgUIConfig;
128
-
129
- atomStore.set(orgUIConfigAtom, updatedOrgUIConfig);
130
- };
131
-
132
- export const orgCustomerServiceConfig = atom(
133
- (get) => get(orgUIConfigAtom)?.customerServiceIntegration
134
- );
135
-
136
- export const orgCustomerServiceService = atom((get) => {
137
- const config = get(orgCustomerServiceConfig);
138
- if (!config?.provider) {
139
- return undefined;
140
- }
141
- return findCustomerServiceImpl(config.provider);
142
- });