@envive-ai/react-hooks 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +2 -0
  3. package/dist/GridInsertionService-CEYo9pGj.js +22 -0
  4. package/dist/GridInsertionService-CS_bnPh0.cjs +28 -0
  5. package/dist/bandolier-Ble8jEa8.js +1221 -0
  6. package/dist/bandolier-Bm2xAt_j.cjs +1221 -0
  7. package/dist/carpe-Da7b-LCW.cjs +599 -0
  8. package/dist/carpe-W13mhRRP.js +597 -0
  9. package/dist/cdnService-CZ-aXcY6.cjs +23 -0
  10. package/dist/cdnService-zQfKk3Eb.js +18 -0
  11. package/dist/chatElementDisplayLocation-CX8fuNao.d.cts +239 -0
  12. package/dist/chatElementDisplayLocation-CwptS9tx.d.ts +239 -0
  13. package/dist/chunk-CUT6urMc.cjs +30 -0
  14. package/dist/contexts/index.cjs +13 -0
  15. package/dist/contexts/index.d.cts +65 -0
  16. package/dist/contexts/index.d.ts +66 -0
  17. package/dist/contexts/index.js +7 -0
  18. package/dist/contexts-BRjfVq_k.js +5064 -0
  19. package/dist/contexts-BYArqZtK.cjs +5164 -0
  20. package/dist/coterie-3y0D9ko4.cjs +229 -0
  21. package/dist/coterie-DOWcJAYv.js +229 -0
  22. package/dist/custservice-types-CFIFwZ-r.js +10 -0
  23. package/dist/custservice-types-CkfxZiHY.cjs +16 -0
  24. package/dist/default-C2fEZKXk.js +175 -0
  25. package/dist/default-CBUq6Q6G.cjs +4 -0
  26. package/dist/default-CGIFZK6m.js +4 -0
  27. package/dist/default-D_KPZdPJ.cjs +198 -0
  28. package/dist/divIds-Bss-btao.js +49 -0
  29. package/dist/divIds-DnZNd7rA.cjs +223 -0
  30. package/dist/dreamlandBaby-DCIsuU9R.cjs +338 -0
  31. package/dist/dreamlandBaby-DvSaZGrz.js +338 -0
  32. package/dist/entrypoints-D_JUvkgy.cjs +18 -0
  33. package/dist/entrypoints-YLQsbBRD.js +6 -0
  34. package/dist/enviveConfigContext-CUGLpPGU.js +34 -0
  35. package/dist/enviveConfigContext-Dfr2VH6u.cjs +48 -0
  36. package/dist/fiveCbd-B1SESMCO.js +605 -0
  37. package/dist/fiveCbd-CkOlVby_.cjs +605 -0
  38. package/dist/forLoveAndLemons-CfYPMnKS.cjs +660 -0
  39. package/dist/forLoveAndLemons-DmwYZIk0.js +658 -0
  40. package/dist/greenpan-Bsl3ir59.cjs +389 -0
  41. package/dist/greenpan-BtOi45lf.js +389 -0
  42. package/dist/grooveLife-6_dtYsRk.js +334 -0
  43. package/dist/grooveLife-Cmm1PSCL.cjs +334 -0
  44. package/dist/homegrownCannabis-C-kw-74X.js +400 -0
  45. package/dist/homegrownCannabis-CO0uY_mp.cjs +400 -0
  46. package/dist/hooks/index.cjs +16 -0
  47. package/dist/hooks/index.d.cts +357 -0
  48. package/dist/hooks/index.d.ts +357 -0
  49. package/dist/hooks/index.js +7 -0
  50. package/dist/jackArcher-CLVmwwpI.js +719 -0
  51. package/dist/jackArcher-DdYTIzAV.cjs +719 -0
  52. package/dist/jordanCraig-Am-Oor-O.js +1778 -0
  53. package/dist/jordanCraig-_u3-w4Hp.cjs +1778 -0
  54. package/dist/kindredBravely-CWovIDSc.cjs +482 -0
  55. package/dist/kindredBravely-eWp-ud_E.js +482 -0
  56. package/dist/kutFromTheKloth-BMV4BuGQ.js +361 -0
  57. package/dist/kutFromTheKloth-Q589bAOC.cjs +361 -0
  58. package/dist/larryAndSerges-BMUlTgI-.js +252 -0
  59. package/dist/larryAndSerges-CEau764j.cjs +252 -0
  60. package/dist/leapsAndRebounds-DGMzPO7T.js +352 -0
  61. package/dist/leapsAndRebounds-DHAtRTJD.cjs +352 -0
  62. package/dist/logger-Dln20ans.cjs +25 -0
  63. package/dist/logger-pdEEY8T2.js +19 -0
  64. package/dist/longevityrx-CZW8Hxzi.cjs +312 -0
  65. package/dist/longevityrx-jH2JLhNH.js +312 -0
  66. package/dist/lookOptic-BGXP5P_V.js +274 -0
  67. package/dist/lookOptic-CA6RwLbG.cjs +274 -0
  68. package/dist/mantraBrand-Cm9_PBCT.js +742 -0
  69. package/dist/mantraBrand-DByNqpnL.cjs +742 -0
  70. package/dist/medterra-B0wxj_PV.js +575 -0
  71. package/dist/medterra-DnPN2ksU.cjs +575 -0
  72. package/dist/modells-Bmz8Ag5M.js +476 -0
  73. package/dist/modells-CoYgkLSp.cjs +476 -0
  74. package/dist/models-DHdb7QWn.js +51 -0
  75. package/dist/models-ixxUsGL_.cjs +69 -0
  76. package/dist/pressedFloral-DSKs_oVG.js +653 -0
  77. package/dist/pressedFloral-DjBiSoUl.cjs +653 -0
  78. package/dist/skinPerfection-B_3xzVNS.cjs +326 -0
  79. package/dist/skinPerfection-IDrBuAPt.js +326 -0
  80. package/dist/snapSupplements-BJk5T5ba.js +277 -0
  81. package/dist/snapSupplements-BStTsdOZ.cjs +277 -0
  82. package/dist/socialProofClasses-Bhv2Vulz.js +9 -0
  83. package/dist/socialProofClasses-CrQBWdSA.cjs +39 -0
  84. package/dist/spanx-BYg0LE7R.js +653 -0
  85. package/dist/spanx-LwU1zSzq.cjs +655 -0
  86. package/dist/spanxStaging-CfSmuKYB.js +837 -0
  87. package/dist/spanxStaging-OZLV9qix.cjs +840 -0
  88. package/dist/suggestionBarV2-types-BllzwsBD.js +34 -0
  89. package/dist/suggestionBarV2-types-CaovchMP.cjs +46 -0
  90. package/dist/supergoop-BqPXDnKk.cjs +327 -0
  91. package/dist/supergoop-CIlrHND_.js +325 -0
  92. package/dist/types-C4T5UOIW.cjs +230 -0
  93. package/dist/types-CYNvLeSA.js +176 -0
  94. package/dist/uniqueVintage-B30mOqbH.cjs +1205 -0
  95. package/dist/uniqueVintage-CFueJOhO.js +1203 -0
  96. package/dist/venaCbd-DHGZy49P.cjs +357 -0
  97. package/dist/venaCbd-T0CqVD4k.js +357 -0
  98. package/dist/westonJonBoucher-BdMzs_Yg.cjs +414 -0
  99. package/dist/westonJonBoucher-b4TCQ4ev.js +414 -0
  100. package/dist/wineEnthusiast-BLGlOjgr.cjs +932 -0
  101. package/dist/wineEnthusiast-BqR0i_54.js +932 -0
  102. package/dist/wolfMattress-CyyO-LoC.js +362 -0
  103. package/dist/wolfMattress-DNGZOivg.cjs +362 -0
  104. package/dist/wolfTactical-3Mm2fvVF.js +341 -0
  105. package/dist/wolfTactical-BmXYlFjr.cjs +341 -0
  106. package/package.json +66 -0
  107. package/src/adapters/amplitude/amplitudeAdapter.ts +454 -0
  108. package/src/adapters/amplitude/index.ts +2 -0
  109. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +34 -0
  110. package/src/adapters/spiffy/commerce/api.ts +596 -0
  111. package/src/adapters/spiffy/commerce/exceptions/sessionExceptions.ts +6 -0
  112. package/src/adapters/spiffy/commerce/exceptions/unsupportedProductExceptions.ts +6 -0
  113. package/src/adapters/spiffy/commerce/graphql.ts +184 -0
  114. package/src/application/config/generalStaticConfig.ts +37 -0
  115. package/src/application/logging/logger.ts +29 -0
  116. package/src/application/models/api/context.ts +4 -0
  117. package/src/application/models/api/generationParams.ts +4 -0
  118. package/src/application/models/api/nextMessageRequest.ts +11 -0
  119. package/src/application/models/api/orgAnalyticsConfig.ts +19 -0
  120. package/src/application/models/api/orgConfigResults.ts +40 -0
  121. package/src/application/models/api/organizationConfig.ts +12 -0
  122. package/src/application/models/api/response.ts +132 -0
  123. package/src/application/models/api/responseGenerics.ts +67 -0
  124. package/src/application/models/api/search.ts +26 -0
  125. package/src/application/models/api/suggestion.ts +4 -0
  126. package/src/application/models/api/supportedEventRequest.ts +8 -0
  127. package/src/application/models/api/userEvent.ts +101 -0
  128. package/src/application/models/cachedValue.ts +8 -0
  129. package/src/application/models/chatElementDisplayLocation.ts +22 -0
  130. package/src/application/models/clientDetails.ts +18 -0
  131. package/src/application/models/colorsConfig.ts +28 -0
  132. package/src/application/models/conversationalSearchIds.ts +5 -0
  133. package/src/application/models/dataLayer.ts +45 -0
  134. package/src/application/models/domMutationContinuation.ts +7 -0
  135. package/src/application/models/domObservationStrategy.ts +9 -0
  136. package/src/application/models/events.ts +5 -0
  137. package/src/application/models/featureGates.ts +23 -0
  138. package/src/application/models/frontendConfig.ts +14 -0
  139. package/src/application/models/googleAnalyticsEvents.ts +8 -0
  140. package/src/application/models/graphql/index.ts +2 -0
  141. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +37 -0
  142. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +103 -0
  143. package/src/application/models/graphql/queries/getMerchantOrgIdQuery.ts +11 -0
  144. package/src/application/models/guards/api/index.ts +12 -0
  145. package/src/application/models/guards/api/isApiFormResponse.ts +90 -0
  146. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +37 -0
  147. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +155 -0
  148. package/src/application/models/guards/api/isApiOrgConfigResults.ts +277 -0
  149. package/src/application/models/guards/api/isApiOrganizationConfig.ts +207 -0
  150. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +21 -0
  151. package/src/application/models/guards/api/isApiPLPEventAttributes.ts +41 -0
  152. package/src/application/models/guards/api/isApiPageResponseAttributes.ts +21 -0
  153. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +85 -0
  154. package/src/application/models/guards/api/isApiProductSearchAttributes.ts +23 -0
  155. package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +15 -0
  156. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +4 -0
  157. package/src/application/models/guards/api/isApiResponse.ts +39 -0
  158. package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +30 -0
  159. package/src/application/models/guards/api/isApiReviewRichInformation.ts +37 -0
  160. package/src/application/models/guards/api/isApiSearchEventAttributes.ts +28 -0
  161. package/src/application/models/guards/api/isApiSuggestion.ts +36 -0
  162. package/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts +9 -0
  163. package/src/application/models/guards/api/isApiTextResponseAttributes.ts +9 -0
  164. package/src/application/models/guards/api/isApiUserEvent.ts +25 -0
  165. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +50 -0
  166. package/src/application/models/guards/isBaseEcommerceEvent.ts +17 -0
  167. package/src/application/models/guards/isGA4EcommerceEvent.ts +17 -0
  168. package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +17 -0
  169. package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +11 -0
  170. package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +4 -0
  171. package/src/application/models/guards/isVariantInfo.ts +37 -0
  172. package/src/application/models/guards/utils.ts +43 -0
  173. package/src/application/models/index.ts +20 -0
  174. package/src/application/models/localStorageEventListener.ts +4 -0
  175. package/src/application/models/message.ts +146 -0
  176. package/src/application/models/mobilePLPChatPlacementParameter.ts +3 -0
  177. package/src/application/models/orgsEnum.ts +36 -0
  178. package/src/application/models/productExperiment.ts +5 -0
  179. package/src/application/models/spanxTakeAQuizCtaParameter.ts +4 -0
  180. package/src/application/models/spiffyWidgets.ts +16 -0
  181. package/src/application/models/supportedOrgs.ts +137 -0
  182. package/src/application/models/utilityTypes/camelCase.ts +87 -0
  183. package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +80 -0
  184. package/src/application/models/utilityTypes/delimiterCase.ts +121 -0
  185. package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +98 -0
  186. package/src/application/models/utilityTypes/index.ts +1 -0
  187. package/src/application/models/utilityTypes/internal.ts +93 -0
  188. package/src/application/models/utilityTypes/primitive.ts +8 -0
  189. package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +49 -0
  190. package/src/application/models/utilityTypes/splitWords.ts +76 -0
  191. package/src/application/models/utilityTypes/trim.ts +28 -0
  192. package/src/application/models/utilityTypes/unknownArray.ts +25 -0
  193. package/src/application/models/utils/snakeToCamelTransformer.ts +90 -0
  194. package/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.ts +68 -0
  195. package/src/application/models/validators/validateGraphQLColorsConfig.ts +29 -0
  196. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +594 -0
  197. package/src/application/models/validators/validateGraphQLOrgId.ts +7 -0
  198. package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +14 -0
  199. package/src/application/models/validators/validateOrgConfigResults.ts +47 -0
  200. package/src/application/models/validators/validateOrganizationConfig.ts +37 -0
  201. package/src/application/models/validators/validateResponse.ts +187 -0
  202. package/src/application/models/validators/validateSuggestion.ts +16 -0
  203. package/src/application/models/validators/validateUserEvent.ts +110 -0
  204. package/src/application/models/variantInfo/index.ts +1 -0
  205. package/src/application/models/variantInfo/pageVisitInfo.ts +6 -0
  206. package/src/application/models/variantInfo/plpInfo.ts +3 -0
  207. package/src/application/models/variantInfo/productInfo.ts +5 -0
  208. package/src/application/models/variantInfo/variantInfo.ts +23 -0
  209. package/src/application/service/cachingService.ts +84 -0
  210. package/src/application/service/cdnService.ts +18 -0
  211. package/src/application/service/customerService/index.ts +8 -0
  212. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +15 -0
  213. package/src/application/service/customerService/types.ts +31 -0
  214. package/src/application/service/domMutationObserver.ts +320 -0
  215. package/src/application/service/domMutations/GridInsertionService.ts +123 -0
  216. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +99 -0
  217. package/src/application/service/domMutations/domInsertionService.ts +90 -0
  218. package/src/application/service/domMutations/domMutationListener.ts +15 -0
  219. package/src/application/service/domMutations/domMutationListenerState.ts +52 -0
  220. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +41 -0
  221. package/src/application/service/domMutations/gladly/gladlyListener.ts +61 -0
  222. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +41 -0
  223. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +119 -0
  224. package/src/application/service/environmentService.ts +51 -0
  225. package/src/application/service/featureFlagService.ts +130 -0
  226. package/src/application/service/kustomerIntegrationService.ts +111 -0
  227. package/src/application/service/localStorageService.ts +77 -0
  228. package/src/application/service/pageVariantService.ts +779 -0
  229. package/src/application/service/searchService.ts +140 -0
  230. package/src/application/service/sessionStorageService.ts +27 -0
  231. package/src/application/service/shopifyUrlService.ts +63 -0
  232. package/src/application/service/userIdentityService.ts +114 -0
  233. package/src/application/service/windowChatToggleService.ts +71 -0
  234. package/src/application/service/windowDataLayerService.ts +181 -0
  235. package/src/application/service/windowFrontendConfigService.ts +104 -0
  236. package/src/application/utils/__tests__/divideArrays.test.ts +14 -0
  237. package/src/application/utils/analyticsUtils.ts +110 -0
  238. package/src/application/utils/coreContextToApiContext.ts +11 -0
  239. package/src/application/utils/coreUserEventToApiUserEvent.ts +106 -0
  240. package/src/application/utils/divideArray.ts +7 -0
  241. package/src/application/utils/domObserver.ts +96 -0
  242. package/src/application/utils/elementObserver.ts +246 -0
  243. package/src/application/utils/imageFilter.ts +12 -0
  244. package/src/application/utils/index.ts +3 -0
  245. package/src/application/utils/merchantUtils.ts +16 -0
  246. package/src/application/utils/messageFromFormSubmittedEvent.ts +31 -0
  247. package/src/application/utils/messageFromQueryEvent.ts +38 -0
  248. package/src/application/utils/messageFromResponse.ts +133 -0
  249. package/src/application/utils/messageFromSuggestionEvent.ts +32 -0
  250. package/src/application/utils/mouseEventTypes.ts +1 -0
  251. package/src/application/utils/mutationHelper.ts +51 -0
  252. package/src/application/utils/nextMessageRequestToApiRequest.ts +31 -0
  253. package/src/application/utils/nodeSelector.ts +133 -0
  254. package/src/application/utils/overrides.ts +196 -0
  255. package/src/application/utils/stringUtils.ts +55 -0
  256. package/src/application/utils/supportedEventRequestToApiRequest.ts +12 -0
  257. package/src/application/utils/urlsParser.ts +53 -0
  258. package/src/application/utils/validation.ts +5 -0
  259. package/src/atoms/app/index.ts +57 -0
  260. package/src/atoms/app/variant.ts +261 -0
  261. package/src/atoms/atomStore.ts +34 -0
  262. package/src/atoms/chat/chatState.ts +44 -0
  263. package/src/atoms/chat/form.ts +19 -0
  264. package/src/atoms/chat/index.ts +38 -0
  265. package/src/atoms/chat/lastMessage.ts +11 -0
  266. package/src/atoms/chat/messageQueue.ts +65 -0
  267. package/src/atoms/chat/performanceMetrics.ts +84 -0
  268. package/src/atoms/chat/renderedWidgetRefs.ts +28 -0
  269. package/src/atoms/chat/replies.ts +51 -0
  270. package/src/atoms/chat/suggestions.ts +36 -0
  271. package/src/atoms/globalSearch.ts +12 -0
  272. package/src/atoms/index.ts +5 -0
  273. package/src/atoms/org/customerService.ts +13 -0
  274. package/src/atoms/org/graphqlConfig.ts +27 -0
  275. package/src/atoms/org/index.ts +7 -0
  276. package/src/atoms/org/merchantCss.ts +44 -0
  277. package/src/atoms/org/org.ts +256 -0
  278. package/src/atoms/org/orgAnalyticsConfig.ts +28 -0
  279. package/src/atoms/org/orgPageConfig.ts +38 -0
  280. package/src/atoms/org/orgUIConfig.ts +122 -0
  281. package/src/atoms/search/chatSearch.ts +293 -0
  282. package/src/atoms/search/index.ts +2 -0
  283. package/src/atoms/search/productFilters.ts +207 -0
  284. package/src/atoms/search/productSorter.ts +23 -0
  285. package/src/atoms/search/searchAPI.ts +194 -0
  286. package/src/atoms/search/types.ts +55 -0
  287. package/src/atoms/search/utils.ts +18 -0
  288. package/src/config/divIds.ts +27 -0
  289. package/src/config/locators/components/chat/entrypoints.ts +13 -0
  290. package/src/config/locators/components/chat/index.ts +23 -0
  291. package/src/config/locators/components/chat/preview.ts +13 -0
  292. package/src/config/locators/components/chat/variants/index.ts +16 -0
  293. package/src/config/locators/components/common/buttons.ts +6 -0
  294. package/src/config/locators/components/common/cards.ts +18 -0
  295. package/src/config/locators/components/common/links.ts +1 -0
  296. package/src/config/locators/components/common/tables.ts +2 -0
  297. package/src/config/locators/components/floating-button.ts +2 -0
  298. package/src/config/locators/components/index.ts +3 -0
  299. package/src/config/locators/components/report-issue.ts +21 -0
  300. package/src/config/locators/components/search/index.ts +5 -0
  301. package/src/config/locators/components/shadow-dom.ts +1 -0
  302. package/src/config/locators/embedded.ts +21 -0
  303. package/src/config/locators/index.ts +3 -0
  304. package/src/config/socialProofClasses.ts +17 -0
  305. package/src/contexts/chatContext.tsx +451 -0
  306. package/src/contexts/enviveConfigContext.tsx +70 -0
  307. package/src/contexts/index.ts +4 -0
  308. package/src/contexts/systemSettingsContext.tsx +61 -0
  309. package/src/contexts/types.ts +1059 -0
  310. package/src/enabled-features.ts +83 -0
  311. package/src/events/event-types.ts +11 -0
  312. package/src/events/index.ts +52 -0
  313. package/src/events/registerAnalyticsListeners.ts +49 -0
  314. package/src/extension.ts +63 -0
  315. package/src/hooks/index.ts +22 -0
  316. package/src/hooks/useBlockBackButton.ts +29 -0
  317. package/src/hooks/useChatToggle.ts +66 -0
  318. package/src/hooks/useCustomerSupportHandoff.ts +39 -0
  319. package/src/hooks/useDebounce.ts +17 -0
  320. package/src/hooks/useDynamicVariants.ts +210 -0
  321. package/src/hooks/useElementObserver.ts +245 -0
  322. package/src/hooks/useFileUpload.ts +61 -0
  323. package/src/hooks/useGrabAndScroll.ts +133 -0
  324. package/src/hooks/useHideElements.ts +82 -0
  325. package/src/hooks/useHorizontalScrollAnimation.ts +115 -0
  326. package/src/hooks/useImageResolver.ts +51 -0
  327. package/src/hooks/useIntersection.ts +28 -0
  328. package/src/hooks/useIsSmallScreen.ts +23 -0
  329. package/src/hooks/useMessageFilter.ts +49 -0
  330. package/src/hooks/useMessageScrollObserver.ts +47 -0
  331. package/src/hooks/useReducedMotionWithOverride.ts +15 -0
  332. package/src/hooks/useSearch.tsx +433 -0
  333. package/src/hooks/useSnapCalculator.ts +38 -0
  334. package/src/hooks/useSnapControl.ts +155 -0
  335. package/src/hooks/useSystemSettingsContext.ts +12 -0
  336. package/src/hooks/useTrackComponentVisibleEvent.ts +52 -0
  337. package/src/hooks/useUpdateAnalyticsProps.ts +56 -0
  338. package/src/hooks/utils.ts +153 -0
  339. package/src/index.ts +31 -0
  340. package/src/initialize.ts +163 -0
  341. package/src/interceptors/types.ts +6 -0
  342. package/src/interceptors/useFormEscalation.ts +40 -0
  343. package/src/interceptors/useMessageInterceptor.ts +32 -0
  344. package/src/main.ts +85 -0
  345. package/src/main.tsx +123 -0
  346. package/src/merchants/bandolier/bandolier.ts +1389 -0
  347. package/src/merchants/carpe/carpe.ts +656 -0
  348. package/src/merchants/coterie/coterie.ts +280 -0
  349. package/src/merchants/default.ts +193 -0
  350. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +375 -0
  351. package/src/merchants/fiveCbd/fiveCbd.ts +697 -0
  352. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +721 -0
  353. package/src/merchants/greenpan/greenpan.ts +440 -0
  354. package/src/merchants/grooveLife/grooveLife.ts +386 -0
  355. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +468 -0
  356. package/src/merchants/init-merchant.sh +53 -0
  357. package/src/merchants/jackArcher/jackArcher.ts +974 -0
  358. package/src/merchants/jordanCraig/jordanCraig.ts +1927 -0
  359. package/src/merchants/kindredBravely/kindredBravely.ts +529 -0
  360. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +418 -0
  361. package/src/merchants/larryAndSerges/larryAndSerges.ts +314 -0
  362. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +424 -0
  363. package/src/merchants/longevityrx/longevityrx.ts +368 -0
  364. package/src/merchants/lookOptic/lookOptic.ts +323 -0
  365. package/src/merchants/mantraBrand/mantraBrand.ts +838 -0
  366. package/src/merchants/medterra/medterra.ts +670 -0
  367. package/src/merchants/modells/modells.ts +546 -0
  368. package/src/merchants/pressedFloral/pressedFloral.ts +734 -0
  369. package/src/merchants/skinPerfection/skinPerfection.ts +379 -0
  370. package/src/merchants/snapSupplements/snapSupplements.ts +325 -0
  371. package/src/merchants/spanx/spanx.ts +810 -0
  372. package/src/merchants/spanx/spanxStaging.ts +942 -0
  373. package/src/merchants/supergoop/supergoop.ts +376 -0
  374. package/src/merchants/uniqueVintage/uniqueVintage.ts +1314 -0
  375. package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +147 -0
  376. package/src/merchants/venaCbd/venaCbd.ts +410 -0
  377. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +473 -0
  378. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +990 -0
  379. package/src/merchants/wolfMattress/wolfMattress.ts +411 -0
  380. package/src/merchants/wolfTactical/wolfTactical.ts +389 -0
  381. package/src/types/custservice-types.ts +28 -0
  382. package/src/types/search-filter-types.ts +111 -0
  383. package/src/types/suggestionBarV2-types.ts +4 -0
  384. package/src/types/test-types.ts +3 -0
  385. package/src/types.ts +66 -0
