@envive-ai/react-hooks 0.2.5 → 0.2.6-alpha-2

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 (646) hide show
  1. package/dist/AmplitudeOperations-C3i2q2Bn.js +34 -0
  2. package/dist/AmplitudeOperations-DcuLn1Zk.cjs +41 -0
  3. package/dist/{NewOrgConfig-B98Y9tMb.js → NewOrgConfig-BtvujFC8.js} +2 -2
  4. package/dist/{NewOrgConfig-ZbBKiByQ.cjs → NewOrgConfig-CHt7Xg4t.cjs} +2 -2
  5. package/dist/TrackComponentVisibleEvent-Be7wfXXY.js +53 -0
  6. package/dist/TrackComponentVisibleEvent-KUihr_y4.cjs +60 -0
  7. package/dist/amplitudeContext-CRFxGj_x.d.ts +52 -0
  8. package/dist/amplitudeContext-ZkerrMUa.d.cts +52 -0
  9. package/dist/api-D4HaU2Gf.js +166 -0
  10. package/dist/api-D4Xoibs9.cjs +239 -0
  11. package/dist/application/models/graphql/index.cjs +3 -3
  12. package/dist/application/models/graphql/index.d.cts +2 -2
  13. package/dist/application/models/graphql/index.d.ts +2 -2
  14. package/dist/application/models/graphql/index.js +2 -3
  15. package/dist/application/models/guards/api/index.cjs +3 -3
  16. package/dist/application/models/guards/api/index.d.cts +2 -2
  17. package/dist/application/models/guards/api/index.d.ts +2 -2
  18. package/dist/application/models/guards/api/index.js +3 -3
  19. package/dist/application/models/guards/utils.cjs +1 -1
  20. package/dist/application/models/guards/utils.d.ts +1 -1
  21. package/dist/application/models/guards/utils.js +1 -1
  22. package/dist/application/models/index.cjs +7 -23
  23. package/dist/application/models/index.d.cts +167 -11
  24. package/dist/application/models/index.d.ts +168 -12
  25. package/dist/application/models/index.js +7 -11
  26. package/dist/application/utils/index.cjs +19 -19
  27. package/dist/application/utils/index.d.cts +14 -63
  28. package/dist/application/utils/index.d.ts +14 -63
  29. package/dist/application/utils/index.js +19 -19
  30. package/dist/{atomStore-DXTVqiKc.js → atomStore-BuopbV9k.js} +1 -1
  31. package/dist/{atomStore-DNji91Im.cjs → atomStore-CZKe3itM.cjs} +1 -1
  32. package/dist/atoms/app/index.cjs +19 -19
  33. package/dist/atoms/app/index.d.cts +9 -20
  34. package/dist/atoms/app/index.d.ts +2 -13
  35. package/dist/atoms/app/index.js +19 -19
  36. package/dist/atoms/atomStore/index.cjs +1 -1
  37. package/dist/atoms/atomStore/index.js +1 -1
  38. package/dist/atoms/chat/index.cjs +21 -21
  39. package/dist/atoms/chat/index.d.cts +37 -45
  40. package/dist/atoms/chat/index.d.ts +35 -43
  41. package/dist/atoms/chat/index.js +21 -21
  42. package/dist/atoms/globalSearch/index.cjs +1 -1
  43. package/dist/atoms/globalSearch/index.d.cts +6 -6
  44. package/dist/atoms/globalSearch/index.d.ts +6 -6
  45. package/dist/atoms/globalSearch/index.js +1 -1
  46. package/dist/atoms/org/index.cjs +10 -11
  47. package/dist/atoms/org/index.d.cts +19 -31
  48. package/dist/atoms/org/index.d.ts +19 -31
  49. package/dist/atoms/org/index.js +2 -3
  50. package/dist/atoms/search/index.cjs +7 -47
  51. package/dist/atoms/search/index.d.cts +76 -14
  52. package/dist/atoms/search/index.d.ts +76 -14
  53. package/dist/atoms/search/index.js +7 -29
  54. package/dist/atoms/search/utils.cjs +1 -1
  55. package/dist/atoms/search/utils.d.cts +1 -1
  56. package/dist/atoms/search/utils.d.ts +1 -1
  57. package/dist/atoms/search/utils.js +1 -1
  58. package/dist/cdnContext-B2-NiEiW.js +38 -0
  59. package/dist/cdnContext-CdhppNeT.cjs +53 -0
  60. package/dist/chat-C9KdnT5V.js +230 -0
  61. package/dist/chat-bImNRcnQ.cjs +330 -0
  62. package/dist/chatState-DqWSgmjC.cjs +120 -0
  63. package/dist/chatState-DxG0t4fK.js +34 -0
  64. package/dist/config/index.d.cts +4 -4
  65. package/dist/config/index.d.ts +4 -4
  66. package/dist/config/locators/components/chat/index.d.cts +1 -1
  67. package/dist/config/locators/components/chat/index.d.ts +1 -1
  68. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  69. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  70. package/dist/config/locators/components/common/index.d.cts +1 -1
  71. package/dist/config/locators/components/common/index.d.ts +1 -1
  72. package/dist/config/locators/components/index.d.cts +1 -1
  73. package/dist/config/locators/components/index.d.ts +1 -1
  74. package/dist/config/locators/components/search/index.d.cts +1 -1
  75. package/dist/config/locators/components/search/index.d.ts +1 -1
  76. package/dist/config/locators/index.d.cts +4 -4
  77. package/dist/config/locators/index.d.ts +4 -4
  78. package/dist/contexts/amplitudeContext/index.cjs +19 -19
  79. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  80. package/dist/contexts/amplitudeContext/index.d.ts +1 -1
  81. package/dist/contexts/amplitudeContext/index.js +19 -19
  82. package/dist/contexts/cdnContext/index.cjs +4 -4
  83. package/dist/contexts/cdnContext/index.d.cts +2 -6
  84. package/dist/contexts/cdnContext/index.d.ts +2 -6
  85. package/dist/contexts/cdnContext/index.js +4 -4
  86. package/dist/contexts/enviveConfigContext/index.cjs +4 -4
  87. package/dist/contexts/enviveConfigContext/index.d.cts +3 -24
  88. package/dist/contexts/enviveConfigContext/index.d.ts +3 -24
  89. package/dist/contexts/enviveConfigContext/index.js +4 -4
  90. package/dist/contexts/enviveCssContext/index.cjs +15 -19
  91. package/dist/contexts/enviveCssContext/index.d.cts +3 -5
  92. package/dist/contexts/enviveCssContext/index.d.ts +3 -5
  93. package/dist/contexts/enviveCssContext/index.js +15 -19
  94. package/dist/contexts/featureFlagContext/index.cjs +9 -10
  95. package/dist/contexts/featureFlagContext/index.d.cts +3 -11
  96. package/dist/contexts/featureFlagContext/index.d.ts +3 -11
  97. package/dist/contexts/featureFlagContext/index.js +6 -7
  98. package/dist/contexts/featureFlagServiceContext/index.cjs +4 -3
  99. package/dist/contexts/featureFlagServiceContext/index.d.cts +1 -4
  100. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -4
  101. package/dist/contexts/featureFlagServiceContext/index.js +4 -3
  102. package/dist/contexts/graphqlContext/index.cjs +8 -13
  103. package/dist/contexts/graphqlContext/index.d.cts +11 -14
  104. package/dist/contexts/graphqlContext/index.d.ts +11 -14
  105. package/dist/contexts/graphqlContext/index.js +8 -13
  106. package/dist/contexts/localStorageContext/index.cjs +3 -3
  107. package/dist/contexts/localStorageContext/index.d.cts +3 -22
  108. package/dist/contexts/localStorageContext/index.d.ts +3 -22
  109. package/dist/contexts/localStorageContext/index.js +4 -3
  110. package/dist/contexts/newOrgConfigContext/index.cjs +13 -17
  111. package/dist/contexts/newOrgConfigContext/index.d.cts +12 -15
  112. package/dist/contexts/newOrgConfigContext/index.d.ts +12 -15
  113. package/dist/contexts/newOrgConfigContext/index.js +13 -17
  114. package/dist/contexts/searchContext/index.cjs +24 -24
  115. package/dist/contexts/searchContext/index.d.cts +2 -7
  116. package/dist/contexts/searchContext/index.d.ts +2 -7
  117. package/dist/contexts/searchContext/index.js +24 -24
  118. package/dist/contexts/sessionStorageContext/index.cjs +2 -2
  119. package/dist/contexts/sessionStorageContext/index.d.cts +2 -6
  120. package/dist/contexts/sessionStorageContext/index.d.ts +2 -6
  121. package/dist/contexts/sessionStorageContext/index.js +2 -2
  122. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  123. package/dist/contexts/shopifyUrlContext/index.d.cts +2 -11
  124. package/dist/contexts/shopifyUrlContext/index.d.ts +2 -11
  125. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  126. package/dist/contexts/systemSettingsContext/index.cjs +4 -4
  127. package/dist/contexts/systemSettingsContext/index.d.cts +6 -16
  128. package/dist/contexts/systemSettingsContext/index.d.ts +4 -14
  129. package/dist/contexts/systemSettingsContext/index.js +4 -4
  130. package/dist/contexts/userIdentityContext/index.cjs +19 -19
  131. package/dist/contexts/userIdentityContext/index.d.cts +11 -2
  132. package/dist/contexts/userIdentityContext/index.d.ts +11 -2
  133. package/dist/contexts/userIdentityContext/index.js +19 -19
  134. package/dist/dist-B7BErEyV.cjs +6019 -0
  135. package/dist/dist-CtkINi1R.js +5923 -0
  136. package/dist/domObserver-B19-69gW.js +285 -0
  137. package/dist/{domObserver-v9ODTyfT.js → domObserver-CwieVNgj.cjs} +23 -4
  138. package/dist/enviveConfig-Be2kZE7j.js +62 -0
  139. package/dist/enviveConfig-u50Rpz-G.cjs +130 -0
  140. package/dist/enviveConfigContext-1oiQuocd.js +45 -0
  141. package/dist/enviveConfigContext-kQfHEGdJ.cjs +60 -0
  142. package/dist/events/index.cjs +2 -3
  143. package/dist/events/index.d.cts +2 -15
  144. package/dist/events/index.d.ts +2 -15
  145. package/dist/events/index.js +2 -2
  146. package/dist/events-CgFGtanE.cjs +69 -0
  147. package/dist/events-WOOrnUAx.js +63 -0
  148. package/dist/exceptions/index.cjs +4 -0
  149. package/dist/exceptions/index.d.cts +12 -0
  150. package/dist/exceptions/index.d.ts +12 -0
  151. package/dist/exceptions/index.js +3 -0
  152. package/dist/exceptions-BjDgLzGi.cjs +32 -0
  153. package/dist/exceptions-CUGY31Ua.js +20 -0
  154. package/dist/featureFlagServiceContext-B7je7VZV.d.cts +24 -0
  155. package/dist/featureFlagServiceContext-CPsygiHO.js +46 -0
  156. package/dist/featureFlagServiceContext-ahy3jou0.d.ts +24 -0
  157. package/dist/featureFlagServiceContext-pPneufeB.cjs +66 -0
  158. package/dist/{globalSearch-Ccxq8hNF.js → globalSearch-B_v9qfCT.js} +1 -1
  159. package/dist/{globalSearch-FBk2epe8.cjs → globalSearch-OiF96VLG.cjs} +1 -1
  160. package/dist/graphql-CvAHWmel.js +46 -0
  161. package/dist/graphql-JaGqsToc.cjs +70 -0
  162. package/dist/graphqlContext-BuXJ5DiW.js +96 -0
  163. package/dist/graphqlContext-CU7NIJo7.cjs +111 -0
  164. package/dist/hooks/AmplitudeOperations/index.cjs +21 -22
  165. package/dist/hooks/AmplitudeOperations/index.d.cts +2 -2
  166. package/dist/hooks/AmplitudeOperations/index.d.ts +2 -2
  167. package/dist/hooks/AmplitudeOperations/index.js +20 -21
  168. package/dist/hooks/AppDetails/index.cjs +22 -22
  169. package/dist/hooks/AppDetails/index.d.cts +3 -23
  170. package/dist/hooks/AppDetails/index.d.ts +3 -23
  171. package/dist/hooks/AppDetails/index.js +22 -22
  172. package/dist/hooks/CdnOperations/index.cjs +4 -4
  173. package/dist/hooks/CdnOperations/index.d.cts +1 -1
  174. package/dist/hooks/CdnOperations/index.js +4 -4
  175. package/dist/hooks/ChatToggle/index.cjs +24 -24
  176. package/dist/hooks/ChatToggle/index.d.cts +2 -2
  177. package/dist/hooks/ChatToggle/index.d.ts +2 -2
  178. package/dist/hooks/ChatToggle/index.js +22 -22
  179. package/dist/hooks/ChatToggleAnalytics/index.cjs +23 -24
  180. package/dist/hooks/ChatToggleAnalytics/index.d.cts +2 -2
  181. package/dist/hooks/ChatToggleAnalytics/index.d.ts +2 -2
  182. package/dist/hooks/ChatToggleAnalytics/index.js +22 -23
  183. package/dist/hooks/CustomerSupportHandoff/index.cjs +2 -2
  184. package/dist/hooks/CustomerSupportHandoff/index.js +2 -2
  185. package/dist/hooks/Debounce/index.cjs +20 -2
  186. package/dist/hooks/Debounce/index.js +18 -2
  187. package/dist/hooks/ElementObserver/index.cjs +4 -6
  188. package/dist/hooks/ElementObserver/index.d.cts +4 -25
  189. package/dist/hooks/ElementObserver/index.d.ts +4 -25
  190. package/dist/hooks/ElementObserver/index.js +4 -6
  191. package/dist/hooks/GrabAndScroll/index.cjs +1 -1
  192. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  193. package/dist/hooks/GrabAndScroll/index.js +1 -1
  194. package/dist/hooks/GraphQLConfig/index.cjs +9 -14
  195. package/dist/hooks/GraphQLConfig/index.d.cts +2 -13
  196. package/dist/hooks/GraphQLConfig/index.d.ts +2 -13
  197. package/dist/hooks/GraphQLConfig/index.js +9 -14
  198. package/dist/hooks/IdentifyUser/index.cjs +19 -19
  199. package/dist/hooks/IdentifyUser/index.js +19 -19
  200. package/dist/hooks/ImageResolver/index.cjs +20 -29
  201. package/dist/hooks/ImageResolver/index.js +20 -29
  202. package/dist/hooks/Intersection/index.cjs +1 -1
  203. package/dist/hooks/Intersection/index.js +1 -1
  204. package/dist/hooks/LocalStorageOperations/index.cjs +8 -7
  205. package/dist/hooks/LocalStorageOperations/index.js +4 -3
  206. package/dist/hooks/MessageFilter/index.cjs +3 -12
  207. package/dist/hooks/MessageFilter/index.d.cts +2 -17
  208. package/dist/hooks/MessageFilter/index.d.ts +2 -17
  209. package/dist/hooks/MessageFilter/index.js +2 -11
  210. package/dist/hooks/NewOrgConfig/index.cjs +14 -18
  211. package/dist/hooks/NewOrgConfig/index.d.cts +3 -16
  212. package/dist/hooks/NewOrgConfig/index.d.ts +3 -16
  213. package/dist/hooks/NewOrgConfig/index.js +14 -18
  214. package/dist/hooks/Search/index.cjs +332 -167
  215. package/dist/hooks/Search/index.d.cts +3 -57
  216. package/dist/hooks/Search/index.d.ts +3 -57
  217. package/dist/hooks/Search/index.js +320 -156
  218. package/dist/hooks/SearchOperations/index.cjs +25 -25
  219. package/dist/hooks/SearchOperations/index.d.cts +2 -3
  220. package/dist/hooks/SearchOperations/index.d.ts +2 -3
  221. package/dist/hooks/SearchOperations/index.js +25 -25
  222. package/dist/hooks/SessionStorageOperations/index.cjs +2 -2
  223. package/dist/hooks/SessionStorageOperations/index.js +2 -2
  224. package/dist/hooks/ShopifyUrlOperations/index.cjs +3 -3
  225. package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -4
  226. package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -4
  227. package/dist/hooks/ShopifyUrlOperations/index.js +3 -3
  228. package/dist/hooks/SnapCalculator/index.cjs +1 -1
  229. package/dist/hooks/SnapCalculator/index.d.cts +4 -3
  230. package/dist/hooks/SnapCalculator/index.d.ts +4 -3
  231. package/dist/hooks/SnapCalculator/index.js +1 -1
  232. package/dist/hooks/SystemSettingsContext/index.cjs +17 -6
  233. package/dist/hooks/SystemSettingsContext/index.d.cts +5 -15
  234. package/dist/hooks/SystemSettingsContext/index.d.ts +5 -15
  235. package/dist/hooks/SystemSettingsContext/index.js +15 -6
  236. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +21 -21
  237. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +2 -3
  238. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +2 -3
  239. package/dist/hooks/TrackComponentVisibleEvent/index.js +21 -21
  240. package/dist/hooks/UpdateAnalyticsProps/index.cjs +21 -21
  241. package/dist/hooks/UpdateAnalyticsProps/index.js +20 -20
  242. package/dist/hooks/utils.d.cts +20 -13
  243. package/dist/hooks/utils.d.ts +20 -13
  244. package/dist/{index-LTdMHOxj.d.ts → index-B4cSHxVN.d.ts} +1 -1
  245. package/dist/{index-DzbkQtaK.d.cts → index-BQpWG3Jm.d.cts} +1 -1
  246. package/dist/index-BVZbvpx_.d.cts +11 -0
  247. package/dist/index-CEmUfoZa.d.ts +42 -0
  248. package/dist/index-CMZcE7pk.d.cts +224 -0
  249. package/dist/{index-DBqgBV9N.d.ts → index-CYGpI6hE.d.ts} +1 -1
  250. package/dist/{index-9NE86em3.d.cts → index-ClVBVK15.d.cts} +1 -1
  251. package/dist/{index-nDWHlouq.d.ts → index-Clf4wYaJ.d.ts} +1 -1
  252. package/dist/index-DeQte6mb.d.ts +11 -0
  253. package/dist/index-Dzv6WwSZ.d.ts +224 -0
  254. package/dist/{index-FQjyuD3D.d.cts → index-ca7Qn8o0.d.cts} +1 -1
  255. package/dist/{index-DHgVW8ey.d.ts → index-dngXrfnT.d.ts} +1 -1
  256. package/dist/index-qOBU4GEh.d.cts +42 -0
  257. package/dist/{index-Da1s8h5C.d.cts → index-w64il54a.d.cts} +1 -1
  258. package/dist/interceptors/index.cjs +28 -3
  259. package/dist/interceptors/index.d.cts +4 -15
  260. package/dist/interceptors/index.d.ts +4 -15
  261. package/dist/interceptors/index.js +25 -3
  262. package/dist/localStorageContext-Bb2b_3ue.cjs +104 -0
  263. package/dist/localStorageContext-D2uXKahw.js +90 -0
  264. package/dist/{logger-W3lqg-4b.js → logger-BMVdhQOV.js} +1 -1
  265. package/dist/{logger-TBIl4uIH.cjs → logger-BqHq67zN.cjs} +1 -1
  266. package/dist/models-DmsMlaHT.js +1118 -0
  267. package/dist/models-wh2gh_Qz.cjs +1305 -0
  268. package/dist/newOrgConfigAtom-Dsk0fJNR.js +8 -0
  269. package/dist/{newOrgConfigAtom-A4BEeHMf.cjs → newOrgConfigAtom-hs5A1pbZ.cjs} +1 -1
  270. package/dist/newOrgConfigContext-DPUxIF2G.js +53 -0
  271. package/dist/newOrgConfigContext-lw85mMS-.cjs +68 -0
  272. package/dist/nodeSelector-CbWcUbuc.d.ts +28 -0
  273. package/dist/nodeSelector-Cj-Xl1LP.d.cts +28 -0
  274. package/dist/org-C2kLSSe9.cjs +111 -0
  275. package/dist/org-CIczyLRP.js +32 -0
  276. package/dist/search-BzXoTgRx.js +233 -0
  277. package/dist/search-D1cU29CV.cjs +312 -0
  278. package/dist/searchContext-C8DpjnqD.js +129 -0
  279. package/dist/searchContext-R_XuFzYe.cjs +145 -0
  280. package/dist/searchServiceAdapter-CKc7UXKi.js +16 -0
  281. package/dist/searchServiceAdapter-pROGm3Rf.cjs +34 -0
  282. package/dist/sessionStorageContext-ByaTsDUC.cjs +66 -0
  283. package/dist/sessionStorageContext-DKE97oMv.js +52 -0
  284. package/dist/shopifyUrlContext-G9eqIcsL.cjs +75 -0
  285. package/dist/shopifyUrlContext-WAm0pnPh.js +61 -0
  286. package/dist/systemSettingsContext-B-FZ8UAg.js +39 -0
  287. package/dist/systemSettingsContext-J1sny8W8.cjs +60 -0
  288. package/dist/types/index.cjs +3 -33
  289. package/dist/types/index.d.cts +2 -3
  290. package/dist/types/index.d.ts +2 -3
  291. package/dist/types/index.js +2 -30
  292. package/dist/types-1iJ_FnQQ.cjs +39 -0
  293. package/dist/types-D5du68Vp.js +27 -0
  294. package/dist/urlsParser-C-Vzs--G.cjs +78 -0
  295. package/dist/urlsParser-G7Ocwg0M.js +42 -0
  296. package/dist/useAppDetails-BtK9ZZJs.js +30 -0
  297. package/dist/useAppDetails-Bw2jJ39H.cjs +38 -0
  298. package/dist/useGraphQLConfig-Dc8h2yyN.cjs +76 -0
  299. package/dist/useGraphQLConfig-DuLB3tdv.js +63 -0
  300. package/dist/{useIntersection-BJRFGG0f.js → useIntersection-BWiHkpKL.js} +1 -1
  301. package/dist/{useIntersection-CYRvxtRN.cjs → useIntersection-DZHz44BY.cjs} +1 -1
  302. package/dist/{utils-DIvMgPe8.js → utils-B1LVzQYK.js} +1 -1
  303. package/dist/{utils-Buo4KU5l.cjs → utils-BivlGkeU.cjs} +1 -1
  304. package/dist/{utils-BRNaQkCK.js → utils-CExht7Uj.js} +1 -1
  305. package/dist/{utils-CDw74BCO.cjs → utils-CiJLDPjY.cjs} +1 -1
  306. package/dist/utils-D_kATUj6.js +1 -1
  307. package/dist/utils-DqNhRm2b.cjs +1546 -0
  308. package/dist/utils-IogJwDB9.js +1364 -0
  309. package/dist/utils-hYTjy7hJ.cjs +1 -1
  310. package/dist/{utils-DyTiotQz.d.ts → utils-wWki3L1d.d.ts} +1 -1
  311. package/package.json +7 -25
  312. package/src/application/commerce-api.ts +38 -37
  313. package/src/application/models/graphql/index.ts +1 -0
  314. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -23
  315. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -89
  316. package/src/application/models/guards/api/isApiFormResponse.ts +4 -4
  317. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +2 -2
  318. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +2 -20
  319. package/src/application/models/guards/api/isApiOrgConfigResults.ts +3 -9
  320. package/src/application/models/guards/api/isApiOrganizationConfig.ts +8 -32
  321. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +8 -5
  322. package/src/application/models/guards/api/isApiPLPEventAttributes.ts +14 -10
  323. package/src/application/models/guards/api/isApiPageResponseAttributes.ts +1 -1
  324. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +2 -4
  325. package/src/application/models/guards/api/isApiProductSearchAttributes.ts +9 -6
  326. package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +7 -4
  327. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +8 -3
  328. package/src/application/models/guards/api/isApiResponse.ts +22 -15
  329. package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +1 -1
  330. package/src/application/models/guards/api/isApiReviewRichInformation.ts +1 -1
  331. package/src/application/models/guards/api/isApiTextResponseAttributes.ts +1 -1
  332. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +1 -1
  333. package/src/application/models/guards/isBaseEcommerceEvent.ts +1 -2
  334. package/src/application/models/guards/isGA4EcommerceEvent.ts +1 -1
  335. package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +1 -1
  336. package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +1 -3
  337. package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +5 -3
  338. package/src/application/models/guards/isVariantInfo.ts +6 -1
  339. package/src/application/models/index.ts +30 -95
  340. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  341. package/src/application/models/validators/validateGraphQLColorsConfig.ts +6 -2
  342. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +6 -6
  343. package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +5 -3
  344. package/src/application/models/validators/validateOrgConfigResults.ts +6 -5
  345. package/src/application/models/validators/validateOrganizationConfig.ts +11 -8
  346. package/src/application/models/validators/validateResponse.ts +66 -44
  347. package/src/application/models/validators/validateSuggestion.ts +1 -1
  348. package/src/application/models/validators/validateUserEvent.ts +23 -12
  349. package/src/application/utils/analyticsUtils.ts +16 -38
  350. package/src/application/utils/coreContextToApiContext.ts +3 -1
  351. package/src/application/utils/coreUserEventToApiUserEvent.ts +2 -2
  352. package/src/application/utils/elementObserver.ts +1 -1
  353. package/src/application/utils/imageFilter.ts +5 -2
  354. package/src/application/utils/index.ts +20 -21
  355. package/src/application/utils/messageFromFormSubmittedEvent.ts +1 -1
  356. package/src/application/utils/messageFromQueryEvent.ts +1 -1
  357. package/src/application/utils/messageFromResponse.ts +14 -10
  358. package/src/application/utils/messageFromSuggestionEvent.ts +6 -4
  359. package/src/application/utils/mouseEventTypes.ts +1 -1
  360. package/src/application/utils/nextMessageRequestToApiRequest.ts +1 -1
  361. package/src/application/utils/overrides.ts +1 -49
  362. package/src/application/utils/supportedEventRequestToApiRequest.ts +3 -1
  363. package/src/application/utils/urlsParser.ts +1 -7
  364. package/src/atoms/app/index.ts +15 -25
  365. package/src/atoms/app/variant.ts +1 -1
  366. package/src/atoms/chat/chatState.ts +9 -14
  367. package/src/atoms/chat/form.ts +1 -1
  368. package/src/atoms/chat/messageQueue.ts +25 -50
  369. package/src/atoms/chat/replies.ts +40 -43
  370. package/src/atoms/chat/suggestions.ts +34 -29
  371. package/src/atoms/envive/enviveConfig.ts +14 -20
  372. package/src/atoms/org/customerService.ts +4 -8
  373. package/src/atoms/org/graphqlConfig.ts +7 -15
  374. package/src/atoms/org/index.ts +4 -6
  375. package/src/atoms/org/newOrgConfigAtom.ts +2 -2
  376. package/src/atoms/org/orgAnalyticsConfig.ts +1 -1
  377. package/src/atoms/search/index.ts +0 -1
  378. package/src/atoms/search/productFilters.ts +72 -52
  379. package/src/atoms/search/productRetrievalAPI.ts +72 -0
  380. package/src/atoms/search/productRetrievalAdapter.ts +28 -0
  381. package/src/atoms/search/productSorter.ts +2 -2
  382. package/src/atoms/search/searchAPI.ts +42 -60
  383. package/src/atoms/search/searchServiceAdapter.ts +1 -1
  384. package/src/contexts/amplitudeContext/amplitudeContext.tsx +104 -143
  385. package/src/contexts/cdnContext/cdnContext.tsx +9 -16
  386. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +6 -27
  387. package/src/contexts/enviveCssContext/enviveCssContext.tsx +5 -12
  388. package/src/contexts/featureFlagContext/featureFlagContext.tsx +27 -48
  389. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -3
  390. package/src/contexts/graphqlContext/graphqlContext.tsx +40 -95
  391. package/src/contexts/localStorageContext/localStorageContext.tsx +26 -60
  392. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +10 -22
  393. package/src/contexts/searchContext/searchContext.tsx +29 -49
  394. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +12 -33
  395. package/src/contexts/shopifyUrlContext/shopifyUrlContext.tsx +20 -37
  396. package/src/contexts/systemSettingsContext/systemSettingsContext.tsx +8 -21
  397. package/src/contexts/userIdentityContext/userIdentityContext.tsx +33 -77
  398. package/src/events/index.ts +8 -5
  399. package/src/events/registerAnalyticsListeners.ts +10 -13
  400. package/src/exceptions/index.ts +2 -0
  401. package/src/{types/exceptions → exceptions}/unsupportedProductExceptions.ts +2 -2
  402. package/src/global.d.ts +8 -0
  403. package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +6 -11
  404. package/src/hooks/AppDetails/useAppDetails.ts +10 -24
  405. package/src/hooks/ChatToggle/useChatToggle.ts +7 -19
  406. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +4 -4
  407. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +1 -1
  408. package/src/hooks/ElementObserver/useElementObserver.ts +14 -32
  409. package/src/hooks/GrabAndScroll/useGrabAndScroll.ts +125 -124
  410. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +5 -7
  411. package/src/hooks/ImageResolver/useImageResolver.ts +24 -31
  412. package/src/hooks/LocalStorageOperations/useLocalStorageOperations.ts +12 -19
  413. package/src/hooks/MessageFilter/useMessageFilter.ts +1 -7
  414. package/src/hooks/Search/useRecommendedProducts.ts +50 -0
  415. package/src/hooks/Search/useSearch.tsx +80 -210
  416. package/src/hooks/Search/useSearchInput.ts +227 -0
  417. package/src/hooks/SearchOperations/useSearchOperations.ts +8 -12
  418. package/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.ts +8 -14
  419. package/src/hooks/SnapCalculator/useSnapCalculator.ts +1 -2
  420. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +8 -11
  421. package/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.ts +11 -25
  422. package/src/hooks/utils.ts +19 -29
  423. package/src/interceptors/index.ts +1 -2
  424. package/src/interceptors/useMessageInterceptor.ts +10 -6
  425. package/src/{application/models/api/response.ts → types/ApiResponse.ts} +35 -29
  426. package/src/types/FilterAttribute.ts +35 -0
  427. package/src/{application/models/message.ts → types/Message.ts} +38 -34
  428. package/src/types/Suggestion.ts +6 -0
  429. package/src/types/index.ts +4 -4
  430. package/src/util/colorVar.ts +4 -0
  431. package/src/util/configVersion.ts +4 -0
  432. package/src/util/domInsertion.ts +17 -0
  433. package/dist/SystemSettingsContext-CO5c1L62.cjs +0 -20
  434. package/dist/SystemSettingsContext-CXmUlH8i.js +0 -13
  435. package/dist/TrackComponentVisibleEvent-B0WO3ArV.js +0 -52
  436. package/dist/TrackComponentVisibleEvent-LRE9MYzL.cjs +0 -59
  437. package/dist/amplitudeContext-B73xamNe.d.cts +0 -52
  438. package/dist/amplitudeContext-DXnJi0V1.d.ts +0 -52
  439. package/dist/api-BWSsazAG.js +0 -166
  440. package/dist/api-DeW6rHj3.cjs +0 -239
  441. package/dist/application/models/utilityTypes/index.cjs +0 -1
  442. package/dist/application/models/utilityTypes/index.d.cts +0 -2
  443. package/dist/application/models/utilityTypes/index.d.ts +0 -2
  444. package/dist/application/models/utilityTypes/index.js +0 -3
  445. package/dist/application/models/variantInfo/index.cjs +0 -3
  446. package/dist/application/models/variantInfo/index.d.cts +0 -2
  447. package/dist/application/models/variantInfo/index.d.ts +0 -2
  448. package/dist/application/models/variantInfo/index.js +0 -3
  449. package/dist/atoms/search/types.cjs +0 -5
  450. package/dist/atoms/search/types.d.cts +0 -2
  451. package/dist/atoms/search/types.d.ts +0 -2
  452. package/dist/atoms/search/types.js +0 -3
  453. package/dist/cdnContext-CH_-ssYa.js +0 -38
  454. package/dist/cdnContext-D7kHxOzE.cjs +0 -53
  455. package/dist/chat-CqPuT9_V.cjs +0 -393
  456. package/dist/chat-DH70QqJp.js +0 -257
  457. package/dist/chatElementDisplayLocation-BoE6DEdv.d.ts +0 -25
  458. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +0 -25
  459. package/dist/chatSearch-BQCZI8MJ.cjs +0 -418
  460. package/dist/chatSearch-D8xCWU8m.js +0 -295
  461. package/dist/chatState-CcFtSqJT.cjs +0 -120
  462. package/dist/chatState-DKnNHmwe.js +0 -34
  463. package/dist/contexts/chatContext/index.cjs +0 -326
  464. package/dist/contexts/chatContext/index.d.cts +0 -15
  465. package/dist/contexts/chatContext/index.d.ts +0 -15
  466. package/dist/contexts/chatContext/index.js +0 -319
  467. package/dist/contexts/types.cjs +0 -7
  468. package/dist/contexts/types.d.cts +0 -4
  469. package/dist/contexts/types.d.ts +0 -4
  470. package/dist/contexts/types.js +0 -3
  471. package/dist/domObserver-Bqf3ooj8.cjs +0 -304
  472. package/dist/enviveConfig-DZBohDpc.js +0 -62
  473. package/dist/enviveConfig-Dv9-esGV.cjs +0 -130
  474. package/dist/enviveConfigContext-D2OELZDR.cjs +0 -60
  475. package/dist/enviveConfigContext-DrDjCems.js +0 -45
  476. package/dist/events-DYY4l817.cjs +0 -90
  477. package/dist/events-DyUix-Bn.js +0 -78
  478. package/dist/featureFlagServiceContext-CJyYItqu.cjs +0 -62
  479. package/dist/featureFlagServiceContext-C_2m4wPL.d.ts +0 -23
  480. package/dist/featureFlagServiceContext-CiKWV306.d.cts +0 -23
  481. package/dist/featureFlagServiceContext-FBM6DdMJ.js +0 -42
  482. package/dist/featureGates-KEwAL8p_.js +0 -26
  483. package/dist/featureGates-qU_ulhpC.cjs +0 -32
  484. package/dist/frontendConfig-CymUbclV.d.ts +0 -856
  485. package/dist/frontendConfig-tVg0hsWZ.d.cts +0 -856
  486. package/dist/graphql-3PxNRFOc.js +0 -36
  487. package/dist/graphql-DGYfelZp.cjs +0 -53
  488. package/dist/graphqlConfig-GHZ1UgCw.cjs +0 -73
  489. package/dist/graphqlConfig-mDg6J44N.js +0 -24
  490. package/dist/graphqlContext-BZPEAFSR.cjs +0 -111
  491. package/dist/graphqlContext-Bf3E-V2T.d.cts +0 -28
  492. package/dist/graphqlContext-CQikpV_I.d.ts +0 -28
  493. package/dist/graphqlContext-eaZPxgRE.js +0 -96
  494. package/dist/index-BVf069X-.d.ts +0 -184
  495. package/dist/index-B_KJB5L_.d.cts +0 -186
  496. package/dist/index-BkLv_fCu.d.ts +0 -186
  497. package/dist/index-Bmub8e38.d.cts +0 -98
  498. package/dist/index-C0eAp5f5.d.ts +0 -98
  499. package/dist/index-CESxqFso.d.cts +0 -228
  500. package/dist/index-CG3P8xE1.d.cts +0 -676
  501. package/dist/index-CJc7_j_v.d.ts +0 -44
  502. package/dist/index-CiWEYzXl.d.cts +0 -184
  503. package/dist/index-Cyq5HiC0.d.cts +0 -44
  504. package/dist/index-DL2ODEnw.d.ts +0 -1
  505. package/dist/index-DgjDuQl4.d.ts +0 -676
  506. package/dist/index-RcVcRKH7.d.cts +0 -1
  507. package/dist/index-vP8BKdxl.d.ts +0 -228
  508. package/dist/interceptors/types.cjs +0 -1
  509. package/dist/interceptors/types.d.cts +0 -13
  510. package/dist/interceptors/types.d.ts +0 -13
  511. package/dist/interceptors/types.js +0 -3
  512. package/dist/localStorageContext-BPZ82q-G.js +0 -95
  513. package/dist/localStorageContext-NRP-CdmF.cjs +0 -115
  514. package/dist/models-D-4db7XW.cjs +0 -1537
  515. package/dist/models-c86hYW-F.js +0 -1296
  516. package/dist/newOrgConfigAtom-OzAyrPS8.js +0 -8
  517. package/dist/newOrgConfigContext-DOdUxlOE.d.cts +0 -16
  518. package/dist/newOrgConfigContext-DX9iqIIK.cjs +0 -68
  519. package/dist/newOrgConfigContext-aqN8Tu79.js +0 -53
  520. package/dist/newOrgConfigContext-jphS5d4K.d.ts +0 -16
  521. package/dist/nodeSelector-B3bPtEjX.d.cts +0 -31
  522. package/dist/nodeSelector-Dcn3_NrZ.d.ts +0 -31
  523. package/dist/org-Bq2KsJSp.cjs +0 -43
  524. package/dist/org-gtWmGw4K.js +0 -12
  525. package/dist/search-BQPMtze5.cjs +0 -205
  526. package/dist/search-CIrqYYMI.d.ts +0 -20
  527. package/dist/search-PXzaYtZj.js +0 -126
  528. package/dist/search-filter-types-BhK20ts3.d.ts +0 -102
  529. package/dist/search-filter-types-BxaNSLs_.d.cts +0 -102
  530. package/dist/search-y-ioX5Mz.d.cts +0 -20
  531. package/dist/searchContext-CmsLR6Ka.cjs +0 -145
  532. package/dist/searchContext-NPfqMf6b.js +0 -129
  533. package/dist/searchServiceAdapter-BczodJGV.cjs +0 -34
  534. package/dist/searchServiceAdapter-BuEHFG5t.js +0 -16
  535. package/dist/sessionStorageContext-C1u04nAK.js +0 -52
  536. package/dist/sessionStorageContext-Cy8xc9-3.cjs +0 -66
  537. package/dist/shopifyUrlContext-CUyq3f27.cjs +0 -75
  538. package/dist/shopifyUrlContext-DTLlqlMj.js +0 -61
  539. package/dist/spiffyWidgets-BnkP5kXf.d.ts +0 -20
  540. package/dist/spiffyWidgets-BuS00VaQ.d.cts +0 -20
  541. package/dist/systemSettingsContext-Ba-wi2NZ.cjs +0 -60
  542. package/dist/systemSettingsContext-DumUaV0m.js +0 -39
  543. package/dist/test-types-DbrKQIqB.d.ts +0 -40
  544. package/dist/test-types-ThQiO_cc.d.cts +0 -40
  545. package/dist/types-BWzwd0Qc.js +0 -30
  546. package/dist/types-CEx2uKKS.d.ts +0 -51
  547. package/dist/types-CKMMb_gX.d.cts +0 -51
  548. package/dist/types-CKPddlfS.cjs +0 -0
  549. package/dist/types-CtUb63bt.js +0 -76
  550. package/dist/types-Cz8CaPUQ.cjs +0 -48
  551. package/dist/types-Dc6hx6ei.js +0 -1
  552. package/dist/types-Mwm0bS2l.d.ts +0 -10
  553. package/dist/types-UUvB6h05.cjs +0 -106
  554. package/dist/types-zQGBI-Yo.d.cts +0 -10
  555. package/dist/types.cjs +0 -0
  556. package/dist/types.d.cts +0 -15
  557. package/dist/types.d.ts +0 -15
  558. package/dist/types.js +0 -1
  559. package/dist/urlsParser-COzMdJaX.cjs +0 -78
  560. package/dist/urlsParser-DxjoLj98.js +0 -42
  561. package/dist/useAmplitudeOperations-Cv0fi3uj.cjs +0 -41
  562. package/dist/useAmplitudeOperations-Ti6phPPq.js +0 -34
  563. package/dist/useAppDetails-BgqbPlfR.cjs +0 -38
  564. package/dist/useAppDetails-DnKGYtCd.js +0 -30
  565. package/dist/useDebounce-BV7B-Jz3.js +0 -19
  566. package/dist/useDebounce-vU5iW5sa.cjs +0 -26
  567. package/dist/useGraphQLConfig-BizpCw23.cjs +0 -76
  568. package/dist/useGraphQLConfig-DFWl9Z89.js +0 -63
  569. package/dist/useMessageInterceptor-BjGP_uXm.js +0 -25
  570. package/dist/useMessageInterceptor-arAqUq1Q.cjs +0 -33
  571. package/dist/userIdentityContext-BvsEnQVX.d.ts +0 -20
  572. package/dist/userIdentityContext-D2oFVFzo.d.cts +0 -20
  573. package/dist/utilityTypes-B2KuRn37.js +0 -1
  574. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  575. package/dist/utils-B7PAzB_M.d.cts +0 -22
  576. package/dist/utils-CLGXsOwE.cjs +0 -1591
  577. package/dist/utils-CrQ0h9tc.d.ts +0 -22
  578. package/dist/utils-jYtD3hmA.js +0 -1385
  579. package/dist/variantInfo-BfKlkaWU.js +0 -11
  580. package/dist/variantInfo-DpLn4nHz.cjs +0 -17
  581. package/src/application/models/api/context.ts +0 -4
  582. package/src/application/models/api/generationParams.ts +0 -4
  583. package/src/application/models/api/nextMessageRequest.ts +0 -11
  584. package/src/application/models/api/orgAnalyticsConfig.ts +0 -19
  585. package/src/application/models/api/orgConfigResults.ts +0 -44
  586. package/src/application/models/api/organizationConfig.ts +0 -12
  587. package/src/application/models/api/responseGenerics.ts +0 -67
  588. package/src/application/models/api/search.ts +0 -26
  589. package/src/application/models/api/suggestion.ts +0 -4
  590. package/src/application/models/api/supportedEventRequest.ts +0 -8
  591. package/src/application/models/api/userEvent.ts +0 -101
  592. package/src/application/models/cachedValue.ts +0 -8
  593. package/src/application/models/chatElementDisplayLocation.ts +0 -22
  594. package/src/application/models/clientDetails.ts +0 -18
  595. package/src/application/models/colorsConfig.ts +0 -28
  596. package/src/application/models/conversationalSearchIds.ts +0 -5
  597. package/src/application/models/dataLayer.ts +0 -45
  598. package/src/application/models/events.ts +0 -5
  599. package/src/application/models/featureGates.ts +0 -21
  600. package/src/application/models/frontendConfig.ts +0 -14
  601. package/src/application/models/googleAnalyticsEvents.ts +0 -8
  602. package/src/application/models/localStorageEventListener.ts +0 -4
  603. package/src/application/models/mobilePLPChatPlacementParameter.ts +0 -3
  604. package/src/application/models/orgsEnum.ts +0 -36
  605. package/src/application/models/productExperiment.ts +0 -5
  606. package/src/application/models/spanxTakeAQuizCtaParameter.ts +0 -4
  607. package/src/application/models/spiffyWidgets.ts +0 -16
  608. package/src/application/models/utilityTypes/camelCase.ts +0 -87
  609. package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +0 -80
  610. package/src/application/models/utilityTypes/delimiterCase.ts +0 -121
  611. package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +0 -98
  612. package/src/application/models/utilityTypes/index.ts +0 -1
  613. package/src/application/models/utilityTypes/internal.ts +0 -93
  614. package/src/application/models/utilityTypes/primitive.ts +0 -8
  615. package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +0 -49
  616. package/src/application/models/utilityTypes/splitWords.ts +0 -76
  617. package/src/application/models/utilityTypes/trim.ts +0 -28
  618. package/src/application/models/utilityTypes/unknownArray.ts +0 -25
  619. package/src/application/models/variantInfo/index.ts +0 -1
  620. package/src/application/models/variantInfo/pageVisitInfo.ts +0 -6
  621. package/src/application/models/variantInfo/plpInfo.ts +0 -3
  622. package/src/application/models/variantInfo/productInfo.ts +0 -5
  623. package/src/application/models/variantInfo/variantInfo.ts +0 -29
  624. package/src/application/utils/__tests__/divideArrays.test.ts +0 -14
  625. package/src/application/utils/cdnUtils.ts +0 -11
  626. package/src/atoms/search/chatSearch.ts +0 -317
  627. package/src/atoms/search/types.ts +0 -55
  628. package/src/config/divIds.ts +0 -27
  629. package/src/config/socialProofClasses.ts +0 -17
  630. package/src/contexts/chatContext/chatContext.tsx +0 -509
  631. package/src/contexts/chatContext/index.ts +0 -1
  632. package/src/contexts/types.ts +0 -1066
  633. package/src/events/event-types.ts +0 -11
  634. package/src/interceptors/types.ts +0 -6
  635. package/src/merchants/domInsertion.ts +0 -30
  636. package/src/merchants/gridInsertion.ts +0 -19
  637. package/src/types/config-versions.ts +0 -6
  638. package/src/types/customerService.ts +0 -31
  639. package/src/types/custservice-types.ts +0 -28
  640. package/src/types/search-filter-types.ts +0 -111
  641. package/src/types/suggestionBarV2-types.ts +0 -4
  642. package/src/types/test-types.ts +0 -3
  643. package/src/types.ts +0 -11
  644. /package/dist/{AmplitudeOperations-CWI4yjZ4.js → featureFlagServiceContext-CbUOAw5l.js} +0 -0
  645. /package/dist/{AmplitudeOperations-BEGeYKG5.cjs → featureFlagServiceContext-DSo2brno.cjs} +0 -0
  646. /package/src/{types/exceptions → exceptions}/sessionExceptions.ts +0 -0
