@envive-ai/react-hooks 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +35 -0
  2. package/dist/AmplitudeOperations-BEGeYKG5.cjs +0 -0
  3. package/dist/AmplitudeOperations-CWI4yjZ4.js +1 -0
  4. package/dist/NewOrgConfig-B98Y9tMb.js +10 -0
  5. package/dist/NewOrgConfig-ZbBKiByQ.cjs +15 -0
  6. package/dist/SystemSettingsContext-CO5c1L62.cjs +20 -0
  7. package/dist/SystemSettingsContext-CXmUlH8i.js +13 -0
  8. package/dist/TrackComponentVisibleEvent-B0WO3ArV.js +52 -0
  9. package/dist/TrackComponentVisibleEvent-LRE9MYzL.cjs +59 -0
  10. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  11. package/dist/amplitudeContext-DXnJi0V1.d.ts +52 -0
  12. package/dist/api-BWSsazAG.js +166 -0
  13. package/dist/api-DeW6rHj3.cjs +239 -0
  14. package/dist/application/models/graphql/index.cjs +5 -0
  15. package/dist/application/models/graphql/index.d.cts +2 -0
  16. package/dist/application/models/graphql/index.d.ts +2 -0
  17. package/dist/application/models/graphql/index.js +4 -0
  18. package/dist/application/models/guards/api/index.cjs +16 -0
  19. package/dist/application/models/guards/api/index.d.cts +3 -0
  20. package/dist/application/models/guards/api/index.d.ts +3 -0
  21. package/dist/application/models/guards/api/index.js +5 -0
  22. package/dist/application/models/guards/utils.cjs +3 -0
  23. package/dist/application/models/guards/utils.d.cts +2 -0
  24. package/dist/application/models/guards/utils.d.ts +2 -0
  25. package/dist/application/models/guards/utils.js +3 -0
  26. package/dist/application/models/index.cjs +70 -0
  27. package/dist/application/models/index.d.cts +12 -0
  28. package/dist/application/models/index.d.ts +12 -0
  29. package/dist/application/models/index.js +12 -0
  30. package/dist/application/models/utilityTypes/index.cjs +1 -0
  31. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  32. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  33. package/dist/application/models/utilityTypes/index.js +3 -0
  34. package/dist/application/models/variantInfo/index.cjs +3 -0
  35. package/dist/application/models/variantInfo/index.d.cts +2 -0
  36. package/dist/application/models/variantInfo/index.d.ts +2 -0
  37. package/dist/application/models/variantInfo/index.js +3 -0
  38. package/dist/application/utils/index.cjs +47 -0
  39. package/dist/application/utils/index.d.cts +263 -0
  40. package/dist/application/utils/index.d.ts +263 -0
  41. package/dist/application/utils/index.js +21 -0
  42. package/dist/atomStore-DNji91Im.cjs +58 -0
  43. package/dist/atomStore-DXTVqiKc.js +32 -0
  44. package/dist/atoms/app/index.cjs +25 -0
  45. package/dist/atoms/app/index.d.cts +39 -0
  46. package/dist/atoms/app/index.d.ts +39 -0
  47. package/dist/atoms/app/index.js +21 -0
  48. package/dist/atoms/atomStore/index.cjs +6 -0
  49. package/dist/atoms/atomStore/index.d.cts +24 -0
  50. package/dist/atoms/atomStore/index.d.ts +24 -0
  51. package/dist/atoms/atomStore/index.js +3 -0
  52. package/dist/atoms/chat/index.cjs +52 -0
  53. package/dist/atoms/chat/index.d.cts +163 -0
  54. package/dist/atoms/chat/index.d.ts +163 -0
  55. package/dist/atoms/chat/index.js +23 -0
  56. package/dist/atoms/globalSearch/index.cjs +6 -0
  57. package/dist/atoms/globalSearch/index.d.cts +24 -0
  58. package/dist/atoms/globalSearch/index.d.ts +24 -0
  59. package/dist/atoms/globalSearch/index.js +3 -0
  60. package/dist/atoms/org/index.cjs +18 -0
  61. package/dist/atoms/org/index.d.cts +59 -0
  62. package/dist/atoms/org/index.d.ts +59 -0
  63. package/dist/atoms/org/index.js +5 -0
  64. package/dist/atoms/search/index.cjs +60 -0
  65. package/dist/atoms/search/index.d.cts +14 -0
  66. package/dist/atoms/search/index.d.ts +14 -0
  67. package/dist/atoms/search/index.js +30 -0
  68. package/dist/atoms/search/types.cjs +5 -0
  69. package/dist/atoms/search/types.d.cts +2 -0
  70. package/dist/atoms/search/types.d.ts +2 -0
  71. package/dist/atoms/search/types.js +3 -0
  72. package/dist/atoms/search/utils.cjs +3 -0
  73. package/dist/atoms/search/utils.d.cts +5 -0
  74. package/dist/atoms/search/utils.d.ts +5 -0
  75. package/dist/atoms/search/utils.js +3 -0
  76. package/dist/cdnContext-CH_-ssYa.js +38 -0
  77. package/dist/cdnContext-D7kHxOzE.cjs +53 -0
  78. package/dist/chat-ClvJ9xEj.js +25 -0
  79. package/dist/chat-CqPuT9_V.cjs +393 -0
  80. package/dist/chat-DCGriB7h.cjs +145 -0
  81. package/dist/chat-DH70QqJp.js +257 -0
  82. package/dist/chatElementDisplayLocation-BoE6DEdv.d.ts +25 -0
  83. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  84. package/dist/chatSearch-BQCZI8MJ.cjs +418 -0
  85. package/dist/chatSearch-D8xCWU8m.js +295 -0
  86. package/dist/chatState-CcFtSqJT.cjs +120 -0
  87. package/dist/chatState-DKnNHmwe.js +34 -0
  88. package/dist/chunk-CUT6urMc.cjs +30 -0
  89. package/dist/common-DQPvV_S_.cjs +189 -0
  90. package/dist/common-c_4eX0qn.js +39 -0
  91. package/dist/components-CDpaMUjK.js +11 -0
  92. package/dist/components-DKwVHIjq.cjs +29 -0
  93. package/dist/config/index.cjs +71 -0
  94. package/dist/config/index.d.cts +5 -0
  95. package/dist/config/index.d.ts +5 -0
  96. package/dist/config/index.js +6 -0
  97. package/dist/config/locators/components/chat/index.cjs +22 -0
  98. package/dist/config/locators/components/chat/index.d.cts +2 -0
  99. package/dist/config/locators/components/chat/index.d.ts +2 -0
  100. package/dist/config/locators/components/chat/index.js +3 -0
  101. package/dist/config/locators/components/chat/variants/index.cjs +29 -0
  102. package/dist/config/locators/components/chat/variants/index.d.cts +16 -0
  103. package/dist/config/locators/components/chat/variants/index.d.ts +16 -0
  104. package/dist/config/locators/components/chat/variants/index.js +17 -0
  105. package/dist/config/locators/components/common/index.cjs +27 -0
  106. package/dist/config/locators/components/common/index.d.cts +2 -0
  107. package/dist/config/locators/components/common/index.d.ts +2 -0
  108. package/dist/config/locators/components/common/index.js +3 -0
  109. package/dist/config/locators/components/index.cjs +5 -0
  110. package/dist/config/locators/components/index.d.cts +2 -0
  111. package/dist/config/locators/components/index.d.ts +2 -0
  112. package/dist/config/locators/components/index.js +3 -0
  113. package/dist/config/locators/components/search/index.cjs +13 -0
  114. package/dist/config/locators/components/search/index.d.cts +8 -0
  115. package/dist/config/locators/components/search/index.d.ts +8 -0
  116. package/dist/config/locators/components/search/index.js +9 -0
  117. package/dist/config/locators/index.cjs +71 -0
  118. package/dist/config/locators/index.d.cts +5 -0
  119. package/dist/config/locators/index.d.ts +5 -0
  120. package/dist/config/locators/index.js +6 -0
  121. package/dist/contexts/amplitudeContext/index.cjs +23 -0
  122. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  123. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  124. package/dist/contexts/amplitudeContext/index.js +21 -0
  125. package/dist/contexts/cdnContext/index.cjs +7 -0
  126. package/dist/contexts/cdnContext/index.d.cts +15 -0
  127. package/dist/contexts/cdnContext/index.d.ts +15 -0
  128. package/dist/contexts/cdnContext/index.js +6 -0
  129. package/dist/contexts/chatContext/index.cjs +326 -0
  130. package/dist/contexts/chatContext/index.d.cts +15 -0
  131. package/dist/contexts/chatContext/index.d.ts +15 -0
  132. package/dist/contexts/chatContext/index.js +319 -0
  133. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  134. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  135. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  136. package/dist/contexts/enviveConfigContext/index.js +6 -0
  137. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  138. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  139. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  140. package/dist/contexts/enviveCssContext/index.js +63 -0
  141. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  142. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  143. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  144. package/dist/contexts/featureFlagContext/index.js +103 -0
  145. package/dist/contexts/featureFlagServiceContext/index.cjs +7 -0
  146. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  147. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  148. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  149. package/dist/contexts/graphqlContext/index.cjs +16 -0
  150. package/dist/contexts/graphqlContext/index.d.cts +14 -0
  151. package/dist/contexts/graphqlContext/index.d.ts +14 -0
  152. package/dist/contexts/graphqlContext/index.js +15 -0
  153. package/dist/contexts/localStorageContext/index.cjs +6 -0
  154. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  155. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  156. package/dist/contexts/localStorageContext/index.js +4 -0
  157. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  158. package/dist/contexts/newOrgConfigContext/index.d.cts +15 -0
  159. package/dist/contexts/newOrgConfigContext/index.d.ts +15 -0
  160. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  161. package/dist/contexts/searchContext/index.cjs +27 -0
  162. package/dist/contexts/searchContext/index.d.cts +16 -0
  163. package/dist/contexts/searchContext/index.d.ts +16 -0
  164. package/dist/contexts/searchContext/index.js +26 -0
  165. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  166. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  167. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  168. package/dist/contexts/sessionStorageContext/index.js +4 -0
  169. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  170. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  171. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  172. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  173. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  174. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  175. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  176. package/dist/contexts/systemSettingsContext/index.js +6 -0
  177. package/dist/contexts/types.cjs +7 -0
  178. package/dist/contexts/types.d.cts +4 -0
  179. package/dist/contexts/types.d.ts +4 -0
  180. package/dist/contexts/types.js +3 -0
  181. package/dist/contexts/userIdentityContext/index.cjs +22 -0
  182. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  183. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  184. package/dist/contexts/userIdentityContext/index.js +21 -0
  185. package/dist/domObserver-Bqf3ooj8.cjs +304 -0
  186. package/dist/domObserver-v9ODTyfT.js +285 -0
  187. package/dist/enviveConfig-DZBohDpc.js +62 -0
  188. package/dist/enviveConfig-Dv9-esGV.cjs +130 -0
  189. package/dist/enviveConfigContext-D2OELZDR.cjs +60 -0
  190. package/dist/enviveConfigContext-DrDjCems.js +45 -0
  191. package/dist/events/index.cjs +4 -0
  192. package/dist/events/index.d.cts +46 -0
  193. package/dist/events/index.d.ts +46 -0
  194. package/dist/events/index.js +3 -0
  195. package/dist/events-DYY4l817.cjs +90 -0
  196. package/dist/events-DyUix-Bn.js +78 -0
  197. package/dist/featureFlagServiceContext-CJyYItqu.cjs +62 -0
  198. package/dist/featureFlagServiceContext-C_2m4wPL.d.ts +23 -0
  199. package/dist/featureFlagServiceContext-CiKWV306.d.cts +23 -0
  200. package/dist/featureFlagServiceContext-FBM6DdMJ.js +42 -0
  201. package/dist/featureGates-KEwAL8p_.js +26 -0
  202. package/dist/featureGates-qU_ulhpC.cjs +32 -0
  203. package/dist/frontendConfig-CymUbclV.d.ts +856 -0
  204. package/dist/frontendConfig-tVg0hsWZ.d.cts +856 -0
  205. package/dist/globalSearch-Ccxq8hNF.js +14 -0
  206. package/dist/globalSearch-FBk2epe8.cjs +39 -0
  207. package/dist/graphql-3PxNRFOc.js +36 -0
  208. package/dist/graphql-DGYfelZp.cjs +53 -0
  209. package/dist/graphqlConfig-GHZ1UgCw.cjs +73 -0
  210. package/dist/graphqlConfig-mDg6J44N.js +24 -0
  211. package/dist/graphqlContext-BZPEAFSR.cjs +111 -0
  212. package/dist/graphqlContext-Bf3E-V2T.d.cts +28 -0
  213. package/dist/graphqlContext-CQikpV_I.d.ts +28 -0
  214. package/dist/graphqlContext-eaZPxgRE.js +96 -0
  215. package/dist/hooks/AmplitudeOperations/index.cjs +23 -0
  216. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  217. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  218. package/dist/hooks/AmplitudeOperations/index.js +23 -0
  219. package/dist/hooks/AppDetails/index.cjs +24 -0
  220. package/dist/hooks/AppDetails/index.d.cts +27 -0
  221. package/dist/hooks/AppDetails/index.d.ts +27 -0
  222. package/dist/hooks/AppDetails/index.js +24 -0
  223. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  224. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  225. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  226. package/dist/hooks/BlockBackButton/index.js +27 -0
  227. package/dist/hooks/CdnOperations/index.cjs +24 -0
  228. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  229. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  230. package/dist/hooks/CdnOperations/index.js +22 -0
  231. package/dist/hooks/ChatToggle/index.cjs +64 -0
  232. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  233. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  234. package/dist/hooks/ChatToggle/index.js +62 -0
  235. package/dist/hooks/ChatToggleAnalytics/index.cjs +39 -0
  236. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  237. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  238. package/dist/hooks/ChatToggleAnalytics/index.js +37 -0
  239. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  240. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  241. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  242. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  243. package/dist/hooks/Debounce/index.cjs +3 -0
  244. package/dist/hooks/Debounce/index.d.cts +5 -0
  245. package/dist/hooks/Debounce/index.d.ts +5 -0
  246. package/dist/hooks/Debounce/index.js +3 -0
  247. package/dist/hooks/ElementObserver/index.cjs +179 -0
  248. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  249. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  250. package/dist/hooks/ElementObserver/index.js +177 -0
  251. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  252. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  253. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  254. package/dist/hooks/GrabAndScroll/index.js +97 -0
  255. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  256. package/dist/hooks/GraphQLConfig/index.d.cts +28 -0
  257. package/dist/hooks/GraphQLConfig/index.d.ts +28 -0
  258. package/dist/hooks/GraphQLConfig/index.js +16 -0
  259. package/dist/hooks/IdentifyUser/index.cjs +55 -0
  260. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  261. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  262. package/dist/hooks/IdentifyUser/index.js +53 -0
  263. package/dist/hooks/ImageResolver/index.cjs +55 -0
  264. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  265. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  266. package/dist/hooks/ImageResolver/index.js +53 -0
  267. package/dist/hooks/Intersection/index.cjs +3 -0
  268. package/dist/hooks/Intersection/index.d.cts +7 -0
  269. package/dist/hooks/Intersection/index.d.ts +7 -0
  270. package/dist/hooks/Intersection/index.js +3 -0
  271. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  272. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  273. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  274. package/dist/hooks/IsSmallScreen/index.js +20 -0
  275. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  276. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  277. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  278. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  279. package/dist/hooks/MessageFilter/index.cjs +54 -0
  280. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  281. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  282. package/dist/hooks/MessageFilter/index.js +54 -0
  283. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  284. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  285. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  286. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  287. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  288. package/dist/hooks/NewOrgConfig/index.d.cts +20 -0
  289. package/dist/hooks/NewOrgConfig/index.d.ts +20 -0
  290. package/dist/hooks/NewOrgConfig/index.js +20 -0
  291. package/dist/hooks/Search/index.cjs +325 -0
  292. package/dist/hooks/Search/index.d.cts +61 -0
  293. package/dist/hooks/Search/index.d.ts +61 -0
  294. package/dist/hooks/Search/index.js +322 -0
  295. package/dist/hooks/SearchOperations/index.cjs +105 -0
  296. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  297. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  298. package/dist/hooks/SearchOperations/index.js +102 -0
  299. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  300. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  301. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  302. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  303. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  304. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  305. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  306. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  307. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  308. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  309. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  310. package/dist/hooks/SnapCalculator/index.js +27 -0
  311. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  312. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  313. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  314. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  315. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +23 -0
  316. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  317. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  318. package/dist/hooks/TrackComponentVisibleEvent/index.js +23 -0
  319. package/dist/hooks/UpdateAnalyticsProps/index.cjs +63 -0
  320. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  321. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  322. package/dist/hooks/UpdateAnalyticsProps/index.js +60 -0
  323. package/dist/hooks/utils.cjs +8 -0
  324. package/dist/hooks/utils.d.cts +13 -0
  325. package/dist/hooks/utils.d.ts +13 -0
  326. package/dist/hooks/utils.js +3 -0
  327. package/dist/index-9NE86em3.d.cts +35 -0
  328. package/dist/index-BVf069X-.d.ts +184 -0
  329. package/dist/index-B_KJB5L_.d.cts +186 -0
  330. package/dist/index-BkLv_fCu.d.ts +186 -0
  331. package/dist/index-Bmub8e38.d.cts +98 -0
  332. package/dist/index-C0eAp5f5.d.ts +98 -0
  333. package/dist/index-CESxqFso.d.cts +228 -0
  334. package/dist/index-CG3P8xE1.d.cts +676 -0
  335. package/dist/index-CJc7_j_v.d.ts +44 -0
  336. package/dist/index-CiWEYzXl.d.cts +184 -0
  337. package/dist/index-Cyq5HiC0.d.cts +44 -0
  338. package/dist/index-DBqgBV9N.d.ts +9 -0
  339. package/dist/index-DHgVW8ey.d.ts +35 -0
  340. package/dist/index-DL2ODEnw.d.ts +1 -0
  341. package/dist/index-Da1s8h5C.d.cts +9 -0
  342. package/dist/index-DgjDuQl4.d.ts +676 -0
  343. package/dist/index-DzbkQtaK.d.cts +24 -0
  344. package/dist/index-FQjyuD3D.d.cts +22 -0
  345. package/dist/index-LTdMHOxj.d.ts +22 -0
  346. package/dist/index-RcVcRKH7.d.cts +1 -0
  347. package/dist/index-nDWHlouq.d.ts +24 -0
  348. package/dist/index-vP8BKdxl.d.ts +228 -0
  349. package/dist/interceptors/index.cjs +4 -0
  350. package/dist/interceptors/index.d.cts +20 -0
  351. package/dist/interceptors/index.d.ts +20 -0
  352. package/dist/interceptors/index.js +4 -0
  353. package/dist/interceptors/types.cjs +1 -0
  354. package/dist/interceptors/types.d.cts +13 -0
  355. package/dist/interceptors/types.d.ts +13 -0
  356. package/dist/interceptors/types.js +3 -0
  357. package/dist/localStorageContext-BPZ82q-G.js +95 -0
  358. package/dist/localStorageContext-NRP-CdmF.cjs +115 -0
  359. package/dist/locators-BMQGmGLq.js +23 -0
  360. package/dist/locators-DxYdak1F.cjs +131 -0
  361. package/dist/logger-TBIl4uIH.cjs +26 -0
  362. package/dist/logger-W3lqg-4b.js +20 -0
  363. package/dist/models-D-4db7XW.cjs +1537 -0
  364. package/dist/models-c86hYW-F.js +1296 -0
  365. package/dist/newOrgConfigAtom-A4BEeHMf.cjs +15 -0
  366. package/dist/newOrgConfigAtom-OzAyrPS8.js +8 -0
  367. package/dist/newOrgConfigContext-DOdUxlOE.d.cts +16 -0
  368. package/dist/newOrgConfigContext-DX9iqIIK.cjs +68 -0
  369. package/dist/newOrgConfigContext-aqN8Tu79.js +53 -0
  370. package/dist/newOrgConfigContext-jphS5d4K.d.ts +16 -0
  371. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  372. package/dist/nodeSelector-Dcn3_NrZ.d.ts +31 -0
  373. package/dist/org-Bq2KsJSp.cjs +43 -0
  374. package/dist/org-gtWmGw4K.js +12 -0
  375. package/dist/search-BQPMtze5.cjs +205 -0
  376. package/dist/search-CIrqYYMI.d.ts +20 -0
  377. package/dist/search-PXzaYtZj.js +126 -0
  378. package/dist/search-filter-types-BhK20ts3.d.ts +102 -0
  379. package/dist/search-filter-types-BxaNSLs_.d.cts +102 -0
  380. package/dist/search-y-ioX5Mz.d.cts +20 -0
  381. package/dist/searchContext-CmsLR6Ka.cjs +145 -0
  382. package/dist/searchContext-NPfqMf6b.js +129 -0
  383. package/dist/searchServiceAdapter-BczodJGV.cjs +34 -0
  384. package/dist/searchServiceAdapter-BuEHFG5t.js +16 -0
  385. package/dist/sessionStorageContext-C1u04nAK.js +52 -0
  386. package/dist/sessionStorageContext-Cy8xc9-3.cjs +66 -0
  387. package/dist/shopifyUrlContext-CUyq3f27.cjs +75 -0
  388. package/dist/shopifyUrlContext-DTLlqlMj.js +61 -0
  389. package/dist/spiffyWidgets-BnkP5kXf.d.ts +20 -0
  390. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  391. package/dist/systemSettingsContext-Ba-wi2NZ.cjs +60 -0
  392. package/dist/systemSettingsContext-DumUaV0m.js +39 -0
  393. package/dist/test-types-DbrKQIqB.d.ts +40 -0
  394. package/dist/test-types-ThQiO_cc.d.cts +40 -0
  395. package/dist/types/index.cjs +34 -0
  396. package/dist/types/index.d.cts +3 -0
  397. package/dist/types/index.d.ts +3 -0
  398. package/dist/types/index.js +31 -0
  399. package/dist/types-BWzwd0Qc.js +30 -0
  400. package/dist/types-CEx2uKKS.d.ts +51 -0
  401. package/dist/types-CKMMb_gX.d.cts +51 -0
  402. package/dist/types-CKPddlfS.cjs +0 -0
  403. package/dist/types-CtUb63bt.js +76 -0
  404. package/dist/types-Cz8CaPUQ.cjs +48 -0
  405. package/dist/types-Dc6hx6ei.js +1 -0
  406. package/dist/types-Mwm0bS2l.d.ts +10 -0
  407. package/dist/types-UUvB6h05.cjs +106 -0
  408. package/dist/types-zQGBI-Yo.d.cts +10 -0
  409. package/dist/types.cjs +0 -0
  410. package/dist/types.d.cts +15 -0
  411. package/dist/types.d.ts +15 -0
  412. package/dist/types.js +1 -0
  413. package/dist/urlsParser-COzMdJaX.cjs +78 -0
  414. package/dist/urlsParser-DxjoLj98.js +42 -0
  415. package/dist/useAmplitudeOperations-Cv0fi3uj.cjs +41 -0
  416. package/dist/useAmplitudeOperations-Ti6phPPq.js +34 -0
  417. package/dist/useAppDetails-BgqbPlfR.cjs +38 -0
  418. package/dist/useAppDetails-DnKGYtCd.js +30 -0
  419. package/dist/useDebounce-BV7B-Jz3.js +19 -0
  420. package/dist/useDebounce-vU5iW5sa.cjs +26 -0
  421. package/dist/useGraphQLConfig-BizpCw23.cjs +76 -0
  422. package/dist/useGraphQLConfig-DFWl9Z89.js +63 -0
  423. package/dist/useIntersection-BJRFGG0f.js +21 -0
  424. package/dist/useIntersection-CYRvxtRN.cjs +28 -0
  425. package/dist/useMessageInterceptor-BjGP_uXm.js +25 -0
  426. package/dist/useMessageInterceptor-arAqUq1Q.cjs +33 -0
  427. package/dist/userIdentityContext-BvsEnQVX.d.ts +20 -0
  428. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  429. package/dist/utilityTypes-B2KuRn37.js +1 -0
  430. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  431. package/dist/utils-B3x_9JTY.d.cts +15 -0
  432. package/dist/utils-B7PAzB_M.d.cts +22 -0
  433. package/dist/utils-BRNaQkCK.js +23 -0
  434. package/dist/utils-Buo4KU5l.cjs +29 -0
  435. package/dist/utils-CDw74BCO.cjs +33 -0
  436. package/dist/utils-CLGXsOwE.cjs +1591 -0
  437. package/dist/utils-CrQ0h9tc.d.ts +22 -0
  438. package/dist/utils-DIvMgPe8.js +27 -0
  439. package/dist/utils-D_kATUj6.js +92 -0
  440. package/dist/utils-DyTiotQz.d.ts +15 -0
  441. package/dist/utils-hYTjy7hJ.cjs +130 -0
  442. package/dist/utils-jYtD3hmA.js +1385 -0
  443. package/dist/variantInfo-BfKlkaWU.js +11 -0
  444. package/dist/variantInfo-DpLn4nHz.cjs +17 -0
  445. package/package.json +11 -2
  446. package/src/config/index.ts +1 -0
  447. package/src/config/locators/components/chat/index.ts +0 -1
  448. package/src/config/locators/components/chat/preview.ts +0 -1
  449. package/src/config/locators/components/common/index.ts +4 -0
  450. package/src/config/locators/index.ts +1 -0