@@ -0,0 +1,76 @@
1
+ // these types come from https://github.com/sindresorhus/type-fest/blob/main/source/split-words.d.ts
2
+
3
+ import type { IsLowerCase, IsNumeric, IsUpperCase, WordSeparators } from './internal';
4
+
5
+ type SkipEmptyWord<Word extends string> = Word extends '' ? [] : [Word];
6
+
7
+ type RemoveLastCharacter<
8
+ Sentence extends string,
9
+ Character extends string,
10
+ > = Sentence extends `${infer LeftSide}${Character}` ? SkipEmptyWord<LeftSide> : never;
11
+
12
+ /**
13
+ * Split a string (almost) like Lodash's `_.words()` function.
14
+ *
15
+ * - Split on each word that begins with a capital letter.
16
+ * - Split on each {@link WordSeparators}.
17
+ * - Split on numeric sequence.
18
+ *
19
+ * @example
20
+ * ```
21
+ * type Words0 = SplitWords<'helloWorld'>; // ['hello', 'World']
22
+ * type Words1 = SplitWords<'helloWORLD'>; // ['hello', 'WORLD']
23
+ * type Words2 = SplitWords<'hello-world'>; // ['hello', 'world']
24
+ * type Words3 = SplitWords<'--hello the_world'>; // ['hello', 'the', 'world']
25
+ * type Words4 = SplitWords<'lifeIs42'>; // ['life', 'Is', '42']
26
+ * ```
27
+ *
28
+ * @internal
29
+ * @category Change case
30
+ * @category Template literal
31
+ */
32
+ export type SplitWords<
33
+ Sentence extends string,
34
+ LastCharacter extends string = '',
35
+ CurrentWord extends string = '',
36
+ > = Sentence extends `${infer FirstCharacter}${infer RemainingCharacters}`
37
+ ? FirstCharacter extends WordSeparators
38
+ ? // Skip word separator
39
+ [...SkipEmptyWord<CurrentWord>, ...SplitWords<RemainingCharacters>]
40
+ : LastCharacter extends ''
41
+ ? // Fist char of word
42
+ SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>
43
+ : // Case change: non-numeric to numeric, push word
44
+ [false, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>]
45
+ ? [
46
+ ...SkipEmptyWord<CurrentWord>,
47
+ ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>,
48
+ ]
49
+ : // Case change: numeric to non-numeric, push word
50
+ [true, false] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>]
51
+ ? [
52
+ ...SkipEmptyWord<CurrentWord>,
53
+ ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>,
54
+ ]
55
+ : // No case change: concat word
56
+ [true, true] extends [IsNumeric<LastCharacter>, IsNumeric<FirstCharacter>]
57
+ ? SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`>
58
+ : // Case change: lower to upper, push word
59
+ [true, true] extends [IsLowerCase<LastCharacter>, IsUpperCase<FirstCharacter>]
60
+ ? [
61
+ ...SkipEmptyWord<CurrentWord>,
62
+ ...SplitWords<RemainingCharacters, FirstCharacter, FirstCharacter>,
63
+ ]
64
+ : // Case change: upper to lower, brings back the last character, push word
65
+ [true, true] extends [IsUpperCase<LastCharacter>, IsLowerCase<FirstCharacter>]
66
+ ? [
67
+ ...RemoveLastCharacter<CurrentWord, LastCharacter>,
68
+ ...SplitWords<
69
+ RemainingCharacters,
70
+ FirstCharacter,
71
+ `${LastCharacter}${FirstCharacter}`
72
+ >,
73
+ ]
74
+ : // No case change: concat word
75
+ SplitWords<RemainingCharacters, FirstCharacter, `${CurrentWord}${FirstCharacter}`>
76
+ : [...SkipEmptyWord<CurrentWord>];
@@ -0,0 +1,28 @@
1
+ // these types come from https://github.com/sindresorhus/type-fest/blob/main/source/trim.d.ts
2
+
3
+ import type { Whitespace } from './internal';
4
+
5
+ /**
6
+ * Remove spaces from the left side.
7
+ */
8
+ type TrimLeft<V extends string> = V extends `${Whitespace}${infer R}` ? TrimLeft<R> : V;
9
+
10
+ /**
11
+ * Remove spaces from the right side.
12
+ */
13
+ type TrimRight<V extends string> = V extends `${infer R}${Whitespace}` ? TrimRight<R> : V;
14
+
15
+ /**
16
+ * Remove leading and trailing spaces from a string.
17
+ * @example
18
+ * ```
19
+ * import type {Trim} from 'type-fest';
20
+ *
21
+ * Trim<' foo '>
22
+ * //=> 'foo'
23
+ * ```
24
+ *
25
+ * @category String
26
+ * @category Template literal
27
+ */
28
+ export type Trim<V extends string> = TrimLeft<TrimRight<V>>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Represents an array with `unknown` value.
3
+ *
4
+ * Use case: You want a type that all arrays can be assigned to, but you don't care about the value.
5
+ *
6
+ * @example
7
+ * ```
8
+ * import type {UnknownArray} from 'type-fest';
9
+ *
10
+ * type IsArray<T> = T extends UnknownArray ? true : false;
11
+ *
12
+ * type A = IsArray<['foo']>;
13
+ * //=> true
14
+ *
15
+ * type B = IsArray<readonly number[]>;
16
+ * //=> true
17
+ *
18
+ * type C = IsArray<string>;
19
+ * //=> false
20
+ * ```
21
+ *
22
+ * @category Type
23
+ * @category Array
24
+ */
25
+ export type UnknownArray = readonly unknown[];
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Generic utility to transform snake_case object keys to camelCase at runtime.
3
+ * This is the runtime equivalent of the CamelCasedPropertiesDeep type utility.
4
+ */
5
+
6
+ // List of acronyms that should be preserved as uppercase in camelCase and lowercase in snake_case
7
+ const PRESERVED_ACRONYMS = ['PLP', 'PDP', 'SVG'];
8
+
9
+ /**
10
+ * Converts a snake_case string to camelCase
11
+ * Handles specific acronyms like PLP and PDP correctly
12
+ */
13
+ const toCamelCase = (str: string): string => {
14
+ // Pre-process: convert all words that match the PRESERVED_ACRONYMS regex to uppercase
15
+ let processedStr = str;
16
+ for (const acronym of PRESERVED_ACRONYMS) {
17
+ const regex = new RegExp(`_${acronym}_?`, 'gi');
18
+
19
+ if (processedStr.match(regex)) {
20
+ processedStr = processedStr.replace(regex, (v) =>
21
+ v.endsWith('_') ? `${acronym}_` : `${acronym}`,
22
+ );
23
+ }
24
+ }
25
+ return processedStr.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
26
+ };
27
+
28
+ /**
29
+ * Converts a camelCase string to snake_case
30
+ * Handles consecutive capital letters correctly (e.g., "PDP" -> "pdp", not "p_d_p")
31
+ * Preserves specific acronyms like PLP and PDP as lowercase in snake_case
32
+ */
33
+ const toSnakeCase = (str: string) =>
34
+ str
35
+ .replace(/([A-Z])(?=[a-z])/g, '_$1')
36
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
37
+ .toLowerCase()
38
+ .replace(/^_/, '');
39
+
40
+ /**
41
+ * Recursively transforms all object keys from snake_case to camelCase
42
+ */
43
+ export const transformSnakeToCamel = (obj: unknown): unknown => {
44
+ if (obj === null || obj === undefined) {
45
+ return obj;
46
+ }
47
+
48
+ if (Array.isArray(obj)) {
49
+ return obj.map((val) => transformSnakeToCamel(val));
50
+ }
51
+
52
+ if (typeof obj === 'object') {
53
+ const result: Record<string, unknown> = {};
54
+
55
+ for (const [key, value] of Object.entries(obj)) {
56
+ const camelKey = toCamelCase(key);
57
+ result[camelKey] = transformSnakeToCamel(value);
58
+ }
59
+
60
+ return result;
61
+ }
62
+
63
+ return obj;
64
+ };
65
+
66
+ /**
67
+ * Recursively transforms all object keys from camelCase to snake_case
68
+ */
69
+ export const transformCamelToSnake = (obj: unknown): unknown => {
70
+ if (obj === null || obj === undefined) {
71
+ return obj;
72
+ }
73
+
74
+ if (Array.isArray(obj)) {
75
+ return obj.map(transformCamelToSnake);
76
+ }
77
+
78
+ if (typeof obj === 'object') {
79
+ const result: Record<string, unknown> = {};
80
+
81
+ for (const [key, value] of Object.entries(obj)) {
82
+ const snakeKey = toSnakeCase(key);
83
+ result[snakeKey] = transformCamelToSnake(value);
84
+ }
85
+
86
+ return result;
87
+ }
88
+
89
+ return obj;
90
+ };
@@ -0,0 +1,68 @@
1
+ import { FulfillmentDisplayStatus } from '@spiffy-ai/commerce-api-client';
2
+
3
+ /**
4
+ * Converts a string to a FulfillmentDisplayStatus enum value.
5
+ *
6
+ * @param status - The string to convert.
7
+ *
8
+ * @returns The FulfillmentDisplayStatus enum value or undefined if the string
9
+ * does not map to a valid enum
10
+ */
11
+ export const stringToFulfillmentDisplayStatusEnumValue = (
12
+ status: string,
13
+ ): FulfillmentDisplayStatus | undefined => {
14
+ switch (status) {
15
+ case 'ATTEMPTED_DELIVERY':
16
+ return FulfillmentDisplayStatus.ATTEMPTED_DELIVERY;
17
+ case 'CANCELED':
18
+ return FulfillmentDisplayStatus.CANCELED;
19
+ case 'CONFIRMED':
20
+ return FulfillmentDisplayStatus.CONFIRMED;
21
+ case 'DELIVERED':
22
+ return FulfillmentDisplayStatus.DELIVERED;
23
+ case 'FAILURE':
24
+ return FulfillmentDisplayStatus.FAILURE;
25
+ case 'FULFILLED':
26
+ return FulfillmentDisplayStatus.FULFILLED;
27
+ case 'IN_TRANSIT':
28
+ return FulfillmentDisplayStatus.IN_TRANSIT;
29
+ case 'LABEL_PRINTED':
30
+ return FulfillmentDisplayStatus.LABEL_PRINTED;
31
+ case 'LABEL_PURCHASED':
32
+ return FulfillmentDisplayStatus.LABEL_PURCHASED;
33
+ case 'LABEL_VOIDED':
34
+ return FulfillmentDisplayStatus.LABEL_VOIDED;
35
+ case 'MARKED_AS_FULFILLED':
36
+ return FulfillmentDisplayStatus.MARKED_AS_FULFILLED;
37
+ case 'NOT_DELIVERED':
38
+ return FulfillmentDisplayStatus.NOT_DELIVERED;
39
+ case 'OUT_FOR_DELIVERY':
40
+ return FulfillmentDisplayStatus.OUT_FOR_DELIVERY;
41
+ case 'PICKED_UP':
42
+ return FulfillmentDisplayStatus.PICKED_UP;
43
+ case 'READY_FOR_PICKUP':
44
+ return FulfillmentDisplayStatus.READY_FOR_PICKUP;
45
+ case 'SUBMITTED':
46
+ return FulfillmentDisplayStatus.SUBMITTED;
47
+ case 'IN_PROGRESS':
48
+ return FulfillmentDisplayStatus.IN_PROGRESS;
49
+ case 'ON_HOLD':
50
+ return FulfillmentDisplayStatus.ON_HOLD;
51
+ case 'OPEN':
52
+ return FulfillmentDisplayStatus.OPEN;
53
+ case 'PARTIALLY_FULFILLED':
54
+ return FulfillmentDisplayStatus.PARTIALLY_FULFILLED;
55
+ case 'PENDING_FULFILLMENT':
56
+ return FulfillmentDisplayStatus.PENDING_FULFILLMENT;
57
+ case 'REQUEST_DECLINED':
58
+ return FulfillmentDisplayStatus.REQUEST_DECLINED;
59
+ case 'RESTOCKED':
60
+ return FulfillmentDisplayStatus.RESTOCKED;
61
+ case 'SCHEDULED':
62
+ return FulfillmentDisplayStatus.SCHEDULED;
63
+ case 'UNFULFILLED':
64
+ return FulfillmentDisplayStatus.UNFULFILLED;
65
+ default:
66
+ return undefined;
67
+ }
68
+ };
@@ -0,0 +1,29 @@
1
+ import { ColorMapping, ColorNames } from 'src/application/models/colorsConfig';
2
+ import { isGraphQLColorsConfig } from 'src/application/models/guards/graphQL/isGraphQLColorsConfig';
3
+
4
+ export const validateGraphQLColorsConfig = (data: unknown): ColorMapping | undefined => {
5
+ if (!isGraphQLColorsConfig(data)) {
6
+ return undefined;
7
+ }
8
+
9
+ return {
10
+ [ColorNames.TextPrimary]: data.text_primary,
11
+ [ColorNames.TextSecondary]: data.text_secondary,
12
+ [ColorNames.TextAccent]: data.text_accent,
13
+ [ColorNames.TextLink]: data.text_link,
14
+ [ColorNames.TextLight]: data.text_light,
15
+ [ColorNames.BackgroundPrimary]: data.background_primary,
16
+ [ColorNames.BackgroundSecondary]: data.background_secondary,
17
+ [ColorNames.BackgroundSecondaryDark]: data.background_secondary_dark,
18
+ [ColorNames.BackgroundTertiary]: data.background_tertiary,
19
+ [ColorNames.BackgroundDark]: data.background_dark,
20
+ [ColorNames.BorderLight]: data.border_light,
21
+ [ColorNames.BorderMedium]: data.border_medium,
22
+ [ColorNames.BorderDark]: data.border_dark,
23
+ [ColorNames.BorderOutline]: data.border_outline,
24
+ [ColorNames.AccentPrimary]: data.accent_primary,
25
+ [ColorNames.AccentSecondary]: data.accent_secondary,
26
+ [ColorNames.BackgroundLight]: data.background_light,
27
+ [ColorNames.BackgroundSaturated]: data.background_saturated,
28
+ };
29
+ };