@@ -0,0 +1,34 @@
1
+ import { useAmplitude } from "./utils-IogJwDB9.js";
2
+ import { useCallback, useState } from "react";
3
+
4
+ //#region src/hooks/AmplitudeOperations/useAmplitudeOperations.ts
5
+ const useAmplitudeTracking = () => {
6
+ const { trackEvent, isReady } = useAmplitude();
7
+ const [loading, setLoading] = useState(false);
8
+ const [error, setError] = useState(null);
9
+ return {
10
+ track: useCallback(async (eventName, eventProps) => {
11
+ if (!isReady) return;
12
+ setLoading(true);
13
+ setError(null);
14
+ try {
15
+ await trackEvent({
16
+ eventName,
17
+ eventProps
18
+ });
19
+ } catch (err) {
20
+ setError(err instanceof Error ? err : /* @__PURE__ */ new Error("Tracking failed"));
21
+ throw err;
22
+ } finally {
23
+ setLoading(false);
24
+ }
25
+ }, [trackEvent, isReady]),
26
+ loading,
27
+ error,
28
+ isReady
29
+ };
30
+ };
31
+
32
+ //#endregion
33
+ export { useAmplitudeTracking };
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW1wbGl0dWRlT3BlcmF0aW9ucy1DM2kycTJCbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvaG9va3MvQW1wbGl0dWRlT3BlcmF0aW9ucy91c2VBbXBsaXR1ZGVPcGVyYXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUFtcGxpdHVkZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgdXNlQW1wbGl0dWRlVHJhY2tpbmcgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCwgaXNSZWFkeSB9ID0gdXNlQW1wbGl0dWRlKCk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxFcnJvciB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IHRyYWNrID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkpIHJldHVybjtcblxuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIHNldEVycm9yKG51bGwpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0cmFja0V2ZW50KHsgZXZlbnROYW1lLCBldmVudFByb3BzIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyIDogbmV3IEVycm9yKCdUcmFja2luZyBmYWlsZWQnKSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3RyYWNrRXZlbnQsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiB7IHRyYWNrLCBsb2FkaW5nLCBlcnJvciwgaXNSZWFkeSB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQWEsNkJBQTZCO0NBQ3hDLE1BQU0sRUFBRSxZQUFZLFlBQVksY0FBYztDQUM5QyxNQUFNLENBQUMsU0FBUyxjQUFjLFNBQVMsTUFBTTtDQUM3QyxNQUFNLENBQUMsT0FBTyxZQUFZLFNBQXVCLEtBQUs7QUFxQnRELFFBQU87RUFBRSxPQW5CSyxZQUNaLE9BQU8sV0FBbUMsZUFBeUM7QUFDakYsT0FBSSxDQUFDLFFBQVM7QUFFZCxjQUFXLEtBQUs7QUFDaEIsWUFBUyxLQUFLO0FBRWQsT0FBSTtBQUNGLFVBQU0sV0FBVztLQUFFO0tBQVc7S0FBWSxDQUFDO1lBQ3BDLEtBQUs7QUFDWixhQUFTLGVBQWUsUUFBUSxzQkFBTSxJQUFJLE1BQU0sa0JBQWtCLENBQUM7QUFDbkUsVUFBTTthQUNFO0FBQ1IsZUFBVyxNQUFNOztLQUdyQixDQUFDLFlBQVksUUFBUSxDQUN0QjtFQUVlO0VBQVM7RUFBTztFQUFTIn0=
@@ -0,0 +1,41 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_utils = require('./utils-DqNhRm2b.cjs');
3
+ let react = require("react");
4
+ react = require_chunk.__toESM(react);
5
+
6
+ //#region src/hooks/AmplitudeOperations/useAmplitudeOperations.ts
7
+ const useAmplitudeTracking = () => {
8
+ const { trackEvent, isReady } = require_utils.useAmplitude();
9
+ const [loading, setLoading] = (0, react.useState)(false);
10
+ const [error, setError] = (0, react.useState)(null);
11
+ return {
12
+ track: (0, react.useCallback)(async (eventName, eventProps) => {
13
+ if (!isReady) return;
14
+ setLoading(true);
15
+ setError(null);
16
+ try {
17
+ await trackEvent({
18
+ eventName,
19
+ eventProps
20
+ });
21
+ } catch (err) {
22
+ setError(err instanceof Error ? err : /* @__PURE__ */ new Error("Tracking failed"));
23
+ throw err;
24
+ } finally {
25
+ setLoading(false);
26
+ }
27
+ }, [trackEvent, isReady]),
28
+ loading,
29
+ error,
30
+ isReady
31
+ };
32
+ };
33
+
34
+ //#endregion
35
+ Object.defineProperty(exports, 'useAmplitudeTracking', {
36
+ enumerable: true,
37
+ get: function () {
38
+ return useAmplitudeTracking;
39
+ }
40
+ });
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW1wbGl0dWRlT3BlcmF0aW9ucy1EY3VMbjFaay5janMiLCJuYW1lcyI6WyJ1c2VBbXBsaXR1ZGUiXSwic291cmNlcyI6WyIuLi9zcmMvaG9va3MvQW1wbGl0dWRlT3BlcmF0aW9ucy91c2VBbXBsaXR1ZGVPcGVyYXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUFtcGxpdHVkZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQnO1xuXG5leHBvcnQgY29uc3QgdXNlQW1wbGl0dWRlVHJhY2tpbmcgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCwgaXNSZWFkeSB9ID0gdXNlQW1wbGl0dWRlKCk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxFcnJvciB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IHRyYWNrID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkpIHJldHVybjtcblxuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgIHNldEVycm9yKG51bGwpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0cmFja0V2ZW50KHsgZXZlbnROYW1lLCBldmVudFByb3BzIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyIDogbmV3IEVycm9yKCdUcmFja2luZyBmYWlsZWQnKSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3RyYWNrRXZlbnQsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiB7IHRyYWNrLCBsb2FkaW5nLCBlcnJvciwgaXNSZWFkeSB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsTUFBYSw2QkFBNkI7Q0FDeEMsTUFBTSxFQUFFLFlBQVksWUFBWUEsNEJBQWM7Q0FDOUMsTUFBTSxDQUFDLFNBQVMsa0NBQXVCLE1BQU07Q0FDN0MsTUFBTSxDQUFDLE9BQU8sZ0NBQW1DLEtBQUs7QUFxQnRELFFBQU87RUFBRSw4QkFsQlAsT0FBTyxXQUFtQyxlQUF5QztBQUNqRixPQUFJLENBQUMsUUFBUztBQUVkLGNBQVcsS0FBSztBQUNoQixZQUFTLEtBQUs7QUFFZCxPQUFJO0FBQ0YsVUFBTSxXQUFXO0tBQUU7S0FBVztLQUFZLENBQUM7WUFDcEMsS0FBSztBQUNaLGFBQVMsZUFBZSxRQUFRLHNCQUFNLElBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxVQUFNO2FBQ0U7QUFDUixlQUFXLE1BQU07O0tBR3JCLENBQUMsWUFBWSxRQUFRLENBQ3RCO0VBRWU7RUFBUztFQUFPO0VBQVMifQ==
@@ -1,4 +1,4 @@
1
- import { useNewOrgConfigContext } from "./newOrgConfigContext-aqN8Tu79.js";
1
+ import { useNewOrgConfigContext } from "./newOrgConfigContext-DPUxIF2G.js";
2
2
 