@@ -0,0 +1,22 @@
1
+ import { UserEvent } from "./index-DgjDuQl4.js";
2
+ import { SearchResult } from "./search-CIrqYYMI.js";
3
+ import { VariantInfo } from "./index-CJc7_j_v.js";
4
+
5
+ //#region src/hooks/utils.d.ts
6
+ declare const isElementPartiallyVisible: (el?: HTMLDivElement | null) => boolean;
7
+ declare const createAppLoadedEvent: () => UserEvent;
8
+ declare const createVisitUserEvent: ({
9
+ variantInfo
10
+ }: {
11
+ variantInfo: VariantInfo;
12
+ }) => UserEvent | undefined;
13
+ declare const isWithinBusinessHours: (startTime: string, endTime: string, timeZone: string) => boolean;
14
+ declare enum SearchResultsState {
15
+ Loading = 0,
16
+ Results = 1,
17
+ NoResults = 2,
18
+ }
19
+ declare const getSearchResultsState: (isLoadingSearch: boolean, searchData: SearchResult | null) => SearchResultsState;
20
+ //#endregion
21
+ export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtQ3JRMGg5dGMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvaG9va3MvdXRpbHMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoXCI7XG5pbXBvcnQgeyBVc2VyRXZlbnQsIFZhcmlhbnRJbmZvIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHNcIjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzRWxlbWVudFBhcnRpYWxseVZpc2libGU6IChlbD86IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZUFwcExvYWRlZEV2ZW50OiAoKSA9PiBVc2VyRXZlbnQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjcmVhdGVWaXNpdFVzZXJFdmVudDogKHsgdmFyaWFudEluZm8sIH06IHtcbiAgICB2YXJpYW50SW5mbzogVmFyaWFudEluZm87XG59KSA9PiBVc2VyRXZlbnQgfCB1bmRlZmluZWQ7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc1dpdGhpbkJ1c2luZXNzSG91cnM6IChzdGFydFRpbWU6IHN0cmluZywgZW5kVGltZTogc3RyaW5nLCB0aW1lWm9uZTogc3RyaW5nKSA9PiBib29sZWFuO1xuZXhwb3J0IGRlY2xhcmUgZW51bSBTZWFyY2hSZXN1bHRzU3RhdGUge1xuICAgIExvYWRpbmcgPSAwLFxuICAgIFJlc3VsdHMgPSAxLFxuICAgIE5vUmVzdWx0cyA9IDJcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGdldFNlYXJjaFJlc3VsdHNTdGF0ZTogKGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbiwgc2VhcmNoRGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbCkgPT4gU2VhcmNoUmVzdWx0c1N0YXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQVcsNEJBQTRCLENBQUMsV0FBVyxlQUFlO0FBQ2xFLElBQVcsdUJBQXVCLENBQUMsV0FBVyxVQUFVO0FBQ3hELElBQVcsdUJBQXVCO0NBQUM7T0FBVztPQUFnQjtPQUFBO0NBQUE7QUFDOUQsSUFBVyx3QkFBaUIsQ0FBQSxJQUFBO0FBQzVCLElBQVcscUJBQWdCLENBQUEsSUFBQTtBQUMzQixJQUFXLHdCQUF3QjtDQUFDO09BQVc7T0FBb0I7Q0FBbUIifQ==
@@ -0,0 +1,27 @@
1
+ //#region src/application/models/guards/utils.ts
2
+ /**
3
+ * Checks if an object has a property of a specific type
4
+ *
5
+ * @param obj - The object to check
6
+ * @param prop - The property name to check
7
+ * @param type - The expected type of the property
8
+ * @param isOptional - Whether the property is optional (defaults to false)
9
+ *
10
+ * @returns boolean indicating if the object has the property of the specified type
11
+ */
12
+ const hasPropertyOfType = (obj, prop, type, isOptional = false) => {
13
+ try {
14
+ if (obj == null || typeof obj !== "object") return false;
15
+ if (!(prop in obj)) return isOptional;
16
+ const value = obj[prop];
17
+ if (isOptional && value == null) return true;
18
+ if (type === "array") return Array.isArray(value);
19
+ return typeof value === type;
20
+ } catch (err) {
21
+ return false;
22
+ }
23
+ };
24
+
25
+ //#endregion
26
+ export { hasPropertyOfType };
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtREl2TWdQZTguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVja3MgaWYgYW4gb2JqZWN0IGhhcyBhIHByb3BlcnR5IG9mIGEgc3BlY2lmaWMgdHlwZVxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrXG4gKiBAcGFyYW0gcHJvcCAtIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIGNoZWNrXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwcm9wZXJ0eVxuICogQHBhcmFtIGlzT3B0aW9uYWwgLSBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBpcyBvcHRpb25hbCAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gKlxuICogQHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBvYmplY3QgaGFzIHRoZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1Byb3BlcnR5T2ZUeXBlID0gPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBvYmo6IHVua25vd24sXG4gIHByb3A6IGtleW9mIFQsXG4gIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbGVhbicgfCAnb2JqZWN0JyB8ICdhcnJheScsXG4gIGlzT3B0aW9uYWw6IGJvb2xlYW4gPSBmYWxzZSxcbik6IG9iaiBpcyBUID0+IHtcbiAgdHJ5IHtcbiAgICBpZiAob2JqID09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJZiBwcm9wZXJ0eSBpcyBub3QgcHJlc2VudCwgaXQncyB2YWxpZCBmb3IgYW4gb3B0aW9uYWwgcHJvcGVydHlcbiAgICBpZiAoIShwcm9wIGluIG9iaikpIHtcbiAgICAgIHJldHVybiBpc09wdGlvbmFsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gKG9iaiBhcyBUKVtwcm9wXTtcblxuICAgIC8vIEZvciBvcHRpb25hbCBwcm9wZXJ0aWVzLCBudWxsIG9yIHVuZGVmaW5lZCB2YWx1ZXMgYXJlIHZhbGlkXG4gICAgaWYgKGlzT3B0aW9uYWwgJiYgdmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSB0eXBlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBzd2FsbG93IHRoZSBlcnJvciBhcyBpdCBzaG91bGQgYmUgcmVwb3J0ZWQgaW4gbW9yZSBkZXRhaWwgYnkgdGhlIGNhbGxlclxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFVQSxNQUFhLHFCQUNYLEtBQ0EsTUFDQSxNQUNBLGFBQXNCLFVBQ1Q7QUFDYixLQUFJO0FBQ0YsTUFBSSxPQUFPLFFBQVEsT0FBTyxRQUFRLFNBQ2hDLFFBQU87QUFJVCxNQUFJLEVBQUUsUUFBUSxLQUNaLFFBQU87RUFHVCxNQUFNLFFBQVMsSUFBVTtBQUd6QixNQUFJLGNBQWMsU0FBUyxLQUN6QixRQUFPO0FBR1QsTUFBSSxTQUFTLFFBQ1gsUUFBTyxNQUFNLFFBQVEsTUFBTTtBQUc3QixTQUFPLE9BQU8sVUFBVTtVQUNqQixLQUFLO0FBRVosU0FBTyJ9
@@ -0,0 +1,92 @@
1
+ import { PLPAttributeCategory, UserEventCategory } from "@spiffy-ai/commerce-api-client";
2
+ import { v4 } from "uuid";
3
+
4
+ //#region src/hooks/utils.ts
5
+ const isElementPartiallyVisible = (el) => {
6
+ if (!el) return false;
7
+ const rect = el.getBoundingClientRect();
8
+ const windowHeight = window.innerHeight || document.documentElement.clientHeight;
9
+ const windowWidth = window.innerWidth || document.documentElement.clientWidth;
10
+ const verticallyVisible = Math.round(rect.top) < windowHeight && Math.round(rect.bottom) > 0;
11
+ const horizontallyVisible = Math.round(rect.left) < windowWidth && Math.round(rect.right) > 0;
12
+ return verticallyVisible && horizontallyVisible;
13
+ };
14
+ const createAppLoadedEvent = () => ({
15
+ eventId: v4(),
16
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
17
+ category: UserEventCategory.AppLoaded
18
+ });
19
+ const createVisitUserEvent = ({ variantInfo }) => {
20
+ if (variantInfo.variant === "pdp" && variantInfo.productId != null) return {
21
+ eventId: v4(),
22
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
23
+ category: UserEventCategory.PdpVisit,
24
+ attributes: {
25
+ productId: variantInfo.productId,
26
+ parentProductId: variantInfo.parentProductId ?? "",
27
+ url: variantInfo.url ?? ""
28
+ }
29
+ };
30
+ if (variantInfo.variant === "plp" && variantInfo.plpId != null) return {
31
+ eventId: v4(),
32
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
33
+ category: UserEventCategory.PlpVisit,
34
+ attributes: {
35
+ category: PLPAttributeCategory.Id,
36
+ attributes: { id: variantInfo.plpId }
37
+ }
38
+ };
39
+ if (variantInfo.variant === "page_visit") return {
40
+ eventId: v4(),
41
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
42
+ category: UserEventCategory.PageVisit,
43
+ attributes: {
44
+ url: variantInfo.url,
45
+ pageVisitCategory: variantInfo.pageVisitCategory
46
+ }
47
+ };
48
+ };
49
+ const parseTime = (time, timeZone) => {
50
+ const times = time.match(/^([0-1]?\d):([0-5]\d)(AM|PM)$/i);
51
+ const hours = times?.[1];
52
+ const minutes = times?.[2];
53
+ const period = times?.[3];
54
+ if (hours && minutes && period) {
55
+ const date = /* @__PURE__ */ new Date();
56
+ let adjustedHours = 0;
57
+ if (period.toUpperCase() === "PM" && hours !== "12") adjustedHours = parseInt(hours) + 12;
58
+ if (period.toUpperCase() === "AM" && hours !== "12") adjustedHours = parseInt(hours);
59
+ const formattedDate = `${date.toISOString().split("T")[0]}T${String(adjustedHours).padStart(2, "0")}:${minutes}:00`;
60
+ return /* @__PURE__ */ new Date(`${formattedDate}${timeZone}`);
61
+ }
62
+ };
63
+ const isWithinBusinessHours = (startTime, endTime, timeZone) => {
64
+ const start = parseTime(startTime, timeZone);
65
+ let end = parseTime(endTime, timeZone);
66
+ if (!start || !end) return false;
67
+ let now = /* @__PURE__ */ new Date();
68
+ if (end < start) {
69
+ end = new Date(end.getTime() + 1440 * 60 * 1e3);
70
+ now = new Date(now.getTime() + 1440 * 60 * 1e3);
71
+ }
72
+ if (end.getUTCDate() > start.getUTCDate()) {
73
+ const crossingMidnight = new Date(now.getTime() + 1440 * 60 * 1e3);
74
+ return start <= now || crossingMidnight <= end;
75
+ }
76
+ return now >= start && now <= end;
77
+ };
78
+ let SearchResultsState = /* @__PURE__ */ function(SearchResultsState$1) {
79
+ SearchResultsState$1[SearchResultsState$1["Loading"] = 0] = "Loading";
80
+ SearchResultsState$1[SearchResultsState$1["Results"] = 1] = "Results";
81
+ SearchResultsState$1[SearchResultsState$1["NoResults"] = 2] = "NoResults";
82
+ return SearchResultsState$1;
83
+ }({});
84
+ const getSearchResultsState = (isLoadingSearch, searchData) => {
85
+ if (isLoadingSearch) return SearchResultsState.Loading;
86
+ if (searchData) return SearchResultsState.Results;
87
+ return SearchResultsState.NoResults;
88
+ };
89
+
90
+ //#endregion
91
+ export { SearchResultsState, createAppLoadedEvent, createVisitUserEvent, getSearchResultsState, isElementPartiallyVisible, isWithinBusinessHours };
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtRF9rQVRVajYuanMiLCJuYW1lcyI6WyJ1dWlkIl0sInNvdXJjZXMiOlsiLi4vc3JjL2hvb2tzL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFBMUEF0dHJpYnV0ZUNhdGVnb3J5LFxuICBVc2VyRXZlbnRDYXRlZ29yeSxcbn0gZnJvbSBcIkBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudFwiO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3NlYXJjaFwiO1xuaW1wb3J0IHsgVXNlckV2ZW50LCBWYXJpYW50SW5mbyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcblxuZXhwb3J0IGNvbnN0IGlzRWxlbWVudFBhcnRpYWxseVZpc2libGUgPSAoZWw/OiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgaWYgKCFlbCkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3Qgd2luZG93SGVpZ2h0ID1cbiAgICB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIGNvbnN0IHZlcnRpY2FsbHlWaXNpYmxlID1cbiAgICBNYXRoLnJvdW5kKHJlY3QudG9wKSA8IHdpbmRvd0hlaWdodCAmJiBNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSA+IDA7XG4gIGNvbnN0IGhvcml6b250YWxseVZpc2libGUgPVxuICAgIE1hdGgucm91bmQocmVjdC5sZWZ0KSA8IHdpbmRvd1dpZHRoICYmIE1hdGgucm91bmQocmVjdC5yaWdodCkgPiAwO1xuICByZXR1cm4gdmVydGljYWxseVZpc2libGUgJiYgaG9yaXpvbnRhbGx5VmlzaWJsZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBcHBMb2FkZWRFdmVudCA9ICgpOiBVc2VyRXZlbnQgPT4gKHtcbiAgZXZlbnRJZDogdXVpZCgpLFxuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkFwcExvYWRlZCxcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVmlzaXRVc2VyRXZlbnQgPSAoe1xuICB2YXJpYW50SW5mbyxcbn06IHtcbiAgdmFyaWFudEluZm86IFZhcmlhbnRJbmZvO1xufSk6IFVzZXJFdmVudCB8IHVuZGVmaW5lZCA9PiB7XG4gIC8vIHRoaXMgaXMgYSBwZHAgdmlzaXQgZXZlbnRcbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFwicGRwXCIgJiYgdmFyaWFudEluZm8ucHJvZHVjdElkICE9IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIHByb2R1Y3RJZDogdmFyaWFudEluZm8ucHJvZHVjdElkLFxuICAgICAgICBwYXJlbnRQcm9kdWN0SWQ6IHZhcmlhbnRJbmZvLnBhcmVudFByb2R1Y3RJZCA/PyBcIlwiLFxuICAgICAgICB1cmw6IHZhcmlhbnRJbmZvLnVybCA/PyBcIlwiLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gdGhpcyBpcyBhIHBscCB2aXNpdCBldmVudFxuICBpZiAodmFyaWFudEluZm8udmFyaWFudCA9PT0gXCJwbHBcIiAmJiB2YXJpYW50SW5mby5wbHBJZCAhPSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBscFZpc2l0LFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBjYXRlZ29yeTogUExQQXR0cmlidXRlQ2F0ZWdvcnkuSWQsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBpZDogdmFyaWFudEluZm8ucGxwSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBpZiAodmFyaWFudEluZm8udmFyaWFudCA9PT0gXCJwYWdlX3Zpc2l0XCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXZlbnRJZDogdXVpZCgpLFxuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICB1cmw6IHZhcmlhbnRJbmZvLnVybCxcbiAgICAgICAgcGFnZVZpc2l0Q2F0ZWdvcnk6IHZhcmlhbnRJbmZvLnBhZ2VWaXNpdENhdGVnb3J5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBwYXJzZVRpbWUgPSAodGltZTogc3RyaW5nLCB0aW1lWm9uZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHRpbWVzID0gdGltZS5tYXRjaCgvXihbMC0xXT9cXGQpOihbMC01XVxcZCkoQU18UE0pJC9pKTtcbiAgY29uc3QgaG91cnMgPSB0aW1lcz8uWzFdO1xuICBjb25zdCBtaW51dGVzID0gdGltZXM/LlsyXTtcbiAgY29uc3QgcGVyaW9kID0gdGltZXM/LlszXTtcblxuICBpZiAoaG91cnMgJiYgbWludXRlcyAmJiBwZXJpb2QpIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcblxuICAgIC8vIEFkanVzdCBob3VycyBmb3IgQU0vUE1cbiAgICBsZXQgYWRqdXN0ZWRIb3VycyA9IDA7XG4gICAgaWYgKHBlcmlvZC50b1VwcGVyQ2FzZSgpID09PSBcIlBNXCIgJiYgaG91cnMgIT09IFwiMTJcIikge1xuICAgICAgYWRqdXN0ZWRIb3VycyA9IHBhcnNlSW50KGhvdXJzKSArIDEyO1xuICAgIH1cblxuICAgIGlmIChwZXJpb2QudG9VcHBlckNhc2UoKSA9PT0gXCJBTVwiICYmIGhvdXJzICE9PSBcIjEyXCIpIHtcbiAgICAgIGFkanVzdGVkSG91cnMgPSBwYXJzZUludChob3Vycyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBkYXRlIHN0cmluZyB3aXRoIHRpbWUgem9uZVxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHtkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdfVQke1N0cmluZyhcbiAgICAgIGFkanVzdGVkSG91cnNcbiAgICApLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHttaW51dGVzfTowMGA7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGAke2Zvcm1hdHRlZERhdGV9JHt0aW1lWm9uZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzV2l0aGluQnVzaW5lc3NIb3VycyA9IChcbiAgc3RhcnRUaW1lOiBzdHJpbmcsXG4gIGVuZFRpbWU6IHN0cmluZyxcbiAgdGltZVpvbmU6IHN0cmluZ1xuKSA9PiB7XG4gIC8vIFBhcnNlIHN0YXJ0IGFuZCBlbmQgdGltZXNcbiAgY29uc3Qgc3RhcnQgPSBwYXJzZVRpbWUoc3RhcnRUaW1lLCB0aW1lWm9uZSk7XG4gIGxldCBlbmQgPSBwYXJzZVRpbWUoZW5kVGltZSwgdGltZVpvbmUpO1xuXG4gIGlmICghc3RhcnQgfHwgIWVuZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuXG4gIC8vIElmIHRoZSBlbmQgZGF0ZSBpcyBncmVhdGVyIHRoYW4gdGhlIHN0YXJ0IGRhdGUsIGFkZCBhIGRheSB0byBib3RoIG9mIHRoZW1cbiAgLy8gVGhpcyBoYW5kbGVzIGNvbmZpZ3VyYXRpb25zIHN1Y2ggYXMgc3RhcnRUaW1lID0gMTA6MDBQTSBhbmQgZW5kVGltZSA9IDc6MDBBTVxuICBpZiAoZW5kIDwgc3RhcnQpIHtcbiAgICBlbmQgPSBuZXcgRGF0ZShlbmQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XG4gICAgbm93ID0gbmV3IERhdGUobm93LmdldFRpbWUoKSArIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICB9XG5cbiAgLy8gSWYgdGhlIGRhdGUgY29udmVyc2lvbiBzaGlmdHMgdGhlIGVuZCBkYXRlIHRvIHRoZSBuZXh0IGRheSwgY29uc2lkZXIgY29tcGFyaW5nIGl0IGFjcm9zcyBtaWRuaWdodFxuICBpZiAoZW5kLmdldFVUQ0RhdGUoKSA+IHN0YXJ0LmdldFVUQ0RhdGUoKSkge1xuICAgIGNvbnN0IGNyb3NzaW5nTWlkbmlnaHQgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XG4gICAgcmV0dXJuIHN0YXJ0IDw9IG5vdyB8fCBjcm9zc2luZ01pZG5pZ2h0IDw9IGVuZDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHRpbWUgZmFsbHMgYmV0d2VlbiBzdGFydCBhbmQgZW5kXG4gIHJldHVybiBub3cgPj0gc3RhcnQgJiYgbm93IDw9IGVuZDtcbn07XG5cbmV4cG9ydCBlbnVtIFNlYXJjaFJlc3VsdHNTdGF0ZSB7XG4gIExvYWRpbmcsXG4gIFJlc3VsdHMsXG4gIE5vUmVzdWx0cyxcbn1cblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaFJlc3VsdHNTdGF0ZSA9IChcbiAgaXNMb2FkaW5nU2VhcmNoOiBib29sZWFuLFxuICBzZWFyY2hEYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsXG4pOiBTZWFyY2hSZXN1bHRzU3RhdGUgPT4ge1xuICBpZiAoaXNMb2FkaW5nU2VhcmNoKSB7XG4gICAgcmV0dXJuIFNlYXJjaFJlc3VsdHNTdGF0ZS5Mb2FkaW5nO1xuICB9XG4gIGlmIChzZWFyY2hEYXRhKSB7XG4gICAgcmV0dXJuIFNlYXJjaFJlc3VsdHNTdGF0ZS5SZXN1bHRzO1xuICB9XG4gIHJldHVybiBTZWFyY2hSZXN1bHRzU3RhdGUuTm9SZXN1bHRzO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQVFBLE1BQWEsNkJBQTZCLE9BQStCO0FBQ3ZFLEtBQUksQ0FBQyxHQUFJLFFBQU87Q0FFaEIsTUFBTSxPQUFPLEdBQUcsdUJBQXVCO0NBQ3ZDLE1BQU0sZUFDSixPQUFPLGVBQWUsU0FBUyxnQkFBZ0I7Q0FDakQsTUFBTSxjQUFjLE9BQU8sY0FBYyxTQUFTLGdCQUFnQjtDQUNsRSxNQUFNLG9CQUNKLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRyxnQkFBZ0IsS0FBSyxNQUFNLEtBQUssT0FBTyxHQUFHO0NBQ25FLE1BQU0sc0JBQ0osS0FBSyxNQUFNLEtBQUssS0FBSyxHQUFHLGVBQWUsS0FBSyxNQUFNLEtBQUssTUFBTSxHQUFHO0FBQ2xFLFFBQU8scUJBQXFCOztBQUc5QixNQUFhLDhCQUF5QztDQUNwRCxTQUFTQSxJQUFNO0NBQ2YsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtDQUNuQyxVQUFVLGtCQUFrQjtDQUM3QjtBQUVELE1BQWEsd0JBQXdCLEVBQ25DLGtCQUcyQjtBQUUzQixLQUFJLFlBQVksWUFBWSxTQUFTLFlBQVksYUFBYSxLQUM1RCxRQUFPO0VBQ0wsU0FBU0EsSUFBTTtFQUNmLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7RUFDbkMsVUFBVSxrQkFBa0I7RUFDNUIsWUFBWTtHQUNWLFdBQVcsWUFBWTtHQUN2QixpQkFBaUIsWUFBWSxtQkFBbUI7R0FDaEQsS0FBSyxZQUFZLE9BQU87R0FDekI7RUFDRjtBQUlILEtBQUksWUFBWSxZQUFZLFNBQVMsWUFBWSxTQUFTLEtBQ3hELFFBQU87RUFDTCxTQUFTQSxJQUFNO0VBQ2YsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtFQUNuQyxVQUFVLGtCQUFrQjtFQUM1QixZQUFZO0dBQ1YsVUFBVSxxQkFBcUI7R0FDL0IsWUFBWSxFQUNWLElBQUksWUFBWSxPQUNqQjtHQUNGO0VBQ0Y7QUFHSCxLQUFJLFlBQVksWUFBWSxhQUMxQixRQUFPO0VBQ0wsU0FBU0EsSUFBTTtFQUNmLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7RUFDbkMsVUFBVSxrQkFBa0I7RUFDNUIsWUFBWTtHQUNWLEtBQUssWUFBWTtHQUNqQixtQkFBbUIsWUFBWTtHQUNoQztFQUNGOztBQUtMLE1BQU0sYUFBYSxNQUFjLGFBQXFCO0NBQ3BELE1BQU0sUUFBUSxLQUFLLE1BQU0saUNBQWlDO0NBQzFELE1BQU0sUUFBUSxRQUFRO0NBQ3RCLE1BQU0sVUFBVSxRQUFRO0NBQ3hCLE1BQU0sU0FBUyxRQUFRO0FBRXZCLEtBQUksU0FBUyxXQUFXLFFBQVE7RUFDOUIsTUFBTSx1QkFBTyxJQUFJLE1BQU07RUFHdkIsSUFBSSxnQkFBZ0I7QUFDcEIsTUFBSSxPQUFPLGFBQWEsS0FBSyxRQUFRLFVBQVUsS0FDN0MsaUJBQWdCLFNBQVMsTUFBTSxHQUFHO0FBR3BDLE1BQUksT0FBTyxhQUFhLEtBQUssUUFBUSxVQUFVLEtBQzdDLGlCQUFnQixTQUFTLE1BQU07RUFJakMsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FDM0QsY0FDRCxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxRQUFRO0FBQzlCLHlCQUFPLElBQUksS0FBSyxHQUFHLGdCQUFnQixXQUFXOzs7QUFJbEQsTUFBYSx5QkFDWCxXQUNBLFNBQ0EsYUFDRztDQUVILE1BQU0sUUFBUSxVQUFVLFdBQVcsU0FBUztDQUM1QyxJQUFJLE1BQU0sVUFBVSxTQUFTLFNBQVM7QUFFdEMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUNiLFFBQU87Q0FHVCxJQUFJLHNCQUFNLElBQUksTUFBTTtBQUlwQixLQUFJLE1BQU0sT0FBTztBQUNmLFFBQU0sSUFBSSxLQUFLLElBQUksU0FBUyxHQUFHLE9BQVUsS0FBSyxJQUFLO0FBQ25ELFFBQU0sSUFBSSxLQUFLLElBQUksU0FBUyxHQUFHLE9BQVUsS0FBSyxJQUFLOztBQUlyRCxLQUFJLElBQUksWUFBWSxHQUFHLE1BQU0sWUFBWSxFQUFFO0VBQ3pDLE1BQU0sbUJBQW1CLElBQUksS0FBSyxJQUFJLFNBQVMsR0FBRyxPQUFVLEtBQUssSUFBSztBQUN0RSxTQUFPLFNBQVMsT0FBTyxvQkFBb0I7O0FBSTdDLFFBQU8sT0FBTyxTQUFTLE9BQU87O0FBR2hDLElBQVksb0VBQUw7QUFDTDtBQUNBO0FBQ0E7OztBQUdGLE1BQWEseUJBQ1gsaUJBQ0EsZUFDdUI7QUFDdkIsS0FBSSxnQkFDRixRQUFPLG1CQUFtQjtBQUU1QixLQUFJLFdBQ0YsUUFBTyxtQkFBbUI7QUFFNUIsUUFBTyxtQkFBbUIifQ==
@@ -0,0 +1,15 @@
1
+ //#region src/application/models/guards/utils.d.ts
2
+ /**
3
+ * Checks if an object has a property of a specific type
4
+ *
5
+ * @param obj - The object to check
6
+ * @param prop - The property name to check
7
+ * @param type - The expected type of the property
8
+ * @param isOptional - Whether the property is optional (defaults to false)
9
+ *
10
+ * @returns boolean indicating if the object has the property of the specified type
11
+ */
12
+ declare const hasPropertyOfType: <T extends object>(obj: unknown, prop: keyof T, type: "string" | "number" | "boolean" | "object" | "array", isOptional?: boolean) => obj is T;
13
+ //#endregion
14
+ export { hasPropertyOfType };
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtRHlUaW90UXouZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy91dGlscy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIHR5cGVcbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVja1xuICogQHBhcmFtIHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSB0byBjaGVja1xuICogQHBhcmFtIHR5cGUgLSBUaGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcHJvcGVydHlcbiAqIEBwYXJhbSBpc09wdGlvbmFsIC0gV2hldGhlciB0aGUgcHJvcGVydHkgaXMgb3B0aW9uYWwgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICpcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCB0eXBlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGhhc1Byb3BlcnR5T2ZUeXBlOiA8VCBleHRlbmRzIG9iamVjdD4ob2JqOiB1bmtub3duLCBwcm9wOiBrZXlvZiBULCB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiYm9vbGVhblwiIHwgXCJvYmplY3RcIiB8IFwiYXJyYXlcIiwgaXNPcHRpb25hbD86IGJvb2xlYW4pID0+IG9iaiBpcyBUO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBRSxvQkFBQTtDQUFBO09BQUE7T0FBQTtDQUFBIn0=
@@ -0,0 +1,130 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
3
+ __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
4
+ let uuid = require("uuid");
5
+ uuid = require_chunk.__toESM(uuid);
6
+
7
+ //#region src/hooks/utils.ts
8
+ const isElementPartiallyVisible = (el) => {
9
+ if (!el) return false;
10
+ const rect = el.getBoundingClientRect();
11
+ const windowHeight = window.innerHeight || document.documentElement.clientHeight;
12
+ const windowWidth = window.innerWidth || document.documentElement.clientWidth;
13
+ const verticallyVisible = Math.round(rect.top) < windowHeight && Math.round(rect.bottom) > 0;
14
+ const horizontallyVisible = Math.round(rect.left) < windowWidth && Math.round(rect.right) > 0;
15
+ return verticallyVisible && horizontallyVisible;
16
+ };
17
+ const createAppLoadedEvent = () => ({
18
+ eventId: (0, uuid.v4)(),
19
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
20
+ category: __spiffy_ai_commerce_api_client.UserEventCategory.AppLoaded
21
+ });
22
+ const createVisitUserEvent = ({ variantInfo }) => {
23
+ if (variantInfo.variant === "pdp" && variantInfo.productId != null) return {
24
+ eventId: (0, uuid.v4)(),
25
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
26
+ category: __spiffy_ai_commerce_api_client.UserEventCategory.PdpVisit,
27
+ attributes: {
28
+ productId: variantInfo.productId,
29
+ parentProductId: variantInfo.parentProductId ?? "",
30
+ url: variantInfo.url ?? ""
31
+ }
32
+ };
33
+ if (variantInfo.variant === "plp" && variantInfo.plpId != null) return {
34
+ eventId: (0, uuid.v4)(),
35
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
36
+ category: __spiffy_ai_commerce_api_client.UserEventCategory.PlpVisit,
37
+ attributes: {
38
+ category: __spiffy_ai_commerce_api_client.PLPAttributeCategory.Id,
39
+ attributes: { id: variantInfo.plpId }
40
+ }
41
+ };
42
+ if (variantInfo.variant === "page_visit") return {
43
+ eventId: (0, uuid.v4)(),
44
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
45
+ category: __spiffy_ai_commerce_api_client.UserEventCategory.PageVisit,
46
+ attributes: {
47
+ url: variantInfo.url,
48
+ pageVisitCategory: variantInfo.pageVisitCategory
49
+ }
50
+ };
51
+ };
52
+ const parseTime = (time, timeZone) => {
53
+ const times = time.match(/^([0-1]?\d):([0-5]\d)(AM|PM)$/i);
54
+ const hours = times?.[1];
55
+ const minutes = times?.[2];
56
+ const period = times?.[3];
57
+ if (hours && minutes && period) {
58
+ const date = /* @__PURE__ */ new Date();
59
+ let adjustedHours = 0;
60
+ if (period.toUpperCase() === "PM" && hours !== "12") adjustedHours = parseInt(hours) + 12;
61
+ if (period.toUpperCase() === "AM" && hours !== "12") adjustedHours = parseInt(hours);
62
+ const formattedDate = `${date.toISOString().split("T")[0]}T${String(adjustedHours).padStart(2, "0")}:${minutes}:00`;
63
+ return /* @__PURE__ */ new Date(`${formattedDate}${timeZone}`);
64
+ }
65
+ };
66
+ const isWithinBusinessHours = (startTime, endTime, timeZone) => {
67
+ const start = parseTime(startTime, timeZone);
68
+ let end = parseTime(endTime, timeZone);
69
+ if (!start || !end) return false;
70
+ let now = /* @__PURE__ */ new Date();
71
+ if (end < start) {
72
+ end = new Date(end.getTime() + 1440 * 60 * 1e3);
73
+ now = new Date(now.getTime() + 1440 * 60 * 1e3);
74
+ }
75
+ if (end.getUTCDate() > start.getUTCDate()) {
76
+ const crossingMidnight = new Date(now.getTime() + 1440 * 60 * 1e3);
77
+ return start <= now || crossingMidnight <= end;
78
+ }
79
+ return now >= start && now <= end;
80
+ };
81
+ let SearchResultsState = /* @__PURE__ */ function(SearchResultsState$1) {
82
+ SearchResultsState$1[SearchResultsState$1["Loading"] = 0] = "Loading";
83
+ SearchResultsState$1[SearchResultsState$1["Results"] = 1] = "Results";
84
+ SearchResultsState$1[SearchResultsState$1["NoResults"] = 2] = "NoResults";
85
+ return SearchResultsState$1;
86
+ }({});
87
+ const getSearchResultsState = (isLoadingSearch, searchData) => {
88
+ if (isLoadingSearch) return SearchResultsState.Loading;
89
+ if (searchData) return SearchResultsState.Results;
90
+ return SearchResultsState.NoResults;
91
+ };
92
+
93
+ //#endregion
94
+ Object.defineProperty(exports, 'SearchResultsState', {
95
+ enumerable: true,
96
+ get: function () {
97
+ return SearchResultsState;
98
+ }
99
+ });
100
+ Object.defineProperty(exports, 'createAppLoadedEvent', {
101
+ enumerable: true,
102
+ get: function () {
103
+ return createAppLoadedEvent;
104
+ }
105
+ });
106
+ Object.defineProperty(exports, 'createVisitUserEvent', {
107
+ enumerable: true,
108
+ get: function () {
109
+ return createVisitUserEvent;
110
+ }
111
+ });
112
+ Object.defineProperty(exports, 'getSearchResultsState', {
113
+ enumerable: true,
114
+ get: function () {
115
+ return getSearchResultsState;
116
+ }
117
+ });
118
+ Object.defineProperty(exports, 'isElementPartiallyVisible', {
119
+ enumerable: true,
120
+ get: function () {
121
+ return isElementPartiallyVisible;
122
+ }
123
+ });
124
+ Object.defineProperty(exports, 'isWithinBusinessHours', {
125
+ enumerable: true,
126
+ get: function () {
127
+ return isWithinBusinessHours;
128
+ }
129
+ });
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtaFlUank3aEouY2pzIiwibmFtZXMiOlsiVXNlckV2ZW50Q2F0ZWdvcnkiLCJQTFBBdHRyaWJ1dGVDYXRlZ29yeSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ob29rcy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQTFBBdHRyaWJ1dGVDYXRlZ29yeSxcbiAgVXNlckV2ZW50Q2F0ZWdvcnksXG59IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zZWFyY2hcIjtcbmltcG9ydCB7IFVzZXJFdmVudCwgVmFyaWFudEluZm8gfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVsc1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5cbmV4cG9ydCBjb25zdCBpc0VsZW1lbnRQYXJ0aWFsbHlWaXNpYmxlID0gKGVsPzogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gIGlmICghZWwpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHdpbmRvd0hlaWdodCA9XG4gICAgd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICBjb25zdCB2ZXJ0aWNhbGx5VmlzaWJsZSA9XG4gICAgTWF0aC5yb3VuZChyZWN0LnRvcCkgPCB3aW5kb3dIZWlnaHQgJiYgTWF0aC5yb3VuZChyZWN0LmJvdHRvbSkgPiAwO1xuICBjb25zdCBob3Jpem9udGFsbHlWaXNpYmxlID1cbiAgICBNYXRoLnJvdW5kKHJlY3QubGVmdCkgPCB3aW5kb3dXaWR0aCAmJiBNYXRoLnJvdW5kKHJlY3QucmlnaHQpID4gMDtcbiAgcmV0dXJuIHZlcnRpY2FsbHlWaXNpYmxlICYmIGhvcml6b250YWxseVZpc2libGU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQXBwTG9hZGVkRXZlbnQgPSAoKTogVXNlckV2ZW50ID0+ICh7XG4gIGV2ZW50SWQ6IHV1aWQoKSxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5BcHBMb2FkZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVZpc2l0VXNlckV2ZW50ID0gKHtcbiAgdmFyaWFudEluZm8sXG59OiB7XG4gIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn0pOiBVc2VyRXZlbnQgfCB1bmRlZmluZWQgPT4ge1xuICAvLyB0aGlzIGlzIGEgcGRwIHZpc2l0IGV2ZW50XG4gIGlmICh2YXJpYW50SW5mby52YXJpYW50ID09PSBcInBkcFwiICYmIHZhcmlhbnRJbmZvLnByb2R1Y3RJZCAhPSBudWxsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBkcFZpc2l0LFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBwcm9kdWN0SWQ6IHZhcmlhbnRJbmZvLnByb2R1Y3RJZCxcbiAgICAgICAgcGFyZW50UHJvZHVjdElkOiB2YXJpYW50SW5mby5wYXJlbnRQcm9kdWN0SWQgPz8gXCJcIixcbiAgICAgICAgdXJsOiB2YXJpYW50SW5mby51cmwgPz8gXCJcIixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vIHRoaXMgaXMgYSBwbHAgdmlzaXQgZXZlbnRcbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFwicGxwXCIgJiYgdmFyaWFudEluZm8ucGxwSWQgIT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICBldmVudElkOiB1dWlkKCksXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdCxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2F0ZWdvcnk6IFBMUEF0dHJpYnV0ZUNhdGVnb3J5LklkLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgaWQ6IHZhcmlhbnRJbmZvLnBscElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZhcmlhbnRJbmZvLnZhcmlhbnQgPT09IFwicGFnZV92aXNpdFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50SWQ6IHV1aWQoKSxcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgdXJsOiB2YXJpYW50SW5mby51cmwsXG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiB2YXJpYW50SW5mby5wYWdlVmlzaXRDYXRlZ29yeSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgcGFyc2VUaW1lID0gKHRpbWU6IHN0cmluZywgdGltZVpvbmU6IHN0cmluZykgPT4ge1xuICBjb25zdCB0aW1lcyA9IHRpbWUubWF0Y2goL14oWzAtMV0/XFxkKTooWzAtNV1cXGQpKEFNfFBNKSQvaSk7XG4gIGNvbnN0IGhvdXJzID0gdGltZXM/LlsxXTtcbiAgY29uc3QgbWludXRlcyA9IHRpbWVzPy5bMl07XG4gIGNvbnN0IHBlcmlvZCA9IHRpbWVzPy5bM107XG5cbiAgaWYgKGhvdXJzICYmIG1pbnV0ZXMgJiYgcGVyaW9kKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAvLyBBZGp1c3QgaG91cnMgZm9yIEFNL1BNXG4gICAgbGV0IGFkanVzdGVkSG91cnMgPSAwO1xuICAgIGlmIChwZXJpb2QudG9VcHBlckNhc2UoKSA9PT0gXCJQTVwiICYmIGhvdXJzICE9PSBcIjEyXCIpIHtcbiAgICAgIGFkanVzdGVkSG91cnMgPSBwYXJzZUludChob3VycykgKyAxMjtcbiAgICB9XG5cbiAgICBpZiAocGVyaW9kLnRvVXBwZXJDYXNlKCkgPT09IFwiQU1cIiAmJiBob3VycyAhPT0gXCIxMlwiKSB7XG4gICAgICBhZGp1c3RlZEhvdXJzID0gcGFyc2VJbnQoaG91cnMpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgZGF0ZSBzdHJpbmcgd2l0aCB0aW1lIHpvbmVcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gYCR7ZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXX1UJHtTdHJpbmcoXG4gICAgICBhZGp1c3RlZEhvdXJzXG4gICAgKS5wYWRTdGFydCgyLCBcIjBcIil9OiR7bWludXRlc306MDBgO1xuICAgIHJldHVybiBuZXcgRGF0ZShgJHtmb3JtYXR0ZWREYXRlfSR7dGltZVpvbmV9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc1dpdGhpbkJ1c2luZXNzSG91cnMgPSAoXG4gIHN0YXJ0VGltZTogc3RyaW5nLFxuICBlbmRUaW1lOiBzdHJpbmcsXG4gIHRpbWVab25lOiBzdHJpbmdcbikgPT4ge1xuICAvLyBQYXJzZSBzdGFydCBhbmQgZW5kIHRpbWVzXG4gIGNvbnN0IHN0YXJ0ID0gcGFyc2VUaW1lKHN0YXJ0VGltZSwgdGltZVpvbmUpO1xuICBsZXQgZW5kID0gcGFyc2VUaW1lKGVuZFRpbWUsIHRpbWVab25lKTtcblxuICBpZiAoIXN0YXJ0IHx8ICFlbmQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgbm93ID0gbmV3IERhdGUoKTtcblxuICAvLyBJZiB0aGUgZW5kIGRhdGUgaXMgZ3JlYXRlciB0aGFuIHRoZSBzdGFydCBkYXRlLCBhZGQgYSBkYXkgdG8gYm90aCBvZiB0aGVtXG4gIC8vIFRoaXMgaGFuZGxlcyBjb25maWd1cmF0aW9ucyBzdWNoIGFzIHN0YXJ0VGltZSA9IDEwOjAwUE0gYW5kIGVuZFRpbWUgPSA3OjAwQU1cbiAgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgZW5kID0gbmV3IERhdGUoZW5kLmdldFRpbWUoKSArIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICAgIG5vdyA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8vIElmIHRoZSBkYXRlIGNvbnZlcnNpb24gc2hpZnRzIHRoZSBlbmQgZGF0ZSB0byB0aGUgbmV4dCBkYXksIGNvbnNpZGVyIGNvbXBhcmluZyBpdCBhY3Jvc3MgbWlkbmlnaHRcbiAgaWYgKGVuZC5nZXRVVENEYXRlKCkgPiBzdGFydC5nZXRVVENEYXRlKCkpIHtcbiAgICBjb25zdCBjcm9zc2luZ01pZG5pZ2h0ID0gbmV3IERhdGUobm93LmdldFRpbWUoKSArIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICAgIHJldHVybiBzdGFydCA8PSBub3cgfHwgY3Jvc3NpbmdNaWRuaWdodCA8PSBlbmQ7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCB0aW1lIGZhbGxzIGJldHdlZW4gc3RhcnQgYW5kIGVuZFxuICByZXR1cm4gbm93ID49IHN0YXJ0ICYmIG5vdyA8PSBlbmQ7XG59O1xuXG5leHBvcnQgZW51bSBTZWFyY2hSZXN1bHRzU3RhdGUge1xuICBMb2FkaW5nLFxuICBSZXN1bHRzLFxuICBOb1Jlc3VsdHMsXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTZWFyY2hSZXN1bHRzU3RhdGUgPSAoXG4gIGlzTG9hZGluZ1NlYXJjaDogYm9vbGVhbixcbiAgc2VhcmNoRGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbFxuKTogU2VhcmNoUmVzdWx0c1N0YXRlID0+IHtcbiAgaWYgKGlzTG9hZGluZ1NlYXJjaCkge1xuICAgIHJldHVybiBTZWFyY2hSZXN1bHRzU3RhdGUuTG9hZGluZztcbiAgfVxuICBpZiAoc2VhcmNoRGF0YSkge1xuICAgIHJldHVybiBTZWFyY2hSZXN1bHRzU3RhdGUuUmVzdWx0cztcbiAgfVxuICByZXR1cm4gU2VhcmNoUmVzdWx0c1N0YXRlLk5vUmVzdWx0cztcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQSxNQUFhLDZCQUE2QixPQUErQjtBQUN2RSxLQUFJLENBQUMsR0FBSSxRQUFPO0NBRWhCLE1BQU0sT0FBTyxHQUFHLHVCQUF1QjtDQUN2QyxNQUFNLGVBQ0osT0FBTyxlQUFlLFNBQVMsZ0JBQWdCO0NBQ2pELE1BQU0sY0FBYyxPQUFPLGNBQWMsU0FBUyxnQkFBZ0I7Q0FDbEUsTUFBTSxvQkFDSixLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsZ0JBQWdCLEtBQUssTUFBTSxLQUFLLE9BQU8sR0FBRztDQUNuRSxNQUFNLHNCQUNKLEtBQUssTUFBTSxLQUFLLEtBQUssR0FBRyxlQUFlLEtBQUssTUFBTSxLQUFLLE1BQU0sR0FBRztBQUNsRSxRQUFPLHFCQUFxQjs7QUFHOUIsTUFBYSw4QkFBeUM7Q0FDcEQsdUJBQWU7Q0FDZiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0NBQ25DLFVBQVVBLGtEQUFrQjtDQUM3QjtBQUVELE1BQWEsd0JBQXdCLEVBQ25DLGtCQUcyQjtBQUUzQixLQUFJLFlBQVksWUFBWSxTQUFTLFlBQVksYUFBYSxLQUM1RCxRQUFPO0VBQ0wsdUJBQWU7RUFDZiw0QkFBVyxJQUFJLE1BQU0sRUFBQyxhQUFhO0VBQ25DLFVBQVVBLGtEQUFrQjtFQUM1QixZQUFZO0dBQ1YsV0FBVyxZQUFZO0dBQ3ZCLGlCQUFpQixZQUFZLG1CQUFtQjtHQUNoRCxLQUFLLFlBQVksT0FBTztHQUN6QjtFQUNGO0FBSUgsS0FBSSxZQUFZLFlBQVksU0FBUyxZQUFZLFNBQVMsS0FDeEQsUUFBTztFQUNMLHVCQUFlO0VBQ2YsNEJBQVcsSUFBSSxNQUFNLEVBQUMsYUFBYTtFQUNuQyxVQUFVQSxrREFBa0I7RUFDNUIsWUFBWTtHQUNWLFVBQVVDLHFEQUFxQjtHQUMvQixZQUFZLEVBQ1YsSUFBSSxZQUFZLE9BQ2pCO0dBQ0Y7RUFDRjtBQUdILEtBQUksWUFBWSxZQUFZLGFBQzFCLFFBQU87RUFDTCx1QkFBZTtFQUNmLDRCQUFXLElBQUksTUFBTSxFQUFDLGFBQWE7RUFDbkMsVUFBVUQsa0RBQWtCO0VBQzVCLFlBQVk7R0FDVixLQUFLLFlBQVk7R0FDakIsbUJBQW1CLFlBQVk7R0FDaEM7RUFDRjs7QUFLTCxNQUFNLGFBQWEsTUFBYyxhQUFxQjtDQUNwRCxNQUFNLFFBQVEsS0FBSyxNQUFNLGlDQUFpQztDQUMxRCxNQUFNLFFBQVEsUUFBUTtDQUN0QixNQUFNLFVBQVUsUUFBUTtDQUN4QixNQUFNLFNBQVMsUUFBUTtBQUV2QixLQUFJLFNBQVMsV0FBVyxRQUFRO0VBQzlCLE1BQU0sdUJBQU8sSUFBSSxNQUFNO0VBR3ZCLElBQUksZ0JBQWdCO0FBQ3BCLE1BQUksT0FBTyxhQUFhLEtBQUssUUFBUSxVQUFVLEtBQzdDLGlCQUFnQixTQUFTLE1BQU0sR0FBRztBQUdwQyxNQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsVUFBVSxLQUM3QyxpQkFBZ0IsU0FBUyxNQUFNO0VBSWpDLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQzNELGNBQ0QsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsUUFBUTtBQUM5Qix5QkFBTyxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsV0FBVzs7O0FBSWxELE1BQWEseUJBQ1gsV0FDQSxTQUNBLGFBQ0c7Q0FFSCxNQUFNLFFBQVEsVUFBVSxXQUFXLFNBQVM7Q0FDNUMsSUFBSSxNQUFNLFVBQVUsU0FBUyxTQUFTO0FBRXRDLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFDYixRQUFPO0NBR1QsSUFBSSxzQkFBTSxJQUFJLE1BQU07QUFJcEIsS0FBSSxNQUFNLE9BQU87QUFDZixRQUFNLElBQUksS0FBSyxJQUFJLFNBQVMsR0FBRyxPQUFVLEtBQUssSUFBSztBQUNuRCxRQUFNLElBQUksS0FBSyxJQUFJLFNBQVMsR0FBRyxPQUFVLEtBQUssSUFBSzs7QUFJckQsS0FBSSxJQUFJLFlBQVksR0FBRyxNQUFNLFlBQVksRUFBRTtFQUN6QyxNQUFNLG1CQUFtQixJQUFJLEtBQUssSUFBSSxTQUFTLEdBQUcsT0FBVSxLQUFLLElBQUs7QUFDdEUsU0FBTyxTQUFTLE9BQU8sb0JBQW9COztBQUk3QyxRQUFPLE9BQU8sU0FBUyxPQUFPOztBQUdoQyxJQUFZLG9FQUFMO0FBQ0w7QUFDQTtBQUNBOzs7QUFHRixNQUFhLHlCQUNYLGlCQUNBLGVBQ3VCO0FBQ3ZCLEtBQUksZ0JBQ0YsUUFBTyxtQkFBbUI7QUFFNUIsS0FBSSxXQUNGLFFBQU8sbUJBQW1CO0FBRTVCLFFBQU8sbUJBQW1CIn0=