@envive-ai/react-hooks 0.1.4 → 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 (488) 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 +17 -13
  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 +1 -1
  41. package/dist/atoms/atomStore/index.js +2 -1
  42. package/dist/atoms/chat/index.cjs +44 -40
  43. package/dist/atoms/chat/index.d.cts +35 -36
  44. package/dist/atoms/chat/index.d.ts +35 -36
  45. package/dist/atoms/chat/index.js +14 -10
  46. package/dist/atoms/globalSearch/index.cjs +1 -1
  47. package/dist/atoms/globalSearch/index.d.cts +5 -5
  48. package/dist/atoms/globalSearch/index.d.ts +5 -5
  49. package/dist/atoms/globalSearch/index.js +1 -1
  50. package/dist/atoms/org/index.cjs +26 -37
  51. package/dist/atoms/org/index.d.cts +37 -47
  52. package/dist/atoms/org/index.d.ts +37 -47
  53. package/dist/atoms/org/index.js +11 -11
  54. package/dist/atoms/search/index.cjs +47 -41
  55. package/dist/atoms/search/index.d.cts +7 -9
  56. package/dist/atoms/search/index.d.ts +7 -9
  57. package/dist/atoms/search/index.js +16 -10
  58. package/dist/bandolier-DYEz4-8C.js +1229 -0
  59. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  60. package/dist/carpe-CsG5jCcl.cjs +607 -0
  61. package/dist/carpe-DONk00bZ.js +605 -0
  62. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  63. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  64. package/dist/{chat-BgONoYU7.cjs → chat-BubCW1as.cjs} +1 -1
  65. package/dist/chat-CO7cRkaq.cjs +506 -0
  66. package/dist/{chat-CLJ4NWcN.js → chat-CV6MXeID.js} +1 -1
  67. package/dist/chat-hcRc4RRd.js +285 -0
  68. package/dist/{components-CV1fhAkj.js → components-B4T3Uzth.js} +1 -1
  69. package/dist/{components-BKZbet67.cjs → components-Cw9WjA6g.cjs} +1 -1
  70. package/dist/config/locators/components/chat/index.cjs +1 -1
  71. package/dist/config/locators/components/chat/index.d.cts +1 -1
  72. package/dist/config/locators/components/chat/index.d.ts +1 -1
  73. package/dist/config/locators/components/chat/index.js +1 -1
  74. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  75. package/dist/config/locators/components/index.cjs +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/index.js +1 -1
  79. package/dist/config/locators/index.cjs +4 -4
  80. package/dist/config/locators/index.d.cts +2 -2
  81. package/dist/config/locators/index.d.ts +3 -3
  82. package/dist/config/locators/index.js +4 -4
  83. package/dist/contexts/index.cjs +45 -14
  84. package/dist/contexts/index.d.cts +10 -78
  85. package/dist/contexts/index.d.ts +10 -78
  86. package/dist/contexts/index.js +22 -11
  87. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  88. package/dist/contexts-DGlr7M1o.js +2596 -0
  89. package/dist/coterie-CKB93qfz.cjs +239 -0
  90. package/dist/{coterie-yQ-_JXSw.cjs → coterie-DHcj2fRE.js} +64 -65
  91. package/dist/{custservice-types-C83itZmy.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  92. package/dist/{custservice-types-DPQ-4TI6.js → custservice-types-mnIunabv.js} +1 -1
  93. package/dist/default-BnB4p0Se.cjs +234 -0
  94. package/dist/default-D6f5Dyt7.js +199 -0
  95. package/dist/default-ZKkE5zT4.cjs +4 -0
  96. package/dist/default-legGZJwI.js +4 -0
  97. package/dist/{divIds-DEL_-qU0.cjs → divIds-2dJlU3z8.cjs} +1 -15
  98. package/dist/{divIds-CWkntTsx.js → divIds-BUrN2vY-.js} +2 -4
  99. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  100. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  101. package/dist/{embedded-C5uJqmuD.js → embedded-BJLWIriJ.js} +1 -1
  102. package/dist/{embedded--2L0F4b5.cjs → embedded-Dl79TJLC.cjs} +1 -1
  103. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  104. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  105. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  106. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  107. package/dist/events/index.cjs +1 -1
  108. package/dist/events/index.d.cts +1 -1
  109. package/dist/events/index.js +1 -1
  110. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  111. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  112. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  113. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  114. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  115. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  116. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  117. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  118. package/dist/graphql-BNW60InJ.cjs +128 -0
  119. package/dist/graphql-CjB8wHzm.js +74 -0
  120. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  121. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  122. package/dist/greenpan-B_EbPkSP.js +397 -0
  123. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  124. package/dist/grooveLife-Ckuir319.js +342 -0
  125. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  126. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  127. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  128. package/dist/hooks/index.cjs +40 -16
  129. package/dist/hooks/index.d.cts +122 -95
  130. package/dist/hooks/index.d.ts +122 -95
  131. package/dist/hooks/index.js +22 -11
  132. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  133. package/dist/{index-jBATkcc_.d.cts → index-BDPWBU3h.d.cts} +1 -1
  134. package/dist/index-BMPtlgac.d.ts +191 -0
  135. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  136. package/dist/{index-C62lPpy4.d.cts → index-Byb45OPg.d.cts} +1 -1
  137. package/dist/{index-DPx8s5YH.d.ts → index-C6KdON7d.d.ts} +1 -1
  138. package/dist/index-C7pGDl1A.d.ts +1609 -0
  139. package/dist/{index-CYtsPztZ.d.cts → index-C9lgsCWp.d.cts} +32 -32
  140. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  141. package/dist/{index-C_C0tLeD.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  142. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  143. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  144. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  145. package/dist/{index-CExtydIH.d.ts → index-DOii3C6b.d.ts} +1 -1
  146. package/dist/index-DTu2X-YS.d.cts +1609 -0
  147. package/dist/index-OEifcBsm.d.cts +191 -0
  148. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  149. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  150. package/dist/interceptors/index.cjs +2 -12
  151. package/dist/interceptors/index.d.cts +8 -13
  152. package/dist/interceptors/index.d.ts +8 -13
  153. package/dist/interceptors/index.js +2 -11
  154. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  155. package/dist/{jackArcher-CXf_IAmC.js → jackArcher-BwkWGybC.js} +24 -25
  156. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  157. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  158. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  159. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  160. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  161. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  162. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  163. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  164. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  165. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  166. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  167. package/dist/longevityrx-DfPDfvAt.js +320 -0
  168. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  169. package/dist/{lookOptic-BGhU4910.js → lookOptic-FgVW1afF.js} +19 -20
  170. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  171. package/dist/{mantraBrand-DrqG9uqO.js → mantraBrand-uV8HCDR8.js} +22 -23
  172. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  173. package/dist/medterra-DgzE7-mj.js +583 -0
  174. package/dist/modells-CJjsxOIR.js +484 -0
  175. package/dist/modells-Ck5KbRFj.cjs +484 -0
  176. package/dist/models-BkXg5eIP.cjs +1534 -0
  177. package/dist/models-UZ6HszfZ.js +1281 -0
  178. package/dist/{nodeSelector-BiCDowlK.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  179. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  180. package/dist/org-C2RrBVQR.cjs +81 -0
  181. package/dist/org-xMytX--e.js +38 -0
  182. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  183. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  184. package/dist/pressedFloral-Bteoboms.js +661 -0
  185. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  186. package/dist/search-BMOAmrmY.js +459 -0
  187. package/dist/search-Df0Ifneg.cjs +672 -0
  188. package/dist/{search-filter-types-BNTLVXqQ.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  189. package/dist/{search-filter-types-DkmH1TxJ.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  190. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  191. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  192. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  193. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  194. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  195. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  196. package/dist/spanx-B4WFA_rI.js +661 -0
  197. package/dist/spanx-BWoE4F8b.cjs +663 -0
  198. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  199. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  200. package/dist/{suggestionBarV2-types-CwOXzIKq.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  201. package/dist/{suggestionBarV2-types-Dc4-zJlV.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  202. package/dist/supergoop-22dd5_BS.js +323 -0
  203. package/dist/supergoop-B-a4cku2.cjs +323 -0
  204. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  205. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  206. package/dist/types/index.cjs +2 -2
  207. package/dist/types/index.d.cts +2 -2
  208. package/dist/types/index.d.ts +2 -2
  209. package/dist/types/index.js +2 -2
  210. package/dist/types--pr1GQQx.js +154 -0
  211. package/dist/types-BVSyY3Hk.cjs +196 -0
  212. package/dist/{uniqueVintage-Cui74mlJ.js → uniqueVintage-CJXiNNe7.js} +19 -20
  213. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  214. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  215. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  216. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  217. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  218. package/dist/utils-C9ZSCx12.js +888 -0
  219. package/dist/utils-D5HO61hG.cjs +1016 -0
  220. package/dist/variantInfo-DbVxA1yE.js +1 -0
  221. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  222. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  223. package/dist/venaCbd-CanovPS_.js +365 -0
  224. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  225. package/dist/{westonJonBoucher-C95EuCl-.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  226. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  227. package/dist/{wineEnthusiast-DeTFY8Gm.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  228. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  229. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  230. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  231. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  232. package/package.json +101 -19
  233. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  234. package/src/application/models/colorsConfig.ts +18 -18
  235. package/src/application/models/frontendConfig.ts +3 -3
  236. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  237. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  238. package/src/application/models/index.ts +0 -2
  239. package/src/application/models/localStorageEventListener.ts +2 -2
  240. package/src/application/models/supportedOrgs.ts +1 -1
  241. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  242. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  243. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  244. package/src/application/utils/analyticsUtils.ts +53 -22
  245. package/src/application/utils/cdnUtils.ts +11 -0
  246. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  247. package/src/atoms/app/index.ts +7 -17
  248. package/src/atoms/app/variant.ts +13 -4
  249. package/src/atoms/chat/chatState.ts +28 -18
  250. package/src/atoms/chat/messageQueue.ts +36 -5
  251. package/src/atoms/chat/replies.ts +45 -37
  252. package/src/atoms/envive/enviveConfig.ts +10 -6
  253. package/src/atoms/org/graphqlConfig.ts +21 -4
  254. package/src/atoms/org/index.ts +7 -7
  255. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  256. package/src/atoms/org/orgPageConfig.ts +6 -5
  257. package/src/atoms/search/chatSearch.ts +11 -5
  258. package/src/atoms/search/searchAPI.ts +68 -48
  259. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  260. package/src/contexts/amplitudeContext.tsx +466 -0
  261. package/src/contexts/cdnContext.tsx +48 -0
  262. package/src/contexts/chatContext.tsx +15 -12
  263. package/src/contexts/enviveConfigContext.tsx +22 -17
  264. package/src/contexts/enviveCssContext.tsx +34 -5
  265. package/src/contexts/featureFlagContext.tsx +193 -0
  266. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  267. package/src/contexts/graphqlContext.tsx +165 -0
  268. package/src/contexts/index.ts +13 -3
  269. package/src/contexts/localStorageContext.tsx +159 -0
  270. package/src/contexts/newOrgConfigContext.tsx +104 -0
  271. package/src/contexts/orgConfigContext.tsx +92 -92
  272. package/src/contexts/searchContext.tsx +187 -0
  273. package/src/contexts/sessionStorageContext.tsx +80 -0
  274. package/src/contexts/shopifyUrlContext.tsx +97 -0
  275. package/src/contexts/types.ts +12 -8
  276. package/src/contexts/userIdentityContext.tsx +197 -0
  277. package/src/events/registerAnalyticsListeners.ts +32 -38
  278. package/src/hooks/index.ts +10 -6
  279. package/src/hooks/useAmplitudeOperations.ts +35 -0
  280. package/src/hooks/useAppDetails.ts +49 -0
  281. package/src/hooks/useCdnOperations.ts +16 -0
  282. package/src/hooks/useChatToggle.ts +5 -4
  283. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  284. package/src/hooks/useGraphQLConfig.ts +63 -0
  285. package/src/hooks/useIdentifyUser.ts +33 -0
  286. package/src/hooks/useImageResolver.ts +18 -10
  287. package/src/hooks/useLocalStorageOperations.ts +92 -0
  288. package/src/hooks/useNewOrgConfig.ts +7 -0
  289. package/src/hooks/useSearch.tsx +21 -18
  290. package/src/hooks/useSearchOperations.ts +97 -0
  291. package/src/hooks/useSessionStorageOperations.ts +28 -0
  292. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  293. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  294. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  295. package/src/interceptors/index.ts +0 -1
  296. package/src/interceptors/useMessageInterceptor.ts +5 -8
  297. package/src/merchants/bandolier/bandolier.ts +10 -28
  298. package/src/merchants/carpe/carpe.ts +5 -8
  299. package/src/merchants/coterie/coterie.ts +3 -6
  300. package/src/merchants/default.ts +73 -70
  301. package/src/merchants/domInsertion.ts +30 -0
  302. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  303. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  304. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  305. package/src/merchants/greenpan/greenpan.ts +6 -12
  306. package/src/merchants/gridInsertion.ts +19 -0
  307. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  308. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  309. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  310. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  311. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  312. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  313. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  314. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  315. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  316. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  317. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  318. package/src/merchants/medterra/medterra.ts +14 -11
  319. package/src/merchants/modells/modells.ts +6 -9
  320. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  321. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  322. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  323. package/src/merchants/spanx/spanx.ts +6 -6
  324. package/src/merchants/spanx/spanxStaging.ts +6 -12
  325. package/src/merchants/supergoop/supergoop.ts +11 -12
  326. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  327. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  328. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  329. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  330. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  331. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  332. package/src/types/config-versions.ts +6 -0
  333. package/src/types.ts +0 -53
  334. package/dist/adapters/amplitude/index.cjs +0 -14
  335. package/dist/adapters/amplitude/index.d.cts +0 -6
  336. package/dist/adapters/amplitude/index.d.ts +0 -6
  337. package/dist/adapters/amplitude/index.js +0 -12
  338. package/dist/api-B2euFL-5.cjs +0 -269
  339. package/dist/api-XRr_lAG6.js +0 -190
  340. package/dist/application/config/index.cjs +0 -43
  341. package/dist/application/config/index.d.cts +0 -15
  342. package/dist/application/config/index.d.ts +0 -15
  343. package/dist/application/config/index.js +0 -41
  344. package/dist/application/service/customerService/index.cjs +0 -4
  345. package/dist/application/service/customerService/index.d.cts +0 -3
  346. package/dist/application/service/customerService/index.d.ts +0 -3
  347. package/dist/application/service/customerService/index.js +0 -4
  348. package/dist/application/service/index.cjs +0 -41
  349. package/dist/application/service/index.d.cts +0 -399
  350. package/dist/application/service/index.d.ts +0 -399
  351. package/dist/application/service/index.js +0 -12
  352. package/dist/bandolier-B76-OE75.cjs +0 -1230
  353. package/dist/bandolier-DRn_x1g1.js +0 -1230
  354. package/dist/carpe-kHi4RLB5.cjs +0 -608
  355. package/dist/carpe-qrSU99gq.js +0 -606
  356. package/dist/contexts-CQDwe3rK.cjs +0 -14333
  357. package/dist/contexts-e2sM-B9g.js +0 -12919
  358. package/dist/coterie-mMirPcHP.js +0 -240
  359. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  360. package/dist/customerService-BHQRnLhC.js +0 -23
  361. package/dist/default-8Jfv8ehQ.cjs +0 -199
  362. package/dist/default-C8PQf-38.js +0 -176
  363. package/dist/default-LukSiCz1.js +0 -4
  364. package/dist/default-rJSJ887P.cjs +0 -4
  365. package/dist/dreamlandBaby-DHltv12Z.cjs +0 -347
  366. package/dist/dreamlandBaby-cG0HM9bt.js +0 -347
  367. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  368. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  369. package/dist/fiveCbd-Cvnwh03g.cjs +0 -614
  370. package/dist/fiveCbd-DhYMlsf9.js +0 -614
  371. package/dist/forLoveAndLemons-C8DuUexW.js +0 -666
  372. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +0 -668
  373. package/dist/greenpan-B4Pu65kV.js +0 -398
  374. package/dist/greenpan-BL5p6j7f.cjs +0 -398
  375. package/dist/grooveLife-DjKWHoN3.cjs +0 -343
  376. package/dist/grooveLife-JK0TyaPz.js +0 -343
  377. package/dist/homegrownCannabis-DxqSDkmS.js +0 -411
  378. package/dist/homegrownCannabis-ZnfCqW-m.cjs +0 -411
  379. package/dist/index-BfuO9b0Q.d.ts +0 -749
  380. package/dist/index-CNsGWfS6.d.cts +0 -749
  381. package/dist/index-DFL1dIT_.d.ts +0 -7
  382. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  383. package/dist/index-VSFakgAI.d.cts +0 -95
  384. package/dist/index-zZjcds15.d.cts +0 -7
  385. package/dist/jackArcher-mGkojXek.cjs +0 -728
  386. package/dist/jordanCraig-BvCvPRoR.js +0 -1787
  387. package/dist/jordanCraig-Dv8pVCiS.cjs +0 -1787
  388. package/dist/kindredBravely-UQP7wiNu.cjs +0 -491
  389. package/dist/kindredBravely-X8F_LNph.js +0 -491
  390. package/dist/kutFromTheKloth-BhYKk3CN.cjs +0 -370
  391. package/dist/kutFromTheKloth-D1xsTSJr.js +0 -370
  392. package/dist/larryAndSerges-1411NuZa.cjs +0 -262
  393. package/dist/larryAndSerges-DVIRLItu.js +0 -262
  394. package/dist/leapsAndRebounds-BJ8mwr33.js +0 -361
  395. package/dist/leapsAndRebounds-UcP9EJVO.cjs +0 -361
  396. package/dist/logger-Dln20ans.cjs +0 -26
  397. package/dist/logger-pdEEY8T2.js +0 -20
  398. package/dist/longevityrx-BFSv9GF5.cjs +0 -321
  399. package/dist/longevityrx-Cp6wleWr.js +0 -321
  400. package/dist/lookOptic-KieSqskd.cjs +0 -283
  401. package/dist/mantraBrand-CHQw-0nw.cjs +0 -751
  402. package/dist/medterra-CLG6Co1C.cjs +0 -584
  403. package/dist/medterra-D8ZX9NZC.js +0 -584
  404. package/dist/modells-BzyPwN2m.cjs +0 -485
  405. package/dist/modells-CAfqOCW4.js +0 -485
  406. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  407. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  408. package/dist/pressedFloral-DULBuQwR.cjs +0 -662
  409. package/dist/pressedFloral-Dp-7Fk3S.js +0 -662
  410. package/dist/skinPerfection-BxuYCeJX.js +0 -335
  411. package/dist/skinPerfection-Cd3XZ6By.cjs +0 -335
  412. package/dist/snapSupplements-Bf6htPM0.js +0 -286
  413. package/dist/snapSupplements-ZFnXyMuZ.cjs +0 -286
  414. package/dist/spanx-CwDPQaGj.js +0 -662
  415. package/dist/spanx-Cyd4qDlK.cjs +0 -664
  416. package/dist/spanxStaging-D43nyAGy.js +0 -846
  417. package/dist/spanxStaging-ijbYnHzr.cjs +0 -849
  418. package/dist/supergoop-BnbFG7hm.cjs +0 -338
  419. package/dist/supergoop-CY043wIg.js +0 -336
  420. package/dist/types-BF_CJeck.js +0 -177
  421. package/dist/types-CD4LFta-.d.cts +0 -33
  422. package/dist/types-CNH4sfF-.cjs +0 -231
  423. package/dist/types-DBdI0j89.d.ts +0 -33
  424. package/dist/uniqueVintage-R2Jcu1y1.cjs +0 -1214
  425. package/dist/variant-CKVRF2-W.d.ts +0 -13
  426. package/dist/variant-raYuOP4L.d.cts +0 -13
  427. package/dist/venaCbd-o5_vOp4e.js +0 -366
  428. package/dist/venaCbd-r-IxEVc1.cjs +0 -366
  429. package/dist/westonJonBoucher-DjGEW3ZB.cjs +0 -423
  430. package/dist/wineEnthusiast-DvfcV5B3.cjs +0 -941
  431. package/dist/wolfMattress-6xPfOJt3.js +0 -373
  432. package/dist/wolfMattress-BjGnGKjP.cjs +0 -373
  433. package/dist/wolfTactical-Bi3WZu0m.cjs +0 -350
  434. package/dist/wolfTactical-C_F9-oPX.js +0 -350
  435. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  436. package/src/adapters/amplitude/index.ts +0 -2
  437. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  438. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  439. package/src/application/config/generalStaticConfig.ts +0 -40
  440. package/src/application/config/index.ts +0 -1
  441. package/src/application/models/domMutationContinuation.ts +0 -7
  442. package/src/application/models/domObservationStrategy.ts +0 -9
  443. package/src/application/service/cachingService.ts +0 -84
  444. package/src/application/service/cdnService.ts +0 -20
  445. package/src/application/service/customerService/index.ts +0 -8
  446. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  447. package/src/application/service/domMutationObserver.ts +0 -320
  448. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  449. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  450. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  451. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  452. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  453. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  454. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  455. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  456. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  457. package/src/application/service/featureFlagService.ts +0 -130
  458. package/src/application/service/index.ts +0 -31
  459. package/src/application/service/kustomerIntegrationService.ts +0 -111
  460. package/src/application/service/localStorageService.ts +0 -77
  461. package/src/application/service/pageVariantService.ts +0 -866
  462. package/src/application/service/searchService.ts +0 -147
  463. package/src/application/service/sessionStorageService.ts +0 -27
  464. package/src/application/service/shopifyUrlService.ts +0 -63
  465. package/src/application/service/userIdentityService.ts +0 -114
  466. package/src/application/service/windowChatToggleService.ts +0 -80
  467. package/src/application/service/windowDataLayerService.ts +0 -181
  468. package/src/application/service/windowFrontendConfigService.ts +0 -129
  469. package/src/atoms/org/merchantCss.ts +0 -158
  470. package/src/atoms/org/org.ts +0 -291
  471. package/src/atoms/org/orgUIConfig.ts +0 -142
  472. package/src/enabled-features.ts +0 -83
  473. package/src/hooks/useDynamicVariants.ts +0 -210
  474. package/src/hooks/useFileUpload.ts +0 -63
  475. package/src/hooks/useHideElements.ts +0 -82
  476. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  477. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  478. package/src/hooks/useSnapControl.ts +0 -155
  479. package/src/interceptors/useFormEscalation.ts +0 -57
  480. /package/dist/{variantInfo-CzhR5W6h.js → atomStore-CZnUUsrr.js} +0 -0
  481. /package/dist/{variantInfo-CNRTY0gH.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  482. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  483. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  484. /package/dist/{locators-Dc5ZT0aF.js → utilityTypes-8sETsYPk.js} +0 -0
  485. /package/dist/{locators-lQMJj830.cjs → utilityTypes-COShxVir.cjs} +0 -0
  486. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  487. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  488. /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,158 +0,0 @@
1
- import { atom } from "jotai";
2
- import { ColorNames } from "src/contexts/types";
3
- import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
4
- import { colorsConfigAtom } from "src/atoms/org/graphqlConfig";
5
-
6
- const tailwindStyles = `@tailwind base;
7
- @tailwind components;
8
- @tailwind utilities;
9
-
10
- @layer utilities {
11
- /* Provides a utility class to disable scroll bars */
12
- /* Chrome, Safari and Opera */
13
- .spiffy-tw-no-scrollbar::-webkit-scrollbar {
14
- display: none;
15
- }
16
-
17
- .spiffy-tw-no-scrollbar {
18
- -ms-overflow-style: none; /* IE and Edge */
19
- scrollbar-width: none; /* Firefox */
20
- }
21
-
22
- .spiffy-tw-typography-ul,
23
- .spiffy-tw-typography-ol {
24
- list-style: inherit;
25
- margin: 0;
26
- padding-left: 24px;
27
- line-height: 4px;
28
- }
29
- }
30
-
31
- /*
32
- * TODO: this needs to be re-scoped to target the application root instead
33
- * of the individual components.
34
- */
35
- #spiffy-ai-container,
36
- #spiffy-ai-chat-preview,
37
- #spiffy-ai-chat-preview-contents,
38
- #spiffy-ai-floating-button {
39
- font-family: 'Inter Variable', sans-serif;
40
- h1,
41
- h2,
42
- h3,
43
- h4,
44
- h5,
45
- h6 {
46
- font-family: Poppins, sans-serif;
47
- }
48
- }
49
-
50
- /* inter-latin-wght-normal */
51
- @font-face {
52
- font-family: 'Inter Variable';
53
- font-style: normal;
54
- font-display: swap;
55
- font-weight: 100 900;
56
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2)
57
- format('woff2-variations');
58
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
59
- U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
60
- }
61
-
62
- /* inter-latin-wght-italic */
63
- @font-face {
64
- font-family: 'Inter Variable';
65
- font-style: italic;
66
- font-display: swap;
67
- font-weight: 100 900;
68
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-italic.woff2)
69
- format('woff2-variations');
70
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
71
- U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
72
- }
73
-
74
- /* poppins-latin-400-normal */
75
- @font-face {
76
- font-family: 'Poppins';
77
- font-style: normal;
78
- font-display: swap;
79
- font-weight: 400;
80
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff2)
81
- format('woff2'),
82
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff)
83
- format('woff');
84
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
85
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
86
- U+FFFD;
87
- }
88
-
89
- /* poppins-latin-500-normal */
90
- @font-face {
91
- font-family: 'Poppins';
92
- font-style: normal;
93
- font-display: swap;
94
- font-weight: 500;
95
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff2)
96
- format('woff2'),
97
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff)
98
- format('woff');
99
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
100
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
101
- U+FFFD;
102
- }
103
-
104
- /* poppins-latin-600-normal */
105
- @font-face {
106
- font-family: 'Poppins';
107
- font-style: normal;
108
- font-display: swap;
109
- font-weight: 600;
110
- src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff2)
111
- format('woff2'),
112
- url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff)
113
- format('woff');
114
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
115
- U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
116
- U+FFFD;
117
- }`;
118
-
119
- export const orgMerchantCssAtom = atom(async (get) => {
120
- const orgUIConfig = get(orgUIConfigAtom);
121
- const colors = await get(colorsConfigAtom);
122
- const merchantThemeCss = colors
123
- ? `
124
- ${tailwindStyles}
125
-
126
- * {
127
- --spiffy-colors-text-primary: ${colors[ColorNames.TextPrimary]};
128
- --spiffy-colors-text-secondary: ${colors[ColorNames.TextSecondary]};
129
- --spiffy-colors-text-accent: ${colors[ColorNames.TextAccent]};
130
- --spiffy-colors-text-link: ${colors[ColorNames.TextLink]};
131
- --spiffy-colors-text-light: ${colors[ColorNames.TextLight]};
132
- --spiffy-colors-background-primary: ${colors[ColorNames.BackgroundPrimary]};
133
- --spiffy-colors-background-secondary: ${
134
- colors[ColorNames.BackgroundSecondary]
135
- };
136
- --spiffy-colors-background-secondary-dark: ${
137
- colors[ColorNames.BackgroundSecondaryDark]
138
- };
139
- --spiffy-colors-background-tertiary: ${colors[ColorNames.BackgroundTertiary]};
140
- --spiffy-colors-background-dark: ${colors[ColorNames.BackgroundDark]};
141
- --spiffy-colors-background-light: ${colors[ColorNames.BackgroundLight]};
142
- --spiffy-colors-background-saturated: ${
143
- colors[ColorNames.BackgroundSaturated]
144
- };
145
- --spiffy-colors-border-light: ${colors[ColorNames.BorderLight]};
146
- --spiffy-colors-border-medium: ${colors[ColorNames.BorderMedium]};
147
- --spiffy-colors-border-dark: ${colors[ColorNames.BorderDark]};
148
- --spiffy-colors-border-outline: ${colors[ColorNames.BorderOutline]};
149
- --spiffy-colors-accent-primary: ${colors[ColorNames.AccentPrimary]};
150
- --spiffy-colors-accent-secondary: ${colors[ColorNames.AccentSecondary]};
151
- }`
152
- : `
153
- * {}`;
154
-
155
- const merchantOverrideCss = orgUIConfig?.merchantOverrideCss;
156
-
157
- return `${merchantThemeCss} ${merchantOverrideCss}`;
158
- });
@@ -1,291 +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 { GraphQLClient } from "src/adapters/spiffy/commerce/graphql";
8
- import { OrgConfig } from "src/application/models/api/orgConfigResults";
9
- import { FeatureFlagService } from "src/application/service/featureFlagService";
10
- import { UserIdentityService } from "src/application/service/userIdentityService";
11
- import { AtomStore, getAtomStore } from "src/atoms/atomStore/atomStore";
12
- import { PerfMetricsEvents, logPerfMetricAtom } from "src/atoms/chat";
13
- import { orgAnalyticsConfigAtom } from "src/atoms/org/orgAnalyticsConfig";
14
- import { colorsConfigAtom, frontendConfigAtom } from "./graphqlConfig";
15
- import { getOrgUIConfig } from "./orgUIConfig";
16
- import {
17
- orgLevelApiKeyAtom,
18
- orgShortNameAtom as enviveOrgShortNameAtom,
19
- contextSourceAtom,
20
- baseUrlAtom,
21
- } from "src/atoms/envive/enviveConfig";
22
-
23
- const internalApiKeyAtom = atom<string | undefined>(undefined);
24
- const internalEndpointURLAtom = atom<string | undefined>(undefined);
25
- const internalSourceAtom = atom<ContextSourceEnum | undefined>(undefined);
26
-
27
- export const getApiKeyEnvVar = (shortName: string): string =>
28
- `VITE_${shortName.replace(/-/g, "_").toUpperCase()}_API_KEY`;
29
-
30
- export const apiKeyAtom = atom(
31
- (get) => {
32
- const apiKey = get(internalApiKeyAtom);
33
-
34
- if (apiKey) {
35
- return apiKey;
36
- }
37
-
38
- const orgLevelApiKey = get(orgLevelApiKeyAtom);
39
- const orgShortName = get(enviveOrgShortNameAtom);
40
-
41
- if (orgLevelApiKey) {
42
- return orgLevelApiKey;
43
- }
44
-
45
- if (
46
- window._spiffy?.publicKey &&
47
- typeof window._spiffy.publicKey === "string"
48
- ) {
49
- return window._spiffy.publicKey;
50
- }
51
-
52
- // During initial render, orgShortName might not be set yet
53
- // Return undefined instead of throwing to allow for lazy initialization
54
- if (!orgShortName) {
55
- Logger.logWarn(
56
- "[spiffy-ai] orgShortName not yet available, returning undefined for apiKey",
57
- undefined
58
- );
59
- return undefined;
60
- }
61
-
62
- // The merchant probably forgot to set the apiKey
63
- throw new Error(`[spiffy-ai]: apiKey is missing`);
64
- },
65
- (_, set, newVal: string | undefined) => {
66
- set(internalApiKeyAtom, newVal);
67
- }
68
- );
69
-
70
- const orgConfigStorageUtil = createJSONStorage<
71
- Record<string, OrgConfig> | undefined
72
- >(() => sessionStorage);
73
- export const storedOrgConfigAtom = atomWithStorage(
74
- "spiffy-org-config",
75
- undefined,
76
- orgConfigStorageUtil,
77
- {
78
- getOnInit: true,
79
- }
80
- );
81
-
82
- const internalFeatureFlagServiceAtom = atom<FeatureFlagService | undefined>(
83
- undefined
84
- );
85
- const internalOrgConfigAtom = atom<OrgConfig | undefined>(undefined);
86
- const internalOrgDomainAtom = atom<string | undefined>(undefined);
87
- const internalOrgIdAtom = atom<string | undefined>(undefined);
88
- const internalOrgShortNameAtom = atom<string | undefined>(undefined);
89
- export const featureFlagServiceAtom = atom(
90
- (get) => {
91
- const featureFlagService = get(internalFeatureFlagServiceAtom);
92
- if (featureFlagService) {
93
- return featureFlagService;
94
- }
95
-
96
- const orgConfig = get(internalOrgConfigAtom);
97
- if (orgConfig) {
98
- return new FeatureFlagService(orgConfig.gates);
99
- }
100
-
101
- return undefined; // Return undefined instead of throwing
102
- },
103
- (_, set, value: FeatureFlagService) => {
104
- set(internalFeatureFlagServiceAtom, value);
105
- }
106
- );
107
- export const orgConfigAtom = atom(
108
- (get) => {
109
- const orgConfig = get(internalOrgConfigAtom);
110
- return orgConfig; // Return undefined if not set instead of throwing
111
- },
112
- (_, set, value: OrgConfig) => {
113
- set(internalOrgConfigAtom, value);
114
- }
115
- );
116
- export const orgShortNameAtom = atom(
117
- (get) => {
118
- const orgShortName = get(internalOrgShortNameAtom);
119
- return orgShortName; // Return undefined if not set instead of throwing
120
- },
121
- (_, set, value: string) => {
122
- set(internalOrgShortNameAtom, value);
123
- }
124
- );
125
- export const orgDomainAtom = atom(
126
- (get) => {
127
- const orgDomain = get(internalOrgDomainAtom);
128
- return orgDomain; // Return undefined if not set instead of throwing
129
- },
130
- (_, set, value: string) => {
131
- set(internalOrgDomainAtom, value);
132
- }
133
- );
134
- export const orgIdAtom = atom(
135
- (get) => {
136
- const orgId = get(internalOrgIdAtom);
137
- return orgId; // Return undefined if not set instead of throwing
138
- },
139
- (_, set, value: string) => {
140
- set(internalOrgIdAtom, value);
141
- }
142
- );
143
-
144
- export const resetStoredOrgConfigAtom = () => {
145
- const atomStore = getAtomStore();
146
- atomStore.set(storedOrgConfigAtom, {});
147
- };
148
-
149
- // eslint-disable-next-line
150
- const getGraphQLConfig = async (atomStore: AtomStore) => {
151
- try {
152
- Logger.logDebug("getGraphQLConfig: Starting GraphQL client fetch");
153
- const { colorsConfig, frontendConfig } =
154
- (await GraphQLClient.getColorsAndFrontendConfig()) ?? {};
155
-
156
- Logger.logDebug("getGraphQLConfig: GraphQL fetch completed", {
157
- hasColorsConfig: !!colorsConfig,
158
- hasFrontendConfig: !!frontendConfig,
159
- frontendConfigKeys: frontendConfig ? Object.keys(frontendConfig) : [],
160
- });
161
-
162
- const rawFrontendConfig = atomStore.get(frontendConfigAtom);
163
-
164
- atomStore.set(colorsConfigAtom, colorsConfig);
165
-
166
- atomStore.set(frontendConfigAtom, {
167
- ...rawFrontendConfig,
168
- pageVariants: frontendConfig?.pageVariants,
169
- mountingConfigs: frontendConfig?.mountingConfigs,
170
- widgetConfigs: frontendConfig?.widgetConfigs,
171
- });
172
-
173
- Logger.logDebug("getGraphQLConfig: Starting UI config fetch");
174
- await getOrgUIConfig(
175
- frontendConfig?.uiConfigs,
176
- frontendConfig?.merchantOverrideCss
177
- );
178
- Logger.logDebug("getGraphQLConfig: UI config fetch completed");
179
- } catch (error) {
180
- Logger.logError(
181
- "getGraphQLConfig: Error during GraphQL config fetch",
182
- error
183
- );
184
- throw error; // Re-throw to be caught by the caller
185
- }
186
- };
187
-
188
- /**
189
- * This function is used to return an orgConfig corresponding to a given API key
190
- *
191
- * @param apiKeyOverride an optional new api key to override the current key stored in apiKeyAtom
192
- *
193
- * @returns The OrgAnalyticsConfig object or throws an error if the config was not successfully retrieved
194
- */
195
- export const getAsyncOrgConfig = async (
196
- apiKeyOverride?: string
197
- ): Promise<OrgConfig> => {
198
- const atomStore = getAtomStore();
199
- const apiKey = apiKeyOverride ?? atomStore.get(apiKeyAtom);
200
-
201
- // If apiKey is still undefined, we need to wait or throw an error
202
- if (!apiKey) {
203
- throw new Error(
204
- "[spiffy-ai] API key is required but not available. Ensure EnviveConfigProvider is properly set up with orgLevelApiKey or orgShortName."
205
- );
206
- }
207
-
208
- atomStore.set(apiKeyAtom, apiKey);
209
-
210
- atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadStarted);
211
- const maybeOrgConfigByApiKey = atomStore.get(storedOrgConfigAtom);
212
- let maybeOrgConfig = maybeOrgConfigByApiKey?.[apiKey];
213
- if (!maybeOrgConfig) {
214
- const userId = UserIdentityService.getUserIdOrDefault();
215
- maybeOrgConfig = await CommerceApiClient.getOrgConfig(userId);
216
- }
217
-
218
- if (!maybeOrgConfig) {
219
- throw new Error("[spiffy-ai] Org config is not defined but is required");
220
- }
221
-
222
- const latestConfig = maybeOrgConfig.configs?.find(
223
- (config: any) => config.isLatest
224
- );
225
-
226
- if (!latestConfig) {
227
- throw new Error("[spiffy-ai] no latest org config is found");
228
- }
229
-
230
- const orgConfig: OrgConfig = {
231
- ...maybeOrgConfig,
232
- configs: [{ ...latestConfig }],
233
- };
234
-
235
- // TODO this should never be undefined, update the SDK to enforce this
236
- if (!orgConfig.org) {
237
- throw new Error("[spiffy-ai] orgConfig.org is not defined but is required");
238
- }
239
-
240
- atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadEnded);
241
- atomStore.set(orgShortNameAtom, orgConfig.org.org.shortName);
242
- atomStore.set(orgDomainAtom, orgConfig.org.org.domain);
243
- atomStore.set(orgIdAtom, orgConfig.org.org.id);
244
- atomStore.set(storedOrgConfigAtom, {
245
- ...maybeOrgConfigByApiKey,
246
- [apiKey]: orgConfig,
247
- });
248
- atomStore.set(orgConfigAtom, orgConfig);
249
- atomStore.set(orgAnalyticsConfigAtom, {
250
- ...latestConfig.config,
251
- });
252
- atomStore.set(
253
- featureFlagServiceAtom,
254
- new FeatureFlagService(orgConfig.gates)
255
- );
256
-
257
- try {
258
- Logger.logDebug("getAsyncOrgConfig: Starting GraphQL config fetch");
259
- await getGraphQLConfig(atomStore);
260
- Logger.logDebug(
261
- "getAsyncOrgConfig: GraphQL config fetch completed successfully"
262
- );
263
-
264
- // Get the GraphQL config data that was just fetched and stored in atoms
265
- // Note: colorsConfigAtom is async, so we need to await it
266
- const colorsConfig = await atomStore.get(colorsConfigAtom);
267
- const frontendConfig = atomStore.get(frontendConfigAtom);
268
-
269
- // Merge the GraphQL config data into the orgConfig
270
- const enhancedOrgConfig = {
271
- ...orgConfig,
272
- colorsConfig,
273
- frontendConfig,
274
- };
275
-
276
- Logger.logDebug("getAsyncOrgConfig: Enhanced orgConfig with GraphQL data", {
277
- hasColorsConfig: !!colorsConfig,
278
- hasFrontendConfig: !!frontendConfig,
279
- frontendConfigKeys: frontendConfig ? Object.keys(frontendConfig) : [],
280
- });
281
-
282
- return enhancedOrgConfig;
283
- } catch (graphqlError) {
284
- Logger.logError(
285
- "getAsyncOrgConfig: GraphQL config fetch failed",
286
- graphqlError
287
- );
288
- // Don't throw here - the main org config is still valid even if GraphQL config fails
289
- return orgConfig;
290
- }
291
- };