3
3
  //#region src/hooks/NewOrgConfig/useNewOrgConfig.ts
4
4
  const useNewOrgConfig = () => {
@@ -7,4 +7,4 @@ const useNewOrgConfig = () => {
7
7
 
8
8
  //#endregion
9
9
  export { useNewOrgConfig };
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3T3JnQ29uZmlnLUI5OFk5dE1iLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ob29rcy9OZXdPcmdDb25maWcvdXNlTmV3T3JnQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU5ld09yZ0NvbmZpZ0NvbnRleHQgfSBmcm9tIFwic3JjL2NvbnRleHRzL25ld09yZ0NvbmZpZ0NvbnRleHQvbmV3T3JnQ29uZmlnQ29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgdXNlTmV3T3JnQ29uZmlnID0gKCkgPT4ge1xuICBjb25zdCBjb25maWcgPSB1c2VOZXdPcmdDb25maWdDb250ZXh0KCk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsd0JBQXdCO0FBR25DLFFBRmUsd0JBQXdCIn0=
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3T3JnQ29uZmlnLUJ0dnVqRkM4LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9ob29rcy9OZXdPcmdDb25maWcvdXNlTmV3T3JnQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU5ld09yZ0NvbmZpZ0NvbnRleHQgfSBmcm9tIFwic3JjL2NvbnRleHRzL25ld09yZ0NvbmZpZ0NvbnRleHQvbmV3T3JnQ29uZmlnQ29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgdXNlTmV3T3JnQ29uZmlnID0gKCkgPT4ge1xuICBjb25zdCBjb25maWcgPSB1c2VOZXdPcmdDb25maWdDb250ZXh0KCk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsd0JBQXdCO0FBR25DLFFBRmUsd0JBQXdCIn0=
@@ -1,4 +1,4 @@
1
- const require_newOrgConfigContext = require('./newOrgConfigContext-DX9iqIIK.cjs');
1
+ const require_newOrgConfigContext = require('./newOrgConfigContext-lw85mMS-.cjs');
2
2
 
3
3
  //#region src/hooks/NewOrgConfig/useNewOrgConfig.ts
4
4
  const useNewOrgConfig = () => {
@@ -12,4 +12,4 @@ Object.defineProperty(exports, 'useNewOrgConfig', {
12
12
  return useNewOrgConfig;
13
13
  }
14
14
  });
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3T3JnQ29uZmlnLVpiQktpQnlRLmNqcyIsIm5hbWVzIjpbInVzZU5ld09yZ0NvbmZpZ0NvbnRleHQiXSwic291cmNlcyI6WyIuLi9zcmMvaG9va3MvTmV3T3JnQ29uZmlnL3VzZU5ld09yZ0NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VOZXdPcmdDb25maWdDb250ZXh0IH0gZnJvbSBcInNyYy9jb250ZXh0cy9uZXdPcmdDb25maWdDb250ZXh0L25ld09yZ0NvbmZpZ0NvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IHVzZU5ld09yZ0NvbmZpZyA9ICgpID0+IHtcbiAgY29uc3QgY29uZmlnID0gdXNlTmV3T3JnQ29uZmlnQ29udGV4dCgpO1xuXG4gIHJldHVybiBjb25maWc7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLHdCQUF3QjtBQUduQyxRQUZlQSxvREFBd0IifQ==
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3T3JnQ29uZmlnLUNIdDdYZzR0LmNqcyIsIm5hbWVzIjpbInVzZU5ld09yZ0NvbmZpZ0NvbnRleHQiXSwic291cmNlcyI6WyIuLi9zcmMvaG9va3MvTmV3T3JnQ29uZmlnL3VzZU5ld09yZ0NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VOZXdPcmdDb25maWdDb250ZXh0IH0gZnJvbSBcInNyYy9jb250ZXh0cy9uZXdPcmdDb25maWdDb250ZXh0L25ld09yZ0NvbmZpZ0NvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IHVzZU5ld09yZ0NvbmZpZyA9ICgpID0+IHtcbiAgY29uc3QgY29uZmlnID0gdXNlTmV3T3JnQ29uZmlnQ29udGV4dCgpO1xuXG4gIHJldHVybiBjb25maWc7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFhLHdCQUF3QjtBQUduQyxRQUZlQSxvREFBd0IifQ==
@@ -0,0 +1,53 @@
1
+ import { SpiffyMetricsEventName } from "./dist-CtkINi1R.js";
2
+ import { useAmplitude } from "./utils-IogJwDB9.js";
3
+ import { useIntersection } from "./useIntersection-BWiHkpKL.js";
4
+ import { useEffect, useRef } from "react";
5
+
6
+ //#region src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts
7
+ /**
8
+ * Tracks a component and logs an event to Amplitude when the component is visible.
9
+ *
10
+ * @param component - The component to track.
11
+ * @param element - The element to track visibility of.
12
+ * @param eventProps - Additional properties to include with the event.
13
+ * @param eventName - The Amplitude event name to track (defaults to ChatComponentVisible).
14
+ */
15
+ const useTrackComponentVisibleEvent = (component, element, eventProps, eventName = SpiffyMetricsEventName.ChatComponentVisible) => {
16
+ const isVisible = useIntersection(element, "0px");
17
+ const hasTrackedEvent = useRef(false);
18
+ const { trackEvent } = useAmplitude();
19
+ const componentProps = (() => {
20
+ if (eventName === SpiffyMetricsEventName.ChatComponentVisible) return {
21
+ chat_component: component,
22
+ ...eventProps
23
+ };
24
+ if (eventName === SpiffyMetricsEventName.SearchComponentVisible) return {
25
+ search_component: component,
26
+ ...eventProps
27
+ };
28
+ return {
29
+ component,
30
+ ...eventProps
31
+ };
32
+ })();
33
+ useEffect(() => {
34
+ if (isVisible && !hasTrackedEvent.current) {
35
+ trackEvent({
36
+ eventName,
37
+ eventProps: componentProps
38
+ });
39
+ hasTrackedEvent.current = true;
40
+ }
41
+ }, [
42
+ isVisible,
43
+ component,
44
+ eventProps,
45
+ eventName,
46
+ componentProps,
47
+ trackEvent
48
+ ]);
49
+ };
50
+
51
+ //#endregion
52
+ export { useTrackComponentVisibleEvent };
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQtQmU3d2ZYWFkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2hvb2tzL1RyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50L3VzZVRyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJbnRlcnNlY3Rpb24gfSBmcm9tICdzcmMvaG9va3MvSW50ZXJzZWN0aW9uL3VzZUludGVyc2VjdGlvbic7XG5pbXBvcnQgeyB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0JztcbmltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIFNwaWZmeVdpZGdldHMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuLyoqXG4gKiBUcmFja3MgYSBjb21wb25lbnQgYW5kIGxvZ3MgYW4gZXZlbnQgdG8gQW1wbGl0dWRlIHdoZW4gdGhlIGNvbXBvbmVudCBpcyB2aXNpYmxlLlxuICpcbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIHRyYWNrLlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byB0cmFjayB2aXNpYmlsaXR5IG9mLlxuICogQHBhcmFtIGV2ZW50UHJvcHMgLSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gaW5jbHVkZSB3aXRoIHRoZSBldmVudC5cbiAqIEBwYXJhbSBldmVudE5hbWUgLSBUaGUgQW1wbGl0dWRlIGV2ZW50IG5hbWUgdG8gdHJhY2sgKGRlZmF1bHRzIHRvIENoYXRDb21wb25lbnRWaXNpYmxlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRyYWNrQ29tcG9uZW50VmlzaWJsZUV2ZW50ID0gKFxuICBjb21wb25lbnQ6IFNwaWZmeVdpZGdldHMsXG4gIGVsZW1lbnQ6IFJlZk9iamVjdDxIVE1MRWxlbWVudD4sXG4gIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lID0gU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0Q29tcG9uZW50VmlzaWJsZSxcbikgPT4ge1xuICBjb25zdCBpc1Zpc2libGUgPSB1c2VJbnRlcnNlY3Rpb24oZWxlbWVudCwgJzBweCcpO1xuICBjb25zdCBoYXNUcmFja2VkRXZlbnQgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCB7IHRyYWNrRXZlbnQgfSA9IHVzZUFtcGxpdHVkZSgpO1xuXG4gIGNvbnN0IGNvbXBvbmVudFByb3BzID0gKCgpID0+IHtcbiAgICBpZiAoZXZlbnROYW1lID09PSBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRDb21wb25lbnRWaXNpYmxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGF0X2NvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgICAuLi5ldmVudFByb3BzLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5TZWFyY2hDb21wb25lbnRWaXNpYmxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWFyY2hfY29tcG9uZW50OiBjb21wb25lbnQsXG4gICAgICAgIC4uLmV2ZW50UHJvcHMsXG4gICAgICB9O1xuICAgIH1cbiAgICAvLyBEZWZhdWx0IGNhc2UgZm9yIG90aGVyIGV2ZW50IHR5cGVzXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIC4uLmV2ZW50UHJvcHMsXG4gICAgfTtcbiAgfSkoKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1Zpc2libGUgJiYgIWhhc1RyYWNrZWRFdmVudC5jdXJyZW50KSB7XG4gICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICBldmVudFByb3BzOiBjb21wb25lbnRQcm9wcyxcbiAgICAgIH0pO1xuICAgICAgaGFzVHJhY2tlZEV2ZW50LmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cbiAgfSwgW2lzVmlzaWJsZSwgY29tcG9uZW50LCBldmVudFByb3BzLCBldmVudE5hbWUsIGNvbXBvbmVudFByb3BzLCB0cmFja0V2ZW50XSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQWFBLE1BQWEsaUNBQ1gsV0FDQSxTQUNBLFlBQ0EsWUFBb0MsdUJBQXVCLHlCQUN4RDtDQUNILE1BQU0sWUFBWSxnQkFBZ0IsU0FBUyxNQUFNO0NBQ2pELE1BQU0sa0JBQWtCLE9BQU8sTUFBTTtDQUNyQyxNQUFNLEVBQUUsZUFBZSxjQUFjO0NBRXJDLE1BQU0sd0JBQXdCO0FBQzVCLE1BQUksY0FBYyx1QkFBdUIscUJBQ3ZDLFFBQU87R0FDTCxnQkFBZ0I7R0FDaEIsR0FBRztHQUNKO0FBRUgsTUFBSSxjQUFjLHVCQUF1Qix1QkFDdkMsUUFBTztHQUNMLGtCQUFrQjtHQUNsQixHQUFHO0dBQ0o7QUFHSCxTQUFPO0dBQ0w7R0FDQSxHQUFHO0dBQ0o7S0FDQztBQUVKLGlCQUFnQjtBQUNkLE1BQUksYUFBYSxDQUFDLGdCQUFnQixTQUFTO0FBQ3pDLGNBQVc7SUFDVDtJQUNBLFlBQVk7SUFDYixDQUFDO0FBQ0YsbUJBQWdCLFVBQVU7O0lBRTNCO0VBQUM7RUFBVztFQUFXO0VBQVk7RUFBVztFQUFnQjtFQUFXLENBQUMifQ==
@@ -0,0 +1,60 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_dist = require('./dist-B7BErEyV.cjs');
3
+ const require_utils = require('./utils-DqNhRm2b.cjs');
4
+ const require_useIntersection = require('./useIntersection-DZHz44BY.cjs');
5
+ let react = require("react");
6
+ react = require_chunk.__toESM(react);
7
+
8
+ //#region src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts
9
+ /**
10
+ * Tracks a component and logs an event to Amplitude when the component is visible.
11
+ *
12
+ * @param component - The component to track.
13
+ * @param element - The element to track visibility of.
14
+ * @param eventProps - Additional properties to include with the event.
15
+ * @param eventName - The Amplitude event name to track (defaults to ChatComponentVisible).
16
+ */
17
+ const useTrackComponentVisibleEvent = (component, element, eventProps, eventName = require_dist.SpiffyMetricsEventName.ChatComponentVisible) => {
18
+ const isVisible = require_useIntersection.useIntersection(element, "0px");
19
+ const hasTrackedEvent = (0, react.useRef)(false);
20
+ const { trackEvent } = require_utils.useAmplitude();
21
+ const componentProps = (() => {
22
+ if (eventName === require_dist.SpiffyMetricsEventName.ChatComponentVisible) return {
23
+ chat_component: component,
24
+ ...eventProps
25
+ };
26
+ if (eventName === require_dist.SpiffyMetricsEventName.SearchComponentVisible) return {
27
+ search_component: component,
28
+ ...eventProps
29
+ };
30
+ return {
31
+ component,
32
+ ...eventProps
33
+ };
34
+ })();
35
+ (0, react.useEffect)(() => {
36
+ if (isVisible && !hasTrackedEvent.current) {
37
+ trackEvent({
38
+ eventName,
39
+ eventProps: componentProps
40
+ });
41
+ hasTrackedEvent.current = true;
42
+ }
43
+ }, [
44
+ isVisible,
45
+ component,
46
+ eventProps,
47
+ eventName,
48
+ componentProps,
49
+ trackEvent
50
+ ]);
51
+ };
52
+
53
+ //#endregion
54
+ Object.defineProperty(exports, 'useTrackComponentVisibleEvent', {
55
+ enumerable: true,
56
+ get: function () {
57
+ return useTrackComponentVisibleEvent;
58
+ }
59
+ });
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2tDb21wb25lbnRWaXNpYmxlRXZlbnQtS1VpaHJfeTQuY2pzIiwibmFtZXMiOlsiU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSIsInVzZUludGVyc2VjdGlvbiIsInVzZUFtcGxpdHVkZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ob29rcy9UcmFja0NvbXBvbmVudFZpc2libGVFdmVudC91c2VUcmFja0NvbXBvbmVudFZpc2libGVFdmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSW50ZXJzZWN0aW9uIH0gZnJvbSAnc3JjL2hvb2tzL0ludGVyc2VjdGlvbi91c2VJbnRlcnNlY3Rpb24nO1xuaW1wb3J0IHsgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQvYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCBTcGlmZnlXaWRnZXRzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbi8qKlxuICogVHJhY2tzIGEgY29tcG9uZW50IGFuZCBsb2dzIGFuIGV2ZW50IHRvIEFtcGxpdHVkZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgdmlzaWJsZS5cbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byB0cmFjay5cbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gdHJhY2sgdmlzaWJpbGl0eSBvZi5cbiAqIEBwYXJhbSBldmVudFByb3BzIC0gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgd2l0aCB0aGUgZXZlbnQuXG4gKiBAcGFyYW0gZXZlbnROYW1lIC0gVGhlIEFtcGxpdHVkZSBldmVudCBuYW1lIHRvIHRyYWNrIChkZWZhdWx0cyB0byBDaGF0Q29tcG9uZW50VmlzaWJsZSkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUcmFja0NvbXBvbmVudFZpc2libGVFdmVudCA9IChcbiAgY29tcG9uZW50OiBTcGlmZnlXaWRnZXRzLFxuICBlbGVtZW50OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+LFxuICBldmVudFByb3BzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSA9IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdENvbXBvbmVudFZpc2libGUsXG4pID0+IHtcbiAgY29uc3QgaXNWaXNpYmxlID0gdXNlSW50ZXJzZWN0aW9uKGVsZW1lbnQsICcwcHgnKTtcbiAgY29uc3QgaGFzVHJhY2tlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCBjb21wb25lbnRQcm9wcyA9ICgoKSA9PiB7XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0Q29tcG9uZW50VmlzaWJsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hhdF9jb21wb25lbnQ6IGNvbXBvbmVudCxcbiAgICAgICAgLi4uZXZlbnRQcm9wcyxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChldmVudE5hbWUgPT09IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuU2VhcmNoQ29tcG9uZW50VmlzaWJsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VhcmNoX2NvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgICAuLi5ldmVudFByb3BzLFxuICAgICAgfTtcbiAgICB9XG4gICAgLy8gRGVmYXVsdCBjYXNlIGZvciBvdGhlciBldmVudCB0eXBlc1xuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnQsXG4gICAgICAuLi5ldmVudFByb3BzLFxuICAgIH07XG4gIH0pKCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNWaXNpYmxlICYmICFoYXNUcmFja2VkRXZlbnQuY3VycmVudCkge1xuICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgZXZlbnRQcm9wczogY29tcG9uZW50UHJvcHMsXG4gICAgICB9KTtcbiAgICAgIGhhc1RyYWNrZWRFdmVudC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH0sIFtpc1Zpc2libGUsIGNvbXBvbmVudCwgZXZlbnRQcm9wcywgZXZlbnROYW1lLCBjb21wb25lbnRQcm9wcywgdHJhY2tFdmVudF0pO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWFBLE1BQWEsaUNBQ1gsV0FDQSxTQUNBLFlBQ0EsWUFBb0NBLG9DQUF1Qix5QkFDeEQ7Q0FDSCxNQUFNLFlBQVlDLHdDQUFnQixTQUFTLE1BQU07Q0FDakQsTUFBTSxvQ0FBeUIsTUFBTTtDQUNyQyxNQUFNLEVBQUUsZUFBZUMsNEJBQWM7Q0FFckMsTUFBTSx3QkFBd0I7QUFDNUIsTUFBSSxjQUFjRixvQ0FBdUIscUJBQ3ZDLFFBQU87R0FDTCxnQkFBZ0I7R0FDaEIsR0FBRztHQUNKO0FBRUgsTUFBSSxjQUFjQSxvQ0FBdUIsdUJBQ3ZDLFFBQU87R0FDTCxrQkFBa0I7R0FDbEIsR0FBRztHQUNKO0FBR0gsU0FBTztHQUNMO0dBQ0EsR0FBRztHQUNKO0tBQ0M7QUFFSiw0QkFBZ0I7QUFDZCxNQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsU0FBUztBQUN6QyxjQUFXO0lBQ1Q7SUFDQSxZQUFZO0lBQ2IsQ0FBQztBQUNGLG1CQUFnQixVQUFVOztJQUUzQjtFQUFDO0VBQVc7RUFBVztFQUFZO0VBQVc7RUFBZ0I7RUFBVyxDQUFDIn0=
@@ -0,0 +1,52 @@
1
+ import React from "react";
2
+
3
+ //#region src/contexts/amplitudeContext/amplitudeContext.d.ts
4
+ declare enum SpiffyMetricsEventName {
5
+ BundleLoaded = "Bundle Loaded",
6
+ ChatLiveAgentBtnClick = "Chat Live Agent Btn Click",
7
+ ChatFloatingButtonVisible = "Chat Floating Button Visible",
8
+ ChatComponentVisible = "Chat Component Visible",
9
+ ChatComponentExpanded = "Chat Component Expanded",
10
+ ChatComponentCollapsed = "Chat Component Collapsed",
11
+ ChatUserMessageInput = "Chat User Message Input",
12
+ ChatSuggestionClicked = "Chat Suggestion Clicked",
13
+ ChatAssistantResponse = "Chat Assistant Response",
14
+ ProductCardClicked = "Product Card Clicked",
15
+ ProductReviewCardClicked = "Product Review Card Clicked",
16
+ AddToCartClicked = "Add to Cart Clicked",
17
+ PromptCardClicked = "Prompt Card Clicked",
18
+ SupportedEvent = "Supported Event",
19
+ SearchBackToResponseClicked = "Search Back to Response Clicked",
20
+ PerformanceMetrics = "Performance Metrics",
21
+ SearchBarClicked = "Search Bar Clicked",
22
+ OrderLookupStarted = "Order Lookup Started",
23
+ OrderLookupFormSubmitted = "Order Lookup Form Submitted",
24
+ SearchComponentVisible = "Search Component Visible",
25
+ SearchZeroStateSuggestionClicked = "Search Zero State Suggestion Clicked",
26
+ // This is the scrolling list of suggestion buttons in global search
27
+ SearchInputStarted = "Search Input Started",
28
+ SearchQuerySubmitted = "Search Query Submitted",
29
+ SearchResultsViewed = "Search Results Viewed",
30
+ SearchTimeToFirstClick = "Search Time to First Click",
31
+ SearchZeroResultsRate = "Search Zero Results Rate",
32
+ SearchFilterClicked = "Search Filter Clicked",
33
+ SearchSortClicked = "Search Sort Clicked",
34
+ }
35
+ interface TrackEventParams {
36
+ eventName: SpiffyMetricsEventName;
37
+ eventProps?: Record<string, unknown>;
38
+ eventGroups?: Record<string, unknown>;
39
+ alsoSendToGoogleAnalytics?: boolean;
40
+ }
41
+ interface AmplitudeContextType {
42
+ trackEvent: (params: TrackEventParams) => Promise<void>;
43
+ isReady: boolean;
44
+ setSupplementalDefaultProps: (props: Record<string, unknown>) => void;
45
+ }
46
+ declare const AmplitudeProvider: React.FC<{
47
+ children: React.ReactNode;
48
+ }>;
49
+ declare const useAmplitude: () => AmplitudeContextType;
50
+ //#endregion
51
+ export { AmplitudeProvider, SpiffyMetricsEventName, useAmplitude };
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGl0dWRlQ29udGV4dC1DUkZ4R2pfeC5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGRlY2xhcmUgZW51bSBTcGlmZnlNZXRyaWNzRXZlbnROYW1lIHtcbiAgICBCdW5kbGVMb2FkZWQgPSBcIkJ1bmRsZSBMb2FkZWRcIixcbiAgICBDaGF0TGl2ZUFnZW50QnRuQ2xpY2sgPSBcIkNoYXQgTGl2ZSBBZ2VudCBCdG4gQ2xpY2tcIixcbiAgICBDaGF0RmxvYXRpbmdCdXR0b25WaXNpYmxlID0gXCJDaGF0IEZsb2F0aW5nIEJ1dHRvbiBWaXNpYmxlXCIsXG4gICAgQ2hhdENvbXBvbmVudFZpc2libGUgPSBcIkNoYXQgQ29tcG9uZW50IFZpc2libGVcIixcbiAgICBDaGF0Q29tcG9uZW50RXhwYW5kZWQgPSBcIkNoYXQgQ29tcG9uZW50IEV4cGFuZGVkXCIsXG4gICAgQ2hhdENvbXBvbmVudENvbGxhcHNlZCA9IFwiQ2hhdCBDb21wb25lbnQgQ29sbGFwc2VkXCIsXG4gICAgQ2hhdFVzZXJNZXNzYWdlSW5wdXQgPSBcIkNoYXQgVXNlciBNZXNzYWdlIElucHV0XCIsXG4gICAgQ2hhdFN1Z2dlc3Rpb25DbGlja2VkID0gXCJDaGF0IFN1Z2dlc3Rpb24gQ2xpY2tlZFwiLFxuICAgIENoYXRBc3Npc3RhbnRSZXNwb25zZSA9IFwiQ2hhdCBBc3Npc3RhbnQgUmVzcG9uc2VcIixcbiAgICBQcm9kdWN0Q2FyZENsaWNrZWQgPSBcIlByb2R1Y3QgQ2FyZCBDbGlja2VkXCIsXG4gICAgUHJvZHVjdFJldmlld0NhcmRDbGlja2VkID0gXCJQcm9kdWN0IFJldmlldyBDYXJkIENsaWNrZWRcIixcbiAgICBBZGRUb0NhcnRDbGlja2VkID0gXCJBZGQgdG8gQ2FydCBDbGlja2VkXCIsXG4gICAgUHJvbXB0Q2FyZENsaWNrZWQgPSBcIlByb21wdCBDYXJkIENsaWNrZWRcIixcbiAgICBTdXBwb3J0ZWRFdmVudCA9IFwiU3VwcG9ydGVkIEV2ZW50XCIsXG4gICAgU2VhcmNoQmFja1RvUmVzcG9uc2VDbGlja2VkID0gXCJTZWFyY2ggQmFjayB0byBSZXNwb25zZSBDbGlja2VkXCIsXG4gICAgUGVyZm9ybWFuY2VNZXRyaWNzID0gXCJQZXJmb3JtYW5jZSBNZXRyaWNzXCIsXG4gICAgU2VhcmNoQmFyQ2xpY2tlZCA9IFwiU2VhcmNoIEJhciBDbGlja2VkXCIsXG4gICAgT3JkZXJMb29rdXBTdGFydGVkID0gXCJPcmRlciBMb29rdXAgU3RhcnRlZFwiLFxuICAgIE9yZGVyTG9va3VwRm9ybVN1Ym1pdHRlZCA9IFwiT3JkZXIgTG9va3VwIEZvcm0gU3VibWl0dGVkXCIsXG4gICAgU2VhcmNoQ29tcG9uZW50VmlzaWJsZSA9IFwiU2VhcmNoIENvbXBvbmVudCBWaXNpYmxlXCIsXG4gICAgU2VhcmNoWmVyb1N0YXRlU3VnZ2VzdGlvbkNsaWNrZWQgPSBcIlNlYXJjaCBaZXJvIFN0YXRlIFN1Z2dlc3Rpb24gQ2xpY2tlZFwiLC8vIFRoaXMgaXMgdGhlIHNjcm9sbGluZyBsaXN0IG9mIHN1Z2dlc3Rpb24gYnV0dG9ucyBpbiBnbG9iYWwgc2VhcmNoXG4gICAgU2VhcmNoSW5wdXRTdGFydGVkID0gXCJTZWFyY2ggSW5wdXQgU3RhcnRlZFwiLFxuICAgIFNlYXJjaFF1ZXJ5U3VibWl0dGVkID0gXCJTZWFyY2ggUXVlcnkgU3VibWl0dGVkXCIsXG4gICAgU2VhcmNoUmVzdWx0c1ZpZXdlZCA9IFwiU2VhcmNoIFJlc3VsdHMgVmlld2VkXCIsXG4gICAgU2VhcmNoVGltZVRvRmlyc3RDbGljayA9IFwiU2VhcmNoIFRpbWUgdG8gRmlyc3QgQ2xpY2tcIixcbiAgICBTZWFyY2haZXJvUmVzdWx0c1JhdGUgPSBcIlNlYXJjaCBaZXJvIFJlc3VsdHMgUmF0ZVwiLFxuICAgIFNlYXJjaEZpbHRlckNsaWNrZWQgPSBcIlNlYXJjaCBGaWx0ZXIgQ2xpY2tlZFwiLFxuICAgIFNlYXJjaFNvcnRDbGlja2VkID0gXCJTZWFyY2ggU29ydCBDbGlja2VkXCJcbn1cbmludGVyZmFjZSBUcmFja0V2ZW50UGFyYW1zIHtcbiAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWU7XG4gICAgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGV2ZW50R3JvdXBzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgYWxzb1NlbmRUb0dvb2dsZUFuYWx5dGljcz86IGJvb2xlYW47XG59XG5pbnRlcmZhY2UgQW1wbGl0dWRlQ29udGV4dFR5cGUge1xuICAgIHRyYWNrRXZlbnQ6IChwYXJhbXM6IFRyYWNrRXZlbnRQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG4gICAgaXNSZWFkeTogYm9vbGVhbjtcbiAgICBzZXRTdXBwbGVtZW50YWxEZWZhdWx0UHJvcHM6IChwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQ7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBBbXBsaXR1ZGVQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZUFtcGxpdHVkZTogKCkgPT4gQW1wbGl0dWRlQ29udGV4dFR5cGU7XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7OztBQUNBLElBQVcseUJBQXlCLENBQUMsSUFBSTtBQUN6QyxJQUFJLG1CQUFtQjtDQUFDO09BQVU7T0FBQTtPQUFBO0NBQUE7QUFDbEMsSUFBSSx1QkFBdUI7Q0FBQztPQUFXO09BQWdCO09BQUE7Q0FBQTtBQUN2RCxJQUFXLG9CQUFvQjtDQUFDO09BQVcsTUFBTTtPQUFhLE1BQUE7Q0FBQTtBQUM5RCxJQUFXLGVBQWUsQ0FBQyxXQUFXLHFCQUFhIn0=
@@ -0,0 +1,52 @@
1
+ import React from "react";
2
+
3
+ //#region src/contexts/amplitudeContext/amplitudeContext.d.ts
4
+ declare enum SpiffyMetricsEventName {
5
+ BundleLoaded = "Bundle Loaded",
6
+ ChatLiveAgentBtnClick = "Chat Live Agent Btn Click",
7
+ ChatFloatingButtonVisible = "Chat Floating Button Visible",
8
+ ChatComponentVisible = "Chat Component Visible",
9
+ ChatComponentExpanded = "Chat Component Expanded",
10
+ ChatComponentCollapsed = "Chat Component Collapsed",
11
+ ChatUserMessageInput = "Chat User Message Input",
12
+ ChatSuggestionClicked = "Chat Suggestion Clicked",
13
+ ChatAssistantResponse = "Chat Assistant Response",
14
+ ProductCardClicked = "Product Card Clicked",
15
+ ProductReviewCardClicked = "Product Review Card Clicked",
16
+ AddToCartClicked = "Add to Cart Clicked",
17
+ PromptCardClicked = "Prompt Card Clicked",
18
+ SupportedEvent = "Supported Event",
19
+ SearchBackToResponseClicked = "Search Back to Response Clicked",
20
+ PerformanceMetrics = "Performance Metrics",
21
+ SearchBarClicked = "Search Bar Clicked",
22
+ OrderLookupStarted = "Order Lookup Started",
23
+ OrderLookupFormSubmitted = "Order Lookup Form Submitted",
24
+ SearchComponentVisible = "Search Component Visible",
25
+ SearchZeroStateSuggestionClicked = "Search Zero State Suggestion Clicked",
26
+ // This is the scrolling list of suggestion buttons in global search
27
+ SearchInputStarted = "Search Input Started",
28
+ SearchQuerySubmitted = "Search Query Submitted",
29
+ SearchResultsViewed = "Search Results Viewed",
30
+ SearchTimeToFirstClick = "Search Time to First Click",
31
+ SearchZeroResultsRate = "Search Zero Results Rate",
32
+ SearchFilterClicked = "Search Filter Clicked",
33
+ SearchSortClicked = "Search Sort Clicked",
34
+ }
35
+ interface TrackEventParams {
36
+ eventName: SpiffyMetricsEventName;
37
+ eventProps?: Record<string, unknown>;
38
+ eventGroups?: Record<string, unknown>;
39
+ alsoSendToGoogleAnalytics?: boolean;
40
+ }
41
+ interface AmplitudeContextType {
42
+ trackEvent: (params: TrackEventParams) => Promise<void>;
43
+ isReady: boolean;
44
+ setSupplementalDefaultProps: (props: Record<string, unknown>) => void;
45
+ }
46
+ declare const AmplitudeProvider: React.FC<{
47
+ children: React.ReactNode;
48
+ }>;
49
+ declare const useAmplitude: () => AmplitudeContextType;
50
+ //#endregion
51
+ export { AmplitudeProvider, SpiffyMetricsEventName, useAmplitude };
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGl0dWRlQ29udGV4dC1aa2Vyck1VYS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBkZWNsYXJlIGVudW0gU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSB7XG4gICAgQnVuZGxlTG9hZGVkID0gXCJCdW5kbGUgTG9hZGVkXCIsXG4gICAgQ2hhdExpdmVBZ2VudEJ0bkNsaWNrID0gXCJDaGF0IExpdmUgQWdlbnQgQnRuIENsaWNrXCIsXG4gICAgQ2hhdEZsb2F0aW5nQnV0dG9uVmlzaWJsZSA9IFwiQ2hhdCBGbG9hdGluZyBCdXR0b24gVmlzaWJsZVwiLFxuICAgIENoYXRDb21wb25lbnRWaXNpYmxlID0gXCJDaGF0IENvbXBvbmVudCBWaXNpYmxlXCIsXG4gICAgQ2hhdENvbXBvbmVudEV4cGFuZGVkID0gXCJDaGF0IENvbXBvbmVudCBFeHBhbmRlZFwiLFxuICAgIENoYXRDb21wb25lbnRDb2xsYXBzZWQgPSBcIkNoYXQgQ29tcG9uZW50IENvbGxhcHNlZFwiLFxuICAgIENoYXRVc2VyTWVzc2FnZUlucHV0ID0gXCJDaGF0IFVzZXIgTWVzc2FnZSBJbnB1dFwiLFxuICAgIENoYXRTdWdnZXN0aW9uQ2xpY2tlZCA9IFwiQ2hhdCBTdWdnZXN0aW9uIENsaWNrZWRcIixcbiAgICBDaGF0QXNzaXN0YW50UmVzcG9uc2UgPSBcIkNoYXQgQXNzaXN0YW50IFJlc3BvbnNlXCIsXG4gICAgUHJvZHVjdENhcmRDbGlja2VkID0gXCJQcm9kdWN0IENhcmQgQ2xpY2tlZFwiLFxuICAgIFByb2R1Y3RSZXZpZXdDYXJkQ2xpY2tlZCA9IFwiUHJvZHVjdCBSZXZpZXcgQ2FyZCBDbGlja2VkXCIsXG4gICAgQWRkVG9DYXJ0Q2xpY2tlZCA9IFwiQWRkIHRvIENhcnQgQ2xpY2tlZFwiLFxuICAgIFByb21wdENhcmRDbGlja2VkID0gXCJQcm9tcHQgQ2FyZCBDbGlja2VkXCIsXG4gICAgU3VwcG9ydGVkRXZlbnQgPSBcIlN1cHBvcnRlZCBFdmVudFwiLFxuICAgIFNlYXJjaEJhY2tUb1Jlc3BvbnNlQ2xpY2tlZCA9IFwiU2VhcmNoIEJhY2sgdG8gUmVzcG9uc2UgQ2xpY2tlZFwiLFxuICAgIFBlcmZvcm1hbmNlTWV0cmljcyA9IFwiUGVyZm9ybWFuY2UgTWV0cmljc1wiLFxuICAgIFNlYXJjaEJhckNsaWNrZWQgPSBcIlNlYXJjaCBCYXIgQ2xpY2tlZFwiLFxuICAgIE9yZGVyTG9va3VwU3RhcnRlZCA9IFwiT3JkZXIgTG9va3VwIFN0YXJ0ZWRcIixcbiAgICBPcmRlckxvb2t1cEZvcm1TdWJtaXR0ZWQgPSBcIk9yZGVyIExvb2t1cCBGb3JtIFN1Ym1pdHRlZFwiLFxuICAgIFNlYXJjaENvbXBvbmVudFZpc2libGUgPSBcIlNlYXJjaCBDb21wb25lbnQgVmlzaWJsZVwiLFxuICAgIFNlYXJjaFplcm9TdGF0ZVN1Z2dlc3Rpb25DbGlja2VkID0gXCJTZWFyY2ggWmVybyBTdGF0ZSBTdWdnZXN0aW9uIENsaWNrZWRcIiwvLyBUaGlzIGlzIHRoZSBzY3JvbGxpbmcgbGlzdCBvZiBzdWdnZXN0aW9uIGJ1dHRvbnMgaW4gZ2xvYmFsIHNlYXJjaFxuICAgIFNlYXJjaElucHV0U3RhcnRlZCA9IFwiU2VhcmNoIElucHV0IFN0YXJ0ZWRcIixcbiAgICBTZWFyY2hRdWVyeVN1Ym1pdHRlZCA9IFwiU2VhcmNoIFF1ZXJ5IFN1Ym1pdHRlZFwiLFxuICAgIFNlYXJjaFJlc3VsdHNWaWV3ZWQgPSBcIlNlYXJjaCBSZXN1bHRzIFZpZXdlZFwiLFxuICAgIFNlYXJjaFRpbWVUb0ZpcnN0Q2xpY2sgPSBcIlNlYXJjaCBUaW1lIHRvIEZpcnN0IENsaWNrXCIsXG4gICAgU2VhcmNoWmVyb1Jlc3VsdHNSYXRlID0gXCJTZWFyY2ggWmVybyBSZXN1bHRzIFJhdGVcIixcbiAgICBTZWFyY2hGaWx0ZXJDbGlja2VkID0gXCJTZWFyY2ggRmlsdGVyIENsaWNrZWRcIixcbiAgICBTZWFyY2hTb3J0Q2xpY2tlZCA9IFwiU2VhcmNoIFNvcnQgQ2xpY2tlZFwiXG59XG5pbnRlcmZhY2UgVHJhY2tFdmVudFBhcmFtcyB7XG4gICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lO1xuICAgIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBldmVudEdyb3Vwcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGFsc29TZW5kVG9Hb29nbGVBbmFseXRpY3M/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEFtcGxpdHVkZUNvbnRleHRUeXBlIHtcbiAgICB0cmFja0V2ZW50OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIGlzUmVhZHk6IGJvb2xlYW47XG4gICAgc2V0U3VwcGxlbWVudGFsRGVmYXVsdFByb3BzOiAocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgQW1wbGl0dWRlUHJvdmlkZXI6IFJlYWN0LkZDPHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB1c2VBbXBsaXR1ZGU6ICgpID0+IEFtcGxpdHVkZUNvbnRleHRUeXBlO1xuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQSxJQUFXLHlCQUF5QixDQUFDLEdBQUc7QUFDeEMsSUFBSSxtQkFBbUI7Q0FBQztPQUFVO09BQUE7T0FBQTtDQUFBO0FBQ2xDLElBQUksdUJBQXVCO0NBQUM7T0FBVTtPQUFpQjtPQUFBO0NBQUE7QUFDdkQsSUFBVyxvQkFBb0I7Q0FBQztPQUFVLE1BQU07T0FBYyxNQUFBO0NBQUE7QUFDOUQsSUFBVyxlQUFlLENBQUMsVUFBVSxxQkFBYyJ9
@@ -0,0 +1,166 @@
1
+ import { hasPropertyOfType } from "./utils-B1LVzQYK.js";
2
+ import { logger_default } from "./logger-BMVdhQOV.js";
3
+ import { ResponseCategory, SuggestionCategory, UserEventCategory } from "@spiffy-ai/commerce-api-client";
4
+
5
+ //#region src/application/models/guards/api/isApiPDPEventAttributes.ts
6
+ const isApiPDPAttributes = (data) => {
7
+ if (data == null || typeof data !== "object") return false;
8
+ if (!("product_id" in data) || typeof data.product_id !== "string") return false;
9
+ if ("parent_product_id" in data && typeof data.parent_product_id !== "string") return false;
10
+ if ("url" in data && data.url != null && typeof data.url !== "string") return false;
11
+ return true;
12
+ };
13
+
14
+ //#endregion
15
+ //#region src/application/models/guards/api/isApiQueryTypedEventAttributes.ts
16
+ const isApiQueryTypedAttributes = (data) => data != null && typeof data === "object" && "query" in data && typeof data.query === "string";
17
+
18
+ //#endregion
19
+ //#region src/application/models/guards/api/isApiResponse.ts
20
+ const isApiResponse = (data) => {
21
+ if (data == null || typeof data !== "object") {
22
+ logger_default.logError("isApiResponse: data is null or not an object", void 0, { data });
23
+ return false;
24
+ }
25
+ if (!hasPropertyOfType(data, "id", "string")) {
26
+ logger_default.logError("isApiResponse: id is not a string", void 0, { data });
27
+ return false;
28
+ }
29
+ if (!hasPropertyOfType(data, "category", "string") || !Object.values(ResponseCategory).includes(data.category)) {
30
+ logger_default.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
31
+ return false;
32
+ }
33
+ if (!hasPropertyOfType(data, "created_at", "string")) {
34
+ logger_default.logError("isApiResponse: created_at is not a string", void 0, { data });
35
+ return false;
36
+ }
37
+ if (!hasPropertyOfType(data, "attributes", "object", true)) {
38
+ logger_default.logError("isApiResponse: attributes is not an object", void 0, { data });
39
+ return false;
40
+ }
41
+ return true;
42
+ };
43
+
44
+ //#endregion
45
+ //#region src/application/models/guards/api/isApiProductResponseAttributes.ts
46
+ const isApiProductResponseAttributes = (attributes) => {
47
+ if (attributes == null || typeof attributes !== "object") {
48
+ logger_default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
49
+ return false;
50
+ }
51
+ if (!hasPropertyOfType(attributes, "description", "string", true)) {
52
+ logger_default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
53
+ return false;
54
+ }
55
+ if (!hasPropertyOfType(attributes, "image_url", "string", true)) {
56
+ logger_default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
57
+ return false;
58
+ }
59
+ if (!hasPropertyOfType(attributes, "title", "string")) {
60
+ logger_default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
61
+ return false;
62
+ }
63
+ if (!hasPropertyOfType(attributes, "url", "string")) {
64
+ logger_default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
65
+ return false;
66
+ }
67
+ if (!hasPropertyOfType(attributes, "original_price", "number", true)) {
68
+ logger_default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
69
+ return false;
70
+ }
71
+ if (!hasPropertyOfType(attributes, "sale_price", "number", true)) {
72
+ logger_default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
73
+ return false;
74
+ }
75
+ if (!hasPropertyOfType(attributes, "average_rating", "number", true)) {
76
+ logger_default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
77
+ return false;
78
+ }
79
+ if (!hasPropertyOfType(attributes, "number_reviews", "number", true)) {
80
+ logger_default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
81
+ return false;
82
+ }
83
+ if (!hasPropertyOfType(attributes, "metadata", "array", true)) {
84
+ logger_default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
85
+ return false;
86
+ }
87
+ return true;
88
+ };
89
+
90
+ //#endregion
91
+ //#region src/application/models/guards/api/isApiReviewRichInformation.ts
92
+ const isApiReviewRichInformation = (richInfo) => {
93
+ if (richInfo == null || typeof richInfo !== "object") return false;
94
+ if ("cons" in richInfo && (!Array.isArray(richInfo.cons) || richInfo.cons.some((con) => typeof con !== "string"))) return false;
95
+ if ("pros" in richInfo && (!Array.isArray(richInfo.pros) || richInfo.pros.some((pro) => typeof pro !== "string"))) return false;
96
+ if ("review_date" in richInfo && typeof richInfo.review_date !== "string") return false;
97
+ if ("reviewer_title" in richInfo && typeof richInfo.reviewer_title !== "string") return false;
98
+ if ("product_familiarity" in richInfo && typeof richInfo.product_familiarity !== "string") return false;
99
+ return true;
100
+ };
101
+
102
+ //#endregion
103
+ //#region src/application/models/guards/api/isApiReviewResponseAttributes.ts
104
+ const isApiReviewResponseAttributes = (obj) => {
105
+ if (obj == null || typeof obj !== "object") return false;
106
+ if ("title" in obj && obj.title != null && typeof obj.title !== "string") return false;
107
+ if ("review" in obj && typeof obj.review !== "string") return false;
108
+ if ("reviewer" in obj && typeof obj.reviewer !== "string") return false;
109
+ if ("stars" in obj && typeof obj.stars !== "number") return false;
110
+ if ("rich_information" in obj && !isApiReviewRichInformation(obj.rich_information)) return false;
111
+ return true;
112
+ };
113
+
114
+ //#endregion
115
+ //#region src/application/models/guards/api/isApiSearchEventAttributes.ts
116
+ const isApiSearchAttributes = (data) => {
117
+ if (data == null || typeof data !== "object") return false;
118
+ if (!("search_term" in data) || typeof data.search_term !== "string") return false;
119
+ if ("selected_filters" in data && !Array.isArray(data.selected_filters)) return false;
120
+ if (!!data.search_term) return true;
121
+ if (!("search_results" in data) || !Array.isArray(data.search_results) || !data.search_results.every((v) => typeof v === "string")) return false;
122
+ return true;
123
+ };
124
+
125
+ //#endregion
126
+ //#region src/application/models/guards/api/isApiSuggestion.ts
127
+ const isSuggestion = (data) => {
128
+ if (data == null || typeof data !== "object") return false;
129
+ if (!("id" in data) || typeof data.id !== "string") return false;
130
+ if (!("category" in data) || typeof data.category !== "string" || !Object.values(SuggestionCategory).includes(data.category)) return false;
131
+ if (!("created_at" in data) || typeof data.created_at !== "string") return false;
132
+ if (!("content" in data) || typeof data.content !== "string") return false;
133
+ if ("is_answer" in data && data.is_answer != null && typeof data.is_answer !== "boolean") return false;
134
+ return true;
135
+ };
136
+
137
+ //#endregion
138
+ //#region src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts
139
+ const isApiSuggestionClickedAttributes = (data) => data != null && typeof data === "object" && "suggestion_id" in data && typeof data.suggestion_id === "string";
140
+
141
+ //#endregion
142
+ //#region src/application/models/guards/api/isApiTextResponseAttributes.ts
143
+ const isApiTextResponseAttributes = (attributes) => typeof attributes === "object" && attributes != null && "content" in attributes && typeof attributes.content === "string";
144
+
145
+ //#endregion
146
+ //#region src/application/models/guards/api/isApiUserEvent.ts
147
+ const isApiUserEvent = (data) => {
148
+ if (data == null || typeof data !== "object") return false;
149
+ if (!("event_id" in data) || typeof data.event_id !== "string") return false;
150
+ if (!("created_at" in data) || typeof data.created_at !== "string") return false;
151
+ if (!("category" in data) || typeof data.category !== "string" || !Object.values(UserEventCategory).includes(data.category)) return false;
152
+ return true;
153
+ };
154
+
155
+ //#endregion
156
+ //#region src/application/models/guards/api/isApiProductSearchAttributes.ts
157
+ const isApiProductSearchResponseAttributes = (attributes) => {
158
+ if (attributes == null || typeof attributes !== "object") return false;
159
+ if ("generated_query" in attributes && typeof attributes.generated_query !== "string") return false;
160
+ if ("product_count" in attributes && attributes.product_count != null && typeof attributes.product_count !== "number") return false;
161
+ return true;
162
+ };
163
+
164
+ //#endregion
165
+ export { isApiPDPAttributes, isApiProductResponseAttributes, isApiProductSearchResponseAttributes, isApiQueryTypedAttributes, isApiResponse, isApiReviewResponseAttributes, isApiReviewRichInformation, isApiSearchAttributes, isApiSuggestionClickedAttributes, isApiTextResponseAttributes, isApiUserEvent, isSuggestion };
166
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLUQ0SGFVMkdmLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVBEUEV2ZW50QXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVF1ZXJ5VHlwZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXNwb25zZS50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24udHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTZWFyY2hFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTdWdnZXN0aW9uLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbkNsaWNrZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpVXNlckV2ZW50LnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFNlYXJjaEF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUERQQXR0cmlidXRlcyB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcblxuZXhwb3J0IGNvbnN0IGlzQXBpUERQQXR0cmlidXRlcyA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBQRFBBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKFwicHJvZHVjdF9pZFwiIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnByb2R1Y3RfaWQgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgXCJwYXJlbnRfcHJvZHVjdF9pZFwiIGluIGRhdGEgJiZcbiAgICB0eXBlb2YgZGF0YS5wYXJlbnRfcHJvZHVjdF9pZCAhPT0gXCJzdHJpbmdcIlxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXCJ1cmxcIiBpbiBkYXRhICYmIGRhdGEudXJsICE9IG51bGwgJiYgdHlwZW9mIGRhdGEudXJsICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUXVlcnlUeXBlZEF0dHJpYnV0ZXMgfSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0gKFxuICBkYXRhOiB1bmtub3duXG4pOiBkYXRhIGlzIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJlxuICB0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIiAmJlxuICBcInF1ZXJ5XCIgaW4gZGF0YSAmJlxuICB0eXBlb2YgZGF0YS5xdWVyeSA9PT0gXCJzdHJpbmdcIjtcbiIsImltcG9ydCB7IFJlc3BvbnNlQ2F0ZWdvcnkgfSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgTG9nZ2VyIGZyb20gXCJzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXJcIjtcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gXCJzcmMvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IGlzQXBpUmVzcG9uc2UgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXBpUmVzcG9uc2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSBcIm9iamVjdFwiKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFwiaXNBcGlSZXNwb25zZTogZGF0YSBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3RcIiwgdW5kZWZpbmVkLCB7XG4gICAgICBkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgXCJpZFwiLCBcInN0cmluZ1wiKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcImlzQXBpUmVzcG9uc2U6IGlkIGlzIG5vdCBhIHN0cmluZ1wiLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsIFwiY2F0ZWdvcnlcIiwgXCJzdHJpbmdcIikgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhSZXNwb25zZUNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFJlc3BvbnNlQ2F0ZWdvcnkpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgIFwiaXNBcGlSZXNwb25zZTogY2F0ZWdvcnkgaXMgbm90IGEgc3RyaW5nIG9yIG5vdCBhIHZhbGlkIHJlc3BvbnNlIGNhdGVnb3J5XCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7IGRhdGEgfVxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCBcImNyZWF0ZWRfYXRcIiwgXCJzdHJpbmdcIikpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoXCJpc0FwaVJlc3BvbnNlOiBjcmVhdGVkX2F0IGlzIG5vdCBhIHN0cmluZ1wiLCB1bmRlZmluZWQsIHtcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCBcImF0dHJpYnV0ZXNcIiwgXCJvYmplY3RcIiwgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoXCJpc0FwaVJlc3BvbnNlOiBhdHRyaWJ1dGVzIGlzIG5vdCBhbiBvYmplY3RcIiwgdW5kZWZpbmVkLCB7XG4gICAgICBkYXRhLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgaGFzUHJvcGVydHlPZlR5cGUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0JyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdkZXNjcmlwdGlvbicsICdzdHJpbmcnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBkZXNjcmlwdGlvbiBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnaW1hZ2VfdXJsJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGltYWdlX3VybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndGl0bGUnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdGl0bGUgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3VybCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB1cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ29yaWdpbmFsX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG9yaWdpbmFsX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdzYWxlX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHNhbGVfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2F2ZXJhZ2VfcmF0aW5nJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF2ZXJhZ2VfcmF0aW5nIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdudW1iZXJfcmV2aWV3cycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBudW1iZXJfcmV2aWV3cyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbWV0YWRhdGEnLCAnYXJyYXknLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBtZXRhZGF0YSBpcyBub3QgYW4gYXJyYXknLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiA9IChcbiAgcmljaEluZm86IHVua25vd24sXG4pOiByaWNoSW5mbyBpcyBBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPT4ge1xuICBpZiAocmljaEluZm8gPT0gbnVsbCB8fCB0eXBlb2YgcmljaEluZm8gIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdjb25zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5jb25zKSB8fCByaWNoSW5mby5jb25zLnNvbWUoKGNvbikgPT4gdHlwZW9mIGNvbiAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb3MnIGluIHJpY2hJbmZvICYmXG4gICAgKCFBcnJheS5pc0FycmF5KHJpY2hJbmZvLnByb3MpIHx8IHJpY2hJbmZvLnByb3Muc29tZSgocHJvKSA9PiB0eXBlb2YgcHJvICE9PSAnc3RyaW5nJykpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3X2RhdGUnIGluIHJpY2hJbmZvICYmIHR5cGVvZiByaWNoSW5mby5yZXZpZXdfZGF0ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyX3RpdGxlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3ZXJfdGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwcm9kdWN0X2ZhbWlsaWFyaXR5JyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucHJvZHVjdF9mYW1pbGlhcml0eSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IGlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnLi9pc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbic7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9IChvYmo6IHVua25vd24pOiBvYmogaXMgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCd0aXRsZScgaW4gb2JqICYmIG9iai50aXRsZSAhPSBudWxsICYmIHR5cGVvZiBvYmoudGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXcnIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnJldmlldyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyJyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXdlciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3N0YXJzJyBpbiBvYmogJiYgdHlwZW9mIG9iai5zdGFycyAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3JpY2hfaW5mb3JtYXRpb24nIGluIG9iaiAmJiAhaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24ob2JqLnJpY2hfaW5mb3JtYXRpb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgU2VhcmNoQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVNlYXJjaEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgU2VhcmNoQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3NlYXJjaF90ZXJtJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5zZWFyY2hfdGVybSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCdzZWxlY3RlZF9maWx0ZXJzJyBpbiBkYXRhICYmICFBcnJheS5pc0FycmF5KGRhdGEuc2VsZWN0ZWRfZmlsdGVycykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISFkYXRhLnNlYXJjaF90ZXJtKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoXG4gICAgISgnc2VhcmNoX3Jlc3VsdHMnIGluIGRhdGEpIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoZGF0YS5zZWFyY2hfcmVzdWx0cykgfHxcbiAgICAhZGF0YS5zZWFyY2hfcmVzdWx0cy5ldmVyeSgodikgPT4gdHlwZW9mIHYgPT09ICdzdHJpbmcnKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQge1xuICBTdWdnZXN0aW9uIGFzIENvbW1lcmNlU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbkNhdGVnb3J5LFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNTdWdnZXN0aW9uID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIENvbW1lcmNlU3VnZ2VzdGlvbiA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoU3VnZ2VzdGlvbkNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFN1Z2dlc3Rpb25DYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNyZWF0ZWRfYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NvbnRlbnQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpc19hbnN3ZXInIGluIGRhdGEgJiYgZGF0YS5pc19hbnN3ZXIgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS5pc19hbnN3ZXIgIT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJlxuICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgJ3N1Z2dlc3Rpb25faWQnIGluIGRhdGEgJiZcbiAgdHlwZW9mIGRhdGEuc3VnZ2VzdGlvbl9pZCA9PT0gJ3N0cmluZyc7XG4iLCJpbXBvcnQgeyBBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIEFwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPT5cbiAgdHlwZW9mIGF0dHJpYnV0ZXMgPT09ICdvYmplY3QnICYmXG4gIGF0dHJpYnV0ZXMgIT0gbnVsbCAmJlxuICAnY29udGVudCcgaW4gYXR0cmlidXRlcyAmJlxuICB0eXBlb2YgYXR0cmlidXRlcy5jb250ZW50ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlVc2VyRXZlbnQgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgVXNlckV2ZW50ID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnZXZlbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmV2ZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjYXRlZ29yeScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jYXRlZ29yeSAhPT0gJ3N0cmluZycgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhVc2VyRXZlbnRDYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBVc2VyRXZlbnRDYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93blxuKTogYXR0cmlidXRlcyBpcyBQcm9kdWN0U2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCB8fCB0eXBlb2YgYXR0cmlidXRlcyAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICBcImdlbmVyYXRlZF9xdWVyeVwiIGluIGF0dHJpYnV0ZXMgJiZcbiAgICB0eXBlb2YgYXR0cmlidXRlcy5nZW5lcmF0ZWRfcXVlcnkgIT09IFwic3RyaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgIFwicHJvZHVjdF9jb3VudFwiIGluIGF0dHJpYnV0ZXMgJiZcbiAgICBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT09IFwibnVtYmVyXCJcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQWEsc0JBQXNCLFNBQXlDO0FBQzFFLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxTQUNsQyxRQUFPO0FBR1QsS0FBSSxFQUFFLGdCQUFnQixTQUFTLE9BQU8sS0FBSyxlQUFlLFNBQ3hELFFBQU87QUFHVCxLQUNFLHVCQUF1QixRQUN2QixPQUFPLEtBQUssc0JBQXNCLFNBRWxDLFFBQU87QUFHVCxLQUFJLFNBQVMsUUFBUSxLQUFLLE9BQU8sUUFBUSxPQUFPLEtBQUssUUFBUSxTQUMzRCxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNwQlQsTUFBYSw2QkFDWCxTQUVBLFFBQVEsUUFDUixPQUFPLFNBQVMsWUFDaEIsV0FBVyxRQUNYLE9BQU8sS0FBSyxVQUFVOzs7O0FDSHhCLE1BQWEsaUJBQWlCLFNBQXVDO0FBQ25FLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQzVDLGlCQUFPLFNBQVMsZ0RBQWdELFFBQVcsRUFDekUsTUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUMsa0JBQWtCLE1BQU0sTUFBTSxTQUFTLEVBQUU7QUFDNUMsaUJBQU8sU0FBUyxxQ0FBcUMsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUN6RSxTQUFPOztBQUdULEtBQ0UsQ0FBQyxrQkFBa0IsTUFBTSxZQUFZLFNBQVMsSUFDOUMsQ0FBQyxPQUFPLE9BQU8saUJBQWlCLENBQUMsU0FBUyxLQUFLLFNBQTZCLEVBQzVFO0FBQ0EsaUJBQU8sU0FDTCw0RUFDQSxRQUNBLEVBQUUsTUFBTSxDQUNUO0FBQ0QsU0FBTzs7QUFHVCxLQUFJLENBQUMs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