@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.
- package/LICENSE +2 -0
- package/README.md +2 -0
- package/dist/GridInsertionService-CEYo9pGj.js +22 -0
- package/dist/GridInsertionService-CS_bnPh0.cjs +28 -0
- package/dist/bandolier-Ble8jEa8.js +1221 -0
- package/dist/bandolier-Bm2xAt_j.cjs +1221 -0
- package/dist/carpe-Da7b-LCW.cjs +599 -0
- package/dist/carpe-W13mhRRP.js +597 -0
- package/dist/cdnService-CZ-aXcY6.cjs +23 -0
- package/dist/cdnService-zQfKk3Eb.js +18 -0
- package/dist/chatElementDisplayLocation-CX8fuNao.d.cts +239 -0
- package/dist/chatElementDisplayLocation-CwptS9tx.d.ts +239 -0
- package/dist/chunk-CUT6urMc.cjs +30 -0
- package/dist/contexts/index.cjs +13 -0
- package/dist/contexts/index.d.cts +65 -0
- package/dist/contexts/index.d.ts +66 -0
- package/dist/contexts/index.js +7 -0
- package/dist/contexts-BRjfVq_k.js +5064 -0
- package/dist/contexts-BYArqZtK.cjs +5164 -0
- package/dist/coterie-3y0D9ko4.cjs +229 -0
- package/dist/coterie-DOWcJAYv.js +229 -0
- package/dist/custservice-types-CFIFwZ-r.js +10 -0
- package/dist/custservice-types-CkfxZiHY.cjs +16 -0
- package/dist/default-C2fEZKXk.js +175 -0
- package/dist/default-CBUq6Q6G.cjs +4 -0
- package/dist/default-CGIFZK6m.js +4 -0
- package/dist/default-D_KPZdPJ.cjs +198 -0
- package/dist/divIds-Bss-btao.js +49 -0
- package/dist/divIds-DnZNd7rA.cjs +223 -0
- package/dist/dreamlandBaby-DCIsuU9R.cjs +338 -0
- package/dist/dreamlandBaby-DvSaZGrz.js +338 -0
- package/dist/entrypoints-D_JUvkgy.cjs +18 -0
- package/dist/entrypoints-YLQsbBRD.js +6 -0
- package/dist/enviveConfigContext-CUGLpPGU.js +34 -0
- package/dist/enviveConfigContext-Dfr2VH6u.cjs +48 -0
- package/dist/fiveCbd-B1SESMCO.js +605 -0
- package/dist/fiveCbd-CkOlVby_.cjs +605 -0
- package/dist/forLoveAndLemons-CfYPMnKS.cjs +660 -0
- package/dist/forLoveAndLemons-DmwYZIk0.js +658 -0
- package/dist/greenpan-Bsl3ir59.cjs +389 -0
- package/dist/greenpan-BtOi45lf.js +389 -0
- package/dist/grooveLife-6_dtYsRk.js +334 -0
- package/dist/grooveLife-Cmm1PSCL.cjs +334 -0
- package/dist/homegrownCannabis-C-kw-74X.js +400 -0
- package/dist/homegrownCannabis-CO0uY_mp.cjs +400 -0
- package/dist/hooks/index.cjs +16 -0
- package/dist/hooks/index.d.cts +357 -0
- package/dist/hooks/index.d.ts +357 -0
- package/dist/hooks/index.js +7 -0
- package/dist/jackArcher-CLVmwwpI.js +719 -0
- package/dist/jackArcher-DdYTIzAV.cjs +719 -0
- package/dist/jordanCraig-Am-Oor-O.js +1778 -0
- package/dist/jordanCraig-_u3-w4Hp.cjs +1778 -0
- package/dist/kindredBravely-CWovIDSc.cjs +482 -0
- package/dist/kindredBravely-eWp-ud_E.js +482 -0
- package/dist/kutFromTheKloth-BMV4BuGQ.js +361 -0
- package/dist/kutFromTheKloth-Q589bAOC.cjs +361 -0
- package/dist/larryAndSerges-BMUlTgI-.js +252 -0
- package/dist/larryAndSerges-CEau764j.cjs +252 -0
- package/dist/leapsAndRebounds-DGMzPO7T.js +352 -0
- package/dist/leapsAndRebounds-DHAtRTJD.cjs +352 -0
- package/dist/logger-Dln20ans.cjs +25 -0
- package/dist/logger-pdEEY8T2.js +19 -0
- package/dist/longevityrx-CZW8Hxzi.cjs +312 -0
- package/dist/longevityrx-jH2JLhNH.js +312 -0
- package/dist/lookOptic-BGXP5P_V.js +274 -0
- package/dist/lookOptic-CA6RwLbG.cjs +274 -0
- package/dist/mantraBrand-Cm9_PBCT.js +742 -0
- package/dist/mantraBrand-DByNqpnL.cjs +742 -0
- package/dist/medterra-B0wxj_PV.js +575 -0
- package/dist/medterra-DnPN2ksU.cjs +575 -0
- package/dist/modells-Bmz8Ag5M.js +476 -0
- package/dist/modells-CoYgkLSp.cjs +476 -0
- package/dist/models-DHdb7QWn.js +51 -0
- package/dist/models-ixxUsGL_.cjs +69 -0
- package/dist/pressedFloral-DSKs_oVG.js +653 -0
- package/dist/pressedFloral-DjBiSoUl.cjs +653 -0
- package/dist/skinPerfection-B_3xzVNS.cjs +326 -0
- package/dist/skinPerfection-IDrBuAPt.js +326 -0
- package/dist/snapSupplements-BJk5T5ba.js +277 -0
- package/dist/snapSupplements-BStTsdOZ.cjs +277 -0
- package/dist/socialProofClasses-Bhv2Vulz.js +9 -0
- package/dist/socialProofClasses-CrQBWdSA.cjs +39 -0
- package/dist/spanx-BYg0LE7R.js +653 -0
- package/dist/spanx-LwU1zSzq.cjs +655 -0
- package/dist/spanxStaging-CfSmuKYB.js +837 -0
- package/dist/spanxStaging-OZLV9qix.cjs +840 -0
- package/dist/suggestionBarV2-types-BllzwsBD.js +34 -0
- package/dist/suggestionBarV2-types-CaovchMP.cjs +46 -0
- package/dist/supergoop-BqPXDnKk.cjs +327 -0
- package/dist/supergoop-CIlrHND_.js +325 -0
- package/dist/types-C4T5UOIW.cjs +230 -0
- package/dist/types-CYNvLeSA.js +176 -0
- package/dist/uniqueVintage-B30mOqbH.cjs +1205 -0
- package/dist/uniqueVintage-CFueJOhO.js +1203 -0
- package/dist/venaCbd-DHGZy49P.cjs +357 -0
- package/dist/venaCbd-T0CqVD4k.js +357 -0
- package/dist/westonJonBoucher-BdMzs_Yg.cjs +414 -0
- package/dist/westonJonBoucher-b4TCQ4ev.js +414 -0
- package/dist/wineEnthusiast-BLGlOjgr.cjs +932 -0
- package/dist/wineEnthusiast-BqR0i_54.js +932 -0
- package/dist/wolfMattress-CyyO-LoC.js +362 -0
- package/dist/wolfMattress-DNGZOivg.cjs +362 -0
- package/dist/wolfTactical-3Mm2fvVF.js +341 -0
- package/dist/wolfTactical-BmXYlFjr.cjs +341 -0
- package/package.json +66 -0
- package/src/adapters/amplitude/amplitudeAdapter.ts +454 -0
- package/src/adapters/amplitude/index.ts +2 -0
- package/src/adapters/amplitude/stubAmplitudeAdapter.ts +34 -0
- package/src/adapters/spiffy/commerce/api.ts +596 -0
- package/src/adapters/spiffy/commerce/exceptions/sessionExceptions.ts +6 -0
- package/src/adapters/spiffy/commerce/exceptions/unsupportedProductExceptions.ts +6 -0
- package/src/adapters/spiffy/commerce/graphql.ts +184 -0
- package/src/application/config/generalStaticConfig.ts +37 -0
- package/src/application/logging/logger.ts +29 -0
- package/src/application/models/api/context.ts +4 -0
- package/src/application/models/api/generationParams.ts +4 -0
- package/src/application/models/api/nextMessageRequest.ts +11 -0
- package/src/application/models/api/orgAnalyticsConfig.ts +19 -0
- package/src/application/models/api/orgConfigResults.ts +40 -0
- package/src/application/models/api/organizationConfig.ts +12 -0
- package/src/application/models/api/response.ts +132 -0
- package/src/application/models/api/responseGenerics.ts +67 -0
- package/src/application/models/api/search.ts +26 -0
- package/src/application/models/api/suggestion.ts +4 -0
- package/src/application/models/api/supportedEventRequest.ts +8 -0
- package/src/application/models/api/userEvent.ts +101 -0
- package/src/application/models/cachedValue.ts +8 -0
- package/src/application/models/chatElementDisplayLocation.ts +22 -0
- package/src/application/models/clientDetails.ts +18 -0
- package/src/application/models/colorsConfig.ts +28 -0
- package/src/application/models/conversationalSearchIds.ts +5 -0
- package/src/application/models/dataLayer.ts +45 -0
- package/src/application/models/domMutationContinuation.ts +7 -0
- package/src/application/models/domObservationStrategy.ts +9 -0
- package/src/application/models/events.ts +5 -0
- package/src/application/models/featureGates.ts +23 -0
- package/src/application/models/frontendConfig.ts +14 -0
- package/src/application/models/googleAnalyticsEvents.ts +8 -0
- package/src/application/models/graphql/index.ts +2 -0
- package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +37 -0
- package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +103 -0
- package/src/application/models/graphql/queries/getMerchantOrgIdQuery.ts +11 -0
- package/src/application/models/guards/api/index.ts +12 -0
- package/src/application/models/guards/api/isApiFormResponse.ts +90 -0
- package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +37 -0
- package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +155 -0
- package/src/application/models/guards/api/isApiOrgConfigResults.ts +277 -0
- package/src/application/models/guards/api/isApiOrganizationConfig.ts +207 -0
- package/src/application/models/guards/api/isApiPDPEventAttributes.ts +21 -0
- package/src/application/models/guards/api/isApiPLPEventAttributes.ts +41 -0
- package/src/application/models/guards/api/isApiPageResponseAttributes.ts +21 -0
- package/src/application/models/guards/api/isApiProductResponseAttributes.ts +85 -0
- package/src/application/models/guards/api/isApiProductSearchAttributes.ts +23 -0
- package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +15 -0
- package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +4 -0
- package/src/application/models/guards/api/isApiResponse.ts +39 -0
- package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +30 -0
- package/src/application/models/guards/api/isApiReviewRichInformation.ts +37 -0
- package/src/application/models/guards/api/isApiSearchEventAttributes.ts +28 -0
- package/src/application/models/guards/api/isApiSuggestion.ts +36 -0
- package/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts +9 -0
- package/src/application/models/guards/api/isApiTextResponseAttributes.ts +9 -0
- package/src/application/models/guards/api/isApiUserEvent.ts +25 -0
- package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +50 -0
- package/src/application/models/guards/isBaseEcommerceEvent.ts +17 -0
- package/src/application/models/guards/isGA4EcommerceEvent.ts +17 -0
- package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +17 -0
- package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +11 -0
- package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +4 -0
- package/src/application/models/guards/isVariantInfo.ts +37 -0
- package/src/application/models/guards/utils.ts +43 -0
- package/src/application/models/index.ts +20 -0
- package/src/application/models/localStorageEventListener.ts +4 -0
- package/src/application/models/message.ts +146 -0
- package/src/application/models/mobilePLPChatPlacementParameter.ts +3 -0
- package/src/application/models/orgsEnum.ts +36 -0
- package/src/application/models/productExperiment.ts +5 -0
- package/src/application/models/spanxTakeAQuizCtaParameter.ts +4 -0
- package/src/application/models/spiffyWidgets.ts +16 -0
- package/src/application/models/supportedOrgs.ts +137 -0
- package/src/application/models/utilityTypes/camelCase.ts +87 -0
- package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +80 -0
- package/src/application/models/utilityTypes/delimiterCase.ts +121 -0
- package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +98 -0
- package/src/application/models/utilityTypes/index.ts +1 -0
- package/src/application/models/utilityTypes/internal.ts +93 -0
- package/src/application/models/utilityTypes/primitive.ts +8 -0
- package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +49 -0
- package/src/application/models/utilityTypes/splitWords.ts +76 -0
- package/src/application/models/utilityTypes/trim.ts +28 -0
- package/src/application/models/utilityTypes/unknownArray.ts +25 -0
- package/src/application/models/utils/snakeToCamelTransformer.ts +90 -0
- package/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.ts +68 -0
- package/src/application/models/validators/validateGraphQLColorsConfig.ts +29 -0
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +594 -0
- package/src/application/models/validators/validateGraphQLOrgId.ts +7 -0
- package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +14 -0
- package/src/application/models/validators/validateOrgConfigResults.ts +47 -0
- package/src/application/models/validators/validateOrganizationConfig.ts +37 -0
- package/src/application/models/validators/validateResponse.ts +187 -0
- package/src/application/models/validators/validateSuggestion.ts +16 -0
- package/src/application/models/validators/validateUserEvent.ts +110 -0
- package/src/application/models/variantInfo/index.ts +1 -0
- package/src/application/models/variantInfo/pageVisitInfo.ts +6 -0
- package/src/application/models/variantInfo/plpInfo.ts +3 -0
- package/src/application/models/variantInfo/productInfo.ts +5 -0
- package/src/application/models/variantInfo/variantInfo.ts +23 -0
- package/src/application/service/cachingService.ts +84 -0
- package/src/application/service/cdnService.ts +18 -0
- package/src/application/service/customerService/index.ts +8 -0
- package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +15 -0
- package/src/application/service/customerService/types.ts +31 -0
- package/src/application/service/domMutationObserver.ts +320 -0
- package/src/application/service/domMutations/GridInsertionService.ts +123 -0
- package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +99 -0
- package/src/application/service/domMutations/domInsertionService.ts +90 -0
- package/src/application/service/domMutations/domMutationListener.ts +15 -0
- package/src/application/service/domMutations/domMutationListenerState.ts +52 -0
- package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +41 -0
- package/src/application/service/domMutations/gladly/gladlyListener.ts +61 -0
- package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +41 -0
- package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +119 -0
- package/src/application/service/environmentService.ts +51 -0
- package/src/application/service/featureFlagService.ts +130 -0
- package/src/application/service/kustomerIntegrationService.ts +111 -0
- package/src/application/service/localStorageService.ts +77 -0
- package/src/application/service/pageVariantService.ts +779 -0
- package/src/application/service/searchService.ts +140 -0
- package/src/application/service/sessionStorageService.ts +27 -0
- package/src/application/service/shopifyUrlService.ts +63 -0
- package/src/application/service/userIdentityService.ts +114 -0
- package/src/application/service/windowChatToggleService.ts +71 -0
- package/src/application/service/windowDataLayerService.ts +181 -0
- package/src/application/service/windowFrontendConfigService.ts +104 -0
- package/src/application/utils/__tests__/divideArrays.test.ts +14 -0
- package/src/application/utils/analyticsUtils.ts +110 -0
- package/src/application/utils/coreContextToApiContext.ts +11 -0
- package/src/application/utils/coreUserEventToApiUserEvent.ts +106 -0
- package/src/application/utils/divideArray.ts +7 -0
- package/src/application/utils/domObserver.ts +96 -0
- package/src/application/utils/elementObserver.ts +246 -0
- package/src/application/utils/imageFilter.ts +12 -0
- package/src/application/utils/index.ts +3 -0
- package/src/application/utils/merchantUtils.ts +16 -0
- package/src/application/utils/messageFromFormSubmittedEvent.ts +31 -0
- package/src/application/utils/messageFromQueryEvent.ts +38 -0
- package/src/application/utils/messageFromResponse.ts +133 -0
- package/src/application/utils/messageFromSuggestionEvent.ts +32 -0
- package/src/application/utils/mouseEventTypes.ts +1 -0
- package/src/application/utils/mutationHelper.ts +51 -0
- package/src/application/utils/nextMessageRequestToApiRequest.ts +31 -0
- package/src/application/utils/nodeSelector.ts +133 -0
- package/src/application/utils/overrides.ts +196 -0
- package/src/application/utils/stringUtils.ts +55 -0
- package/src/application/utils/supportedEventRequestToApiRequest.ts +12 -0
- package/src/application/utils/urlsParser.ts +53 -0
- package/src/application/utils/validation.ts +5 -0
- package/src/atoms/app/index.ts +57 -0
- package/src/atoms/app/variant.ts +261 -0
- package/src/atoms/atomStore.ts +34 -0
- package/src/atoms/chat/chatState.ts +44 -0
- package/src/atoms/chat/form.ts +19 -0
- package/src/atoms/chat/index.ts +38 -0
- package/src/atoms/chat/lastMessage.ts +11 -0
- package/src/atoms/chat/messageQueue.ts +65 -0
- package/src/atoms/chat/performanceMetrics.ts +84 -0
- package/src/atoms/chat/renderedWidgetRefs.ts +28 -0
- package/src/atoms/chat/replies.ts +51 -0
- package/src/atoms/chat/suggestions.ts +36 -0
- package/src/atoms/globalSearch.ts +12 -0
- package/src/atoms/index.ts +5 -0
- package/src/atoms/org/customerService.ts +13 -0
- package/src/atoms/org/graphqlConfig.ts +27 -0
- package/src/atoms/org/index.ts +7 -0
- package/src/atoms/org/merchantCss.ts +44 -0
- package/src/atoms/org/org.ts +256 -0
- package/src/atoms/org/orgAnalyticsConfig.ts +28 -0
- package/src/atoms/org/orgPageConfig.ts +38 -0
- package/src/atoms/org/orgUIConfig.ts +122 -0
- package/src/atoms/search/chatSearch.ts +293 -0
- package/src/atoms/search/index.ts +2 -0
- package/src/atoms/search/productFilters.ts +207 -0
- package/src/atoms/search/productSorter.ts +23 -0
- package/src/atoms/search/searchAPI.ts +194 -0
- package/src/atoms/search/types.ts +55 -0
- package/src/atoms/search/utils.ts +18 -0
- package/src/config/divIds.ts +27 -0
- package/src/config/locators/components/chat/entrypoints.ts +13 -0
- package/src/config/locators/components/chat/index.ts +23 -0
- package/src/config/locators/components/chat/preview.ts +13 -0
- package/src/config/locators/components/chat/variants/index.ts +16 -0
- package/src/config/locators/components/common/buttons.ts +6 -0
- package/src/config/locators/components/common/cards.ts +18 -0
- package/src/config/locators/components/common/links.ts +1 -0
- package/src/config/locators/components/common/tables.ts +2 -0
- package/src/config/locators/components/floating-button.ts +2 -0
- package/src/config/locators/components/index.ts +3 -0
- package/src/config/locators/components/report-issue.ts +21 -0
- package/src/config/locators/components/search/index.ts +5 -0
- package/src/config/locators/components/shadow-dom.ts +1 -0
- package/src/config/locators/embedded.ts +21 -0
- package/src/config/locators/index.ts +3 -0
- package/src/config/socialProofClasses.ts +17 -0
- package/src/contexts/chatContext.tsx +451 -0
- package/src/contexts/enviveConfigContext.tsx +70 -0
- package/src/contexts/index.ts +4 -0
- package/src/contexts/systemSettingsContext.tsx +61 -0
- package/src/contexts/types.ts +1059 -0
- package/src/enabled-features.ts +83 -0
- package/src/events/event-types.ts +11 -0
- package/src/events/index.ts +52 -0
- package/src/events/registerAnalyticsListeners.ts +49 -0
- package/src/extension.ts +63 -0
- package/src/hooks/index.ts +22 -0
- package/src/hooks/useBlockBackButton.ts +29 -0
- package/src/hooks/useChatToggle.ts +66 -0
- package/src/hooks/useCustomerSupportHandoff.ts +39 -0
- package/src/hooks/useDebounce.ts +17 -0
- package/src/hooks/useDynamicVariants.ts +210 -0
- package/src/hooks/useElementObserver.ts +245 -0
- package/src/hooks/useFileUpload.ts +61 -0
- package/src/hooks/useGrabAndScroll.ts +133 -0
- package/src/hooks/useHideElements.ts +82 -0
- package/src/hooks/useHorizontalScrollAnimation.ts +115 -0
- package/src/hooks/useImageResolver.ts +51 -0
- package/src/hooks/useIntersection.ts +28 -0
- package/src/hooks/useIsSmallScreen.ts +23 -0
- package/src/hooks/useMessageFilter.ts +49 -0
- package/src/hooks/useMessageScrollObserver.ts +47 -0
- package/src/hooks/useReducedMotionWithOverride.ts +15 -0
- package/src/hooks/useSearch.tsx +433 -0
- package/src/hooks/useSnapCalculator.ts +38 -0
- package/src/hooks/useSnapControl.ts +155 -0
- package/src/hooks/useSystemSettingsContext.ts +12 -0
- package/src/hooks/useTrackComponentVisibleEvent.ts +52 -0
- package/src/hooks/useUpdateAnalyticsProps.ts +56 -0
- package/src/hooks/utils.ts +153 -0
- package/src/index.ts +31 -0
- package/src/initialize.ts +163 -0
- package/src/interceptors/types.ts +6 -0
- package/src/interceptors/useFormEscalation.ts +40 -0
- package/src/interceptors/useMessageInterceptor.ts +32 -0
- package/src/main.ts +85 -0
- package/src/main.tsx +123 -0
- package/src/merchants/bandolier/bandolier.ts +1389 -0
- package/src/merchants/carpe/carpe.ts +656 -0
- package/src/merchants/coterie/coterie.ts +280 -0
- package/src/merchants/default.ts +193 -0
- package/src/merchants/dreamlandBaby/dreamlandBaby.ts +375 -0
- package/src/merchants/fiveCbd/fiveCbd.ts +697 -0
- package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +721 -0
- package/src/merchants/greenpan/greenpan.ts +440 -0
- package/src/merchants/grooveLife/grooveLife.ts +386 -0
- package/src/merchants/homegrownCannabis/homegrownCannabis.ts +468 -0
- package/src/merchants/init-merchant.sh +53 -0
- package/src/merchants/jackArcher/jackArcher.ts +974 -0
- package/src/merchants/jordanCraig/jordanCraig.ts +1927 -0
- package/src/merchants/kindredBravely/kindredBravely.ts +529 -0
- package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +418 -0
- package/src/merchants/larryAndSerges/larryAndSerges.ts +314 -0
- package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +424 -0
- package/src/merchants/longevityrx/longevityrx.ts +368 -0
- package/src/merchants/lookOptic/lookOptic.ts +323 -0
- package/src/merchants/mantraBrand/mantraBrand.ts +838 -0
- package/src/merchants/medterra/medterra.ts +670 -0
- package/src/merchants/modells/modells.ts +546 -0
- package/src/merchants/pressedFloral/pressedFloral.ts +734 -0
- package/src/merchants/skinPerfection/skinPerfection.ts +379 -0
- package/src/merchants/snapSupplements/snapSupplements.ts +325 -0
- package/src/merchants/spanx/spanx.ts +810 -0
- package/src/merchants/spanx/spanxStaging.ts +942 -0
- package/src/merchants/supergoop/supergoop.ts +376 -0
- package/src/merchants/uniqueVintage/uniqueVintage.ts +1314 -0
- package/src/merchants/uniqueVintage/views/useUniqueVintageChatSearch.ts +147 -0
- package/src/merchants/venaCbd/venaCbd.ts +410 -0
- package/src/merchants/westonJonBoucher/westonJonBoucher.ts +473 -0
- package/src/merchants/wineEnthusiast/wineEnthusiast.ts +990 -0
- package/src/merchants/wolfMattress/wolfMattress.ts +411 -0
- package/src/merchants/wolfTactical/wolfTactical.ts +389 -0
- package/src/types/custservice-types.ts +28 -0
- package/src/types/search-filter-types.ts +111 -0
- package/src/types/suggestionBarV2-types.ts +4 -0
- package/src/types/test-types.ts +3 -0
- 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
|
+
};
|