@artisan-commerce/analytics-web 0.2.0-canary.7 → 0.2.0-canary.71
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/dist/bundle.cjs.js +14065 -0
- package/dist/bundle.cjs.js.map +1 -0
- package/dist/bundle.d.ts +5747 -0
- package/dist/bundle.esm.js +14056 -0
- package/dist/bundle.esm.js.map +1 -0
- package/dist/bundle.umd.js +14071 -0
- package/dist/bundle.umd.js.map +1 -0
- package/package.json +42 -56
- package/CHANGELOG.md +0 -389
- package/build/main.bundle.js +0 -46
- package/build/report.json +0 -1
- package/build/src/config/constants.d.ts +0 -4
- package/build/src/index.d.ts +0 -11
- package/build/src/lib/events/auth/changePasswordAttempt/changePasswordAttempt.d.ts +0 -11
- package/build/src/lib/events/auth/changePasswordAttempt/changePasswordAttempt.test.d.ts +0 -1
- package/build/src/lib/events/auth/changePasswordAttempt/changePasswordAttempt.types.d.ts +0 -19
- package/build/src/lib/events/auth/changePasswordFail/changePasswordFail.d.ts +0 -11
- package/build/src/lib/events/auth/changePasswordFail/changePasswordFail.test.d.ts +0 -1
- package/build/src/lib/events/auth/changePasswordFail/changePasswordFail.types.d.ts +0 -22
- package/build/src/lib/events/auth/changePasswordSuccess/changePasswordSuccess.d.ts +0 -11
- package/build/src/lib/events/auth/changePasswordSuccess/changePasswordSuccess.test.d.ts +0 -1
- package/build/src/lib/events/auth/changePasswordSuccess/changePasswordSuccess.types.d.ts +0 -18
- package/build/src/lib/events/auth/index.d.ts +0 -10
- package/build/src/lib/events/auth/index.test.d.ts +0 -1
- package/build/src/lib/events/auth/signIn/signIn.d.ts +0 -11
- package/build/src/lib/events/auth/signIn/signIn.test.d.ts +0 -1
- package/build/src/lib/events/auth/signIn/signIn.types.d.ts +0 -21
- package/build/src/lib/events/auth/signOut/signOut.d.ts +0 -11
- package/build/src/lib/events/auth/signOut/signOut.test.d.ts +0 -1
- package/build/src/lib/events/auth/signOut/signOut.types.d.ts +0 -18
- package/build/src/lib/events/auth/signUp/signUp.d.ts +0 -11
- package/build/src/lib/events/auth/signUp/signUp.test.d.ts +0 -1
- package/build/src/lib/events/auth/signUp/signUp.types.d.ts +0 -21
- package/build/src/lib/events/auth/signUpAttempt/signUpAttempt.d.ts +0 -12
- package/build/src/lib/events/auth/signUpAttempt/signUpAttempt.test.d.ts +0 -1
- package/build/src/lib/events/auth/signUpAttempt/signUpAttempt.types.d.ts +0 -21
- package/build/src/lib/events/banner/bannerImpression/bannerImpression.d.ts +0 -11
- package/build/src/lib/events/banner/bannerImpression/bannerImpression.test.d.ts +0 -1
- package/build/src/lib/events/banner/bannerImpression/bannerImpression.types.d.ts +0 -28
- package/build/src/lib/events/banner/index.d.ts +0 -5
- package/build/src/lib/events/banner/index.test.d.ts +0 -1
- package/build/src/lib/events/banner/selectBanner/selectBanner.d.ts +0 -11
- package/build/src/lib/events/banner/selectBanner/selectBanner.test.d.ts +0 -1
- package/build/src/lib/events/banner/selectBanner/selectBanner.types.d.ts +0 -26
- package/build/src/lib/events/billing/addBillingInfo/addBillingInfo.d.ts +0 -11
- package/build/src/lib/events/billing/addBillingInfo/addBillingInfo.test.d.ts +0 -1
- package/build/src/lib/events/billing/addBillingInfo/addBillingInfo.types.d.ts +0 -20
- package/build/src/lib/events/billing/index.d.ts +0 -6
- package/build/src/lib/events/billing/index.test.d.ts +0 -1
- package/build/src/lib/events/billing/selectBillingInfo/selectBillingInfo.d.ts +0 -11
- package/build/src/lib/events/billing/selectBillingInfo/selectBillingInfo.test.d.ts +0 -1
- package/build/src/lib/events/billing/selectBillingInfo/selectBillingInfo.types.d.ts +0 -22
- package/build/src/lib/events/billing/updateBillingInfo/updateBillingInfo.d.ts +0 -11
- package/build/src/lib/events/billing/updateBillingInfo/updateBillingInfo.test.d.ts +0 -1
- package/build/src/lib/events/billing/updateBillingInfo/updateBillingInfo.types.d.ts +0 -24
- package/build/src/lib/events/booking/bookAppointment/bookAppointment.d.ts +0 -11
- package/build/src/lib/events/booking/bookAppointment/bookAppointment.test.d.ts +0 -1
- package/build/src/lib/events/booking/bookAppointment/bookAppointment.types.d.ts +0 -28
- package/build/src/lib/events/booking/index.d.ts +0 -4
- package/build/src/lib/events/booking/index.test.d.ts +0 -1
- package/build/src/lib/events/category/categoryImpression/categoryImpression.d.ts +0 -11
- package/build/src/lib/events/category/categoryImpression/categoryImpression.test.d.ts +0 -1
- package/build/src/lib/events/category/categoryImpression/categoryImpression.types.d.ts +0 -27
- package/build/src/lib/events/category/index.d.ts +0 -7
- package/build/src/lib/events/category/index.test.d.ts +0 -1
- package/build/src/lib/events/category/searchCategoryAttempt/searchCategoryAttempt.d.ts +0 -11
- package/build/src/lib/events/category/searchCategoryAttempt/searchCategoryAttempt.test.d.ts +0 -1
- package/build/src/lib/events/category/searchCategoryAttempt/searchCategoryAttempt.types.d.ts +0 -20
- package/build/src/lib/events/category/selectCategory/selectCategory.d.ts +0 -12
- package/build/src/lib/events/category/selectCategory/selectCategory.test.d.ts +0 -1
- package/build/src/lib/events/category/selectCategory/selectCategory.types.d.ts +0 -25
- package/build/src/lib/events/category/viewCategory/viewCategory.d.ts +0 -12
- package/build/src/lib/events/category/viewCategory/viewCategory.test.d.ts +0 -1
- package/build/src/lib/events/category/viewCategory/viewCategory.types.d.ts +0 -21
- package/build/src/lib/events/checkout/checkoutAction/checkoutAction.d.ts +0 -11
- package/build/src/lib/events/checkout/checkoutAction/checkoutAction.test.d.ts +0 -1
- package/build/src/lib/events/checkout/checkoutAction/checkoutAction.types.d.ts +0 -22
- package/build/src/lib/events/checkout/index.d.ts +0 -5
- package/build/src/lib/events/checkout/index.test.d.ts +0 -1
- package/build/src/lib/events/checkout/initiateCheckout/initiateCheckout.d.ts +0 -11
- package/build/src/lib/events/checkout/initiateCheckout/initiateCheckout.test.d.ts +0 -1
- package/build/src/lib/events/checkout/initiateCheckout/initiateCheckout.types.d.ts +0 -21
- package/build/src/lib/events/coupon/applyBenefit/applyBenefit.d.ts +0 -11
- package/build/src/lib/events/coupon/applyBenefit/applyBenefit.test.d.ts +0 -1
- package/build/src/lib/events/coupon/applyBenefit/applyBenefit.types.d.ts +0 -24
- package/build/src/lib/events/coupon/couponCodeError/couponCodeError.d.ts +0 -11
- package/build/src/lib/events/coupon/couponCodeError/couponCodeError.test.d.ts +0 -1
- package/build/src/lib/events/coupon/couponCodeError/couponCodeError.types.d.ts +0 -24
- package/build/src/lib/events/coupon/index.d.ts +0 -10
- package/build/src/lib/events/coupon/index.test.d.ts +0 -1
- package/build/src/lib/events/coupon/redeemCouponCode/redeemCouponCode.d.ts +0 -11
- package/build/src/lib/events/coupon/redeemCouponCode/redeemCouponCode.test.d.ts +0 -1
- package/build/src/lib/events/coupon/redeemCouponCode/redeemCouponCode.types.d.ts +0 -24
- package/build/src/lib/events/coupon/removeBenefit/removeBenefit.d.ts +0 -11
- package/build/src/lib/events/coupon/removeBenefit/removeBenefit.test.d.ts +0 -1
- package/build/src/lib/events/coupon/removeBenefit/removeBenefit.types.d.ts +0 -24
- package/build/src/lib/events/coupon/viewBenefitDetails/viewBenefitDetails.d.ts +0 -11
- package/build/src/lib/events/coupon/viewBenefitDetails/viewBenefitDetails.test.d.ts +0 -1
- package/build/src/lib/events/coupon/viewBenefitDetails/viewBenefitDetails.types.d.ts +0 -24
- package/build/src/lib/events/coupon/viewBenefitsWallet/viewBenefitsWallet.d.ts +0 -11
- package/build/src/lib/events/coupon/viewBenefitsWallet/viewBenefitsWallet.test.d.ts +0 -1
- package/build/src/lib/events/coupon/viewBenefitsWallet/viewBenefitsWallet.types.d.ts +0 -20
- package/build/src/lib/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.d.ts +0 -12
- package/build/src/lib/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.test.d.ts +0 -1
- package/build/src/lib/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.types.d.ts +0 -18
- package/build/src/lib/events/credit/addCredits/addCredits.d.ts +0 -11
- package/build/src/lib/events/credit/addCredits/addCredits.test.d.ts +0 -1
- package/build/src/lib/events/credit/addCredits/addCredits.types.d.ts +0 -20
- package/build/src/lib/events/credit/index.d.ts +0 -6
- package/build/src/lib/events/credit/index.test.d.ts +0 -1
- package/build/src/lib/events/credit/spendCredits/spendCredits.d.ts +0 -11
- package/build/src/lib/events/credit/spendCredits/spendCredits.test.d.ts +0 -1
- package/build/src/lib/events/credit/spendCredits/spendCredits.types.d.ts +0 -20
- package/build/src/lib/events/credit/viewCredits/viewCredits.d.ts +0 -11
- package/build/src/lib/events/credit/viewCredits/viewCredits.test.d.ts +0 -1
- package/build/src/lib/events/credit/viewCredits/viewCredits.types.d.ts +0 -18
- package/build/src/lib/events/customEvent/customEvent.d.ts +0 -12
- package/build/src/lib/events/customEvent/customEvent.test.d.ts +0 -1
- package/build/src/lib/events/customEvent/customEvent.types.d.ts +0 -19
- package/build/src/lib/events/events.d.ts +0 -136
- package/build/src/lib/events/events.test.d.ts +0 -1
- package/build/src/lib/events/events.types.d.ts +0 -24
- package/build/src/lib/events/fulfillment/index.d.ts +0 -5
- package/build/src/lib/events/fulfillment/index.test.d.ts +0 -1
- package/build/src/lib/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.d.ts +0 -11
- package/build/src/lib/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.test.d.ts +0 -1
- package/build/src/lib/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.types.d.ts +0 -20
- package/build/src/lib/events/fulfillment/viewTracking/viewTracking.d.ts +0 -11
- package/build/src/lib/events/fulfillment/viewTracking/viewTracking.test.d.ts +0 -1
- package/build/src/lib/events/fulfillment/viewTracking/viewTracking.types.d.ts +0 -20
- package/build/src/lib/events/geo/changeLocation/changeLocation.d.ts +0 -11
- package/build/src/lib/events/geo/changeLocation/changeLocation.test.d.ts +0 -1
- package/build/src/lib/events/geo/changeLocation/changeLocation.types.d.ts +0 -26
- package/build/src/lib/events/geo/findLocation/findLocation.d.ts +0 -11
- package/build/src/lib/events/geo/findLocation/findLocation.test.d.ts +0 -1
- package/build/src/lib/events/geo/findLocation/findLocation.types.d.ts +0 -22
- package/build/src/lib/events/geo/index.d.ts +0 -7
- package/build/src/lib/events/geo/index.test.d.ts +0 -1
- package/build/src/lib/events/geo/outOfCoverage/outOfCoverage.d.ts +0 -11
- package/build/src/lib/events/geo/outOfCoverage/outOfCoverage.test.d.ts +0 -1
- package/build/src/lib/events/geo/outOfCoverage/outOfCoverage.types.d.ts +0 -22
- package/build/src/lib/events/geo/setLocation/setLocation.d.ts +0 -11
- package/build/src/lib/events/geo/setLocation/setLocation.test.d.ts +0 -1
- package/build/src/lib/events/geo/setLocation/setLocation.types.d.ts +0 -22
- package/build/src/lib/events/help/index.d.ts +0 -4
- package/build/src/lib/events/help/index.test.d.ts +0 -1
- package/build/src/lib/events/help/requestAssistance/requestAssistance.d.ts +0 -12
- package/build/src/lib/events/help/requestAssistance/requestAssistance.test.d.ts +0 -1
- package/build/src/lib/events/help/requestAssistance/requestAssistance.types.d.ts +0 -20
- package/build/src/lib/events/loyalty/earnPoints/earnPoints.d.ts +0 -11
- package/build/src/lib/events/loyalty/earnPoints/earnPoints.test.d.ts +0 -1
- package/build/src/lib/events/loyalty/earnPoints/earnPoints.types.d.ts +0 -21
- package/build/src/lib/events/loyalty/index.d.ts +0 -7
- package/build/src/lib/events/loyalty/index.test.d.ts +0 -1
- package/build/src/lib/events/loyalty/sharePoints/sharePoints.d.ts +0 -11
- package/build/src/lib/events/loyalty/sharePoints/sharePoints.test.d.ts +0 -1
- package/build/src/lib/events/loyalty/sharePoints/sharePoints.types.d.ts +0 -20
- package/build/src/lib/events/loyalty/spendPoints/spendPoints.d.ts +0 -11
- package/build/src/lib/events/loyalty/spendPoints/spendPoints.test.d.ts +0 -1
- package/build/src/lib/events/loyalty/spendPoints/spendPoints.types.d.ts +0 -20
- package/build/src/lib/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.d.ts +0 -11
- package/build/src/lib/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.test.d.ts +0 -1
- package/build/src/lib/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.types.d.ts +0 -20
- package/build/src/lib/events/order/cancelOrder/cancelOrder.d.ts +0 -11
- package/build/src/lib/events/order/cancelOrder/cancelOrder.test.d.ts +0 -1
- package/build/src/lib/events/order/cancelOrder/cancelOrder.types.d.ts +0 -22
- package/build/src/lib/events/order/index.d.ts +0 -6
- package/build/src/lib/events/order/index.test.d.ts +0 -1
- package/build/src/lib/events/order/rateOrder/rateOrder.d.ts +0 -11
- package/build/src/lib/events/order/rateOrder/rateOrder.test.d.ts +0 -1
- package/build/src/lib/events/order/rateOrder/rateOrder.types.d.ts +0 -26
- package/build/src/lib/events/order/requestRefund/requestRefund.d.ts +0 -11
- package/build/src/lib/events/order/requestRefund/requestRefund.test.d.ts +0 -1
- package/build/src/lib/events/order/requestRefund/requestRefund.types.d.ts +0 -24
- package/build/src/lib/events/other/generateLead/generateLead.d.ts +0 -11
- package/build/src/lib/events/other/generateLead/generateLead.test.d.ts +0 -1
- package/build/src/lib/events/other/generateLead/generateLead.types.d.ts +0 -18
- package/build/src/lib/events/other/index.d.ts +0 -6
- package/build/src/lib/events/other/index.test.d.ts +0 -1
- package/build/src/lib/events/other/pageView/pageView.d.ts +0 -12
- package/build/src/lib/events/other/pageView/pageView.test.d.ts +0 -1
- package/build/src/lib/events/other/pageView/pageView.types.d.ts +0 -22
- package/build/src/lib/events/other/searchPageContent/searchPageContent.d.ts +0 -11
- package/build/src/lib/events/other/searchPageContent/searchPageContent.test.d.ts +0 -1
- package/build/src/lib/events/other/searchPageContent/searchPageContent.types.d.ts +0 -20
- package/build/src/lib/events/payment/changePaymentType/changePaymentType.d.ts +0 -11
- package/build/src/lib/events/payment/changePaymentType/changePaymentType.test.d.ts +0 -1
- package/build/src/lib/events/payment/changePaymentType/changePaymentType.types.d.ts +0 -29
- package/build/src/lib/events/payment/index.d.ts +0 -6
- package/build/src/lib/events/payment/index.test.d.ts +0 -1
- package/build/src/lib/events/payment/selectPaymentType/selectPaymentType.d.ts +0 -11
- package/build/src/lib/events/payment/selectPaymentType/selectPaymentType.test.d.ts +0 -1
- package/build/src/lib/events/payment/selectPaymentType/selectPaymentType.types.d.ts +0 -23
- package/build/src/lib/events/payment/setPaymentInfo/setPaymentInfo.d.ts +0 -11
- package/build/src/lib/events/payment/setPaymentInfo/setPaymentInfo.test.d.ts +0 -1
- package/build/src/lib/events/payment/setPaymentInfo/setPaymentInfo.types.d.ts +0 -25
- package/build/src/lib/events/product/customizeProduct/customizeProduct.d.ts +0 -11
- package/build/src/lib/events/product/customizeProduct/customizeProduct.test.d.ts +0 -1
- package/build/src/lib/events/product/customizeProduct/customizeProduct.types.d.ts +0 -21
- package/build/src/lib/events/product/filterProducts/filterProducts.d.ts +0 -11
- package/build/src/lib/events/product/filterProducts/filterProducts.test.d.ts +0 -1
- package/build/src/lib/events/product/filterProducts/filterProducts.types.d.ts +0 -24
- package/build/src/lib/events/product/index.d.ts +0 -12
- package/build/src/lib/events/product/index.test.d.ts +0 -1
- package/build/src/lib/events/product/productImpression/productImpression.d.ts +0 -11
- package/build/src/lib/events/product/productImpression/productImpression.test.d.ts +0 -1
- package/build/src/lib/events/product/productImpression/productImpression.types.d.ts +0 -27
- package/build/src/lib/events/product/searchProductAttempt/searchProductAttempt.d.ts +0 -11
- package/build/src/lib/events/product/searchProductAttempt/searchProductAttempt.test.d.ts +0 -1
- package/build/src/lib/events/product/searchProductAttempt/searchProductAttempt.types.d.ts +0 -20
- package/build/src/lib/events/product/searchProductNotFound/searchProductNotFound.d.ts +0 -11
- package/build/src/lib/events/product/searchProductNotFound/searchProductNotFound.test.d.ts +0 -1
- package/build/src/lib/events/product/searchProductNotFound/searchProductNotFound.types.d.ts +0 -20
- package/build/src/lib/events/product/searchProductSuccess/searchProductSuccess.d.ts +0 -11
- package/build/src/lib/events/product/searchProductSuccess/searchProductSuccess.test.d.ts +0 -1
- package/build/src/lib/events/product/searchProductSuccess/searchProductSuccess.types.d.ts +0 -20
- package/build/src/lib/events/product/selectProduct/selectProduct.d.ts +0 -12
- package/build/src/lib/events/product/selectProduct/selectProduct.test.d.ts +0 -1
- package/build/src/lib/events/product/selectProduct/selectProduct.types.d.ts +0 -25
- package/build/src/lib/events/product/sortProducts/sortProducts.d.ts +0 -11
- package/build/src/lib/events/product/sortProducts/sortProducts.test.d.ts +0 -1
- package/build/src/lib/events/product/sortProducts/sortProducts.types.d.ts +0 -26
- package/build/src/lib/events/product/viewProductDetails/viewProductDetails.d.ts +0 -12
- package/build/src/lib/events/product/viewProductDetails/viewProductDetails.test.d.ts +0 -1
- package/build/src/lib/events/product/viewProductDetails/viewProductDetails.types.d.ts +0 -23
- package/build/src/lib/events/purchase/index.d.ts +0 -6
- package/build/src/lib/events/purchase/index.test.d.ts +0 -1
- package/build/src/lib/events/purchase/purchaseAttempt/purchaseAttempt.d.ts +0 -11
- package/build/src/lib/events/purchase/purchaseAttempt/purchaseAttempt.test.d.ts +0 -1
- package/build/src/lib/events/purchase/purchaseAttempt/purchaseAttempt.types.d.ts +0 -33
- package/build/src/lib/events/purchase/purchaseFail/purchaseFail.d.ts +0 -11
- package/build/src/lib/events/purchase/purchaseFail/purchaseFail.test.d.ts +0 -1
- package/build/src/lib/events/purchase/purchaseFail/purchaseFail.types.d.ts +0 -37
- package/build/src/lib/events/purchase/purchaseSuccess/purchaseSuccess.d.ts +0 -11
- package/build/src/lib/events/purchase/purchaseSuccess/purchaseSuccess.test.d.ts +0 -1
- package/build/src/lib/events/purchase/purchaseSuccess/purchaseSuccess.types.d.ts +0 -35
- package/build/src/lib/events/settings/index.d.ts +0 -4
- package/build/src/lib/events/settings/index.test.d.ts +0 -1
- package/build/src/lib/events/settings/viewSettings/viewSettings.d.ts +0 -11
- package/build/src/lib/events/settings/viewSettings/viewSettings.test.d.ts +0 -1
- package/build/src/lib/events/settings/viewSettings/viewSettings.types.d.ts +0 -18
- package/build/src/lib/events/shipping/addShippingAddress/addShippingAddress.d.ts +0 -11
- package/build/src/lib/events/shipping/addShippingAddress/addShippingAddress.test.d.ts +0 -1
- package/build/src/lib/events/shipping/addShippingAddress/addShippingAddress.types.d.ts +0 -26
- package/build/src/lib/events/shipping/index.d.ts +0 -6
- package/build/src/lib/events/shipping/index.test.d.ts +0 -1
- package/build/src/lib/events/shipping/selectShippingAddress/selectShippingAddress.d.ts +0 -11
- package/build/src/lib/events/shipping/selectShippingAddress/selectShippingAddress.test.d.ts +0 -1
- package/build/src/lib/events/shipping/selectShippingAddress/selectShippingAddress.types.d.ts +0 -31
- package/build/src/lib/events/shipping/updateShippingAddress/updateShippingAddress.d.ts +0 -11
- package/build/src/lib/events/shipping/updateShippingAddress/updateShippingAddress.test.d.ts +0 -1
- package/build/src/lib/events/shipping/updateShippingAddress/updateShippingAddress.types.d.ts +0 -25
- package/build/src/lib/events/shoppingCart/addProductToCart/addProductToCart.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/addProductToCart/addProductToCart.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/addProductToCart/addProductToCart.types.d.ts +0 -27
- package/build/src/lib/events/shoppingCart/addProductToWishlist/addProductToWishlist.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/addProductToWishlist/addProductToWishlist.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/addProductToWishlist/addProductToWishlist.types.d.ts +0 -23
- package/build/src/lib/events/shoppingCart/clearCart/clearCart.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/clearCart/clearCart.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/clearCart/clearCart.types.d.ts +0 -23
- package/build/src/lib/events/shoppingCart/index.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/index.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/removeProductFromCart/removeProductFromCart.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/removeProductFromCart/removeProductFromCart.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/removeProductFromCart/removeProductFromCart.types.d.ts +0 -27
- package/build/src/lib/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.types.d.ts +0 -23
- package/build/src/lib/events/shoppingCart/updateProductInCart/updateProductInCart.d.ts +0 -12
- package/build/src/lib/events/shoppingCart/updateProductInCart/updateProductInCart.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/updateProductInCart/updateProductInCart.types.d.ts +0 -29
- package/build/src/lib/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.d.ts +0 -12
- package/build/src/lib/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.types.d.ts +0 -25
- package/build/src/lib/events/shoppingCart/viewCart/viewCart.d.ts +0 -11
- package/build/src/lib/events/shoppingCart/viewCart/viewCart.test.d.ts +0 -1
- package/build/src/lib/events/shoppingCart/viewCart/viewCart.types.d.ts +0 -23
- package/build/src/lib/events/social/index.d.ts +0 -4
- package/build/src/lib/events/social/index.test.d.ts +0 -1
- package/build/src/lib/events/social/share/share.d.ts +0 -11
- package/build/src/lib/events/social/share/share.test.d.ts +0 -1
- package/build/src/lib/events/social/share/share.types.d.ts +0 -24
- package/build/src/lib/events/store/changeStore/changeStore.d.ts +0 -11
- package/build/src/lib/events/store/changeStore/changeStore.test.d.ts +0 -1
- package/build/src/lib/events/store/changeStore/changeStore.types.d.ts +0 -23
- package/build/src/lib/events/store/index.d.ts +0 -5
- package/build/src/lib/events/store/index.test.d.ts +0 -1
- package/build/src/lib/events/store/setStore/setStore.d.ts +0 -11
- package/build/src/lib/events/store/setStore/setStore.test.d.ts +0 -1
- package/build/src/lib/events/store/setStore/setStore.types.d.ts +0 -21
- package/build/src/lib/events/user/index.d.ts +0 -5
- package/build/src/lib/events/user/index.test.d.ts +0 -1
- package/build/src/lib/events/user/setUserInfo/setUserInfo.d.ts +0 -12
- package/build/src/lib/events/user/setUserInfo/setUserInfo.test.d.ts +0 -1
- package/build/src/lib/events/user/setUserInfo/setUserInfo.types.d.ts +0 -18
- package/build/src/lib/events/user/updateUserInfo/updateUserInfo.d.ts +0 -12
- package/build/src/lib/events/user/updateUserInfo/updateUserInfo.test.d.ts +0 -1
- package/build/src/lib/events/user/updateUserInfo/updateUserInfo.types.d.ts +0 -20
- package/build/src/lib/events/vendor/changeVendor/changeVendor.d.ts +0 -11
- package/build/src/lib/events/vendor/changeVendor/changeVendor.test.d.ts +0 -1
- package/build/src/lib/events/vendor/changeVendor/changeVendor.types.d.ts +0 -27
- package/build/src/lib/events/vendor/index.d.ts +0 -5
- package/build/src/lib/events/vendor/index.test.d.ts +0 -1
- package/build/src/lib/events/vendor/setVendor/setVendor.d.ts +0 -11
- package/build/src/lib/events/vendor/setVendor/setVendor.test.d.ts +0 -1
- package/build/src/lib/events/vendor/setVendor/setVendor.types.d.ts +0 -23
- package/build/src/lib/events/workflow/index.d.ts +0 -5
- package/build/src/lib/events/workflow/index.test.d.ts +0 -1
- package/build/src/lib/events/workflow/selectWorkflow/selectWorkflow.d.ts +0 -11
- package/build/src/lib/events/workflow/selectWorkflow/selectWorkflow.test.d.ts +0 -1
- package/build/src/lib/events/workflow/selectWorkflow/selectWorkflow.types.d.ts +0 -21
- package/build/src/lib/events/workflow/updateWorkflow/updateWorkflow.d.ts +0 -11
- package/build/src/lib/events/workflow/updateWorkflow/updateWorkflow.test.d.ts +0 -1
- package/build/src/lib/events/workflow/updateWorkflow/updateWorkflow.types.d.ts +0 -23
- package/build/src/lib/initAnalytics/initAnalytics.d.ts +0 -8
- package/build/src/lib/initAnalytics/initAnalytics.helpers.d.ts +0 -17
- package/build/src/lib/initAnalytics/initAnalytics.test.d.ts +0 -1
- package/build/src/lib/initAnalytics/initAnalytics.types.d.ts +0 -44
- package/build/src/lib/providers/AnalyticsProvider/AnalyticsProvider.d.ts +0 -44
- package/build/src/lib/providers/AnalyticsProvider/AnalyticsProvider.test.d.ts +0 -1
- package/build/src/lib/providers/AnalyticsProvider/AnalyticsProvider.types.d.ts +0 -32
- package/build/src/lib/providers/FacebookPixel/FacebookPixel.d.ts +0 -35
- package/build/src/lib/providers/FacebookPixel/FacebookPixel.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/FacebookPixel.types.d.ts +0 -58
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordAttempt/changePasswordAttempt.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordAttempt/changePasswordAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordAttempt/changePasswordAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordFail/changePasswordFail.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordFail/changePasswordFail.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordFail/changePasswordFail.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordSuccess/changePasswordSuccess.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordSuccess/changePasswordSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/changePasswordSuccess/changePasswordSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/index.d.ts +0 -10
- package/build/src/lib/providers/FacebookPixel/events/auth/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/signIn/signIn.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/signIn/signIn.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/signIn/signIn.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/signOut/signOut.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/signOut/signOut.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/signOut/signOut.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/signUp/signUp.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/signUp/signUp.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/signUp/signUp.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/auth/signUpAttempt/signUpAttempt.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/auth/signUpAttempt/signUpAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/auth/signUpAttempt/signUpAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/banner/bannerImpression/bannerImpression.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/banner/bannerImpression/bannerImpression.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/banner/bannerImpression/bannerImpression.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/banner/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/banner/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/banner/selectBanner/selectBanner.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/banner/selectBanner/selectBanner.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/banner/selectBanner/selectBanner.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/billing/addBillingInfo/addBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/billing/addBillingInfo/addBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/billing/addBillingInfo/addBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/billing/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/billing/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/billing/selectBillingInfo/selectBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/billing/selectBillingInfo/selectBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/billing/selectBillingInfo/selectBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/billing/updateBillingInfo/updateBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/billing/updateBillingInfo/updateBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/billing/updateBillingInfo/updateBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/booking/bookAppointment/bookAppointment.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/booking/bookAppointment/bookAppointment.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/booking/bookAppointment/bookAppointment.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/booking/index.d.ts +0 -4
- package/build/src/lib/providers/FacebookPixel/events/booking/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/categoryImpression/categoryImpression.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/category/categoryImpression/categoryImpression.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/categoryImpression/categoryImpression.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/category/index.d.ts +0 -7
- package/build/src/lib/providers/FacebookPixel/events/category/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/searchCategoryAttempt/searchCategoryAttempt.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/category/searchCategoryAttempt/searchCategoryAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/searchCategoryAttempt/searchCategoryAttempt.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/category/selectCategory/selectCategory.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/category/selectCategory/selectCategory.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/selectCategory/selectCategory.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/category/viewCategory/viewCategory.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/category/viewCategory/viewCategory.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/category/viewCategory/viewCategory.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/checkout/checkoutAction/checkoutAction.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/checkout/checkoutAction/checkoutAction.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/checkout/checkoutAction/checkoutAction.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/checkout/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/checkout/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/checkout/initiateCheckout/initiateCheckout.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/checkout/initiateCheckout/initiateCheckout.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/checkout/initiateCheckout/initiateCheckout.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/coupon/applyBenefit/applyBenefit.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/applyBenefit/applyBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/applyBenefit/applyBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/couponCodeError/couponCodeError.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/couponCodeError/couponCodeError.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/couponCodeError/couponCodeError.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/index.d.ts +0 -10
- package/build/src/lib/providers/FacebookPixel/events/coupon/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/redeemCouponCode/redeemCouponCode.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/redeemCouponCode/redeemCouponCode.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/redeemCouponCode/redeemCouponCode.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/removeBenefit/removeBenefit.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/removeBenefit/removeBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/removeBenefit/removeBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitDetails/viewBenefitDetails.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitDetails/viewBenefitDetails.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitDetails/viewBenefitDetails.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitsWallet/viewBenefitsWallet.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitsWallet/viewBenefitsWallet.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewBenefitsWallet/viewBenefitsWallet.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/credit/addCredits/addCredits.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/credit/addCredits/addCredits.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/credit/addCredits/addCredits.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/credit/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/credit/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/credit/spendCredits/spendCredits.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/credit/spendCredits/spendCredits.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/credit/spendCredits/spendCredits.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/credit/viewCredits/viewCredits.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/credit/viewCredits/viewCredits.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/credit/viewCredits/viewCredits.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/customEvent/customEvent.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/customEvent/customEvent.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/customEvent/customEvent.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/events.d.ts +0 -26
- package/build/src/lib/providers/FacebookPixel/events/events.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewTracking/viewTracking.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewTracking/viewTracking.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/fulfillment/viewTracking/viewTracking.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/geo/changeLocation/changeLocation.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/geo/changeLocation/changeLocation.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/geo/changeLocation/changeLocation.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/geo/findLocation/findLocation.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/geo/findLocation/findLocation.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/geo/findLocation/findLocation.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/geo/index.d.ts +0 -7
- package/build/src/lib/providers/FacebookPixel/events/geo/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/geo/outOfCoverage/outOfCoverage.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/geo/outOfCoverage/outOfCoverage.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/geo/outOfCoverage/outOfCoverage.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/geo/setLocation/setLocation.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/geo/setLocation/setLocation.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/geo/setLocation/setLocation.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/help/index.d.ts +0 -4
- package/build/src/lib/providers/FacebookPixel/events/help/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/help/requestAssistance/requestAssistance.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/help/requestAssistance/requestAssistance.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/help/requestAssistance/requestAssistance.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/loyalty/earnPoints/earnPoints.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/loyalty/earnPoints/earnPoints.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/loyalty/earnPoints/earnPoints.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/loyalty/index.d.ts +0 -7
- package/build/src/lib/providers/FacebookPixel/events/loyalty/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/loyalty/sharePoints/sharePoints.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/loyalty/sharePoints/sharePoints.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/loyalty/sharePoints/sharePoints.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/loyalty/spendPoints/spendPoints.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/loyalty/spendPoints/spendPoints.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/loyalty/spendPoints/spendPoints.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/order/cancelOrder/cancelOrder.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/order/cancelOrder/cancelOrder.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/order/cancelOrder/cancelOrder.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/order/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/order/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/order/rateOrder/rateOrder.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/order/rateOrder/rateOrder.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/order/rateOrder/rateOrder.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/order/requestRefund/requestRefund.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/order/requestRefund/requestRefund.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/order/requestRefund/requestRefund.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/other/generateLead/generateLead.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/other/generateLead/generateLead.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/other/generateLead/generateLead.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/other/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/other/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/other/pageView/pageView.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/other/pageView/pageView.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/other/pageView/pageView.types.d.ts +0 -13
- package/build/src/lib/providers/FacebookPixel/events/other/searchPageContent/searchPageContent.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/other/searchPageContent/searchPageContent.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/other/searchPageContent/searchPageContent.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/payment/changePaymentType/changePaymentType.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/payment/changePaymentType/changePaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/payment/changePaymentType/changePaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/payment/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/payment/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/payment/selectPaymentType/selectPaymentType.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/payment/selectPaymentType/selectPaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/payment/selectPaymentType/selectPaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/payment/setPaymentInfo/setPaymentInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/payment/setPaymentInfo/setPaymentInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/payment/setPaymentInfo/setPaymentInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/product/customizeProduct/customizeProduct.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/customizeProduct/customizeProduct.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/customizeProduct/customizeProduct.types.d.ts +0 -15
- package/build/src/lib/providers/FacebookPixel/events/product/filterProducts/filterProducts.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/filterProducts/filterProducts.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/filterProducts/filterProducts.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/product/index.d.ts +0 -12
- package/build/src/lib/providers/FacebookPixel/events/product/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/productImpression/productImpression.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/productImpression/productImpression.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/productImpression/productImpression.types.d.ts +0 -15
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductAttempt/searchProductAttempt.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductAttempt/searchProductAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductAttempt/searchProductAttempt.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductNotFound/searchProductNotFound.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductNotFound/searchProductNotFound.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductNotFound/searchProductNotFound.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductSuccess/searchProductSuccess.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductSuccess/searchProductSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/searchProductSuccess/searchProductSuccess.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/product/selectProduct/selectProduct.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/selectProduct/selectProduct.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/selectProduct/selectProduct.types.d.ts +0 -15
- package/build/src/lib/providers/FacebookPixel/events/product/sortProducts/sortProducts.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/sortProducts/sortProducts.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/sortProducts/sortProducts.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/product/viewProductDetails/viewProductDetails.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/product/viewProductDetails/viewProductDetails.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/product/viewProductDetails/viewProductDetails.types.d.ts +0 -15
- package/build/src/lib/providers/FacebookPixel/events/purchase/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/purchase/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseAttempt/purchaseAttempt.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseAttempt/purchaseAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseAttempt/purchaseAttempt.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseFail/purchaseFail.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseFail/purchaseFail.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseFail/purchaseFail.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseSuccess/purchaseSuccess.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseSuccess/purchaseSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/purchase/purchaseSuccess/purchaseSuccess.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/settings/index.d.ts +0 -4
- package/build/src/lib/providers/FacebookPixel/events/settings/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/settings/viewSettings/viewSettings.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/settings/viewSettings/viewSettings.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/settings/viewSettings/viewSettings.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/shipping/addShippingAddress/addShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shipping/addShippingAddress/addShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shipping/addShippingAddress/addShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/shipping/index.d.ts +0 -6
- package/build/src/lib/providers/FacebookPixel/events/shipping/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shipping/selectShippingAddress/selectShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shipping/selectShippingAddress/selectShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shipping/selectShippingAddress/selectShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/shipping/updateShippingAddress/updateShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shipping/updateShippingAddress/updateShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shipping/updateShippingAddress/updateShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToCart/addProductToCart.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToCart/addProductToCart.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToCart/addProductToCart.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToWishlist/addProductToWishlist.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToWishlist/addProductToWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/addProductToWishlist/addProductToWishlist.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/clearCart/clearCart.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/clearCart/clearCart.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/clearCart/clearCart.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/index.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromCart/removeProductFromCart.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromCart/removeProductFromCart.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromCart/removeProductFromCart.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInCart/updateProductInCart.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInCart/updateProductInCart.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInCart/updateProductInCart.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/viewCart/viewCart.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/viewCart/viewCart.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/shoppingCart/viewCart/viewCart.types.d.ts +0 -16
- package/build/src/lib/providers/FacebookPixel/events/social/index.d.ts +0 -4
- package/build/src/lib/providers/FacebookPixel/events/social/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/social/share/share.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/social/share/share.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/social/share/share.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/store/changeStore/changeStore.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/store/changeStore/changeStore.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/store/changeStore/changeStore.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/store/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/store/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/store/setStore/setStore.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/store/setStore/setStore.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/store/setStore/setStore.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/user/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/user/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/user/setUserInfo/setUserInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/user/setUserInfo/setUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/user/setUserInfo/setUserInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/user/updateUserInfo/updateUserInfo.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/user/updateUserInfo/updateUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/user/updateUserInfo/updateUserInfo.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/vendor/changeVendor/changeVendor.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/vendor/changeVendor/changeVendor.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/vendor/changeVendor/changeVendor.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/vendor/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/vendor/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/vendor/setVendor/setVendor.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/vendor/setVendor/setVendor.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/vendor/setVendor/setVendor.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/workflow/index.d.ts +0 -5
- package/build/src/lib/providers/FacebookPixel/events/workflow/index.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/workflow/selectWorkflow/selectWorkflow.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/workflow/selectWorkflow/selectWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/workflow/selectWorkflow/selectWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/FacebookPixel/events/workflow/updateWorkflow/updateWorkflow.d.ts +0 -11
- package/build/src/lib/providers/FacebookPixel/events/workflow/updateWorkflow/updateWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/FacebookPixel/events/workflow/updateWorkflow/updateWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/GlobalProvider/GlobalProvider.d.ts +0 -57
- package/build/src/lib/providers/GlobalProvider/GlobalProvider.test.d.ts +0 -1
- package/build/src/lib/providers/GlobalProvider/GlobalProvider.types.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/GoogleAnalytics.d.ts +0 -39
- package/build/src/lib/providers/GoogleAnalytics/GoogleAnalytics.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/GoogleAnalytics.types.d.ts +0 -114
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordAttempt/changePasswordAttempt.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordAttempt/changePasswordAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordAttempt/changePasswordAttempt.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordFail/changePasswordFail.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordFail/changePasswordFail.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordFail/changePasswordFail.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordSuccess/changePasswordSuccess.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordSuccess/changePasswordSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/changePasswordSuccess/changePasswordSuccess.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/auth/index.d.ts +0 -10
- package/build/src/lib/providers/GoogleAnalytics/events/auth/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signIn/signIn.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signIn/signIn.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signIn/signIn.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signOut/signOut.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signOut/signOut.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signOut/signOut.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUp/signUp.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUp/signUp.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUp/signUp.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUpAttempt/signUpAttempt.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUpAttempt/signUpAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/auth/signUpAttempt/signUpAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/banner/bannerImpression/bannerImpression.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/banner/bannerImpression/bannerImpression.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/banner/bannerImpression/bannerImpression.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/banner/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/banner/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/banner/selectBanner/selectBanner.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/banner/selectBanner/selectBanner.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/banner/selectBanner/selectBanner.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/billing/addBillingInfo/addBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/billing/addBillingInfo/addBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/billing/addBillingInfo/addBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/billing/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/billing/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/billing/selectBillingInfo/selectBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/billing/selectBillingInfo/selectBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/billing/selectBillingInfo/selectBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/billing/updateBillingInfo/updateBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/billing/updateBillingInfo/updateBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/billing/updateBillingInfo/updateBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/booking/bookAppointment/bookAppointment.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/booking/bookAppointment/bookAppointment.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/booking/bookAppointment/bookAppointment.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/booking/index.d.ts +0 -4
- package/build/src/lib/providers/GoogleAnalytics/events/booking/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/categoryImpression/categoryImpression.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/category/categoryImpression/categoryImpression.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/categoryImpression/categoryImpression.types.d.ts +0 -15
- package/build/src/lib/providers/GoogleAnalytics/events/category/index.d.ts +0 -7
- package/build/src/lib/providers/GoogleAnalytics/events/category/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/searchCategoryAttempt/searchCategoryAttempt.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/category/searchCategoryAttempt/searchCategoryAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/searchCategoryAttempt/searchCategoryAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/category/selectCategory/selectCategory.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/category/selectCategory/selectCategory.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/selectCategory/selectCategory.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/category/viewCategory/viewCategory.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/category/viewCategory/viewCategory.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/category/viewCategory/viewCategory.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/checkoutAction/checkoutAction.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/checkoutAction/checkoutAction.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/checkoutAction/checkoutAction.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/initiateCheckout/initiateCheckout.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/initiateCheckout/initiateCheckout.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/checkout/initiateCheckout/initiateCheckout.types.d.ts +0 -13
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/applyBenefit/applyBenefit.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/applyBenefit/applyBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/applyBenefit/applyBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/couponCodeError/couponCodeError.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/couponCodeError/couponCodeError.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/couponCodeError/couponCodeError.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/index.d.ts +0 -10
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/redeemCouponCode/redeemCouponCode.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/redeemCouponCode/redeemCouponCode.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/redeemCouponCode/redeemCouponCode.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/removeBenefit/removeBenefit.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/removeBenefit/removeBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/removeBenefit/removeBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitDetails/viewBenefitDetails.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitDetails/viewBenefitDetails.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitDetails/viewBenefitDetails.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitsWallet/viewBenefitsWallet.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitsWallet/viewBenefitsWallet.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitsWallet/viewBenefitsWallet.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/credit/addCredits/addCredits.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/credit/addCredits/addCredits.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/credit/addCredits/addCredits.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/credit/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/credit/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/credit/spendCredits/spendCredits.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/credit/spendCredits/spendCredits.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/credit/spendCredits/spendCredits.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/credit/viewCredits/viewCredits.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/credit/viewCredits/viewCredits.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/credit/viewCredits/viewCredits.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/customEvent/customEvent.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/customEvent/customEvent.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/customEvent/customEvent.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/events.d.ts +0 -26
- package/build/src/lib/providers/GoogleAnalytics/events/events.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewTracking/viewTracking.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewTracking/viewTracking.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/fulfillment/viewTracking/viewTracking.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/geo/changeLocation/changeLocation.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/geo/changeLocation/changeLocation.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/geo/changeLocation/changeLocation.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/geo/findLocation/findLocation.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/geo/findLocation/findLocation.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/geo/findLocation/findLocation.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/geo/index.d.ts +0 -7
- package/build/src/lib/providers/GoogleAnalytics/events/geo/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/geo/outOfCoverage/outOfCoverage.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/geo/outOfCoverage/outOfCoverage.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/geo/outOfCoverage/outOfCoverage.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/geo/setLocation/setLocation.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/geo/setLocation/setLocation.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/geo/setLocation/setLocation.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/help/index.d.ts +0 -4
- package/build/src/lib/providers/GoogleAnalytics/events/help/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/help/requestAssistance/requestAssistance.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/help/requestAssistance/requestAssistance.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/help/requestAssistance/requestAssistance.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/earnPoints/earnPoints.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/earnPoints/earnPoints.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/earnPoints/earnPoints.types.d.ts +0 -18
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/index.d.ts +0 -7
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/sharePoints/sharePoints.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/sharePoints/sharePoints.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/sharePoints/sharePoints.types.d.ts +0 -18
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/spendPoints/spendPoints.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/spendPoints/spendPoints.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/spendPoints/spendPoints.types.d.ts +0 -18
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/order/cancelOrder/cancelOrder.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/order/cancelOrder/cancelOrder.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/order/cancelOrder/cancelOrder.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/order/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/order/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/order/rateOrder/rateOrder.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/order/rateOrder/rateOrder.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/order/rateOrder/rateOrder.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/order/requestRefund/requestRefund.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/order/requestRefund/requestRefund.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/order/requestRefund/requestRefund.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/other/generateLead/generateLead.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/other/generateLead/generateLead.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/other/generateLead/generateLead.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/other/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/other/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/other/pageView/pageView.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/other/pageView/pageView.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/other/pageView/pageView.types.d.ts +0 -13
- package/build/src/lib/providers/GoogleAnalytics/events/other/searchPageContent/searchPageContent.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/other/searchPageContent/searchPageContent.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/other/searchPageContent/searchPageContent.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/payment/changePaymentType/changePaymentType.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/payment/changePaymentType/changePaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/payment/changePaymentType/changePaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/payment/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/payment/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/payment/selectPaymentType/selectPaymentType.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/payment/selectPaymentType/selectPaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/payment/selectPaymentType/selectPaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/payment/setPaymentInfo/setPaymentInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/payment/setPaymentInfo/setPaymentInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/payment/setPaymentInfo/setPaymentInfo.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/customizeProduct/customizeProduct.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/customizeProduct/customizeProduct.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/customizeProduct/customizeProduct.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/filterProducts/filterProducts.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/filterProducts/filterProducts.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/filterProducts/filterProducts.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/index.d.ts +0 -12
- package/build/src/lib/providers/GoogleAnalytics/events/product/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/productImpression/productImpression.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/productImpression/productImpression.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/productImpression/productImpression.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductAttempt/searchProductAttempt.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductAttempt/searchProductAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductAttempt/searchProductAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductNotFound/searchProductNotFound.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductNotFound/searchProductNotFound.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductNotFound/searchProductNotFound.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductSuccess/searchProductSuccess.d.ts +0 -9
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductSuccess/searchProductSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/searchProductSuccess/searchProductSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/selectProduct/selectProduct.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/selectProduct/selectProduct.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/selectProduct/selectProduct.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/sortProducts/sortProducts.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/sortProducts/sortProducts.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/sortProducts/sortProducts.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/product/viewProductDetails/viewProductDetails.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/product/viewProductDetails/viewProductDetails.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/product/viewProductDetails/viewProductDetails.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseAttempt/purchaseAttempt.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseAttempt/purchaseAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseAttempt/purchaseAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseFail/purchaseFail.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseFail/purchaseFail.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseFail/purchaseFail.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseSuccess/purchaseSuccess.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseSuccess/purchaseSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/purchase/purchaseSuccess/purchaseSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/settings/index.d.ts +0 -4
- package/build/src/lib/providers/GoogleAnalytics/events/settings/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/settings/viewSettings/viewSettings.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/settings/viewSettings/viewSettings.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/settings/viewSettings/viewSettings.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/addShippingAddress/addShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/addShippingAddress/addShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/addShippingAddress/addShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/index.d.ts +0 -6
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/selectShippingAddress/selectShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/selectShippingAddress/selectShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/selectShippingAddress/selectShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/updateShippingAddress/updateShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/updateShippingAddress/updateShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shipping/updateShippingAddress/updateShippingAddress.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToCart/addProductToCart.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToCart/addProductToCart.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToCart/addProductToCart.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToWishlist/addProductToWishlist.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToWishlist/addProductToWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToWishlist/addProductToWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/clearCart/clearCart.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/clearCart/clearCart.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/clearCart/clearCart.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/index.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromCart/removeProductFromCart.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromCart/removeProductFromCart.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromCart/removeProductFromCart.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInCart/updateProductInCart.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInCart/updateProductInCart.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInCart/updateProductInCart.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/viewCart/viewCart.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/viewCart/viewCart.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/shoppingCart/viewCart/viewCart.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/social/index.d.ts +0 -4
- package/build/src/lib/providers/GoogleAnalytics/events/social/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/social/share/share.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/social/share/share.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/social/share/share.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/store/changeStore/changeStore.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/store/changeStore/changeStore.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/store/changeStore/changeStore.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/store/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/store/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/store/setStore/setStore.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/store/setStore/setStore.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/store/setStore/setStore.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/user/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/user/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/user/setUserInfo/setUserInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/user/setUserInfo/setUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/user/setUserInfo/setUserInfo.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/user/updateUserInfo/updateUserInfo.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/user/updateUserInfo/updateUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/user/updateUserInfo/updateUserInfo.types.d.ts +0 -16
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/changeVendor/changeVendor.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/changeVendor/changeVendor.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/changeVendor/changeVendor.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/setVendor/setVendor.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/setVendor/setVendor.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/vendor/setVendor/setVendor.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/index.d.ts +0 -5
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/index.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/selectWorkflow/selectWorkflow.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/selectWorkflow/selectWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/selectWorkflow/selectWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/updateWorkflow/updateWorkflow.d.ts +0 -11
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/updateWorkflow/updateWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/GoogleAnalytics/events/workflow/updateWorkflow/updateWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/Segment.d.ts +0 -33
- package/build/src/lib/providers/Segment/Segment.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/Segment.types.d.ts +0 -229
- package/build/src/lib/providers/Segment/events/auth/changePasswordAttempt/changePasswordAttempt.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/changePasswordAttempt/changePasswordAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/changePasswordAttempt/changePasswordAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/auth/changePasswordFail/changePasswordFail.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/changePasswordFail/changePasswordFail.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/changePasswordFail/changePasswordFail.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/auth/changePasswordSuccess/changePasswordSuccess.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/changePasswordSuccess/changePasswordSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/changePasswordSuccess/changePasswordSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/auth/index.d.ts +0 -10
- package/build/src/lib/providers/Segment/events/auth/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/signIn/signIn.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/signIn/signIn.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/signIn/signIn.types.d.ts +0 -18
- package/build/src/lib/providers/Segment/events/auth/signOut/signOut.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/signOut/signOut.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/signOut/signOut.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/auth/signUp/signUp.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/signUp/signUp.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/signUp/signUp.types.d.ts +0 -20
- package/build/src/lib/providers/Segment/events/auth/signUpAttempt/signUpAttempt.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/auth/signUpAttempt/signUpAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/auth/signUpAttempt/signUpAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/banner/bannerImpression/bannerImpression.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/banner/bannerImpression/bannerImpression.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/banner/bannerImpression/bannerImpression.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/banner/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/banner/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/banner/selectBanner/selectBanner.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/banner/selectBanner/selectBanner.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/banner/selectBanner/selectBanner.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/billing/addBillingInfo/addBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/billing/addBillingInfo/addBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/billing/addBillingInfo/addBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/billing/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/billing/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/billing/selectBillingInfo/selectBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/billing/selectBillingInfo/selectBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/billing/selectBillingInfo/selectBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/billing/updateBillingInfo/updateBillingInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/billing/updateBillingInfo/updateBillingInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/billing/updateBillingInfo/updateBillingInfo.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/booking/bookAppointment/bookAppointment.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/booking/bookAppointment/bookAppointment.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/booking/bookAppointment/bookAppointment.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/booking/index.d.ts +0 -4
- package/build/src/lib/providers/Segment/events/booking/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/categoryImpression/categoryImpression.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/category/categoryImpression/categoryImpression.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/categoryImpression/categoryImpression.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/category/index.d.ts +0 -7
- package/build/src/lib/providers/Segment/events/category/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/searchCategoryAttempt/searchCategoryAttempt.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/category/searchCategoryAttempt/searchCategoryAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/searchCategoryAttempt/searchCategoryAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/category/selectCategory/selectCategory.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/category/selectCategory/selectCategory.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/selectCategory/selectCategory.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/category/viewCategory/viewCategory.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/category/viewCategory/viewCategory.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/category/viewCategory/viewCategory.types.d.ts +0 -17
- package/build/src/lib/providers/Segment/events/checkout/checkoutAction/checkoutAction.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/checkout/checkoutAction/checkoutAction.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/checkout/checkoutAction/checkoutAction.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/checkout/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/checkout/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/checkout/initiateCheckout/initiateCheckout.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/checkout/initiateCheckout/initiateCheckout.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/checkout/initiateCheckout/initiateCheckout.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/applyBenefit/applyBenefit.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/applyBenefit/applyBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/applyBenefit/applyBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/couponCodeError/couponCodeError.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/couponCodeError/couponCodeError.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/couponCodeError/couponCodeError.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/index.d.ts +0 -10
- package/build/src/lib/providers/Segment/events/coupon/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/redeemCouponCode/redeemCouponCode.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/redeemCouponCode/redeemCouponCode.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/redeemCouponCode/redeemCouponCode.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/removeBenefit/removeBenefit.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/removeBenefit/removeBenefit.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/removeBenefit/removeBenefit.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitDetails/viewBenefitDetails.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitDetails/viewBenefitDetails.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitDetails/viewBenefitDetails.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitsWallet/viewBenefitsWallet.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitsWallet/viewBenefitsWallet.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/viewBenefitsWallet/viewBenefitsWallet.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/credit/addCredits/addCredits.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/credit/addCredits/addCredits.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/credit/addCredits/addCredits.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/credit/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/credit/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/credit/spendCredits/spendCredits.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/credit/spendCredits/spendCredits.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/credit/spendCredits/spendCredits.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/credit/viewCredits/viewCredits.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/credit/viewCredits/viewCredits.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/credit/viewCredits/viewCredits.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/customEvent/customEvent.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/customEvent/customEvent.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/customEvent/customEvent.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/events.d.ts +0 -26
- package/build/src/lib/providers/Segment/events/events.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/fulfillment/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/fulfillment/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/fulfillment/viewTracking/viewTracking.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/fulfillment/viewTracking/viewTracking.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/fulfillment/viewTracking/viewTracking.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/geo/changeLocation/changeLocation.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/geo/changeLocation/changeLocation.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/geo/changeLocation/changeLocation.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/geo/findLocation/findLocation.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/geo/findLocation/findLocation.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/geo/findLocation/findLocation.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/geo/index.d.ts +0 -7
- package/build/src/lib/providers/Segment/events/geo/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/geo/outOfCoverage/outOfCoverage.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/geo/outOfCoverage/outOfCoverage.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/geo/outOfCoverage/outOfCoverage.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/geo/setLocation/setLocation.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/geo/setLocation/setLocation.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/geo/setLocation/setLocation.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/help/index.d.ts +0 -4
- package/build/src/lib/providers/Segment/events/help/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/help/requestAssistance/requestAssistance.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/help/requestAssistance/requestAssistance.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/help/requestAssistance/requestAssistance.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/loyalty/earnPoints/earnPoints.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/loyalty/earnPoints/earnPoints.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/loyalty/earnPoints/earnPoints.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/loyalty/index.d.ts +0 -7
- package/build/src/lib/providers/Segment/events/loyalty/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/loyalty/sharePoints/sharePoints.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/loyalty/sharePoints/sharePoints.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/loyalty/sharePoints/sharePoints.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/loyalty/spendPoints/spendPoints.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/loyalty/spendPoints/spendPoints.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/loyalty/spendPoints/spendPoints.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/order/cancelOrder/cancelOrder.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/order/cancelOrder/cancelOrder.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/order/cancelOrder/cancelOrder.types.d.ts +0 -19
- package/build/src/lib/providers/Segment/events/order/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/order/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/order/rateOrder/rateOrder.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/order/rateOrder/rateOrder.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/order/rateOrder/rateOrder.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/order/requestRefund/requestRefund.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/order/requestRefund/requestRefund.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/order/requestRefund/requestRefund.types.d.ts +0 -17
- package/build/src/lib/providers/Segment/events/other/generateLead/generateLead.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/other/generateLead/generateLead.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/other/generateLead/generateLead.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/other/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/other/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/other/pageView/pageView.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/other/pageView/pageView.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/other/pageView/pageView.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/other/searchPageContent/searchPageContent.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/other/searchPageContent/searchPageContent.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/other/searchPageContent/searchPageContent.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/payment/changePaymentType/changePaymentType.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/payment/changePaymentType/changePaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/payment/changePaymentType/changePaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/payment/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/payment/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/payment/selectPaymentType/selectPaymentType.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/payment/selectPaymentType/selectPaymentType.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/payment/selectPaymentType/selectPaymentType.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/payment/setPaymentInfo/setPaymentInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/payment/setPaymentInfo/setPaymentInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/payment/setPaymentInfo/setPaymentInfo.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/customizeProduct/customizeProduct.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/customizeProduct/customizeProduct.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/customizeProduct/customizeProduct.types.d.ts +0 -13
- package/build/src/lib/providers/Segment/events/product/filterProducts/filterProducts.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/filterProducts/filterProducts.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/filterProducts/filterProducts.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/index.d.ts +0 -12
- package/build/src/lib/providers/Segment/events/product/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/productImpression/productImpression.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/productImpression/productImpression.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/productImpression/productImpression.types.d.ts +0 -13
- package/build/src/lib/providers/Segment/events/product/searchProductAttempt/searchProductAttempt.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/searchProductAttempt/searchProductAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/searchProductAttempt/searchProductAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/searchProductNotFound/searchProductNotFound.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/searchProductNotFound/searchProductNotFound.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/searchProductNotFound/searchProductNotFound.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/searchProductSuccess/searchProductSuccess.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/searchProductSuccess/searchProductSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/searchProductSuccess/searchProductSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/selectProduct/selectProduct.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/selectProduct/selectProduct.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/selectProduct/selectProduct.types.d.ts +0 -13
- package/build/src/lib/providers/Segment/events/product/sortProducts/sortProducts.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/sortProducts/sortProducts.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/sortProducts/sortProducts.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/product/viewProductDetails/viewProductDetails.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/product/viewProductDetails/viewProductDetails.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/product/viewProductDetails/viewProductDetails.types.d.ts +0 -13
- package/build/src/lib/providers/Segment/events/purchase/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/purchase/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/purchase/purchaseAttempt/purchaseAttempt.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/purchase/purchaseAttempt/purchaseAttempt.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/purchase/purchaseAttempt/purchaseAttempt.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/purchase/purchaseFail/purchaseFail.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/purchase/purchaseFail/purchaseFail.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/purchase/purchaseFail/purchaseFail.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/purchase/purchaseSuccess/purchaseSuccess.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/purchase/purchaseSuccess/purchaseSuccess.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/purchase/purchaseSuccess/purchaseSuccess.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/settings/index.d.ts +0 -4
- package/build/src/lib/providers/Segment/events/settings/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/settings/viewSettings/viewSettings.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/settings/viewSettings/viewSettings.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/settings/viewSettings/viewSettings.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shipping/addShippingAddress/addShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shipping/addShippingAddress/addShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shipping/addShippingAddress/addShippingAddress.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/shipping/index.d.ts +0 -6
- package/build/src/lib/providers/Segment/events/shipping/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shipping/selectShippingAddress/selectShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shipping/selectShippingAddress/selectShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shipping/selectShippingAddress/selectShippingAddress.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/shipping/updateShippingAddress/updateShippingAddress.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shipping/updateShippingAddress/updateShippingAddress.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shipping/updateShippingAddress/updateShippingAddress.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToCart/addProductToCart.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToCart/addProductToCart.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToCart/addProductToCart.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToWishlist/addProductToWishlist.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToWishlist/addProductToWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/addProductToWishlist/addProductToWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/clearCart/clearCart.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/clearCart/clearCart.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/clearCart/clearCart.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/index.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromCart/removeProductFromCart.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromCart/removeProductFromCart.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromCart/removeProductFromCart.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInCart/updateProductInCart.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInCart/updateProductInCart.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInCart/updateProductInCart.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/shoppingCart/viewCart/viewCart.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/shoppingCart/viewCart/viewCart.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/shoppingCart/viewCart/viewCart.types.d.ts +0 -17
- package/build/src/lib/providers/Segment/events/social/index.d.ts +0 -4
- package/build/src/lib/providers/Segment/events/social/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/social/share/share.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/social/share/share.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/social/share/share.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/store/changeStore/changeStore.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/store/changeStore/changeStore.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/store/changeStore/changeStore.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/store/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/store/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/store/setStore/setStore.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/store/setStore/setStore.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/store/setStore/setStore.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/user/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/user/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/user/setUserInfo/setUserInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/user/setUserInfo/setUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/user/setUserInfo/setUserInfo.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/user/updateUserInfo/updateUserInfo.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/user/updateUserInfo/updateUserInfo.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/user/updateUserInfo/updateUserInfo.types.d.ts +0 -16
- package/build/src/lib/providers/Segment/events/vendor/changeVendor/changeVendor.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/vendor/changeVendor/changeVendor.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/vendor/changeVendor/changeVendor.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/vendor/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/vendor/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/vendor/setVendor/setVendor.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/vendor/setVendor/setVendor.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/vendor/setVendor/setVendor.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/workflow/index.d.ts +0 -5
- package/build/src/lib/providers/Segment/events/workflow/index.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/workflow/selectWorkflow/selectWorkflow.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/workflow/selectWorkflow/selectWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/workflow/selectWorkflow/selectWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/Segment/events/workflow/updateWorkflow/updateWorkflow.d.ts +0 -11
- package/build/src/lib/providers/Segment/events/workflow/updateWorkflow/updateWorkflow.test.d.ts +0 -1
- package/build/src/lib/providers/Segment/events/workflow/updateWorkflow/updateWorkflow.types.d.ts +0 -14
- package/build/src/lib/providers/providers.d.ts +0 -9
- package/build/src/test/exports.test.d.ts +0 -1
- package/build/src/types/common.types.d.ts +0 -55
- package/build/src/types/event.types.d.ts +0 -222
- package/build/src/types/state.types.d.ts +0 -23
- package/build/src/utils/common.utils.d.ts +0 -8
- package/build/src/utils/events.utils.d.ts +0 -80
- package/build/src/utils/logs.utils.d.ts +0 -50
- package/build/src/utils/segment.utils.d.ts +0 -8
- package/build/src/utils/state.utils.d.ts +0 -12
- package/build/src/utils/validations.utils.d.ts +0 -27
- package/build/src/vendors.d.ts +0 -1
- package/build/vendors.bundle.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.esm.js","sources":["../../state/dist/bundle.esm.js","../src/utils/state.utils.ts","../src/config/constants.ts","../src/utils/logs.utils.ts","../src/lib/providers/GlobalProvider/GlobalProvider.ts","../src/lib/providers/AnalyticsProvider/AnalyticsProvider.ts","../src/lib/providers/FacebookPixel/FacebookPixel.ts","../src/lib/providers/GoogleAnalytics/GoogleAnalytics.ts","../src/lib/providers/Segment/Segment.ts","../src/lib/providers/providers.ts","../src/lib/initAnalytics/initAnalytics.helpers.ts","../src/lib/initAnalytics/initAnalytics.ts","../../../node_modules/tslib/tslib.es6.js","../../../node_modules/lower-case/dist.es2015/index.js","../../../node_modules/no-case/dist.es2015/index.js","../../../node_modules/dot-case/dist.es2015/index.js","../../../node_modules/snake-case/dist.es2015/index.js","../src/utils/common.utils.ts","../src/lib/providers/GoogleAnalytics/events/auth/changePasswordAttempt/changePasswordAttempt.ts","../src/lib/providers/FacebookPixel/events/auth/changePasswordAttempt/changePasswordAttempt.ts","../src/lib/providers/Segment/events/auth/changePasswordAttempt/changePasswordAttempt.ts","../../shopping-cart/dist/bundle.esm.js","../../products/dist/bundle.esm.js","../src/utils/validations.utils.ts","../src/utils/events.utils.ts","../src/lib/events/auth/changePasswordAttempt/changePasswordAttempt.ts","../src/lib/providers/GoogleAnalytics/events/auth/signUpAttempt/signUpAttempt.ts","../src/lib/providers/FacebookPixel/events/auth/signUpAttempt/signUpAttempt.ts","../src/lib/providers/Segment/events/auth/signUpAttempt/signUpAttempt.ts","../src/lib/events/auth/signUpAttempt/signUpAttempt.ts","../src/lib/providers/GoogleAnalytics/events/auth/changePasswordFail/changePasswordFail.ts","../src/lib/providers/FacebookPixel/events/auth/changePasswordFail/changePasswordFail.ts","../src/lib/providers/Segment/events/auth/changePasswordFail/changePasswordFail.ts","../src/lib/events/auth/changePasswordFail/changePasswordFail.ts","../src/lib/providers/GoogleAnalytics/events/auth/changePasswordSuccess/changePasswordSuccess.ts","../src/lib/providers/FacebookPixel/events/auth/changePasswordSuccess/changePasswordSuccess.ts","../src/lib/providers/Segment/events/auth/changePasswordSuccess/changePasswordSuccess.ts","../src/lib/events/auth/changePasswordSuccess/changePasswordSuccess.ts","../src/lib/providers/GoogleAnalytics/events/auth/signIn/signIn.ts","../src/lib/providers/FacebookPixel/events/auth/signIn/signIn.ts","../src/lib/providers/Segment/events/auth/signIn/signIn.ts","../src/lib/events/auth/signIn/signIn.ts","../src/lib/providers/GoogleAnalytics/events/auth/signOut/signOut.ts","../src/lib/providers/FacebookPixel/events/auth/signOut/signOut.ts","../src/lib/providers/Segment/events/auth/signOut/signOut.ts","../src/lib/events/auth/signOut/signOut.ts","../src/lib/providers/GoogleAnalytics/events/auth/signUp/signUp.ts","../src/lib/providers/FacebookPixel/events/auth/signUp/signUp.ts","../src/lib/providers/Segment/events/auth/signUp/signUp.ts","../src/lib/events/auth/signUp/signUp.ts","../src/lib/events/auth/index.ts","../src/lib/providers/GoogleAnalytics/events/banner/bannerImpression/bannerImpression.ts","../src/lib/providers/FacebookPixel/events/banner/bannerImpression/bannerImpression.ts","../src/lib/providers/Segment/events/banner/bannerImpression/bannerImpression.ts","../src/lib/events/banner/bannerImpression/bannerImpression.ts","../src/lib/providers/GoogleAnalytics/events/banner/selectBanner/selectBanner.ts","../src/lib/providers/FacebookPixel/events/banner/selectBanner/selectBanner.ts","../src/lib/providers/Segment/events/banner/selectBanner/selectBanner.ts","../src/lib/events/banner/selectBanner/selectBanner.ts","../src/lib/events/banner/index.ts","../src/lib/providers/GoogleAnalytics/events/billing/addBillingInfo/addBillingInfo.ts","../src/lib/providers/FacebookPixel/events/billing/addBillingInfo/addBillingInfo.ts","../src/lib/providers/Segment/events/billing/addBillingInfo/addBillingInfo.ts","../src/lib/events/billing/addBillingInfo/addBillingInfo.ts","../src/lib/providers/GoogleAnalytics/events/billing/selectBillingInfo/selectBillingInfo.ts","../src/lib/providers/FacebookPixel/events/billing/selectBillingInfo/selectBillingInfo.ts","../src/lib/providers/Segment/events/billing/selectBillingInfo/selectBillingInfo.ts","../src/lib/events/billing/selectBillingInfo/selectBillingInfo.ts","../src/lib/providers/GoogleAnalytics/events/billing/updateBillingInfo/updateBillingInfo.ts","../src/lib/providers/FacebookPixel/events/billing/updateBillingInfo/updateBillingInfo.ts","../src/lib/providers/Segment/events/billing/updateBillingInfo/updateBillingInfo.ts","../src/lib/events/billing/updateBillingInfo/updateBillingInfo.ts","../src/lib/events/billing/index.ts","../src/lib/providers/GoogleAnalytics/events/booking/bookAppointment/bookAppointment.ts","../src/lib/providers/FacebookPixel/events/booking/bookAppointment/bookAppointment.ts","../src/lib/providers/Segment/events/booking/bookAppointment/bookAppointment.ts","../src/lib/events/booking/bookAppointment/bookAppointment.ts","../src/lib/events/booking/index.ts","../src/lib/providers/GoogleAnalytics/events/category/categoryImpression/categoryImpression.ts","../src/lib/providers/FacebookPixel/events/category/categoryImpression/categoryImpression.ts","../src/lib/providers/Segment/events/category/categoryImpression/categoryImpression.ts","../src/lib/events/category/categoryImpression/categoryImpression.ts","../src/lib/providers/GoogleAnalytics/events/category/searchCategoryAttempt/searchCategoryAttempt.ts","../src/lib/providers/FacebookPixel/events/category/searchCategoryAttempt/searchCategoryAttempt.ts","../src/lib/providers/Segment/events/category/searchCategoryAttempt/searchCategoryAttempt.ts","../src/lib/events/category/searchCategoryAttempt/searchCategoryAttempt.ts","../src/lib/providers/GoogleAnalytics/events/category/selectCategory/selectCategory.ts","../src/lib/providers/FacebookPixel/events/category/selectCategory/selectCategory.ts","../src/lib/providers/Segment/events/category/selectCategory/selectCategory.ts","../src/lib/events/category/selectCategory/selectCategory.ts","../src/lib/providers/GoogleAnalytics/events/category/viewCategory/viewCategory.ts","../src/lib/providers/FacebookPixel/events/category/viewCategory/viewCategory.ts","../src/lib/providers/Segment/events/category/viewCategory/viewCategory.ts","../src/lib/events/category/viewCategory/viewCategory.ts","../src/lib/events/category/index.ts","../src/lib/providers/GoogleAnalytics/events/checkout/checkoutAction/checkoutAction.ts","../src/lib/providers/FacebookPixel/events/checkout/checkoutAction/checkoutAction.ts","../src/lib/providers/Segment/events/checkout/checkoutAction/checkoutAction.ts","../src/lib/events/checkout/checkoutAction/checkoutAction.ts","../src/lib/providers/GoogleAnalytics/events/checkout/initiateCheckout/initiateCheckout.ts","../src/lib/providers/FacebookPixel/events/checkout/initiateCheckout/initiateCheckout.ts","../src/lib/providers/Segment/events/checkout/initiateCheckout/initiateCheckout.ts","../src/lib/events/checkout/initiateCheckout/initiateCheckout.ts","../src/lib/events/checkout/index.ts","../src/lib/providers/GoogleAnalytics/events/coupon/applyBenefit/applyBenefit.ts","../src/lib/providers/FacebookPixel/events/coupon/applyBenefit/applyBenefit.ts","../src/lib/providers/Segment/events/coupon/applyBenefit/applyBenefit.ts","../src/lib/events/coupon/applyBenefit/applyBenefit.ts","../src/lib/providers/GoogleAnalytics/events/coupon/couponCodeError/couponCodeError.ts","../src/lib/providers/FacebookPixel/events/coupon/couponCodeError/couponCodeError.ts","../src/lib/providers/Segment/events/coupon/couponCodeError/couponCodeError.ts","../src/lib/events/coupon/couponCodeError/couponCodeError.ts","../src/lib/providers/GoogleAnalytics/events/coupon/redeemCouponCode/redeemCouponCode.ts","../src/lib/providers/FacebookPixel/events/coupon/redeemCouponCode/redeemCouponCode.ts","../src/lib/providers/Segment/events/coupon/redeemCouponCode/redeemCouponCode.ts","../src/lib/events/coupon/redeemCouponCode/redeemCouponCode.ts","../src/lib/providers/GoogleAnalytics/events/coupon/removeBenefit/removeBenefit.ts","../src/lib/providers/FacebookPixel/events/coupon/removeBenefit/removeBenefit.ts","../src/lib/providers/Segment/events/coupon/removeBenefit/removeBenefit.ts","../src/lib/events/coupon/removeBenefit/removeBenefit.ts","../src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitDetails/viewBenefitDetails.ts","../src/lib/providers/FacebookPixel/events/coupon/viewBenefitDetails/viewBenefitDetails.ts","../src/lib/providers/Segment/events/coupon/viewBenefitDetails/viewBenefitDetails.ts","../src/lib/events/coupon/viewBenefitDetails/viewBenefitDetails.ts","../src/lib/providers/GoogleAnalytics/events/coupon/viewBenefitsWallet/viewBenefitsWallet.ts","../src/lib/providers/FacebookPixel/events/coupon/viewBenefitsWallet/viewBenefitsWallet.ts","../src/lib/providers/Segment/events/coupon/viewBenefitsWallet/viewBenefitsWallet.ts","../src/lib/events/coupon/viewBenefitsWallet/viewBenefitsWallet.ts","../src/lib/providers/GoogleAnalytics/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.ts","../src/lib/providers/FacebookPixel/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.ts","../src/lib/providers/Segment/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.ts","../src/lib/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon.ts","../src/lib/events/coupon/index.ts","../src/lib/providers/GoogleAnalytics/events/credit/addCredits/addCredits.ts","../src/lib/providers/FacebookPixel/events/credit/addCredits/addCredits.ts","../src/lib/providers/Segment/events/credit/addCredits/addCredits.ts","../src/lib/events/credit/addCredits/addCredits.ts","../src/lib/providers/GoogleAnalytics/events/credit/spendCredits/spendCredits.ts","../src/lib/providers/FacebookPixel/events/credit/spendCredits/spendCredits.ts","../src/lib/providers/Segment/events/credit/spendCredits/spendCredits.ts","../src/lib/events/credit/spendCredits/spendCredits.ts","../src/lib/providers/GoogleAnalytics/events/credit/viewCredits/viewCredits.ts","../src/lib/providers/FacebookPixel/events/credit/viewCredits/viewCredits.ts","../src/lib/providers/Segment/events/credit/viewCredits/viewCredits.ts","../src/lib/events/credit/viewCredits/viewCredits.ts","../src/lib/events/credit/index.ts","../src/lib/providers/GoogleAnalytics/events/customEvent/customEvent.ts","../src/lib/providers/FacebookPixel/events/customEvent/customEvent.ts","../src/lib/providers/Segment/events/customEvent/customEvent.ts","../src/lib/events/customEvent/customEvent.ts","../src/lib/providers/GoogleAnalytics/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.ts","../src/lib/providers/FacebookPixel/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.ts","../src/lib/providers/Segment/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.ts","../src/lib/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep.ts","../src/lib/providers/GoogleAnalytics/events/fulfillment/viewTracking/viewTracking.ts","../src/lib/providers/FacebookPixel/events/fulfillment/viewTracking/viewTracking.ts","../src/lib/providers/Segment/events/fulfillment/viewTracking/viewTracking.ts","../src/lib/events/fulfillment/viewTracking/viewTracking.ts","../src/lib/events/fulfillment/index.ts","../src/lib/providers/GoogleAnalytics/events/geo/changeLocation/changeLocation.ts","../src/lib/providers/FacebookPixel/events/geo/changeLocation/changeLocation.ts","../src/lib/providers/Segment/events/geo/changeLocation/changeLocation.ts","../src/lib/events/geo/changeLocation/changeLocation.ts","../src/lib/providers/GoogleAnalytics/events/geo/findLocation/findLocation.ts","../src/lib/providers/FacebookPixel/events/geo/findLocation/findLocation.ts","../src/lib/providers/Segment/events/geo/findLocation/findLocation.ts","../src/lib/events/geo/findLocation/findLocation.ts","../src/lib/providers/GoogleAnalytics/events/geo/outOfCoverage/outOfCoverage.ts","../src/lib/providers/FacebookPixel/events/geo/outOfCoverage/outOfCoverage.ts","../src/lib/providers/Segment/events/geo/outOfCoverage/outOfCoverage.ts","../src/lib/events/geo/outOfCoverage/outOfCoverage.ts","../src/lib/providers/GoogleAnalytics/events/geo/setLocation/setLocation.ts","../src/lib/providers/FacebookPixel/events/geo/setLocation/setLocation.ts","../src/lib/providers/Segment/events/geo/setLocation/setLocation.ts","../src/lib/events/geo/setLocation/setLocation.ts","../src/lib/events/geo/index.ts","../src/lib/providers/GoogleAnalytics/events/help/requestAssistance/requestAssistance.ts","../src/lib/providers/FacebookPixel/events/help/requestAssistance/requestAssistance.ts","../src/lib/providers/Segment/events/help/requestAssistance/requestAssistance.ts","../src/lib/events/help/requestAssistance/requestAssistance.ts","../src/lib/events/help/index.ts","../src/lib/providers/GoogleAnalytics/events/loyalty/earnPoints/earnPoints.ts","../src/lib/providers/FacebookPixel/events/loyalty/earnPoints/earnPoints.ts","../src/lib/providers/Segment/events/loyalty/earnPoints/earnPoints.ts","../src/lib/events/loyalty/earnPoints/earnPoints.ts","../src/lib/providers/GoogleAnalytics/events/loyalty/sharePoints/sharePoints.ts","../src/lib/providers/FacebookPixel/events/loyalty/sharePoints/sharePoints.ts","../src/lib/providers/Segment/events/loyalty/sharePoints/sharePoints.ts","../src/lib/events/loyalty/sharePoints/sharePoints.ts","../src/lib/providers/GoogleAnalytics/events/loyalty/spendPoints/spendPoints.ts","../src/lib/providers/FacebookPixel/events/loyalty/spendPoints/spendPoints.ts","../src/lib/providers/Segment/events/loyalty/spendPoints/spendPoints.ts","../src/lib/events/loyalty/spendPoints/spendPoints.ts","../src/lib/providers/GoogleAnalytics/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.ts","../src/lib/providers/FacebookPixel/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.ts","../src/lib/providers/Segment/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.ts","../src/lib/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel.ts","../src/lib/events/loyalty/index.ts","../src/lib/providers/GoogleAnalytics/events/order/cancelOrder/cancelOrder.ts","../src/lib/providers/FacebookPixel/events/order/cancelOrder/cancelOrder.ts","../src/lib/providers/Segment/events/order/cancelOrder/cancelOrder.ts","../src/lib/events/order/cancelOrder/cancelOrder.ts","../src/lib/providers/GoogleAnalytics/events/order/rateOrder/rateOrder.ts","../src/lib/providers/FacebookPixel/events/order/rateOrder/rateOrder.ts","../src/lib/providers/Segment/events/order/rateOrder/rateOrder.ts","../src/lib/events/order/rateOrder/rateOrder.ts","../src/lib/providers/GoogleAnalytics/events/order/requestRefund/requestRefund.ts","../src/lib/providers/FacebookPixel/events/order/requestRefund/requestRefund.ts","../src/lib/providers/Segment/events/order/requestRefund/requestRefund.ts","../src/lib/events/order/requestRefund/requestRefund.ts","../src/lib/events/order/index.ts","../src/lib/providers/GoogleAnalytics/events/other/generateLead/generateLead.ts","../src/lib/providers/FacebookPixel/events/other/generateLead/generateLead.ts","../src/lib/providers/Segment/events/other/generateLead/generateLead.ts","../src/lib/events/other/generateLead/generateLead.ts","../src/lib/providers/FacebookPixel/events/other/pageView/pageView.ts","../src/lib/providers/GoogleAnalytics/events/other/pageView/pageView.ts","../src/lib/providers/Segment/events/other/pageView/pageView.ts","../src/lib/events/other/pageView/pageView.ts","../src/lib/providers/GoogleAnalytics/events/other/searchPageContent/searchPageContent.ts","../src/lib/providers/FacebookPixel/events/other/searchPageContent/searchPageContent.ts","../src/lib/providers/Segment/events/other/searchPageContent/searchPageContent.ts","../src/lib/events/other/searchPageContent/searchPageContent.ts","../src/lib/events/other/index.ts","../src/lib/providers/GoogleAnalytics/events/payment/changePaymentType/changePaymentType.ts","../src/lib/providers/FacebookPixel/events/payment/changePaymentType/changePaymentType.ts","../src/lib/providers/Segment/events/payment/changePaymentType/changePaymentType.ts","../src/lib/events/payment/changePaymentType/changePaymentType.ts","../src/lib/providers/GoogleAnalytics/events/payment/selectPaymentType/selectPaymentType.ts","../src/lib/providers/FacebookPixel/events/payment/selectPaymentType/selectPaymentType.ts","../src/lib/providers/Segment/events/payment/selectPaymentType/selectPaymentType.ts","../src/lib/events/payment/selectPaymentType/selectPaymentType.ts","../src/lib/providers/GoogleAnalytics/events/payment/setPaymentInfo/setPaymentInfo.ts","../src/lib/providers/FacebookPixel/events/payment/setPaymentInfo/setPaymentInfo.ts","../src/lib/providers/Segment/events/payment/setPaymentInfo/setPaymentInfo.ts","../src/lib/events/payment/setPaymentInfo/setPaymentInfo.ts","../src/lib/events/payment/index.ts","../src/lib/providers/GoogleAnalytics/events/product/customizeProduct/customizeProduct.ts","../src/lib/providers/FacebookPixel/events/product/customizeProduct/customizeProduct.ts","../src/lib/providers/Segment/events/product/customizeProduct/customizeProduct.ts","../src/lib/events/product/customizeProduct/customizeProduct.ts","../src/lib/providers/GoogleAnalytics/events/product/filterProducts/filterProducts.ts","../src/lib/providers/FacebookPixel/events/product/filterProducts/filterProducts.ts","../src/lib/providers/Segment/events/product/filterProducts/filterProducts.ts","../src/lib/events/product/filterProducts/filterProducts.ts","../src/lib/providers/GoogleAnalytics/events/product/productImpression/productImpression.ts","../src/lib/providers/FacebookPixel/events/product/productImpression/productImpression.ts","../src/lib/providers/Segment/events/product/productImpression/productImpression.ts","../src/lib/events/product/productImpression/productImpression.ts","../src/lib/providers/GoogleAnalytics/events/product/searchProductSuccess/searchProductSuccess.ts","../src/lib/providers/FacebookPixel/events/product/searchProductSuccess/searchProductSuccess.ts","../src/lib/providers/Segment/events/product/searchProductSuccess/searchProductSuccess.ts","../src/lib/events/product/searchProductSuccess/searchProductSuccess.ts","../src/lib/providers/GoogleAnalytics/events/product/searchProductAttempt/searchProductAttempt.ts","../src/lib/providers/FacebookPixel/events/product/searchProductAttempt/searchProductAttempt.ts","../src/lib/providers/Segment/events/product/searchProductAttempt/searchProductAttempt.ts","../src/lib/events/product/searchProductAttempt/searchProductAttempt.ts","../src/lib/providers/GoogleAnalytics/events/product/searchProductNotFound/searchProductNotFound.ts","../src/lib/providers/FacebookPixel/events/product/searchProductNotFound/searchProductNotFound.ts","../src/lib/providers/Segment/events/product/searchProductNotFound/searchProductNotFound.ts","../src/lib/events/product/searchProductNotFound/searchProductNotFound.ts","../src/lib/providers/GoogleAnalytics/events/product/selectProduct/selectProduct.ts","../src/lib/providers/FacebookPixel/events/product/selectProduct/selectProduct.ts","../src/lib/providers/Segment/events/product/selectProduct/selectProduct.ts","../src/lib/events/product/selectProduct/selectProduct.ts","../src/lib/providers/GoogleAnalytics/events/product/sortProducts/sortProducts.ts","../src/lib/providers/FacebookPixel/events/product/sortProducts/sortProducts.ts","../src/lib/providers/Segment/events/product/sortProducts/sortProducts.ts","../src/lib/events/product/sortProducts/sortProducts.ts","../src/lib/providers/GoogleAnalytics/events/product/viewProductDetails/viewProductDetails.ts","../src/lib/providers/FacebookPixel/events/product/viewProductDetails/viewProductDetails.ts","../src/lib/providers/Segment/events/product/viewProductDetails/viewProductDetails.ts","../src/lib/events/product/viewProductDetails/viewProductDetails.ts","../src/lib/events/product/index.ts","../src/lib/providers/GoogleAnalytics/events/purchase/purchaseAttempt/purchaseAttempt.ts","../src/lib/providers/FacebookPixel/events/purchase/purchaseAttempt/purchaseAttempt.ts","../src/lib/providers/Segment/events/purchase/purchaseAttempt/purchaseAttempt.ts","../src/lib/events/purchase/purchaseAttempt/purchaseAttempt.ts","../src/lib/providers/GoogleAnalytics/events/purchase/purchaseFail/purchaseFail.ts","../src/lib/providers/FacebookPixel/events/purchase/purchaseFail/purchaseFail.ts","../src/lib/providers/Segment/events/purchase/purchaseFail/purchaseFail.ts","../src/lib/events/purchase/purchaseFail/purchaseFail.ts","../src/lib/providers/GoogleAnalytics/events/purchase/purchaseSuccess/purchaseSuccess.ts","../src/lib/providers/FacebookPixel/events/purchase/purchaseSuccess/purchaseSuccess.ts","../src/lib/providers/Segment/events/purchase/purchaseSuccess/purchaseSuccess.ts","../src/lib/events/purchase/purchaseSuccess/purchaseSuccess.ts","../src/lib/events/purchase/index.ts","../src/lib/providers/GoogleAnalytics/events/settings/viewSettings/viewSettings.ts","../src/lib/providers/FacebookPixel/events/settings/viewSettings/viewSettings.ts","../src/lib/providers/Segment/events/settings/viewSettings/viewSettings.ts","../src/lib/events/settings/viewSettings/viewSettings.ts","../src/lib/events/settings/index.ts","../src/lib/providers/GoogleAnalytics/events/shipping/addShippingAddress/addShippingAddress.ts","../src/lib/providers/FacebookPixel/events/shipping/addShippingAddress/addShippingAddress.ts","../src/lib/providers/Segment/events/shipping/addShippingAddress/addShippingAddress.ts","../src/lib/events/shipping/addShippingAddress/addShippingAddress.ts","../src/lib/providers/GoogleAnalytics/events/shipping/selectShippingAddress/selectShippingAddress.ts","../src/lib/providers/FacebookPixel/events/shipping/selectShippingAddress/selectShippingAddress.ts","../src/lib/providers/Segment/events/shipping/selectShippingAddress/selectShippingAddress.ts","../src/lib/events/shipping/selectShippingAddress/selectShippingAddress.ts","../src/lib/providers/GoogleAnalytics/events/shipping/updateShippingAddress/updateShippingAddress.ts","../src/lib/providers/FacebookPixel/events/shipping/updateShippingAddress/updateShippingAddress.ts","../src/lib/providers/Segment/events/shipping/updateShippingAddress/updateShippingAddress.ts","../src/lib/events/shipping/updateShippingAddress/updateShippingAddress.ts","../src/lib/events/shipping/index.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToCart/addProductToCart.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/addProductToCart/addProductToCart.ts","../src/lib/providers/Segment/events/shoppingCart/addProductToCart/addProductToCart.ts","../src/lib/events/shoppingCart/addProductToCart/addProductToCart.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/addProductToWishlist/addProductToWishlist.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/addProductToWishlist/addProductToWishlist.ts","../src/lib/providers/Segment/events/shoppingCart/addProductToWishlist/addProductToWishlist.ts","../src/lib/events/shoppingCart/addProductToWishlist/addProductToWishlist.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/clearCart/clearCart.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/clearCart/clearCart.ts","../src/lib/providers/Segment/events/shoppingCart/clearCart/clearCart.ts","../src/lib/events/shoppingCart/clearCart/clearCart.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromCart/removeProductFromCart.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromCart/removeProductFromCart.ts","../src/lib/providers/Segment/events/shoppingCart/removeProductFromCart/removeProductFromCart.ts","../src/lib/events/shoppingCart/removeProductFromCart/removeProductFromCart.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.ts","../src/lib/providers/Segment/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.ts","../src/lib/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInCart/updateProductInCart.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInCart/updateProductInCart.ts","../src/lib/providers/Segment/events/shoppingCart/updateProductInCart/updateProductInCart.ts","../src/lib/events/shoppingCart/updateProductInCart/updateProductInCart.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.ts","../src/lib/providers/Segment/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.ts","../src/lib/events/shoppingCart/updateProductInWishlist/updateProductInWishlist.ts","../src/lib/providers/GoogleAnalytics/events/shoppingCart/viewCart/viewCart.ts","../src/lib/providers/FacebookPixel/events/shoppingCart/viewCart/viewCart.ts","../src/lib/providers/Segment/events/shoppingCart/viewCart/viewCart.ts","../src/lib/events/shoppingCart/viewCart/viewCart.ts","../src/lib/events/shoppingCart/index.ts","../src/lib/providers/GoogleAnalytics/events/social/share/share.ts","../src/lib/providers/FacebookPixel/events/social/share/share.ts","../src/lib/providers/Segment/events/social/share/share.ts","../src/lib/events/social/share/share.ts","../src/lib/events/social/index.ts","../src/lib/providers/GoogleAnalytics/events/store/changeStore/changeStore.ts","../src/lib/providers/FacebookPixel/events/store/changeStore/changeStore.ts","../src/lib/providers/Segment/events/store/changeStore/changeStore.ts","../src/lib/events/store/changeStore/changeStore.ts","../src/lib/providers/GoogleAnalytics/events/store/setStore/setStore.ts","../src/lib/providers/FacebookPixel/events/store/setStore/setStore.ts","../src/lib/providers/Segment/events/store/setStore/setStore.ts","../src/lib/events/store/setStore/setStore.ts","../src/lib/events/store/index.ts","../src/lib/providers/GoogleAnalytics/events/user/setUserInfo/setUserInfo.ts","../src/lib/providers/FacebookPixel/events/user/setUserInfo/setUserInfo.ts","../src/lib/providers/Segment/events/user/setUserInfo/setUserInfo.ts","../src/lib/events/user/setUserInfo/setUserInfo.ts","../src/lib/providers/GoogleAnalytics/events/user/updateUserInfo/updateUserInfo.ts","../src/lib/providers/FacebookPixel/events/user/updateUserInfo/updateUserInfo.ts","../src/lib/providers/Segment/events/user/updateUserInfo/updateUserInfo.ts","../src/lib/events/user/updateUserInfo/updateUserInfo.ts","../src/lib/events/user/index.ts","../src/lib/providers/GoogleAnalytics/events/vendor/changeVendor/changeVendor.ts","../src/lib/providers/FacebookPixel/events/vendor/changeVendor/changeVendor.ts","../src/lib/providers/Segment/events/vendor/changeVendor/changeVendor.ts","../src/lib/events/vendor/changeVendor/changeVendor.ts","../src/lib/providers/GoogleAnalytics/events/vendor/setVendor/setVendor.ts","../src/lib/providers/FacebookPixel/events/vendor/setVendor/setVendor.ts","../src/lib/providers/Segment/events/vendor/setVendor/setVendor.ts","../src/lib/events/vendor/setVendor/setVendor.ts","../src/lib/events/vendor/index.ts","../src/lib/providers/GoogleAnalytics/events/workflow/selectWorkflow/selectWorkflow.ts","../src/lib/providers/FacebookPixel/events/workflow/selectWorkflow/selectWorkflow.ts","../src/lib/providers/Segment/events/workflow/selectWorkflow/selectWorkflow.ts","../src/lib/events/workflow/selectWorkflow/selectWorkflow.ts","../src/lib/providers/GoogleAnalytics/events/workflow/updateWorkflow/updateWorkflow.ts","../src/lib/providers/FacebookPixel/events/workflow/updateWorkflow/updateWorkflow.ts","../src/lib/providers/Segment/events/workflow/updateWorkflow/updateWorkflow.ts","../src/lib/events/workflow/updateWorkflow/updateWorkflow.ts","../src/lib/events/workflow/index.ts","../src/lib/events/events.ts","../src/utils/vendor.utils.ts","../src/utils/segment.utils.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nlet state = null;\nconst initState = (initialState) => {\n Object.freeze(initialState);\n state = __spreadValues({}, initialState);\n Object.seal(state);\n};\nconst setState = (overrides) => {\n const tempState = state ? __spreadValues({}, state) : {};\n state = null;\n state = __spreadValues(__spreadValues({}, tempState), overrides);\n Object.seal(state);\n};\nconst getState = () => {\n if (state === null) {\n throw new Error(\"The state has not been initialized, make sure to call initState beforehand\");\n }\n return __spreadValues({}, state);\n};\nconst checkInit = () => {\n return !!state;\n};\n\nexport { checkInit, getState, initState, setState };\n//# sourceMappingURL=bundle.esm.js.map\n","// Global state\nimport { initState } from \"@artisan-commerce/state\";\nimport { getState as getStateLib } from \"@artisan-commerce/state\";\nimport { setState as setStateLib } from \"@artisan-commerce/state\";\n\nimport { GlobalState } from \"../types/state.types\";\nimport packageJSON from \"../../package.json\";\n\n// Initial State\nconst initialState: GlobalState = {\n providers: [],\n activeVendor: undefined,\n vendors: undefined,\n shareArtisnAnalytics: false,\n debug: false,\n initialized: false,\n meta: {\n accountId: undefined,\n vendorId: undefined,\n vendorName: undefined,\n storeId: undefined,\n storeName: undefined,\n catalogueId: undefined,\n catalogueName: undefined,\n appName: undefined,\n platform: \"web\",\n versionApp: undefined,\n versionSDK: packageJSON.version\n }\n};\n\nexport const setInitialState = () => {\n initState<GlobalState>(initialState);\n};\n\nexport const getState = () => getStateLib<GlobalState>();\n\nexport const setState = (state: Partial<GlobalState>) =>\n setStateLib<GlobalState>(state);\n","// Project constants\nconst CONSTANTS = {\n GLOBAL_TRACKING_ID: \"G-JZ7R91ZNMB\"\n};\n\nexport default CONSTANTS;\n","// Log messages functions\nimport { getState } from \"./state.utils\";\nimport AnalyticsProvider from \"../lib/providers/AnalyticsProvider/AnalyticsProvider\";\nimport { SupportedProviders } from \"../types/common.types\";\nimport CONSTANTS from \"../config/constants\";\nimport { AnalyticsProviderTypes } from \"../types/event.types\";\n\n/**\n * Handles logs by level and evironment.\n *\n * @since 0.1.0\n * @param {string} message Message to be logged\n * @param {string} type message category\n * @throws If type is severe\n * @throws If type is not one of \"debug\" | \"log\" | \"warn\" | \"error\" | \"severe\"\n */\nexport const logMessage = (\n message: string,\n type: \"debug\" | \"log\" | \"warn\" | \"error\" | \"severe\"\n) => {\n const { debug } = getState();\n const isProduction = process.env.NODE_ENV === \"production\";\n const baseMessage = \"artisn/analytics\";\n\n // If in production do not send this messages\n if (type === \"debug\" && isProduction) {\n return;\n }\n if (type === \"log\" && isProduction) {\n return;\n }\n if (type === \"severe\" && isProduction) {\n type = \"error\";\n }\n\n // If not on debug mode\n if (type === \"debug\" && !debug) {\n return;\n }\n\n switch (type) {\n case \"debug\":\n console.log(\n `%c(Debug) %c${baseMessage}:\\n${message}`,\n \"font-weight: bold\",\n \"font-weight: normal\"\n );\n break;\n case \"log\":\n console.log(\n `%c(Log) %c${baseMessage}:\\n${message}`,\n \"font-weight: bold\",\n \"font-weight: normal\"\n );\n break;\n case \"warn\":\n console.warn(\n `%c(Warning) %c${baseMessage}:\\n${message}`,\n \"font-weight: bold\",\n \"font-weight: normal\"\n );\n break;\n case \"error\":\n console.error(\n `%c(Error) %c${baseMessage}:\\n${message}`,\n \"font-weight: bold\",\n \"font-weight: normal\"\n );\n break;\n case \"severe\":\n throw new Error(`${baseMessage}: \\n${message}`);\n default:\n throw new Error(\n `Log message ${message} of type ${type} is not a supported type.`\n );\n }\n};\n\n/**\n * Log that the developer probably forgot to set an active vendor.\n *\n * @since 0.1.0\n */\nexport const noActiveVendor = () => {\n logMessage(\n \"No active vendor is set. Please make sure you configure an active vendor before trying to emit an event\",\n \"warn\"\n );\n};\n\n/**\n * Log that the active vendor is not one of the included vendors to receive events.\n *\n * @since 0.1.0\n * @param {string} eventName The name of the event\n * @param {AnalyticsProviderTypes} provider the provider that will emit the event\n */\nexport const vendorNotIncluded = (\n eventName: string,\n provider: AnalyticsProviderTypes\n) => {\n const { activeVendor } = getState();\n if (provider.trackingId === CONSTANTS.GLOBAL_TRACKING_ID) {\n return;\n }\n logMessage(\n `Skipping vendor ${activeVendor} for event ${eventName} of provider ${provider.name} as configured`,\n \"debug\"\n );\n};\n\n/**\n * Log that a given event has been emmited to the configured providers.\n *\n * @since 0.1.0\n * @param {string} eventName The name of the event\n * @param {AnalyticsProviderTypes[]} providers Providers that emmited the given event\n */\nexport const eventSent = (\n eventName: string,\n providers: AnalyticsProviderTypes[]\n) => {\n // Separate providers by type\n const providerGroups = providers.reduce<\n Record<SupportedProviders, AnalyticsProvider[]>\n >((acc, provider) => {\n if (provider.trackingId === CONSTANTS.GLOBAL_TRACKING_ID) {\n return acc;\n }\n const { name, type } = provider;\n const preProviders = acc[type] ?? [];\n return {\n ...acc,\n [type]: [...preProviders, name]\n };\n }, {} as Record<SupportedProviders, AnalyticsProvider[]>);\n // Build a message per provider type including all providers of given type\n const providersCategoryMessage = Object.entries(providerGroups).reduce(\n (acc, entry) => {\n const [type, categoryProviders] = entry;\n const typeMessage = type.charAt(0).toUpperCase() + type.slice(1);\n const providersMessage = categoryProviders.join(\", \");\n return `${acc}${typeMessage}: ${providersMessage}\\n`;\n },\n \"\"\n );\n // log the message\n logMessage(\n `Event ${eventName} was successfully sent to the following providers ${providersCategoryMessage}`,\n \"debug\"\n );\n};\n\n/**\n * Log that the SDK must be initialized before to try emit an event.\n *\n * @since 0.1.0\n * @param {SupportedProviders} providerType Supported providers\n */\nexport const logProvidersSDKNotLoaded = (providerType: SupportedProviders) => {\n logMessage(\n `${providerType} SDK not initialized. Please make sure the SDK is initialized before trying to emit an event`,\n \"severe\"\n );\n};\n\n/**\n * Log a provider config was updated.\n *\n * @since 0.1.0\n * @param {AnalyticsProvider} provider The provider that will emit the event\n * @param {Partial<unknown>} config Analyticis provider configured options\n */\nexport const logProviderConfigUpdated = (\n provider: AnalyticsProvider,\n config: Partial<unknown>\n) => {\n if (provider.trackingId === CONSTANTS.GLOBAL_TRACKING_ID) {\n return;\n }\n const fields = Object.entries(config).reduce((acc, entry, index) => {\n const [key, value] = entry;\n if (index === 0) return `${key}: ${value}`;\n return `${acc}\\n${key}: ${value}`;\n }, \"\");\n logMessage(\n `${provider.name} config updated for the following fields.\\n ${fields}`,\n \"debug\"\n );\n};\n","// GoogleAnalytics functions\nimport CONSTANTS from \"../../../config/constants\";\nimport { SupportedProviders } from \"../../../types/common.types\";\nimport { logMessage } from \"../../../utils/logs.utils\";\nimport { getState } from \"../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider as Config } from \"../GoogleAnalytics/GoogleAnalytics.types\";\nimport { GoogleAnalyticsProviderConfig } from \"../GoogleAnalytics/GoogleAnalytics.types\";\n\n/**\n * Create a Global Provider provider instance\n *\n * @class\n * @since 0.1.0\n * @extends AnalyticsProvider\n */\nclass GlobalProvider {\n private initialized = false;\n readonly _type: SupportedProviders = \"GOOGLE_ANALYTICS\";\n readonly _name = \"__GLOBAL_PROVIDER__\";\n readonly _trackingId = CONSTANTS.GLOBAL_TRACKING_ID;\n private _sampleRate = 100;\n private _userId: Config[\"userId\"];\n private _language: Config[\"language\"];\n private _currency: Config[\"currency\"] = \"USD\";\n private _vendors: Config[\"vendors\"];\n private static _instance = new GlobalProvider();\n\n /**\n * Contructs a Global Provider Provider\n *\n * @private\n * @constructs\n * @since 0.1.0\n */\n private constructor() {}\n\n get type() {\n return this._type;\n }\n\n get name() {\n return this._name;\n }\n\n get trackingId() {\n return this._trackingId;\n }\n\n get sampleRate(): Config[\"sampleRate\"] {\n return this._sampleRate;\n }\n\n get userId(): Config[\"userId\"] {\n return this._userId;\n }\n\n get language(): Config[\"language\"] {\n return this._language;\n }\n\n get currency(): Config[\"currency\"] {\n return this._currency;\n }\n\n static get instance() {\n return GlobalProvider._instance;\n }\n\n /**\n * Gets the allowed vendors of the Analytics Provider.\n *\n * @since 0.1.0\n * @returns Analytics Provider vendors, if not specified it fallsback to the global vendors\n */\n get vendors() {\n const { vendors: globalVendors } = getState();\n return this._vendors ?? globalVendors;\n }\n\n setVendors(vendors: Config[\"vendors\"]) {\n this._vendors = vendors;\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n init() {\n if (typeof window === \"undefined\") {\n return;\n }\n if (this.initialized) {\n return logMessage(\n `Provider ${this._name} was already initialized. Do not call init unless you know what you are doing.`,\n \"severe\"\n );\n }\n this.initialized = true;\n const initTagSDK = document.createElement(\"script\");\n initTagSDK.setAttribute(\"async\", \"true\");\n initTagSDK.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${this._trackingId}`\n );\n const initTagEventQueue = document.createElement(\"script\");\n initTagEventQueue.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '${\n this._trackingId\n }', {'send_page_view': ${false}});gtag('event', 'page_view')`;\n document.body.appendChild(initTagSDK);\n document.body.appendChild(initTagEventQueue);\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n updateConfig(config: Partial<GoogleAnalyticsProviderConfig> = {}) {\n const filteredFields = Object.entries(config).filter(entry => {\n return typeof entry[1] !== \"undefined\";\n });\n const filteredKeys = filteredFields.map(field => field[0]);\n const { userId, currency, language } = config;\n\n // If new config includes configurable key, then set it to the new value\n if (filteredKeys.includes(\"userId\")) this._userId = userId;\n if (filteredKeys.includes(\"currency\")) this._currency = currency;\n if (filteredKeys.includes(\"language\")) this._language = language;\n\n gtag(\"set\", this._trackingId, config);\n }\n}\n\nexport default GlobalProvider;\n","// analyticsProvider abstract class\nimport { logMessage } from \"../../../utils/logs.utils\";\nimport { logProviderConfigUpdated } from \"../../../utils/logs.utils\";\nimport { getState } from \"../../../utils/state.utils\";\nimport GlobalProvider from \"../GlobalProvider/GlobalProvider\";\nimport { AnalyticsProviderConstructor as Config } from \"./AnalyticsProvider.types\";\nimport { IAnaliticsProvider } from \"./AnalyticsProvider.types\";\n\n/**\n * Represents the base properties all AnalyticsProviders have.\n *\n * @abstract\n * @since 0.1.0\n */\nabstract class AnalyticsProvider implements IAnaliticsProvider {\n private initialized = false;\n readonly type: Config[\"type\"];\n readonly name: Config[\"name\"];\n readonly trackingId: Config[\"trackingId\"];\n private readonly _vendors: Config[\"vendors\"];\n\n /**\n * Representation of a Customer Account\n *\n * @constructs\n * @since 0.1.0\n * @param {Config} config artisn's account unique identifier.\n */\n constructor(config: Config) {\n const { type, name, trackingId, vendors } = config;\n this.type = type;\n this.name = name;\n this.trackingId = trackingId;\n this._vendors = vendors;\n }\n\n /**\n * Gets the allowed vendors of the Analytics Provider.\n *\n * @since 0.1.0\n * @returns Analytics Provider vendors, if not specified it fallsback to the global vendors\n */\n get vendors() {\n const { vendors: globalVendors } = getState();\n return this._vendors ?? globalVendors;\n }\n\n /**\n * Inserts the initialization script to the body of the document.\n *\n * @since 0.1.0\n */\n init() {\n if (typeof window === \"undefined\") {\n return;\n }\n if (this.initialized) {\n return logMessage(\n `Provider ${this.name} was already initialized. Do not call init unless you know what you are doing.`,\n \"severe\"\n );\n }\n this.initialized = true;\n }\n\n /**\n * Updates the provider instance config for the next events.\n *\n * @since 0.1.0\n * @param {Partial<unknown>} config Analyticis provider configurable options\n */\n updateConfig(config: Partial<unknown>) {\n logProviderConfigUpdated(this, config);\n GlobalProvider.instance.updateConfig(config);\n }\n}\n\nexport default AnalyticsProvider;\n","// facebookPixel functions\nimport AnalyticsProvider from \"../AnalyticsProvider/AnalyticsProvider\";\nimport { FacebookPixelProvider as Config } from \"./FacebookPixel.types\";\nimport { FacebookPixelProviderConfig } from \"./FacebookPixel.types\";\n\n/**\n * Create a Facebook Pixel provider instance.\n *\n * @class\n * @since 0.1.0\n * @extends AnalyticsProvider\n */\nclass FacebookPixel extends AnalyticsProvider {\n private readonly _version: Config[\"version\"];\n private _currency: Config[\"currency\"];\n\n /**\n * Contructs a Facebook Pixel Provider\n *\n * @constructs\n * @since 0.1.0\n * @param {Config} config provider configuration\n */\n constructor(config: Config) {\n const { version, currency } = config;\n super({ ...config, type: \"FACEBOOK_PIXEL\" });\n this._version = version ?? \"10.0\";\n this._currency = currency ?? \"USD\";\n }\n\n get version(): Config[\"version\"] {\n return this._version;\n }\n\n get currency(): Config[\"currency\"] {\n return this._currency;\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n init() {\n super.init();\n const linkTag = document.createElement(\"link\");\n linkTag.setAttribute(\"rel\", \"preconnect\");\n linkTag.setAttribute(\n \"href\",\n \"https://connect.facebook.net/en_US/fbevents.js\"\n );\n const initTag = document.createElement(\"script\");\n initTag.setAttribute(\"async\", \"true\");\n initTag.innerText = `!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='${this.version}';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.trackingId}');fbq('trackSingle', '${this.trackingId}', 'PageView');`;\n const noScript = document.createElement(\"noscript\");\n noScript.innerHTML = `\n <img height=\"1\" width=\"1\" style=\"display:none\" \n src=\"https://www.facebook.com/tr?id={${this.trackingId}}&noscript=1\"/>\n `;\n document.head.appendChild(linkTag);\n document.head.appendChild(initTag);\n document.head.appendChild(noScript);\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n updateConfig(config: Partial<FacebookPixelProviderConfig> = {}) {\n const filteredFields = Object.entries(config).filter(entry => {\n return typeof entry[1] !== \"undefined\";\n });\n const filteredKeys = filteredFields.map(field => field[0]);\n const { currency } = config;\n\n // If new config includes configurable key, then set it to the new value\n if (filteredKeys.includes(\"currency\")) this._currency = currency;\n super.updateConfig(config);\n }\n}\n\nexport default FacebookPixel;\n","// GoogleAnalytics functions\nimport AnalyticsProvider from \"../AnalyticsProvider/AnalyticsProvider\";\nimport { GoogleAnalyticsProvider as Config } from \"./GoogleAnalytics.types\";\nimport { GoogleAnalyticsProviderConfig } from \"./GoogleAnalytics.types\";\n\n/**\n * Create a Google Analytics provider instance\n *\n * @class\n * @since 0.1.0\n * @extends AnalyticsProvider\n */\nclass GoogleAnalytics extends AnalyticsProvider {\n private _sampleRate: Config[\"sampleRate\"];\n private _userId: Config[\"userId\"];\n private _language: Config[\"language\"];\n private _currency: Config[\"currency\"];\n\n /**\n * Constructs a Google Analytics Provider\n *\n * @constructs\n * @since 0.1.0\n * @param {Config} config provider configuration\n */\n constructor(config: Config) {\n super({ ...config, type: \"GOOGLE_ANALYTICS\" });\n const { userId, currency, language, sampleRate } = config;\n this._sampleRate = sampleRate;\n this._userId = userId;\n this._language = language;\n this._currency = currency ?? \"USD\";\n }\n\n get sampleRate(): Config[\"sampleRate\"] {\n return this._sampleRate;\n }\n\n get userId(): Config[\"userId\"] {\n return this._userId;\n }\n\n get language(): Config[\"language\"] {\n return this._language;\n }\n\n get currency(): Config[\"currency\"] {\n return this._currency;\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n init() {\n super.init();\n const linkTag = document.createElement(\"link\");\n linkTag.setAttribute(\"rel\", \"preconnect\");\n linkTag.setAttribute(\n \"href\",\n `https://www.googletagmanager.com/gtag/js?id=${this.trackingId}`\n );\n const initTagSDK = document.createElement(\"script\");\n initTagSDK.setAttribute(\"async\", \"true\");\n initTagSDK.setAttribute(\n \"src\",\n `https://www.googletagmanager.com/gtag/js?id=${this.trackingId}`\n );\n const initTagEventQueue = document.createElement(\"script\");\n initTagEventQueue.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '${\n this.trackingId\n }', {'send_page_view': ${false}});gtag('event', 'page_view')`;\n document.head.appendChild(linkTag);\n document.head.appendChild(initTagSDK);\n document.head.appendChild(initTagEventQueue);\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n updateConfig(config: Partial<GoogleAnalyticsProviderConfig> = {}) {\n const filteredFields = Object.entries(config).filter(entry => {\n return typeof entry[1] !== \"undefined\";\n });\n const filteredKeys = filteredFields.map(field => field[0]);\n const { userId, currency, language } = config;\n\n // If new config includes configurable key, then set it to the new value\n if (filteredKeys.includes(\"userId\")) this._userId = userId;\n if (filteredKeys.includes(\"currency\")) this._currency = currency;\n if (filteredKeys.includes(\"language\")) this._language = language;\n\n gtag(\"set\", this.trackingId, config);\n super.updateConfig(config);\n }\n}\n\nexport default GoogleAnalytics;\n","// Segment functions\nimport AnalyticsProvider from \"../AnalyticsProvider/AnalyticsProvider\";\nimport { SegmentProvider as Config } from \"./Segment.types\";\nimport { SegmentProviderConfig } from \"./Segment.types\";\n\n/**\n * Create a Segment provider instance\n *\n * @class\n * @since 0.1.0\n * @extends AnalyticsProvider\n */\nclass Segment extends AnalyticsProvider {\n private _writeKey: Config[\"writeKey\"];\n private _currency: Config[\"currency\"];\n\n /**\n * Contructs a Segment Provider\n *\n * @constructs\n * @since 0.1.0\n * @param {Config} config provider configuration\n */\n constructor(config: Config) {\n super({ ...config, type: \"SEGMENT\" });\n const { writeKey, currency } = config;\n this._writeKey = writeKey;\n this._currency = currency ?? \"USD\";\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n async init() {\n super.init();\n const initTag = document.createElement(\"script\");\n initTag.setAttribute(\"async\", \"true\");\n initTag.innerText = `\n !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error(\"Segment snippet included twice.\");else{analytics.invoked=!0;analytics.methods=[\"trackSubmit\",\"trackClick\",\"trackLink\",\"trackForm\",\"pageview\",\"identify\",\"reset\",\"group\",\"track\",\"ready\",\"alias\",\"debug\",\"page\",\"once\",\"off\",\"on\",\"addSourceMiddleware\",\"addIntegrationMiddleware\",\"setAnonymousId\",\"addDestinationMiddleware\"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement(\"script\");t.type=\"text/javascript\";t.async=!0;t.src=\"https://cdn.segment.com/analytics.js/v1/\" + key + \"/analytics.min.js\";var n=document.getElementsByTagName(\"script\")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey=\"${this._writeKey}\";analytics.SNIPPET_VERSION=\"4.13.2\";\n analytics.load(\"${this._writeKey}\");\n analytics.page();\n }}();\n `;\n document.head.appendChild(initTag);\n }\n\n /**\n * @override\n * @since 0.1.0\n */\n updateConfig(config: Partial<SegmentProviderConfig> = {}) {\n const filteredFields = Object.entries(config).filter(entry => {\n return typeof entry[1] !== \"undefined\";\n });\n const filteredKeys = filteredFields.map(field => field[0]);\n const { currency } = config;\n\n if (filteredKeys.includes(\"currency\")) this._currency = currency;\n super.updateConfig(config);\n }\n}\n\nexport default Segment;\n","// Providers constructor instances index\nimport FacebookPixel from \"./FacebookPixel/FacebookPixel\";\nimport GoogleAnalytics from \"./GoogleAnalytics/GoogleAnalytics\";\nimport Segment from \"./Segment/Segment\";\n\nconst Providers = {\n FacebookPixel,\n GoogleAnalytics,\n Segment\n};\n\nexport default Providers;\n","// initAnalytics helper functions and data\nimport { AnalyticsProviderTypes } from \"../../types/event.types\";\n\n/**\n * Check if the given providers names are unique.\n *\n * @since 0.1.0\n * @param {AnalyticsProviderTypes[]} providers Providers list\n * @returns {boolean} true if no provider names clashes with another\n */\nexport const checkUniqueProviderNames = (\n providers: AnalyticsProviderTypes[]\n) => {\n const providersNames = providers.map(provider => provider.name);\n const uniqueProviderNames = new Set(providersNames);\n return uniqueProviderNames.size === providersNames.length;\n};\n\n/**\n * Check if the given providers tracker ids are unique.\n *\n * @since 0.1.0\n * @param {AnalyticsProviderTypes[]} providers Providers list\n * @returns {boolean} true if no provider trackerId clashes with another\n */\nexport const checkUniqueProviderTrackerIds = (\n providers: AnalyticsProviderTypes[]\n) => {\n const providersTrackerIds = providers.map(provider => provider.trackingId);\n const uniqueProviderTrackerIds = new Set(providersTrackerIds);\n return uniqueProviderTrackerIds.size === providersTrackerIds.length;\n};\n","// initAnalytics functions\nimport { Vendor } from \"@artisan-commerce/types\";\n\nimport { getState, setInitialState, setState } from \"../../utils/state.utils\";\nimport { GlobalState } from \"../../types/state.types\";\nimport { logMessage } from \"../../utils/logs.utils\";\nimport { InitAnalyticsConfig } from \"./initAnalytics.types\";\nimport packageJSON from \"../../../package.json\";\nimport { checkUniqueProviderNames } from \"./initAnalytics.helpers\";\nimport { checkUniqueProviderTrackerIds } from \"./initAnalytics.helpers\";\nimport GlobalProvider from \"../providers/GlobalProvider/GlobalProvider\";\n\n/**\n * Initializes the analytics module, connects to every provider.\n *\n * @since 0.1.0\n * @param {InitAnalyticsConfig} config Initialization configuration.\n */\nexport const initAnalytics = (config: InitAnalyticsConfig) => {\n // Don't run in server side\n const isServer = typeof window === \"undefined\";\n if (isServer) return;\n\n // Init state\n setInitialState();\n\n const { initialized } = getState();\n if (initialized) {\n logMessage(\n \"initAnalytics has been called more than once. This behaviour will very likely result in unexpected outcomes so its call was skipped. Please make sure initAnalytics is only called once.\",\n \"debug\"\n );\n return;\n }\n\n const { providers, shareArtisnAnalytics } = config;\n\n // Check at least one provider\n if (!providers.length) {\n return logMessage(\n \"At least one provider should be included but none were found\",\n \"severe\"\n );\n }\n\n // Check if providers name are not unique\n if (!checkUniqueProviderNames(providers)) {\n return logMessage(\n \"Providers names must be unique, check that no provider names are repeated\",\n \"severe\"\n );\n }\n\n // Check if providers trackingId are not unique\n if (!checkUniqueProviderTrackerIds(providers)) {\n return logMessage(\n \"Providers trackerId must be unique, check that no provider trackerId are repeated\",\n \"severe\"\n );\n }\n\n // Save config in global state\n const { meta, ...rest } = config;\n const { platform = \"web\" } = meta;\n const enhancedProviders = shareArtisnAnalytics\n ? [GlobalProvider.instance, ...providers]\n : providers;\n const enhancedConfig: Partial<GlobalState> = {\n ...rest,\n providers: enhancedProviders,\n meta: {\n ...meta,\n vendorId: rest.activeVendor,\n platform,\n versionSDK: packageJSON.version\n }\n };\n setState(enhancedConfig);\n\n providers.forEach(provider => {\n const { vendors, name } = provider;\n if (!vendors) {\n logMessage(\n `The provider ${name} has no set vendors, as a result no events will be skipped for this provider`,\n \"debug\"\n );\n }\n });\n\n let globalProviderConfig = {};\n // Insert tracking code for each provider at the end of the body\n enhancedProviders.forEach(provider => {\n globalProviderConfig = { ...globalProviderConfig, ...provider };\n provider.init();\n });\n\n let allVendors: Vendor[\"id\"][] | undefined;\n allVendors = enhancedProviders.reduce((acc, provider) => {\n if (!provider.vendors) {\n return acc;\n }\n return [...acc, ...provider.vendors];\n }, [] as Vendor[\"id\"][]);\n\n allVendors = allVendors?.length ? allVendors : undefined;\n // Update global provider to have the initialization config of each user given providers\n GlobalProvider.instance.updateConfig(globalProviderConfig);\n GlobalProvider.instance.setVendors(allVendors);\n\n setState({ initialized: true });\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function snakeCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"_\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { snakeCase } from \"snake-case\";\nimport { getState } from \"./state.utils\";\n\n/**\n * Update the event parameters keys to be in snake case.\n *\n * @since 0.1.0\n * @param {T} params Event parameters to be transformed\n * @returns {T} Event parameters with its keys in snake case\n */\nexport const eventParamsToSnakeCase = <T>(params: T) => {\n return Object.entries(params).reduce<T>((acc, params) => {\n const [key, value] = params;\n const newKey = snakeCase(key);\n return {\n ...acc,\n [newKey]: value\n };\n }, {} as T);\n};\n\n/**\n * Checks if the web analytics package has been initialized.\n *\n * @returns {boolean} The attribute that indicates whether or not web analytics\n * has been initialized\n */\nexport const checkInit = () => {\n try {\n return getState().initialized;\n } catch (e) {\n return false;\n }\n};\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangePasswordAttemptParams } from \"./changePasswordAttempt.types\";\n\n/**\n * Emits a ChangePasswordAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordAttemptParams} params Event configuration parameters\n */\nconst ChangePasswordAttempt = (\n provider: GoogleAnalyticsProvider,\n params: ChangePasswordAttemptParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_password_attempt\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default ChangePasswordAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangePasswordAttemptParams } from \"./changePasswordAttempt.types\";\n\n/**\n * Emits a changePasswordAttempt event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordAttemptParams} params Event configuration parameters\n */\nconst changePasswordAttempt = (\n provider: FacebookPixelProvider,\n params: ChangePasswordAttemptParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangePasswordAttempt\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangePasswordAttemptParams } from \"./changePasswordAttempt.types\";\n\n/**\n * Emits a changePasswordAttempt event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordAttemptParams} params Event configuration parameters\n */\nconst changePasswordAttempt = (\n provider: SegmentProvider,\n params: ChangePasswordAttemptParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Password Attempt\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordAttempt;\n","const CONSTANTS = {\n PRODUCT_DATE_FORMAT: \"YYYY-MM-DD hh:mm:ss.SSS\",\n DEFAULT_SHOPPING_CART_NAME: \"default\",\n DEFAULT_MAX_SHOPPING_CARTS: 2\n};\n\nclass ActionQueue {\n constructor() {\n this.queue = [];\n }\n get length() {\n return this.queue.length;\n }\n enqueue(newItem) {\n this.queue.push(newItem);\n }\n dequeue() {\n return this.queue.shift();\n }\n}\n\nclass EventLoop {\n constructor() {\n this.running = false;\n }\n async run() {\n const { queue } = getState();\n const next = queue.dequeue();\n if (!next) {\n this.running = false;\n return;\n }\n return await next();\n }\n get isRunning() {\n return this.running;\n }\n async start() {\n this.running = true;\n while (this.running) {\n await this.run();\n }\n }\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst { DEFAULT_SHOPPING_CART_NAME: DEFAULT_SHOPPING_CART_NAME$2, DEFAULT_MAX_SHOPPING_CARTS } = CONSTANTS;\nconst initialState = {\n artisnApp: void 0,\n accountId: void 0,\n customerId: void 0,\n activeShoppingCart: DEFAULT_SHOPPING_CART_NAME$2,\n maxShoppingCarts: DEFAULT_MAX_SHOPPING_CARTS,\n wallets: {},\n anonymous: false,\n initialized: false,\n queue: new ActionQueue(),\n eventLoop: new EventLoop(),\n debug: false\n};\nObject.freeze(initialState);\nlet state = __spreadValues$k({}, initialState);\nObject.seal(state);\nconst setState = (overrides) => {\n state = __spreadValues$k(__spreadValues$k({}, state), overrides);\n};\nconst getState = () => {\n return __spreadValues$k({}, state);\n};\n\nvar __defProp$j = Object.defineProperty;\nvar __defProps$e = Object.defineProperties;\nvar __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));\nconst sortByField = (field, a, b) => {\n const idA = a[field];\n const idB = b[field];\n if (idA > idB) {\n return 1;\n } else if (idB > idA) {\n return -1;\n } else {\n return 0;\n }\n};\nconst sortByProductId = (a, b) => {\n return sortByField(\"productId\", a, b);\n};\nconst sortByQuestionId = (a, b) => {\n return sortByField(\"questionId\", a, b);\n};\nconst logError = (message) => {\n if (process.env.NODE_ENV === \"production\") {\n console.error(message);\n } else {\n throw new Error(message);\n }\n};\nconst logDebug = (message) => {\n const { debug } = getState();\n if (!debug)\n return;\n console.warn(message);\n};\nconst reuseGlobalConfig = (config) => {\n const { debug: configDebug } = config != null ? config : {};\n const { store: configStore } = config != null ? config : {};\n const { accountId: configAccountId } = config != null ? config : {};\n const { anonymous: configAnonymous } = config != null ? config : {};\n const { customerId: configCustomerId } = config != null ? config : {};\n const { shoppingCartName: configCartName } = config != null ? config : {};\n const { maxShoppingCarts: configMaxShoppingCarts } = config != null ? config : {};\n const { accountId: globalAccountId } = getState();\n const { customerId: globalCustomerId } = getState();\n const { store: globalStore, anonymous: globalAnonymous } = getState();\n const { activeShoppingCart: globalCartName } = getState();\n const { maxShoppingCarts: globalMaxShoppingCarts } = getState();\n const { debug: globalDebug } = getState();\n const accountId = configAccountId != null ? configAccountId : globalAccountId;\n const customerId = configCustomerId != null ? configCustomerId : globalCustomerId;\n const prunedConfigStore = configStore ? __spreadProps$e(__spreadValues$j({}, configStore), { polygons: null }) : void 0;\n const store = prunedConfigStore != null ? prunedConfigStore : globalStore;\n const shoppingCartName = configCartName != null ? configCartName : globalCartName;\n const maxShoppingCarts = configMaxShoppingCarts != null ? configMaxShoppingCarts : globalMaxShoppingCarts;\n const anonymous = configAnonymous != null ? configAnonymous : globalAnonymous;\n const debug = configDebug != null ? configDebug : globalDebug;\n return __spreadProps$e(__spreadValues$j({}, config), {\n shoppingCartName,\n customerId,\n store,\n accountId,\n anonymous,\n maxShoppingCarts,\n debug\n });\n};\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$d = Object.defineProperties;\nvar __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));\nconst { DEFAULT_SHOPPING_CART_NAME: DEFAULT_SHOPPING_CART_NAME$1 } = CONSTANTS;\nconst initShoppingCart = (artisnApp, config = {}) => {\n const { initialized } = getState();\n if (initialized) {\n logDebug(`initShoppingCart has been called more than once.\n This behavior will very likely result in unexpected outcomes so its\n call was skipped. Please make sure initShoppingCart is only called once`);\n return;\n }\n const { shoppingCartName } = config;\n setState(__spreadProps$d(__spreadValues$i({\n artisnApp\n }, config), {\n activeShoppingCart: shoppingCartName != null ? shoppingCartName : DEFAULT_SHOPPING_CART_NAME$1\n }));\n const isServer = typeof window === \"undefined\";\n if (!isServer)\n setState({ initialized: true });\n};\nconst closeShoppingCart = () => {\n setState(__spreadValues$i({}, initialState));\n};\n\nconst checkArtisnAppProvided = (message = \"\") => {\n const { artisnApp } = getState();\n if (!artisnApp) {\n throw new Error(`Artisn app must be provided, you probably forgot to initialize the shopping cart. Please make sure initShoppingCart has been called beforehand. ${message}`);\n }\n};\n\nconst checkAccountId = (accountId, message = \"\") => {\n const { accountId: globalAccountId } = getState();\n if (typeof accountId === \"undefined\" && typeof globalAccountId === \"undefined\") {\n throw new Error(`AccountId must be defined. Either provide a global accountId or at the function call level. ${message}`);\n }\n};\nconst checkCustomerId = (customerId, message = \"\") => {\n const { customerId: globalCustomerId } = getState();\n if (typeof customerId === \"undefined\" && typeof globalCustomerId === \"undefined\") {\n throw new Error(`CustomerId must be defined. Either provide a global customerId or at the function call level. ${message}`);\n }\n};\nconst checkStoreId = (store, message = \"\") => {\n const { store: globalStore } = getState();\n if (typeof store === \"undefined\" && typeof globalStore === \"undefined\") {\n throw new Error(`Store must be defined. Either provide a global store or at the function call level. ${message}`);\n }\n};\nconst checkApiURL = (apiURL, message = \"\") => {\n const { apiURL: globalApiURL } = getState().artisnApp;\n if (typeof apiURL === \"undefined\" && typeof globalApiURL === \"undefined\") {\n throw new Error(`ApiURL must be defined. Either provide a global ApiURL or at the function call level. ${message}`);\n }\n};\nconst checkMinimumConfigProvided = (config = {}) => {\n const { accountId, customerId } = config;\n checkAccountId(accountId);\n checkCustomerId(customerId);\n};\nconst checkBenefitConfigProvided = (wallets, cartName, config) => {\n const { benefitId } = config != null ? config : {};\n const activeWallet = wallets[cartName];\n const benefits = activeWallet == null ? void 0 : activeWallet.benefits;\n checkBenefitId(benefitId);\n if (!activeWallet || !benefits) {\n return `No benefits wallet available for ${cartName}, you probably forgot to call listenBenefitsWallet beforehand.`;\n }\n};\nconst checkBenefitId = (benefitId) => {\n if (typeof benefitId !== \"undefined\")\n return;\n throw new Error(`BenefitId must be defined. Provide it at the function call level.`);\n};\nconst checkVendorId = (vendorId, message = \"\") => {\n if (typeof vendorId === \"undefined\") {\n throw new Error(`VendorId must be defined. Provide a global vendorId at the function call level. ${message}`);\n }\n};\nconst checkMinimumFetchWalletConfigProvided = (config) => {\n const { customerId } = config != null ? config : {};\n checkCustomerId(customerId);\n};\nconst checkPlatform = (platform, message = \"\") => {\n const { artisnApp } = getState();\n const { settings } = artisnApp;\n const { platform: globalPlatform } = settings;\n if (typeof platform === \"undefined\" && typeof globalPlatform === \"undefined\") {\n throw new Error(`Platform must be defined. Either provide a global Platform in the artisn object or at the function call level. ${message}`);\n }\n};\nconst checkCommonHeaders = (headers) => {\n const { Platform, account } = headers != null ? headers : {};\n checkPlatform(Platform);\n let selectedAccount = parseInt(account != null ? account : \"\", 10);\n if (isNaN(selectedAccount))\n selectedAccount = void 0;\n checkAccountId(selectedAccount);\n};\nconst checkStoreCouponDetailConfig = (config, message = \"\") => {\n const { countryId, couponId } = config;\n if (typeof countryId === \"undefined\" || typeof couponId === \"undefined\") {\n throw new Error(`Country id or coupon id must be defined. Provide those params at the function call level. ${message}`);\n }\n};\n\nvar __defProp$h = Object.defineProperty;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nconst getStore = (storeData, stores) => {\n const { storeId } = storeData != null ? storeData : {};\n return __spreadValues$h(__spreadValues$h({}, storeData), stores[storeId]);\n};\nconst checkInit = () => getState().initialized;\nconst cleanShoppingCart = (shoppingCart, product) => {\n const { benefits } = shoppingCart;\n if (!(benefits == null ? void 0 : benefits.length))\n return shoppingCart;\n const benefit = benefits.find((benefit2) => {\n if (!product)\n return true;\n const { type } = benefit2;\n if (type !== \"PRODUCT\")\n return void 0;\n if (!Array.isArray(benefit2.award))\n return void 0;\n return benefit2.award.find((award) => award.productId.toString() === product.productId);\n });\n if (!benefit)\n return shoppingCart;\n delete shoppingCart.benefits;\n delete shoppingCart.benefitsHash;\n return shoppingCart;\n};\n\nconst getShoppingCartNodes = async (config = {}) => {\n var _a, _b;\n const reusedConfig = reuseGlobalConfig(config);\n const { artisnApp } = getState();\n const { accountId, customerId, anonymous } = reusedConfig;\n checkArtisnAppProvided();\n checkMinimumConfigProvided(reusedConfig);\n const path = anonymous ? \"anonymousShoppingCartByUser\" : \"shoppingCartByUser\";\n const db = artisnApp == null ? void 0 : artisnApp.__internals__.firestore();\n const cartsCollection = await ((_b = (_a = db == null ? void 0 : db.collection(path)) == null ? void 0 : _a.doc(String(customerId))) == null ? void 0 : _b.collection(String(accountId)));\n return cartsCollection;\n};\nconst getShoppingCartNode = async (config) => {\n const { shoppingCartName } = reuseGlobalConfig(config);\n const cartsCollection = await getShoppingCartNodes(config);\n if (!cartsCollection || !checkInit())\n return;\n const newestCart = await cartsCollection.where(\"name\", \"==\", shoppingCartName).get().then((userCarts) => {\n return userCarts.docs[0];\n });\n return newestCart;\n};\nconst getShoppingCart = async (config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const { shoppingCartName } = reuseGlobalConfig(config);\n const shoppingCartNode = await getShoppingCartNode(config);\n if (!shoppingCartNode || !checkInit()) {\n resolve(null);\n return null;\n }\n setState({ activeShoppingCart: shoppingCartName });\n const shoppingCart = shoppingCartNode.data();\n resolve(shoppingCart);\n return shoppingCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst listenShoppingCart = async (onSnapshot, config = {}) => {\n const { shoppingCartName } = reuseGlobalConfig(config);\n const shoppingCartDocs = await getShoppingCartNodes(config);\n if (!shoppingCartDocs || !checkInit()) {\n return () => {\n };\n }\n setState({ activeShoppingCart: shoppingCartName });\n return shoppingCartDocs.where(\"name\", \"==\", shoppingCartName).onSnapshot(async (snapshot) => {\n var _a;\n if (!((_a = snapshot == null ? void 0 : snapshot.docs) == null ? void 0 : _a[0])) {\n logDebug(`Failed to fetch a shopping cart with name ${shoppingCartName} because there wasn't any.`);\n return onSnapshot(void 0);\n }\n const shoppingCartData = await snapshot.docs[0].data();\n return onSnapshot(shoppingCartData);\n });\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar dayjs_min = {exports: {}};\n\n(function (module, exports) {\n!function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},D=\"en\",v={};v[D]=M;var p=function(t){return t instanceof _},S=function(t,e,n){var r;if(!t)return D;if(\"string\"==typeof t)v[t]&&(r=t),e&&(v[t]=e,r=t);else {var i=t.name;v[i]=t,r=i;}return !n&&r&&(D=r),r||!n&&D},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g=\"set\"+(this.$u?\"UTC\":\"\");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var D=this.$locale().weekStart||0,v=(y<D?y+7:y)-D;return $(r?m-v:m+(6-v),M);case a:case d:return l(g+\"Hours\",0);case u:return l(g+\"Minutes\",1);case s:return l(g+\"Seconds\",2);case i:return l(g+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h=\"set\"+(this.$u?\"UTC\":\"\"),$=(n={},n[a]=h+\"Date\",n[d]=h+\"Date\",n[f]=h+\"Month\",n[c]=h+\"FullYear\",n[u]=h+\"Hours\",n[s]=h+\"Minutes\",n[i]=h+\"Seconds\",n[r]=h+\"Milliseconds\",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].substr(0,s)},c=function(t){return O.s(s%12||12,t,\"0\")},d=n.meridiem||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,\"0\"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,\"0\"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,\"0\"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,\"0\"),s:String(this.$s),ss:O.s(this.$s,2,\"0\"),SSS:O.s(this.$ms,3,\"0\"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,D=O.m(this,M);return D=(l={},l[c]=D/12,l[f]=D,l[h]=D/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?D:O.a(D)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return v[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),b=_.prototype;return w.prototype=b,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",f],[\"$y\",c],[\"$D\",d]].forEach((function(t){b[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=v[D],w.Ls=v,w.p={},w}));\n}(dayjs_min));\n\nvar dayjs = dayjs_min.exports;\n\nconst isBaseProduct = (product) => {\n const { attributes, description, name } = product;\n const { images, prices, productId } = product;\n const { showInMenu } = attributes;\n if (typeof showInMenu !== \"boolean\") {\n return false;\n }\n if (typeof description !== \"string\") {\n return false;\n }\n if (typeof name !== \"string\") {\n return false;\n }\n if (typeof productId !== \"string\") {\n return false;\n }\n if (typeof prices !== \"object\" || typeof prices === \"object\" && Object.keys(prices).length < 1) {\n return false;\n }\n if (!Array.isArray(images)) {\n return false;\n }\n return true;\n};\nconst isProductDetails = (product) => {\n const validBaseProduct = isBaseProduct(product);\n if (!validBaseProduct) {\n return false;\n }\n const { questions } = product;\n if (!Array.isArray(questions)) {\n return false;\n }\n return true;\n};\nconst isCartProduct = (product) => {\n const validProductDetails = isProductDetails(product);\n if (!validProductDetails) {\n return false;\n }\n const { hash, createdAt, updatedAt } = product;\n const { amount, priceCategory, comment, questionsAndAnswers } = product;\n if (typeof hash !== \"string\") {\n return false;\n }\n if (typeof createdAt !== \"string\") {\n return false;\n }\n if (typeof updatedAt !== \"string\") {\n return false;\n }\n if (typeof amount !== \"number\") {\n return false;\n }\n if (typeof comment !== \"string\") {\n return false;\n }\n if (![\"NORMAL\", \"POINTS\"].includes(priceCategory)) {\n return false;\n }\n if (!Array.isArray(questionsAndAnswers)) {\n return false;\n }\n return true;\n};\nconst isFormCartProduct = (product) => {\n var _a;\n const validCartProduct = isCartProduct(product);\n if (!validCartProduct) {\n return false;\n }\n const { questions } = product;\n if (!Array.isArray(questions)) {\n return false;\n }\n const answers = (_a = questions == null ? void 0 : questions[0]) == null ? void 0 : _a.answers;\n if ((answers == null ? void 0 : answers.length) && typeof answers[0].amount === \"undefined\") {\n return false;\n }\n return true;\n};\nconst getGroupType = (group) => {\n const { min, max, type } = group;\n if (type) {\n if (type === \"QUANTITY\" || type === \"SELECT\") {\n return \"COUNTER\";\n }\n return type;\n }\n if (min === 0 && max === 1) {\n return \"CHECKBOX\";\n }\n if (min === 1 && max === 1) {\n return \"RADIO\";\n }\n if (min === 0 && (max === 0 || max === Infinity)) {\n return \"COUNTER\";\n }\n if (max >= min) {\n return \"COUNTER\";\n }\n throw new Error(`Modifier group bad configured. min ${min}, max ${max}, type ${type}`);\n};\nconst getModifierType = (config) => {\n const { groupType, min, max, type } = config;\n if (groupType === \"RADIO\") {\n return \"RADIO\";\n }\n if (type) {\n if (type === \"QUANTITY\" || type === \"SELECT\") {\n return \"COUNTER\";\n }\n return type;\n }\n if (min === 1 && max === 1) {\n return \"RADIO\";\n }\n if (min === 0 && max === 1) {\n return \"CHECKBOX\";\n }\n if (min === 0 && (max === 0 || max === Infinity)) {\n return \"COUNTER\";\n }\n if (max >= min) {\n return \"COUNTER\";\n }\n return groupType;\n};\nconst getModifierMin = (groupConfig) => {\n const { min, modifiersCount } = groupConfig;\n if (modifiersCount === 1) {\n return min;\n }\n return 0;\n};\nconst getModifierMax = (groupConfig) => {\n const { max, type } = groupConfig;\n const normalizedMax = max || Infinity;\n if (type === \"RADIO\") {\n return 1;\n }\n if (type === \"CHECKBOX\") {\n return 1;\n }\n if (type === \"COUNTER\") {\n return normalizedMax;\n }\n return normalizedMax;\n};\nvar __defProp$7$1 = Object.defineProperty;\nvar __defProps$5$1 = Object.defineProperties;\nvar __getOwnPropDescs$5$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$7$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7$1 = (obj, key, value) => key in obj ? __defProp$7$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7$1.call(b, prop))\n __defNormalProp$7$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$7$1)\n for (var prop of __getOwnPropSymbols$7$1(b)) {\n if (__propIsEnum$7$1.call(b, prop))\n __defNormalProp$7$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5$1 = (a, b) => __defProps$5$1(a, __getOwnPropDescs$5$1(b));\nconst multiplyProductQA$3 = (product) => {\n return operationOnProductQA(product, (answer, productAmount) => {\n const accAmount = answer.amount * productAmount;\n const fixedAnswer = multiplyProductQA$3(__spreadProps$5$1(__spreadValues$7$1({}, answer), {\n amount: accAmount\n }));\n return __spreadProps$5$1(__spreadValues$7$1({}, fixedAnswer), { amount: answer.amount * productAmount });\n });\n};\nconst divideProductQA$4 = (product) => {\n return operationOnProductQA(product, (answer, productAmount) => {\n const fixedAnswer = divideProductQA$4(answer);\n return __spreadProps$5$1(__spreadValues$7$1({}, fixedAnswer), { amount: answer.amount / productAmount });\n });\n};\nconst operationOnProductQA = (product, answerEnhancer) => {\n const { amount: productAmount = 1, questionsAndAnswers = [] } = product;\n const newQuestionsAndAnswers = questionsAndAnswers.map((question) => {\n const answers = question.answers.map((answer) => {\n return answerEnhancer(answer, productAmount);\n });\n return __spreadProps$5$1(__spreadValues$7$1({}, question), { answers });\n });\n return __spreadProps$5$1(__spreadValues$7$1({}, product), {\n questionsAndAnswers: newQuestionsAndAnswers\n });\n};\nvar questionsAndAnswers_utils = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n multiplyProductQA: multiplyProductQA$3,\n divideProductQA: divideProductQA$4,\n operationOnProductQA\n});\nvar __defProp$6$1 = Object.defineProperty;\nvar __defProps$4$1 = Object.defineProperties;\nvar __getOwnPropDescs$4$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6$1 = (obj, key, value) => key in obj ? __defProp$6$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6$1.call(b, prop))\n __defNormalProp$6$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$6$1)\n for (var prop of __getOwnPropSymbols$6$1(b)) {\n if (__propIsEnum$6$1.call(b, prop))\n __defNormalProp$6$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4$1 = (a, b) => __defProps$4$1(a, __getOwnPropDescs$4$1(b));\nconst toCartProduct$5 = (product, overrides = {}) => {\n if (isCartProduct(product)) {\n return __spreadValues$6$1(__spreadValues$6$1({}, product), overrides);\n }\n if (isProductDetails(product)) {\n return toCartProductFromProductDetails(product, overrides);\n }\n const productDetails = toProductDetails(product);\n return toCartProductFromProductDetails(productDetails, overrides);\n};\nconst toCartProductFromProductDetails = (product, overrides = {}) => {\n const { questionsAndAnswers, priceCategory, amount } = product;\n const newCartProduct = __spreadValues$6$1(__spreadProps$4$1(__spreadValues$6$1({}, product), {\n questionsAndAnswers: questionsAndAnswers != null ? questionsAndAnswers : [],\n amount: amount != null ? amount : 0,\n priceCategory: priceCategory != null ? priceCategory : \"NORMAL\",\n comment: \"\",\n alerts: [],\n hash: \"\",\n createdAt: \"\",\n updatedAt: \"\"\n }), overrides);\n return newCartProduct;\n};\nconst toProductDetails = (product, overrides = {}) => {\n return __spreadValues$6$1(__spreadProps$4$1(__spreadValues$6$1({}, product), {\n addDirectlyToCart: true,\n isPriceVip: false,\n manufacturer: [],\n maxAmountForSale: 0,\n questions: [],\n schedule: [],\n benefitId: null,\n categories: null\n }), overrides);\n};\nconst toFormCartProduct = (product, overrides = {}) => {\n if (isFormCartProduct(product)) {\n return __spreadValues$6$1(__spreadValues$6$1({}, product), overrides);\n }\n if (isProductDetails(product)) {\n return toFormCartProductFromProductDetails(product, overrides);\n }\n const productDetails = toProductDetails(product);\n return toFormCartProductFromProductDetails(productDetails, overrides);\n};\nconst toFormCartProductHelper = (product, overrides = {}) => {\n const fixedProduct = divideProductQA$4(product);\n const { priceCategory, productId, amount } = fixedProduct;\n const newQuestions = fixedProduct.questions.map((question) => {\n var _a;\n const pairQuestion = (_a = fixedProduct.questionsAndAnswers) == null ? void 0 : _a.find((q) => {\n return q.questionId === question.questionId;\n });\n const selectedQuestion = pairQuestion != null ? pairQuestion : question;\n const { questionId, min, max } = selectedQuestion;\n const answerConfig = {\n rootId: productId,\n min,\n max,\n type: getGroupType(selectedQuestion),\n modifiersCount: question.answers.length,\n amount,\n path: []\n };\n return __spreadProps$4$1(__spreadValues$6$1({}, selectedQuestion), {\n answers: question.answers.map((answer) => {\n var _a2;\n const pairAnswer = pairQuestion == null ? void 0 : pairQuestion.answers.find((a) => {\n return a.amount > 0 && a.productId === answer.productId;\n });\n const selectedAnswer = pairAnswer != null ? pairAnswer : answer;\n const min2 = getModifierMin(answerConfig);\n const max2 = getModifierMax(answerConfig);\n const type = getModifierType({\n min: min2,\n max: max2,\n groupType: answerConfig.type,\n type: selectedAnswer.renderType\n });\n const nested = selectedAnswer.questions.length;\n const partialNewAnswer = __spreadProps$4$1(__spreadValues$6$1({}, selectedAnswer), {\n amount: (_a2 = selectedAnswer == null ? void 0 : selectedAnswer.amount) != null ? _a2 : 0,\n priceCategory,\n questionId,\n min: min2,\n max: max2,\n renderType: type\n });\n return __spreadProps$4$1(__spreadValues$6$1({}, partialNewAnswer), {\n questions: nested ? toFormCartProductHelper(partialNewAnswer).questions : []\n });\n })\n });\n });\n return __spreadValues$6$1(__spreadProps$4$1(__spreadValues$6$1({}, fixedProduct), {\n questions: newQuestions\n }), overrides);\n};\nconst toFormCartProductFromProductDetails = (product, overrides = {}) => {\n const cartProduct = toCartProductFromProductDetails(product);\n return toFormCartProductHelper(cartProduct, overrides);\n};\nconst toFormCartProductFromAnswer = (modifier, overrides = {}) => {\n return toFormCartProductHelper(modifier, overrides);\n};\nconst normalizeProductDetails = (product) => {\n const { questions } = product;\n return __spreadProps$4$1(__spreadValues$6$1({}, product), {\n questions: questions.map((question) => {\n const { answers } = question;\n return __spreadProps$4$1(__spreadValues$6$1({}, question), {\n answers: answers.map((answer) => {\n const { questions: questions2 } = answer;\n return __spreadProps$4$1(__spreadValues$6$1({}, answer), {\n questions: questions2 != null ? questions2 : []\n });\n })\n });\n })\n });\n};\nvar transformers_utils = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n toCartProduct: toCartProduct$5,\n toFormCartProduct,\n toFormCartProductHelper,\n toFormCartProductFromProductDetails,\n toFormCartProductFromAnswer,\n normalizeProductDetails\n});\nconst getProductTotals = (product, amount = product.amount > 0 ? product.amount : 1) => {\n if (amount < 1) {\n throw new Error(\"Cannot set the amount of getProductTotals with a value less than 1\");\n }\n const cartProduct = product;\n const sanitize = !!cartProduct.updatedAt;\n const sanitized = sanitize ? divideProductQA$4(cartProduct) : product;\n return {\n unitGrossPrice: getProductGrossPrice(sanitized, 1),\n unitTotalDiscounts: getProductTotalDiscounts(),\n unitTotalTaxes: getProductTotalTaxes(sanitized, 1),\n unitNetPrice: getProductNetPrice(sanitized, 1),\n amount,\n grossPrice: getProductGrossPrice(sanitized, amount),\n totalDiscounts: getProductTotalDiscounts(),\n totalTaxes: getProductTotalTaxes(sanitized, amount),\n netPrice: getProductNetPrice(sanitized, amount)\n };\n};\nconst getProductTotalTaxes = (product, setAmount) => {\n const cartProduct = toCartProduct$5(product, { amount: setAmount });\n const { prices, amount, priceCategory } = cartProduct;\n const { taxes, grossPrice } = prices[priceCategory];\n const taxTotal = getTaxTotal(taxes, grossPrice);\n const questionsSum = getModifiersTotalTaxes(cartProduct, setAmount);\n if (taxTotal === null || questionsSum === null) {\n return null;\n }\n return questionsSum + taxTotal * amount;\n};\nconst getModifiersTotalTaxes = (product, setAmount) => {\n var _a, _b;\n return (_b = (_a = product.questionsAndAnswers) == null ? void 0 : _a.reduce((acc, question) => {\n const answersSum = question.answers.reduce((acc2, answer) => {\n const { prices, amount, priceCategory } = answer;\n const { taxes, grossPrice } = prices[priceCategory];\n const taxTotal = getTaxTotal(taxes, grossPrice);\n const childrenTotal = getModifiersTotalTaxes(answer, setAmount);\n return acc2 + amount * (Number(taxTotal) + childrenTotal);\n }, 0);\n return acc + answersSum * setAmount;\n }, 0)) != null ? _b : 0;\n};\nconst getProductGrossPrice = (product, setAmount) => {\n return getProductFieldPrice(product, \"grossPrice\", setAmount);\n};\nconst getProductTotalDiscounts = (product, setAmount) => {\n return null;\n};\nconst getProductNetPrice = (product, setAmount) => {\n return getProductFieldPrice(product, \"netPrice\", setAmount);\n};\nconst getProductFieldPrice = (product, field, setAmount) => {\n const cartProduct = toCartProduct$5(product, { amount: setAmount });\n const { prices, amount, priceCategory } = cartProduct;\n const priceField = prices[priceCategory][field];\n const questionsSum = getModifiersFieldTotal(cartProduct, field);\n return (questionsSum + priceField) * amount;\n};\nconst getModifiersFieldTotal = (product, field) => {\n var _a, _b;\n return (_b = (_a = product.questionsAndAnswers) == null ? void 0 : _a.reduce((acc, question) => {\n const answersSum = question.answers.reduce((acc2, answer) => {\n const { prices, amount, priceCategory } = answer;\n const priceField = prices[priceCategory][field];\n const childrenTotal = getModifiersFieldTotal(answer, field);\n return acc2 + amount * (priceField + childrenTotal);\n }, 0);\n return acc + answersSum;\n }, 0)) != null ? _b : 0;\n};\nconst getTaxTotal = (taxes, grossPrice) => {\n if (!taxes.length) {\n return null;\n }\n return taxes.reduce((acc, tax) => {\n return acc + tax.percentage / 100 * grossPrice;\n }, 0);\n};\n\nconst checkProductAmount = (amount) => {\n if (typeof amount !== \"number\") {\n throw new Error(\"Invalid amount received, please make sure you include a valid amount.\");\n }\n if (amount < 0) {\n throw new Error(`Cannot receive a negative amount of an item. Please ensure you have added a proper amount of items.`);\n }\n if (amount === 0) {\n throw new Error(\"Attempting to pass 0 amount. This might indicate a problem with your code. Please ensure you have added a proper amount of items.\");\n }\n};\nconst checkModifyProductConfig = (config) => {\n const { store, amount } = config;\n checkStoreId(store);\n checkProductAmount(amount);\n};\nconst checkRemoveProductConfig = (config) => {\n const { store } = config;\n checkStoreId(store);\n};\nconst checkReplaceProductConfig = (config) => {\n const { store } = config;\n checkStoreId(store);\n};\n\nvar sha1$1 = {exports: {}};\n\nvar crypt = {exports: {}};\n\n(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt$1 = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt$1.rotl(n, 8) & 0x00FF00FF | crypt$1.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt$1.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n crypt.exports = crypt$1;\n})();\n\nvar charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nvar charenc_1 = charenc;\n\n(function() {\n var crypt$1 = crypt.exports,\n utf8 = charenc_1.utf8,\n bin = charenc_1.bin,\n\n // The core\n sha1 = function (message) {\n // Convert to byte array\n if (message.constructor == String)\n message = utf8.stringToBytes(message);\n else if (typeof Buffer !== 'undefined' && typeof Buffer.isBuffer == 'function' && Buffer.isBuffer(message))\n message = Array.prototype.slice.call(message, 0);\n else if (!Array.isArray(message))\n message = message.toString();\n\n // otherwise assume byte array\n\n var m = crypt$1.bytesToWords(message),\n l = message.length * 8,\n w = [],\n H0 = 1732584193,\n H1 = -271733879,\n H2 = -1732584194,\n H3 = 271733878,\n H4 = -1009589776;\n\n // Padding\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >>> 9) << 4) + 15] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n var a = H0,\n b = H1,\n c = H2,\n d = H3,\n e = H4;\n\n for (var j = 0; j < 80; j++) {\n\n if (j < 16)\n w[j] = m[i + j];\n else {\n var n = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16];\n w[j] = (n << 1) | (n >>> 31);\n }\n\n var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (\n j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :\n j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :\n j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :\n (H1 ^ H2 ^ H3) - 899497514);\n\n H4 = H3;\n H3 = H2;\n H2 = (H1 << 30) | (H1 >>> 2);\n H1 = H0;\n H0 = t;\n }\n\n H0 += a;\n H1 += b;\n H2 += c;\n H3 += d;\n H4 += e;\n }\n\n return [H0, H1, H2, H3, H4];\n },\n\n // Public API\n api = function (message, options) {\n var digestbytes = crypt$1.wordsToBytes(sha1(message));\n return options && options.asBytes ? digestbytes :\n options && options.asString ? bin.bytesToString(digestbytes) :\n crypt$1.bytesToHex(digestbytes);\n };\n\n api._blocksize = 16;\n api._digestsize = 20;\n\n sha1$1.exports = api;\n})();\n\nvar sha1 = sha1$1.exports;\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$c = Object.defineProperties;\nvar __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$g.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(b)) {\n if (__propIsEnum$g.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));\nconst { toCartProduct: toCartProduct$4 } = transformers_utils;\nconst { divideProductQA: divideProductQA$3 } = questionsAndAnswers_utils;\nconst getProductHash = (product) => {\n const resetedProduct = divideProductQA$3(product);\n const { productId, questionsAndAnswers, priceCategory } = resetedProduct;\n const prunedQuestions = pruneQuestionsAndAnswers(questionsAndAnswers);\n const sortedQuestions = prunedQuestions.sort(sortByQuestionId);\n const questionAndAnswersIds = sortedQuestions.reduce((acc, question) => {\n const sortedAnswers = question.answers.sort(sortByProductId);\n const answerIds = sortedAnswers.reduce((acc2, answer, index) => {\n const { productId: productId2, amount } = answer;\n const childrenHash = getProductHash(answer);\n const concatChildrenHash = childrenHash ? `{${childrenHash}}` : \"\";\n if (index === 0) {\n return `${productId2}=${amount}${concatChildrenHash}`;\n }\n return `${acc2}|${productId2}=${amount}${concatChildrenHash}`;\n }, \"\");\n const questionIds = `${question.questionId}:${answerIds}`;\n if (acc === \"\") {\n return `${questionIds}`;\n }\n return `${acc}-${questionIds}`;\n }, \"\");\n const sequence = `${productId}-${questionAndAnswersIds}*${priceCategory}`;\n return sha1(sequence);\n};\nconst pruneQuestionsAndAnswers = (questions) => {\n const prunedQuestions = questions.reduce((acc, question) => {\n const prunedAnswers = question.answers.filter((answer) => {\n return answer.amount > 0;\n });\n const prunedAnswersAndChildren = prunedAnswers.map((answer) => {\n const prunedChildren = pruneQuestionsAndAnswers(answer.questionsAndAnswers);\n return __spreadProps$c(__spreadValues$g({}, answer), { questionsAndAnswers: prunedChildren });\n });\n return [...acc, __spreadProps$c(__spreadValues$g({}, question), { answers: prunedAnswersAndChildren })];\n }, []);\n const prunedQuestionsAndAnswers = prunedQuestions.filter((question) => {\n return question.answers.length > 0;\n });\n return prunedQuestionsAndAnswers;\n};\nconst getShoppingCartTotal = (shoppingCart, config = {}) => {\n const initialValue = {\n subtotal: 0,\n totalDiscounts: null,\n shippingCost: null,\n totalTaxes: null,\n totalPoints: null,\n total: 0\n };\n const products = getShoppingCartProducts(shoppingCart);\n if (!products.length)\n return initialValue;\n const totals = products.reduce((acc, product) => {\n const cartProduct = toCartProduct$4(product);\n const { priceCategory } = cartProduct;\n const productTotal = getProductTotals(cartProduct);\n const isPoints = priceCategory === \"POINTS\";\n const points = isPoints ? productTotal.netPrice : 0;\n const normal = !isPoints ? productTotal.netPrice : 0;\n const subtotalNormal = !isPoints ? productTotal.grossPrice : 0;\n return {\n subtotal: acc.subtotal + subtotalNormal,\n totalDiscounts: productTotal.totalDiscounts !== null ? Number(acc.totalDiscounts) + productTotal.totalDiscounts : null,\n totalTaxes: productTotal.totalTaxes !== null ? Number(acc.totalTaxes) + productTotal.totalTaxes : null,\n shippingCost: null,\n totalPoints: points !== null ? Number(acc.totalPoints) + points : null,\n total: acc.total + normal\n };\n }, initialValue);\n const totalsWithBenefits = applyBenefits(shoppingCart, totals);\n const { shippingCost = shoppingCart.shippingCost } = config;\n if (!shippingCost) {\n return totalsWithBenefits;\n }\n const { grossPrice, netPrice, taxTotal, discountTotal } = shippingCost;\n const totalsWithShippingCost = {\n subtotal: totalsWithBenefits.subtotal + grossPrice,\n totalDiscounts: totalsWithBenefits.totalDiscounts !== null ? totalsWithBenefits.totalDiscounts + discountTotal : discountTotal,\n totalTaxes: totalsWithBenefits.totalTaxes !== null ? totalsWithBenefits.totalTaxes + taxTotal : taxTotal,\n shippingCost: netPrice,\n totalPoints: totalsWithBenefits.totalPoints,\n total: totalsWithBenefits.total + netPrice\n };\n return totalsWithShippingCost;\n};\nconst getShoppingCartProducts = (shoppingCart, storeId) => {\n let stores;\n if (typeof storeId === \"undefined\") {\n stores = Object.values(shoppingCart.stores);\n } else {\n stores = [shoppingCart.stores[storeId]];\n }\n return stores.reduce((acc, store) => {\n if (!store)\n return acc;\n const products = Object.values(store.products);\n return [...acc, ...products];\n }, []);\n};\nconst applyBenefits = (shoppingCart, shoppingCartTotals) => {\n const additionalInfo = shoppingCart[\"additional_info\"];\n const benefits = shoppingCart[\"benefits\"];\n if (!benefits) {\n return shoppingCartTotals;\n }\n const benefitsValues = Object.values(benefits);\n return benefitsValues.reduce((acc, benefit) => {\n if (benefit.type === \"DISCOUNT_PERCENTAGE\" && benefit.discountPercentage) {\n return applyBenefitByDiscountPercentage(benefit, acc, shoppingCart);\n }\n if (benefit.type === \"DISCOUNT_FIXED\" && benefit.discountFixed) {\n return applyBenefitByDiscountFixed(benefit, acc, additionalInfo);\n }\n return acc;\n }, shoppingCartTotals);\n};\nconst applyBenefitByDiscountPercentage = (benefit, shoppingCartTotals, shoppingCart) => {\n let taxValue = 0;\n const additionalInfo = shoppingCart[\"additional_info\"];\n const { billTotal } = shoppingCart;\n const { NORMAL } = billTotal;\n const { discounts } = NORMAL != null ? NORMAL : {};\n discounts == null ? void 0 : discounts.forEach((discount) => {\n if (discount.taxValue) {\n taxValue += discount.taxValue;\n }\n });\n const { subtotal, total: prevTotal } = shoppingCartTotals;\n const { totalDiscounts: prevTotalDiscounts } = shoppingCartTotals;\n const discountPercentage = benefit.discountPercentage * 0.01;\n if (typeof (additionalInfo == null ? void 0 : additionalInfo.copayment) !== \"undefined\") {\n const copayment = additionalInfo == null ? void 0 : additionalInfo.copayment;\n const totalDiscount2 = copayment * discountPercentage + taxValue;\n const newTotalDiscounts2 = prevTotalDiscounts !== null ? prevTotalDiscounts + totalDiscount2 : totalDiscount2;\n const newTotal2 = (copayment - totalDiscount2).toFixed(4);\n return __spreadProps$c(__spreadValues$g({}, shoppingCartTotals), {\n totalDiscounts: newTotalDiscounts2,\n total: Number(newTotal2)\n });\n }\n const totalDiscount = subtotal * discountPercentage + taxValue;\n const newTotalDiscounts = prevTotalDiscounts !== null ? prevTotalDiscounts + totalDiscount : totalDiscount;\n const newTotal = prevTotal - totalDiscount;\n return __spreadProps$c(__spreadValues$g({}, shoppingCartTotals), {\n totalDiscounts: newTotalDiscounts,\n total: newTotal\n });\n};\nconst applyBenefitByDiscountFixed = (benefit, shoppingCartTotals, additionalInfo) => {\n const { total: prevTotal } = shoppingCartTotals;\n const { totalDiscounts: prevTotalDiscounts } = shoppingCartTotals;\n const discountFixed = Number(benefit.discountFixed);\n if (typeof (additionalInfo == null ? void 0 : additionalInfo.copayment) !== \"undefined\") {\n const copayment = additionalInfo == null ? void 0 : additionalInfo.copayment;\n const newTotalDiscounts2 = prevTotalDiscounts !== null ? prevTotalDiscounts + discountFixed : discountFixed;\n const newTotal2 = (copayment - discountFixed).toFixed(4);\n return __spreadProps$c(__spreadValues$g({}, shoppingCartTotals), {\n totalDiscounts: newTotalDiscounts2,\n total: Number(newTotal2)\n });\n }\n const newTotalDiscounts = prevTotalDiscounts !== null ? prevTotalDiscounts + discountFixed : discountFixed;\n const newTotal = prevTotal - discountFixed;\n return __spreadProps$c(__spreadValues$g({}, shoppingCartTotals), {\n totalDiscounts: newTotalDiscounts,\n total: newTotal\n });\n};\nconst findProduct = async (config) => {\n const { shoppingCartName } = config;\n const { accountId, customerId, hash, productId, store } = config;\n try {\n if (!hash && typeof productId === \"undefined\") {\n throw new Error(`You must provide either a product id or a product hash,\n but none were given.`);\n }\n const shoppingCart = await getShoppingCart({\n accountId,\n customerId,\n store,\n shoppingCartName\n });\n if (!shoppingCart)\n return;\n const products = getShoppingCartProducts(shoppingCart);\n let product;\n if (hash) {\n product = products.find((item) => item.hash === hash);\n } else {\n product = products.find((item) => item.productId === productId);\n }\n return product;\n } catch (e) {\n console.error(e);\n return void 0;\n }\n};\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$b = Object.defineProperties;\nvar __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));\nconst { DEFAULT_SHOPPING_CART_NAME } = CONSTANTS;\nconst createShoppingCart = async (config, overrides = {}) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n var _a;\n try {\n const reusedConfig = reuseGlobalConfig(config);\n const { shoppingCartName } = reusedConfig;\n const cartsCollection = await getShoppingCartNodes(reusedConfig);\n const newShoppingCart = buildInitialShoppingCart(__spreadValues$f({\n name: shoppingCartName,\n channelId: reusedConfig.channelId\n }, overrides));\n if (!cartsCollection) {\n console.warn(`Couldn't find a shopping cart collection with the given config.\n Please make sure everything is correct in your configuration\n before continue.`);\n resolve(null);\n return null;\n }\n const { name } = newShoppingCart;\n const numberOfCarts = (_a = await cartsCollection.get()) == null ? void 0 : _a.docs.length;\n const maxNumberOfCarts = getState().maxShoppingCarts;\n if (numberOfCarts >= maxNumberOfCarts) {\n throw new Error(`Cannot add more carts. Carts limit (${maxNumberOfCarts}) reached.`);\n }\n const namedCartsDocs = await cartsCollection.where(\"name\", \"==\", name).get();\n const cartsLength = namedCartsDocs.docs.length;\n if (cartsLength > 0) {\n throw new Error(`Attempted to create a shopping cart with the name ${name}, but there is already one shopping cart with that name.`);\n }\n const node = await cartsCollection.add(newShoppingCart);\n if (!node) {\n console.error(\"Failed to create a new shopping cart\");\n resolve(null);\n return null;\n }\n const updatedCart = __spreadProps$b(__spreadValues$f({}, newShoppingCart), { id: node.id });\n await node.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst buildInitialShoppingCart = (overrides = {}) => {\n const date = new Date().toISOString();\n return __spreadValues$f({\n id: \"\",\n name: DEFAULT_SHOPPING_CART_NAME,\n latitude: -1,\n longitude: -1,\n createdAt: date,\n updatedAt: date,\n channelId: 1,\n stores: {},\n billTotal: {},\n shippingCost: null\n }, overrides);\n};\n\nvar __defProp$e = Object.defineProperty;\nvar __defProps$a = Object.defineProperties;\nvar __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));\nconst { PRODUCT_DATE_FORMAT: PRODUCT_DATE_FORMAT$2 } = CONSTANTS;\nconst { toCartProduct: toCartProduct$3 } = transformers_utils;\nconst { multiplyProductQA: multiplyProductQA$2, divideProductQA: divideProductQA$2 } = questionsAndAnswers_utils;\nconst addProduct = async (product, config) => {\n const { createCart } = config;\n if (createCart) {\n const reusedConfig = reuseGlobalConfig(config);\n const shoppingCart = await getShoppingCart(reusedConfig);\n if (!shoppingCart)\n await createShoppingCart(reusedConfig, createCart === true ? void 0 : createCart);\n }\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const reusedConfig = reuseGlobalConfig(config);\n checkModifyProductConfig(reusedConfig);\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n if (!shoppingCartNode) {\n console.warn(\"Cannot add a product because no shopping cart node was found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n const updatedCart = addProductToCartHelper(shoppingCart, product, config);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst addProductToCartHelper = (shoppingCart, product, config) => {\n const reusedConfig = reuseGlobalConfig(config);\n if (process.env.NODE_ENV === \"test\") {\n checkModifyProductConfig(reusedConfig);\n }\n const { amount: originalAmount } = product;\n const amount = originalAmount ? originalAmount : 1;\n const hashCartProduct = toCartProduct$3(product, __spreadProps$a(__spreadValues$e({}, reusedConfig), {\n amount: amount != null ? amount : 1\n }));\n const cartProduct = toCartProduct$3(product, reusedConfig);\n const { store: configStore } = reusedConfig;\n const { storeId } = configStore != null ? configStore : {};\n const hash = getProductHash(hashCartProduct);\n const updatedCart = __spreadValues$e({}, shoppingCart);\n const stores = __spreadValues$e({}, shoppingCart.stores);\n const store = getStore(configStore, stores);\n const products = __spreadValues$e({}, store.products);\n const productExist = products[hash];\n const now = dayjs().format(PRODUCT_DATE_FORMAT$2);\n if (!productExist) {\n products[hash] = cartProduct;\n products[hash].hash = hash;\n products[hash].createdAt = now;\n } else {\n products[hash] = divideProductQA$2(products[hash]);\n products[hash].amount += cartProduct.amount;\n }\n products[hash].updatedAt = now;\n let updatedProduct = products[hash];\n updatedProduct = multiplyProductQA$2(updatedProduct);\n const { questionsAndAnswers } = updatedProduct;\n const newCartModifiers = pruneQuestionsAndAnswers(questionsAndAnswers);\n products[hash] = __spreadProps$a(__spreadValues$e({}, updatedProduct), { questionsAndAnswers: newCartModifiers });\n store.products = products;\n stores[storeId] = store;\n updatedCart.stores = stores;\n return updatedCart;\n};\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst { PRODUCT_DATE_FORMAT: PRODUCT_DATE_FORMAT$1 } = CONSTANTS;\nconst { toCartProduct: toCartProduct$2 } = transformers_utils;\nconst { multiplyProductQA: multiplyProductQA$1, divideProductQA: divideProductQA$1 } = questionsAndAnswers_utils;\nconst subtractProduct = async (product, config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const reusedConfig = reuseGlobalConfig(config);\n checkModifyProductConfig(reusedConfig);\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n if (!shoppingCartNode) {\n console.warn(\"Cannot subtract product because no shopping cart nodes found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n const updatedCart = subtractProductHelper(shoppingCart, product, reusedConfig);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst subtractProductHelper = (shoppingCart, product, config) => {\n const reusedConfig = reuseGlobalConfig(config);\n if (process.env.NODE_ENV === \"test\") {\n checkModifyProductConfig(reusedConfig);\n }\n const { amount: originalAmount } = product;\n const amount = originalAmount ? originalAmount : 1;\n const hashCartProduct = toCartProduct$2(product, __spreadProps$9(__spreadValues$d({}, reusedConfig), {\n amount: amount != null ? amount : 1\n }));\n const cartProduct = toCartProduct$2(product, reusedConfig);\n const { store: configStore } = reusedConfig;\n const { storeId } = configStore != null ? configStore : {};\n const hash = getProductHash(hashCartProduct);\n let updatedCart = __spreadValues$d({}, shoppingCart);\n const stores = __spreadValues$d({}, shoppingCart.stores);\n if (typeof stores[storeId] === \"undefined\") {\n console.warn(`StoreId given is invalid. There is no store with id ${storeId} on the shopping cart.`);\n return shoppingCart;\n }\n const store = getStore(configStore, stores);\n const products = __spreadValues$d({}, store.products);\n const productExist = products[hash];\n const now = dayjs().format(PRODUCT_DATE_FORMAT$1);\n if (!productExist) {\n console.warn(`Attempting to subtract the amount of product that is not in the given shopping cart store.`);\n return shoppingCart;\n }\n products[hash] = divideProductQA$1(products[hash]);\n const newAmount = products[hash].amount - cartProduct.amount;\n if (newAmount > 0) {\n products[hash].amount = newAmount;\n products[hash].updatedAt = now;\n products[hash] = multiplyProductQA$1(products[hash]);\n } else {\n delete products[hash];\n updatedCart = cleanShoppingCart(shoppingCart, product);\n }\n store.products = products;\n if (!Object.keys(store.products).length) {\n delete stores[storeId];\n } else {\n stores[storeId] = store;\n }\n updatedCart.stores = stores;\n return updatedCart;\n};\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst { toCartProduct: toCartProduct$1 } = transformers_utils;\nconst removeProduct = async (product, config = {}) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const reusedConfig = reuseGlobalConfig(config);\n checkRemoveProductConfig(reusedConfig);\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n if (!shoppingCartNode) {\n console.warn(\"Cannot remove a product because no shopping cart nodes found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n const cart = removeProductHelper(shoppingCart, product, reusedConfig);\n const updatedCart = cleanShoppingCart(cart, product);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst removeProductHelper = (shoppingCart, product, config) => {\n const reusedConfig = reuseGlobalConfig(config);\n if (process.env.NODE_ENV === \"test\") {\n checkRemoveProductConfig(reusedConfig);\n }\n let productHash = product.hash;\n if (!productHash) {\n const cartProduct = toCartProduct$1(product);\n productHash = getProductHash(cartProduct);\n }\n const { store: configStore } = reusedConfig;\n const { storeId } = configStore != null ? configStore : {};\n const updatedCart = __spreadValues$c({}, shoppingCart);\n const stores = __spreadValues$c({}, shoppingCart.stores);\n if (typeof stores[storeId] === \"undefined\") {\n console.warn(`StoreId given is invalid. There is no store with id ${storeId} on the shopping cart.`);\n return shoppingCart;\n }\n const store = getStore(configStore, stores);\n const products = __spreadValues$c({}, store.products);\n const productExist = products[productHash];\n if (!productExist) {\n console.warn(`Attempting to remove product that is not in the given shopping cart store.`);\n return shoppingCart;\n }\n delete products[productHash];\n store.products = products;\n if (!Object.keys(store.products).length) {\n delete stores[storeId];\n } else {\n stores[storeId] = store;\n }\n updatedCart.stores = stores;\n return updatedCart;\n};\n\nvar __defProp$b = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nconst { PRODUCT_DATE_FORMAT } = CONSTANTS;\nconst { toCartProduct } = transformers_utils;\nconst { multiplyProductQA, divideProductQA } = questionsAndAnswers_utils;\nconst setProduct = async (product, config = {}) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n var _a, _b;\n try {\n const reusedConfig = reuseGlobalConfig(config);\n const amount = (_b = (_a = reusedConfig.amount) != null ? _a : product == null ? void 0 : product.amount) != null ? _b : 1;\n const actionConfig = __spreadProps$8(__spreadValues$b({}, reusedConfig), { amount });\n checkModifyProductConfig(actionConfig);\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n if (!shoppingCartNode) {\n console.warn(\"Cannot set product because no shopping cart nodes found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n const cart = setProductHelper(shoppingCart, product, actionConfig);\n const updatedCart = cleanShoppingCart(cart, product);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst setProductHelper = (shoppingCart, product, config) => {\n var _a;\n const reusedConfig = reuseGlobalConfig(config);\n if (process.env.NODE_ENV === \"test\") {\n checkModifyProductConfig(reusedConfig);\n }\n const amount = (_a = product == null ? void 0 : product.amount) != null ? _a : 1;\n const hashCartProduct = toCartProduct(product, __spreadProps$8(__spreadValues$b({}, reusedConfig), { amount }));\n const { store: configStore } = reusedConfig;\n const { storeId } = configStore != null ? configStore : {};\n const hash = getProductHash(hashCartProduct);\n const updatedCart = __spreadValues$b({}, shoppingCart);\n const stores = __spreadValues$b({}, shoppingCart.stores);\n const store = getStore(configStore, stores);\n const products = __spreadValues$b({}, store.products);\n const productExist = products[hash];\n const now = dayjs().format(PRODUCT_DATE_FORMAT);\n products[hash] = hashCartProduct;\n if (!productExist) {\n products[hash].createdAt = now;\n products[hash].hash = hash;\n } else {\n products[hash] = divideProductQA(products[hash]);\n }\n products[hash].updatedAt = now;\n let updatedProduct = toCartProduct(products[hash], reusedConfig);\n updatedProduct = multiplyProductQA(updatedProduct);\n const { questionsAndAnswers } = updatedProduct;\n const newCartModifiers = pruneQuestionsAndAnswers(questionsAndAnswers);\n products[hash] = __spreadProps$8(__spreadValues$b({}, updatedProduct), { questionsAndAnswers: newCartModifiers });\n store.products = products;\n stores[storeId] = __spreadProps$8(__spreadValues$b({}, store), { polygons: null });\n updatedCart.stores = stores;\n return updatedCart;\n};\n\nvar __defProp$a = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nconst replaceProduct = async (product, config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const reusedConfig = reuseGlobalConfig(config);\n checkReplaceProductConfig(reusedConfig);\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n if (!shoppingCartNode) {\n console.warn(\"Cannot replace product because no shopping cart nodes found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n const cart = replaceProductHelper(shoppingCart, product, reusedConfig);\n const updatedCart = cleanShoppingCart(cart, product);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst replaceProductHelper = (shoppingCart, product, config) => {\n const reusedConfig = reuseGlobalConfig(config);\n if (process.env.NODE_ENV === \"test\") {\n checkReplaceProductConfig(reusedConfig);\n }\n const { hash: configHash } = reusedConfig;\n const hash = configHash != null ? configHash : product.hash;\n const { store: configStore } = reusedConfig;\n const { storeId } = configStore != null ? configStore : {};\n const stores = __spreadValues$a({}, shoppingCart.stores);\n const store = getStore(configStore, stores);\n const products = __spreadValues$a({}, store.products);\n const productExist = products[hash];\n if (!productExist) {\n console.warn(\"Cannot replace a product because no product was found in the given store\");\n return shoppingCart;\n }\n delete products[hash];\n store.products = products;\n if (!Object.keys(store.products).length) {\n delete stores[storeId];\n } else {\n stores[storeId] = store;\n }\n let updatedCart = __spreadValues$a({}, shoppingCart);\n updatedCart.stores = stores;\n const newProduct = __spreadProps$7(__spreadValues$a({}, product), { amount: 0 });\n updatedCart = addProductToCartHelper(updatedCart, newProduct, reusedConfig);\n return updatedCart;\n};\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nconst emptyShoppingCart = async (config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const shoppingCartNode = await getShoppingCartNode(config);\n const { shoppingCartName, vendorId } = reuseGlobalConfig(config);\n if (!shoppingCartNode) {\n logDebug(`Cannot empty cart, shopping cart nodes not found. Please ensure you have a shopping cart with name ${shoppingCartName} before continue.`);\n resolve(null);\n return null;\n }\n const shoppingCart = await shoppingCartNode.data();\n delete shoppingCart.pickUpTime;\n const stores = {};\n if (typeof vendorId !== \"undefined\") {\n const filteredStores = Object.values(shoppingCart.stores).filter((store) => store.vendor.id != vendorId);\n filteredStores.forEach((store) => {\n stores[`${store.storeId}`] = store;\n });\n }\n const cart = __spreadProps$6(__spreadValues$9({}, shoppingCart), { stores });\n const updatedCart = cleanShoppingCart(cart);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\n\nconst deleteShoppingCart = async (config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const shoppingCartNode = await getShoppingCartNode(config);\n const { shoppingCartName } = reuseGlobalConfig(config);\n if (!shoppingCartNode) {\n logDebug(`Couldn't find any shopping cart with name ${shoppingCartName} with the given config.`);\n resolve(null);\n return null;\n }\n const shoppingCart = shoppingCartNode.data();\n await shoppingCartNode.ref.delete();\n resolve(shoppingCart);\n return shoppingCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\n\nconst checkValidateShoppingCartConfig = (config, headers) => {\n const { apiURL } = config;\n checkApiURL(apiURL);\n checkCommonHeaders(headers);\n};\n\nconst initAuth = (app) => {\n if (typeof window === \"undefined\") {\n return void 0;\n }\n return app.__internals__.auth();\n};\n\nconst commonHeaders = {\n \"Content-Type\": \"application/json\"\n};\n\nvar __defProp$8 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nconst buildServiceHeaders = async (headers) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const { artisnApp, accountId: localAccountId } = getState();\n const { settings } = artisnApp;\n const { platform, accountId: globalAccountId } = settings;\n const account = (_d = (_c = (_b = (_a = headers.account) == null ? void 0 : _a.toString()) != null ? _b : localAccountId == null ? void 0 : localAccountId.toString()) != null ? _c : globalAccountId == null ? void 0 : globalAccountId.toString()) != null ? _d : \"\";\n const selectedPlatform = (_f = (_e = headers == null ? void 0 : headers.Platform) != null ? _e : platform) != null ? _f : \"\";\n const Platform = selectedPlatform;\n const Authorization = (_h = (_g = headers == null ? void 0 : headers.Authorization) != null ? _g : await getArtisnAuthToken()) != null ? _h : \"\";\n return new Headers(__spreadProps$5(__spreadValues$8(__spreadValues$8({}, commonHeaders), headers), {\n Authorization,\n Platform,\n account\n }));\n};\nconst getArtisnAuthToken = async (forceRefresh) => {\n var _a;\n const { artisnApp } = getState();\n if (!artisnApp)\n return;\n const auth = () => initAuth(artisnApp);\n const token = await ((_a = auth().currentUser) == null ? void 0 : _a.getIdToken(forceRefresh));\n if (!token) {\n logError(\"Please make sure you are authenticated before trying to call a restricted action.\");\n return;\n }\n return `Bearer ${token}`;\n};\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nconst validateShoppingCart$1 = async (config, headers) => {\n const { apiURL } = getState().artisnApp;\n const { id, latitude, longitude } = config;\n const selectedHeaders = await buildServiceHeaders(__spreadValues$7({}, headers));\n let url = `${apiURL}/api/shopping-cart/${id}/validateShoppingCart`;\n try {\n if (typeof latitude !== \"undefined\" && typeof longitude !== \"undefined\") {\n url += `?latitude=${latitude}&longitude=${longitude}`;\n }\n const data = await fetch(url, {\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n });\n const shoppingCart = data.data;\n if (!shoppingCart)\n throw new Error(\"No shopping cart was found.\");\n const storeAlerts = Object.values(shoppingCart.stores).reduce((acc, store) => {\n if (store.alerts.length)\n return [...acc, ...store.alerts];\n return acc;\n }, []);\n const products = getShoppingCartProducts(shoppingCart);\n const productsAlerts = products.map((item) => item.alerts).flat();\n const alerts = {\n stores: storeAlerts,\n products: productsAlerts\n };\n return alerts;\n } catch (e) {\n console.error(e.message);\n return {\n stores: [\n {\n errorLevel: 1,\n message: \"Ocurri\\xF3 un error desconocido, comun\\xEDquese con soporte\",\n type: \"\"\n }\n ],\n products: []\n };\n }\n};\n\nconst validateShoppingCart = async (config = {}, headers) => {\n const reusedConfig = reuseGlobalConfig(config);\n checkValidateShoppingCartConfig(reusedConfig, headers);\n const { latitude, longitude, shoppingCartName } = reusedConfig;\n const shoppingCartNode = await getShoppingCartNode(reusedConfig);\n const { id } = shoppingCartNode != null ? shoppingCartNode : {};\n if (typeof id === \"undefined\") {\n console.error(`Cannot use undefined as a shopping cart id. Shopping cart ${shoppingCartName} was not found. Validation canceled.`);\n return;\n }\n return await validateShoppingCart$1({ id, latitude, longitude }, headers);\n};\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nconst getInitialBenefitsWallet = (overrides = {}) => {\n return __spreadValues$6({ benefits: [] }, overrides);\n};\nconst mapCollectionToBenefits = (benefitsNode, hash) => {\n const benefits = Object.values(benefitsNode).map((benefit) => {\n const newBenefit = __spreadProps$4(__spreadValues$6({}, benefit), { hash });\n return newBenefit;\n });\n return benefits;\n};\nconst updateBenefitsWallets = (walletName, newWallet) => {\n const { wallets } = getState();\n const newWallets = __spreadProps$4(__spreadValues$6({}, wallets), {\n [walletName]: __spreadValues$6({}, newWallet)\n });\n setState({ wallets: newWallets });\n};\nconst getBenefitsNode = async (config = {}) => {\n var _a, _b;\n const {\n artisnApp,\n customerId: globalCustomerId,\n accountId: globalAccountId\n } = getState();\n const { accountId, customerId } = config;\n checkArtisnAppProvided();\n checkMinimumConfigProvided(config);\n const db = artisnApp == null ? void 0 : artisnApp.__internals__.firestore();\n const benefitsCollection = await ((_b = (_a = db == null ? void 0 : db.collection(\"benefitsByUser\")) == null ? void 0 : _a.doc(String(customerId != null ? customerId : globalCustomerId))) == null ? void 0 : _b.collection(String(accountId != null ? accountId : globalAccountId)));\n return benefitsCollection;\n};\nconst getWalletNode = async (config) => {\n try {\n const benefitsCollection = await getBenefitsNode(config);\n if (!benefitsCollection)\n return;\n const newestBenefits = await benefitsCollection.get().then((benefitsByUser) => {\n return benefitsByUser.docs[0];\n });\n return newestBenefits;\n } catch (e) {\n console.error(e.message);\n }\n};\nconst getWallet = async (config) => {\n const benefitsByUserNode = await getWalletNode(config);\n if (!benefitsByUserNode)\n return;\n if (Object.keys(benefitsByUserNode.data()).length === 0)\n return [];\n const hash = benefitsByUserNode.id;\n const benefits = Object.values(benefitsByUserNode.data()).map((benefit) => {\n const newBenefit = __spreadProps$4(__spreadValues$6({}, benefit), { hash });\n return newBenefit;\n });\n return benefits;\n};\n\nvar __defProp$5 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst fetchWalletByUser = async (config, headers) => {\n const { apiURL } = getState().artisnApp;\n const { vendorId, customerId } = config;\n const selectedHeaders = await buildServiceHeaders(__spreadProps$3(__spreadValues$5({}, headers), {\n uid: customerId.toString()\n }));\n let serviceURL = \"/api/shopping-cart/retrieveBenefits\";\n if (vendorId)\n serviceURL = serviceURL + `?vendorId=${vendorId}`;\n const url = `${apiURL}${serviceURL}`;\n const data = await fetch(url, {\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n }).catch((e) => {\n throw new Error(`Failed to retrieve the user's wallet\n ${e.message}`);\n });\n if (!data) {\n throw new Error(`The benefits wallet is not defined. Make sure coupons are well configured`);\n }\n};\nconst redeemCouponService = async (config, code, headers) => {\n const { apiURL } = getState().artisnApp;\n const { customerId } = config;\n const selectedHeaders = await buildServiceHeaders(__spreadProps$3(__spreadValues$5({}, headers), {\n uid: customerId.toString()\n }));\n try {\n const url = `${apiURL}/api/wallet_profit/apply`;\n const result = await fetch(url, {\n method: \"post\",\n body: JSON.stringify({ code }),\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n });\n const response = result;\n const { code: responseCode, data, message } = response;\n if (responseCode === 200)\n return true;\n if (!data)\n throw new Error(message.code);\n logError(`Unhandled response when redeeming coupon ${JSON.stringify(response, void 0, 2)}`);\n return false;\n } catch (e) {\n throw new Error(e.message);\n }\n};\nconst applyBenefitService = async (config, headers) => {\n var _a, _b;\n const { benefit, customerId, shoppingCartId } = config;\n const { benefitId } = benefit;\n const { apiURL } = getState().artisnApp;\n const selectedHeaders = await buildServiceHeaders(__spreadProps$3(__spreadValues$5({}, headers), {\n uid: customerId.toString()\n }));\n const selectedBenefitBody = {\n benefitId,\n shoppingCartId\n };\n const url = `${apiURL}/api/shopping-cart/applyBenefit`;\n const data = await fetch(url, {\n method: \"post\",\n body: JSON.stringify(selectedBenefitBody),\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n });\n if ((data == null ? void 0 : data.code) !== 200) {\n throw new Error((_b = (_a = data.message) == null ? void 0 : _a.message) != null ? _b : data.message);\n }\n if ((data == null ? void 0 : data.data.length) === 0) {\n throw new Error(\"No benefits were applied to the current shopping cart\");\n }\n return data;\n};\nconst fetchStoreCoupons = async (config, headers) => {\n const { apiURL } = getState().artisnApp;\n const { vendorId } = config;\n checkVendorId(vendorId);\n const url = `${apiURL}/api/couponByPromotion/categories?orderBy=created_at&sortBy=DESC&vendorId=${vendorId}`;\n const selectedHeaders = await buildServiceHeaders(__spreadValues$5({}, headers));\n const data = await fetch(url, {\n method: \"get\",\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n });\n if ((data == null ? void 0 : data.code) !== 200)\n throw new Error(data.message);\n return data.data;\n};\nconst fetchStoreCouponDetail = async (config, headers) => {\n const { apiURL } = getState().artisnApp;\n const { couponId, countryId } = config;\n checkStoreCouponDetailConfig(config);\n const url = `${apiURL}/api/coupon/${couponId}?countryId=${countryId}`;\n const selectedHeaders = await buildServiceHeaders(__spreadValues$5({}, headers));\n const data = await fetch(url, {\n method: \"get\",\n headers: selectedHeaders\n }).then(async (data2) => {\n return await data2.json();\n });\n if ((data == null ? void 0 : data.code) !== 200)\n throw new Error(data.message);\n return data.data;\n};\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nconst listenBenefitsWallet = (onSnapshot, config, headers) => {\n const reusedConfig = reuseGlobalConfig(config);\n checkMinimumFetchWalletConfigProvided(reusedConfig);\n checkCommonHeaders(headers);\n const { shoppingCartName, customerId, anonymous } = reusedConfig;\n const { wallets } = getState();\n const walletExists = wallets[shoppingCartName];\n if (anonymous)\n return () => unsubscriber(shoppingCartName);\n if (walletExists) {\n logError(`There is already a listener for wallet of name ${shoppingCartName}. Either unsubscribe to the other listener or create a new listener for a different cart`);\n return () => unsubscriber(shoppingCartName);\n }\n const newWallet = getInitialBenefitsWallet();\n updateBenefitsWallets(shoppingCartName, __spreadProps$2(__spreadValues$4({}, newWallet), { onSnapshot }));\n let dbUnsubscriber = void 0;\n (async () => {\n const fetchConfig = __spreadProps$2(__spreadValues$4({}, reusedConfig), { customerId });\n try {\n await fetchWalletByUser(fetchConfig, headers);\n const benefitsNode = await getBenefitsNode(reusedConfig);\n if (!benefitsNode) {\n throw new Error(\"Failed to retrieve the benefits wallet node\");\n }\n dbUnsubscriber = benefitsNode.onSnapshot(async (collection) => {\n var _a, _b, _c;\n const benefitsByUser = (_c = (_b = (_a = collection == null ? void 0 : collection.docs) == null ? void 0 : _a[0]) == null ? void 0 : _b.data()) != null ? _c : {};\n if (Object.keys(benefitsByUser).length === 0) {\n const newWallet3 = getInitialBenefitsWallet();\n updateBenefitsWallets(shoppingCartName, __spreadProps$2(__spreadValues$4({}, newWallet3), {\n onSnapshot\n }));\n onSnapshot(newWallet3);\n return;\n }\n const hash = collection.docs[0].id;\n const benefits = mapCollectionToBenefits(benefitsByUser, hash);\n const newWallet2 = getInitialBenefitsWallet({\n benefits\n });\n updateBenefitsWallets(shoppingCartName, __spreadProps$2(__spreadValues$4({}, newWallet2), { onSnapshot }));\n onSnapshot(newWallet2);\n });\n } catch (e) {\n console.error(e.message);\n }\n })();\n return () => unsubscriber(shoppingCartName, dbUnsubscriber);\n};\nconst unsubscriber = (shoppingCartName, unsubscribe) => {\n const { wallets } = getState();\n const newWallets = __spreadValues$4({}, wallets);\n delete newWallets[shoppingCartName];\n setState({ wallets: newWallets });\n if (unsubscribe)\n unsubscribe();\n};\n\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nconst applyBenefit = async (config) => {\n const reusedConfig = reuseGlobalConfig(config);\n checkMinimumConfigProvided(reusedConfig);\n const { benefitId, shoppingCartName } = reusedConfig;\n const { wallets } = getState();\n const errorMessage = checkBenefitConfigProvided(wallets, shoppingCartName, reusedConfig);\n if (errorMessage) {\n logError(errorMessage);\n return;\n }\n const activeWallet = wallets[shoppingCartName];\n const benefits = activeWallet.benefits;\n const benefitToApply = benefits.find((benefit) => benefit.benefitId === benefitId);\n if (!benefitToApply) {\n logError(`No benefit was found in the benefits wallet with the benefitId provided.`);\n return;\n }\n const { type: benefitType } = benefitToApply;\n switch (benefitType) {\n case \"PRODUCT\":\n return applyProductBenefitHelper(reusedConfig, benefitToApply);\n case \"ALTER_DELIVERY\":\n return applyAlterDeliveryBenefitHelper(reusedConfig, benefitToApply);\n case \"DISCOUNT_PERCENTAGE\":\n case \"DISCOUNT_FIXED\":\n return applyDiscountBenefitHelper(reusedConfig, benefitToApply);\n default:\n logError(\"The benefit to be applied is not of type PRODUCT, DISCOUNT_PERCENTAGE, DISCOUNT_FIXED or ALTER_DELIVERY.\");\n break;\n }\n};\nconst applyProductBenefitHelper = async (config, benefit) => {\n const reusedConfig = reuseGlobalConfig(config);\n const { product, productConfig, anonymous } = reusedConfig;\n const { benefitId } = benefit;\n if (!product || !productConfig) {\n logError(`The product or the product configuration has not been provided to apply the selected benefit.`);\n return;\n }\n product.benefitId = benefitId;\n await applyBenefitsToCart(reusedConfig, benefit);\n await addProduct(product, __spreadValues$3({ anonymous }, productConfig));\n};\nconst applyAlterDeliveryBenefitHelper = async (config, benefit) => {\n const reusedConfig = reuseGlobalConfig(config);\n const { shippingCost, latitude, longitude, shoppingCartName } = reusedConfig;\n const { anonymous } = reusedConfig;\n if (!shippingCost || !latitude || !longitude) {\n logError(\"The shippingCost, latitude and longitude are required to apply the selected benefit.\");\n return;\n }\n const { benefitWalletId, award } = benefit;\n if (Array.isArray(award)) {\n logError(\"To apply a ALTER_DELIVERY benefit, the award associated with the benefit cannot be an array.\");\n return;\n }\n const { benefitId: awardBenefitId, discountPercentage } = award;\n const { subtotalBeforeTaxes } = shippingCost;\n const value = subtotalBeforeTaxes * (discountPercentage / 100);\n const benefitList = [];\n benefitList.push({\n benefitWalletId,\n benefitId: awardBenefitId,\n discountBase: subtotalBeforeTaxes,\n percentage: discountPercentage,\n priceCategory: \"NORMAL\",\n value\n });\n shippingCost.discounts = benefitList;\n await applyBenefitsToCart(reusedConfig, benefit, shippingCost);\n await validateShoppingCart({\n latitude,\n longitude,\n shoppingCartName,\n anonymous\n });\n};\nconst applyBenefitsToCart = async (config, benefit, shippingCost) => {\n const shoppingCartNode = await getShoppingCartNode(config);\n if (!shoppingCartNode) {\n console.warn(\"Cannot add benefit because no shopping cart nodes were found. Please ensure you have a shopping cart before continue.\");\n return;\n }\n const shoppingCart = await shoppingCartNode.data();\n const updatedCart = applyBenefitsHelper(shoppingCart, benefit, shippingCost);\n await shoppingCartNode.ref.set(updatedCart);\n};\nconst applyBenefitsHelper = (shoppingCart, benefit, shippingCost) => {\n const { hash } = benefit;\n const { benefits } = shoppingCart;\n const temporalBenefits = benefits != null ? benefits : [];\n temporalBenefits.push(benefit);\n shoppingCart.benefits = temporalBenefits;\n shoppingCart.benefitsHash = hash;\n if (shippingCost)\n shoppingCart.shippingCost = shippingCost;\n return shoppingCart;\n};\nconst applyDiscountBenefitHelper = async (config, benefit) => {\n const reuseConfig = reuseGlobalConfig(config);\n const { customerId, shoppingCartId, shoppingCartName } = reuseConfig;\n if (!customerId) {\n logError(\"To apply a DISCOUNT_PERCENTAGE or DISCOUNT_FIXED benefit, a customerId must be provided.\");\n return;\n }\n if (!shoppingCartId) {\n logError(\"To apply a DISCOUNT_PERCENTAGE or DISCOUNT_FIXED benefit, a shoppingCartId must be provided.\");\n return;\n }\n const shoppingCart = await getShoppingCart(reuseConfig);\n if (!shoppingCart) {\n logError(`Cannot apply discount benefit because no shopping cart was found. Please ensure you create a shopping cart with name ${shoppingCartName} before continue.`);\n return;\n }\n const { subtotal } = getShoppingCartTotal(shoppingCart);\n if (benefit.type === \"DISCOUNT_FIXED\" && subtotal < Number(benefit.discountFixed)) {\n logError(\"Cannot apply DISCOUNT_FIXED benefit because discount is greater than cart subtotal.\");\n return;\n }\n await applyBenefitService({ benefit, customerId, shoppingCartId });\n};\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst removeBenefit = async (config) => {\n const reusedConfig = reuseGlobalConfig(config);\n checkMinimumConfigProvided(reusedConfig);\n const { benefitId, shoppingCartName } = reusedConfig;\n const { wallets } = getState();\n const errorMessage = checkBenefitConfigProvided(wallets, shoppingCartName, reusedConfig);\n if (errorMessage) {\n logError(errorMessage);\n return;\n }\n const activeWallet = wallets[shoppingCartName];\n const benefits = activeWallet.benefits;\n const benefitToRemove = benefits.find((benefit) => benefit.benefitId === benefitId);\n if (!benefitToRemove) {\n logError(`No benefit was found in the benefits wallet with the benefitId provided.`);\n return;\n }\n const { type: benefitType } = benefitToRemove;\n switch (benefitType) {\n case \"PRODUCT\":\n return removeProductBenefitHelper(reusedConfig, benefitToRemove);\n case \"ALTER_DELIVERY\":\n return removeAlterDeliveryBenefitHelper(reusedConfig, benefitToRemove);\n case \"DISCOUNT_PERCENTAGE\":\n case \"DISCOUNT_FIXED\":\n return removeBenefitsFromCart(reusedConfig, benefitToRemove);\n default:\n logError(\"The benefit to be removed is not of type PRODUCT, DISCOUNT_PERCENTAGE, DISCOUNT_FIXED or ALTER_DELIVERY.\");\n break;\n }\n};\nconst removeProductBenefitHelper = async (config, benefit) => {\n const reusedConfig = reuseGlobalConfig(config);\n const { product, productConfig } = reusedConfig;\n const { store } = productConfig != null ? productConfig : {};\n if (!product || !store) {\n logError(\"The cart product and the store, inside benefitProductConfig object, are required to remove the selected benefit.\");\n return;\n }\n reusedConfig.productConfig.store = __spreadProps$1(__spreadValues$2({}, store), { polygons: null });\n await removeBenefitsFromCart(reusedConfig, benefit);\n await removeProduct(product, productConfig);\n};\nconst removeAlterDeliveryBenefitHelper = async (config, benefit) => {\n const reusedConfig = reuseGlobalConfig(config);\n const { shippingCost } = reusedConfig;\n if (!shippingCost) {\n logError(`The shippingCost is require to remove the selected benefit.`);\n return;\n }\n return removeBenefitsFromCart(reusedConfig, benefit, shippingCost);\n};\nconst removeBenefitsFromCart = async (config, benefit, shippingCost) => {\n const shoppingCartNode = await getShoppingCartNode(config);\n if (!shoppingCartNode) {\n console.warn(`Cannot remove benefit because no shopping cart nodes were found. Please ensure you have a shopping cart before continue.`);\n return;\n }\n const shoppingCart = await shoppingCartNode.data();\n const updatedCart = removeBenefitsHelper(shoppingCart, benefit, shippingCost);\n await shoppingCartNode.ref.set(updatedCart);\n};\nconst removeBenefitsHelper = (shoppingCart, benefit, shippingCost) => {\n const { benefits } = shoppingCart;\n const { benefitId } = benefit;\n if (!benefits) {\n console.warn(`Cannot remove benefit because the shopping cart does not have benefits applied.`);\n return shoppingCart;\n }\n const benefitIdIndex = benefits.findIndex((benefit2) => benefit2.benefitId === benefitId);\n if (benefitIdIndex < 0) {\n console.warn(`This benefit cannot be removed because it is not applied to the shopping cart.`);\n return shoppingCart;\n }\n benefits.splice(benefitIdIndex, 1);\n delete shoppingCart.benefitsHash;\n if (shippingCost)\n shoppingCart.shippingCost = shippingCost;\n return shoppingCart;\n};\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst redeemCoupon = async (config, code, headers) => {\n const reusedConfig = reuseGlobalConfig(config);\n const { customerId, shoppingCartName } = reusedConfig;\n checkMinimumConfigProvided(config);\n checkCommonHeaders(headers);\n const { wallets } = getState();\n const activeWallet = wallets[shoppingCartName];\n if (!activeWallet) {\n logError(`No benefits wallet available for ${shoppingCartName}, you probably forgot to call listenBenefitsWallet beforehand.`);\n }\n await redeemCouponService(reusedConfig, code, headers);\n await fetchWalletByUser(reusedConfig, headers);\n const benefits = await getWallet({\n customerId,\n shoppingCartName\n });\n if (!benefits) {\n throw new Error(`Failed to fetch benefits from firestore for the current customer after redeeming coupon`);\n }\n const updatedWallet = getInitialBenefitsWallet({\n benefits\n });\n const newInternalWallet = {\n benefits: [...updatedWallet.benefits],\n onSnapshot: activeWallet.onSnapshot\n };\n const newWallets = __spreadProps(__spreadValues$1({}, wallets), {\n [shoppingCartName]: newInternalWallet\n });\n setState({ wallets: newWallets });\n activeWallet.onSnapshot(updatedWallet);\n};\n\nconst mergeShoppingCart = async (shoppingCart, config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const shoppingCartNode = await getShoppingCartNode(config);\n if (!shoppingCartNode) {\n logDebug(\"Cannot merge the shopping carts because no shopping cart nodes were found. Please ensure you have a shopping cart before continue.\");\n resolve(null);\n return null;\n }\n let destinyShoppingCart = shoppingCartNode.data();\n const stores = Object.values(shoppingCart.stores);\n stores.forEach((store, index) => {\n const products = Object.values(store.products);\n products.forEach((product) => {\n const { amount } = product;\n destinyShoppingCart = addProductToCartHelper(destinyShoppingCart, product, {\n store,\n amount\n });\n });\n });\n await shoppingCartNode.ref.set(destinyShoppingCart);\n resolve(destinyShoppingCart);\n return destinyShoppingCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst updateShoppingCart = async (setShoppingCart, config) => {\n return new Promise((resolve, reject) => {\n const action = async () => {\n try {\n const { shoppingCartName } = reuseGlobalConfig(config);\n const shoppingCartNode = await getShoppingCartNode(config);\n if (!shoppingCartNode) {\n console.warn(`Cannot update remote cart because no shopping cart was found. Please ensure you create a shopping cart with name ${shoppingCartName} before continue.`);\n resolve(null);\n return null;\n }\n const cart = await shoppingCartNode.data();\n const updatedCart = updateShoppingCartHelper(cart, setShoppingCart);\n await shoppingCartNode.ref.set(updatedCart);\n resolve(updatedCart);\n return updatedCart;\n } catch (e) {\n reject(e);\n return null;\n }\n };\n const { eventLoop, queue } = getState();\n queue.enqueue(action);\n if (!eventLoop.isRunning)\n eventLoop.start();\n });\n};\nconst updateShoppingCartHelper = (cart, setShoppingCart) => {\n const updatedCart = __spreadValues(__spreadValues({}, cart), setShoppingCart(cart));\n return updatedCart;\n};\n\nexport { addProduct, applyBenefit, checkInit, closeShoppingCart, createShoppingCart, deleteShoppingCart, emptyShoppingCart, fetchStoreCouponDetail, fetchStoreCoupons, findProduct, getProductHash, getShoppingCart, getShoppingCartProducts, getShoppingCartTotal, initShoppingCart, listenBenefitsWallet, listenShoppingCart, mergeShoppingCart, redeemCoupon, removeBenefit, removeProduct, replaceProduct, setProduct, subtractProduct, updateShoppingCart, validateShoppingCart };\n//# sourceMappingURL=bundle.esm.js.map\n","const isBaseProduct = (product) => {\n const { attributes, description, name } = product;\n const { images, prices, productId } = product;\n const { showInMenu } = attributes;\n if (typeof showInMenu !== \"boolean\") {\n return false;\n }\n if (typeof description !== \"string\") {\n return false;\n }\n if (typeof name !== \"string\") {\n return false;\n }\n if (typeof productId !== \"string\") {\n return false;\n }\n if (typeof prices !== \"object\" || typeof prices === \"object\" && Object.keys(prices).length < 1) {\n return false;\n }\n if (!Array.isArray(images)) {\n return false;\n }\n return true;\n};\nconst isProductDetails = (product) => {\n const validBaseProduct = isBaseProduct(product);\n if (!validBaseProduct) {\n return false;\n }\n const { questions } = product;\n if (!Array.isArray(questions)) {\n return false;\n }\n return true;\n};\nconst isCartProduct = (product) => {\n const validProductDetails = isProductDetails(product);\n if (!validProductDetails) {\n return false;\n }\n const { hash, createdAt, updatedAt } = product;\n const { amount, priceCategory, comment, questionsAndAnswers } = product;\n if (typeof hash !== \"string\") {\n return false;\n }\n if (typeof createdAt !== \"string\") {\n return false;\n }\n if (typeof updatedAt !== \"string\") {\n return false;\n }\n if (typeof amount !== \"number\") {\n return false;\n }\n if (typeof comment !== \"string\") {\n return false;\n }\n if (![\"NORMAL\", \"POINTS\"].includes(priceCategory)) {\n return false;\n }\n if (!Array.isArray(questionsAndAnswers)) {\n return false;\n }\n return true;\n};\nconst isFormCartProduct = (product) => {\n var _a;\n const validCartProduct = isCartProduct(product);\n if (!validCartProduct) {\n return false;\n }\n const { questions } = product;\n if (!Array.isArray(questions)) {\n return false;\n }\n const answers = (_a = questions == null ? void 0 : questions[0]) == null ? void 0 : _a.answers;\n if ((answers == null ? void 0 : answers.length) && typeof answers[0].amount === \"undefined\") {\n return false;\n }\n return true;\n};\n\nvar assertions_utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBaseProduct: isBaseProduct,\n isProductDetails: isProductDetails,\n isCartProduct: isCartProduct,\n isFormCartProduct: isFormCartProduct\n});\n\nconst logError = (message) => {\n if (process.env.NODE_ENV === \"production\") {\n console.error(message);\n } else {\n throw new Error(message);\n }\n};\n\nconst getGroupType = (group) => {\n const { min, max, type } = group;\n if (type) {\n if (type === \"QUANTITY\" || type === \"SELECT\") {\n return \"COUNTER\";\n }\n return type;\n }\n if (min === 0 && max === 1) {\n return \"CHECKBOX\";\n }\n if (min === 1 && max === 1) {\n return \"RADIO\";\n }\n if (min === 0 && (max === 0 || max === Infinity)) {\n return \"COUNTER\";\n }\n if (max >= min) {\n return \"COUNTER\";\n }\n throw new Error(`Modifier group bad configured. min ${min}, max ${max}, type ${type}`);\n};\nconst getModifierType = (config) => {\n const { groupType, min, max, type } = config;\n if (groupType === \"RADIO\") {\n return \"RADIO\";\n }\n if (type) {\n if (type === \"QUANTITY\" || type === \"SELECT\") {\n return \"COUNTER\";\n }\n return type;\n }\n if (min === 1 && max === 1) {\n return \"RADIO\";\n }\n if (min === 0 && max === 1) {\n return \"CHECKBOX\";\n }\n if (min === 0 && (max === 0 || max === Infinity)) {\n return \"COUNTER\";\n }\n if (max >= min) {\n return \"COUNTER\";\n }\n return groupType;\n};\nconst getModifierMin = (groupConfig) => {\n const { min, modifiersCount } = groupConfig;\n if (modifiersCount === 1) {\n return min;\n }\n return 0;\n};\nconst getModifierMax = (groupConfig) => {\n const { max, type } = groupConfig;\n const normalizedMax = max || Infinity;\n if (type === \"RADIO\") {\n return 1;\n }\n if (type === \"CHECKBOX\") {\n return 1;\n }\n if (type === \"COUNTER\") {\n return normalizedMax;\n }\n return normalizedMax;\n};\nconst getModifierErrors = (modifier, amount, strict) => {\n const errors = [];\n const { max, min } = modifier;\n if (amount > max) {\n errors.push({\n code: 101,\n message: `Amount is heigher than the maximum allowed amount ${max}`\n });\n }\n if (strict && amount < min) {\n errors.push({\n code: 102,\n message: `Amount is lower than the minimum allowed amount ${min}`\n });\n }\n return errors;\n};\nconst getGroupModifierErrors = (group, strict) => {\n const errors = [];\n const { modifiers, data } = group;\n let { min, max } = data;\n if (min === 0 && max === 0) {\n max = Infinity;\n }\n const amount = modifiers.reduce((acc, modifier) => {\n return acc + modifier.amount;\n }, 0);\n if (amount > max) {\n errors.push({\n code: 201,\n message: `Amount is heigher than the maximum allowed amount ${max}`\n });\n }\n if (strict && amount < min) {\n errors.push({\n code: 202,\n message: `Amount is lower than the minimum allowed amount ${min}`\n });\n }\n return errors;\n};\nconst getGroupRendererStatus = (group) => {\n const { touched, errors, required, data, modifiers } = group;\n const { min } = data;\n const childrenWithError = modifiers.some((modifier) => modifier.status === \"FAIL\");\n const childrenIdle = modifiers.some((modifier) => modifier.status === \"IDLE\");\n const childrenIncomplete = modifiers.some((modifier) => modifier.status === \"INCOMPLETE\");\n const amount = modifiers.reduce((acc, modifier) => {\n return acc + modifier.amount;\n }, 0);\n return mapRenderStatusHelper({\n touched,\n errors,\n required,\n min,\n amount,\n childrenWithError,\n childrenIdle,\n childrenIncomplete,\n reviewChildren: true\n });\n};\nconst getModifierRendererStatus = (modifier) => {\n const childrenWithError = modifier.groups.some((group) => group.status === \"FAIL\");\n const childrenIdle = modifier.groups.some((group) => group.status === \"IDLE\");\n const childrenIncomplete = modifier.groups.some((group) => group.status === \"INCOMPLETE\");\n const { touched, errors, required, min, amount } = modifier;\n const reviewChildren = amount > 0;\n return mapRenderStatusHelper({\n touched,\n errors,\n required,\n min,\n amount,\n childrenWithError,\n childrenIdle,\n childrenIncomplete,\n reviewChildren\n });\n};\nconst mapRenderStatusHelper = (config) => {\n const { touched, errors, required, min, amount, reviewChildren } = config;\n const { childrenWithError, childrenIdle, childrenIncomplete } = config;\n const firstRender = amount > 0 && !touched;\n if (!firstRender && !touched && required) {\n return \"IDLE\";\n }\n if (!firstRender && !touched && !required) {\n return \"OK\";\n }\n if (errors.length) {\n return \"FAIL\";\n }\n if (reviewChildren && childrenWithError) {\n return \"FAIL\";\n }\n if (reviewChildren && (childrenIdle || childrenIncomplete)) {\n return \"INCOMPLETE\";\n }\n if (amount < min) {\n return \"INCOMPLETE\";\n }\n if (amount >= min) {\n return \"OK\";\n }\n logError(`Unhandled case. Unable to compute the renderer status ${JSON.stringify({\n touched,\n errors,\n required,\n min,\n amount\n }, void 0, 2)}`);\n return \"FAIL\";\n};\nconst mapGlobalRendererStatus = (renderer) => {\n const allChildrenOk = renderer.every((group) => {\n const { status, required } = group;\n const ok = status === \"OK\";\n const idleNotRequired = status === \"IDLE\" && !required;\n return ok || idleNotRequired;\n });\n if (allChildrenOk) {\n return \"OK\";\n }\n const childrenIsIdle = renderer.every((group) => !group.touched);\n if (childrenIsIdle) {\n return \"IDLE\";\n }\n const chidrenWithError = renderer.some((group) => group.status === \"FAIL\");\n if (chidrenWithError) {\n return \"FAIL\";\n }\n return \"INCOMPLETE\";\n};\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(b)) {\n if (__propIsEnum$7.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nconst multiplyProductQA = (product) => {\n return operationOnProductQA(product, (answer, productAmount) => {\n const accAmount = answer.amount * productAmount;\n const fixedAnswer = multiplyProductQA(__spreadProps$5(__spreadValues$7({}, answer), {\n amount: accAmount\n }));\n return __spreadProps$5(__spreadValues$7({}, fixedAnswer), { amount: answer.amount * productAmount });\n });\n};\nconst divideProductQA = (product) => {\n return operationOnProductQA(product, (answer, productAmount) => {\n const fixedAnswer = divideProductQA(answer);\n return __spreadProps$5(__spreadValues$7({}, fixedAnswer), { amount: answer.amount / productAmount });\n });\n};\nconst operationOnProductQA = (product, answerEnhancer) => {\n const { amount: productAmount = 1, questionsAndAnswers = [] } = product;\n const newQuestionsAndAnswers = questionsAndAnswers.map((question) => {\n const answers = question.answers.map((answer) => {\n return answerEnhancer(answer, productAmount);\n });\n return __spreadProps$5(__spreadValues$7({}, question), { answers });\n });\n return __spreadProps$5(__spreadValues$7({}, product), {\n questionsAndAnswers: newQuestionsAndAnswers\n });\n};\n\nvar questionsAndAnswers_utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n multiplyProductQA: multiplyProductQA,\n divideProductQA: divideProductQA,\n operationOnProductQA: operationOnProductQA\n});\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nconst toCartProduct = (product, overrides = {}) => {\n if (isCartProduct(product)) {\n return __spreadValues$6(__spreadValues$6({}, product), overrides);\n }\n if (isProductDetails(product)) {\n return toCartProductFromProductDetails(product, overrides);\n }\n const productDetails = toProductDetails(product);\n return toCartProductFromProductDetails(productDetails, overrides);\n};\nconst toCartProductFromProductDetails = (product, overrides = {}) => {\n const { questionsAndAnswers, priceCategory, amount } = product;\n const newCartProduct = __spreadValues$6(__spreadProps$4(__spreadValues$6({}, product), {\n questionsAndAnswers: questionsAndAnswers != null ? questionsAndAnswers : [],\n amount: amount != null ? amount : 0,\n priceCategory: priceCategory != null ? priceCategory : \"NORMAL\",\n comment: \"\",\n alerts: [],\n hash: \"\",\n createdAt: \"\",\n updatedAt: \"\"\n }), overrides);\n return newCartProduct;\n};\nconst toProductDetails = (product, overrides = {}) => {\n return __spreadValues$6(__spreadProps$4(__spreadValues$6({}, product), {\n addDirectlyToCart: true,\n isPriceVip: false,\n manufacturer: [],\n maxAmountForSale: 0,\n questions: [],\n schedule: [],\n benefitId: null,\n categories: null\n }), overrides);\n};\nconst toFormCartProduct = (product, overrides = {}) => {\n if (isFormCartProduct(product)) {\n return __spreadValues$6(__spreadValues$6({}, product), overrides);\n }\n if (isProductDetails(product)) {\n return toFormCartProductFromProductDetails(product, overrides);\n }\n const productDetails = toProductDetails(product);\n return toFormCartProductFromProductDetails(productDetails, overrides);\n};\nconst toFormCartProductHelper = (product, overrides = {}) => {\n const fixedProduct = divideProductQA(product);\n const { priceCategory, productId, amount } = fixedProduct;\n const newQuestions = fixedProduct.questions.map((question) => {\n var _a;\n const pairQuestion = (_a = fixedProduct.questionsAndAnswers) == null ? void 0 : _a.find((q) => {\n return q.questionId === question.questionId;\n });\n const selectedQuestion = pairQuestion != null ? pairQuestion : question;\n const { questionId, min, max } = selectedQuestion;\n const answerConfig = {\n rootId: productId,\n min,\n max,\n type: getGroupType(selectedQuestion),\n modifiersCount: question.answers.length,\n amount,\n path: []\n };\n return __spreadProps$4(__spreadValues$6({}, selectedQuestion), {\n answers: question.answers.map((answer) => {\n var _a2;\n const pairAnswer = pairQuestion == null ? void 0 : pairQuestion.answers.find((a) => {\n return a.amount > 0 && a.productId === answer.productId;\n });\n const selectedAnswer = pairAnswer != null ? pairAnswer : answer;\n const min2 = getModifierMin(answerConfig);\n const max2 = getModifierMax(answerConfig);\n const type = getModifierType({\n min: min2,\n max: max2,\n groupType: answerConfig.type,\n type: selectedAnswer.renderType\n });\n const nested = selectedAnswer.questions.length;\n const partialNewAnswer = __spreadProps$4(__spreadValues$6({}, selectedAnswer), {\n amount: (_a2 = selectedAnswer == null ? void 0 : selectedAnswer.amount) != null ? _a2 : 0,\n priceCategory,\n questionId,\n min: min2,\n max: max2,\n renderType: type\n });\n return __spreadProps$4(__spreadValues$6({}, partialNewAnswer), {\n questions: nested ? toFormCartProductHelper(partialNewAnswer).questions : []\n });\n })\n });\n });\n return __spreadValues$6(__spreadProps$4(__spreadValues$6({}, fixedProduct), {\n questions: newQuestions\n }), overrides);\n};\nconst toFormCartProductFromProductDetails = (product, overrides = {}) => {\n const cartProduct = toCartProductFromProductDetails(product);\n return toFormCartProductHelper(cartProduct, overrides);\n};\nconst toFormCartProductFromAnswer = (modifier, overrides = {}) => {\n return toFormCartProductHelper(modifier, overrides);\n};\nconst normalizeProductDetails = (product) => {\n const { questions } = product;\n return __spreadProps$4(__spreadValues$6({}, product), {\n questions: questions.map((question) => {\n const { answers } = question;\n return __spreadProps$4(__spreadValues$6({}, question), {\n answers: answers.map((answer) => {\n const { questions: questions2 } = answer;\n return __spreadProps$4(__spreadValues$6({}, answer), {\n questions: questions2 != null ? questions2 : []\n });\n })\n });\n })\n });\n};\n\nvar transformers_utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n toCartProduct: toCartProduct,\n toFormCartProduct: toFormCartProduct,\n toFormCartProductHelper: toFormCartProductHelper,\n toFormCartProductFromProductDetails: toFormCartProductFromProductDetails,\n toFormCartProductFromAnswer: toFormCartProductFromAnswer,\n normalizeProductDetails: normalizeProductDetails\n});\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nlet state = null;\nconst initState = (initialState) => {\n Object.freeze(initialState);\n state = __spreadValues$5({}, initialState);\n Object.seal(state);\n};\nconst setState = (overrides) => {\n const tempState = state ? __spreadValues$5({}, state) : {};\n state = null;\n state = __spreadValues$5(__spreadValues$5({}, tempState), overrides);\n Object.seal(state);\n};\nconst getState = () => {\n if (state === null) {\n throw new Error(\"The state has not been initialized, make sure to call initState beforehand\");\n }\n return __spreadValues$5({}, state);\n};\nconst checkInit = () => {\n return !!state;\n};\n\nconst initialState = {\n forms: {}\n};\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst buildProductFromRenderer = (renderer, product) => {\n const baseCartProduct = toCartProduct(product);\n return __spreadProps$3(__spreadValues$4({}, baseCartProduct), {\n questionsAndAnswers: buildQuestionAndAnswersFromRenderer(renderer),\n updatedAt: \"\"\n });\n};\nconst buildQuestionAndAnswersFromRenderer = (groups) => {\n return groups.map((group) => {\n return __spreadProps$3(__spreadValues$4({}, group.data), {\n answers: buildAnswersFromRenderer(group.modifiers)\n });\n });\n};\nconst buildAnswersFromRenderer = (modifiers) => {\n return modifiers.map((modifier) => {\n if (!modifier.amount) {\n return __spreadProps$3(__spreadValues$4({}, modifier.data), { questionsAndAnswers: [] });\n }\n return __spreadProps$3(__spreadValues$4({}, modifier.data), {\n questionsAndAnswers: buildQuestionAndAnswersFromRenderer(modifier.groups)\n });\n });\n};\n\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nconst getRendererPathNode = (groups, path) => {\n let remainingPath = [...path];\n let segments = groups;\n let node = groups[0];\n while (remainingPath.length) {\n node = findNodeInPath(segments, remainingPath[0]);\n remainingPath = remainingPath.slice(1);\n const isGroup = Object.prototype.hasOwnProperty.call(node, \"modifiers\");\n if (isGroup) {\n segments = node.modifiers;\n } else {\n segments = node.groups;\n }\n }\n return node;\n};\nconst setRendererPathNode = (renderer, path, replacement) => {\n let remainingPath = [...path];\n let segments = renderer;\n let node = findNodeInPath(segments, remainingPath[0]);\n let isGroup = Object.prototype.hasOwnProperty.call(node, \"modifiers\");\n while (remainingPath.length > 1) {\n node = findNodeInPath(segments, remainingPath[0]);\n remainingPath = remainingPath.slice(1);\n isGroup = Object.prototype.hasOwnProperty.call(node, \"modifiers\");\n if (isGroup) {\n segments = [...node.modifiers];\n } else {\n segments = [...node.groups];\n }\n }\n const replacerId = remainingPath[0];\n if (path.length === 1) {\n node = { groups: renderer };\n isGroup = false;\n }\n if (isGroup) {\n const newModifiers = node.modifiers.map((item) => {\n if (item.id === replacerId) {\n return __spreadValues$3({}, replacement);\n }\n return __spreadValues$3({}, item);\n });\n node.modifiers = newModifiers;\n } else {\n const newGroups = node.groups.map((item) => {\n if (item.id === replacerId) {\n return __spreadValues$3({}, replacement);\n }\n return __spreadValues$3({}, item);\n });\n node.groups = newGroups;\n }\n if (path.length === 1) {\n return [...node.groups];\n }\n return [...renderer];\n};\nconst findNodeInPath = (segments, segmentId) => {\n const node = segments.find((segment) => {\n return segment.id === segmentId;\n });\n if (!node) {\n throw new Error(`Path segment ${segmentId} doesn't exist in segments ${JSON.stringify(segments.map((segment) => segment.id))}`);\n }\n return node;\n};\n\nconst getProductTotals = (product, amount = product.amount > 0 ? product.amount : 1) => {\n if (amount < 1) {\n throw new Error(\"Cannot set the amount of getProductTotals with a value less than 1\");\n }\n const cartProduct = product;\n const sanitize = !!cartProduct.updatedAt;\n const sanitized = sanitize ? divideProductQA(cartProduct) : product;\n return {\n unitGrossPrice: getProductGrossPrice(sanitized, 1),\n unitTotalDiscounts: getProductTotalDiscounts(),\n unitTotalTaxes: getProductTotalTaxes(sanitized, 1),\n unitNetPrice: getProductNetPrice(sanitized, 1),\n amount,\n grossPrice: getProductGrossPrice(sanitized, amount),\n totalDiscounts: getProductTotalDiscounts(),\n totalTaxes: getProductTotalTaxes(sanitized, amount),\n netPrice: getProductNetPrice(sanitized, amount)\n };\n};\nconst getProductTotalTaxes = (product, setAmount) => {\n const cartProduct = toCartProduct(product, { amount: setAmount });\n const { prices, amount, priceCategory } = cartProduct;\n const { taxes, grossPrice } = prices[priceCategory];\n const taxTotal = getTaxTotal(taxes, grossPrice);\n const questionsSum = getModifiersTotalTaxes(cartProduct, setAmount);\n if (taxTotal === null || questionsSum === null) {\n return null;\n }\n return questionsSum + taxTotal * amount;\n};\nconst getModifiersTotalTaxes = (product, setAmount) => {\n var _a, _b;\n return (_b = (_a = product.questionsAndAnswers) == null ? void 0 : _a.reduce((acc, question) => {\n const answersSum = question.answers.reduce((acc2, answer) => {\n const { prices, amount, priceCategory } = answer;\n const { taxes, grossPrice } = prices[priceCategory];\n const taxTotal = getTaxTotal(taxes, grossPrice);\n const childrenTotal = getModifiersTotalTaxes(answer, setAmount);\n return acc2 + amount * (Number(taxTotal) + childrenTotal);\n }, 0);\n return acc + answersSum * setAmount;\n }, 0)) != null ? _b : 0;\n};\nconst getProductGrossPrice = (product, setAmount) => {\n return getProductFieldPrice(product, \"grossPrice\", setAmount);\n};\nconst getProductTotalDiscounts = (product, setAmount) => {\n return null;\n};\nconst getProductNetPrice = (product, setAmount) => {\n return getProductFieldPrice(product, \"netPrice\", setAmount);\n};\nconst getProductFieldPrice = (product, field, setAmount) => {\n const cartProduct = toCartProduct(product, { amount: setAmount });\n const { prices, amount, priceCategory } = cartProduct;\n const priceField = prices[priceCategory][field];\n const questionsSum = getModifiersFieldTotal(cartProduct, field);\n return (questionsSum + priceField) * amount;\n};\nconst getModifiersFieldTotal = (product, field) => {\n var _a, _b;\n return (_b = (_a = product.questionsAndAnswers) == null ? void 0 : _a.reduce((acc, question) => {\n const answersSum = question.answers.reduce((acc2, answer) => {\n const { prices, amount, priceCategory } = answer;\n const priceField = prices[priceCategory][field];\n const childrenTotal = getModifiersFieldTotal(answer, field);\n return acc2 + amount * (priceField + childrenTotal);\n }, 0);\n return acc + answersSum;\n }, 0)) != null ? _b : 0;\n};\nconst getTaxTotal = (taxes, grossPrice) => {\n if (!taxes.length) {\n return null;\n }\n return taxes.reduce((acc, tax) => {\n return acc + tax.percentage / 100 * grossPrice;\n }, 0);\n};\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nconst buildRenderer = (product, config, previous) => {\n const { rootId, path } = config;\n const groupsRenderer = product.questions.map((modifierGroup) => {\n const previousGroup = previous == null ? void 0 : previous.find((group) => {\n return group.id === modifierGroup.questionId;\n });\n return buildModifierGroupRenderer(modifierGroup, {\n amount: product.amount,\n rootId,\n path: [...path]\n }, previousGroup);\n });\n return groupsRenderer;\n};\nconst buildModifierGroupRenderer = (modifierGroup, parentConfig, previous) => {\n const { questionId, name, description, max, min, images } = modifierGroup;\n const { amount, rootId, path } = parentConfig;\n const { errors, touched } = previous != null ? previous : {};\n const partialGroup = {\n id: questionId,\n name,\n description: description != null ? description : \"\",\n images: [...images != null ? images : []],\n data: __spreadValues$2({}, modifierGroup),\n errors: errors != null ? errors : [],\n touched: touched != null ? touched : false,\n status: \"IDLE\",\n hidden: amount < 1,\n required: min > 0,\n type: getGroupType(modifierGroup)\n };\n const config = {\n rootId,\n max,\n min,\n type: partialGroup.type,\n modifiersCount: modifierGroup.answers.length,\n amount,\n path: [...path, questionId]\n };\n const modifiersRenderer = modifierGroup.answers.map((modifier) => {\n const previousModifier = previous == null ? void 0 : previous.modifiers.find((modifierRenderer) => {\n return modifierRenderer.id === modifier.productId;\n });\n return buildModifierRenderer(modifier, config, previousModifier);\n });\n const groupWithoutStatus = __spreadProps$2(__spreadValues$2({}, partialGroup), {\n modifiers: modifiersRenderer\n });\n return __spreadProps$2(__spreadValues$2({}, groupWithoutStatus), {\n status: getGroupRendererStatus(groupWithoutStatus)\n });\n};\nconst buildModifierRenderer = (modifier, config, previous) => {\n var _a, _b;\n const { productId, questionId, name, images, amount } = modifier;\n const { renderType, min, max } = modifier;\n const subproduct = toFormCartProductFromAnswer(modifier);\n const { rootId, path } = config;\n const updatedPath = [...path, productId];\n const groups = buildRenderer(subproduct, {\n rootId,\n path: updatedPath\n }, previous == null ? void 0 : previous.groups);\n const modifierWithoutStatus = {\n id: productId,\n groupId: questionId,\n name,\n images: [...images],\n amount,\n data: __spreadValues$2({}, modifier),\n groups,\n errors: (_a = previous == null ? void 0 : previous.errors) != null ? _a : [],\n hidden: config.amount < 1,\n min,\n max,\n required: min > 0,\n touched: (_b = previous == null ? void 0 : previous.touched) != null ? _b : false,\n status: \"IDLE\",\n totals: getProductTotals(__spreadProps$2(__spreadValues$2({}, modifier), { amount })),\n type: renderType,\n handleChange: (amount2) => {\n handleModifierChange(config.rootId, updatedPath, amount2);\n }\n };\n return __spreadProps$2(__spreadValues$2({}, modifierWithoutStatus), {\n status: getModifierRendererStatus(modifierWithoutStatus)\n });\n};\nconst handleModifierChange = (productId, path, amount) => {\n const forms = __spreadValues$2({}, getState().forms);\n const form = forms[productId];\n const node = getRendererPathNode(form.renderer, path);\n let newRenderer = updateModifier(form.renderer, path, node, amount, false);\n newRenderer = updateParentGroup(productId, newRenderer, path, false);\n const updatedProduct = buildProductFromRenderer(newRenderer, form.product);\n const updatedForm = __spreadProps$2(__spreadValues$2({}, form), {\n renderer: newRenderer,\n product: updatedProduct,\n status: mapGlobalRendererStatus(newRenderer)\n });\n const newForms = __spreadProps$2(__spreadValues$2({}, forms), { [productId]: updatedForm });\n setState({ forms: newForms });\n const returnForm = __spreadValues$2({}, updatedForm);\n delete returnForm.callback;\n form.callback(returnForm);\n};\nconst updateModifier = (renderer, path, node, amount, strict) => {\n const newModifierRenderer = __spreadProps$2(__spreadValues$2({}, node), {\n amount,\n touched: true,\n errors: getModifierErrors(node, amount, strict),\n totals: getProductTotals(__spreadProps$2(__spreadValues$2({}, node.data), { amount })),\n data: __spreadProps$2(__spreadValues$2({}, node.data), {\n amount\n })\n });\n newModifierRenderer.status = getModifierRendererStatus(newModifierRenderer);\n return setRendererPathNode(renderer, path, newModifierRenderer);\n};\nconst updateParentGroup = (rootId, renderer, path, strict) => {\n const parentPath = path.slice(0, -1);\n const parentGroup = getRendererPathNode(renderer, parentPath);\n let newModifierRenderers = [...parentGroup.modifiers];\n if (parentGroup.type === \"RADIO\" && !strict) {\n newModifierRenderers = parentGroup.modifiers.map((modifier) => {\n if (modifier.type !== \"RADIO\") {\n return __spreadValues$2({}, modifier);\n }\n if (modifier.id === path[path.length - 1]) {\n return __spreadValues$2({}, modifier);\n }\n return __spreadProps$2(__spreadValues$2({}, modifier), {\n amount: 0,\n error: \"\",\n totals: getProductTotals(__spreadProps$2(__spreadValues$2({}, modifier.data), { amount: 0 })),\n data: __spreadProps$2(__spreadValues$2({}, modifier.data), {\n amount: 0\n })\n });\n });\n }\n newModifierRenderers = newModifierRenderers.map((modifier) => {\n const subproduct = toFormCartProductFromAnswer(modifier.data);\n const newPath = [...path.slice(0, -1), modifier.id];\n const updatedModifier = __spreadProps$2(__spreadValues$2({}, modifier), {\n groups: buildRenderer(subproduct, {\n rootId,\n path: newPath\n }, modifier.groups)\n });\n updatedModifier.errors = getModifierErrors(updatedModifier, updatedModifier.amount, strict);\n updatedModifier.status = getModifierRendererStatus(updatedModifier);\n return updatedModifier;\n });\n const updatedGroupAnswers = newModifierRenderers.map((modifier) => {\n return __spreadValues$2({}, modifier.data);\n });\n const newGroupData = __spreadProps$2(__spreadValues$2({}, parentGroup.data), { answers: updatedGroupAnswers });\n const newGroupRenderer = __spreadProps$2(__spreadValues$2({}, parentGroup), {\n touched: true,\n modifiers: newModifierRenderers,\n data: newGroupData\n });\n newGroupRenderer.errors = getGroupModifierErrors(newGroupRenderer, strict);\n newGroupRenderer.status = getGroupRendererStatus(newGroupRenderer);\n let newRenderer = setRendererPathNode(renderer, parentPath, newGroupRenderer);\n if (parentPath.length > 1) {\n newRenderer = updateParentModifier(rootId, newRenderer, parentPath, strict);\n }\n return newRenderer;\n};\nconst updateParentModifier = (rootId, renderer, path, strict) => {\n const parentPath = path.slice(0, -1);\n const parentModifier = getRendererPathNode(renderer, parentPath);\n const updatedModifierQuestions = parentModifier.groups.map((group) => {\n return __spreadValues$2({}, group.data);\n });\n const newModifierData = __spreadProps$2(__spreadValues$2({}, parentModifier.data), {\n questions: updatedModifierQuestions\n });\n const newModifierGroups = parentModifier.groups.map((group) => {\n const newGroup = __spreadValues$2({}, group);\n newGroup.errors = getGroupModifierErrors(newGroup, strict);\n newGroup.status = getGroupRendererStatus(newGroup);\n return newGroup;\n });\n const newModifierRenderer = __spreadProps$2(__spreadValues$2({}, parentModifier), {\n touched: true,\n groups: newModifierGroups,\n data: newModifierData\n });\n newModifierRenderer.errors = getModifierErrors(newModifierRenderer, newModifierRenderer.amount, strict);\n newModifierRenderer.status = getModifierRendererStatus(newModifierRenderer);\n let newRenderer = setRendererPathNode(renderer, parentPath, newModifierRenderer);\n if (parentPath.length > 1) {\n newRenderer = updateParentGroup(rootId, newRenderer, parentPath, strict);\n }\n return newRenderer;\n};\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nconst validateProduct = (productId) => {\n const forms = __spreadValues$1({}, getState().forms);\n const form = forms[productId];\n const { renderer, callback, product } = form;\n let latestRenderer = [...renderer];\n renderer.forEach((group) => {\n const path = [group.id];\n latestRenderer = validateChildModifiers(group, latestRenderer, productId, path);\n });\n const updatedProduct = buildProductFromRenderer(latestRenderer, product);\n const updatedForm = __spreadProps$1(__spreadValues$1({}, form), {\n renderer: latestRenderer,\n product: updatedProduct,\n status: mapGlobalRendererStatus(latestRenderer)\n });\n const newForms = __spreadProps$1(__spreadValues$1({}, forms), { [productId]: updatedForm });\n setState({ forms: newForms });\n const returnForm = __spreadValues$1({}, updatedForm);\n delete returnForm.callback;\n callback(returnForm);\n return updatedForm.status;\n};\nconst validateChildModifiers = (group, renderer, productId, path) => {\n const { modifiers, id } = group;\n const isLeaft = !modifiers.length;\n let latestRenderer = [...renderer];\n if (!isLeaft) {\n modifiers.forEach((modifier) => {\n const newPath = [...path, modifier.id];\n latestRenderer = validateChildGroups(modifier, latestRenderer, productId, newPath);\n });\n return latestRenderer;\n } else {\n console.warn(`Attempting to validate a Modifier group without modifiers, this will likely result in unexpected behaviour. \n Please update the bad group ${id} of product ${0}.`);\n return latestRenderer;\n }\n};\nconst validateChildGroups = (modifier, renderer, productId, path) => {\n const { groups, amount, status, required } = modifier;\n const isLeaft = !groups.length || amount === 0;\n let latestRenderer = [...renderer];\n if (isLeaft) {\n const badIdle = status === \"IDLE\" && required;\n const badStatus = badIdle || status === \"FAIL\" || status === \"INCOMPLETE\";\n const newStatus = badStatus ? \"FAIL\" : status;\n const replacement = __spreadProps$1(__spreadValues$1({}, modifier), { status: newStatus });\n const newPath = [...path];\n latestRenderer = updateModifier(latestRenderer, newPath, replacement, replacement.amount, true);\n latestRenderer = updateParentGroup(productId, latestRenderer, newPath, true);\n } else {\n groups.forEach((group) => {\n const newPath = [...path, group.id];\n latestRenderer = validateChildModifiers(group, latestRenderer, productId, newPath);\n });\n }\n return latestRenderer;\n};\n\nconst createForm = (product) => {\n var _a;\n const formCartProduct = toFormCartProduct(product, {\n amount: (_a = product.amount) != null ? _a : 1\n });\n const renderer = buildRenderer(formCartProduct, {\n rootId: formCartProduct.productId,\n path: []\n });\n const updatedProduct = buildProductFromRenderer(renderer, product);\n return {\n product: updatedProduct,\n renderer,\n validate: () => validateProduct(product.productId),\n status: mapGlobalRendererStatus(renderer)\n };\n};\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst registerModifiersForm = (product, callback) => {\n const { productId } = product;\n if (!checkInit())\n initState(initialState);\n const { forms } = getState();\n const formExists = !!forms[productId];\n if (formExists) {\n logError(`Form for product with id ${productId} has already been register. Please unsubscribe if you need to register a new form.`);\n return () => {\n };\n }\n const form = createForm(product);\n const newForms = __spreadProps(__spreadValues({}, forms), { [productId]: __spreadProps(__spreadValues({}, form), { callback }) });\n setState({ forms: newForms });\n callback(__spreadValues({}, form));\n return () => unsubscriber(productId);\n};\nconst unsubscriber = (productId) => {\n const { forms } = getState();\n const newForms = __spreadValues({}, forms);\n delete newForms[productId];\n setState({ forms: newForms });\n};\n\nexport { assertions_utils as assertions, getProductTotals, questionsAndAnswers_utils as modifierUtils, registerModifiersForm, transformers_utils as transformers, validateProduct };\n//# sourceMappingURL=bundle.esm.js.map\n","// validation utility functions\nimport { SupportedProviders } from \"../types/common.types\";\nimport { getState } from \"./state.utils\";\nimport { logMessage, noActiveVendor, vendorNotIncluded } from \"./logs.utils\";\nimport { logProvidersSDKNotLoaded } from \"./logs.utils\";\nimport { AnalyticsProviderTypes } from \"../types/event.types\";\n\n/**\n * Checks if the event should be emmit because the active vendor is not included.\n *\n * @since 0.1.0\n * @param {string} eventName The name of the event that will be emmited\n * @param {AnalyticsProviderTypes} provider Provider that will emit the event\n * @returns {boolean} Whether the vendor will be skipped\n */\nexport const skipVendor = (\n eventName: string,\n provider: AnalyticsProviderTypes\n) => {\n const { vendors } = provider;\n const { activeVendor } = getState();\n if (activeVendor === -1) {\n return false;\n }\n if (typeof vendors === \"undefined\") {\n return false;\n }\n if (activeVendor && vendors.includes(activeVendor)) {\n return false;\n }\n if (typeof activeVendor === \"undefined\") {\n // Log active vendor not defined while trying to emmit an event\n noActiveVendor();\n } else {\n // Log vendor will be skipped\n vendorNotIncluded(eventName, provider);\n }\n return true;\n};\n\n/**\n * Gets all provider types that their SDK have not been initialized.\n *\n * @since 0.1.0\n * @param {AnalyticsProviderTypes[]} providers The providers instances that will emit the event\n * @returns {SupportedProviders[]} All provider types that their SDK have not been initialized\n */\nexport const getNotInitializedProvidersSDKs = (\n providers: AnalyticsProviderTypes[]\n) => {\n const uniqueProviderTypes = new Set(providers.map(provider => provider.type));\n const uniqueProviderTypesArray = Array.from(uniqueProviderTypes);\n return uniqueProviderTypesArray.reduce<SupportedProviders[]>(\n (acc, providerType) => {\n switch (providerType) {\n case \"GOOGLE_ANALYTICS\":\n if (typeof gtag === \"undefined\") {\n return [...acc, providerType];\n }\n break;\n case \"FACEBOOK_PIXEL\":\n if (typeof fbq === \"undefined\") {\n return [...acc, providerType];\n }\n break;\n case \"SEGMENT\":\n if (typeof analytics === \"undefined\") {\n return [...acc, providerType];\n }\n break;\n default:\n throw new Error(`Profiver of type ${providerType} is not supported`);\n }\n return acc;\n },\n []\n );\n};\n\n/**\n * Checks wheter providers SDK are loaded or not.\n *\n * @since 0.1.0\n * @param {AnalyticsProviderTypes[]} providers The providers instances that will emit the event\n * @returns {boolean} Wheter providers SDK are loaded or not\n */\nexport const checkAnalyticsInitialized = (\n providers: AnalyticsProviderTypes[]\n) => {\n if (!providers.length) {\n logMessage(\n \"No providers found, the initAnalytics probably hasn't been run yet\",\n \"severe\"\n );\n return false;\n }\n const providersSDKNotLoaded = getNotInitializedProvidersSDKs(providers);\n if (!providersSDKNotLoaded.length) {\n return true;\n }\n providersSDKNotLoaded.forEach(providerType => {\n logProvidersSDKNotLoaded(providerType);\n });\n return false;\n};\n","// events utility functions\nimport { CartProduct, CurrencyCodes, Product } from \"@artisan-commerce/types\";\nimport { ShoppingCart } from \"@artisan-commerce/types\";\nimport { getShoppingCartProducts } from \"@artisan-commerce/shopping-cart\";\nimport { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { AnalyticsProviderTypes } from \"../types/event.types\";\nimport { eventSent } from \"./logs.utils\";\nimport { getState } from \"./state.utils\";\nimport { checkAnalyticsInitialized, skipVendor } from \"./validations.utils\";\nimport { ProvidersHandlers } from \"../types/event.types\";\nimport { Gtag } from \"../lib/providers/GoogleAnalytics/GoogleAnalytics.types\";\nimport { Segment } from \"../lib/providers/Segment/Segment.types\";\n\n/**\n * Triage event to each provider handler.\n *\n * @since 0.1.0\n * @param {string} eventName The Artisn event name\n * @param {T} params The event parameters\n * @param {ProvidersHandlers<T>} providersHandlers The providers handlers\n */\nexport const triageEventToProviders = <T>(\n eventName: string,\n params: T,\n providersHandlers: ProvidersHandlers<T>\n) => {\n const { facebookPixelHandler, googleAnalyticsHandler } = providersHandlers;\n const { segmentHandler } = providersHandlers;\n const { providers } = getState();\n if (!checkAnalyticsInitialized(providers)) {\n return;\n }\n const enhancedParams = { ...params, artisnEvent: eventName };\n const targetedProviders = providers.reduce<AnalyticsProviderTypes[]>(\n (acc, provider) => {\n if (skipVendor(eventName, provider)) {\n return acc;\n }\n switch (provider.type) {\n case \"FACEBOOK_PIXEL\":\n facebookPixelHandler(provider, enhancedParams);\n break;\n case \"GOOGLE_ANALYTICS\":\n googleAnalyticsHandler(provider, enhancedParams);\n break;\n case \"SEGMENT\":\n // @ts-ignore\n segmentHandler(provider, enhancedParams);\n break;\n default:\n throw new Error(`Provider of type ${provider.type} is not supported`);\n }\n return [...acc, provider];\n },\n []\n );\n eventSent(eventName, targetedProviders);\n};\n\n/**\n * Gets an array of the product ids in the shopping cart.\n *\n * @since 0.1.0\n * @param {ShoppingCart} shoppingCart The shopping cart with the wanted product ids\n * @returns An array of the product ids in the shopping cart\n */\nexport const getProductIdsFromShoppingCart = (shoppingCart: ShoppingCart) => {\n const products = getShoppingCartProducts(shoppingCart);\n return products.map(product => product.productId);\n};\n\n/**\n * Gets the name and price of all shopping cart products.\n *\n * @since 0.1.0\n * @param {ShoppingCart} shoppingCart The shopping cart with the wanted product's data\n * @returns The name and price of all shopping cart products\n */\nexport const getProductContentFromShoppingCart = (\n shoppingCart: ShoppingCart\n) => {\n const products = getShoppingCartProducts(shoppingCart);\n return products.map(product => getProductContent(product));\n};\n\n/**\n * Gets the name and price of a product.\n *\n * @since 0.1.0\n * @param {Product} product The wanted product's data\n * @returns The name and price of a product\n */\nexport const getProductContent = (product: Product) => {\n const totals = getProductTotals(product);\n return `${product.name}:${totals.netPrice}`;\n};\n\n/**\n * Maps the shopping cart products into google items.\n *\n * @since 0.1.0\n * @param {ShoppingCart} shoppingCart The shopping cart with the wanted product's data\n * @param {CurrencyCodes} currency Currency of the purchase or items associated with the event (e.g. USD)\n * @returns {Gtag.Item[]} An array of objects with google items data\n */\nexport const mapProductsToGoogleItems = (\n shoppingCart: ShoppingCart,\n currency?: CurrencyCodes\n): Gtag.Item[] => {\n const products = getShoppingCartProducts(shoppingCart);\n return products.map(product => mapProductToGoogleItem(product, currency));\n};\n\n/**\n * Maps a cart product into a google item.\n *\n * @since 0.1.0\n * @param {Product} product The wanted product's data\n * @param {CurrencyCodes} currency Currency of the purchase or items associated with the event (e.g. USD)\n * @returns {Gtag.Item} An object with Item data\n */\nexport const mapProductToGoogleItem = (\n product: CartProduct,\n currency?: CurrencyCodes\n): Gtag.Item => {\n const totals = getProductTotals(product);\n const { productId, name, amount } = product;\n return {\n item_id: productId,\n item_name: name,\n quantity: amount,\n price: totals.netPrice,\n currency\n };\n};\n\n/**\n * Transform array parameter to support mobile format parameters.\n *\n * @param {unknown} param Parameter to be transformed\n * @since 0.1.0\n * @returns {string} The accepted parameter type\n */\nexport const transformArrayParam = (param: unknown[]) => {\n return param.join(\",\");\n};\n\n/**\n * Maps a product into a segment product.\n *\n * @since 0.1.0\n * @param {Product} product The wanted product's data\n * @returns {Segment.Product} An object with Item data\n */\nexport const mapProductToSegmentProduct = (\n product: Product\n): Segment.Product => {\n const { productId, name } = product;\n const totals = getProductTotals(product);\n return {\n product_id: productId,\n name,\n price: totals.netPrice\n };\n};\n\n/**\n * Maps the order products into segment products.\n *\n * @since 0.1.0\n * @param {Product[]} products The order product's data\n * @returns {Segment.Product[]} An array of objects with google items data\n */\nexport const mapProductsToSegmentProducts = (\n products: Product[]\n): Segment.Product[] => {\n return products.map(product => mapProductToSegmentProduct(product));\n};\n","import googleChangePasswordAttempt from \"../../../providers/GoogleAnalytics/events/auth/changePasswordAttempt/changePasswordAttempt\";\nimport facebookChangePasswordAttempt from \"../../../providers/FacebookPixel/events/auth/changePasswordAttempt/changePasswordAttempt\";\nimport segmentChangePasswordAttempt from \"../../../providers/Segment/events/auth/changePasswordAttempt/changePasswordAttempt\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\nimport { ChangePasswordAttemptParams } from \"./changePasswordAttempt.types\";\n\n/**\n * Emits a changePasswordAttempt event to every configured provider.\n *\n * Log this event when users show an intention to change their password.\n *\n * @since 0.1.0\n * @param {ChangePasswordAttemptParams} params ChangePasswordAttempt event parameters\n */\nconst logChangePasswordAttempt = (params: ChangePasswordAttemptParams) => {\n triageEventToProviders(\"changePasswordAttempt\", params, {\n googleAnalyticsHandler: googleChangePasswordAttempt,\n facebookPixelHandler: facebookChangePasswordAttempt,\n segmentHandler: segmentChangePasswordAttempt\n });\n};\n\nexport default logChangePasswordAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SignUpAttemptParams } from \"./signUpAttempt.types\";\n\n/**\n * Emits a SignUpAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SignUpAttemptParams} params Event configuration parameters\n */\nconst SignUpAttempt = (\n provider: GoogleAnalyticsProvider,\n params: SignUpAttemptParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"sign_up_attempt\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default SignUpAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SignUpAttemptParams } from \"./signUpAttempt.types\";\n\n/**\n * Emits a signUpAttempt event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {signUpAttemptParams} params Event configuration parameters\n */\nconst signUpAttempt = (\n provider: FacebookPixelProvider,\n params: SignUpAttemptParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SignUpAttempt\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default signUpAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SignUpAttemptParams } from \"./signUpAttempt.types\";\n\n/**\n * Emits a signUpAttempt event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {signUpAttemptParams} params Event configuration parameters\n */\nconst signUpAttempt = (\n provider: SegmentProvider,\n params: SignUpAttemptParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Sign Up Attempt\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default signUpAttempt;\n","import googleSignUpAttempt from \"../../../providers/GoogleAnalytics/events/auth/signUpAttempt/signUpAttempt\";\nimport facebookSignUpAttempt from \"../../../providers/FacebookPixel/events/auth/signUpAttempt/signUpAttempt\";\nimport segmentSignUpAttempt from \"../../../providers/Segment/events/auth/signUpAttempt/signUpAttempt\";\nimport { SignUpAttemptParams } from \"./signUpAttempt.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a signUpAttempt event to every configured provider.\n *\n * Log this event when submitting the sign up action. It should not be triggered\n * after the sign up action has resolved.\n *\n * @since 0.1.0\n * @param {SignUpAttemptParams} params SignUpAttempt event parameters\n */\nconst logSignUpAttempt = (params: SignUpAttemptParams) => {\n triageEventToProviders(\"signUpAttempt\", params, {\n googleAnalyticsHandler: googleSignUpAttempt,\n facebookPixelHandler: facebookSignUpAttempt,\n segmentHandler: segmentSignUpAttempt\n });\n};\n\nexport default logSignUpAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangePasswordFailParams } from \"./changePasswordFail.types\";\n\n/**\n * Emits a ChangePasswordFail event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordFailParams} params Event configuration parameters\n */\nconst ChangePasswordFail = (\n provider: GoogleAnalyticsProvider,\n params: ChangePasswordFailParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_password_fail\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default ChangePasswordFail;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangePasswordFailParams } from \"./changePasswordFail.types\";\n\n/**\n * Emits a changePasswordFail event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordFailParams} params Event configuration parameters\n */\nconst changePasswordFail = (\n provider: FacebookPixelProvider,\n params: ChangePasswordFailParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangePasswordFail\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordFail;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangePasswordFailParams } from \"./changePasswordFail.types\";\n\n/**\n * Emits a changePasswordFail event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordFailParams} params Event configuration parameters\n */\nconst changePasswordFail = (\n provider: SegmentProvider,\n params: ChangePasswordFailParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Password Fail\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordFail;\n","import googleChangePasswordFail from \"../../../providers/GoogleAnalytics/events/auth/changePasswordFail/changePasswordFail\";\nimport facebookChangePasswordFail from \"../../../providers/FacebookPixel/events/auth/changePasswordFail/changePasswordFail\";\nimport segmentChangePasswordFail from \"../../../providers/Segment/events/auth/changePasswordFail/changePasswordFail\";\nimport { ChangePasswordFailParams } from \"./changePasswordFail.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changePasswordFail event to every configured provider.\n *\n * Log this event when your change password request has failed.\n *\n * @since 0.1.0\n * @param {ChangePasswordFailParams} params ChangePasswordFail event parameters\n */\nconst logChangePasswordFail = (params: ChangePasswordFailParams) => {\n triageEventToProviders(\"changePasswordFail\", params, {\n googleAnalyticsHandler: googleChangePasswordFail,\n facebookPixelHandler: facebookChangePasswordFail,\n segmentHandler: segmentChangePasswordFail\n });\n};\n\nexport default logChangePasswordFail;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangePasswordSuccessParams } from \"./changePasswordSuccess.types\";\n\n/**\n * Emits a ChangePasswordSuccess event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordSuccessParams} params Event configuration parameters\n */\nconst ChangePasswordSuccess = (\n provider: GoogleAnalyticsProvider,\n params: ChangePasswordSuccessParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_password_success\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default ChangePasswordSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangePasswordSuccessParams } from \"./changePasswordSuccess.types\";\n\n/**\n * Emits a changePasswordSuccess event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordSuccessParams} params Event configuration parameters\n */\nconst changePasswordSuccess = (\n provider: FacebookPixelProvider,\n params: ChangePasswordSuccessParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangePasswordSuccess\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangePasswordSuccessParams } from \"./changePasswordSuccess.types\";\n\n/**\n * Emits a changePasswordSuccess event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangePasswordSuccessParams} params Event configuration parameters\n */\nconst changePasswordSuccess = (\n provider: SegmentProvider,\n params: ChangePasswordSuccessParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Password Success\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePasswordSuccess;\n","import googleChangePasswordSuccess from \"../../../providers/GoogleAnalytics/events/auth/changePasswordSuccess/changePasswordSuccess\";\nimport facebookChangePasswordSuccess from \"../../../providers/FacebookPixel/events/auth/changePasswordSuccess/changePasswordSuccess\";\nimport segmentChangePasswordSuccess from \"../../../providers/Segment/events/auth/changePasswordSuccess/changePasswordSuccess\";\nimport { ChangePasswordSuccessParams } from \"./changePasswordSuccess.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changePasswordSuccess event to every configured provider.\n *\n * Log this event when your change password request has resolved successfully.\n *\n * @since 0.1.0\n * @param {ChangePasswordSuccessParams} params ChangePasswordSuccess event parameters\n */\nconst logChangePasswordSuccess = (params: ChangePasswordSuccessParams) => {\n triageEventToProviders(\"changePasswordSuccess\", params, {\n googleAnalyticsHandler: googleChangePasswordSuccess,\n facebookPixelHandler: facebookChangePasswordSuccess,\n segmentHandler: segmentChangePasswordSuccess\n });\n};\n\nexport default logChangePasswordSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SignInParams } from \"./signIn.types\";\n\n/**\n * Emits a SignIn event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SignInParams} params Event configuration parameters\n */\nconst SignIn = (provider: GoogleAnalyticsProvider, params: SignInParams) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"login\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default SignIn;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SignInParams } from \"./signIn.types\";\n\n/**\n * Emits a signIn event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {signInParams} params Event configuration parameters\n */\nconst signIn = (provider: FacebookPixelProvider, params: SignInParams) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SignIn\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default signIn;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SignInParams } from \"./signIn.types\";\n\n/**\n * Emits a signIn event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {signInParams} params Event configuration parameters\n */\nconst signIn = (provider: SegmentProvider, params: SignInParams) => {\n const { name, identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, username: name };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Signed In\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n const { name: nameTrait = name, ...traits } = identify;\n analytics.identify(identify.id, {\n name: nameTrait,\n ...traits\n });\n};\n\nexport default signIn;\n","import googleSignIn from \"../../../providers/GoogleAnalytics/events/auth/signIn/signIn\";\nimport facebookSignIn from \"../../../providers/FacebookPixel/events/auth/signIn/signIn\";\nimport segmentSignIn from \"../../../providers/Segment/events/auth/signIn/signIn\";\nimport { SignInParams } from \"./signIn.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a signIn event to every configured provider.\n *\n * Log this event when your sign in request has resolved successfully.\n *\n * @since 0.1.0\n * @param {SignInParams} params SingIn event parameters\n */\nconst logSignIn = (params: SignInParams) => {\n triageEventToProviders(\"signIn\", params, {\n googleAnalyticsHandler: googleSignIn,\n facebookPixelHandler: facebookSignIn,\n segmentHandler: segmentSignIn\n });\n};\n\nexport default logSignIn;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SignOutParams } from \"./signOut.types\";\n\n/**\n * Emits a SignOut event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SignOutParams} params Event configuration parameters\n */\nconst SignOut = (provider: GoogleAnalyticsProvider, params: SignOutParams) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"sign_out\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default SignOut;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SignOutParams } from \"./signOut.types\";\n\n/**\n * Emits a signOut event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {signOutParams} params Event configuration parameters\n */\nconst signOut = (provider: FacebookPixelProvider, params: SignOutParams) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SignOut\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default signOut;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SignOutParams } from \"./signOut.types\";\n\n/**\n * Emits a signOut event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {signOutParams} params Event configuration parameters\n */\nconst signOut = (provider: SegmentProvider, params: SignOutParams) => {\n const { name, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, username: name };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Signed Out\", {\n ...transformedParams,\n ...transformedMeta\n });\n analytics.reset();\n};\n\nexport default signOut;\n","import googleSignOut from \"../../../providers/GoogleAnalytics/events/auth/signOut/signOut\";\nimport facebookSignOut from \"../../../providers/FacebookPixel/events/auth/signOut/signOut\";\nimport segmentSignOut from \"../../../providers/Segment/events/auth/signOut/signOut\";\nimport { SignOutParams } from \"./signOut.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a signOut event to every configured provider.\n *\n * Log this event when your sign out request has resolved successfully.\n *\n * @since 0.1.0\n * @param {SignOutParams} params SignOut event parameters\n */\nconst logSignOut = (params: SignOutParams) => {\n triageEventToProviders(\"signOut\", params, {\n googleAnalyticsHandler: googleSignOut,\n facebookPixelHandler: facebookSignOut,\n segmentHandler: segmentSignOut\n });\n};\n\nexport default logSignOut;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SignUpParams } from \"./signUp.types\";\n\n/**\n * Emits a SignUp event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SignUpParams} params Event configuration parameters\n */\nconst SignUp = (provider: GoogleAnalyticsProvider, params: SignUpParams) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"sign_up\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default SignUp;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SignUpParams } from \"./signUp.types\";\n\n/**\n * Emits a signUp event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {signUpParams} params Event configuration parameters\n */\nconst signUp = (provider: FacebookPixelProvider, params: SignUpParams) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"CompleteRegistration\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default signUp;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SignUpParams } from \"./signUp.types\";\n\n/**\n * Emits a signUp event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {signUpParams} params Event configuration parameters\n */\nconst signUp = (provider: SegmentProvider, params: SignUpParams) => {\n const { name, method, identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, username: name, type: method };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Signed Up\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n const { name: nameTrait = name, email = rest.email, ...traits } = identify;\n analytics.identify(identify.id, {\n name: nameTrait,\n email,\n ...traits\n });\n};\n\nexport default signUp;\n","import googleSignUp from \"../../../providers/GoogleAnalytics/events/auth/signUp/signUp\";\nimport facebookSignUp from \"../../../providers/FacebookPixel/events/auth/signUp/signUp\";\nimport segmentSignUp from \"../../../providers/Segment/events/auth/signUp/signUp\";\nimport { SignUpParams } from \"./signUp.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a signUp event to every configured provider.\n *\n * Log this event when your sign up request has resolved successfully.\n *\n * @since 0.1.0\n * @param {SignUpParams} params SignUp event parameters\n */\nconst logSignUp = (params: SignUpParams) => {\n triageEventToProviders(\"signUp\", params, {\n googleAnalyticsHandler: googleSignUp,\n facebookPixelHandler: facebookSignUp,\n segmentHandler: segmentSignUp\n });\n};\n\nexport default logSignUp;\n","// events index\nimport logChangePasswordAttempt from \"./changePasswordAttempt/changePasswordAttempt\";\nimport logSignUpAttempt from \"./signUpAttempt/signUpAttempt\";\nimport logChangePasswordFail from \"./changePasswordFail/changePasswordFail\";\nimport logChangePasswordSuccess from \"./changePasswordSuccess/changePasswordSuccess\";\nimport logSignIn from \"./signIn/signIn\";\nimport logSignOut from \"./signOut/signOut\";\nimport logSignUp from \"./signUp/signUp\";\n\nconst events = {\n logChangePasswordAttempt,\n logSignUpAttempt,\n logChangePasswordFail,\n logChangePasswordSuccess,\n logSignIn,\n logSignOut,\n logSignUp\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { BannerImpressionParams } from \"./bannerImpression.types\";\n\n/**\n * Emits a bannerImpression event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {BannerImpressionParams} params Event configuration parameters\n */\nconst bannerImpression = (\n provider: GoogleAnalyticsProvider,\n params: BannerImpressionParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"banner_impression\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bannerImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { BannerImpressionParams } from \"./bannerImpression.types\";\n\n/**\n * Emits a bannerImpression event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {BannerImpressionParams} params event configuration parameters\n */\nconst bannerImpression = (\n provider: FacebookPixelProvider,\n params: BannerImpressionParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"BannerImpression\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bannerImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { BannerImpressionParams } from \"./bannerImpression.types\";\n\n/**\n * Emits a bannerImpression event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {BannerImpressionParams} params event configuration parameters\n */\nconst bannerImpression = (\n provider: SegmentProvider,\n params: BannerImpressionParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Banner Impression\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bannerImpression;\n","import googleBannerImpression from \"../../../providers/GoogleAnalytics/events/banner/bannerImpression/bannerImpression\";\nimport facebookBannerImpression from \"../../../providers/FacebookPixel/events/banner/bannerImpression/bannerImpression\";\nimport segmentBannerImpression from \"../../../providers/Segment/events/banner/bannerImpression/bannerImpression\";\nimport { BannerImpressionParams } from \"./bannerImpression.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a bannerImpression event to every configured provider.\n *\n * Log this event when a banner is visible on the screen.\n *\n * @since 0.1.0\n * @property {BannerImpressionParams} params BannerImpression event parameters\n */\nconst logBannerImpression = (params: BannerImpressionParams) => {\n triageEventToProviders(\"bannerImpression\", params, {\n googleAnalyticsHandler: googleBannerImpression,\n facebookPixelHandler: facebookBannerImpression,\n segmentHandler: segmentBannerImpression\n });\n};\n\nexport default logBannerImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectBannerParams } from \"./selectBanner.types\";\n\n/**\n * Emits a selectBanner event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectBannerParams} params Event configuration parameters\n */\nconst selectBanner = (\n provider: GoogleAnalyticsProvider,\n params: SelectBannerParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_content\", {\n send_to: trackingId,\n event_callback: callback,\n content_type: \"banner\",\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBanner;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectBannerParams } from \"./selectBanner.types\";\n\n/**\n * Emits a selectBanner event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectBannerParams} params event configuration parameters\n */\nconst selectBanner = (\n provider: FacebookPixelProvider,\n params: SelectBannerParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectBanner\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBanner;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectBannerParams } from \"./selectBanner.types\";\n\n/**\n * Emits a selectBanner event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectBannerParams} params event configuration parameters\n */\nconst selectBanner = (\n provider: SegmentProvider,\n params: SelectBannerParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Select Banner\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBanner;\n","import googleSelectBanner from \"../../../providers/GoogleAnalytics/events/banner/selectBanner/selectBanner\";\nimport facebookSelectBanner from \"../../../providers/FacebookPixel/events/banner/selectBanner/selectBanner\";\nimport segmentSelectBanner from \"../../../providers/Segment/events/banner/selectBanner/selectBanner\";\nimport { SelectBannerParams } from \"./selectBanner.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectBanner event to every configured provider.\n *\n * Log this event when users select a banner.\n *\n * @since 0.1.0\n * @property {SelectBannerParams} params SelectBanner event parameters\n */\nconst logSelectBanner = (params: SelectBannerParams) => {\n triageEventToProviders(\"selectBanner\", params, {\n googleAnalyticsHandler: googleSelectBanner,\n facebookPixelHandler: facebookSelectBanner,\n segmentHandler: segmentSelectBanner\n });\n};\n\nexport default logSelectBanner;\n","// events index\nimport logBannerImpression from \"./bannerImpression/bannerImpression\";\nimport logSelectBanner from \"./selectBanner/selectBanner\";\n\nconst events = { logBannerImpression, logSelectBanner };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { AddBillingInfoParams } from \"./addBillingInfo.types\";\n\n/**\n * Emits a addBillingInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {AddBillingInfoParams} params Event configuration parameters\n */\nconst addBillingInfo = (\n provider: GoogleAnalyticsProvider,\n params: AddBillingInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"add_billing_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { AddBillingInfoParams } from \"./addBillingInfo.types\";\n\n/**\n * Emits a addBillingInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {AddBillingInfoParams} params Event configuration parameters\n */\nconst addBillingInfo = (\n provider: FacebookPixelProvider,\n params: AddBillingInfoParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"AddBillingInfo\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { AddBillingInfoParams } from \"./addBillingInfo.types\";\n\n/**\n * Emits a addBillingInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {AddBillingInfoParams} params Event configuration parameters\n */\nconst addBillingInfo = (\n provider: SegmentProvider,\n params: AddBillingInfoParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Add Billing Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addBillingInfo;\n","import googleAddBillingInfo from \"../../../providers/GoogleAnalytics/events/billing/addBillingInfo/addBillingInfo\";\nimport facebookAddBillingInfo from \"../../../providers/FacebookPixel/events/billing/addBillingInfo/addBillingInfo\";\nimport segmentAddBillingInfo from \"../../../providers/Segment/events/billing/addBillingInfo/addBillingInfo\";\nimport { AddBillingInfoParams } from \"./addBillingInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a addBillingInfo event to every configured provider.\n *\n * Log this event when users add their billing information.\n *\n * @since 0.1.0\n * @property {AddBillingInfoParams} params AddBillingInfo event parameters\n */\nconst logAddBillingInfo = (params: AddBillingInfoParams) => {\n triageEventToProviders(\"addBillingInfo\", params, {\n googleAnalyticsHandler: googleAddBillingInfo,\n facebookPixelHandler: facebookAddBillingInfo,\n segmentHandler: segmentAddBillingInfo\n });\n};\n\nexport default logAddBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectBillingInfoParams } from \"./selectBillingInfo.types\";\n\n/**\n * Emits a selectBillingInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectBillingInfoParams} params Event configuration parameters\n */\nconst selectBillingInfo = (\n provider: GoogleAnalyticsProvider,\n params: SelectBillingInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_billing_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectBillingInfoParams } from \"./selectBillingInfo.types\";\n\n/**\n * Emits a selectBillingInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectBillingInfoParams} params Event configuration parameters\n */\nconst selectBillingInfo = (\n provider: FacebookPixelProvider,\n params: SelectBillingInfoParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectBillingInfo\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectBillingInfoParams } from \"./selectBillingInfo.types\";\n\n/**\n * Emits a selectBillingInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectBillingInfoParams} params Event configuration parameters\n */\nconst selectBillingInfo = (\n provider: SegmentProvider,\n params: SelectBillingInfoParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"SelectBilling Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectBillingInfo;\n","import googleSelectBillingInfo from \"../../../providers/GoogleAnalytics/events/billing/selectBillingInfo/selectBillingInfo\";\nimport facebookSelectBillingInfo from \"../../../providers/FacebookPixel/events/billing/selectBillingInfo/selectBillingInfo\";\nimport segmentSelectBillingInfo from \"../../../providers/Segment/events/billing/selectBillingInfo/selectBillingInfo\";\nimport { SelectBillingInfoParams } from \"./selectBillingInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectBillingInfo event to every configured provider.\n *\n * Log this event when users select a billing information.\n *\n * @since 0.1.0\n * @property {SelectBillingInfoParams} params SelectBillingInfo event parameters\n */\nconst logSelectBillingInfo = (params: SelectBillingInfoParams) => {\n triageEventToProviders(\"selectBillingInfo\", params, {\n googleAnalyticsHandler: googleSelectBillingInfo,\n facebookPixelHandler: facebookSelectBillingInfo,\n segmentHandler: segmentSelectBillingInfo\n });\n};\n\nexport default logSelectBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateBillingInfoParams } from \"./updateBillingInfo.types\";\n\n/**\n * Emits a updateBillingInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateBillingInfoParams} params Event configuration parameters\n */\nconst updateBillingInfo = (\n provider: GoogleAnalyticsProvider,\n params: UpdateBillingInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"update_billing_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateBillingInfoParams } from \"./updateBillingInfo.types\";\n\n/**\n * Emits a updateBillingInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {UpdateBillingInfoParams} params Event configuration parameters\n */\nconst updateBillingInfo = (\n provider: FacebookPixelProvider,\n params: UpdateBillingInfoParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"UpdateBillingInfo\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateBillingInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateBillingInfoParams } from \"./updateBillingInfo.types\";\n\n/**\n * Emits a updateBillingInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {UpdateBillingInfoParams} params Event configuration parameters\n */\nconst updateBillingInfo = (\n provider: SegmentProvider,\n params: UpdateBillingInfoParams\n) => {\n const { fields, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, fields: transformArrayParam(fields) };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Update Billing Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateBillingInfo;\n","import googleUpdateBillingInfo from \"../../../providers/GoogleAnalytics/events/billing/updateBillingInfo/updateBillingInfo\";\nimport facebookUpdateBillingInfo from \"../../../providers/FacebookPixel/events/billing/updateBillingInfo/updateBillingInfo\";\nimport segmentUpdateBillingInfo from \"../../../providers/Segment/events/billing/updateBillingInfo/updateBillingInfo\";\nimport { UpdateBillingInfoParams } from \"./updateBillingInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a updateBillingInfo event to every configured provider.\n *\n * Log this event when users update their billing information.\n *\n * @since 0.1.0\n * @property {UpdateBillingInfoParams} params UpdateBillingInfo event parameters\n */\nconst logUpdateBillingInfo = (params: UpdateBillingInfoParams) => {\n triageEventToProviders(\"updateBillingInfo\", params, {\n googleAnalyticsHandler: googleUpdateBillingInfo,\n facebookPixelHandler: facebookUpdateBillingInfo,\n segmentHandler: segmentUpdateBillingInfo\n });\n};\n\nexport default logUpdateBillingInfo;\n","// events index\nimport logAddBillingInfo from \"./addBillingInfo/addBillingInfo\";\nimport logSelectBillingInfo from \"./selectBillingInfo/selectBillingInfo\";\nimport logUpdateBillingInfo from \"./updateBillingInfo/updateBillingInfo\";\n\nconst events = {\n logAddBillingInfo,\n logSelectBillingInfo,\n logUpdateBillingInfo\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { BookAppointmentParams } from \"./bookAppointment.types\";\n\n/**\n * Emits a bookAppointment event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {BookAppointmentParams} params Event configuration parameters\n */\nconst bookAppointment = (\n provider: GoogleAnalyticsProvider,\n params: BookAppointmentParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"book_appointment\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bookAppointment;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { BookAppointmentParams } from \"./bookAppointment.types\";\n\n/**\n * Emits a bookAppointment event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {BookAppointmentParams} params Event configuration parameters\n */\nconst bookAppointment = (\n provider: FacebookPixelProvider,\n params: BookAppointmentParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Schedule\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bookAppointment;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { BookAppointmentParams } from \"./bookAppointment.types\";\n\n/**\n * Emits a bookAppointment event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {BookAppointmentParams} params Event configuration parameters\n */\nconst bookAppointment = (\n provider: SegmentProvider,\n params: BookAppointmentParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Book Appointment\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default bookAppointment;\n","import googleBookAppointment from \"../../../providers/GoogleAnalytics/events/booking/bookAppointment/bookAppointment\";\nimport facebookBookAppointment from \"../../../providers/FacebookPixel/events/booking/bookAppointment/bookAppointment\";\nimport segmentBookAppointment from \"../../../providers/Segment/events/booking/bookAppointment/bookAppointment\";\nimport { BookAppointmentParams } from \"./bookAppointment.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a bookAppointment event to every configured provider.\n *\n * Log this event after users successfully book an appointment.\n *\n * @since 0.1.0\n * @property {BookAppointmentParams} params BookAppointment event parameters\n */\nconst logBookAppointment = (params: BookAppointmentParams) => {\n triageEventToProviders(\"bookAppointment\", params, {\n googleAnalyticsHandler: googleBookAppointment,\n facebookPixelHandler: facebookBookAppointment,\n segmentHandler: segmentBookAppointment\n });\n};\n\nexport default logBookAppointment;\n","// events index\n\nimport logBookAppointment from \"./bookAppointment/bookAppointment\";\n\nconst events = { logBookAppointment };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider, Gtag } from \"../../../GoogleAnalytics.types\";\nimport { CategoryImpressionParams } from \"./categoryImpression.types\";\n\n/**\n * Emits a categoryImpression event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CategoryImpressionParams} params Event configuration parameters\n */\nconst categoryImpression = (\n provider: GoogleAnalyticsProvider,\n params: CategoryImpressionParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, category, list, itemBrand, ...rest } = params;\n const { position } = params;\n const { categoryId, name } = category;\n const items: Gtag.Item[] = [\n {\n item_brand: itemBrand,\n item_id: `${categoryId}`,\n item_list_name: list,\n item_name: name,\n index: position\n }\n ];\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_item_list\", {\n send_to: trackingId,\n event_callback: callback,\n item_list_name: list,\n items,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default categoryImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { CategoryImpressionParams } from \"./categoryImpression.types\";\n\n/**\n * Emits a categoryImpression event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CategoryImpressionParams} params Event configuration parameters\n */\nconst categoryImpression = (\n provider: FacebookPixelProvider,\n params: CategoryImpressionParams\n) => {\n const { trackingId } = provider;\n const { category, ...rest } = params;\n delete rest.userId;\n const { categoryId, name: categoryName } = category;\n const enhancedParams = { ...rest, categoryId, categoryName };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"CategoryImpression\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default categoryImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { CategoryImpressionParams } from \"./categoryImpression.types\";\n\n/**\n * Emits a categoryImpression event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CategoryImpressionParams} params Event configuration parameters\n */\nconst categoryImpression = (\n provider: SegmentProvider,\n params: CategoryImpressionParams\n) => {\n const { category, ...rest } = params;\n delete rest.userId;\n const { categoryId, name: categoryName } = category;\n const enhancedParams = { ...rest, categoryId, categoryName };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Category Impression\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default categoryImpression;\n","import googleCategoryImpression from \"../../../providers/GoogleAnalytics/events/category/categoryImpression/categoryImpression\";\nimport facebookCategoryImpression from \"../../../providers/FacebookPixel/events/category/categoryImpression/categoryImpression\";\nimport segmentCategoryImpression from \"../../../providers/Segment/events/category/categoryImpression/categoryImpression\";\nimport { CategoryImpressionParams } from \"./categoryImpression.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a categoryImpression event to every configured provider.\n *\n * Log this event when a category is visible on the screen.\n *\n * @since 0.1.0\n * @property {CategoryImpressionParams} params CategoryImpression event parameters\n */\nconst logCategoryImpression = (params: CategoryImpressionParams) => {\n triageEventToProviders(\"categoryImpression\", params, {\n googleAnalyticsHandler: googleCategoryImpression,\n facebookPixelHandler: facebookCategoryImpression,\n segmentHandler: segmentCategoryImpression\n });\n};\n\nexport default logCategoryImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SearchCategoryAttemptParams } from \"./searchCategoryAttempt.types\";\n\n/**\n * Emits a searchCategoryAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SearchCategoryAttemptParams} params Event configuration parameters\n */\nconst searchCategoryAttempt = (\n provider: GoogleAnalyticsProvider,\n params: SearchCategoryAttemptParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, query, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"search\", {\n send_to: trackingId,\n event_callback: callback,\n search_term: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchCategoryAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SearchCategoryAttemptParams } from \"./searchCategoryAttempt.types\";\n\n/**\n * Emits a searchCategoryAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SearchCategoryAttemptParams} params Event configuration parameters\n */\nconst searchCategoryAttempt = (\n provider: FacebookPixelProvider,\n params: SearchCategoryAttemptParams\n) => {\n const { trackingId } = provider;\n const { query, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Search\", {\n search_string: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchCategoryAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SearchCategoryAttemptParams } from \"./searchCategoryAttempt.types\";\n\n/**\n * Emits a searchCategoryAttempt event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SearchCategoryAttemptParams} params Event configuration parameters\n */\nconst searchCategoryAttempt = (\n provider: SegmentProvider,\n params: SearchCategoryAttemptParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Search Category\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchCategoryAttempt;\n","import googleSearchCategoryAttempt from \"../../../providers/GoogleAnalytics/events/category/searchCategoryAttempt/searchCategoryAttempt\";\nimport facebookSearchCategoryAttempt from \"../../../providers/FacebookPixel/events/category/searchCategoryAttempt/searchCategoryAttempt\";\nimport segmentSearchCategoryAttempt from \"../../../providers/Segment/events/category/searchCategoryAttempt/searchCategoryAttempt\";\nimport { SearchCategoryAttemptParams } from \"./searchCategoryAttempt.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a SearchCategoryAttempt event to every configured provider.\n *\n * Log this event when users try to search an specific category.\n *\n * @since 0.1.0\n * @property {SearchCategoryAttemptParams} params SearchCategoryAttempt event parameters\n */\nconst logSearchCategoryAttempt = (params: SearchCategoryAttemptParams) => {\n triageEventToProviders(\"searchCategoryAttempt\", params, {\n googleAnalyticsHandler: googleSearchCategoryAttempt,\n facebookPixelHandler: facebookSearchCategoryAttempt,\n segmentHandler: segmentSearchCategoryAttempt\n });\n};\n\nexport default logSearchCategoryAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectCategoryParams } from \"./selectCategory.types\";\n\n/**\n * Emits a selectCategory event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectCategoryParams} params Event configuration parameters\n */\nconst selectCategory = (\n provider: GoogleAnalyticsProvider,\n params: SelectCategoryParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, category, ...rest } = params;\n if (rest.contentType) {\n delete rest.contentType;\n }\n const { categoryId, name: categoryName } = category;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n categoryId,\n categoryName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_content\", {\n send_to: trackingId,\n event_callback: callback,\n content_type: \"category\",\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectCategory;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectCategoryParams } from \"./selectCategory.types\";\n\n/**\n * Emits a selectCategory event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectCategoryParams} params Event configuration parameters\n */\nconst selectCategory = (\n provider: FacebookPixelProvider,\n params: SelectCategoryParams\n) => {\n const { trackingId } = provider;\n const { category, ...rest } = params;\n delete rest.userId;\n const { categoryId, name: categoryName } = category;\n const enhancedParams = { ...rest, categoryId, categoryName };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectCategory\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectCategory;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectCategoryParams } from \"./selectCategory.types\";\n\n/**\n * Emits a selectCategory event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectCategoryParams} params Event configuration parameters\n */\nconst selectCategory = (\n provider: SegmentProvider,\n params: SelectCategoryParams\n) => {\n const { category, ...rest } = params;\n delete rest.userId;\n const { categoryId, name: categoryName } = category;\n const enhancedParams = { ...rest, categoryId, categoryName };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Select Category\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectCategory;\n","import googleSelectCategory from \"../../../providers/GoogleAnalytics/events/category/selectCategory/selectCategory\";\nimport facebookSelectCategory from \"../../../providers/FacebookPixel/events/category/selectCategory/selectCategory\";\nimport segmentSelectCategory from \"../../../providers/Segment/events/category/selectCategory/selectCategory\";\nimport { SelectCategoryParams } from \"./selectCategory.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectCategory event to every configured provider.\n *\n * Log this event when users select a category. This category may or may not\n * be on a list.\n *\n * @since 0.1.0\n * @property {SelectCategoryParams} params SelectCategory event parameters\n */\nconst logSelectCategory = (params: SelectCategoryParams) => {\n triageEventToProviders(\"selectCategory\", params, {\n googleAnalyticsHandler: googleSelectCategory,\n facebookPixelHandler: facebookSelectCategory,\n segmentHandler: segmentSelectCategory\n });\n};\n\nexport default logSelectCategory;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewCategoryParams } from \"./viewCategory.types\";\n\n/**\n * Emits a viewCategory event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewCategoryParams} params Event configuration parameters\n */\nconst viewCategory = (\n provider: GoogleAnalyticsProvider,\n params: ViewCategoryParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, category, ...rest } = params;\n const { categoryId, name: categoryName } = category;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n categoryId,\n categoryName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_category\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCategory;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewCategoryParams } from \"./viewCategory.types\";\n\n/**\n * Emits a viewCategory event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewCategoryParams} params Event configuration parameters\n */\nconst viewCategory = (\n provider: FacebookPixelProvider,\n params: ViewCategoryParams\n) => {\n const { trackingId } = provider;\n const { category, ...rest } = params;\n delete rest.userId;\n const { categoryId, name: categoryName } = category;\n const enhancedParams = { ...rest, categoryId, categoryName };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewCategory\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCategory;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewCategoryParams } from \"./viewCategory.types\";\n\n/**\n * Emits a viewCategory event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewCategoryParams} params Event configuration parameters\n */\nconst viewCategory = (\n provider: SegmentProvider,\n params: ViewCategoryParams\n) => {\n const { category, products, ...rest } = params;\n delete rest.userId;\n const { categoryId, name } = category;\n const enhancedParams = { ...rest, listId: categoryId, category: name };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Product List Viewed\", {\n products: mapProductsToSegmentProducts(products),\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCategory;\n","import googleViewCategory from \"../../../providers/GoogleAnalytics/events/category/viewCategory/viewCategory\";\nimport facebookViewCategory from \"../../../providers/FacebookPixel/events/category/viewCategory/viewCategory\";\nimport segmentViewCategory from \"../../../providers/Segment/events/category/viewCategory/viewCategory\";\nimport { ViewCategoryParams } from \"./viewCategory.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewCategory event to every configured provider.\n *\n * Log this event when the details or products of a category load successfully\n * and are shown to the user.\n *\n * @since 0.1.0\n * @property {ViewCategoryParams} params ViewCategory event parameters\n */\nconst logViewCategory = (params: ViewCategoryParams) => {\n triageEventToProviders(\"viewCategory\", params, {\n googleAnalyticsHandler: googleViewCategory,\n facebookPixelHandler: facebookViewCategory,\n segmentHandler: segmentViewCategory\n });\n};\n\nexport default logViewCategory;\n","// events index\nimport logCategoryImpression from \"./categoryImpression/categoryImpression\";\nimport logSearchCategoryAttempt from \"./searchCategoryAttempt/searchCategoryAttempt\";\nimport logSelectCategory from \"./selectCategory/selectCategory\";\nimport logViewCategory from \"./viewCategory/viewCategory\";\n\nconst events = {\n logCategoryImpression,\n logSearchCategoryAttempt,\n logSelectCategory,\n logViewCategory\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { CheckoutActionParams } from \"./checkoutAction.types\";\n\n/**\n * Emits a checkoutAction event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CheckoutActionParams} params Event configuration parameters\n */\nconst checkoutAction = (\n provider: GoogleAnalyticsProvider,\n params: CheckoutActionParams\n) => {\n const { trackingId, userId: providerUserId, currency } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId, currency };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"checkout_action\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default checkoutAction;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { CheckoutActionParams } from \"./checkoutAction.types\";\n\n/**\n * Emits a checkoutAction event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CheckoutActionParams} params Event configuration parameters\n */\nconst checkoutAction = (\n provider: FacebookPixelProvider,\n params: CheckoutActionParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"CheckoutAction\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default checkoutAction;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { CheckoutActionParams } from \"./checkoutAction.types\";\n\n/**\n * Emits a checkoutAction event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CheckoutActionParams} params Event configuration parameters\n */\nconst checkoutAction = (\n provider: SegmentProvider,\n params: CheckoutActionParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Checkout Step Completed\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default checkoutAction;\n","import googleCheckoutAction from \"../../../providers/GoogleAnalytics/events/checkout/checkoutAction/checkoutAction\";\nimport facebookCheckoutAction from \"../../../providers/FacebookPixel/events/checkout/checkoutAction/checkoutAction\";\nimport segmentCheckoutAction from \"../../../providers/Segment/events/checkout/checkoutAction/checkoutAction\";\nimport { CheckoutActionParams } from \"./checkoutAction.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a checkoutAction event to every configured provider.\n *\n * Log this event when users complete a step in the checkout progress.\n *\n * @since 0.1.0\n * @property {CheckoutActionParams} params CheckoutAction event parameters\n */\nconst logCheckoutAction = (params: CheckoutActionParams) => {\n triageEventToProviders(\"checkoutAction\", params, {\n googleAnalyticsHandler: googleCheckoutAction,\n facebookPixelHandler: facebookCheckoutAction,\n segmentHandler: segmentCheckoutAction\n });\n};\n\nexport default logCheckoutAction;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToGoogleItems } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { InitiateCheckoutParams } from \"./initiateCheckout.types\";\n\n/**\n * Emits a initiateCheckout event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {InitiateCheckoutParams} params Event configuration parameters\n */\nconst initiateCheckout = (\n provider: GoogleAnalyticsProvider,\n params: InitiateCheckoutParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, shoppingCart, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n gtag(\"event\", \"begin_checkout\", {\n send_to: trackingId,\n event_callback: callback,\n items: mapProductsToGoogleItems(shoppingCart, selectedCurrency),\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default initiateCheckout;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContentFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getProductIdsFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { InitiateCheckoutParams } from \"./initiateCheckout.types\";\n\n/**\n * Emits a initiateCheckout event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {InitiateCheckoutParams} params Event configuration parameters\n */\nconst initiateCheckout = (\n provider: FacebookPixelProvider,\n params: InitiateCheckoutParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { shoppingCart, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const productsIds = getProductIdsFromShoppingCart(shoppingCart);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n fbq(\"trackSingle\", trackingId, \"InitiateCheckout\", {\n content_ids: productsIds,\n contents: getProductContentFromShoppingCart(shoppingCart),\n num_items: productsIds.length,\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default initiateCheckout;\n","import { getShoppingCartProducts } from \"@artisan-commerce/shopping-cart\";\nimport { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { InitiateCheckoutParams } from \"./initiateCheckout.types\";\n\n/**\n * Emits a initiateCheckout event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {InitiateCheckoutParams} params Event configuration parameters\n */\nconst initiateCheckout = (\n provider: SegmentProvider,\n params: InitiateCheckoutParams\n) => {\n const { currency: providerCurrency } = provider;\n const { shoppingCart, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const products = getShoppingCartProducts(shoppingCart);\n const { total, totalTaxes, shippingCost, totalPoints } =\n getShoppingCartTotal(shoppingCart);\n analytics.track(\"Initiate Checkout\", {\n total,\n revenue: total - (totalTaxes ?? 0) - (shippingCost ?? 0),\n shipping: shippingCost ?? 0,\n tax: totalTaxes ?? 0,\n products: mapProductsToSegmentProducts(products),\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default initiateCheckout;\n","import googleInitiateCheckout from \"../../../providers/GoogleAnalytics/events/checkout/initiateCheckout/initiateCheckout\";\nimport facebookInitiateCheckout from \"../../../providers/FacebookPixel/events/checkout/initiateCheckout/initiateCheckout\";\nimport segmentInitiateCheckout from \"../../../providers/Segment/events/checkout/initiateCheckout/initiateCheckout\";\nimport { InitiateCheckoutParams } from \"./initiateCheckout.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a initiateCheckout event to every configured provider.\n *\n * Log this event at the start of a checkout process.\n *\n * @since 0.1.0\n * @property {InitiateCheckoutParams} params InitiateCheckout event parameters\n */\nconst logInitiateCheckout = (params: InitiateCheckoutParams) => {\n triageEventToProviders(\"initiateCheckout\", params, {\n googleAnalyticsHandler: googleInitiateCheckout,\n facebookPixelHandler: facebookInitiateCheckout,\n segmentHandler: segmentInitiateCheckout\n });\n};\n\nexport default logInitiateCheckout;\n","// events index\nimport logCheckoutAction from \"./checkoutAction/checkoutAction\";\nimport logInitiateCheckout from \"./initiateCheckout/initiateCheckout\";\n\nconst events = { logCheckoutAction, logInitiateCheckout };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ApplyBenefitParams } from \"./applyBenefit.types\";\n\n/**\n * Emits a applyBenefit event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ApplyBenefitParams} params Event configuration parameters\n */\nconst applyBenefit = (\n provider: GoogleAnalyticsProvider,\n params: ApplyBenefitParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"apply_benefit\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default applyBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ApplyBenefitParams } from \"./applyBenefit.types\";\n\n/**\n * Emits a applyBenefit event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ApplyBenefitParams} params Event configuration parameters\n */\nconst applyBenefit = (\n provider: FacebookPixelProvider,\n params: ApplyBenefitParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ApplyBenefit\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default applyBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ApplyBenefitParams } from \"./applyBenefit.types\";\n\n/**\n * Emits a applyBenefit event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ApplyBenefitParams} params Event configuration parameters\n */\nconst applyBenefit = (\n provider: SegmentProvider,\n params: ApplyBenefitParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Apply Benefit\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default applyBenefit;\n","import googleApplyBenefit from \"../../../providers/GoogleAnalytics/events/coupon/applyBenefit/applyBenefit\";\nimport facebookApplyBenefit from \"../../../providers/FacebookPixel/events/coupon/applyBenefit/applyBenefit\";\nimport segmentApplyBenefit from \"../../../providers/Segment/events/coupon/applyBenefit/applyBenefit\";\nimport { ApplyBenefitParams } from \"./applyBenefit.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a applyBenefit event to every configured provider.\n *\n * Log this event when users apply a coupon on their order.\n *\n * @since 0.1.0\n * @property {ApplyBenefitParams} params ApplyBenefit event parameters\n */\nconst logApplyBenefit = (params: ApplyBenefitParams) => {\n triageEventToProviders(\"applyBenefit\", params, {\n googleAnalyticsHandler: googleApplyBenefit,\n facebookPixelHandler: facebookApplyBenefit,\n segmentHandler: segmentApplyBenefit\n });\n};\n\nexport default logApplyBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { CouponCodeErrorParams } from \"./couponCodeError.types\";\n\n/**\n * Emits a couponCodeError event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CouponCodeErrorParams} params Event configuration parameters\n */\nconst couponCodeError = (\n provider: GoogleAnalyticsProvider,\n params: CouponCodeErrorParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"coupon_code_error\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default couponCodeError;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { CouponCodeErrorParams } from \"./couponCodeError.types\";\n\n/**\n * Emits a couponCodeError event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CouponCodeErrorParams} params Event configuration parameters\n */\nconst couponCodeError = (\n provider: FacebookPixelProvider,\n params: CouponCodeErrorParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"CouponCodeError\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default couponCodeError;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { CouponCodeErrorParams } from \"./couponCodeError.types\";\n\n/**\n * Emits a couponCodeError event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CouponCodeErrorParams} params Event configuration parameters\n */\nconst couponCodeError = (\n provider: SegmentProvider,\n params: CouponCodeErrorParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Coupon Code Error\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default couponCodeError;\n","import googleCouponCodeError from \"../../../providers/GoogleAnalytics/events/coupon/couponCodeError/couponCodeError\";\nimport facebookCouponCodeError from \"../../../providers/FacebookPixel/events/coupon/couponCodeError/couponCodeError\";\nimport segmentCouponCodeError from \"../../../providers/Segment/events/coupon/couponCodeError/couponCodeError\";\nimport { CouponCodeErrorParams } from \"./couponCodeError.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a couponCodeError event to every configured provider.\n *\n * Log this event when your redeem coupon request has failed.\n *\n * @since 0.1.0\n * @property {CouponCodeErrorParams} params CouponCodeError event parameters\n */\nconst logCouponCodeError = (params: CouponCodeErrorParams) => {\n triageEventToProviders(\"couponCodeError\", params, {\n googleAnalyticsHandler: googleCouponCodeError,\n facebookPixelHandler: facebookCouponCodeError,\n segmentHandler: segmentCouponCodeError\n });\n};\n\nexport default logCouponCodeError;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RedeemCouponCodeParams } from \"./redeemCouponCode.types\";\n\n/**\n * Emits a redeemCouponCode event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RedeemCouponCodeParams} params Event configuration parameters\n */\nconst redeemCouponCode = (\n provider: GoogleAnalyticsProvider,\n params: RedeemCouponCodeParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"redeem_coupon_code\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default redeemCouponCode;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RedeemCouponCodeParams } from \"./redeemCouponCode.types\";\n\n/**\n * Emits a redeemCouponCode event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RedeemCouponCodeParams} params Event configuration parameters\n */\nconst redeemCouponCode = (\n provider: FacebookPixelProvider,\n params: RedeemCouponCodeParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"RedeemCouponCode\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default redeemCouponCode;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RedeemCouponCodeParams } from \"./redeemCouponCode.types\";\n\n/**\n * Emits a redeemCouponCode event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RedeemCouponCodeParams} params Event configuration parameters\n */\nconst redeemCouponCode = (\n provider: SegmentProvider,\n params: RedeemCouponCodeParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Redeem Coupon Code\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default redeemCouponCode;\n","import googleRedeemCouponCode from \"../../../providers/GoogleAnalytics/events/coupon/redeemCouponCode/redeemCouponCode\";\nimport facebookRedeemCouponCode from \"../../../providers/FacebookPixel/events/coupon/redeemCouponCode/redeemCouponCode\";\nimport segmentRedeemCouponCode from \"../../../providers/Segment/events/coupon/redeemCouponCode/redeemCouponCode\";\nimport { RedeemCouponCodeParams } from \"./redeemCouponCode.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a redeemCouponCode event to every configured provider.\n *\n * Log this event when users successfully redeem a coupon.\n *\n * @since 0.1.0\n * @property {RedeemCouponCodeParams} params RedeemCouponCode event parameters\n */\nconst logRedeemCouponCode = (params: RedeemCouponCodeParams) => {\n triageEventToProviders(\"redeemCouponCode\", params, {\n googleAnalyticsHandler: googleRedeemCouponCode,\n facebookPixelHandler: facebookRedeemCouponCode,\n segmentHandler: segmentRedeemCouponCode\n });\n};\n\nexport default logRedeemCouponCode;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RemoveBenefitParams } from \"./removeBenefit.types\";\n\n/**\n * Emits a removeBenefit event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RemoveBenefitParams} params Event configuration parameters\n */\nconst removeBenefit = (\n provider: GoogleAnalyticsProvider,\n params: RemoveBenefitParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"remove_benefit\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RemoveBenefitParams } from \"./removeBenefit.types\";\n\n/**\n * Emits a removeBenefit event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RemoveBenefitParams} params Event configuration parameters\n */\nconst removeBenefit = (\n provider: FacebookPixelProvider,\n params: RemoveBenefitParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"RemoveBenefit\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RemoveBenefitParams } from \"./removeBenefit.types\";\n\n/**\n * Emits a removeBenefit event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RemoveBenefitParams} params Event configuration parameters\n */\nconst removeBenefit = (\n provider: SegmentProvider,\n params: RemoveBenefitParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Remove Benefit\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeBenefit;\n","import googleRemoveBenefit from \"../../../providers/GoogleAnalytics/events/coupon/removeBenefit/removeBenefit\";\nimport facebookRemoveBenefit from \"../../../providers/FacebookPixel/events/coupon/removeBenefit/removeBenefit\";\nimport segmentRemoveBenefit from \"../../../providers/Segment/events/coupon/removeBenefit/removeBenefit\";\nimport { RemoveBenefitParams } from \"./removeBenefit.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a removeBenefit event to every configured provider.\n *\n * Log this event when users remove coupon from their order.\n *\n * @since 0.1.0\n * @property {RemoveBenefitParams} params RemoveBenefit event parameters\n */\nconst logRemoveBenefit = (params: RemoveBenefitParams) => {\n triageEventToProviders(\"removeBenefit\", params, {\n googleAnalyticsHandler: googleRemoveBenefit,\n facebookPixelHandler: facebookRemoveBenefit,\n segmentHandler: segmentRemoveBenefit\n });\n};\n\nexport default logRemoveBenefit;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewBenefitDetailsParams } from \"./viewBenefitDetails.types\";\n\n/**\n * Emits a viewBenefitDetails event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitDetailsParams} params Event configuration parameters\n */\nconst viewBenefitDetails = (\n provider: GoogleAnalyticsProvider,\n params: ViewBenefitDetailsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_benefit_details\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitDetails;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewBenefitDetailsParams } from \"./viewBenefitDetails.types\";\n\n/**\n * Emits a viewBenefitDetails.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitDetailsParams} params Event configuration parameters\n */\nconst viewBenefitDetails = (\n provider: FacebookPixelProvider,\n params: ViewBenefitDetailsParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewBenefitDetails\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitDetails;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewBenefitDetailsParams } from \"./viewBenefitDetails.types\";\n\n/**\n * Emits a viewBenefitDetails.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitDetailsParams} params Event configuration parameters\n */\nconst viewBenefitDetails = (\n provider: SegmentProvider,\n params: ViewBenefitDetailsParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Benefit Details\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitDetails;\n","import googleViewBenefitDetails from \"../../../providers/GoogleAnalytics/events/coupon/viewBenefitDetails/viewBenefitDetails\";\nimport facebookViewBenefitDetails from \"../../../providers/FacebookPixel/events/coupon/viewBenefitDetails/viewBenefitDetails\";\nimport segmentViewBenefitDetails from \"../../../providers/Segment/events/coupon/viewBenefitDetails/viewBenefitDetails\";\nimport { ViewBenefitDetailsParams } from \"./viewBenefitDetails.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewBenefitDetails event to every configured provider.\n *\n * Log this event when users see the benefits of a coupon.\n *\n * @since 0.1.0\n * @property {ViewBenefitDetailsParams} params ViewBenefitDetails event parameters\n */\nconst logViewBenefitDetails = (params: ViewBenefitDetailsParams) => {\n triageEventToProviders(\"viewBenefitDetails\", params, {\n googleAnalyticsHandler: googleViewBenefitDetails,\n facebookPixelHandler: facebookViewBenefitDetails,\n segmentHandler: segmentViewBenefitDetails\n });\n};\n\nexport default logViewBenefitDetails;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewBenefitsWalletParams } from \"./viewBenefitsWallet.types\";\n\n/**\n * Emits a viewBenefitsWallet event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitsWalletParams} params Event configuration parameters\n */\nconst viewBenefitsWallet = (\n provider: GoogleAnalyticsProvider,\n params: ViewBenefitsWalletParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_benefits_wallet\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitsWallet;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewBenefitsWalletParams } from \"./viewBenefitsWallet.types\";\n\n/**\n * Emits a viewBenefitsWallet.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitsWalletParams} params Event configuration parameters\n */\nconst viewBenefitsWallet = (\n provider: FacebookPixelProvider,\n params: ViewBenefitsWalletParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewBenefitsWallet\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitsWallet;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewBenefitsWalletParams } from \"./viewBenefitsWallet.types\";\n\n/**\n * Emits a viewBenefitsWallet.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewBenefitsWalletParams} params Event configuration parameters\n */\nconst viewBenefitsWallet = (\n provider: SegmentProvider,\n params: ViewBenefitsWalletParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Benefits Wallet\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewBenefitsWallet;\n","import googleViewBenefitsWallet from \"../../../providers/GoogleAnalytics/events/coupon/viewBenefitsWallet/viewBenefitsWallet\";\nimport facebookViewBenefitsWallet from \"../../../providers/FacebookPixel/events/coupon/viewBenefitsWallet/viewBenefitsWallet\";\nimport segmentViewBenefitsWallet from \"../../../providers/Segment/events/coupon/viewBenefitsWallet/viewBenefitsWallet\";\nimport { ViewBenefitsWalletParams } from \"./viewBenefitsWallet.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewBenefitsWallet event to every configured provider.\n *\n * Log this event when users see their available coupons in the wallet.\n *\n * @since 0.1.0\n * @property {ViewBenefitsWalletParams} params ViewBenefitsWallet event parameters\n */\nconst logViewBenefitsWallet = (params: ViewBenefitsWalletParams) => {\n triageEventToProviders(\"viewBenefitsWallet\", params, {\n googleAnalyticsHandler: googleViewBenefitsWallet,\n facebookPixelHandler: facebookViewBenefitsWallet,\n segmentHandler: segmentViewBenefitsWallet\n });\n};\n\nexport default logViewBenefitsWallet;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewQRStoreCouponParams } from \"./viewQRStoreCoupon.types\";\n\n/**\n * Emits a viewQRStoreCoupon event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewQRStoreCouponParams} params Event configuration parameters\n */\nconst viewQRStoreCoupon = (\n provider: GoogleAnalyticsProvider,\n params: ViewQRStoreCouponParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_qr_store_coupon\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewQRStoreCoupon;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewQRStoreCouponParams } from \"./viewQRStoreCoupon.types\";\n\n/**\n * Emits a viewQRStoreCoupon event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewQRStoreCouponParams} params Event configuration parameters\n */\nconst viewQRStoreCoupon = (\n provider: FacebookPixelProvider,\n params: ViewQRStoreCouponParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewQRStoreCoupon\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewQRStoreCoupon;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewQRStoreCouponParams } from \"./viewQRStoreCoupon.types\";\n\n/**\n * Emits a viewQRStoreCoupon event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewQRStoreCouponParams} params Event configuration parameters\n */\nconst viewQRStoreCoupon = (\n provider: SegmentProvider,\n params: ViewQRStoreCouponParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View QR Store Coupon\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewQRStoreCoupon;\n","import googleViewQRStoreCoupon from \"../../../providers/GoogleAnalytics/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon\";\nimport facebookViewQRStoreCoupon from \"../../../providers/FacebookPixel/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon\";\nimport segmentViewQRStoreCoupon from \"../../../providers/Segment/events/coupon/viewQRStoreCoupon/viewQRStoreCoupon\";\nimport { ViewQRStoreCouponParams } from \"./viewQRStoreCoupon.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewQrStoreCoupon event to every configured provider.\n *\n * Log this event when users view the details of a store coupon that has a QR\n * code.\n *\n * @since 0.1.0\n * @property {ViewQrStoreCouponParams} params ViewQrStoreCoupon event parameters\n */\nconst logViewQRStoreCoupon = (params: ViewQRStoreCouponParams = {}) => {\n triageEventToProviders(\"viewQRStoreCoupon\", params, {\n googleAnalyticsHandler: googleViewQRStoreCoupon,\n facebookPixelHandler: facebookViewQRStoreCoupon,\n segmentHandler: segmentViewQRStoreCoupon\n });\n};\n\nexport default logViewQRStoreCoupon;\n","// events index\nimport logApplyBenefit from \"./applyBenefit/applyBenefit\";\nimport logCouponCodeError from \"./couponCodeError/couponCodeError\";\nimport logRedeemCouponCode from \"./redeemCouponCode/redeemCouponCode\";\nimport logRemoveBenefit from \"./removeBenefit/removeBenefit\";\nimport logViewBenefitDetails from \"./viewBenefitDetails/viewBenefitDetails\";\nimport logViewBenefitsWallet from \"./viewBenefitsWallet/viewBenefitsWallet\";\nimport logViewQRStoreCoupon from \"./viewQRStoreCoupon/viewQRStoreCoupon\";\n\nconst events = {\n logApplyBenefit,\n logCouponCodeError,\n logRedeemCouponCode,\n logRemoveBenefit,\n logViewBenefitDetails,\n logViewBenefitsWallet,\n logViewQRStoreCoupon\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { AddCreditsParams } from \"./addCredits.types\";\n\n/**\n * Emits a addCredits event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {AddCreditsParams} params Event configuration parameters\n */\nconst addCredits = (\n provider: GoogleAnalyticsProvider,\n params: AddCreditsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, amount, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"add_credits\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { AddCreditsParams } from \"./addCredits.types\";\n\n/**\n * Emits a addCredits event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {AddCreditsParams} params Event configuration parameters\n */\nconst addCredits = (\n provider: FacebookPixelProvider,\n params: AddCreditsParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { amount, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"AddCredits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { AddCreditsParams } from \"./addCredits.types\";\n\n/**\n * Emits a addCredits event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {AddCreditsParams} params Event configuration parameters\n */\nconst addCredits = (provider: SegmentProvider, params: AddCreditsParams) => {\n const { currency: providerCurrency } = provider;\n const { amount, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Add Credits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addCredits;\n","import googleAddCredits from \"../../../providers/GoogleAnalytics/events/credit/addCredits/addCredits\";\nimport facebookAddCredits from \"../../../providers/FacebookPixel/events/credit/addCredits/addCredits\";\nimport segmentAddCredits from \"../../../providers/Segment/events/credit/addCredits/addCredits\";\nimport { AddCreditsParams } from \"./addCredits.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a addCredits event to every configured provider.\n *\n * Log this event when users add credits to their accounts.\n *\n * @since 0.1.0\n * @property {AddCreditsParams} params AddCredits event parameters\n */\nconst logAddCredits = (params: AddCreditsParams) => {\n triageEventToProviders(\"addCredits\", params, {\n googleAnalyticsHandler: googleAddCredits,\n facebookPixelHandler: facebookAddCredits,\n segmentHandler: segmentAddCredits\n });\n};\n\nexport default logAddCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SpendCreditsParams } from \"./spendCredits.types\";\n\n/**\n * Emits a spendCredits event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SpendCreditsParams} params Event configuration parameters\n */\nconst spendCredits = (\n provider: GoogleAnalyticsProvider,\n params: SpendCreditsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, amount, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"spend_credits\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SpendCreditsParams } from \"./spendCredits.types\";\n\n/**\n * Emits a spendCredits event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SpendCreditsParams} params Event configuration parameters\n */\nconst spendCredits = (\n provider: FacebookPixelProvider,\n params: SpendCreditsParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, amount, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"SpendCredits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SpendCreditsParams } from \"./spendCredits.types\";\n\n/**\n * Emits a spendCredits event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SpendCreditsParams} params Event configuration parameters\n */\nconst spendCredits = (\n provider: SegmentProvider,\n params: SpendCreditsParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, amount, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency,\n amount,\n value: amount\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Spend Credits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendCredits;\n","import googleSpendCredits from \"../../../providers/GoogleAnalytics/events/credit/spendCredits/spendCredits\";\nimport facebookSpendCredits from \"../../../providers/FacebookPixel/events/credit/spendCredits/spendCredits\";\nimport segmentSpendCredits from \"../../../providers/Segment/events/credit/spendCredits/spendCredits\";\nimport { SpendCreditsParams } from \"./spendCredits.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a spendCredits event to every configured provider.\n *\n * Log this event when users spend their credits.\n *\n * @since 0.1.0\n * @property {SpendCreditsParams} params SpendCredits event parameters\n */\nconst logSpendCredits = (params: SpendCreditsParams) => {\n triageEventToProviders(\"spendCredits\", params, {\n googleAnalyticsHandler: googleSpendCredits,\n facebookPixelHandler: facebookSpendCredits,\n segmentHandler: segmentSpendCredits\n });\n};\n\nexport default logSpendCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewCreditsParams } from \"./viewCredits.types\";\n\n/**\n * Emits a viewCredits event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewCreditsParams} params Event configuration parameters\n */\nconst viewCredits = (\n provider: GoogleAnalyticsProvider,\n params: ViewCreditsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_credits\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewCreditsParams } from \"./viewCredits.types\";\n\n/**\n * Emits a viewCredits event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewCreditsParams} params Event configuration parameters\n */\nconst viewCredits = (\n provider: FacebookPixelProvider,\n params: ViewCreditsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = {\n ...rest\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewCredits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCredits;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewCreditsParams } from \"./viewCredits.types\";\n\n/**\n * Emits a viewCredits event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewCreditsParams} params Event configuration parameters\n */\nconst viewCredits = (provider: SegmentProvider, params: ViewCreditsParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = {\n ...rest\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Credits\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCredits;\n","import googleViewCredits from \"../../../providers/GoogleAnalytics/events/credit/viewCredits/viewCredits\";\nimport facebookViewCredits from \"../../../providers/FacebookPixel/events/credit/viewCredits/viewCredits\";\nimport segmentViewCredits from \"../../../providers/Segment/events/credit/viewCredits/viewCredits\";\nimport { ViewCreditsParams } from \"./viewCredits.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewCredits event to every configured provider.\n *\n * Log this event when users see how much credits they have.\n *\n * @since 0.1.0\n * @property {ViewCreditsParams} params ViewCredits event parameters\n */\nconst logViewCredits = (params: ViewCreditsParams) => {\n triageEventToProviders(\"viewCredits\", params, {\n googleAnalyticsHandler: googleViewCredits,\n facebookPixelHandler: facebookViewCredits,\n segmentHandler: segmentViewCredits\n });\n};\n\nexport default logViewCredits;\n","// events index\nimport logAddCredits from \"./addCredits/addCredits\";\nimport logSpendCredits from \"./spendCredits/spendCredits\";\nimport logViewCredits from \"./viewCredits/viewCredits\";\n\nconst events = { logAddCredits, logSpendCredits, logViewCredits };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../GoogleAnalytics.types\";\nimport { CustomEventParams } from \"./customEvent.types\";\n\n/**\n * Emits a customEvent event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CustomEventParams} params Event configuration parameters\n */\nconst customEvent = (\n eventName: string,\n provider: GoogleAnalyticsProvider,\n params: CustomEventParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", eventName, {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n artisn_event: \"custom_event\",\n ...transformedMeta\n });\n};\n\nexport default customEvent;\n","import { eventParamsToSnakeCase } from \"../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../FacebookPixel.types\";\nimport { CustomEventParams } from \"./customEvent.types\";\n\n/**\n * Emits a customEvent event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CustomEventParams} params Event configuration parameters\n */\nconst customEvent = (\n eventName: string,\n provider: FacebookPixelProvider,\n params: CustomEventParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, eventName, {\n ...transformedParams,\n artisn_event: \"CustomEvent\",\n ...transformedMeta\n });\n};\n\nexport default customEvent;\n","import { eventParamsToSnakeCase } from \"../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../Segment.types\";\nimport { CustomEventParams } from \"./customEvent.types\";\n\n/**\n * Emits a customEvent event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CustomEventParams} params Event configuration parameters\n */\nconst customEvent = (\n eventName: string,\n provider: SegmentProvider,\n params: CustomEventParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(eventName, {\n ...transformedParams,\n artisn_event: \"Custom Event\",\n ...transformedMeta\n });\n};\n\nexport default customEvent;\n","import googleCustomEvent from \"../../providers/GoogleAnalytics/events/customEvent/customEvent\";\nimport facebookCustomEvent from \"../../providers/FacebookPixel/events/customEvent/customEvent\";\nimport segmentCustomEvent from \"../../providers/Segment/events/customEvent/customEvent\";\nimport { CustomEventParams } from \"./customEvent.types\";\nimport { triageEventToProviders } from \"../../../utils/events.utils\";\n\n/**\n * Emits a customEvent event to every configured provider.\n *\n * Log this event when\n *\n * @since 0.1.0\n * @param {string} eventName The name of the custom event\n * @param {CustomEventParams} params CustomEvent event parameters\n */\nconst logCustomEvent = (eventName: string, params: CustomEventParams = {}) => {\n triageEventToProviders(eventName, params, {\n googleAnalyticsHandler: (provider, params) =>\n googleCustomEvent(eventName, provider, params),\n facebookPixelHandler: (provider, params) =>\n facebookCustomEvent(eventName, provider, params),\n segmentHandler: (provider, params) =>\n segmentCustomEvent(eventName, provider, params)\n });\n};\n\nexport default logCustomEvent;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewFulfillmentStepParams } from \"./viewFulfillmentStep.types\";\n\n/**\n * Emits a viewFulfillmentStep event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewFulfillmentStepParams} params Event configuration parameters\n */\nconst viewFulfillmentStep = (\n provider: GoogleAnalyticsProvider,\n params: ViewFulfillmentStepParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_fulfillment_step\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewFulfillmentStep;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewFulfillmentStepParams } from \"./viewFulfillmentStep.types\";\n\n/**\n * Emits a viewFulfillmentStep.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewFulfillmentStepParams} params Event configuration parameters\n */\nconst viewFulfillmentStep = (\n provider: FacebookPixelProvider,\n params: ViewFulfillmentStepParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewFulfillmentStep\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewFulfillmentStep;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewFulfillmentStepParams } from \"./viewFulfillmentStep.types\";\n\n/**\n * Emits a viewFulfillmentStep.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewFulfillmentStepParams} params Event configuration parameters\n */\nconst viewFulfillmentStep = (\n provider: SegmentProvider,\n params: ViewFulfillmentStepParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Fulfillment Step\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewFulfillmentStep;\n","import googleViewFulfillmentStep from \"../../../providers/GoogleAnalytics/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep\";\nimport facebookViewFulfillmentStep from \"../../../providers/FacebookPixel/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep\";\nimport segmentViewFulfillmentStep from \"../../../providers/Segment/events/fulfillment/viewFulfillmentStep/viewFulfillmentStep\";\nimport { ViewFulfillmentStepParams } from \"./viewFulfillmentStep.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewFulfillmentStep event to every configured provider.\n *\n * Log this event when users see what step the order is in.\n *\n * @since 0.1.0\n * @property {ViewFulfillmentStepParams} params ViewFulfillmentStep event parameters\n */\nconst logViewFulfillmentStep = (params: ViewFulfillmentStepParams) => {\n triageEventToProviders(\"viewFulfillmentStep\", params, {\n googleAnalyticsHandler: googleViewFulfillmentStep,\n facebookPixelHandler: facebookViewFulfillmentStep,\n segmentHandler: segmentViewFulfillmentStep\n });\n};\n\nexport default logViewFulfillmentStep;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewTrackingParams } from \"./viewTracking.types\";\n\n/**\n * Emits a viewTracking event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewTrackingParams} params Event configuration parameters\n */\nconst viewTracking = (\n provider: GoogleAnalyticsProvider,\n params: ViewTrackingParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_tracking\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewTracking;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewTrackingParams } from \"./viewTracking.types\";\n\n/**\n * Emits a viewTracking event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewTrackingParams} params Event configuration parameters\n */\nconst viewTracking = (\n provider: FacebookPixelProvider,\n params: ViewTrackingParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewTracking\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewTracking;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewTrackingParams } from \"./viewTracking.types\";\n\n/**\n * Emits a viewTracking event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewTrackingParams} params Event configuration parameters\n */\nconst viewTracking = (\n provider: SegmentProvider,\n params: ViewTrackingParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Tracking\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewTracking;\n","import googleViewTracking from \"../../../providers/GoogleAnalytics/events/fulfillment/viewTracking/viewTracking\";\nimport facebookViewTracking from \"../../../providers/FacebookPixel/events/fulfillment/viewTracking/viewTracking\";\nimport segmentViewTracking from \"../../../providers/Segment/events/fulfillment/viewTracking/viewTracking\";\nimport { ViewTrackingParams } from \"./viewTracking.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewTracking event to every configured provider.\n *\n * Log this event when users see where the delivery man is on the map.\n *\n * @since 0.1.0\n * @property {ViewTrackingParams} params ViewTracking event parameters\n */\nconst logViewTracking = (params: ViewTrackingParams) => {\n triageEventToProviders(\"viewTracking\", params, {\n googleAnalyticsHandler: googleViewTracking,\n facebookPixelHandler: facebookViewTracking,\n segmentHandler: segmentViewTracking\n });\n};\n\nexport default logViewTracking;\n","// events index\nimport logViewFulfillmentStep from \"./viewFulfillmentStep/viewFulfillmentStep\";\nimport logViewTracking from \"./viewTracking/viewTracking\";\n\nconst events = { logViewFulfillmentStep, logViewTracking };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangeLocationParams } from \"./changeLocation.types\";\n\n/**\n * Emits a changeLocation event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangeLocationParams} params Event configuration parameters\n */\nconst changeLocation = (\n provider: GoogleAnalyticsProvider,\n params: ChangeLocationParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_location\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangeLocationParams } from \"./changeLocation.types\";\n\n/**\n * Emits a changeLocation event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangeLocationParams} params Event configuration parameters\n */\nconst changeLocation = (\n provider: FacebookPixelProvider,\n params: ChangeLocationParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangeLocation\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangeLocationParams } from \"./changeLocation.types\";\n\n/**\n * Emits a changeLocation event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangeLocationParams} params Event configuration parameters\n */\nconst changeLocation = (\n provider: SegmentProvider,\n params: ChangeLocationParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Location\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeLocation;\n","import googleChangeLocation from \"../../../providers/GoogleAnalytics/events/geo/changeLocation/changeLocation\";\nimport facebookChangeLocation from \"../../../providers/FacebookPixel/events/geo/changeLocation/changeLocation\";\nimport segmentChangeLocation from \"../../../providers/Segment/events/geo/changeLocation/changeLocation\";\nimport { ChangeLocationParams } from \"./changeLocation.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changeLocation event to every configured provider.\n *\n * Log this event when users change their location.\n *\n * @since 0.1.0\n * @property {ChangeLocationParams} params ChangeLocation event parameters\n */\nconst logChangeLocation = (params: ChangeLocationParams = {}) => {\n triageEventToProviders(\"changeLocation\", params, {\n googleAnalyticsHandler: googleChangeLocation,\n facebookPixelHandler: facebookChangeLocation,\n segmentHandler: segmentChangeLocation\n });\n};\n\nexport default logChangeLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { FindLocationParams } from \"./findLocation.types\";\n\n/**\n * Emits a findLocation event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {FindLocationParams} params Event configuration parameters\n */\nconst findLocation = (\n provider: GoogleAnalyticsProvider,\n params: FindLocationParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"find_location\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default findLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { FindLocationParams } from \"./findLocation.types\";\n\n/**\n * Emits a findLocation event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {FindLocationParams} params Event configuration parameters\n */\nconst findLocation = (\n provider: FacebookPixelProvider,\n params: FindLocationParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"FindLocation\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default findLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { FindLocationParams } from \"./findLocation.types\";\n\n/**\n * Emits a findLocation event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {FindLocationParams} params Event configuration parameters\n */\nconst findLocation = (\n provider: SegmentProvider,\n params: FindLocationParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Find Location\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default findLocation;\n","import googleFindLocation from \"../../../providers/GoogleAnalytics/events/geo/findLocation/findLocation\";\nimport facebookFindLocation from \"../../../providers/FacebookPixel/events/geo/findLocation/findLocation\";\nimport segmentFindLocation from \"../../../providers/Segment/events/geo/findLocation/findLocation\";\nimport { FindLocationParams } from \"./findLocation.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a findLocation event to every configured provider.\n *\n * Log this event after users have searched for a location.\n *\n * @since 0.1.0\n * @property {FindLocationParams} params FindLocation event parameters\n */\nconst logFindLocation = (params: FindLocationParams = {}) => {\n triageEventToProviders(\"findLocation\", params, {\n googleAnalyticsHandler: googleFindLocation,\n facebookPixelHandler: facebookFindLocation,\n segmentHandler: segmentFindLocation\n });\n};\n\nexport default logFindLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { OutOfCoverageParams } from \"./outOfCoverage.types\";\n\n/**\n * Emits a outOfCoverage event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {OutOfCoverageParams} params Event configuration parameters\n */\nconst outOfCoverage = (\n provider: GoogleAnalyticsProvider,\n params: OutOfCoverageParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"out_of_coverage\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default outOfCoverage;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { OutOfCoverageParams } from \"./outOfCoverage.types\";\n\n/**\n * Emits a outOfCoverage event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {OutOfCoverageParams} params Event configuration parameters\n */\nconst outOfCoverage = (\n provider: FacebookPixelProvider,\n params: OutOfCoverageParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"OutOfCoverage\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default outOfCoverage;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { OutOfCoverageParams } from \"./outOfCoverage.types\";\n\n/**\n * Emits a outOfCoverage event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {OutOfCoverageParams} params Event configuration parameters\n */\nconst outOfCoverage = (\n provider: SegmentProvider,\n params: OutOfCoverageParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Out Of Coverage\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default outOfCoverage;\n","import googleOutOfCoverage from \"../../../providers/GoogleAnalytics/events/geo/outOfCoverage/outOfCoverage\";\nimport facebookOutOfCoverage from \"../../../providers/FacebookPixel/events/geo/outOfCoverage/outOfCoverage\";\nimport segmentOutOfCoverage from \"../../../providers/Segment/events/geo/outOfCoverage/outOfCoverage\";\nimport { OutOfCoverageParams } from \"./outOfCoverage.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a outOfCoverage event to every configured provider.\n *\n * Log this event when users are in a location out of coverage.\n *\n * @since 0.1.0\n * @property {OutOfCoverageParams} params OutOfCoverage event parameters\n */\nconst logOutOfCoverage = (params: OutOfCoverageParams = {}) => {\n triageEventToProviders(\"outOfCoverage\", params, {\n googleAnalyticsHandler: googleOutOfCoverage,\n facebookPixelHandler: facebookOutOfCoverage,\n segmentHandler: segmentOutOfCoverage\n });\n};\n\nexport default logOutOfCoverage;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SetLocationParams } from \"./setLocation.types\";\n\n/**\n * Emits a setLocation event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SetLocationParams} params Event configuration parameters\n */\nconst setLocation = (\n provider: GoogleAnalyticsProvider,\n params: SetLocationParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"set_location\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SetLocationParams } from \"./setLocation.types\";\n\n/**\n * Emits a setLocation event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SetLocationParams} params Event configuration parameters\n */\nconst setLocation = (\n provider: FacebookPixelProvider,\n params: SetLocationParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SetLocation\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setLocation;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SetLocationParams } from \"./setLocation.types\";\n\n/**\n * Emits a setLocation event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SetLocationParams} params Event configuration parameters\n */\nconst setLocation = (provider: SegmentProvider, params: SetLocationParams) => {\n const { lat, lng, ...rest } = params;\n delete rest.userId;\n const location = lat && lng ? `${lat}, ${lng}` : \"Not available\";\n const enhancedParams = { ...rest, location };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Set Location\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setLocation;\n","import googleSetLocation from \"../../../providers/GoogleAnalytics/events/geo/setLocation/setLocation\";\nimport facebookSetLocation from \"../../../providers/FacebookPixel/events/geo/setLocation/setLocation\";\nimport segmentSetLocation from \"../../../providers/Segment/events/geo/setLocation/setLocation\";\nimport { SetLocationParams } from \"./setLocation.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a setLocation event to every configured provider.\n *\n * Log this event when users set their location.\n *\n * @since 0.1.0\n * @property {SetLocationParams} params SetLocation event parameters\n */\nconst logSetLocation = (params: SetLocationParams = {}) => {\n triageEventToProviders(\"setLocation\", params, {\n googleAnalyticsHandler: googleSetLocation,\n facebookPixelHandler: facebookSetLocation,\n segmentHandler: segmentSetLocation\n });\n};\n\nexport default logSetLocation;\n","// events index\nimport logChangeLocation from \"./changeLocation/changeLocation\";\nimport logFindLocation from \"./findLocation/findLocation\";\nimport logOutOfCoverage from \"./outOfCoverage/outOfCoverage\";\nimport logSetLocation from \"./setLocation/setLocation\";\n\nconst events = {\n logChangeLocation,\n logFindLocation,\n logOutOfCoverage,\n logSetLocation\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RequestAssistanceParams } from \"./requestAssistance.types\";\n\n/**\n * Emits a requestAssistance event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RequestAssistanceParams} params Event configuration parameters\n */\nconst requestAssistance = (\n provider: GoogleAnalyticsProvider,\n params: RequestAssistanceParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"request_assistance\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestAssistance;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RequestAssistanceParams } from \"./requestAssistance.types\";\n\n/**\n * Emits a requestAssistance event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RequestAssistanceParams} params Event configuration parameters\n */\nconst requestAssistance = (\n provider: FacebookPixelProvider,\n params: RequestAssistanceParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Contact\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestAssistance;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RequestAssistanceParams } from \"./requestAssistance.types\";\n\n/**\n * Emits a requestAssistance event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RequestAssistanceParams} params Event configuration parameters\n */\nconst requestAssistance = (\n provider: SegmentProvider,\n params: RequestAssistanceParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Request Assistance\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestAssistance;\n","import googleRequestAssistance from \"../../../providers/GoogleAnalytics/events/help/requestAssistance/requestAssistance\";\nimport facebookRequestAssistance from \"../../../providers/FacebookPixel/events/help/requestAssistance/requestAssistance\";\nimport segmentRequestAssistance from \"../../../providers/Segment/events/help/requestAssistance/requestAssistance\";\nimport { RequestAssistanceParams } from \"./requestAssistance.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a requestAssistance event to every configured provider.\n *\n * Log this event when users try to contact the business by phone/SMS, email,\n * chat, or other means.\n *\n * @since 0.1.0\n * @property {RequestAssistanceParams} params RequestAssistance event parameters\n */\nconst logRequestAssistance = (params: RequestAssistanceParams) => {\n triageEventToProviders(\"requestAssistance\", params, {\n googleAnalyticsHandler: googleRequestAssistance,\n facebookPixelHandler: facebookRequestAssistance,\n segmentHandler: segmentRequestAssistance\n });\n};\n\nexport default logRequestAssistance;\n","// events index\nimport logRequestAssistance from \"./requestAssistance/requestAssistance\";\n\nconst events = { logRequestAssistance };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { EarnPointsParams } from \"./earnPoints.types\";\n\n/**\n * Emits a earnPoints event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {EarnPointsParams} params Event configuration parameters\n */\nconst earnPoints = (\n provider: GoogleAnalyticsProvider,\n params: EarnPointsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, currencyName, amount, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"earn_virtual_currency\", {\n send_to: trackingId,\n event_callback: callback,\n virtual_currency_name: currencyName,\n value: amount,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default earnPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { EarnPointsParams } from \"./earnPoints.types\";\n\n/**\n * Emits a earnPoints event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {EarnPointsParams} params Event configuration parameters\n */\nconst earnPoints = (\n provider: FacebookPixelProvider,\n params: EarnPointsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"EarnPoints\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default earnPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { EarnPointsParams } from \"./earnPoints.types\";\n\n/**\n * Emits a earnPoints event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {EarnPointsParams} params Event configuration parameters\n */\nconst earnPoints = (provider: SegmentProvider, params: EarnPointsParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Earn Points\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default earnPoints;\n","import googleEarnPoints from \"../../../providers/GoogleAnalytics/events/loyalty/earnPoints/earnPoints\";\nimport facebookEarnPoints from \"../../../providers/FacebookPixel/events/loyalty/earnPoints/earnPoints\";\nimport segmentEarnPoints from \"../../../providers/Segment/events/loyalty/earnPoints/earnPoints\";\nimport { EarnPointsParams } from \"./earnPoints.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a earnPoints event to every configured provider.\n *\n * Log this event when users earn points.\n *\n * @since 0.1.0\n * @property {EarnPointsParams} params EarnPoints event parameters\n */\nconst logEarnPoints = (params: EarnPointsParams) => {\n triageEventToProviders(\"earnPoints\", params, {\n googleAnalyticsHandler: googleEarnPoints,\n facebookPixelHandler: facebookEarnPoints,\n segmentHandler: segmentEarnPoints\n });\n};\n\nexport default logEarnPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SharePointsParams } from \"./sharePoints.types\";\n\n/**\n * Emits a sharePoints event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SharePointsParams} params Event configuration parameters\n */\nconst sharePoints = (\n provider: GoogleAnalyticsProvider,\n params: SharePointsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"share_points\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sharePoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SharePointsParams } from \"./sharePoints.types\";\n\n/**\n * Emits a sharePoints event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SharePointsParams} params Event configuration parameters\n */\nconst sharePoints = (\n provider: FacebookPixelProvider,\n params: SharePointsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SharePoints\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sharePoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SharePointsParams } from \"./sharePoints.types\";\n\n/**\n * Emits a sharePoints event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SharePointsParams} params Event configuration parameters\n */\nconst sharePoints = (provider: SegmentProvider, params: SharePointsParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Share Points\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sharePoints;\n","import googleSharePoints from \"../../../providers/GoogleAnalytics/events/loyalty/sharePoints/sharePoints\";\nimport facebookSharePoints from \"../../../providers/FacebookPixel/events/loyalty/sharePoints/sharePoints\";\nimport segmentSharePoints from \"../../../providers/Segment/events/loyalty/sharePoints/sharePoints\";\nimport { SharePointsParams } from \"./sharePoints.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a sharePoints event to every configured provider.\n *\n * Log this event when users share their points.\n *\n * @since 0.1.0\n * @property {SharePointsParams} params SharePoints event parameters\n */\nconst logSharePoints = (params: SharePointsParams) => {\n triageEventToProviders(\"sharePoints\", params, {\n googleAnalyticsHandler: googleSharePoints,\n facebookPixelHandler: facebookSharePoints,\n segmentHandler: segmentSharePoints\n });\n};\n\nexport default logSharePoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SpendPointsParams } from \"./spendPoints.types\";\n\n/**\n * Emits a spendPoints event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SpendPointsParams} params Event configuration parameters\n */\nconst spendPoints = (\n provider: GoogleAnalyticsProvider,\n params: SpendPointsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, currencyName, amount, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"spend_virtual_currency\", {\n send_to: trackingId,\n event_callback: callback,\n virtual_currency_name: currencyName,\n value: amount,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SpendPointsParams } from \"./spendPoints.types\";\n\n/**\n * Emits a spendPoints event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SpendPointsParams} params Event configuration parameters\n */\nconst spendPoints = (\n provider: FacebookPixelProvider,\n params: SpendPointsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SpendPoints\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SpendPointsParams } from \"./spendPoints.types\";\n\n/**\n * Emits a spendPoints event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SpendPointsParams} params Event configuration parameters\n */\nconst spendPoints = (provider: SegmentProvider, params: SpendPointsParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Spend Points\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default spendPoints;\n","import googleSpendPoints from \"../../../providers/GoogleAnalytics/events/loyalty/spendPoints/spendPoints\";\nimport facebookSpendPoints from \"../../../providers/FacebookPixel/events/loyalty/spendPoints/spendPoints\";\nimport segmentSpendPoints from \"../../../providers/Segment/events/loyalty/spendPoints/spendPoints\";\nimport { SpendPointsParams } from \"./spendPoints.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a spendPoints event to every configured provider.\n *\n * Log this event when users spend their points.\n *\n * @since 0.1.0\n * @property {SpendPointsParams} params SpendPoints event parameters\n */\nconst logSpendPoints = (params: SpendPointsParams) => {\n triageEventToProviders(\"spendPoints\", params, {\n googleAnalyticsHandler: googleSpendPoints,\n facebookPixelHandler: facebookSpendPoints,\n segmentHandler: segmentSpendPoints\n });\n};\n\nexport default logSpendPoints;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewLoyaltyLevelParams } from \"./viewLoyaltyLevel.types\";\n\n/**\n * Emits a viewLoyaltyLevel event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewLoyaltyLevelParams} params Event configuration parameters\n */\nconst viewLoyaltyLevel = (\n provider: GoogleAnalyticsProvider,\n params: ViewLoyaltyLevelParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_loyalty_level\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewLoyaltyLevel;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewLoyaltyLevelParams } from \"./viewLoyaltyLevel.types\";\n\n/**\n * Emits a viewLoyaltyLevel event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewLoyaltyLevelParams} params Event configuration parameters\n */\nconst viewLoyaltyLevel = (\n provider: FacebookPixelProvider,\n params: ViewLoyaltyLevelParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewLoyaltyLevel\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewLoyaltyLevel;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewLoyaltyLevelParams } from \"./viewLoyaltyLevel.types\";\n\n/**\n * Emits a viewLoyaltyLevel event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewLoyaltyLevelParams} params Event configuration parameters\n */\nconst viewLoyaltyLevel = (\n provider: SegmentProvider,\n params: ViewLoyaltyLevelParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Loyalty Level\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewLoyaltyLevel;\n","import googleViewLoyaltyLevel from \"../../../providers/GoogleAnalytics/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel\";\nimport facebookViewLoyaltyLevel from \"../../../providers/FacebookPixel/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel\";\nimport segmentViewLoyaltyLevel from \"../../../providers/Segment/events/loyalty/viewLoyaltyLevel/viewLoyaltyLevel\";\nimport { ViewLoyaltyLevelParams } from \"./viewLoyaltyLevel.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewLoyaltyLevel event to every configured provider.\n *\n * Log this event when users view a loyalty level.\n *\n * @since 0.1.0\n * @property {ViewLoyaltyLevelParams} params ViewLoyaltyLevel event parameters\n */\nconst logViewLoyaltyLevel = (params: ViewLoyaltyLevelParams) => {\n triageEventToProviders(\"viewLoyaltyLevel\", params, {\n googleAnalyticsHandler: googleViewLoyaltyLevel,\n facebookPixelHandler: facebookViewLoyaltyLevel,\n segmentHandler: segmentViewLoyaltyLevel\n });\n};\n\nexport default logViewLoyaltyLevel;\n","// events index\nimport logEarnPoints from \"./earnPoints/earnPoints\";\nimport logSharePoints from \"./sharePoints/sharePoints\";\nimport logSpendPoints from \"./spendPoints/spendPoints\";\nimport logViewLoyaltyLevel from \"./viewLoyaltyLevel/viewLoyaltyLevel\";\n\nconst events = {\n logEarnPoints,\n logSharePoints,\n logSpendPoints,\n logViewLoyaltyLevel\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { CancelOrderParams } from \"./cancelOrder.types\";\n\n/**\n * Emits a cancelOrder event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CancelOrderParams} params Event configuration parameters\n */\nconst cancelOrder = (\n provider: GoogleAnalyticsProvider,\n params: CancelOrderParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"cancel_order\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default cancelOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { CancelOrderParams } from \"./cancelOrder.types\";\n\n/**\n * Emits a cancelOrder event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CancelOrderParams} params Event configuration parameters\n */\nconst cancelOrder = (\n provider: FacebookPixelProvider,\n params: CancelOrderParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"CancelOrder\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default cancelOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { CancelOrderParams } from \"./cancelOrder.types\";\n\n/**\n * Emits a cancelOrder event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CancelOrderParams} params Event configuration parameters\n */\nconst cancelOrder = (provider: SegmentProvider, params: CancelOrderParams) => {\n const { currency: providerCurrency } = provider;\n const { currency, orderTotal, products, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n revenue: orderTotal,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Order Cancelled\", {\n products: mapProductsToSegmentProducts(products),\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default cancelOrder;\n","import googleCancelOrder from \"../../../providers/GoogleAnalytics/events/order/cancelOrder/cancelOrder\";\nimport facebookCancelOrder from \"../../../providers/FacebookPixel/events/order/cancelOrder/cancelOrder\";\nimport segmentCancelOrder from \"../../../providers/Segment/events/order/cancelOrder/cancelOrder\";\nimport { CancelOrderParams } from \"./cancelOrder.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a cancelOrder event to every configured provider.\n *\n * Log this event when users cancel an order.\n *\n * @since 0.1.0\n * @property {CancelOrderParams} params CancelOrder event parameters\n */\nconst logCancelOrder = (params: CancelOrderParams) => {\n triageEventToProviders(\"cancelOrder\", params, {\n googleAnalyticsHandler: googleCancelOrder,\n facebookPixelHandler: facebookCancelOrder,\n segmentHandler: segmentCancelOrder\n });\n};\n\nexport default logCancelOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RateOrderParams } from \"./rateOrder.types\";\n\n/**\n * Emits a rateOrder event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RateOrderParams} params Event configuration parameters\n */\nconst rateOrder = (\n provider: GoogleAnalyticsProvider,\n params: RateOrderParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"rate_order\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default rateOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RateOrderParams } from \"./rateOrder.types\";\n\n/**\n * Emits a rateOrder event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RateOrderParams} params Event configuration parameters\n */\nconst rateOrder = (\n provider: FacebookPixelProvider,\n params: RateOrderParams\n) => {\n const { trackingId } = provider;\n const { maxScore, score, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, maxScore, score };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"RateOrder\", {\n max_rating_value: maxScore,\n value: score,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default rateOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RateOrderParams } from \"./rateOrder.types\";\n\n/**\n * Emits a rateOrder event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RateOrderParams} params Event configuration parameters\n */\nconst rateOrder = (provider: SegmentProvider, params: RateOrderParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Rate Order\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default rateOrder;\n","import googleRateOrder from \"../../../providers/GoogleAnalytics/events/order/rateOrder/rateOrder\";\nimport facebookRateOrder from \"../../../providers/FacebookPixel/events/order/rateOrder/rateOrder\";\nimport segmentRateOrder from \"../../../providers/Segment/events/order/rateOrder/rateOrder\";\nimport { RateOrderParams } from \"./rateOrder.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a rateOrder event to every configured provider.\n *\n * Log this event when users rate an order.\n *\n * @since 0.1.0\n * @property {RateOrderParams} params RateOrder event parameters\n */\nconst logRateOrder = (params: RateOrderParams) => {\n triageEventToProviders(\"rateOrder\", params, {\n googleAnalyticsHandler: googleRateOrder,\n facebookPixelHandler: facebookRateOrder,\n segmentHandler: segmentRateOrder\n });\n};\n\nexport default logRateOrder;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RequestRefundParams } from \"./requestRefund.types\";\n\n/**\n * Emits a requestRefund event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RequestRefundParams} params Event configuration parameters\n */\nconst requestRefund = (\n provider: GoogleAnalyticsProvider,\n params: RequestRefundParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, orderId, orderTotal, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"refund\", {\n send_to: trackingId,\n event_callback: callback,\n transaction_id: orderId,\n value: orderTotal,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestRefund;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RequestRefundParams } from \"./requestRefund.types\";\n\n/**\n * Emits a requestRefund event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RequestRefundParams} params Event configuration parameters\n */\nconst requestRefund = (\n provider: FacebookPixelProvider,\n params: RequestRefundParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, orderTotal, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"RequestRefund\", {\n value: orderTotal,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestRefund;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RequestRefundParams } from \"./requestRefund.types\";\n\n/**\n * Emits a requestRefund event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RequestRefundParams} params Event configuration parameters\n */\nconst requestRefund = (\n provider: SegmentProvider,\n params: RequestRefundParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, orderTotal, products, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n revenue: orderTotal,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Order Refunded\", {\n products: mapProductsToSegmentProducts(products),\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default requestRefund;\n","import googleRequestRefund from \"../../../providers/GoogleAnalytics/events/order/requestRefund/requestRefund\";\nimport facebookRequestRefund from \"../../../providers/FacebookPixel/events/order/requestRefund/requestRefund\";\nimport segmentRequestRefund from \"../../../providers/Segment/events/order/requestRefund/requestRefund\";\nimport { RequestRefundParams } from \"./requestRefund.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a requestRefund event to every configured provider.\n *\n * Log this event when users request a refund of the order.\n *\n * @since 0.1.0\n * @property {RequestRefundParams} params RequestRefund event parameters\n */\nconst logRequestRefund = (params: RequestRefundParams) => {\n triageEventToProviders(\"requestRefund\", params, {\n googleAnalyticsHandler: googleRequestRefund,\n facebookPixelHandler: facebookRequestRefund,\n segmentHandler: segmentRequestRefund\n });\n};\n\nexport default logRequestRefund;\n","// events index\nimport logCancelOrder from \"./cancelOrder/cancelOrder\";\nimport logRateOrder from \"./rateOrder/rateOrder\";\nimport logRequestRefund from \"./requestRefund/requestRefund\";\n\nconst events = { logCancelOrder, logRateOrder, logRequestRefund };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { GenerateLeadParams } from \"./generateLead.types\";\n\n/**\n * Emits a generateLead event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {GenerateLeadParams} params Event configuration parameters\n */\nconst generateLead = (\n provider: GoogleAnalyticsProvider,\n params: GenerateLeadParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"generate_lead\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default generateLead;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { GenerateLeadParams } from \"./generateLead.types\";\n\n/**\n * Emits a generateLead event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {GenerateLeadParams} params Event configuration parameters\n */\nconst generateLead = (\n provider: FacebookPixelProvider,\n params: GenerateLeadParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Lead\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default generateLead;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { GenerateLeadParams } from \"./generateLead.types\";\n\n/**\n * Emits a generateLead event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {GenerateLeadParams} params Event configuration parameters\n */\nconst generateLead = (\n provider: SegmentProvider,\n params: GenerateLeadParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Generate Lead\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default generateLead;\n","import googleGenerateLead from \"../../../providers/GoogleAnalytics/events/other/generateLead/generateLead\";\nimport facebookGenerateLead from \"../../../providers/FacebookPixel/events/other/generateLead/generateLead\";\nimport segmentGenerateLead from \"../../../providers/Segment/events/other/generateLead/generateLead\";\nimport { GenerateLeadParams } from \"./generateLead.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a generateLead event to every configured provider.\n *\n * Log this event when users take an action that tells you they can be a lead.\n *\n * @since 0.1.0\n * @property {GenerateLeadParams} params GenerateLead event parameters\n */\nconst logGenerateLead = (params: GenerateLeadParams = {}) => {\n triageEventToProviders(\"generateLead\", params, {\n googleAnalyticsHandler: googleGenerateLead,\n facebookPixelHandler: facebookGenerateLead,\n segmentHandler: segmentGenerateLead\n });\n};\n\nexport default logGenerateLead;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { PageViewParams } from \"./pageView.types\";\n\n/**\n * Emits a pageView event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {PageViewParams} params Event configuration parameters\n */\nconst pageView = (\n provider: FacebookPixelProvider,\n params: PageViewParams = {}\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"PageView\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default pageView;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { PageViewParams } from \"./pageView.types\";\n\n/**\n * Emits a pageView event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {PageViewParams} params Event configuration parameters\n */\nconst pageView = (\n provider: GoogleAnalyticsProvider,\n params: PageViewParams = {}\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { pathname, name, callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"page_view\", {\n page_title: name,\n page_path: pathname,\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default pageView;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { PageViewParams } from \"./pageView.types\";\n\n/**\n * Emits a pageView event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {pageViewParams} params Event configuration parameters\n */\nconst pageView = (provider: SegmentProvider, params: PageViewParams) => {\n const { name, ...rest } = params;\n const transformedParams = eventParamsToSnakeCase(rest);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.page(name, {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default pageView;\n","import facebookPageView from \"../../../providers/FacebookPixel/events/other/pageView/pageView\";\nimport googlePageView from \"../../../providers/GoogleAnalytics/events/other/pageView/pageView\";\nimport pageView from \"../../../providers/Segment/events/other/pageView/pageView\";\nimport { PageViewParams } from \"./pageView.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a pageView event to every configured provider.\n *\n * Log this event when you need to add custom page view that the default page\n * view event does not log.\n *\n * @since 0.1.0\n * @param {PageViewParams} params PageView event parameters\n */\nconst logPageView = (params: PageViewParams) => {\n triageEventToProviders(\"pageView\", params, {\n googleAnalyticsHandler: googlePageView,\n facebookPixelHandler: facebookPageView,\n segmentHandler: pageView\n });\n};\n\nexport default logPageView;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SearchPageContentParams } from \"./searchPageContent.types\";\n\n/**\n * Emits a searchPageContent event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SearchPageContentParams} params Event configuration parameters\n */\nconst searchPageContent = (\n provider: GoogleAnalyticsProvider,\n params: SearchPageContentParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, query, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"search\", {\n send_to: trackingId,\n event_callback: callback,\n search_term: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchPageContent;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SearchPageContentParams } from \"./searchPageContent.types\";\n\n/**\n * Emits a searchPageContent event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SearchPageContentParams} params Event configuration parameters\n */\nconst searchPageContent = (\n provider: FacebookPixelProvider,\n params: SearchPageContentParams\n) => {\n const { trackingId } = provider;\n const { query, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Search\", {\n search_string: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchPageContent;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SearchPageContentParams } from \"./searchPageContent.types\";\n\n/**\n * Emits a searchPageContent event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SearchPageContentParams} params Event configuration parameters\n */\nconst searchPageContent = (\n provider: SegmentProvider,\n params: SearchPageContentParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Search Page Content\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchPageContent;\n","import googleSearchPageContent from \"../../../providers/GoogleAnalytics/events/other/searchPageContent/searchPageContent\";\nimport facebookSearchPageContent from \"../../../providers/FacebookPixel/events/other/searchPageContent/searchPageContent\";\nimport segmentSearchPageContent from \"../../../providers/Segment/events/other/searchPageContent/searchPageContent\";\nimport { SearchPageContentParams } from \"./searchPageContent.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a searchPageContent event to every configured provider.\n *\n * Log this event when users search for any content in the application.\n *\n * @since 0.1.0\n * @property {SearchPageContentParams} params SearchPageContent event parameters\n */\nconst logSearchPageContent = (params: SearchPageContentParams) => {\n triageEventToProviders(\"searchPageContent\", params, {\n googleAnalyticsHandler: googleSearchPageContent,\n facebookPixelHandler: facebookSearchPageContent,\n segmentHandler: segmentSearchPageContent\n });\n};\n\nexport default logSearchPageContent;\n","// events index\nimport logGenerateLead from \"./generateLead/generateLead\";\nimport logPageView from \"./pageView/pageView\";\nimport logSearchPageContent from \"./searchPageContent/searchPageContent\";\n\nconst events = { logGenerateLead, logPageView, logSearchPageContent };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangePaymentTypeParams } from \"./changePaymentType.types\";\n\n/**\n * Emits a changePaymentType event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangePaymentTypeParams} params Event configuration parameters\n */\nconst changePaymentType = (\n provider: GoogleAnalyticsProvider,\n params: ChangePaymentTypeParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_payment_type\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangePaymentTypeParams } from \"./changePaymentType.types\";\n\n/**\n * Emits a changePaymentType event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangePaymentTypeParams} params Event configuration parameters\n */\nconst changePaymentType = (\n provider: FacebookPixelProvider,\n params: ChangePaymentTypeParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangePaymentType\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangePaymentTypeParams } from \"./changePaymentType.types\";\n\n/**\n * Emits a changePaymentType event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangePaymentTypeParams} params Event configuration parameters\n */\nconst changePaymentType = (\n provider: SegmentProvider,\n params: ChangePaymentTypeParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Payment Type\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changePaymentType;\n","import googleChangePaymentType from \"../../../providers/GoogleAnalytics/events/payment/changePaymentType/changePaymentType\";\nimport facebookChangePaymentType from \"../../../providers/FacebookPixel/events/payment/changePaymentType/changePaymentType\";\nimport segmentChangePaymentType from \"../../../providers/Segment/events/payment/changePaymentType/changePaymentType\";\nimport { ChangePaymentTypeParams } from \"./changePaymentType.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changePaymentType event to every configured provider.\n *\n * Log this event when users change the payment type.\n *\n * @since 0.1.0\n * @property {ChangePaymentTypeParams} params ChangePaymentType event parameters\n */\nconst logChangePaymentType = (params: ChangePaymentTypeParams) => {\n triageEventToProviders(\"changePaymentType\", params, {\n googleAnalyticsHandler: googleChangePaymentType,\n facebookPixelHandler: facebookChangePaymentType,\n segmentHandler: segmentChangePaymentType\n });\n};\n\nexport default logChangePaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectPaymentTypeParams } from \"./selectPaymentType.types\";\n\n/**\n * Emits a selectPaymentType event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectPaymentTypeParams} params Event configuration parameters\n */\nconst selectPaymentType = (\n provider: GoogleAnalyticsProvider,\n params: SelectPaymentTypeParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_payment_type\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectPaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectPaymentTypeParams } from \"./selectPaymentType.types\";\n\n/**\n * Emits a selectPaymentType event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectPaymentTypeParams} params Event configuration parameters\n */\nconst selectPaymentType = (\n provider: FacebookPixelProvider,\n params: SelectPaymentTypeParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectPaymentType\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectPaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectPaymentTypeParams } from \"./selectPaymentType.types\";\n\n/**\n * Emits a selectPaymentType event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectPaymentTypeParams} params Event configuration parameters\n */\nconst selectPaymentType = (\n provider: SegmentProvider,\n params: SelectPaymentTypeParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Select Payment Type\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectPaymentType;\n","import googleSelectPaymentType from \"../../../providers/GoogleAnalytics/events/payment/selectPaymentType/selectPaymentType\";\nimport facebookSelectPaymentType from \"../../../providers/FacebookPixel/events/payment/selectPaymentType/selectPaymentType\";\nimport segmentSelectPaymentType from \"../../../providers/Segment/events/payment/selectPaymentType/selectPaymentType\";\nimport { SelectPaymentTypeParams } from \"./selectPaymentType.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectPaymentType event to every configured provider.\n *\n * Log this event when users select the payment type.\n *\n * @since 0.1.0\n * @property {SelectPaymentTypeParams} params SelectPaymentType event parameters\n */\nconst logSelectPaymentType = (params: SelectPaymentTypeParams) => {\n triageEventToProviders(\"selectPaymentType\", params, {\n googleAnalyticsHandler: googleSelectPaymentType,\n facebookPixelHandler: facebookSelectPaymentType,\n segmentHandler: segmentSelectPaymentType\n });\n};\n\nexport default logSelectPaymentType;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SetPaymentInfoParams } from \"./setPaymentInfo.types\";\n\n/**\n * Emits a setPaymentInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SetPaymentInfoParams} params Event configuration parameters\n */\nconst setPaymentInfo = (\n provider: GoogleAnalyticsProvider,\n params: SetPaymentInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"add_payment_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setPaymentInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SetPaymentInfoParams } from \"./setPaymentInfo.types\";\n\n/**\n * Emits a setPaymentInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SetPaymentInfoParams} params Event configuration parameters\n */\nconst setPaymentInfo = (\n provider: FacebookPixelProvider,\n params: SetPaymentInfoParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"AddPaymentInfo\", {\n success: 1,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setPaymentInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SetPaymentInfoParams } from \"./setPaymentInfo.types\";\n\n/**\n * Emits a setPaymentInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SetPaymentInfoParams} params Event configuration parameters\n */\nconst setPaymentInfo = (\n provider: SegmentProvider,\n params: SetPaymentInfoParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Set Payment Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setPaymentInfo;\n","import googleSetPaymentInfo from \"../../../providers/GoogleAnalytics/events/payment/setPaymentInfo/setPaymentInfo\";\nimport facebookSetPaymentInfo from \"../../../providers/FacebookPixel/events/payment/setPaymentInfo/setPaymentInfo\";\nimport segmentSetPaymentInfo from \"../../../providers/Segment/events/payment/setPaymentInfo/setPaymentInfo\";\nimport { SetPaymentInfoParams } from \"./setPaymentInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a setPaymentInfo event to every configured provider.\n *\n * Log this event when users set the payment type for the first time.\n *\n * @since 0.1.0\n * @property {SetPaymentInfoParams} params SetPaymentInfo event parameters\n */\nconst logSetPaymentInfo = (params: SetPaymentInfoParams) => {\n triageEventToProviders(\"setPaymentInfo\", params, {\n googleAnalyticsHandler: googleSetPaymentInfo,\n facebookPixelHandler: facebookSetPaymentInfo,\n segmentHandler: segmentSetPaymentInfo\n });\n};\n\nexport default logSetPaymentInfo;\n","// events index\nimport logChangePaymentType from \"./changePaymentType/changePaymentType\";\nimport logSelectPaymentType from \"./selectPaymentType/selectPaymentType\";\nimport logSetPaymentInfo from \"./setPaymentInfo/setPaymentInfo\";\n\nconst events = {\n logChangePaymentType,\n logSelectPaymentType,\n logSetPaymentInfo\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { CustomizeProductParams } from \"./customizeProduct.types\";\n\n/**\n * Emits a customizeProduct event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {CustomizeProductParams} params Event configuration parameters\n */\nconst customizeProduct = (\n provider: GoogleAnalyticsProvider,\n params: CustomizeProductParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, product, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"customize_product\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default customizeProduct;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { CustomizeProductParams } from \"./customizeProduct.types\";\n\n/**\n * Emits a customizeProduct event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {CustomizeProductParams} params Event configuration parameters\n */\nconst customizeProduct = (\n provider: FacebookPixelProvider,\n params: CustomizeProductParams\n) => {\n const { trackingId } = provider;\n const { product, ...rest } = params;\n delete rest.userId;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n productId,\n productName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"CustomizeProduct\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default customizeProduct;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { CustomizeProductParams } from \"./customizeProduct.types\";\n\n/**\n * Emits a customizeProduct event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {CustomizeProductParams} params Event configuration parameters\n */\nconst customizeProduct = (\n provider: SegmentProvider,\n params: CustomizeProductParams\n) => {\n const { product, ...rest } = params;\n delete rest.userId;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n productId,\n productName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Customize Product\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default customizeProduct;\n","import googleCustomizeProduct from \"../../../providers/GoogleAnalytics/events/product/customizeProduct/customizeProduct\";\nimport facebookCustomizeProduct from \"../../../providers/FacebookPixel/events/product/customizeProduct/customizeProduct\";\nimport segmentCustomizeProduct from \"../../../providers/Segment/events/product/customizeProduct/customizeProduct\";\nimport { CustomizeProductParams } from \"./customizeProduct.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a customizeProduct event to every configured provider.\n *\n * Log this event when users add extras to the base offered product.\n *\n * @since 0.1.0\n * @property {CustomizeProductParams} params CustomizeProduct event parameters\n */\nconst logCustomizeProduct = (params: CustomizeProductParams) => {\n triageEventToProviders(\"customizeProduct\", params, {\n googleAnalyticsHandler: googleCustomizeProduct,\n facebookPixelHandler: facebookCustomizeProduct,\n segmentHandler: segmentCustomizeProduct\n });\n};\n\nexport default logCustomizeProduct;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { FilterProductsParams } from \"./filterProducts.types\";\n\n/**\n * Emits a filterProducts event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {FilterProductsParams} params Event configuration parameters\n */\nconst filterProducts = (\n provider: GoogleAnalyticsProvider,\n params: FilterProductsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"filter_products\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default filterProducts;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { FilterProductsParams } from \"./filterProducts.types\";\n\n/**\n * Emits a filterProducts event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {FilterProductsParams} params Event configuration parameters\n */\nconst filterProducts = (\n provider: FacebookPixelProvider,\n params: FilterProductsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"FilterProducts\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default filterProducts;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { FilterProductsParams } from \"./filterProducts.types\";\n\n/**\n * Emits a filterProducts event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {FilterProductsParams} params Event configuration parameters\n */\nconst filterProducts = (\n provider: SegmentProvider,\n params: FilterProductsParams\n) => {\n const { filterBy, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, filterBy: transformArrayParam(filterBy) };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Filter Products\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default filterProducts;\n","import googleFilterProducts from \"../../../providers/GoogleAnalytics/events/product/filterProducts/filterProducts\";\nimport facebookFilterProducts from \"../../../providers/FacebookPixel/events/product/filterProducts/filterProducts\";\nimport segmentFilterProducts from \"../../../providers/Segment/events/product/filterProducts/filterProducts\";\nimport { FilterProductsParams } from \"./filterProducts.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a filterProducts event to every configured provider.\n *\n * Log this event when users try to filter a list of products.\n *\n * @since 0.1.0\n * @property {FilterProductsParams} params FilterProducts event parameters\n */\nconst logFilterProducts = (params: FilterProductsParams) => {\n triageEventToProviders(\"filterProducts\", params, {\n googleAnalyticsHandler: googleFilterProducts,\n facebookPixelHandler: facebookFilterProducts,\n segmentHandler: segmentFilterProducts\n });\n};\n\nexport default logFilterProducts;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ProductImpressionParams } from \"./productImpression.types\";\n\n/**\n * Emits a productImpression event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ProductImpressionParams} params Event configuration parameters\n */\nconst productImpression = (\n provider: GoogleAnalyticsProvider,\n params: ProductImpressionParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n currency: selectedCurrency\n };\n const total = getProductTotals(product);\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"product_impression\", {\n send_to: trackingId,\n event_callback: callback,\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default productImpression;\n","import { getProductTotals } from \"@artisan-commerce/products\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ProductImpressionParams } from \"./productImpression.types\";\n\n/**\n * Emits a productImpression event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ProductImpressionParams} params Event configuration parameters\n */\nconst productImpression = (\n provider: FacebookPixelProvider,\n params: ProductImpressionParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const total = getProductTotals(product);\n const enhancedParams = {\n ...rest,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ProductImpression\", {\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default productImpression;\n","import { getProductTotals } from \"@artisan-commerce/products\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ProductImpressionParams } from \"./productImpression.types\";\n\n/**\n * Emits a productImpression event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ProductImpressionParams} params Event configuration parameters\n */\nconst productImpression = (\n provider: SegmentProvider,\n params: ProductImpressionParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name } = product;\n const enhancedParams = {\n ...rest,\n productId,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const totals = getProductTotals(product);\n analytics.track(\"Product Viewed\", {\n price: totals.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default productImpression;\n","import googleProductImpression from \"../../../providers/GoogleAnalytics/events/product/productImpression/productImpression\";\nimport facebookProductImpression from \"../../../providers/FacebookPixel/events/product/productImpression/productImpression\";\nimport segmentProductImpression from \"../../../providers/Segment/events/product/productImpression/productImpression\";\nimport { ProductImpressionParams } from \"./productImpression.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a productImpression event to every configured provider.\n *\n * Log this event when a product is visible on the screen.\n *\n * @since 0.1.0\n * @property {ProductImpressionParams} params ProductImpression event parameters\n */\nconst logProductImpression = (params: ProductImpressionParams) => {\n triageEventToProviders(\"productImpression\", params, {\n googleAnalyticsHandler: googleProductImpression,\n facebookPixelHandler: facebookProductImpression,\n segmentHandler: segmentProductImpression\n });\n};\n\nexport default logProductImpression;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SearchProductSuccessParams } from \"./searchProductSuccess.types\";\n\n/**\n * Emits a searchProductSuccess event to a Google Analytics Provider.\n *\n * @since 0.1.0\n */\nconst searchProductSuccess = (\n provider: GoogleAnalyticsProvider,\n params: SearchProductSuccessParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"search_product_success\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SearchProductSuccessParams } from \"./searchProductSuccess.types\";\n\n/**\n * Emits a searchProductSuccess.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SearchProductSuccessParams} params Event configuration parameters\n */\nconst searchProductSuccess = (\n provider: FacebookPixelProvider,\n params: SearchProductSuccessParams\n) => {\n const { trackingId } = provider;\n const { query, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Search\", {\n search_string: query,\n success: 1,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SearchProductSuccessParams } from \"./searchProductSuccess.types\";\n\n/**\n * Emits a searchProductSuccess.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SearchProductSuccessParams} params Event configuration parameters\n */\nconst searchProductSuccess = (\n provider: SegmentProvider,\n params: SearchProductSuccessParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Products Searched\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductSuccess;\n","import googleSearchProductSuccess from \"../../../providers/GoogleAnalytics/events/product/searchProductSuccess/searchProductSuccess\";\nimport facebookSearchProductSuccess from \"../../../providers/FacebookPixel/events/product/searchProductSuccess/searchProductSuccess\";\nimport segmentSearchProductSuccess from \"../../../providers/Segment/events/product/searchProductSuccess/searchProductSuccess\";\nimport { SearchProductSuccessParams } from \"./searchProductSuccess.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a searchProductSuccess event to every configured provider.\n *\n * Log this event when your search request has resolved successfully.\n *\n * @since 0.1.0\n * @property {SearchProductSuccessParams} params SearchProductSuccess event parameters\n */\nconst logSearchProductSuccess = (params: SearchProductSuccessParams) => {\n triageEventToProviders(\"searchProductSuccess\", params, {\n googleAnalyticsHandler: googleSearchProductSuccess,\n facebookPixelHandler: facebookSearchProductSuccess,\n segmentHandler: segmentSearchProductSuccess\n });\n};\n\nexport default logSearchProductSuccess;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SearchProductAttemptParams } from \"./searchProductAttempt.types\";\n\n/**\n * Emits a searchProductAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SearchProductAttemptParams} params Event configuration parameters\n */\nconst searchProductAttempt = (\n provider: GoogleAnalyticsProvider,\n params: SearchProductAttemptParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, query, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"search\", {\n send_to: trackingId,\n event_callback: callback,\n search_term: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SearchProductAttemptParams } from \"./searchProductAttempt.types\";\n\n/**\n * Emits a searchProductAttempt.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SearchProductAttemptParams} params Event configuration parameters\n */\nconst searchProductAttempt = (\n provider: FacebookPixelProvider,\n params: SearchProductAttemptParams\n) => {\n const { trackingId } = provider;\n const { query, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Search\", {\n search_string: query,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SearchProductAttemptParams } from \"./searchProductAttempt.types\";\n\n/**\n * Emits a searchProductAttempt.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SearchProductAttemptParams} params Event configuration parameters\n */\nconst searchProductAttempt = (\n provider: SegmentProvider,\n params: SearchProductAttemptParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Search Product Attempt\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductAttempt;\n","import googleSearchProductAttempt from \"../../../providers/GoogleAnalytics/events/product/searchProductAttempt/searchProductAttempt\";\nimport facebookSearchProductAttempt from \"../../../providers/FacebookPixel/events/product/searchProductAttempt/searchProductAttempt\";\nimport segmentSearchProductAttempt from \"../../../providers/Segment/events/product/searchProductAttempt/searchProductAttempt\";\nimport { SearchProductAttemptParams } from \"./searchProductAttempt.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a searchProductAttempt event to every configured provider.\n *\n * Log this event when users try to search an specific product.\n *\n * @since 0.1.0\n * @property {SearchProductAttemptParams} params SearchProductAttempt event parameters\n */\nconst logSearchProductAttempt = (params: SearchProductAttemptParams) => {\n triageEventToProviders(\"searchProductAttempt\", params, {\n googleAnalyticsHandler: googleSearchProductAttempt,\n facebookPixelHandler: facebookSearchProductAttempt,\n segmentHandler: segmentSearchProductAttempt\n });\n};\n\nexport default logSearchProductAttempt;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SearchProductNotFoundParams } from \"./searchProductNotFound.types\";\n\n/**\n * Emits a searchProductNotFound event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SearchProductNotFoundParams} params Event configuration parameters\n */\nconst searchProductNotFound = (\n provider: GoogleAnalyticsProvider,\n params: SearchProductNotFoundParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"search_product_not_found\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductNotFound;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SearchProductNotFoundParams } from \"./searchProductNotFound.types\";\n\n/**\n * Emits a searchProductNotFound.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SearchProductNotFoundParams} params Event configuration parameters\n */\nconst searchProductNotFound = (\n provider: FacebookPixelProvider,\n params: SearchProductNotFoundParams\n) => {\n const { trackingId } = provider;\n const { query, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"Search\", {\n search_string: query,\n success: 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductNotFound;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SearchProductNotFoundParams } from \"./searchProductNotFound.types\";\n\n/**\n * Emits a searchProductNotFound.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SearchProductNotFoundParams} params Event configuration parameters\n */\nconst searchProductNotFound = (\n provider: SegmentProvider,\n params: SearchProductNotFoundParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Search Product Not Found\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default searchProductNotFound;\n","import googleSearchProductNotFound from \"../../../providers/GoogleAnalytics/events/product/searchProductNotFound/searchProductNotFound\";\nimport facebookSearchProductNotFound from \"../../../providers/FacebookPixel/events/product/searchProductNotFound/searchProductNotFound\";\nimport segmentSearchProductNotFound from \"../../../providers/Segment/events/product/searchProductNotFound/searchProductNotFound\";\nimport { SearchProductNotFoundParams } from \"./searchProductNotFound.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a searchProductNotFound event to every configured provider.\n *\n * Log this event when your search request has failed.\n *\n * @since 0.1.0\n * @property {SearchProductNotFoundParams} params SearchProductNotFound event parameters\n */\nconst logSearchProductNotFound = (params: SearchProductNotFoundParams) => {\n triageEventToProviders(\"searchProductNotFound\", params, {\n googleAnalyticsHandler: googleSearchProductNotFound,\n facebookPixelHandler: facebookSearchProductNotFound,\n segmentHandler: segmentSearchProductNotFound\n });\n};\n\nexport default logSearchProductNotFound;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectProductParams } from \"./selectProduct.types\";\n\n/**\n * Emits a selectProduct event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectProductParams} params Event configuration parameters\n */\nconst selectProduct = (\n provider: GoogleAnalyticsProvider,\n params: SelectProductParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, ...rest } = params;\n if (rest.contentType) {\n delete rest.contentType;\n }\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n currency: selectedCurrency\n };\n const total = getProductTotals(product);\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_content\", {\n send_to: trackingId,\n event_callback: callback,\n content_type: \"product\",\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectProduct;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectProductParams } from \"./selectProduct.types\";\n\n/**\n * Emits a selectProduct event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectProductParams} params Event configuration parameters\n */\nconst selectProduct = (\n provider: FacebookPixelProvider,\n params: SelectProductParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const total = getProductTotals(product);\n const enhancedParams = {\n ...rest,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectProduct\", {\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectProduct;\n","import { getProductTotals } from \"@artisan-commerce/products\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectProductParams } from \"./selectProduct.types\";\n\n/**\n * Emits a selectProduct event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectProductParams} params Event configuration parameters\n */\nconst selectProduct = (\n provider: SegmentProvider,\n params: SelectProductParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name } = product;\n const enhancedParams = {\n ...rest,\n productId,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const totals = getProductTotals(product);\n analytics.track(\"Product Clicked\", {\n price: totals.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectProduct;\n","import googleSelectProduct from \"../../../providers/GoogleAnalytics/events/product/selectProduct/selectProduct\";\nimport facebookSelectProduct from \"../../../providers/FacebookPixel/events/product/selectProduct/selectProduct\";\nimport segmentSelectProduct from \"../../../providers/Segment/events/product/selectProduct/selectProduct\";\nimport { SelectProductParams } from \"./selectProduct.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectProduct event to every configured provider.\n *\n * Log this event when users select a product. This product may or may not\n * be on a list.\n *\n * @since 0.1.0\n * @property {SelectProductParams} params SelectProduct event parameters\n */\nconst logSelectProduct = (params: SelectProductParams) => {\n triageEventToProviders(\"selectProduct\", params, {\n googleAnalyticsHandler: googleSelectProduct,\n facebookPixelHandler: facebookSelectProduct,\n segmentHandler: segmentSelectProduct\n });\n};\n\nexport default logSelectProduct;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SortProductsParams } from \"./sortProducts.types\";\n\n/**\n * Emits a sortProducts event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SortProductsParams} params Event configuration parameters\n */\nconst sortProducts = (\n provider: GoogleAnalyticsProvider,\n params: SortProductsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"sort_products\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sortProducts;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SortProductsParams } from \"./sortProducts.types\";\n\n/**\n * Emits a sortProducts event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SortProductsParams} params Event configuration parameters\n */\nconst sortProducts = (\n provider: FacebookPixelProvider,\n params: SortProductsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SortProducts\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sortProducts;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SortProductsParams } from \"./sortProducts.types\";\n\n/**\n * Emits a sortProducts event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SortProductsParams} params Event configuration parameters\n */\nconst sortProducts = (\n provider: SegmentProvider,\n params: SortProductsParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Sort Products\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default sortProducts;\n","import googleSortProducts from \"../../../providers/GoogleAnalytics/events/product/sortProducts/sortProducts\";\nimport facebookSortProducts from \"../../../providers/FacebookPixel/events/product/sortProducts/sortProducts\";\nimport segmentSortProducts from \"../../../providers/Segment/events/product/sortProducts/sortProducts\";\nimport { SortProductsParams } from \"./sortProducts.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a sortProducts event to every configured provider.\n *\n * Log this event when users try to sort a list of products.\n *\n * @since 0.1.0\n * @property {SortProductsParams} params SortProducts event parameters\n */\nconst logSortProducts = (params: SortProductsParams) => {\n triageEventToProviders(\"sortProducts\", params, {\n googleAnalyticsHandler: googleSortProducts,\n facebookPixelHandler: facebookSortProducts,\n segmentHandler: segmentSortProducts\n });\n};\n\nexport default logSortProducts;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewProductDetailsParams } from \"./viewProductDetails.types\";\n\n/**\n * Emits a viewProductDetails event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewProductDetailsParams} params Event configuration parameters\n */\nconst viewProductDetails = (\n provider: GoogleAnalyticsProvider,\n params: ViewProductDetailsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n currency: selectedCurrency\n };\n const total = getProductTotals(product);\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_item\", {\n send_to: trackingId,\n event_callback: callback,\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewProductDetails;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewProductDetailsParams } from \"./viewProductDetails.types\";\n\n/**\n * Emits a viewProductDetails.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewProductDetailsParams} params Event configuration parameters\n */\nconst viewProductDetails = (\n provider: FacebookPixelProvider,\n params: ViewProductDetailsParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const total = getProductTotals(product);\n const enhancedParams = {\n ...rest,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"ViewContent\", {\n value: total.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewProductDetails;\n","import { getProductTotals } from \"@artisan-commerce/products\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewProductDetailsParams } from \"./viewProductDetails.types\";\n\n/**\n * Emits a viewProductDetails.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewProductDetailsParams} params Event configuration parameters\n */\nconst viewProductDetails = (\n provider: SegmentProvider,\n params: ViewProductDetailsParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name } = product;\n const enhancedParams = {\n ...rest,\n productId,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const totals = getProductTotals(product);\n analytics.track(\"View Product Details\", {\n price: totals.netPrice,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewProductDetails;\n","import googleViewProductDetails from \"../../../providers/GoogleAnalytics/events/product/viewProductDetails/viewProductDetails\";\nimport facebookViewProductDetails from \"../../../providers/FacebookPixel/events/product/viewProductDetails/viewProductDetails\";\nimport segmentViewProductDetails from \"../../../providers/Segment/events/product/viewProductDetails/viewProductDetails\";\nimport { ViewProductDetailsParams } from \"./viewProductDetails.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewProductDetails event to every configured provider.\n *\n * Log this event when the details of a product load successfully and are shown\n * to the user.\n *\n * @since 0.1.0\n * @property {ViewProductDetailsParams} params ViewProductDetails event parameters\n */\nconst logViewProductDetails = (params: ViewProductDetailsParams) => {\n triageEventToProviders(\"viewProductDetails\", params, {\n googleAnalyticsHandler: googleViewProductDetails,\n facebookPixelHandler: facebookViewProductDetails,\n segmentHandler: segmentViewProductDetails\n });\n};\n\nexport default logViewProductDetails;\n","// events index\nimport logCustomizeProduct from \"./customizeProduct/customizeProduct\";\nimport logFilterProducts from \"./filterProducts/filterProducts\";\nimport logProductImpression from \"./productImpression/productImpression\";\nimport logSearchProductSuccess from \"./searchProductSuccess/searchProductSuccess\";\nimport logSearchProductAttempt from \"./searchProductAttempt/searchProductAttempt\";\nimport logSearchProductNotFound from \"./searchProductNotFound/searchProductNotFound\";\nimport logSelectProduct from \"./selectProduct/selectProduct\";\nimport logSortProducts from \"./sortProducts/sortProducts\";\nimport logViewProductDetails from \"./viewProductDetails/viewProductDetails\";\n\nconst events = {\n logCustomizeProduct,\n logFilterProducts,\n logProductImpression,\n logSearchProductSuccess,\n logSearchProductAttempt,\n logSearchProductNotFound,\n logSelectProduct,\n logSortProducts,\n logViewProductDetails\n};\n\nexport default events;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToGoogleItems } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { PurchaseAttemptParams } from \"./purchaseAttempt.types\";\n\n/**\n * Emits a purchaseAttempt event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {PurchaseAttemptParams} params Event configuration parameters\n */\nconst purchaseAttempt = (\n provider: GoogleAnalyticsProvider,\n params: PurchaseAttemptParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, shoppingCart, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n gtag(\"event\", \"purchase_attempt\", {\n send_to: trackingId,\n event_callback: callback,\n items: mapProductsToGoogleItems(shoppingCart, selectedCurrency),\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseAttempt;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContentFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getProductIdsFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { PurchaseAttemptParams } from \"./purchaseAttempt.types\";\n\n/**\n * Emits a purchaseAttempt event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {PurchaseAttemptParams} params Event configuration parameters\n */\nconst purchaseAttempt = (\n provider: FacebookPixelProvider,\n params: PurchaseAttemptParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const productsIds = getProductIdsFromShoppingCart(shoppingCart);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n fbq(\"trackSingleCustom\", trackingId, \"PurchaseAttempt\", {\n content_ids: productsIds,\n contents: getProductContentFromShoppingCart(shoppingCart),\n num_items: productsIds.length,\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseAttempt;\n","import { getShoppingCartProducts } from \"@artisan-commerce/shopping-cart\";\nimport { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { PurchaseAttemptParams } from \"./purchaseAttempt.types\";\n\n/**\n * Emits a purchaseAttempt event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {PurchaseAttemptParams} params Event configuration parameters\n */\nconst purchaseAttempt = (\n provider: SegmentProvider,\n params: PurchaseAttemptParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const products = getShoppingCartProducts(shoppingCart);\n const { total, totalTaxes, shippingCost, totalPoints } =\n getShoppingCartTotal(shoppingCart);\n analytics.track(\"Purchase Attempt\", {\n total,\n revenue: total - (totalTaxes ?? 0) - (shippingCost ?? 0),\n shipping: shippingCost ?? 0,\n tax: totalTaxes ?? 0,\n products: mapProductsToSegmentProducts(products),\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseAttempt;\n","import googlePurchaseAttempt from \"../../../providers/GoogleAnalytics/events/purchase/purchaseAttempt/purchaseAttempt\";\nimport facebookPurchaseAttempt from \"../../../providers/FacebookPixel/events/purchase/purchaseAttempt/purchaseAttempt\";\nimport segmentPurchaseAttempt from \"../../../providers/Segment/events/purchase/purchaseAttempt/purchaseAttempt\";\nimport { PurchaseAttemptParams } from \"./purchaseAttempt.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a purchaseAttempt event to every configured provider.\n *\n * Log this event when users show an intention to purchase.\n *\n * @since 0.1.0\n * @property {PurchaseAttemptParams} params PurchaseAttempt event parameters\n */\nconst logPurchaseAttempt = (params: PurchaseAttemptParams) => {\n triageEventToProviders(\"purchaseAttempt\", params, {\n googleAnalyticsHandler: googlePurchaseAttempt,\n facebookPixelHandler: facebookPurchaseAttempt,\n segmentHandler: segmentPurchaseAttempt\n });\n};\n\nexport default logPurchaseAttempt;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToGoogleItems } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { PurchaseFailParams } from \"./purchaseFail.types\";\n\n/**\n * Emits a purchaseFail event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {PurchaseFailParams} params Event configuration parameters\n */\nconst purchaseFail = (\n provider: GoogleAnalyticsProvider,\n params: PurchaseFailParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, shoppingCart, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n gtag(\"event\", \"purchase_fail\", {\n send_to: trackingId,\n event_callback: callback,\n items: mapProductsToGoogleItems(shoppingCart, selectedCurrency),\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseFail;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContentFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getProductIdsFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { PurchaseFailParams } from \"./purchaseFail.types\";\n\n/**\n * Emits a purchaseFail event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {PurchaseFailParams} params Event configuration parameters\n */\nconst purchaseFail = (\n provider: FacebookPixelProvider,\n params: PurchaseFailParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const productsIds = getProductIdsFromShoppingCart(shoppingCart);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n fbq(\"trackSingleCustom\", trackingId, \"PurchaseFail\", {\n content_ids: productsIds,\n contents: getProductContentFromShoppingCart(shoppingCart),\n num_items: productsIds.length,\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseFail;\n","import { getShoppingCartProducts } from \"@artisan-commerce/shopping-cart\";\nimport { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { PurchaseFailParams } from \"./purchaseFail.types\";\n\n/**\n * Emits a purchaseFail event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {PurchaseFailParams} params Event configuration parameters\n */\nconst purchaseFail = (\n provider: SegmentProvider,\n params: PurchaseFailParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const products = getShoppingCartProducts(shoppingCart);\n const { total, totalTaxes, shippingCost, totalPoints } =\n getShoppingCartTotal(shoppingCart);\n analytics.track(\"Purchase Fail\", {\n total,\n revenue: total - (totalTaxes ?? 0) - (shippingCost ?? 0),\n shipping: shippingCost ?? 0,\n tax: totalTaxes ?? 0,\n products: mapProductsToSegmentProducts(products),\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseFail;\n","import googlePurchaseFail from \"../../../providers/GoogleAnalytics/events/purchase/purchaseFail/purchaseFail\";\nimport facebookPurchaseFail from \"../../../providers/FacebookPixel/events/purchase/purchaseFail/purchaseFail\";\nimport segmentPurchaseFail from \"../../../providers/Segment/events/purchase/purchaseFail/purchaseFail\";\nimport { PurchaseFailParams } from \"./purchaseFail.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a purchaseFail event to every configured provider.\n *\n * Log this event when your purchase request has failed.\n *\n * @since 0.1.0\n * @property {PurchaseFailParams} params PurchaseFail event parameters\n */\nconst logPurchaseFail = (params: PurchaseFailParams) => {\n triageEventToProviders(\"purchaseFail\", params, {\n googleAnalyticsHandler: googlePurchaseFail,\n facebookPixelHandler: facebookPurchaseFail,\n segmentHandler: segmentPurchaseFail\n });\n};\n\nexport default logPurchaseFail;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToGoogleItems } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { PurchaseSuccessParams } from \"./purchaseSuccess.types\";\n\n/**\n * Emits a purchaseSuccess event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {PurchaseSuccessParams} params Event configuration parameters\n */\nconst purchaseSuccess = (\n provider: GoogleAnalyticsProvider,\n params: PurchaseSuccessParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, currency, shoppingCart, orderId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const { total, shippingCost, totalTaxes, totalPoints } =\n getShoppingCartTotal(shoppingCart);\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"purchase\", {\n send_to: trackingId,\n event_callback: callback,\n items: mapProductsToGoogleItems(shoppingCart, selectedCurrency),\n value: total,\n points: totalPoints ?? 0,\n transaction_id: orderId,\n shipping: shippingCost ?? 0,\n tax: totalTaxes ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseSuccess;\n","import { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductIdsFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getProductContentFromShoppingCart } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { PurchaseSuccessParams } from \"./purchaseSuccess.types\";\n\n/**\n * Emits a purchaseSuccess event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {PurchaseSuccessParams} params Event configuration parameters\n */\nconst purchaseSuccess = (\n provider: FacebookPixelProvider,\n params: PurchaseSuccessParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const productsIds = getProductIdsFromShoppingCart(shoppingCart);\n const { total, totalPoints } = getShoppingCartTotal(shoppingCart);\n fbq(\"trackSingle\", trackingId, \"Purchase\", {\n content_ids: productsIds,\n contents: getProductContentFromShoppingCart(shoppingCart),\n num_items: productsIds.length,\n value: total,\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseSuccess;\n","import { getShoppingCartProducts } from \"@artisan-commerce/shopping-cart\";\nimport { getShoppingCartTotal } from \"@artisan-commerce/shopping-cart\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { PurchaseSuccessParams } from \"./purchaseSuccess.types\";\n\n/**\n * Emits a purchaseSuccess event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {PurchaseSuccessParams} params Event configuration parameters\n */\nconst purchaseSuccess = (\n provider: SegmentProvider,\n params: PurchaseSuccessParams\n) => {\n const { currency: providerCurrency } = provider;\n const { currency, shoppingCart, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const products = getShoppingCartProducts(shoppingCart);\n const { total, totalTaxes, shippingCost, totalPoints } =\n getShoppingCartTotal(shoppingCart);\n analytics.track(\"Order Completed\", {\n total,\n revenue: total - (totalTaxes ?? 0) - (shippingCost ?? 0),\n shipping: shippingCost ?? 0,\n tax: totalTaxes ?? 0,\n products: mapProductsToSegmentProducts(products),\n points: totalPoints ?? 0,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default purchaseSuccess;\n","import googlePurchaseSuccess from \"../../../providers/GoogleAnalytics/events/purchase/purchaseSuccess/purchaseSuccess\";\nimport facebookPurchaseSuccess from \"../../../providers/FacebookPixel/events/purchase/purchaseSuccess/purchaseSuccess\";\nimport segmentPurchaseSuccess from \"../../../providers/Segment/events/purchase/purchaseSuccess/purchaseSuccess\";\nimport { PurchaseSuccessParams } from \"./purchaseSuccess.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a purchaseSuccess event to every configured provider.\n *\n * Log this event when your purchase request has resolved successfully.\n *\n * @since 0.1.0\n * @property {PurchaseSuccessParams} params PurchaseSuccess event parameters\n */\nconst logPurchaseSuccess = (params: PurchaseSuccessParams) => {\n triageEventToProviders(\"purchaseSuccess\", params, {\n googleAnalyticsHandler: googlePurchaseSuccess,\n facebookPixelHandler: facebookPurchaseSuccess,\n segmentHandler: segmentPurchaseSuccess\n });\n};\n\nexport default logPurchaseSuccess;\n","// events index\nimport logPurchaseAttempt from \"./purchaseAttempt/purchaseAttempt\";\nimport logPurchaseFail from \"./purchaseFail/purchaseFail\";\nimport logPurchaseSuccess from \"./purchaseSuccess/purchaseSuccess\";\n\nconst events = { logPurchaseAttempt, logPurchaseFail, logPurchaseSuccess };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewSettingsParams } from \"./viewSettings.types\";\n\n/**\n * Emits a viewSettings event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewSettingsParams} params Event configuration parameters\n */\nconst viewSettings = (\n provider: GoogleAnalyticsProvider,\n params: ViewSettingsParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_settings\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewSettings;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewSettingsParams } from \"./viewSettings.types\";\n\n/**\n * Emits a viewSettings event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewSettingsParams} params Event configuration parameters\n */\nconst viewSettings = (\n provider: FacebookPixelProvider,\n params: ViewSettingsParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewSettings\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewSettings;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewSettingsParams } from \"./viewSettings.types\";\n\n/**\n * Emits a viewSettings event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewSettingsParams} params Event configuration parameters\n */\nconst viewSettings = (\n provider: SegmentProvider,\n params: ViewSettingsParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"View Settings\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewSettings;\n","import googleViewSettings from \"../../../providers/GoogleAnalytics/events/settings/viewSettings/viewSettings\";\nimport facebookViewSettings from \"../../../providers/FacebookPixel/events/settings/viewSettings/viewSettings\";\nimport segmentViewSettings from \"../../../providers/Segment/events/settings/viewSettings/viewSettings\";\nimport { ViewSettingsParams } from \"./viewSettings.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewSettings event to every configured provider.\n *\n * Log this event when users view the settings.\n *\n * @since 0.1.0\n * @property {ViewSettingsParams} params ViewSettings event parameters\n */\nconst logViewSettings = (params: ViewSettingsParams = {}) => {\n triageEventToProviders(\"viewSettings\", params, {\n googleAnalyticsHandler: googleViewSettings,\n facebookPixelHandler: facebookViewSettings,\n segmentHandler: segmentViewSettings\n });\n};\n\nexport default logViewSettings;\n","// events index\nimport logViewSettings from \"./viewSettings/viewSettings\";\n\nconst events = { logViewSettings };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { AddShippingAddressParams } from \"./addShippingAddress.types\";\n\n/**\n * Emits a addShippingAddress event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {AddShippingAddressParams} params Event configuration parameters\n */\nconst addShippingAddress = (\n provider: GoogleAnalyticsProvider,\n params: AddShippingAddressParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"add_shipping_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { AddShippingAddressParams } from \"./addShippingAddress.types\";\n\n/**\n * Emits a addShippingAddress.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {AddShippingAddressParams} params Event configuration parameters\n */\nconst addShippingAddress = (\n provider: FacebookPixelProvider,\n params: AddShippingAddressParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"AddShippingAddress\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { AddShippingAddressParams } from \"./addShippingAddress.types\";\n\n/**\n * Emits a addShippingAddress.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {AddShippingAddressParams} params Event configuration parameters\n */\nconst addShippingAddress = (\n provider: SegmentProvider,\n params: AddShippingAddressParams\n) => {\n const { identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Add Shipping Address\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n analytics.identify(identify.id, identify);\n};\n\nexport default addShippingAddress;\n","import googleAddShippingAddress from \"../../../providers/GoogleAnalytics/events/shipping/addShippingAddress/addShippingAddress\";\nimport facebookAddShippingAddress from \"../../../providers/FacebookPixel/events/shipping/addShippingAddress/addShippingAddress\";\nimport segmentAddShippingAddress from \"../../../providers/Segment/events/shipping/addShippingAddress/addShippingAddress\";\nimport { AddShippingAddressParams } from \"./addShippingAddress.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a addShippingAddress event to every configured provider.\n *\n * Log this event when users add their shipping address.\n *\n * @since 0.1.0\n * @property {AddShippingAddressParams} params AddShippingAddress event parameters\n */\nconst logAddShippingAddress = (params: AddShippingAddressParams) => {\n triageEventToProviders(\"addShippingAddress\", params, {\n googleAnalyticsHandler: googleAddShippingAddress,\n facebookPixelHandler: facebookAddShippingAddress,\n segmentHandler: segmentAddShippingAddress\n });\n};\n\nexport default logAddShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectShippingAddressParams } from \"./selectShippingAddress.types\";\n\n/**\n * Emits a selectShippingAddress event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectShippingAddressParams} params Event configuration parameters\n */\nconst selectShippingAddress = (\n provider: GoogleAnalyticsProvider,\n params: SelectShippingAddressParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_shipping_address\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectShippingAddressParams } from \"./selectShippingAddress.types\";\n\n/**\n * Emits a selectShippingAddress event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SelectShippingAddressParams} params Event configuration parameters\n */\nconst selectShippingAddress = (\n provider: FacebookPixelProvider,\n params: SelectShippingAddressParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectShippingAddress\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectShippingAddressParams } from \"./selectShippingAddress.types\";\n\n/**\n * Emits a selectShippingAddress event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SelectShippingAddressParams} params Event configuration parameters\n */\nconst selectShippingAddress = (\n provider: SegmentProvider,\n params: SelectShippingAddressParams\n) => {\n const { identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Select Shipping Address\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n analytics.identify(identify.id, identify);\n};\n\nexport default selectShippingAddress;\n","import googleSelectShippingAddress from \"../../../providers/GoogleAnalytics/events/shipping/selectShippingAddress/selectShippingAddress\";\nimport facebookSelectShippingAddress from \"../../../providers/FacebookPixel/events/shipping/selectShippingAddress/selectShippingAddress\";\nimport segmentSelectShippingAddress from \"../../../providers/Segment/events/shipping/selectShippingAddress/selectShippingAddress\";\nimport { SelectShippingAddressParams } from \"./selectShippingAddress.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a selectShippingAddress event to every configured provider.\n *\n * Log this event when users select a shipping address.\n *\n * @since 0.1.0\n * @property {SelectShippingAddressParams} params SelectShippingAddress event parameters\n */\nconst logSelectShippingAddress = (params: SelectShippingAddressParams) => {\n triageEventToProviders(\"selectShippingAddress\", params, {\n googleAnalyticsHandler: googleSelectShippingAddress,\n facebookPixelHandler: facebookSelectShippingAddress,\n segmentHandler: segmentSelectShippingAddress\n });\n};\n\nexport default logSelectShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateShippingAddressParams } from \"./updateShippingAddress.types\";\n\n/**\n * Emits a updateShippingAddress event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateShippingAddressParams} params Event configuration parameters\n */\nconst updateShippingAddress = (\n provider: GoogleAnalyticsProvider,\n params: UpdateShippingAddressParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"update_shipping_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateShippingAddressParams } from \"./updateShippingAddress.types\";\n\n/**\n * Emits a updateShippingAddress event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {UpdateShippingAddressParams} params Event configuration parameters\n */\nconst updateShippingAddress = (\n provider: FacebookPixelProvider,\n params: UpdateShippingAddressParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"UpdateShippingAddress\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateShippingAddress;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateShippingAddressParams } from \"./updateShippingAddress.types\";\n\n/**\n * Emits a updateShippingAddress event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {UpdateShippingAddressParams} params Event configuration parameters\n */\nconst updateShippingAddress = (\n provider: SegmentProvider,\n params: UpdateShippingAddressParams\n) => {\n const { fields, identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, fields: transformArrayParam(fields) };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Update Shipping Address\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n analytics.identify(identify.id, identify);\n};\n\nexport default updateShippingAddress;\n","import googleUpdateShippingAddress from \"../../../providers/GoogleAnalytics/events/shipping/updateShippingAddress/updateShippingAddress\";\nimport facebookUpdateShippingAddress from \"../../../providers/FacebookPixel/events/shipping/updateShippingAddress/updateShippingAddress\";\nimport segmentUpdateShippingAddress from \"../../../providers/Segment/events/shipping/updateShippingAddress/updateShippingAddress\";\nimport { UpdateShippingAddressParams } from \"./updateShippingAddress.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a updateShippingAddress event to every configured provider.\n *\n * Log this event when users update their shipping address.\n *\n * @since 0.1.0\n * @property {UpdateShippingAddressParams} params UpdateShippingAddress event parameters\n */\nconst logUpdateShippingAddress = (params: UpdateShippingAddressParams) => {\n triageEventToProviders(\"updateShippingAddress\", params, {\n googleAnalyticsHandler: googleUpdateShippingAddress,\n facebookPixelHandler: facebookUpdateShippingAddress,\n segmentHandler: segmentUpdateShippingAddress\n });\n};\n\nexport default logUpdateShippingAddress;\n","// events index\nimport logAddShippingAddress from \"./addShippingAddress/addShippingAddress\";\nimport logSelectShippingAddress from \"./selectShippingAddress/selectShippingAddress\";\nimport logUpdateShippingAddress from \"./updateShippingAddress/updateShippingAddress\";\n\nconst events = {\n logAddShippingAddress,\n logSelectShippingAddress,\n logUpdateShippingAddress\n};\n\nexport default events;\n","import { getProductTotals } from \"@artisan-commerce/products\";\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductToGoogleItem } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { AddProductToCartParams } from \"./addProductToCart.types\";\n\n/**\n * Emits a addProductToCart event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {AddProductToCartParams} params Event configuration parameters\n */\nconst addProductToCart = (\n provider: GoogleAnalyticsProvider,\n params: AddProductToCartParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, store, priceCategory, ...rest } =\n params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n storeId,\n storeName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"add_to_cart\", {\n send_to: trackingId,\n event_callback: callback,\n items: [mapProductToGoogleItem(product, selectedCurrency)],\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { AddProductToCartParams } from \"./addProductToCart.types\";\n\n/**\n * Emits a addProductToCart event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {AddProductToCartParams} params Event configuration parameters\n */\nconst addProductToCart = (\n provider: FacebookPixelProvider,\n params: AddProductToCartParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, store, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n fbq(\"trackSingle\", trackingId, \"AddToCart\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { AddProductToCartParams } from \"./addProductToCart.types\";\n\n/**\n * Emits a addProductToCart event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {AddProductToCartParams} params Event configuration parameters\n */\nconst addProductToCart = (\n provider: SegmentProvider,\n params: AddProductToCartParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, store, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Product Added\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToCart;\n","import googleAddProductToCart from \"../../../providers/GoogleAnalytics/events/shoppingCart/addProductToCart/addProductToCart\";\nimport facebookAddProductToCart from \"../../../providers/FacebookPixel/events/shoppingCart/addProductToCart/addProductToCart\";\nimport segmentAddProductToCart from \"../../../providers/Segment/events/shoppingCart/addProductToCart/addProductToCart\";\nimport { AddProductToCartParams } from \"./addProductToCart.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a addProductToCart event to every configured provider.\n *\n * Log this event when users add a product to the cart.\n *\n * @since 0.1.0\n * @property {AddProductToCartParams} params AddProductToCart event parameters\n */\nconst logAddProductToCart = (params: AddProductToCartParams) => {\n triageEventToProviders(\"addProductToCart\", params, {\n googleAnalyticsHandler: googleAddProductToCart,\n facebookPixelHandler: facebookAddProductToCart,\n segmentHandler: segmentAddProductToCart\n });\n};\n\nexport default logAddProductToCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductToGoogleItem } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { AddProductToWishlistParams } from \"./addProductToWishlist.types\";\n\n/**\n * Emits a addProductToWishlist event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {AddProductToWishlistParams} params Event configuration parameters\n */\nconst addProductToWishlist = (\n provider: GoogleAnalyticsProvider,\n params: AddProductToWishlistParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, priceCategory, ...rest } =\n params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"add_to_wishlist\", {\n send_to: trackingId,\n event_callback: callback,\n items: [mapProductToGoogleItem(product, selectedCurrency)],\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { AddProductToWishlistParams } from \"./addProductToWishlist.types\";\n\n/**\n * Emits a addProductToWishlist event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {AddProductToWishlistParams} params Event configuration parameters\n */\nconst addProductToWishlist = (\n provider: FacebookPixelProvider,\n params: AddProductToWishlistParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingle\", trackingId, \"AddToWishlist\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { AddProductToWishlistParams } from \"./addProductToWishlist.types\";\n\n/**\n * Emits a addProductToWishlist event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {AddProductToWishlistParams} params Event configuration parameters\n */\nconst addProductToWishlist = (\n provider: SegmentProvider,\n params: AddProductToWishlistParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Add Product To Wishlist\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default addProductToWishlist;\n","import googleAddProductToWishlist from \"../../../providers/GoogleAnalytics/events/shoppingCart/addProductToWishlist/addProductToWishlist\";\nimport facebookAddProductToWishlist from \"../../../providers/FacebookPixel/events/shoppingCart/addProductToWishlist/addProductToWishlist\";\nimport segmentAddProductToWishlist from \"../../../providers/Segment/events/shoppingCart/addProductToWishlist/addProductToWishlist\";\nimport { AddProductToWishlistParams } from \"./addProductToWishlist.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a addProductToWishlist event to every configured provider.\n *\n * Log this event when users add a product to the wishlist.\n *\n * @since 0.1.0\n * @property {AddProductToWishlistParams} params AddProductToWishlist event parameters\n */\nconst logAddProductToWishlist = (params: AddProductToWishlistParams) => {\n triageEventToProviders(\"addProductToWishlist\", params, {\n googleAnalyticsHandler: googleAddProductToWishlist,\n facebookPixelHandler: facebookAddProductToWishlist,\n segmentHandler: segmentAddProductToWishlist\n });\n};\n\nexport default logAddProductToWishlist;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ClearCartParams } from \"./clearCart.types\";\n\n/**\n * Emits a clearCart event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ClearCartParams} params Event configuration parameters\n */\nconst clearCart = (\n provider: GoogleAnalyticsProvider,\n params: ClearCartParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"clear_cart\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default clearCart;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ClearCartParams } from \"./clearCart.types\";\n\n/**\n * Emits a clearCart event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ClearCartParams} params Event configuration parameters\n */\nconst clearCart = (\n provider: FacebookPixelProvider,\n params: ClearCartParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ClearCart\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default clearCart;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ClearCartParams } from \"./clearCart.types\";\n\n/**\n * Emits a clearCart event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ClearCartParams} params Event configuration parameters\n */\nconst clearCart = (provider: SegmentProvider, params: ClearCartParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Clear Cart\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default clearCart;\n","import googleClearCart from \"../../../providers/GoogleAnalytics/events/shoppingCart/clearCart/clearCart\";\nimport facebookClearCart from \"../../../providers/FacebookPixel/events/shoppingCart/clearCart/clearCart\";\nimport segmentClearCart from \"../../../providers/Segment/events/shoppingCart/clearCart/clearCart\";\nimport { ClearCartParams } from \"./clearCart.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a clearCart event to every configured provider.\n *\n * Log this event when users empty the cart.\n *\n * @since 0.1.0\n * @property {ClearCartParams} params ClearCart event parameters\n */\nconst logClearCart = (params: ClearCartParams) => {\n triageEventToProviders(\"clearCart\", params, {\n googleAnalyticsHandler: googleClearCart,\n facebookPixelHandler: facebookClearCart,\n segmentHandler: segmentClearCart\n });\n};\n\nexport default logClearCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RemoveProductFromCartParams } from \"./removeProductFromCart.types\";\n\n/**\n * Emits a removeProductFromCart event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromCartParams} params Event configuration parameters\n */\nconst removeProductFromCart = (\n provider: GoogleAnalyticsProvider,\n params: RemoveProductFromCartParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, store, priceCategory, ...rest } =\n params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n storeId,\n storeName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"remove_product_from_cart\", {\n send_to: trackingId,\n event_callback: callback,\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RemoveProductFromCartParams } from \"./removeProductFromCart.types\";\n\n/**\n * Emits a removeProductFromCart.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromCartParams} params Event configuration parameters\n */\nconst removeProductFromCart = (\n provider: FacebookPixelProvider,\n params: RemoveProductFromCartParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, store, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n fbq(\"trackSingleCustom\", trackingId, \"RemoveProductFromCart\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RemoveProductFromCartParams } from \"./removeProductFromCart.types\";\n\n/**\n * Emits a removeProductFromCart.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromCartParams} params Event configuration parameters\n */\nconst removeProductFromCart = (\n provider: SegmentProvider,\n params: RemoveProductFromCartParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, store, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Product Removed\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromCart;\n","import googleRemoveProductFromCart from \"../../../providers/GoogleAnalytics/events/shoppingCart/removeProductFromCart/removeProductFromCart\";\nimport facebookRemoveProductFromCart from \"../../../providers/FacebookPixel/events/shoppingCart/removeProductFromCart/removeProductFromCart\";\nimport segmentRemoveProductFromCart from \"../../../providers/Segment/events/shoppingCart/removeProductFromCart/removeProductFromCart\";\nimport { RemoveProductFromCartParams } from \"./removeProductFromCart.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a removeProductFromCart event to every configured provider.\n *\n * Log this event when users remove a product from the cart.\n *\n * @since 0.1.0\n * @property {RemoveProductFromCartParams} params RemoveProductFromCart event parameters\n */\nconst logRemoveProductFromCart = (params: RemoveProductFromCartParams) => {\n triageEventToProviders(\"removeProductFromCart\", params, {\n googleAnalyticsHandler: googleRemoveProductFromCart,\n facebookPixelHandler: facebookRemoveProductFromCart,\n segmentHandler: segmentRemoveProductFromCart\n });\n};\n\nexport default logRemoveProductFromCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { RemoveProductFromWishlistParams } from \"./removeProductFromWishlist.types\";\n\n/**\n * Emits a removeProductFromWishlist event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromWishlistParams} params Event configuration parameters\n */\nconst removeProductFromWishlist = (\n provider: GoogleAnalyticsProvider,\n params: RemoveProductFromWishlistParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, priceCategory, ...rest } =\n params;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name: productName } = product;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"remove_product_from_wishlist\", {\n send_to: trackingId,\n event_callback: callback,\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { RemoveProductFromWishlistParams } from \"./removeProductFromWishlist.types\";\n\n/**\n * Emits a removeProductFromWishlist event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromWishlistParams} params Event configuration parameters\n */\nconst removeProductFromWishlist = (\n provider: FacebookPixelProvider,\n params: RemoveProductFromWishlistParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n fbq(\"trackSingleCustom\", trackingId, \"RemoveProductFromWishlist\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { RemoveProductFromWishlistParams } from \"./removeProductFromWishlist.types\";\n\n/**\n * Emits a removeProductFromWishlist event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {RemoveProductFromWishlistParams} params Event configuration parameters\n */\nconst removeProductFromWishlist = (\n provider: SegmentProvider,\n params: RemoveProductFromWishlistParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Remove Product From Wishlist\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default removeProductFromWishlist;\n","import googleRemoveProductFromWishlist from \"../../../providers/GoogleAnalytics/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist\";\nimport facebookRemoveProductFromWishlist from \"../../../providers/FacebookPixel/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist\";\nimport segmentRemoveProductFromWishlist from \"../../../providers/Segment/events/shoppingCart/removeProductFromWishlist/removeProductFromWishlist\";\nimport { RemoveProductFromWishlistParams } from \"./removeProductFromWishlist.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a removeProductFromWishlist event to every configured provider.\n *\n * Log this event when users remove a product from the wishlist.\n *\n * @since 0.1.0\n * @property {RemoveProductFromWishlistParams} params RemoveProductFromWishlist event parameters\n */\nconst logRemoveProductFromWishlist = (\n params: RemoveProductFromWishlistParams\n) => {\n triageEventToProviders(\"removeProductFromWishlist\", params, {\n googleAnalyticsHandler: googleRemoveProductFromWishlist,\n facebookPixelHandler: facebookRemoveProductFromWishlist,\n segmentHandler: segmentRemoveProductFromWishlist\n });\n};\n\nexport default logRemoveProductFromWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateProductInCartParams } from \"./updateProductInCart.types\";\n\n/**\n * Emits a updateProductInCart event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInCartParams} params Event configuration parameters\n */\nconst updateProductInCart = (\n provider: GoogleAnalyticsProvider,\n params: UpdateProductInCartParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, store, priceCategory, ...rest } =\n params;\n const { productId, name: productName } = product;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n storeId,\n storeName,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"update_product_in_cart\", {\n send_to: trackingId,\n event_callback: callback,\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateProductInCartParams } from \"./updateProductInCart.types\";\n\n/**\n * Emits a updateProductInCart event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInCartParams} params Event configuration parameters\n */\nconst updateProductInCart = (\n provider: FacebookPixelProvider,\n params: UpdateProductInCartParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, store, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n fbq(\"trackSingleCustom\", trackingId, \"UpdateProductInCart\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateProductInCartParams } from \"./updateProductInCart.types\";\n\n/**\n * Emits a updateProductInCart event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInCartParams} params Event configuration parameters\n */\nconst updateProductInCart = (\n provider: SegmentProvider,\n params: UpdateProductInCartParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, store, currency, fields, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const { storeName, storeId } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency,\n fields: transformArrayParam(fields)\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Update Product In Cart\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInCart;\n","import googleUpdateProductInCart from \"../../../providers/GoogleAnalytics/events/shoppingCart/updateProductInCart/updateProductInCart\";\nimport facebookUpdateProductInCart from \"../../../providers/FacebookPixel/events/shoppingCart/updateProductInCart/updateProductInCart\";\nimport segmentUpdateProductInCart from \"../../../providers/Segment/events/shoppingCart/updateProductInCart/updateProductInCart\";\nimport { UpdateProductInCartParams } from \"./updateProductInCart.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a updateProductInCart event to every configured provider.\n *\n * Log this event when users update a product that was added earlier to the\n * cart.\n *\n * @since 0.1.0\n * @property {UpdateProductInCartParams} params UpdateProductInCart event parameters\n */\nconst logUpdateProductInCart = (params: UpdateProductInCartParams) => {\n triageEventToProviders(\"updateProductInCart\", params, {\n googleAnalyticsHandler: googleUpdateProductInCart,\n facebookPixelHandler: facebookUpdateProductInCart,\n segmentHandler: segmentUpdateProductInCart\n });\n};\n\nexport default logUpdateProductInCart;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateProductInWishlistParams } from \"./updateProductInWishlist.types\";\n\n/**\n * Emits a updateProductInWishlist event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInWishlistParams} params Event configuration parameters\n */\nconst updateProductInWishlist = (\n provider: GoogleAnalyticsProvider,\n params: UpdateProductInWishlistParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { currency: providerCurrency } = provider;\n const { callback, userId, product, currency, priceCategory, ...rest } =\n params;\n const { productId, name: productName } = product;\n const selectedUserId = userId ?? providerUserId;\n const selectedCurrency = currency ?? providerCurrency;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n productId,\n productName,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n gtag(\"event\", \"update_product_in_wishlist\", {\n send_to: trackingId,\n event_callback: callback,\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getProductContent } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateProductInWishlistParams } from \"./updateProductInWishlist.types\";\n\n/**\n * Emits a updateProductInWishlist event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInWishlistParams} params Event configuration parameters\n */\nconst updateProductInWishlist = (\n provider: FacebookPixelProvider,\n params: UpdateProductInWishlistParams\n) => {\n const { trackingId } = provider;\n const { currency: providerCurrency } = provider;\n const { product, currency, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n amount,\n currency: selectedCurrency\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { netPrice } = getProductTotals(product);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n fbq(\"trackSingleCustom\", trackingId, \"UpdateProductInWishlist\", {\n content_id: productId,\n content_name: name,\n content: getProductContent(product),\n value: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInWishlist;\n","import { getProductTotals } from \"@artisan-commerce/products\";\n\nimport { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateProductInWishlistParams } from \"./updateProductInWishlist.types\";\n\n/**\n * Emits a updateProductInWishlist event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {UpdateProductInWishlistParams} params Event configuration parameters\n */\nconst updateProductInWishlist = (\n provider: SegmentProvider,\n params: UpdateProductInWishlistParams\n) => {\n const { currency: providerCurrency } = provider;\n const { product, currency, fields, priceCategory, ...rest } = params;\n delete rest.userId;\n const selectedCurrency = currency ?? providerCurrency;\n const { productId, name, amount } = product;\n const enhancedParams = {\n ...rest,\n productId,\n quantity: amount,\n name,\n currency: selectedCurrency,\n fields: transformArrayParam(fields)\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n const { priceCategory: productPriceCategory } = product;\n const finalPriceCategory = priceCategory ?? productPriceCategory;\n const { netPrice } = getProductTotals(product);\n const totalPrice = finalPriceCategory === \"NORMAL\" ? netPrice : 0;\n const totalPoints = finalPriceCategory === \"POINTS\" ? netPrice : 0;\n analytics.track(\"Update Product In Wishlist\", {\n price: totalPrice,\n points: totalPoints,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateProductInWishlist;\n","import googleUpdateProductInWishlist from \"../../../providers/GoogleAnalytics/events/shoppingCart/updateProductInWishlist/updateProductInWishlist\";\nimport facebookUpdateProductInWishlist from \"../../../providers/FacebookPixel/events/shoppingCart/updateProductInWishlist/updateProductInWishlist\";\nimport segmentUpdateProductInWishlist from \"../../../providers/Segment/events/shoppingCart/updateProductInWishlist/updateProductInWishlist\";\nimport { UpdateProductInWishlistParams } from \"./updateProductInWishlist.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a updateProductInWishlist event to every configured provider.\n *\n * Log this event when users update a product that was added earlier to the\n * wishlist.\n *\n * @since 0.1.0\n * @property {UpdateProductInWishlistParams} params UpdateProductInWishlist event parameters\n */\nconst logUpdateProductInWishlist = (params: UpdateProductInWishlistParams) => {\n triageEventToProviders(\"updateProductInWishlist\", params, {\n googleAnalyticsHandler: googleUpdateProductInWishlist,\n facebookPixelHandler: facebookUpdateProductInWishlist,\n segmentHandler: segmentUpdateProductInWishlist\n });\n};\n\nexport default logUpdateProductInWishlist;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ViewCartParams } from \"./viewCart.types\";\n\n/**\n * Emits a viewCart event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ViewCartParams} params Event configuration parameters\n */\nconst viewCart = (\n provider: GoogleAnalyticsProvider,\n params: ViewCartParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"view_cart\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCart;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ViewCartParams } from \"./viewCart.types\";\n\n/**\n * Emits a viewCart event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ViewCartParams} params Event configuration parameters\n */\nconst viewCart = (provider: FacebookPixelProvider, params: ViewCartParams) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ViewCart\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCart;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { mapProductsToSegmentProducts } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ViewCartParams } from \"./viewCart.types\";\n\n/**\n * Emits a viewCart event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ViewCartParams} params Event configuration parameters\n */\nconst viewCart = (provider: SegmentProvider, params: ViewCartParams) => {\n const { products, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Cart Viewed\", {\n products: mapProductsToSegmentProducts(products),\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default viewCart;\n","import googleViewCart from \"../../../providers/GoogleAnalytics/events/shoppingCart/viewCart/viewCart\";\nimport facebookViewCart from \"../../../providers/FacebookPixel/events/shoppingCart/viewCart/viewCart\";\nimport segmentViewCart from \"../../../providers/Segment/events/shoppingCart/viewCart/viewCart\";\nimport { ViewCartParams } from \"./viewCart.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a viewCart event to every configured provider.\n *\n * Log this event when users view the cart.\n *\n * @since 0.1.0\n * @property {ViewCartParams} params ViewCart event parameters\n */\nconst logViewCart = (params: ViewCartParams) => {\n triageEventToProviders(\"viewCart\", params, {\n googleAnalyticsHandler: googleViewCart,\n facebookPixelHandler: facebookViewCart,\n segmentHandler: segmentViewCart\n });\n};\n\nexport default logViewCart;\n","// events index\nimport logAddProductToCart from \"./addProductToCart/addProductToCart\";\nimport logAddProductToWishlist from \"./addProductToWishlist/addProductToWishlist\";\nimport logClearCart from \"./clearCart/clearCart\";\nimport logRemoveProductFromCart from \"./removeProductFromCart/removeProductFromCart\";\nimport logRemoveProductFromWishlist from \"./removeProductFromWishlist/removeProductFromWishlist\";\nimport logUpdateProductInCart from \"./updateProductInCart/updateProductInCart\";\nimport logUpdateProductInWishlist from \"./updateProductInWishlist/updateProductInWishlist\";\nimport logViewCart from \"./viewCart/viewCart\";\n\nconst events = {\n logAddProductToCart,\n logAddProductToWishlist,\n logClearCart,\n logRemoveProductFromCart,\n logRemoveProductFromWishlist,\n logUpdateProductInCart,\n logUpdateProductInWishlist,\n logViewCart\n};\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ShareParams } from \"./share.types\";\n\n/**\n * Emits a share event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ShareParams} params Event configuration parameters\n */\nconst share = (provider: GoogleAnalyticsProvider, params: ShareParams) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, shareTarget, itemId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"share\", {\n send_to: trackingId,\n event_callback: callback,\n method: shareTarget,\n content_id: itemId,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default share;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ShareParams } from \"./share.types\";\n\n/**\n * Emits a share event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ShareParams} params Event configuration parameters\n */\nconst share = (provider: FacebookPixelProvider, params: ShareParams) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"Share\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default share;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ShareParams } from \"./share.types\";\n\n/**\n * Emits a share event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ShareParams} params Event configuration parameters\n */\nconst share = (provider: SegmentProvider, params: ShareParams) => {\n const { shareTarget, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, shareVia: shareTarget };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Share\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default share;\n","import googleShare from \"../../../providers/GoogleAnalytics/events/social/share/share\";\nimport facebookShare from \"../../../providers/FacebookPixel/events/social/share/share\";\nimport segmentShare from \"../../../providers/Segment/events/social/share/share\";\nimport { ShareParams } from \"./share.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a share event to every configured provider.\n *\n * Log this event when users share any content of the application.\n *\n * @since 0.1.0\n * @property {ShareParams} params Share event parameters\n */\nconst logShare = (params: ShareParams) => {\n triageEventToProviders(\"share\", params, {\n googleAnalyticsHandler: googleShare,\n facebookPixelHandler: facebookShare,\n segmentHandler: segmentShare\n });\n};\n\nexport default logShare;\n","// events index\nimport logShare from \"./share/share\";\n\nconst events = { logShare };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangeStoreParams } from \"./changeStore.types\";\n\n/**\n * Emits a changeStore event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangeStoreParams} params Event configuration parameters\n */\nconst changeStore = (\n provider: GoogleAnalyticsProvider,\n params: ChangeStoreParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, previousStore, nextStore, ...rest } = params;\n const { storeId: previousStoreId } = previousStore;\n const { storeName: previousStoreName } = previousStore;\n const { storeId: nextStoreId, storeName: nextStoreName } = nextStore;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n previousStoreId,\n previousStoreName,\n nextStoreId,\n nextStoreName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_store\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeStore;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangeStoreParams } from \"./changeStore.types\";\n\n/**\n * Emits a changeStore event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangeStoreParams} params Event configuration parameters\n */\nconst changeStore = (\n provider: FacebookPixelProvider,\n params: ChangeStoreParams\n) => {\n const { trackingId } = provider;\n const { previousStore, nextStore, ...rest } = params;\n delete rest.userId;\n const { storeId: previousStoreId } = previousStore;\n const { storeName: previousStoreName } = previousStore;\n const { storeId: nextStoreId, storeName: nextStoreName } = nextStore;\n const enhancedParams = {\n ...rest,\n previousStoreId,\n previousStoreName,\n nextStoreId,\n nextStoreName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangeStore\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeStore;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangeStoreParams } from \"./changeStore.types\";\n\n/**\n * Emits a changeStore event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangeStoreParams} params Event configuration parameters\n */\nconst changeStore = (provider: SegmentProvider, params: ChangeStoreParams) => {\n const { previousStore, nextStore, ...rest } = params;\n delete rest.userId;\n const { storeId: previousStoreId } = previousStore;\n const { storeName: previousStoreName } = previousStore;\n const { storeId: nextStoreId, storeName: nextStoreName } = nextStore;\n const enhancedParams = {\n ...rest,\n previousStoreId,\n previousStoreName,\n nextStoreId,\n nextStoreName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Store\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeStore;\n","import googleChangeStore from \"../../../providers/GoogleAnalytics/events/store/changeStore/changeStore\";\nimport facebookChangeStore from \"../../../providers/FacebookPixel/events/store/changeStore/changeStore\";\nimport segmentChangeStore from \"../../../providers/Segment/events/store/changeStore/changeStore\";\nimport { ChangeStoreParams } from \"./changeStore.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changeStore event to every configured provider.\n *\n * Log this event when the selected store has changed.\n *\n * @since 0.1.0\n * @property {ChangeStoreParams} params ChangeStore event parameters\n */\nconst logChangeStore = (params: ChangeStoreParams) => {\n triageEventToProviders(\"changeStore\", params, {\n googleAnalyticsHandler: googleChangeStore,\n facebookPixelHandler: facebookChangeStore,\n segmentHandler: segmentChangeStore\n });\n};\n\nexport default logChangeStore;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SetStoreParams } from \"./setStore.types\";\n\n/**\n * Emits a setStore event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SetStoreParams} params Event configuration parameters\n */\nconst setStore = (\n provider: GoogleAnalyticsProvider,\n params: SetStoreParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, store, ...rest } = params;\n const { storeId, storeName } = store;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = {\n ...rest,\n userId: selectedUserId,\n storeId,\n storeName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"set_store\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setStore;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SetStoreParams } from \"./setStore.types\";\n\n/**\n * Emits a setStore event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SetStoreParams} params Event configuration parameters\n */\nconst setStore = (provider: FacebookPixelProvider, params: SetStoreParams) => {\n const { trackingId } = provider;\n const { store, ...rest } = params;\n delete rest.userId;\n const { storeId, storeName } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SetStore\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setStore;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SetStoreParams } from \"./setStore.types\";\n\n/**\n * Emits a setStore event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SetStoreParams} params Event configuration parameters\n */\nconst setStore = (provider: SegmentProvider, params: SetStoreParams) => {\n const { store, ...rest } = params;\n delete rest.userId;\n const { storeId, storeName } = store;\n const enhancedParams = {\n ...rest,\n storeId,\n storeName\n };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Set Store\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setStore;\n","import googleSetStore from \"../../../providers/GoogleAnalytics/events/store/setStore/setStore\";\nimport facebookSetStore from \"../../../providers/FacebookPixel/events/store/setStore/setStore\";\nimport segmentSetStore from \"../../../providers/Segment/events/store/setStore/setStore\";\nimport { SetStoreParams } from \"./setStore.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a setStore event to every configured provider.\n *\n * Log this event when users set a store for the first time.\n *\n * @since 0.1.0\n * @property {SetStoreParams} params SetStore event parameters\n */\nconst logSetStore = (params: SetStoreParams) => {\n triageEventToProviders(\"setStore\", params, {\n googleAnalyticsHandler: googleSetStore,\n facebookPixelHandler: facebookSetStore,\n segmentHandler: segmentSetStore\n });\n};\n\nexport default logSetStore;\n","// events index\nimport logChangeStore from \"./changeStore/changeStore\";\nimport logSetStore from \"./setStore/setStore\";\n\nconst events = { logChangeStore, logSetStore };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SetUserInfoParams } from \"./setUserInfo.types\";\n\n/**\n * Emits a setUserInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SetUserInfoParams} params Event configuration parameters\n */\nconst setUserInfo = (\n provider: GoogleAnalyticsProvider,\n params: SetUserInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"set_user_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setUserInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SetUserInfoParams } from \"./setUserInfo.types\";\n\n/**\n * Emits a setUserInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SetUserInfoParams} params Event configuration parameters\n */\nconst setUserInfo = (\n provider: FacebookPixelProvider,\n params: SetUserInfoParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SetUserInfo\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setUserInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SetUserInfoParams } from \"./setUserInfo.types\";\n\n/**\n * Emits a setUserInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SetUserInfoParams} params Event configuration parameters\n */\nconst setUserInfo = (provider: SegmentProvider, params: SetUserInfoParams) => {\n const { identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Set User Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n analytics.identify(identify.id, identify);\n};\n\nexport default setUserInfo;\n","import googleSetUserInfo from \"../../../providers/GoogleAnalytics/events/user/setUserInfo/setUserInfo\";\nimport facebookSetUserInfo from \"../../../providers/FacebookPixel/events/user/setUserInfo/setUserInfo\";\nimport segmentSetUserInfo from \"../../../providers/Segment/events/user/setUserInfo/setUserInfo\";\nimport { SetUserInfoParams } from \"./setUserInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a setUserInfo event to every configured provider.\n *\n * Log this event when users set data like their birthdate, phone number,\n * etc.\n *\n * @since 0.1.0\n * @property {SetUserInfoParams} params SetUserInfo event parameters\n */\nconst logSetUserInfo = (params: SetUserInfoParams) => {\n triageEventToProviders(\"setUserInfo\", params, {\n googleAnalyticsHandler: googleSetUserInfo,\n facebookPixelHandler: facebookSetUserInfo,\n segmentHandler: segmentSetUserInfo\n });\n};\n\nexport default logSetUserInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateUserInfoParams } from \"./updateUserInfo.types\";\n\n/**\n * Emits a updateUserInfo event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateUserInfoParams} params Event configuration parameters\n */\nconst updateUserInfo = (\n provider: GoogleAnalyticsProvider,\n params: UpdateUserInfoParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"update_user_info\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateUserInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateUserInfoParams } from \"./updateUserInfo.types\";\n\n/**\n * Emits a updateUserInfo event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {UpdateUserInfoParams} params Event configuration parameters\n */\nconst updateUserInfo = (\n provider: FacebookPixelProvider,\n params: UpdateUserInfoParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n delete rest.identify; // This parameter is removed because is a complex parameter for Segment provider only\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"UpdateUserInfo\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateUserInfo;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { transformArrayParam } from \"../../../../../../utils/events.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateUserInfoParams } from \"./updateUserInfo.types\";\n\n/**\n * Emits a updateUserInfo event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {UpdateUserInfoParams} params Event configuration parameters\n */\nconst updateUserInfo = (\n provider: SegmentProvider,\n params: UpdateUserInfoParams\n) => {\n const { fields, identify, ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest, fields: transformArrayParam(fields) };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Update User Info\", {\n ...transformedParams,\n ...transformedMeta\n });\n if (!identify) return;\n analytics.identify(identify.id, identify);\n};\n\nexport default updateUserInfo;\n","import googleUpdateUserInfo from \"../../../providers/GoogleAnalytics/events/user/updateUserInfo/updateUserInfo\";\nimport facebookUpdateUserInfo from \"../../../providers/FacebookPixel/events/user/updateUserInfo/updateUserInfo\";\nimport segmentUpdateUserInfo from \"../../../providers/Segment/events/user/updateUserInfo/updateUserInfo\";\nimport { UpdateUserInfoParams } from \"./updateUserInfo.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits an updateUserInfo event to every configured provider.\n *\n * Log this event when users update data like their birthdate, phone number,\n * etc.\n *\n * @since 0.1.0\n * @property {UpdateUserInfoParams} params UpdateUserInfo event parameters\n */\nconst logUpdateUserInfo = (params: UpdateUserInfoParams) => {\n triageEventToProviders(\"updateUserInfo\", params, {\n googleAnalyticsHandler: googleUpdateUserInfo,\n facebookPixelHandler: facebookUpdateUserInfo,\n segmentHandler: segmentUpdateUserInfo\n });\n};\n\nexport default logUpdateUserInfo;\n","// events index\nimport logSetUserInfo from \"./setUserInfo/setUserInfo\";\nimport logUpdateUserInfo from \"./updateUserInfo/updateUserInfo\";\n\nconst events = { logSetUserInfo, logUpdateUserInfo };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { ChangeVendorParams } from \"./changeVendor.types\";\n\n/**\n * Emits a changeVendor event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {ChangeVendorParams} params Event configuration parameters\n */\nconst changeVendor = (\n provider: GoogleAnalyticsProvider,\n params: ChangeVendorParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"change_vendor\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeVendor;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { ChangeVendorParams } from \"./changeVendor.types\";\n\n/**\n * Emits a changeVendor event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {ChangeVendorParams} params Event configuration parameters\n */\nconst changeVendor = (\n provider: FacebookPixelProvider,\n params: ChangeVendorParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"ChangeVendor\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeVendor;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { ChangeVendorParams } from \"./changeVendor.types\";\n\n/**\n * Emits a changeVendor event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {ChangeVendorParams} params Event configuration parameters\n */\nconst changeVendor = (\n provider: SegmentProvider,\n params: ChangeVendorParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Change Vendor\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default changeVendor;\n","import googleChangeVendor from \"../../../providers/GoogleAnalytics/events/vendor/changeVendor/changeVendor\";\nimport facebookChangeVendor from \"../../../providers/FacebookPixel/events/vendor/changeVendor/changeVendor\";\nimport segmentChangeVendor from \"../../../providers/Segment/events/vendor/changeVendor/changeVendor\";\nimport { ChangeVendorParams } from \"./changeVendor.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a changeVendor event to every configured provider.\n *\n * Log this event when the vendor has change.\n *\n * @since 0.1.0\n * @property {ChangeVendorParams} params ChangeVendor event parameters\n */\nconst logChangeVendor = (params: ChangeVendorParams) => {\n triageEventToProviders(\"changeVendor\", params, {\n googleAnalyticsHandler: googleChangeVendor,\n facebookPixelHandler: facebookChangeVendor,\n segmentHandler: segmentChangeVendor\n });\n};\n\nexport default logChangeVendor;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SetVendorParams } from \"./setVendor.types\";\n\n/**\n * Emits a setVendor event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SetVendorParams} params Event configuration parameters\n */\nconst setVendor = (\n provider: GoogleAnalyticsProvider,\n params: SetVendorParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"set_vendor\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setVendor;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SetVendorParams } from \"./setVendor.types\";\n\n/**\n * Emits a setVendor event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {SetVendorParams} params Event configuration parameters\n */\nconst setVendor = (\n provider: FacebookPixelProvider,\n params: SetVendorParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SetVendor\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setVendor;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SetVendorParams } from \"./setVendor.types\";\n\n/**\n * Emits a setVendor event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {SetVendorParams} params Event configuration parameters\n */\nconst setVendor = (provider: SegmentProvider, params: SetVendorParams) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Set Vendor\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default setVendor;\n","import googleSetVendor from \"../../../providers/GoogleAnalytics/events/vendor/setVendor/setVendor\";\nimport facebookSetVendor from \"../../../providers/FacebookPixel/events/vendor/setVendor/setVendor\";\nimport segmentSetVendor from \"../../../providers/Segment/events/vendor/setVendor/setVendor\";\nimport { SetVendorParams } from \"./setVendor.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a setVendor event to every configured provider.\n *\n * Log this event when users set the vendor for the first time.\n *\n * @since 0.1.0\n * @property {SetVendorParams} params SetVendor event parameters\n */\nconst logSetVendor = (params: SetVendorParams) => {\n triageEventToProviders(\"setVendor\", params, {\n googleAnalyticsHandler: googleSetVendor,\n facebookPixelHandler: facebookSetVendor,\n segmentHandler: segmentSetVendor\n });\n};\n\nexport default logSetVendor;\n","// events index\nimport logChangeVendor from \"./changeVendor/changeVendor\";\nimport logSetVendor from \"./setVendor/setVendor\";\n\nconst events = { logChangeVendor, logSetVendor };\n\nexport default events;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { SelectWorkflowParams } from \"./selectWorkflow.types\";\n\n/**\n * Emits a selectWorkflow event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {SelectWorkflowParams} params Event configuration parameters\n */\nconst selectWorkflow = (\n provider: GoogleAnalyticsProvider,\n params: SelectWorkflowParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"select_workflow\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectWorkflow;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { SelectWorkflowParams } from \"./selectWorkflow.types\";\n\n/**\n * Emits a selectWorkflow event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {selectWorkflowParams} params Event configuration parameters\n */\nconst selectWorkflow = (\n provider: FacebookPixelProvider,\n params: SelectWorkflowParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"SelectWorkflow\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectWorkflow;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { SelectWorkflowParams } from \"./selectWorkflow.types\";\n\n/**\n * Emits a selectWorkflow event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {selectWorkflowParams} params Event configuration parameters\n */\nconst selectWorkflow = (\n provider: SegmentProvider,\n params: SelectWorkflowParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Select Workflow\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default selectWorkflow;\n","import googleSelectWorkflow from \"../../../providers/GoogleAnalytics/events/workflow/selectWorkflow/selectWorkflow\";\nimport facebookSelectWorkflow from \"../../../providers/FacebookPixel/events/workflow/selectWorkflow/selectWorkflow\";\nimport segmentSelectWorkflow from \"../../../providers/Segment/events/workflow/selectWorkflow/selectWorkflow\";\nimport { SelectWorkflowParams } from \"./selectWorkflow.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a SelectWorkflow event to every configured provider.\n *\n * Log this event when users set the workflow for the first time.\n *\n * @since 0.1.0\n * @property {SelectWorkflowParams} params SelectWorkflow event parameters\n */\nconst logSelectWorkflow = (params: SelectWorkflowParams) => {\n triageEventToProviders(\"selectWorkflow\", params, {\n googleAnalyticsHandler: googleSelectWorkflow,\n facebookPixelHandler: facebookSelectWorkflow,\n segmentHandler: segmentSelectWorkflow\n });\n};\n\nexport default logSelectWorkflow;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { GoogleAnalyticsProvider } from \"../../../GoogleAnalytics.types\";\nimport { UpdateWorkflowParams } from \"./updateWorkflow.types\";\n\n/**\n * Emits a updateWorkflow event to a Google Analytics Provider.\n *\n * @since 0.1.0\n * @param {GoogleAnalyticsProvider} provider The provider instance that will emit the event\n * @param {UpdateWorkflowParams} params Event configuration parameters\n */\nconst updateWorkflow = (\n provider: GoogleAnalyticsProvider,\n params: UpdateWorkflowParams\n) => {\n const { trackingId, userId: providerUserId } = provider;\n const { callback, userId, ...rest } = params;\n const selectedUserId = userId ?? providerUserId;\n const enhancedParams = { ...rest, userId: selectedUserId };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n gtag(\"event\", \"update_workflow\", {\n send_to: trackingId,\n event_callback: callback,\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateWorkflow;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { FacebookPixelProvider } from \"../../../FacebookPixel.types\";\nimport { UpdateWorkflowParams } from \"./updateWorkflow.types\";\n\n/**\n * Emits a updateWorkflow event to a Facebook Pixel Provider.\n *\n * @since 0.1.0\n * @param {FacebookPixelProvider} provider The provider instance that will emit the event\n * @param {updateWorkflowParams} params Event configuration parameters\n */\nconst updateWorkflow = (\n provider: FacebookPixelProvider,\n params: UpdateWorkflowParams\n) => {\n const { trackingId } = provider;\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n fbq(\"trackSingleCustom\", trackingId, \"UpdateWorkflow\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateWorkflow;\n","import { eventParamsToSnakeCase } from \"../../../../../../utils/common.utils\";\nimport { getState } from \"../../../../../../utils/state.utils\";\nimport { SegmentProvider } from \"../../../Segment.types\";\nimport { UpdateWorkflowParams } from \"./updateWorkflow.types\";\n\n/**\n * Emits a updateWorkflow event to a Segment Provider.\n *\n * @since 0.1.0\n * @param {SegmentProvider} provider The provider instance that will emit the event\n * @param {updateWorkflowParams} params Event configuration parameters\n */\nconst updateWorkflow = (\n provider: SegmentProvider,\n params: UpdateWorkflowParams\n) => {\n const { ...rest } = params;\n delete rest.userId;\n const enhancedParams = { ...rest };\n const transformedParams = eventParamsToSnakeCase(enhancedParams);\n const { meta } = getState();\n const transformedMeta = eventParamsToSnakeCase(meta);\n analytics.track(\"Update Workflow\", {\n ...transformedParams,\n ...transformedMeta\n });\n};\n\nexport default updateWorkflow;\n","import googleUpdateWorkflow from \"../../../providers/GoogleAnalytics/events/workflow/updateWorkflow/updateWorkflow\";\nimport facebookUpdateWorkflow from \"../../../providers/FacebookPixel/events/workflow/updateWorkflow/updateWorkflow\";\nimport segmentUpdateWorkflow from \"../../../providers/Segment/events/workflow/updateWorkflow/updateWorkflow\";\nimport { UpdateWorkflowParams } from \"./updateWorkflow.types\";\nimport { triageEventToProviders } from \"../../../../utils/events.utils\";\n\n/**\n * Emits a UpdateWorkflow event to every configured provider.\n *\n * Log this event when the workflow has changed.\n *\n * @since 0.1.0\n * @property {UpdateWorkflowParams} params UpdateWorkflow event parameters\n */\nconst logUpdateWorkflow = (params: UpdateWorkflowParams) => {\n triageEventToProviders(\"updateWorkflow\", params, {\n googleAnalyticsHandler: googleUpdateWorkflow,\n facebookPixelHandler: facebookUpdateWorkflow,\n segmentHandler: segmentUpdateWorkflow\n });\n};\n\nexport default logUpdateWorkflow;\n","// events index\nimport logSelectWorkflow from \"./selectWorkflow/selectWorkflow\";\nimport logUpdateWorkflow from \"./updateWorkflow/updateWorkflow\";\n\nconst events = { logSelectWorkflow, logUpdateWorkflow };\n\nexport default events;\n","// events index\nimport auth from \"./auth\";\nimport banner from \"./banner\";\nimport billing from \"./billing\";\nimport booking from \"./booking\";\nimport category from \"./category\";\nimport checkout from \"./checkout\";\nimport coupon from \"./coupon\";\nimport credit from \"./credit\";\nimport logCustomEvent from \"./customEvent/customEvent\";\nimport fulfillment from \"./fulfillment\";\nimport geo from \"./geo\";\nimport help from \"./help\";\nimport loyalty from \"./loyalty\";\nimport order from \"./order\";\nimport other from \"./other\";\nimport payment from \"./payment\";\nimport product from \"./product\";\nimport purchase from \"./purchase\";\nimport settings from \"./settings\";\nimport shipping from \"./shipping\";\nimport shoppingCart from \"./shoppingCart\";\nimport social from \"./social\";\nimport store from \"./store\";\nimport user from \"./user\";\nimport vendor from \"./vendor\";\nimport workflow from \"./workflow\";\n\nconst events = {\n auth,\n banner,\n billing,\n booking,\n category,\n checkout,\n coupon,\n credit,\n fulfillment,\n geo,\n help,\n logCustomEvent,\n loyalty,\n order,\n other,\n payment,\n product,\n purchase,\n settings,\n shipping,\n shoppingCart,\n social,\n store,\n user,\n vendor,\n workflow\n};\n\nexport default events;\n","import { Vendor } from \"@artisan-commerce/types\";\n\nimport { logMessage } from \"./logs.utils\";\nimport { getState, setState } from \"./state.utils\";\n\n/**\n * Utility function to update the active vendor.\n *\n * @since 0.1.0\n * @param {Vendor|number} vendor New active vendor\n */\nexport const updateActiveVendor = (\n vendor: Vendor | Vendor[\"id\"] | -1 | undefined\n) => {\n const vendorType = typeof vendor;\n if (\n vendorType !== \"string\" &&\n vendor !== -1 &&\n vendorType !== \"object\" &&\n vendorType !== \"undefined\"\n ) {\n return logMessage(\n \"The type of vendor must be a string, -1 or Vendor type\",\n \"severe\"\n );\n }\n const oldState = getState();\n if (\n typeof vendor === \"string\" ||\n typeof vendor === \"undefined\" ||\n vendor === -1\n ) {\n setState({\n ...oldState,\n activeVendor: vendor,\n meta: { ...oldState.meta, vendorName: undefined, vendorId: vendor }\n });\n } else {\n const { id, name } = vendor;\n setState({\n ...oldState,\n activeVendor: id,\n meta: { ...oldState.meta, vendorName: name, vendorId: id }\n });\n }\n};\n","import { Segment } from \"../lib/providers/Segment/Segment.types\";\n\n/**\n * Utility function to identify a user across Segment destinations.\n *\n * @since 0.1.0\n * @param {Segment.Traits} identify Pieces of information you know about a user that are included in an identify call\n */\nexport const identifyUser = (identify: Segment.Traits) => {\n analytics.identify(identify.id, identify);\n};\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","state","setState","getState","initialState","getStateLib","setStateLib","CONSTANTS","__spreadProps","changePasswordAttempt","__defProp$k","__getOwnPropSymbols$k","__hasOwnProp$k","__propIsEnum$k","__defNormalProp$k","__spreadValues$k","isBaseProduct","isProductDetails","isCartProduct","__defProp$7$1","__defProps$5$1","__getOwnPropDescs$5$1","__getOwnPropSymbols$7$1","__hasOwnProp$7$1","__propIsEnum$7$1","__defNormalProp$7$1","__spreadValues$7$1","__spreadProps$5$1","operationOnProductQA","__defProp$6$1","__defProps$4$1","__getOwnPropDescs$4$1","__getOwnPropSymbols$6$1","__hasOwnProp$6$1","__propIsEnum$6$1","__defNormalProp$6$1","__spreadValues$6$1","__spreadProps$4$1","toCartProductFromProductDetails","toProductDetails","getProductTotals","getProductGrossPrice","getProductTotalDiscounts","getProductTotalTaxes","getProductNetPrice","getTaxTotal","getModifiersTotalTaxes","getProductFieldPrice","getModifiersFieldTotal","__defProp$g","__defProps$c","__getOwnPropDescs$c","__getOwnPropSymbols$g","__hasOwnProp$g","__propIsEnum$g","__defNormalProp$g","__spreadValues$g","__spreadProps$c","__defProp$7","__defProps$5","__getOwnPropDescs$5","__getOwnPropSymbols$7","__hasOwnProp$7","__propIsEnum$7","__defNormalProp$7","__spreadValues$7","__spreadProps$5","__defProp$6","__defProps$4","__getOwnPropDescs$4","__getOwnPropSymbols$6","__hasOwnProp$6","__propIsEnum$6","__defNormalProp$6","__spreadValues$6","__spreadProps$4","googleChangePasswordAttempt","facebookChangePasswordAttempt","segmentChangePasswordAttempt","signUpAttempt","googleSignUpAttempt","facebookSignUpAttempt","segmentSignUpAttempt","changePasswordFail","googleChangePasswordFail","facebookChangePasswordFail","segmentChangePasswordFail","changePasswordSuccess","googleChangePasswordSuccess","facebookChangePasswordSuccess","segmentChangePasswordSuccess","signIn","googleSignIn","facebookSignIn","segmentSignIn","signOut","googleSignOut","facebookSignOut","segmentSignOut","signUp","googleSignUp","facebookSignUp","segmentSignUp","events","bannerImpression","googleBannerImpression","facebookBannerImpression","segmentBannerImpression","selectBanner","googleSelectBanner","facebookSelectBanner","segmentSelectBanner","addBillingInfo","googleAddBillingInfo","facebookAddBillingInfo","segmentAddBillingInfo","selectBillingInfo","googleSelectBillingInfo","facebookSelectBillingInfo","segmentSelectBillingInfo","updateBillingInfo","googleUpdateBillingInfo","facebookUpdateBillingInfo","segmentUpdateBillingInfo","bookAppointment","googleBookAppointment","facebookBookAppointment","segmentBookAppointment","categoryImpression","googleCategoryImpression","facebookCategoryImpression","segmentCategoryImpression","searchCategoryAttempt","googleSearchCategoryAttempt","facebookSearchCategoryAttempt","segmentSearchCategoryAttempt","selectCategory","googleSelectCategory","facebookSelectCategory","segmentSelectCategory","viewCategory","googleViewCategory","facebookViewCategory","segmentViewCategory","checkoutAction","googleCheckoutAction","facebookCheckoutAction","segmentCheckoutAction","initiateCheckout","googleInitiateCheckout","facebookInitiateCheckout","segmentInitiateCheckout","applyBenefit","googleApplyBenefit","facebookApplyBenefit","segmentApplyBenefit","couponCodeError","googleCouponCodeError","facebookCouponCodeError","segmentCouponCodeError","redeemCouponCode","googleRedeemCouponCode","facebookRedeemCouponCode","segmentRedeemCouponCode","removeBenefit","googleRemoveBenefit","facebookRemoveBenefit","segmentRemoveBenefit","viewBenefitDetails","googleViewBenefitDetails","facebookViewBenefitDetails","segmentViewBenefitDetails","viewBenefitsWallet","googleViewBenefitsWallet","facebookViewBenefitsWallet","segmentViewBenefitsWallet","viewQRStoreCoupon","googleViewQRStoreCoupon","facebookViewQRStoreCoupon","segmentViewQRStoreCoupon","addCredits","googleAddCredits","facebookAddCredits","segmentAddCredits","spendCredits","googleSpendCredits","facebookSpendCredits","segmentSpendCredits","viewCredits","googleViewCredits","facebookViewCredits","segmentViewCredits","customEvent","googleCustomEvent","facebookCustomEvent","segmentCustomEvent","viewFulfillmentStep","googleViewFulfillmentStep","facebookViewFulfillmentStep","segmentViewFulfillmentStep","viewTracking","googleViewTracking","facebookViewTracking","segmentViewTracking","changeLocation","googleChangeLocation","facebookChangeLocation","segmentChangeLocation","findLocation","googleFindLocation","facebookFindLocation","segmentFindLocation","outOfCoverage","googleOutOfCoverage","facebookOutOfCoverage","segmentOutOfCoverage","setLocation","googleSetLocation","facebookSetLocation","segmentSetLocation","requestAssistance","googleRequestAssistance","facebookRequestAssistance","segmentRequestAssistance","earnPoints","googleEarnPoints","facebookEarnPoints","segmentEarnPoints","sharePoints","googleSharePoints","facebookSharePoints","segmentSharePoints","spendPoints","googleSpendPoints","facebookSpendPoints","segmentSpendPoints","viewLoyaltyLevel","googleViewLoyaltyLevel","facebookViewLoyaltyLevel","segmentViewLoyaltyLevel","cancelOrder","googleCancelOrder","facebookCancelOrder","segmentCancelOrder","rateOrder","googleRateOrder","facebookRateOrder","segmentRateOrder","requestRefund","googleRequestRefund","facebookRequestRefund","segmentRequestRefund","generateLead","googleGenerateLead","facebookGenerateLead","segmentGenerateLead","pageView","googlePageView","facebookPageView","searchPageContent","googleSearchPageContent","facebookSearchPageContent","segmentSearchPageContent","changePaymentType","googleChangePaymentType","facebookChangePaymentType","segmentChangePaymentType","selectPaymentType","googleSelectPaymentType","facebookSelectPaymentType","segmentSelectPaymentType","setPaymentInfo","googleSetPaymentInfo","facebookSetPaymentInfo","segmentSetPaymentInfo","customizeProduct","googleCustomizeProduct","facebookCustomizeProduct","segmentCustomizeProduct","filterProducts","googleFilterProducts","facebookFilterProducts","segmentFilterProducts","productImpression","googleProductImpression","facebookProductImpression","segmentProductImpression","searchProductSuccess","googleSearchProductSuccess","facebookSearchProductSuccess","segmentSearchProductSuccess","searchProductAttempt","googleSearchProductAttempt","facebookSearchProductAttempt","segmentSearchProductAttempt","searchProductNotFound","googleSearchProductNotFound","facebookSearchProductNotFound","segmentSearchProductNotFound","selectProduct","googleSelectProduct","facebookSelectProduct","segmentSelectProduct","sortProducts","googleSortProducts","facebookSortProducts","segmentSortProducts","viewProductDetails","googleViewProductDetails","facebookViewProductDetails","segmentViewProductDetails","purchaseAttempt","googlePurchaseAttempt","facebookPurchaseAttempt","segmentPurchaseAttempt","purchaseFail","googlePurchaseFail","facebookPurchaseFail","segmentPurchaseFail","purchaseSuccess","googlePurchaseSuccess","facebookPurchaseSuccess","segmentPurchaseSuccess","viewSettings","googleViewSettings","facebookViewSettings","segmentViewSettings","addShippingAddress","googleAddShippingAddress","facebookAddShippingAddress","segmentAddShippingAddress","selectShippingAddress","googleSelectShippingAddress","facebookSelectShippingAddress","segmentSelectShippingAddress","updateShippingAddress","googleUpdateShippingAddress","facebookUpdateShippingAddress","segmentUpdateShippingAddress","addProductToCart","googleAddProductToCart","facebookAddProductToCart","segmentAddProductToCart","addProductToWishlist","googleAddProductToWishlist","facebookAddProductToWishlist","segmentAddProductToWishlist","clearCart","googleClearCart","facebookClearCart","segmentClearCart","removeProductFromCart","googleRemoveProductFromCart","facebookRemoveProductFromCart","segmentRemoveProductFromCart","removeProductFromWishlist","googleRemoveProductFromWishlist","facebookRemoveProductFromWishlist","segmentRemoveProductFromWishlist","updateProductInCart","googleUpdateProductInCart","facebookUpdateProductInCart","segmentUpdateProductInCart","updateProductInWishlist","googleUpdateProductInWishlist","facebookUpdateProductInWishlist","segmentUpdateProductInWishlist","viewCart","googleViewCart","facebookViewCart","segmentViewCart","share","googleShare","facebookShare","segmentShare","changeStore","googleChangeStore","facebookChangeStore","segmentChangeStore","setStore","googleSetStore","facebookSetStore","segmentSetStore","setUserInfo","googleSetUserInfo","facebookSetUserInfo","segmentSetUserInfo","updateUserInfo","googleUpdateUserInfo","facebookUpdateUserInfo","segmentUpdateUserInfo","changeVendor","googleChangeVendor","facebookChangeVendor","segmentChangeVendor","setVendor","googleSetVendor","facebookSetVendor","segmentSetVendor","selectWorkflow","googleSelectWorkflow","facebookSelectWorkflow","segmentSelectWorkflow","updateWorkflow","googleUpdateWorkflow","facebookUpdateWorkflow","segmentUpdateWorkflow","auth","banner","billing","booking","category","checkout","coupon","credit","fulfillment","geo","help","loyalty","order","other","payment","product","purchase","settings","shipping","shoppingCart","social","store","user","vendor","workflow"],"mappings":"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"}
|