@envive-ai/react-hooks 0.2.6-alpha-marlo.0 → 0.2.6-alpha-arthur-3

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 (683) hide show
  1. package/dist/AmplitudeOperations-BjC8DOqm.js +34 -0
  2. package/dist/AmplitudeOperations-CQs4sVHN.cjs +41 -0
  3. package/dist/{NewOrgConfig-BfbTlFg1.js → NewOrgConfig-CRakarmw.js} +2 -2
  4. package/dist/{NewOrgConfig-DJm6_abA.cjs → NewOrgConfig-D48KabOj.cjs} +2 -2
  5. package/dist/TrackComponentVisibleEvent-C9RvfdS9.js +53 -0
  6. package/dist/TrackComponentVisibleEvent-_Fb-JXkV.cjs +60 -0
  7. package/dist/amplitudeContext-D5HSmIWg.cjs +253 -0
  8. package/dist/amplitudeContext-wW37Ziq-.js +237 -0
  9. package/dist/amplitudeTrackEventAtom-D66l5oFp.js +8 -0
  10. package/dist/amplitudeTrackEventAtom-f22P2U0u.cjs +15 -0
  11. package/dist/api-D4HaU2Gf.js +166 -0
  12. package/dist/api-D4Xoibs9.cjs +239 -0
  13. package/dist/app-CGw4C9Bn.js +515 -0
  14. package/dist/app-Di_sBmzj.cjs +570 -0
  15. package/dist/application/models/graphql/index.cjs +3 -3
  16. package/dist/application/models/graphql/index.d.cts +2 -2
  17. package/dist/application/models/graphql/index.d.ts +2 -2
  18. package/dist/application/models/graphql/index.js +2 -3
  19. package/dist/application/models/guards/api/index.cjs +3 -3
  20. package/dist/application/models/guards/api/index.d.cts +2 -2
  21. package/dist/application/models/guards/api/index.d.ts +2 -2
  22. package/dist/application/models/guards/api/index.js +3 -3
  23. package/dist/application/models/guards/utils.cjs +1 -1
  24. package/dist/application/models/guards/utils.d.ts +1 -1
  25. package/dist/application/models/guards/utils.js +1 -1
  26. package/dist/application/models/index.cjs +7 -23
  27. package/dist/application/models/index.d.cts +167 -11
  28. package/dist/application/models/index.d.ts +168 -12
  29. package/dist/application/models/index.js +7 -11
  30. package/dist/application/utils/index.cjs +10 -19
  31. package/dist/application/utils/index.d.cts +13 -63
  32. package/dist/application/utils/index.d.ts +13 -63
  33. package/dist/application/utils/index.js +10 -19
  34. package/dist/{atomStore-DXTVqiKc.js → atomStore-BuopbV9k.js} +1 -1
  35. package/dist/{atomStore-DNji91Im.cjs → atomStore-CZKe3itM.cjs} +1 -1
  36. package/dist/atoms/app/index.cjs +22 -24
  37. package/dist/atoms/app/index.d.cts +9 -20
  38. package/dist/atoms/app/index.d.ts +8 -19
  39. package/dist/atoms/app/index.js +17 -19
  40. package/dist/atoms/atomStore/index.cjs +1 -1
  41. package/dist/atoms/atomStore/index.d.cts +1 -1
  42. package/dist/atoms/atomStore/index.js +1 -1
  43. package/dist/atoms/chat/index.cjs +20 -21
  44. package/dist/atoms/chat/index.d.cts +36 -45
  45. package/dist/atoms/chat/index.d.ts +34 -43
  46. package/dist/atoms/chat/index.js +20 -21
  47. package/dist/atoms/globalSearch/index.cjs +1 -2
  48. package/dist/atoms/globalSearch/index.d.cts +5 -5
  49. package/dist/atoms/globalSearch/index.d.ts +6 -6
  50. package/dist/atoms/globalSearch/index.js +1 -2
  51. package/dist/atoms/org/index.cjs +10 -11
  52. package/dist/atoms/org/index.d.cts +19 -31
  53. package/dist/atoms/org/index.d.ts +19 -31
  54. package/dist/atoms/org/index.js +2 -3
  55. package/dist/atoms/search/index.cjs +7 -47
  56. package/dist/atoms/search/index.d.cts +76 -14
  57. package/dist/atoms/search/index.d.ts +76 -14
  58. package/dist/atoms/search/index.js +7 -29
  59. package/dist/atoms/search/utils.cjs +1 -1
  60. package/dist/atoms/search/utils.d.cts +1 -1
  61. package/dist/atoms/search/utils.js +1 -1
  62. package/dist/cdnContext-BJT_Wn9Z.js +38 -0
  63. package/dist/cdnContext-BoPraJxf.cjs +53 -0
  64. package/dist/chat-ZaY3KY-R.js +226 -0
  65. package/dist/chat-rhEjVfrd.cjs +326 -0
  66. package/dist/chatState-BbI93m6r.js +33 -0
  67. package/dist/chatState-DlJpHAsW.cjs +119 -0
  68. package/dist/config/index.d.cts +4 -4
  69. package/dist/config/index.d.ts +4 -4
  70. package/dist/config/locators/components/chat/index.d.cts +1 -1
  71. package/dist/config/locators/components/chat/index.d.ts +1 -1
  72. package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
  73. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  74. package/dist/config/locators/components/common/index.d.cts +1 -1
  75. package/dist/config/locators/components/common/index.d.ts +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/search/index.d.cts +1 -1
  79. package/dist/config/locators/components/search/index.d.ts +1 -1
  80. package/dist/config/locators/index.d.cts +4 -4
  81. package/dist/config/locators/index.d.ts +4 -4
  82. package/dist/contexts/amplitudeContext/index.cjs +23 -22
  83. package/dist/contexts/amplitudeContext/index.d.cts +11 -2
  84. package/dist/contexts/amplitudeContext/index.d.ts +11 -2
  85. package/dist/contexts/amplitudeContext/index.js +22 -20
  86. package/dist/contexts/atomProvider/index.cjs +18 -0
  87. package/dist/contexts/atomProvider/index.d.cts +11 -0
  88. package/dist/contexts/atomProvider/index.d.ts +11 -0
  89. package/dist/contexts/atomProvider/index.js +15 -0
  90. package/dist/contexts/cdnContext/index.cjs +4 -4
  91. package/dist/contexts/cdnContext/index.d.cts +2 -6
  92. package/dist/contexts/cdnContext/index.d.ts +2 -6
  93. package/dist/contexts/cdnContext/index.js +4 -4
  94. package/dist/contexts/enviveConfigContext/index.cjs +6 -4
  95. package/dist/contexts/enviveConfigContext/index.d.cts +5 -25
  96. package/dist/contexts/enviveConfigContext/index.d.ts +5 -25
  97. package/dist/contexts/enviveConfigContext/index.js +6 -5
  98. package/dist/contexts/enviveCssContext/index.cjs +17 -19
  99. package/dist/contexts/enviveCssContext/index.d.cts +3 -5
  100. package/dist/contexts/enviveCssContext/index.d.ts +3 -5
  101. package/dist/contexts/enviveCssContext/index.js +17 -19
  102. package/dist/contexts/featureFlagContext/index.cjs +9 -10
  103. package/dist/contexts/featureFlagContext/index.d.cts +3 -11
  104. package/dist/contexts/featureFlagContext/index.d.ts +3 -11
  105. package/dist/contexts/featureFlagContext/index.js +6 -7
  106. package/dist/contexts/featureFlagServiceContext/index.cjs +4 -3
  107. package/dist/contexts/featureFlagServiceContext/index.d.cts +1 -4
  108. package/dist/contexts/featureFlagServiceContext/index.d.ts +1 -4
  109. package/dist/contexts/featureFlagServiceContext/index.js +4 -3
  110. package/dist/contexts/graphqlContext/index.cjs +10 -13
  111. package/dist/contexts/graphqlContext/index.d.cts +11 -14
  112. package/dist/contexts/graphqlContext/index.d.ts +11 -14
  113. package/dist/contexts/graphqlContext/index.js +10 -13
  114. package/dist/contexts/localStorageContext/index.cjs +3 -3
  115. package/dist/contexts/localStorageContext/index.d.cts +3 -22
  116. package/dist/contexts/localStorageContext/index.d.ts +3 -22
  117. package/dist/contexts/localStorageContext/index.js +4 -3
  118. package/dist/contexts/newOrgConfigContext/index.cjs +15 -17
  119. package/dist/contexts/newOrgConfigContext/index.d.cts +12 -15
  120. package/dist/contexts/newOrgConfigContext/index.d.ts +12 -15
  121. package/dist/contexts/newOrgConfigContext/index.js +15 -17
  122. package/dist/contexts/searchContext/index.cjs +24 -24
  123. package/dist/contexts/searchContext/index.d.cts +2 -7
  124. package/dist/contexts/searchContext/index.d.ts +2 -7
  125. package/dist/contexts/searchContext/index.js +24 -24
  126. package/dist/contexts/sessionStorageContext/index.cjs +2 -2
  127. package/dist/contexts/sessionStorageContext/index.d.cts +2 -6
  128. package/dist/contexts/sessionStorageContext/index.d.ts +2 -6
  129. package/dist/contexts/sessionStorageContext/index.js +2 -2
  130. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  131. package/dist/contexts/shopifyUrlContext/index.d.cts +2 -11
  132. package/dist/contexts/shopifyUrlContext/index.d.ts +2 -11
  133. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  134. package/dist/contexts/systemSettingsContext/index.cjs +4 -4
  135. package/dist/contexts/systemSettingsContext/index.d.cts +2 -12
  136. package/dist/contexts/systemSettingsContext/index.d.ts +4 -14
  137. package/dist/contexts/systemSettingsContext/index.js +4 -4
  138. package/dist/contexts/userIdentityContext/index.cjs +19 -21
  139. package/dist/contexts/userIdentityContext/index.d.cts +11 -2
  140. package/dist/contexts/userIdentityContext/index.d.ts +11 -2
  141. package/dist/contexts/userIdentityContext/index.js +17 -19
  142. package/dist/dist-C38adNK1.js +5923 -0
  143. package/dist/dist-VxRI6eQv.cjs +6019 -0
  144. package/dist/domObserver-CVhsCSkS.js +285 -0
  145. package/dist/{domObserver-v9ODTyfT.js → domObserver-LCBj1xw4.cjs} +23 -4
  146. package/dist/enviveConfig-CHXb9xwk.cjs +125 -0
  147. package/dist/enviveConfig-CUJgI97-.js +63 -0
  148. package/dist/enviveConfigContext-C91Air9z.js +48 -0
  149. package/dist/enviveConfigContext-zZAJwv87.cjs +69 -0
  150. package/dist/events/index.cjs +2 -3
  151. package/dist/events/index.d.cts +2 -15
  152. package/dist/events/index.d.ts +2 -15
  153. package/dist/events/index.js +2 -2
  154. package/dist/events-CgFGtanE.cjs +69 -0
  155. package/dist/events-WOOrnUAx.js +63 -0
  156. package/dist/exceptions/index.cjs +4 -0
  157. package/dist/exceptions/index.d.cts +12 -0
  158. package/dist/exceptions/index.d.ts +12 -0
  159. package/dist/exceptions/index.js +3 -0
  160. package/dist/exceptions-BjDgLzGi.cjs +32 -0
  161. package/dist/exceptions-CUGY31Ua.js +20 -0
  162. package/dist/featureFlagServiceContext-ClnlCJV5.d.cts +24 -0
  163. package/dist/featureFlagServiceContext-Cvp7NlpC.js +46 -0
  164. package/dist/featureFlagServiceContext-DHtkQAtq.cjs +66 -0
  165. package/dist/featureFlagServiceContext-x-hAAKdL.d.ts +24 -0
  166. package/dist/{globalSearch-FBk2epe8.cjs → globalSearch-Cpc8egsM.cjs} +1 -1
  167. package/dist/{globalSearch-Ccxq8hNF.js → globalSearch-nmrfGLOn.js} +1 -1
  168. package/dist/graphql-CvAHWmel.js +46 -0
  169. package/dist/graphql-JaGqsToc.cjs +70 -0
  170. package/dist/graphqlContext-C3T_K97L.js +94 -0
  171. package/dist/graphqlContext-DqWvz7Op.cjs +108 -0
  172. package/dist/hooks/AmplitudeOperations/index.cjs +23 -22
  173. package/dist/hooks/AmplitudeOperations/index.d.cts +2 -2
  174. package/dist/hooks/AmplitudeOperations/index.d.ts +2 -2
  175. package/dist/hooks/AmplitudeOperations/index.js +22 -21
  176. package/dist/hooks/AppDetails/index.cjs +22 -22
  177. package/dist/hooks/AppDetails/index.d.cts +3 -23
  178. package/dist/hooks/AppDetails/index.d.ts +3 -23
  179. package/dist/hooks/AppDetails/index.js +22 -22
  180. package/dist/hooks/BlockBackButton/index.d.ts +1 -1
  181. package/dist/hooks/CdnOperations/index.cjs +4 -4
  182. package/dist/hooks/CdnOperations/index.js +4 -4
  183. package/dist/hooks/ChatToggle/index.cjs +28 -25
  184. package/dist/hooks/ChatToggle/index.d.cts +2 -2
  185. package/dist/hooks/ChatToggle/index.d.ts +2 -2
  186. package/dist/hooks/ChatToggle/index.js +25 -22
  187. package/dist/hooks/ChatToggleAnalytics/index.cjs +25 -24
  188. package/dist/hooks/ChatToggleAnalytics/index.d.cts +2 -2
  189. package/dist/hooks/ChatToggleAnalytics/index.d.ts +2 -2
  190. package/dist/hooks/ChatToggleAnalytics/index.js +24 -23
  191. package/dist/hooks/CustomerSupportHandoff/index.cjs +2 -2
  192. package/dist/hooks/CustomerSupportHandoff/index.d.cts +1 -1
  193. package/dist/hooks/CustomerSupportHandoff/index.js +2 -2
  194. package/dist/hooks/Debounce/index.cjs +20 -2
  195. package/dist/hooks/Debounce/index.d.cts +1 -1
  196. package/dist/hooks/Debounce/index.js +18 -2
  197. package/dist/hooks/ElementObserver/index.cjs +4 -6
  198. package/dist/hooks/ElementObserver/index.d.cts +4 -25
  199. package/dist/hooks/ElementObserver/index.d.ts +4 -25
  200. package/dist/hooks/ElementObserver/index.js +4 -6
  201. package/dist/hooks/GrabAndScroll/index.cjs +1 -1
  202. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  203. package/dist/hooks/GrabAndScroll/index.d.ts +2 -2
  204. package/dist/hooks/GrabAndScroll/index.js +1 -1
  205. package/dist/hooks/GraphQLConfig/index.cjs +11 -14
  206. package/dist/hooks/GraphQLConfig/index.d.cts +2 -13
  207. package/dist/hooks/GraphQLConfig/index.d.ts +2 -13
  208. package/dist/hooks/GraphQLConfig/index.js +11 -14
  209. package/dist/hooks/IdentifyUser/index.cjs +19 -21
  210. package/dist/hooks/IdentifyUser/index.js +18 -20
  211. package/dist/hooks/ImageResolver/index.cjs +20 -29
  212. package/dist/hooks/ImageResolver/index.js +20 -29
  213. package/dist/hooks/Intersection/index.cjs +1 -1
  214. package/dist/hooks/Intersection/index.d.ts +1 -1
  215. package/dist/hooks/Intersection/index.js +1 -1
  216. package/dist/hooks/IsSmallScreen/index.d.ts +1 -1
  217. package/dist/hooks/LocalStorageOperations/index.cjs +8 -7
  218. package/dist/hooks/LocalStorageOperations/index.d.cts +1 -1
  219. package/dist/hooks/LocalStorageOperations/index.js +4 -3
  220. package/dist/hooks/MessageFilter/index.cjs +3 -12
  221. package/dist/hooks/MessageFilter/index.d.cts +2 -17
  222. package/dist/hooks/MessageFilter/index.d.ts +2 -17
  223. package/dist/hooks/MessageFilter/index.js +2 -11
  224. package/dist/hooks/NewOrgConfig/index.cjs +16 -18
  225. package/dist/hooks/NewOrgConfig/index.d.cts +3 -16
  226. package/dist/hooks/NewOrgConfig/index.d.ts +3 -16
  227. package/dist/hooks/NewOrgConfig/index.js +16 -18
  228. package/dist/hooks/Search/index.cjs +314 -173
  229. package/dist/hooks/Search/index.d.cts +3 -57
  230. package/dist/hooks/Search/index.d.ts +3 -57
  231. package/dist/hooks/Search/index.js +302 -162
  232. package/dist/hooks/SearchOperations/index.cjs +25 -25
  233. package/dist/hooks/SearchOperations/index.d.cts +2 -3
  234. package/dist/hooks/SearchOperations/index.d.ts +2 -3
  235. package/dist/hooks/SearchOperations/index.js +25 -25
  236. package/dist/hooks/SessionStorageOperations/index.cjs +2 -2
  237. package/dist/hooks/SessionStorageOperations/index.js +2 -2
  238. package/dist/hooks/ShopifyUrlOperations/index.cjs +3 -3
  239. package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -4
  240. package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -4
  241. package/dist/hooks/ShopifyUrlOperations/index.js +3 -3
  242. package/dist/hooks/SnapCalculator/index.cjs +1 -1
  243. package/dist/hooks/SnapCalculator/index.d.cts +4 -3
  244. package/dist/hooks/SnapCalculator/index.d.ts +4 -3
  245. package/dist/hooks/SnapCalculator/index.js +1 -1
  246. package/dist/hooks/SystemSettingsContext/index.cjs +17 -6
  247. package/dist/hooks/SystemSettingsContext/index.d.cts +5 -15
  248. package/dist/hooks/SystemSettingsContext/index.d.ts +4 -14
  249. package/dist/hooks/SystemSettingsContext/index.js +15 -6
  250. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +23 -21
  251. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +2 -3
  252. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +2 -3
  253. package/dist/hooks/TrackComponentVisibleEvent/index.js +23 -21
  254. package/dist/hooks/UpdateAnalyticsProps/index.cjs +26 -24
  255. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +1 -1
  256. package/dist/hooks/UpdateAnalyticsProps/index.js +22 -20
  257. package/dist/hooks/utils.cjs +1 -1
  258. package/dist/hooks/utils.d.cts +20 -13
  259. package/dist/hooks/utils.d.ts +20 -13
  260. package/dist/hooks/utils.js +1 -1
  261. package/dist/index--OKiRCTl.d.ts +224 -0
  262. package/dist/{index-h809JLbL.d.ts → index-B95cXAA4.d.ts} +1 -1
  263. package/dist/index-BVZbvpx_.d.cts +11 -0
  264. package/dist/{index-FQjyuD3D.d.cts → index-BbqT4BQv.d.cts} +1 -1
  265. package/dist/index-BiDHHLjr.d.ts +42 -0
  266. package/dist/{index-Da1s8h5C.d.cts → index-CAJq_8bO.d.cts} +1 -1
  267. package/dist/index-CAXM2KiM.d.ts +11 -0
  268. package/dist/index-CMZcE7pk.d.cts +224 -0
  269. package/dist/{index-DzbkQtaK.d.cts → index-ChiZg0yw.d.cts} +1 -1
  270. package/dist/{index-xHVrsrbz.d.ts → index-DZU7c0jP.d.ts} +1 -1
  271. package/dist/{index-BeYfyZ6k.d.ts → index-DywcCZdp.d.ts} +1 -1
  272. package/dist/{index-DJTrxIFJ.d.ts → index-dc4j0jws.d.ts} +1 -1
  273. package/dist/{index-9NE86em3.d.cts → index-npqPeJ1g.d.cts} +1 -1
  274. package/dist/index-qOBU4GEh.d.cts +42 -0
  275. package/dist/interceptors/index.cjs +28 -3
  276. package/dist/interceptors/index.d.cts +4 -15
  277. package/dist/interceptors/index.d.ts +4 -15
  278. package/dist/interceptors/index.js +25 -3
  279. package/dist/localStorageContext-BFwvuEcf.js +90 -0
  280. package/dist/localStorageContext-CWc5xJ6U.cjs +104 -0
  281. package/dist/{logger-W3lqg-4b.js → logger-BMVdhQOV.js} +1 -1
  282. package/dist/{logger-TBIl4uIH.cjs → logger-BqHq67zN.cjs} +1 -1
  283. package/dist/models-Cw0QcbQv.js +1118 -0
  284. package/dist/models-Dl0_Ujgj.cjs +1305 -0
  285. package/dist/newOrgConfigAtom-C8h3w_Ji.js +8 -0
  286. package/dist/{newOrgConfigAtom-DxILMn2I.cjs → newOrgConfigAtom-CDttTiuu.cjs} +1 -1
  287. package/dist/newOrgConfigContext-B_rJMpwN.js +55 -0
  288. package/dist/newOrgConfigContext-D1sgTmVU.cjs +70 -0
  289. package/dist/nodeSelector-BYEAyrsj.d.cts +28 -0
  290. package/dist/nodeSelector-NqW-FBED.d.ts +28 -0
  291. package/dist/org-BNs_maoW.cjs +111 -0
  292. package/dist/org-CScQqL4k.js +32 -0
  293. package/dist/search-CWkDtqQV.cjs +312 -0
  294. package/dist/search-OWKKaQQj.js +233 -0
  295. package/dist/searchContext-3VsAb17A.cjs +146 -0
  296. package/dist/searchContext-Bhhp_q_P.js +130 -0
  297. package/dist/searchServiceAdapter-B0h7psvh.js +16 -0
  298. package/dist/searchServiceAdapter-BclWy4fE.cjs +34 -0
  299. package/dist/sessionStorageContext-L3f_btsR.cjs +66 -0
  300. package/dist/sessionStorageContext-kQJRbkHL.js +52 -0
  301. package/dist/shopifyUrlContext-BsYGfLvw.cjs +75 -0
  302. package/dist/shopifyUrlContext-CB9LQU_i.js +61 -0
  303. package/dist/systemSettingsContext-B5plhu8S.cjs +60 -0
  304. package/dist/systemSettingsContext-Cac6mmfA.js +39 -0
  305. package/dist/types/index.cjs +3 -48
  306. package/dist/types/index.d.cts +2 -17
  307. package/dist/types/index.d.ts +2 -17
  308. package/dist/types/index.js +2 -44
  309. package/dist/types-1iJ_FnQQ.cjs +39 -0
  310. package/dist/types-D5du68Vp.js +27 -0
  311. package/dist/urlsParser-Dax4iVNC.cjs +78 -0
  312. package/dist/urlsParser-NAp2LwWP.js +42 -0
  313. package/dist/useAppDetails-B-lZpIPK.js +30 -0
  314. package/dist/useAppDetails-BAJjqvyF.cjs +38 -0
  315. package/dist/useGraphQLConfig-CeYY5maa.js +63 -0
  316. package/dist/useGraphQLConfig-Cm_lEb1T.cjs +76 -0
  317. package/dist/{useIntersection-m4PEpvG7.cjs → useIntersection-DuwPFRY9.cjs} +1 -1
  318. package/dist/{useIntersection-Cncgxdmy.js → useIntersection-bCSteycU.js} +1 -1
  319. package/dist/{utils-DIvMgPe8.js → utils-B1LVzQYK.js} +1 -1
  320. package/dist/utils-BZT_oZ3n.js +92 -0
  321. package/dist/{utils-CDw74BCO.cjs → utils-CiJLDPjY.cjs} +1 -1
  322. package/dist/{utils-2SWrJ12w.cjs → utils-CqVRbvfN.cjs} +1 -1
  323. package/dist/utils-D3MjNkd3.cjs +716 -0
  324. package/dist/utils-DMwh3QbT.js +607 -0
  325. package/dist/{utils-CqBxIpEV.js → utils-DQhbbAnt.js} +1 -1
  326. package/dist/{utils-DpneNSJf.d.ts → utils-DjhLO2vO.d.ts} +1 -1
  327. package/dist/utils-qtHPLFby.cjs +130 -0
  328. package/package.json +13 -36
  329. package/src/application/commerce-api.ts +40 -37
  330. package/src/application/models/graphql/index.ts +1 -0
  331. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -23
  332. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -89
  333. package/src/application/models/guards/api/isApiFormResponse.ts +4 -4
  334. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +2 -2
  335. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +2 -20
  336. package/src/application/models/guards/api/isApiOrgConfigResults.ts +3 -9
  337. package/src/application/models/guards/api/isApiOrganizationConfig.ts +8 -32
  338. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +8 -5
  339. package/src/application/models/guards/api/isApiPLPEventAttributes.ts +14 -10
  340. package/src/application/models/guards/api/isApiPageResponseAttributes.ts +1 -1
  341. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +2 -4
  342. package/src/application/models/guards/api/isApiProductSearchAttributes.ts +9 -6
  343. package/src/application/models/guards/api/isApiProductSearchFilterAttributes.ts +7 -4
  344. package/src/application/models/guards/api/isApiQueryTypedEventAttributes.ts +8 -3
  345. package/src/application/models/guards/api/isApiResponse.ts +22 -15
  346. package/src/application/models/guards/api/isApiReviewResponseAttributes.ts +1 -1
  347. package/src/application/models/guards/api/isApiReviewRichInformation.ts +1 -1
  348. package/src/application/models/guards/api/isApiTextResponseAttributes.ts +1 -1
  349. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +1 -1
  350. package/src/application/models/guards/isBaseEcommerceEvent.ts +1 -2
  351. package/src/application/models/guards/isGA4EcommerceEvent.ts +1 -1
  352. package/src/application/models/guards/isLegacyUAEcommerceEvent.ts +1 -1
  353. package/src/application/models/guards/isMobilePLPChatPlacementParameter.ts +1 -3
  354. package/src/application/models/guards/isSpanxTakeAQuizCtaParameter.ts +5 -3
  355. package/src/application/models/guards/isVariantInfo.ts +6 -1
  356. package/src/application/models/index.ts +30 -95
  357. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  358. package/src/application/models/validators/validateGraphQLColorsConfig.ts +6 -2
  359. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +6 -6
  360. package/src/application/models/validators/validateMobilePLPChatPlacementParameter.ts +5 -3
  361. package/src/application/models/validators/validateOrgConfigResults.ts +6 -5
  362. package/src/application/models/validators/validateOrganizationConfig.ts +11 -8
  363. package/src/application/models/validators/validateResponse.ts +66 -44
  364. package/src/application/models/validators/validateSuggestion.ts +1 -1
  365. package/src/application/models/validators/validateUserEvent.ts +23 -12
  366. package/src/application/utils/analyticsUtils.ts +1 -8
  367. package/src/application/utils/coreContextToApiContext.ts +3 -1
  368. package/src/application/utils/coreUserEventToApiUserEvent.ts +2 -2
  369. package/src/application/utils/elementObserver.ts +1 -1
  370. package/src/application/utils/imageFilter.ts +5 -2
  371. package/src/application/utils/index.ts +20 -21
  372. package/src/application/utils/messageFromFormSubmittedEvent.ts +1 -1
  373. package/src/application/utils/messageFromQueryEvent.ts +1 -1
  374. package/src/application/utils/messageFromResponse.ts +14 -10
  375. package/src/application/utils/messageFromSuggestionEvent.ts +6 -4
  376. package/src/application/utils/mouseEventTypes.ts +1 -1
  377. package/src/application/utils/nextMessageRequestToApiRequest.ts +1 -1
  378. package/src/application/utils/overrides.ts +1 -49
  379. package/src/application/utils/supportedEventRequestToApiRequest.ts +3 -1
  380. package/src/application/utils/urlsParser.ts +1 -7
  381. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -1
  382. package/src/atoms/app/index.ts +15 -25
  383. package/src/atoms/app/variant.ts +1 -1
  384. package/src/atoms/chat/chatState.ts +4 -4
  385. package/src/atoms/chat/form.ts +1 -1
  386. package/src/atoms/chat/messageQueue.ts +25 -50
  387. package/src/atoms/chat/replies.ts +1 -2
  388. package/src/atoms/chat/suggestions.ts +34 -29
  389. package/src/atoms/envive/enviveConfig.ts +15 -20
  390. package/src/atoms/org/customerService.ts +4 -8
  391. package/src/atoms/org/graphqlConfig.ts +7 -15
  392. package/src/atoms/org/index.ts +4 -6
  393. package/src/atoms/org/newOrgConfigAtom.ts +2 -2
  394. package/src/atoms/org/orgAnalyticsConfig.ts +1 -1
  395. package/src/atoms/search/index.ts +0 -1
  396. package/src/atoms/search/productFilters.ts +72 -52
  397. package/src/atoms/search/productRetrievalAPI.ts +72 -0
  398. package/src/atoms/search/productRetrievalAdapter.ts +28 -0
  399. package/src/atoms/search/productSorter.ts +2 -2
  400. package/src/atoms/search/searchAPI.ts +42 -60
  401. package/src/atoms/search/searchServiceAdapter.ts +1 -1
  402. package/src/contexts/amplitudeContext/amplitudeContext.tsx +24 -62
  403. package/src/contexts/atomProvider/atomProvider.tsx +6 -0
  404. package/src/contexts/atomProvider/index.ts +1 -0
  405. package/src/contexts/cdnContext/cdnContext.tsx +1 -6
  406. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +23 -34
  407. package/src/contexts/enviveCssContext/enviveCssContext.tsx +5 -12
  408. package/src/contexts/featureFlagContext/featureFlagContext.tsx +27 -48
  409. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -3
  410. package/src/contexts/graphqlContext/graphqlContext.tsx +45 -97
  411. package/src/contexts/localStorageContext/localStorageContext.tsx +26 -60
  412. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +21 -25
  413. package/src/contexts/searchContext/searchContext.tsx +30 -49
  414. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +12 -33
  415. package/src/contexts/shopifyUrlContext/shopifyUrlContext.tsx +20 -37
  416. package/src/contexts/systemSettingsContext/systemSettingsContext.tsx +8 -21
  417. package/src/contexts/userIdentityContext/userIdentityContext.tsx +33 -77
  418. package/src/events/index.ts +8 -5
  419. package/src/events/registerAnalyticsListeners.ts +10 -13
  420. package/src/exceptions/index.ts +2 -0
  421. package/src/{types/exceptions → exceptions}/unsupportedProductExceptions.ts +2 -2
  422. package/src/global.d.ts +8 -0
  423. package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +6 -11
  424. package/src/hooks/AppDetails/useAppDetails.ts +10 -24
  425. package/src/hooks/ChatToggle/useChatToggle.ts +7 -19
  426. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +4 -4
  427. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +1 -1
  428. package/src/hooks/ElementObserver/useElementObserver.ts +14 -32
  429. package/src/hooks/GrabAndScroll/useGrabAndScroll.ts +125 -124
  430. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +5 -7
  431. package/src/hooks/ImageResolver/useImageResolver.ts +24 -31
  432. package/src/hooks/LocalStorageOperations/useLocalStorageOperations.ts +12 -19
  433. package/src/hooks/MessageFilter/useMessageFilter.ts +1 -7
  434. package/src/hooks/Search/useRecommendedProducts.ts +50 -0
  435. package/src/hooks/Search/useSearch.tsx +87 -217
  436. package/src/hooks/Search/useSearchInput.ts +237 -0
  437. package/src/hooks/SearchOperations/useSearchOperations.ts +8 -12
  438. package/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.ts +8 -14
  439. package/src/hooks/SnapCalculator/useSnapCalculator.ts +1 -2
  440. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +8 -11
  441. package/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.ts +11 -25
  442. package/src/hooks/utils.ts +19 -29
  443. package/src/interceptors/index.ts +1 -2
  444. package/src/interceptors/useMessageInterceptor.ts +10 -6
  445. package/src/{application/models/api/response.ts → types/ApiResponse.ts} +35 -29
  446. package/src/types/FilterAttribute.ts +35 -0
  447. package/src/{application/models/message.ts → types/Message.ts} +38 -34
  448. package/src/types/Suggestion.ts +6 -0
  449. package/src/types/index.ts +4 -5
  450. package/src/util/colorVar.ts +4 -0
  451. package/src/util/configVersion.ts +4 -0
  452. package/src/util/domInsertion.ts +17 -0
  453. package/dist/SystemSettingsContext-6ZHzQkCE.cjs +0 -20
  454. package/dist/SystemSettingsContext-BbTKNBvJ.js +0 -13
  455. package/dist/TrackComponentVisibleEvent-BJgNOypY.js +0 -52
  456. package/dist/TrackComponentVisibleEvent-BRC2FTp-.cjs +0 -59
  457. package/dist/amplitudeContext-B73xamNe.d.cts +0 -52
  458. package/dist/amplitudeContext-CZUzMXHl.d.ts +0 -52
  459. package/dist/api-BWSsazAG.js +0 -166
  460. package/dist/api-DeW6rHj3.cjs +0 -239
  461. package/dist/application/models/utilityTypes/index.cjs +0 -1
  462. package/dist/application/models/utilityTypes/index.d.cts +0 -2
  463. package/dist/application/models/utilityTypes/index.d.ts +0 -2
  464. package/dist/application/models/utilityTypes/index.js +0 -3
  465. package/dist/application/models/variantInfo/index.cjs +0 -3
  466. package/dist/application/models/variantInfo/index.d.cts +0 -2
  467. package/dist/application/models/variantInfo/index.d.ts +0 -2
  468. package/dist/application/models/variantInfo/index.js +0 -3
  469. package/dist/atoms/search/types.cjs +0 -5
  470. package/dist/atoms/search/types.d.cts +0 -2
  471. package/dist/atoms/search/types.d.ts +0 -2
  472. package/dist/atoms/search/types.js +0 -3
  473. package/dist/cdnContext-CEGBVVBU.js +0 -38
  474. package/dist/cdnContext-DOSIofl8.cjs +0 -53
  475. package/dist/chat-CqPuT9_V.cjs +0 -393
  476. package/dist/chat-DH70QqJp.js +0 -257
  477. package/dist/chatElementDisplayLocation-CpgV2wR1.d.ts +0 -25
  478. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +0 -25
  479. package/dist/chatSearch-C7Y-hb-6.js +0 -295
  480. package/dist/chatSearch-DLV4BUGA.cjs +0 -418
  481. package/dist/chatState-CcFtSqJT.cjs +0 -120
  482. package/dist/chatState-DKnNHmwe.js +0 -34
  483. package/dist/contexts/chatContext/index.cjs +0 -326
  484. package/dist/contexts/chatContext/index.d.cts +0 -15
  485. package/dist/contexts/chatContext/index.d.ts +0 -15
  486. package/dist/contexts/chatContext/index.js +0 -319
  487. package/dist/contexts/types.cjs +0 -7
  488. package/dist/contexts/types.d.cts +0 -4
  489. package/dist/contexts/types.d.ts +0 -4
  490. package/dist/contexts/types.js +0 -3
  491. package/dist/domObserver-Bqf3ooj8.cjs +0 -304
  492. package/dist/enviveConfig-DZBohDpc.js +0 -62
  493. package/dist/enviveConfig-Dv9-esGV.cjs +0 -130
  494. package/dist/enviveConfigContext-D2OELZDR.cjs +0 -60
  495. package/dist/enviveConfigContext-DrDjCems.js +0 -45
  496. package/dist/events-DYY4l817.cjs +0 -90
  497. package/dist/events-DyUix-Bn.js +0 -78
  498. package/dist/featureFlagServiceContext-Be_LUbFf.d.cts +0 -23
  499. package/dist/featureFlagServiceContext-CJyYItqu.cjs +0 -62
  500. package/dist/featureFlagServiceContext-FBM6DdMJ.js +0 -42
  501. package/dist/featureFlagServiceContext-V0J-69ty.d.ts +0 -23
  502. package/dist/featureGates-KEwAL8p_.js +0 -26
  503. package/dist/featureGates-qU_ulhpC.cjs +0 -32
  504. package/dist/frontendConfig-CeWhVevA.d.ts +0 -857
  505. package/dist/frontendConfig-OWWJmuPc.d.cts +0 -857
  506. package/dist/graphql-3PxNRFOc.js +0 -36
  507. package/dist/graphql-DGYfelZp.cjs +0 -53
  508. package/dist/graphqlConfig-GHZ1UgCw.cjs +0 -73
  509. package/dist/graphqlConfig-mDg6J44N.js +0 -24
  510. package/dist/graphqlContext-BQA6gnpH.d.ts +0 -28
  511. package/dist/graphqlContext-Ci5GRAdH.js +0 -96
  512. package/dist/graphqlContext-D67VEQg3.d.cts +0 -28
  513. package/dist/graphqlContext-W0cZNBf1.cjs +0 -111
  514. package/dist/hooks/FloatingButtonVisibility/index.cjs +0 -73
  515. package/dist/hooks/FloatingButtonVisibility/index.d.cts +0 -7
  516. package/dist/hooks/FloatingButtonVisibility/index.d.ts +0 -7
  517. package/dist/hooks/FloatingButtonVisibility/index.js +0 -69
  518. package/dist/hooks/LastInteraction/index.cjs +0 -34
  519. package/dist/hooks/LastInteraction/index.d.cts +0 -17
  520. package/dist/hooks/LastInteraction/index.d.ts +0 -17
  521. package/dist/hooks/LastInteraction/index.js +0 -32
  522. package/dist/index-BeGt0Aw3.d.cts +0 -186
  523. package/dist/index-Bmub8e38.d.cts +0 -98
  524. package/dist/index-CCa4tZuO.d.ts +0 -184
  525. package/dist/index-CESxqFso.d.cts +0 -228
  526. package/dist/index-CgAfoNpB.d.ts +0 -1
  527. package/dist/index-CiWEYzXl.d.cts +0 -184
  528. package/dist/index-Cyq5HiC0.d.cts +0 -44
  529. package/dist/index-D4c-port.d.ts +0 -676
  530. package/dist/index-DazMsEy_.d.ts +0 -44
  531. package/dist/index-Dfwnna1j.d.ts +0 -228
  532. package/dist/index-O33GSSRr.d.cts +0 -676
  533. package/dist/index-RcVcRKH7.d.cts +0 -1
  534. package/dist/index-bjMvkcBF.d.ts +0 -98
  535. package/dist/index-xhBQ1HBx.d.ts +0 -186
  536. package/dist/interceptors/types.cjs +0 -1
  537. package/dist/interceptors/types.d.cts +0 -13
  538. package/dist/interceptors/types.d.ts +0 -13
  539. package/dist/interceptors/types.js +0 -3
  540. package/dist/localStorageContext-BPZ82q-G.js +0 -95
  541. package/dist/localStorageContext-NRP-CdmF.cjs +0 -115
  542. package/dist/models-D-4db7XW.cjs +0 -1537
  543. package/dist/models-c86hYW-F.js +0 -1296
  544. package/dist/newOrgConfigAtom-sqve6LZU.js +0 -8
  545. package/dist/newOrgConfigContext-5Bw7RwT-.d.cts +0 -16
  546. package/dist/newOrgConfigContext-CS8IA5Eg.d.ts +0 -16
  547. package/dist/newOrgConfigContext-Cl4H9c3q.cjs +0 -68
  548. package/dist/newOrgConfigContext-DQiuf8nd.js +0 -53
  549. package/dist/nodeSelector-B3bPtEjX.d.cts +0 -31
  550. package/dist/nodeSelector-BiCDowlK.d.ts +0 -31
  551. package/dist/org-DlAesvQ_.cjs +0 -43
  552. package/dist/org-vi0njpBh.js +0 -12
  553. package/dist/search-1NQLQD9d.d.ts +0 -20
  554. package/dist/search-CXXslzAO.cjs +0 -205
  555. package/dist/search-DBSMrXWv.js +0 -126
  556. package/dist/search-filter-types-BxaNSLs_.d.cts +0 -102
  557. package/dist/search-filter-types-DPgeG8FS.d.ts +0 -102
  558. package/dist/search-y-ioX5Mz.d.cts +0 -20
  559. package/dist/searchContext-DXW6xvXv.cjs +0 -145
  560. package/dist/searchContext-mvwUJncR.js +0 -129
  561. package/dist/searchServiceAdapter-DEv1tTn0.cjs +0 -34
  562. package/dist/searchServiceAdapter-WyCU55NV.js +0 -16
  563. package/dist/sessionStorageContext-1Ks_d4Z0.cjs +0 -66
  564. package/dist/sessionStorageContext-CDcl7NVl.js +0 -52
  565. package/dist/shopifyUrlContext-CejRZfj7.js +0 -61
  566. package/dist/shopifyUrlContext-lnHoAOEf.cjs +0 -75
  567. package/dist/spiffyWidgets-B1uc84_g.d.ts +0 -20
  568. package/dist/spiffyWidgets-BuS00VaQ.d.cts +0 -20
  569. package/dist/systemSettingsContext-B0Kyq7nA.cjs +0 -60
  570. package/dist/systemSettingsContext-CVUxEcsU.js +0 -39
  571. package/dist/test-types-ThQiO_cc.d.cts +0 -40
  572. package/dist/test-types-y6kp-tiw.d.ts +0 -40
  573. package/dist/types-BCz-hOvv.d.ts +0 -51
  574. package/dist/types-CKMMb_gX.d.cts +0 -51
  575. package/dist/types-CKPddlfS.cjs +0 -0
  576. package/dist/types-CS0Hrzja.js +0 -30
  577. package/dist/types-CtUb63bt.js +0 -76
  578. package/dist/types-CxObxLKs.cjs +0 -48
  579. package/dist/types-Db5Eux6K.d.ts +0 -10
  580. package/dist/types-Dc6hx6ei.js +0 -1
  581. package/dist/types-UUvB6h05.cjs +0 -106
  582. package/dist/types-zQGBI-Yo.d.cts +0 -10
  583. package/dist/types.cjs +0 -0
  584. package/dist/types.d.cts +0 -34
  585. package/dist/types.d.ts +0 -34
  586. package/dist/types.js +0 -1
  587. package/dist/urlsParser-COzMdJaX.cjs +0 -78
  588. package/dist/urlsParser-DxjoLj98.js +0 -42
  589. package/dist/useAmplitudeOperations-DYs1h8a_.js +0 -34
  590. package/dist/useAmplitudeOperations-jqa7K9dH.cjs +0 -41
  591. package/dist/useAppDetails-BRUqZEyt.js +0 -30
  592. package/dist/useAppDetails-C71k0brz.cjs +0 -38
  593. package/dist/useDebounce-DZ8Cgiwc.cjs +0 -26
  594. package/dist/useDebounce-v9cezyjn.js +0 -19
  595. package/dist/useGraphQLConfig-5VwS9Q_Z.js +0 -63
  596. package/dist/useGraphQLConfig-Cj26_J9I.cjs +0 -76
  597. package/dist/useMessageInterceptor-BjGP_uXm.js +0 -25
  598. package/dist/useMessageInterceptor-arAqUq1Q.cjs +0 -33
  599. package/dist/userIdentityContext-BVODeTlN.d.ts +0 -20
  600. package/dist/userIdentityContext-D2oFVFzo.d.cts +0 -20
  601. package/dist/utilityTypes-B2KuRn37.js +0 -1
  602. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  603. package/dist/utils-BxPPugeP.d.cts +0 -22
  604. package/dist/utils-CLGXsOwE.cjs +0 -1591
  605. package/dist/utils-Covisryh.d.ts +0 -22
  606. package/dist/utils-D_kATUj6.js +0 -92
  607. package/dist/utils-hYTjy7hJ.cjs +0 -130
  608. package/dist/utils-jYtD3hmA.js +0 -1385
  609. package/dist/variantInfo-BfKlkaWU.js +0 -11
  610. package/dist/variantInfo-DpLn4nHz.cjs +0 -17
  611. package/src/application/models/api/context.ts +0 -4
  612. package/src/application/models/api/generationParams.ts +0 -4
  613. package/src/application/models/api/nextMessageRequest.ts +0 -11
  614. package/src/application/models/api/orgAnalyticsConfig.ts +0 -19
  615. package/src/application/models/api/orgConfigResults.ts +0 -44
  616. package/src/application/models/api/organizationConfig.ts +0 -12
  617. package/src/application/models/api/responseGenerics.ts +0 -67
  618. package/src/application/models/api/search.ts +0 -26
  619. package/src/application/models/api/suggestion.ts +0 -4
  620. package/src/application/models/api/supportedEventRequest.ts +0 -8
  621. package/src/application/models/api/userEvent.ts +0 -101
  622. package/src/application/models/cachedValue.ts +0 -8
  623. package/src/application/models/chatElementDisplayLocation.ts +0 -22
  624. package/src/application/models/clientDetails.ts +0 -18
  625. package/src/application/models/colorsConfig.ts +0 -28
  626. package/src/application/models/conversationalSearchIds.ts +0 -5
  627. package/src/application/models/dataLayer.ts +0 -45
  628. package/src/application/models/events.ts +0 -5
  629. package/src/application/models/featureGates.ts +0 -21
  630. package/src/application/models/frontendConfig.ts +0 -14
  631. package/src/application/models/googleAnalyticsEvents.ts +0 -8
  632. package/src/application/models/localStorageEventListener.ts +0 -4
  633. package/src/application/models/mobilePLPChatPlacementParameter.ts +0 -3
  634. package/src/application/models/orgsEnum.ts +0 -36
  635. package/src/application/models/productExperiment.ts +0 -5
  636. package/src/application/models/spanxTakeAQuizCtaParameter.ts +0 -4
  637. package/src/application/models/spiffyWidgets.ts +0 -16
  638. package/src/application/models/utilityTypes/camelCase.ts +0 -87
  639. package/src/application/models/utilityTypes/camelCasedPropertiesDeep.ts +0 -80
  640. package/src/application/models/utilityTypes/delimiterCase.ts +0 -121
  641. package/src/application/models/utilityTypes/delimiterCasedPropertiesDeep.ts +0 -98
  642. package/src/application/models/utilityTypes/index.ts +0 -1
  643. package/src/application/models/utilityTypes/internal.ts +0 -93
  644. package/src/application/models/utilityTypes/primitive.ts +0 -8
  645. package/src/application/models/utilityTypes/snakeCasedPropertiesDeep.ts +0 -49
  646. package/src/application/models/utilityTypes/splitWords.ts +0 -76
  647. package/src/application/models/utilityTypes/trim.ts +0 -28
  648. package/src/application/models/utilityTypes/unknownArray.ts +0 -25
  649. package/src/application/models/variantInfo/index.ts +0 -1
  650. package/src/application/models/variantInfo/pageVisitInfo.ts +0 -6
  651. package/src/application/models/variantInfo/plpInfo.ts +0 -3
  652. package/src/application/models/variantInfo/productInfo.ts +0 -5
  653. package/src/application/models/variantInfo/variantInfo.ts +0 -29
  654. package/src/application/utils/__tests__/divideArrays.test.ts +0 -14
  655. package/src/application/utils/cdnUtils.ts +0 -11
  656. package/src/atoms/search/chatSearch.ts +0 -317
  657. package/src/atoms/search/types.ts +0 -55
  658. package/src/config/divIds.ts +0 -27
  659. package/src/config/socialProofClasses.ts +0 -17
  660. package/src/contexts/chatContext/chatContext.tsx +0 -509
  661. package/src/contexts/chatContext/index.ts +0 -1
  662. package/src/contexts/types.ts +0 -1067
  663. package/src/events/event-types.ts +0 -11
  664. package/src/hooks/FloatingButtonVisibility/index.ts +0 -1
  665. package/src/hooks/FloatingButtonVisibility/useFloatingButtonVisibility.ts +0 -99
  666. package/src/hooks/LastInteraction/index.ts +0 -1
  667. package/src/hooks/LastInteraction/useLastInteraction.ts +0 -42
  668. package/src/interceptors/types.ts +0 -6
  669. package/src/merchants/domInsertion.ts +0 -30
  670. package/src/merchants/gridInsertion.ts +0 -19
  671. package/src/types/config-versions.ts +0 -6
  672. package/src/types/customerService.ts +0 -31
  673. package/src/types/custservice-types.ts +0 -28
  674. package/src/types/floatingbuttonoverrides-types.ts +0 -10
  675. package/src/types/search-filter-types.ts +0 -111
  676. package/src/types/suggestionBarV2-types.ts +0 -4
  677. package/src/types/test-types.ts +0 -3
  678. package/src/types.ts +0 -27
  679. /package/dist/{AmplitudeOperations-DxQnurSG.cjs → enviveConfigContext-CZPfJkcS.cjs} +0 -0
  680. /package/dist/{AmplitudeOperations-ni7wVevx.js → enviveConfigContext-Hc1JBLu-.js} +0 -0
  681. /package/dist/{globalSearch-BpGfkuXz.js → featureFlagServiceContext-CISyb90N.js} +0 -0
  682. /package/dist/{globalSearch-B9DRBxSM.cjs → featureFlagServiceContext-Csgo-MUv.cjs} +0 -0
  683. /package/src/{types/exceptions → exceptions}/sessionExceptions.ts +0 -0
@@ -1,166 +0,0 @@
1
- import { hasPropertyOfType } from "./utils-DIvMgPe8.js";
2
- import { logger_default } from "./logger-W3lqg-4b.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLUJXU3NhekFHLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVBEUEV2ZW50QXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVF1ZXJ5VHlwZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXNwb25zZS50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24udHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTZWFyY2hFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTdWdnZXN0aW9uLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbkNsaWNrZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpVXNlckV2ZW50LnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFNlYXJjaEF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUERQQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVBEUEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUERQQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb2R1Y3RfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnByb2R1Y3RfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwYXJlbnRfcHJvZHVjdF9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5wYXJlbnRfcHJvZHVjdF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3VybCcgaW4gZGF0YSAmJiBkYXRhLnVybCAhPSBudWxsICYmIHR5cGVvZiBkYXRhLnVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBRdWVyeVR5cGVkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3F1ZXJ5JyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLnF1ZXJ5ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFJlc3BvbnNlLCBSZXNwb25zZUNhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXNwb25zZSA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBSZXNwb25zZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBkYXRhIGlzIG51bGwgb3Igbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2lkJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBpZCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjYXRlZ29yeScsICdzdHJpbmcnKSB8fFxuICAgICFPYmplY3QudmFsdWVzKFJlc3BvbnNlQ2F0ZWdvcnkpLmluY2x1ZGVzKGRhdGEuY2F0ZWdvcnkgYXMgUmVzcG9uc2VDYXRlZ29yeSlcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUmVzcG9uc2U6IGNhdGVnb3J5IGlzIG5vdCBhIHN0cmluZyBvciBub3QgYSB2YWxpZCByZXNwb25zZSBjYXRlZ29yeScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7IGRhdGEgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2NyZWF0ZWRfYXQnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGNyZWF0ZWRfYXQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnYXR0cmlidXRlcycsICdvYmplY3QnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogYXR0cmlidXRlcyBpcyBub3QgYW4gb2JqZWN0JywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyA9PiB7XG4gIGlmIChhdHRyaWJ1dGVzID09IG51bGwgfHwgdHlwZW9mIGF0dHJpYnV0ZXMgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXR0cmlidXRlcyBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2Rlc2NyaXB0aW9uJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGRlc2NyaXB0aW9uIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdpbWFnZV91cmwnLCAnc3RyaW5nJywgdHJ1ZSlcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGltYWdlX3VybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndGl0bGUnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdGl0bGUgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3VybCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB1cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ29yaWdpbmFsX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG9yaWdpbmFsX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdzYWxlX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHNhbGVfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2F2ZXJhZ2VfcmF0aW5nJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF2ZXJhZ2VfcmF0aW5nIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdudW1iZXJfcmV2aWV3cycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBudW1iZXJfcmV2aWV3cyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbWV0YWRhdGEnLCAnYXJyYXknLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBtZXRhZGF0YSBpcyBub3QgYW4gYXJyYXknLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiA9IChcbiAgcmljaEluZm86IHVua25vd24sXG4pOiByaWNoSW5mbyBpcyBBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPT4ge1xuICBpZiAocmljaEluZm8gPT0gbnVsbCB8fCB0eXBlb2YgcmljaEluZm8gIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdjb25zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5jb25zKSB8fCByaWNoSW5mby5jb25zLnNvbWUoKGNvbikgPT4gdHlwZW9mIGNvbiAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb3MnIGluIHJpY2hJbmZvICYmXG4gICAgKCFBcnJheS5pc0FycmF5KHJpY2hJbmZvLnByb3MpIHx8IHJpY2hJbmZvLnByb3Muc29tZSgocHJvKSA9PiB0eXBlb2YgcHJvICE9PSAnc3RyaW5nJykpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3X2RhdGUnIGluIHJpY2hJbmZvICYmIHR5cGVvZiByaWNoSW5mby5yZXZpZXdfZGF0ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyX3RpdGxlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3ZXJfdGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwcm9kdWN0X2ZhbWlsaWFyaXR5JyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucHJvZHVjdF9mYW1pbGlhcml0eSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9yZXNwb25zZUdlbmVyaWNzJztcbmltcG9ydCB7IGlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnLi9pc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbic7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9IChvYmo6IHVua25vd24pOiBvYmogaXMgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCd0aXRsZScgaW4gb2JqICYmIG9iai50aXRsZSAhPSBudWxsICYmIHR5cGVvZiBvYmoudGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXcnIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnJldmlldyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyJyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXdlciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3N0YXJzJyBpbiBvYmogJiYgdHlwZW9mIG9iai5zdGFycyAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3JpY2hfaW5mb3JtYXRpb24nIGluIG9iaiAmJiAhaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24ob2JqLnJpY2hfaW5mb3JtYXRpb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgU2VhcmNoQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVNlYXJjaEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgU2VhcmNoQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3NlYXJjaF90ZXJtJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5zZWFyY2hfdGVybSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCdzZWxlY3RlZF9maWx0ZXJzJyBpbiBkYXRhICYmICFBcnJheS5pc0FycmF5KGRhdGEuc2VsZWN0ZWRfZmlsdGVycykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISFkYXRhLnNlYXJjaF90ZXJtKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoXG4gICAgISgnc2VhcmNoX3Jlc3VsdHMnIGluIGRhdGEpIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoZGF0YS5zZWFyY2hfcmVzdWx0cykgfHxcbiAgICAhZGF0YS5zZWFyY2hfcmVzdWx0cy5ldmVyeSgodikgPT4gdHlwZW9mIHYgPT09ICdzdHJpbmcnKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQge1xuICBTdWdnZXN0aW9uIGFzIENvbW1lcmNlU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbkNhdGVnb3J5LFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNTdWdnZXN0aW9uID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIENvbW1lcmNlU3VnZ2VzdGlvbiA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoU3VnZ2VzdGlvbkNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFN1Z2dlc3Rpb25DYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNyZWF0ZWRfYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NvbnRlbnQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpc19hbnN3ZXInIGluIGRhdGEgJiYgZGF0YS5pc19hbnN3ZXIgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS5pc19hbnN3ZXIgIT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJlxuICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgJ3N1Z2dlc3Rpb25faWQnIGluIGRhdGEgJiZcbiAgdHlwZW9mIGRhdGEuc3VnZ2VzdGlvbl9pZCA9PT0gJ3N0cmluZyc7XG4iLCJpbXBvcnQgeyBBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIEFwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPT5cbiAgdHlwZW9mIGF0dHJpYnV0ZXMgPT09ICdvYmplY3QnICYmXG4gIGF0dHJpYnV0ZXMgIT0gbnVsbCAmJlxuICAnY29udGVudCcgaW4gYXR0cmlidXRlcyAmJlxuICB0eXBlb2YgYXR0cmlidXRlcy5jb250ZW50ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlVc2VyRXZlbnQgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgVXNlckV2ZW50ID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnZXZlbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmV2ZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjYXRlZ29yeScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jYXRlZ29yeSAhPT0gJ3N0cmluZycgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhVc2VyRXZlbnRDYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBVc2VyRXZlbnRDYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnZ2VuZXJhdGVkX3F1ZXJ5JyBpbiBhdHRyaWJ1dGVzICYmIHR5cGVvZiBhdHRyaWJ1dGVzLmdlbmVyYXRlZF9xdWVyeSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb2R1Y3RfY291bnQnIGluIGF0dHJpYnV0ZXMgJiZcbiAgICBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT09ICdudW1iZXInXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFhLHNCQUFzQixTQUF5QztBQUMxRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsU0FDbEMsUUFBTztBQUdULEtBQUksRUFBRSxnQkFBZ0IsU0FBUyxPQUFPLEtBQUssZUFBZSxTQUN4RCxRQUFPO0FBR1QsS0FBSSx1QkFBdUIsUUFBUSxPQUFPLEtBQUssc0JBQXNCLFNBQ25FLFFBQU87QUFHVCxLQUFJLFNBQVMsUUFBUSxLQUFLLE9BQU8sUUFBUSxPQUFPLEtBQUssUUFBUSxTQUMzRCxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNqQlQsTUFBYSw2QkFBNkIsU0FDeEMsUUFBUSxRQUFRLE9BQU8sU0FBUyxZQUFZLFdBQVcsUUFBUSxPQUFPLEtBQUssVUFBVTs7OztBQ0N2RixNQUFhLGlCQUFpQixTQUFvQztBQUNoRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxpQkFBTyxTQUFTLGdEQUFnRCxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ3BGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixNQUFNLE1BQU0sU0FBUyxFQUFFO0FBQzVDLGlCQUFPLFNBQVMscUNBQXFDLFFBQVcsRUFBRSxNQUFNLENBQUM7QUFDekUsU0FBTzs7QUFHVCxLQUNFLENBQUMsa0JBQWtCLE1BQU0sWUFBWSxTQUFTLElBQzlDLENBQUMsT0FBTyxPQUFPLGlCQUFpQixDQUFDLFNBQVMsS0FBSyxTQUE2QixFQUM1RTtBQUNBLGlCQUFPLFNBQ0wsNEVBQ0EsUUFDQSxFQUFFLE1BQU0sQ0FDVDtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixNQUFNLGNBQWMsU0FBUyxFQUFFO0FBQ3BELGlCQUFPLFNBQVMsNkNBQTZDLFFBQVcsRUFBRSxNQUFNLENBQUM7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
@@ -1,239 +0,0 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_utils = require('./utils-CDw74BCO.cjs');
3
- const require_logger = require('./logger-TBIl4uIH.cjs');
4
- let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
5
- __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
6
-
7
- //#region src/application/models/guards/api/isApiPDPEventAttributes.ts
8
- const isApiPDPAttributes = (data) => {
9
- if (data == null || typeof data !== "object") return false;
10
- if (!("product_id" in data) || typeof data.product_id !== "string") return false;
11
- if ("parent_product_id" in data && typeof data.parent_product_id !== "string") return false;
12
- if ("url" in data && data.url != null && typeof data.url !== "string") return false;
13
- return true;
14
- };
15
-
16
- //#endregion
17
- //#region src/application/models/guards/api/isApiQueryTypedEventAttributes.ts
18
- const isApiQueryTypedAttributes = (data) => data != null && typeof data === "object" && "query" in data && typeof data.query === "string";
19
-
20
- //#endregion
21
- //#region src/application/models/guards/api/isApiResponse.ts
22
- const isApiResponse = (data) => {
23
- if (data == null || typeof data !== "object") {
24
- require_logger.logger_default.logError("isApiResponse: data is null or not an object", void 0, { data });
25
- return false;
26
- }
27
- if (!require_utils.hasPropertyOfType(data, "id", "string")) {
28
- require_logger.logger_default.logError("isApiResponse: id is not a string", void 0, { data });
29
- return false;
30
- }
31
- if (!require_utils.hasPropertyOfType(data, "category", "string") || !Object.values(__spiffy_ai_commerce_api_client.ResponseCategory).includes(data.category)) {
32
- require_logger.logger_default.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
33
- return false;
34
- }
35
- if (!require_utils.hasPropertyOfType(data, "created_at", "string")) {
36
- require_logger.logger_default.logError("isApiResponse: created_at is not a string", void 0, { data });
37
- return false;
38
- }
39
- if (!require_utils.hasPropertyOfType(data, "attributes", "object", true)) {
40
- require_logger.logger_default.logError("isApiResponse: attributes is not an object", void 0, { data });
41
- return false;
42
- }
43
- return true;
44
- };
45
-
46
- //#endregion
47
- //#region src/application/models/guards/api/isApiProductResponseAttributes.ts
48
- const isApiProductResponseAttributes = (attributes) => {
49
- if (attributes == null || typeof attributes !== "object") {
50
- require_logger.logger_default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
51
- return false;
52
- }
53
- if (!require_utils.hasPropertyOfType(attributes, "description", "string", true)) {
54
- require_logger.logger_default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
55
- return false;
56
- }
57
- if (!require_utils.hasPropertyOfType(attributes, "image_url", "string", true)) {
58
- require_logger.logger_default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
59
- return false;
60
- }
61
- if (!require_utils.hasPropertyOfType(attributes, "title", "string")) {
62
- require_logger.logger_default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
63
- return false;
64
- }
65
- if (!require_utils.hasPropertyOfType(attributes, "url", "string")) {
66
- require_logger.logger_default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
67
- return false;
68
- }
69
- if (!require_utils.hasPropertyOfType(attributes, "original_price", "number", true)) {
70
- require_logger.logger_default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
71
- return false;
72
- }
73
- if (!require_utils.hasPropertyOfType(attributes, "sale_price", "number", true)) {
74
- require_logger.logger_default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
75
- return false;
76
- }
77
- if (!require_utils.hasPropertyOfType(attributes, "average_rating", "number", true)) {
78
- require_logger.logger_default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
79
- return false;
80
- }
81
- if (!require_utils.hasPropertyOfType(attributes, "number_reviews", "number", true)) {
82
- require_logger.logger_default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
83
- return false;
84
- }
85
- if (!require_utils.hasPropertyOfType(attributes, "metadata", "array", true)) {
86
- require_logger.logger_default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
87
- return false;
88
- }
89
- return true;
90
- };
91
-
92
- //#endregion
93
- //#region src/application/models/guards/api/isApiReviewRichInformation.ts
94
- const isApiReviewRichInformation = (richInfo) => {
95
- if (richInfo == null || typeof richInfo !== "object") return false;
96
- if ("cons" in richInfo && (!Array.isArray(richInfo.cons) || richInfo.cons.some((con) => typeof con !== "string"))) return false;
97
- if ("pros" in richInfo && (!Array.isArray(richInfo.pros) || richInfo.pros.some((pro) => typeof pro !== "string"))) return false;
98
- if ("review_date" in richInfo && typeof richInfo.review_date !== "string") return false;
99
- if ("reviewer_title" in richInfo && typeof richInfo.reviewer_title !== "string") return false;
100
- if ("product_familiarity" in richInfo && typeof richInfo.product_familiarity !== "string") return false;
101
- return true;
102
- };
103
-
104
- //#endregion
105
- //#region src/application/models/guards/api/isApiReviewResponseAttributes.ts
106
- const isApiReviewResponseAttributes = (obj) => {
107
- if (obj == null || typeof obj !== "object") return false;
108
- if ("title" in obj && obj.title != null && typeof obj.title !== "string") return false;
109
- if ("review" in obj && typeof obj.review !== "string") return false;
110
- if ("reviewer" in obj && typeof obj.reviewer !== "string") return false;
111
- if ("stars" in obj && typeof obj.stars !== "number") return false;
112
- if ("rich_information" in obj && !isApiReviewRichInformation(obj.rich_information)) return false;
113
- return true;
114
- };
115
-
116
- //#endregion
117
- //#region src/application/models/guards/api/isApiSearchEventAttributes.ts
118
- const isApiSearchAttributes = (data) => {
119
- if (data == null || typeof data !== "object") return false;
120
- if (!("search_term" in data) || typeof data.search_term !== "string") return false;
121
- if ("selected_filters" in data && !Array.isArray(data.selected_filters)) return false;
122
- if (!!data.search_term) return true;
123
- if (!("search_results" in data) || !Array.isArray(data.search_results) || !data.search_results.every((v) => typeof v === "string")) return false;
124
- return true;
125
- };
126
-
127
- //#endregion
128
- //#region src/application/models/guards/api/isApiSuggestion.ts
129
- const isSuggestion = (data) => {
130
- if (data == null || typeof data !== "object") return false;
131
- if (!("id" in data) || typeof data.id !== "string") return false;
132
- if (!("category" in data) || typeof data.category !== "string" || !Object.values(__spiffy_ai_commerce_api_client.SuggestionCategory).includes(data.category)) return false;
133
- if (!("created_at" in data) || typeof data.created_at !== "string") return false;
134
- if (!("content" in data) || typeof data.content !== "string") return false;
135
- if ("is_answer" in data && data.is_answer != null && typeof data.is_answer !== "boolean") return false;
136
- return true;
137
- };
138
-
139
- //#endregion
140
- //#region src/application/models/guards/api/isApiSuggestionClickedEventAttributes.ts
141
- const isApiSuggestionClickedAttributes = (data) => data != null && typeof data === "object" && "suggestion_id" in data && typeof data.suggestion_id === "string";
142
-
143
- //#endregion
144
- //#region src/application/models/guards/api/isApiTextResponseAttributes.ts
145
- const isApiTextResponseAttributes = (attributes) => typeof attributes === "object" && attributes != null && "content" in attributes && typeof attributes.content === "string";
146
-
147
- //#endregion
148
- //#region src/application/models/guards/api/isApiUserEvent.ts
149
- const isApiUserEvent = (data) => {
150
- if (data == null || typeof data !== "object") return false;
151
- if (!("event_id" in data) || typeof data.event_id !== "string") return false;
152
- if (!("created_at" in data) || typeof data.created_at !== "string") return false;
153
- if (!("category" in data) || typeof data.category !== "string" || !Object.values(__spiffy_ai_commerce_api_client.UserEventCategory).includes(data.category)) return false;
154
- return true;
155
- };
156
-
157
- //#endregion
158
- //#region src/application/models/guards/api/isApiProductSearchAttributes.ts
159
- const isApiProductSearchResponseAttributes = (attributes) => {
160
- if (attributes == null || typeof attributes !== "object") return false;
161
- if ("generated_query" in attributes && typeof attributes.generated_query !== "string") return false;
162
- if ("product_count" in attributes && attributes.product_count != null && typeof attributes.product_count !== "number") return false;
163
- return true;
164
- };
165
-
166
- //#endregion
167
- Object.defineProperty(exports, 'isApiPDPAttributes', {
168
- enumerable: true,
169
- get: function () {
170
- return isApiPDPAttributes;
171
- }
172
- });
173
- Object.defineProperty(exports, 'isApiProductResponseAttributes', {
174
- enumerable: true,
175
- get: function () {
176
- return isApiProductResponseAttributes;
177
- }
178
- });
179
- Object.defineProperty(exports, 'isApiProductSearchResponseAttributes', {
180
- enumerable: true,
181
- get: function () {
182
- return isApiProductSearchResponseAttributes;
183
- }
184
- });
185
- Object.defineProperty(exports, 'isApiQueryTypedAttributes', {
186
- enumerable: true,
187
- get: function () {
188
- return isApiQueryTypedAttributes;
189
- }
190
- });
191
- Object.defineProperty(exports, 'isApiResponse', {
192
- enumerable: true,
193
- get: function () {
194
- return isApiResponse;
195
- }
196
- });
197
- Object.defineProperty(exports, 'isApiReviewResponseAttributes', {
198
- enumerable: true,
199
- get: function () {
200
- return isApiReviewResponseAttributes;
201
- }
202
- });
203
- Object.defineProperty(exports, 'isApiReviewRichInformation', {
204
- enumerable: true,
205
- get: function () {
206
- return isApiReviewRichInformation;
207
- }
208
- });
209
- Object.defineProperty(exports, 'isApiSearchAttributes', {
210
- enumerable: true,
211
- get: function () {
212
- return isApiSearchAttributes;
213
- }
214
- });
215
- Object.defineProperty(exports, 'isApiSuggestionClickedAttributes', {
216
- enumerable: true,
217
- get: function () {
218
- return isApiSuggestionClickedAttributes;
219
- }
220
- });
221
- Object.defineProperty(exports, 'isApiTextResponseAttributes', {
222
- enumerable: true,
223
- get: function () {
224
- return isApiTextResponseAttributes;
225
- }
226
- });
227
- Object.defineProperty(exports, 'isApiUserEvent', {
228
- enumerable: true,
229
- get: function () {
230
- return isApiUserEvent;
231
- }
232
- });
233
- Object.defineProperty(exports, 'isSuggestion', {
234
- enumerable: true,
235
- get: function () {
236
- return isSuggestion;
237
- }
238
- });
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLURlVzZySGozLmNqcyIsIm5hbWVzIjpbImhhc1Byb3BlcnR5T2ZUeXBlIiwiUmVzcG9uc2VDYXRlZ29yeSIsImhhc1Byb3BlcnR5T2ZUeXBlIiwiU3VnZ2VzdGlvbkNhdGVnb3J5IiwiVXNlckV2ZW50Q2F0ZWdvcnkiXSwic291cmNlcyI6WyIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQRFBFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlRdWVyeVR5cGVkRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUmVzcG9uc2UudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU2VhcmNoRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbi50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVN1Z2dlc3Rpb25DbGlja2VkRXZlbnRBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVVzZXJFdmVudC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RTZWFyY2hBdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBEUEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlQRFBBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFBEUEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdwcm9kdWN0X2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5wcm9kdWN0X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncGFyZW50X3Byb2R1Y3RfaWQnIGluIGRhdGEgJiYgdHlwZW9mIGRhdGEucGFyZW50X3Byb2R1Y3RfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCd1cmwnIGluIGRhdGEgJiYgZGF0YS51cmwgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS51cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUXVlcnlUeXBlZEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlRdWVyeVR5cGVkQXR0cmlidXRlcyA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBRdWVyeVR5cGVkQXR0cmlidXRlcyA9PlxuICBkYXRhICE9IG51bGwgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdxdWVyeScgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5xdWVyeSA9PT0gJ3N0cmluZyc7XG4iLCJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZSwgUmVzcG9uc2VDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUmVzcG9uc2UgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUmVzcG9uc2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogZGF0YSBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdpZCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogaWQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnY2F0ZWdvcnknLCAnc3RyaW5nJykgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhSZXNwb25zZUNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFJlc3BvbnNlQ2F0ZWdvcnkpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVJlc3BvbnNlOiBjYXRlZ29yeSBpcyBub3QgYSBzdHJpbmcgb3Igbm90IGEgdmFsaWQgcmVzcG9uc2UgY2F0ZWdvcnknLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyBkYXRhIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjcmVhdGVkX2F0JywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBjcmVhdGVkX2F0IGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2F0dHJpYnV0ZXMnLCAnb2JqZWN0JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGF0dHJpYnV0ZXMgaXMgbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgaGFzUHJvcGVydHlPZlR5cGUgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFJlc3BvbnNlUHJvZHVjdEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0JyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdkZXNjcmlwdGlvbicsICdzdHJpbmcnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBkZXNjcmlwdGlvbiBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnaW1hZ2VfdXJsJywgJ3N0cmluZycsIHRydWUpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBpbWFnZV91cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3RpdGxlJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHRpdGxlIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd1cmwnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdvcmlnaW5hbF9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBvcmlnaW5hbF9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnc2FsZV9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBzYWxlX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdhdmVyYWdlX3JhdGluZycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBhdmVyYWdlX3JhdGluZyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbnVtYmVyX3Jldmlld3MnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbnVtYmVyX3Jldmlld3MgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ21ldGFkYXRhJywgJ2FycmF5JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbWV0YWRhdGEgaXMgbm90IGFuIGFycmF5JywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IEFwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPSAoXG4gIHJpY2hJbmZvOiB1bmtub3duLFxuKTogcmljaEluZm8gaXMgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uID0+IHtcbiAgaWYgKHJpY2hJbmZvID09IG51bGwgfHwgdHlwZW9mIHJpY2hJbmZvICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAnY29ucycgaW4gcmljaEluZm8gJiZcbiAgICAoIUFycmF5LmlzQXJyYXkocmljaEluZm8uY29ucykgfHwgcmljaEluZm8uY29ucy5zb21lKChjb24pID0+IHR5cGVvZiBjb24gIT09ICdzdHJpbmcnKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdwcm9zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5wcm9zKSB8fCByaWNoSW5mby5wcm9zLnNvbWUoKHBybykgPT4gdHlwZW9mIHBybyAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld19kYXRlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3X2RhdGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcl90aXRsZScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnJldmlld2VyX3RpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncHJvZHVjdF9mYW1pbGlhcml0eScgaW4gcmljaEluZm8gJiYgdHlwZW9mIHJpY2hJbmZvLnByb2R1Y3RfZmFtaWxpYXJpdHkgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5pbXBvcnQgeyBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiB9IGZyb20gJy4vaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24nO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgPSAob2JqOiB1bmtub3duKTogb2JqIGlzIEFwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9PiB7XG4gIGlmIChvYmogPT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgndGl0bGUnIGluIG9iaiAmJiBvYmoudGl0bGUgIT0gbnVsbCAmJiB0eXBlb2Ygb2JqLnRpdGxlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3JyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXcgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXdlcicgaW4gb2JqICYmIHR5cGVvZiBvYmoucmV2aWV3ZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdzdGFycycgaW4gb2JqICYmIHR5cGVvZiBvYmouc3RhcnMgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyaWNoX2luZm9ybWF0aW9uJyBpbiBvYmogJiYgIWlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uKG9iai5yaWNoX2luZm9ybWF0aW9uKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFNlYXJjaEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlTZWFyY2hBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFNlYXJjaEF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdzZWFyY2hfdGVybScgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuc2VhcmNoX3Rlcm0gIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgnc2VsZWN0ZWRfZmlsdGVycycgaW4gZGF0YSAmJiAhQXJyYXkuaXNBcnJheShkYXRhLnNlbGVjdGVkX2ZpbHRlcnMpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEhZGF0YS5zZWFyY2hfdGVybSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ3NlYXJjaF9yZXN1bHRzJyBpbiBkYXRhKSB8fFxuICAgICFBcnJheS5pc0FycmF5KGRhdGEuc2VhcmNoX3Jlc3VsdHMpIHx8XG4gICAgIWRhdGEuc2VhcmNoX3Jlc3VsdHMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSAnc3RyaW5nJylcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHtcbiAgU3VnZ2VzdGlvbiBhcyBDb21tZXJjZVN1Z2dlc3Rpb24sXG4gIFN1Z2dlc3Rpb25DYXRlZ29yeSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IGlzU3VnZ2VzdGlvbiA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBDb21tZXJjZVN1Z2dlc3Rpb24gPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdpZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ2NhdGVnb3J5JyBpbiBkYXRhKSB8fFxuICAgIHR5cGVvZiBkYXRhLmNhdGVnb3J5ICE9PSAnc3RyaW5nJyB8fFxuICAgICFPYmplY3QudmFsdWVzKFN1Z2dlc3Rpb25DYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBTdWdnZXN0aW9uQ2F0ZWdvcnkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjb250ZW50JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jb250ZW50ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnaXNfYW5zd2VyJyBpbiBkYXRhICYmIGRhdGEuaXNfYW5zd2VyICE9IG51bGwgJiYgdHlwZW9mIGRhdGEuaXNfYW5zd2VyICE9PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgPSAoXG4gIGRhdGE6IHVua25vd24sXG4pOiBkYXRhIGlzIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyA9PlxuICBkYXRhICE9IG51bGwgJiZcbiAgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmXG4gICdzdWdnZXN0aW9uX2lkJyBpbiBkYXRhICYmXG4gIHR5cGVvZiBkYXRhLnN1Z2dlc3Rpb25faWQgPT09ICdzdHJpbmcnO1xuIiwiaW1wb3J0IHsgQXBpVGV4dFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzID0gKFxuICBhdHRyaWJ1dGVzOiB1bmtub3duLFxuKTogYXR0cmlidXRlcyBpcyBBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzID0+XG4gIHR5cGVvZiBhdHRyaWJ1dGVzID09PSAnb2JqZWN0JyAmJlxuICBhdHRyaWJ1dGVzICE9IG51bGwgJiZcbiAgJ2NvbnRlbnQnIGluIGF0dHJpYnV0ZXMgJiZcbiAgdHlwZW9mIGF0dHJpYnV0ZXMuY29udGVudCA9PT0gJ3N0cmluZyc7XG4iLCJpbXBvcnQgeyBVc2VyRXZlbnQsIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IGlzQXBpVXNlckV2ZW50ID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFVzZXJFdmVudCA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2V2ZW50X2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5ldmVudF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnY3JlYXRlZF9hdCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuY3JlYXRlZF9hdCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoVXNlckV2ZW50Q2F0ZWdvcnkpLmluY2x1ZGVzKGRhdGEuY2F0ZWdvcnkgYXMgVXNlckV2ZW50Q2F0ZWdvcnkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlQcm9kdWN0U2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzID0gKFxuICBhdHRyaWJ1dGVzOiB1bmtub3duLFxuKTogYXR0cmlidXRlcyBpcyBQcm9kdWN0U2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCB8fCB0eXBlb2YgYXR0cmlidXRlcyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ2dlbmVyYXRlZF9xdWVyeScgaW4gYXR0cmlidXRlcyAmJiB0eXBlb2YgYXR0cmlidXRlcy5nZW5lcmF0ZWRfcXVlcnkgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdwcm9kdWN0X2NvdW50JyBpbiBhdHRyaWJ1dGVzICYmXG4gICAgYXR0cmlidXRlcy5wcm9kdWN0X2NvdW50ICE9IG51bGwgJiZcbiAgICB0eXBlb2YgYXR0cmlidXRlcy5wcm9kdWN0X2NvdW50ICE9PSAnbnVtYmVyJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQSxNQUFhLHNCQUFzQixTQUF5QztBQUMxRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsU0FDbEMsUUFBTztBQUdULEtBQUksRUFBRSxnQkFBZ0IsU0FBUyxPQUFPLEtBQUssZUFBZSxTQUN4RCxRQUFPO0FBR1QsS0FBSSx1QkFBdUIsUUFBUSxPQUFPLEtBQUssc0JBQXNCLFNBQ25FLFFBQU87QUFHVCxLQUFJLFNBQVMsUUFBUSxLQUFLLE9BQU8sUUFBUSxPQUFPLEtBQUssUUFBUSxTQUMzRCxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNqQlQsTUFBYSw2QkFBNkIsU0FDeEMsUUFBUSxRQUFRLE9BQU8sU0FBUyxZQUFZLFdBQVcsUUFBUSxPQUFPLEtBQUssVUFBVTs7OztBQ0N2RixNQUFhLGlCQUFpQixTQUFvQztBQUNoRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxnQ0FBTyxTQUFTLGdEQUFnRCxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ3BGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSxnQ0FBa0IsTUFBTSxNQUFNLFNBQVMsRUFBRTtBQUM1QyxnQ0FBTyxTQUFTLHFDQUFxQyxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ3pFLFNBQU87O0FBR1QsS0FDRSxDQUFDQSxnQ0FBa0IsTUFBTSxZQUFZLFNBQVMsSUFDOUMsQ0FBQyxPQUFPLE9BQU9DLGlEQUFpQixDQUFDLFNBQVMsS0FBSyxTQUE2QixFQUM1RTtBQUNBLGdDQUFPLFNBQ0wsNEVBQ0EsUUFDQSxFQUFFLE1BQU0sQ0FDVDtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDRCxnQ0FBa0IsTUFBTSxjQUFjLFNBQVMsRUFBRTtBQUNwRCxnQ0FBTyxTQUFTLDZDQUE2QyxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ2pGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSxnQ0FBa0IsTUFBTSxjQUFjLFVBQVUsS0FBSyxFQUFFO0FBQzFELGdDQUFPLFNBQVMsOENBQThDLFFBQVcsRUFBRSxNQUFNLENBQUM7QUFDbEYsU0FBTzs7QUFHVCxRQUFPOzs7OztBQ2pDVCxNQUFhLGtDQUNYLGVBQzRDO0FBQzVDLEtBQUksY0FBYyxRQUFRLE9BQU8sZUFBZSxVQUFVO0FBQ3hELGdDQUFPLFNBQ0wsdUVBQ0EsUUFDQSxFQUNFLFlBQ0QsQ0FDRjtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDRSxnQ0FBa0IsWUFBWSxlQUFlLFVBQVUsS0FBSyxFQUFFO0FBQ2pFLGdDQUFPLFNBQVMsK0RBQStELFFBQVcsRUFDeEYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUNFLENBQUNBLGdDQUFrQixZQUFZLGFBQWEsVUFBVSxLQUFLLEVBQzNEO0FBQ0EsZ0NBQU8sU0FBUyw2REFBNkQsUUFBVyxFQUN0RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsZ0NBQWtCLFlBQVksU0FBUyxTQUFTLEVBQUU7QUFDckQsZ0NBQU8sU0FBUyx5REFBeUQsUUFBVyxFQUNsRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsZ0NBQWtCLFlBQVksT0FBTyxTQUFTLEVBQUU7QUFDbkQsZ0NBQU8sU0FBUyx1REFBdUQsUUFBVyxFQUNoRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsZ0NBQWtCLFlBQVksa0JBQWtCLFVBQVUsS0FBSyxFQUFFO0FBQ3BFLGdDQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLGdDQUFrQixZQUFZLGNBQWMsVUFBVSxLQUFLLEVBQUU7QUFDaEUsZ0NBQU8sU0FBUyw4REFBOEQsUUFBVyxFQUN2RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsZ0NBQWtCLFlBQVksa0JBQWtCLFVBQVUsS0FBSyxFQUFFO0FBQ3BFLGdDQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLGdDQUFrQixZQUFZLGtCQUFrQixVQUFVLEtBQUssRUFBRTtBQUNwRSxnQ0FBTyxTQUFTLGtFQUFrRSxRQUFXLEVBQzNGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSxnQ0FBa0IsWUFBWSxZQUFZLFNBQVMsS0FBSyxFQUFFO0FBQzdELGdDQUFPLFNBQVMsNERBQTRELFFBQVcsRUFDckYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxRQUFPOzs7OztBQ2pGVCxNQUFhLDhCQUNYLGFBQ3lDO0FBQ3pDLEtBQUksWUFBWSxRQUFRLE9BQU8sYUFBYSxTQUMxQyxRQUFPO0FBR1QsS0FDRSxVQUFVLGFBQ1QsQ0FBQyxNQUFNLFFBQVEsU0FBUyxLQUFLLElBQUksU0FBUyxLQUFLLE1BQU0sUUFBUSxPQUFPLFFBQVEsU0FBUyxFQUV0RixRQUFPO0FBR1QsS0FDRSxVQUFVLGFBQ1QsQ0FBQyxNQUFNLFFBQVEsU0FBUyxLQUFLLElBQUksU0FBUyxLQUFLLE1BQU0sUUFBUSxPQUFPLFFBQVEsU0FBUyxFQUV0RixRQUFPO0FBR1QsS0FBSSxpQkFBaUIsWUFBWSxPQUFPLFNBQVMsZ0JBQWdCLFNBQy9ELFFBQU87QUFHVCxLQUFJLG9CQUFvQixZQUFZLE9BQU8sU0FBUyxtQkFBbUIsU0FDckUsUUFBTztBQUdULEtBQUkseUJBQXlCLFlBQVksT0FBTyxTQUFTLHdCQUF3QixTQUMvRSxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNoQ1QsTUFBYSxpQ0FBaUMsUUFBcUQ7QUFDakcsS0FBSSxPQUFPLFFBQVEsT0FBTyxRQUFRLFNBQ2hDLFFBQU87QUFHVCxLQUFJLFdBQVcsT0FBTyxJQUFJLFNBQVMsUUFBUSxPQUFPLElBQUksVUFBVSxTQUM5RCxRQUFPO0FBR1QsS0FBSSxZQUFZLE9BQU8sT0FBTyxJQUFJLFdBQVcsU0FDM0MsUUFBTztBQUdULEtBQUksY0FBYyxPQUFPLE9BQU8sSUFBSSxhQUFhLFNBQy9DLFFBQU87QUFHVCxLQUFJLFdBQVcsT0FBTyxPQUFPLElBQUksVUFBVSxTQUN6QyxRQUFPO0FBR1QsS0FBSSxzQkFBc0IsT0FBTyxDQUFDLDJCQUEyQixJQUFJLGlCQUFpQixDQUNoRixRQUFPO0FBR1QsUUFBTzs7Ozs7QUMxQlQsTUFBYSx5QkFBeUIsU0FBNEM7QUFDaEYsS0FBSSxRQUFRLFFBQVEsT0FBTyxTQUFTLFNBQ2xDLFFBQU87QUFHVCxLQUFJLEVBQUUsaUJBQWlCLFNBQVMsT0FBTyxLQUFLLGdCQUFnQixTQUMxRCxRQUFPO0FBRVQsS0FBSSxzQkFBc0IsUUFBUSxDQUFDLE1BQU0sUUFBUSxLQUFLLGlCQUFpQixDQUNyRSxRQUFPO0FBR1QsS0FBSSxDQUFDLENBQUMsS0FBSyxZQUNULFFBQU87QUFHVCxLQUNFLEVBQUUsb0JBQW9CLFNBQ3RCLENBQUMsTUFBTSxRQUFRLEtBQUssZUFBZSxJQUNuQyxDQUFDLEtBQUssZUFBZSxPQUFPLE1BQU0sT0FBTyxNQUFNLFNBQVMsQ0FFeEQsUUFBTztBQUdULFFBQU87Ozs7O0FDckJULE1BQWEsZ0JBQWdCLFNBQThDO0FBQ3pFLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxTQUNsQyxRQUFPO0FBR1QsS0FBSSxFQUFFLFFBQVEsU0FBUyxPQUFPLEtBQUssT0FBTyxTQUN4QyxRQUFPO0FBR1QsS0FDRSxFQUFFLGNBQWMsU0FDaEIsT0FBTyxLQUFLLGFBQWEsWUFDekIsQ0FBQyxPQUFPLE9BQU9DLG1EQUFtQixDQUFDLFNBQVMsS0FBSyxTQUErQixDQUVoRixRQUFPO0FBR1QsS0FBSSxFQUFFLGdCQUFnQixTQUFTLE9BQU8sS0FBSyxlQUFlLFNBQ3hELFFBQU87QUFHVCxLQUFJLEVBQUUsYUFBYSxTQUFTLE9BQU8sS0FBSyxZQUFZLFNBQ2xELFFBQU87QUFHVCxLQUFJLGVBQWUsUUFBUSxLQUFLLGFBQWEsUUFBUSxPQUFPLEtBQUssY0FBYyxVQUM3RSxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNoQ1QsTUFBYSxvQ0FDWCxTQUVBLFFBQVEsUUFDUixPQUFPLFNBQVMsWUFDaEIsbUJBQW1CLFFBQ25CLE9BQU8sS0FBSyxrQkFBa0I7Ozs7QUNOaEMsTUFBYSwrQkFDWCxlQUVBLE9BQU8sZUFBZSxZQUN0QixjQUFjLFFBQ2QsYUFBYSxjQUNiLE9BQU8sV0FBVyxZQUFZOzs7O0FDTmhDLE1BQWEsa0JBQWtCLFNBQXFDO0FBQ2xFLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxTQUNsQyxRQUFPO0FBR1QsS0FBSSxFQUFFLGNBQWMsU0FBUyxPQUFPLEtBQUssYUFBYSxTQUNwRCxRQUFPO0FBR1QsS0FBSSxFQUFFLGdCQUFnQixTQUFTLE9BQU8sS0FBSyxlQUFlLFNBQ3hELFFBQU87QUFHVCxLQUNFLEVBQUUsY0FBYyxTQUNoQixPQUFPLEtBQUssYUFBYSxZQUN6QixDQUFDLE9BQU8sT0FBT0Msa0RBQWtCLENBQUMsU0FBUyxLQUFLLFNBQThCLENBRTlFLFFBQU87QUFHVCxRQUFPOzs7OztBQ3JCVCxNQUFhLHdDQUNYLGVBQ2tEO0FBQ2xELEtBQUksY0FBYyxRQUFRLE9BQU8sZUFBZSxTQUM5QyxRQUFPO0FBR1QsS0FBSSxxQkFBcUIsY0FBYyxPQUFPLFdBQVcsb0JBQW9CLFNBQzNFLFFBQU87QUFHVCxLQUNFLG1CQUFtQixjQUNuQixXQUFXLGlCQUFpQixRQUM1QixPQUFPLFdBQVcsa0JBQWtCLFNBRXBDLFFBQU87QUFHVCxRQUFPIn0=
@@ -1 +0,0 @@
1
- require('../../../utilityTypes-BGbL2WTP.cjs');
@@ -1,2 +0,0 @@
1
- import { CamelCasedPropertiesDeep } from "../../../index-CESxqFso.cjs";
2
- export { CamelCasedPropertiesDeep };
@@ -1,2 +0,0 @@
1
- import { CamelCasedPropertiesDeep } from "../../../index-Dfwnna1j.js";
2
- export { CamelCasedPropertiesDeep };
@@ -1,3 +0,0 @@
1
- import "../../../utilityTypes-B2KuRn37.js";
2
-
3
- export { };
@@ -1,3 +0,0 @@
1
- const require_variantInfo = require('../../../variantInfo-DpLn4nHz.cjs');
2
-
3
- exports.VariantTypeEnum = require_variantInfo.VariantTypeEnum;
@@ -1,2 +0,0 @@
1
- import { PDPVariantInfo, PLPVariantInfo, PageVisitVariantInfo, VariantInfo, VariantType, VariantTypeEnum } from "../../../index-Cyq5HiC0.cjs";
2
- export { PDPVariantInfo, PLPVariantInfo, PageVisitVariantInfo, VariantInfo, VariantType, VariantTypeEnum };
@@ -1,2 +0,0 @@
1
- import { PDPVariantInfo, PLPVariantInfo, PageVisitVariantInfo, VariantInfo, VariantType, VariantTypeEnum } from "../../../index-DazMsEy_.js";
2
- export { PDPVariantInfo, PLPVariantInfo, PageVisitVariantInfo, VariantInfo, VariantType, VariantTypeEnum };
@@ -1,3 +0,0 @@
1
- import { VariantTypeEnum } from "../../../variantInfo-BfKlkaWU.js";
2
-
3
- export { VariantTypeEnum };
@@ -1,5 +0,0 @@
1
- const require_types = require('../../types-CxObxLKs.cjs');
2
-
3
- exports.ChatSearchSortOverrides = require_types.ChatSearchSortOverrides;
4
- exports.ProductSorting = require_types.ProductSorting;
5
- exports.ProductSortingNames = require_types.ProductSortingNames;
@@ -1,2 +0,0 @@
1
- import { ChatSearchFilter, ChatSearchFilterItem, ChatSearchSortModalProps, ChatSearchSortOverrides, ChatSearchSortProps, ChatSearchStateType, ProductSorting, ProductSortingNames, SortOption } from "../../types-CKMMb_gX.cjs";
2
- export { ChatSearchFilter, ChatSearchFilterItem, ChatSearchSortModalProps, ChatSearchSortOverrides, ChatSearchSortProps, ChatSearchStateType, ProductSorting, ProductSortingNames, SortOption };
@@ -1,2 +0,0 @@
1
- import { ChatSearchFilter, ChatSearchFilterItem, ChatSearchSortModalProps, ChatSearchSortOverrides, ChatSearchSortProps, ChatSearchStateType, ProductSorting, ProductSortingNames, SortOption } from "../../types-BCz-hOvv.js";
2
- export { ChatSearchFilter, ChatSearchFilterItem, ChatSearchSortModalProps, ChatSearchSortOverrides, ChatSearchSortProps, ChatSearchStateType, ProductSorting, ProductSortingNames, SortOption };
@@ -1,3 +0,0 @@
1
- import { ChatSearchSortOverrides, ProductSorting, ProductSortingNames } from "../../types-CS0Hrzja.js";
2
-
3
- export { ChatSearchSortOverrides, ProductSorting, ProductSortingNames };
@@ -1,38 +0,0 @@
1
- import { cdnUrlAtom } from "./enviveConfig-DZBohDpc.js";
2
- import React, { createContext, useCallback, useContext, useMemo } from "react";
3
- import { useAtomValue } from "jotai";
4
- import { jsx } from "react/jsx-runtime";
5
-
6
- //#region src/contexts/cdnContext/cdnContext.tsx
7
- const CdnContext = createContext(null);
8
- const CdnProvider = ({ children }) => {
9
- const cdnUrl = useAtomValue(cdnUrlAtom) || "https://cdn.spiffy.ai/other";
10
- const getCdnBasePath = useCallback(() => {
11
- return cdnUrl;
12
- }, [cdnUrl]);
13
- const getAssetURL = useCallback((assetName, orgShortName) => {
14
- return `${getCdnBasePath()}/assets/${orgShortName}/${assetName}`;
15
- }, [getCdnBasePath]);
16
- const value = useMemo(() => ({
17
- cdnUrl,
18
- getCdnBasePath,
19
- getAssetURL
20
- }), [
21
- cdnUrl,
22
- getCdnBasePath,
23
- getAssetURL
24
- ]);
25
- return /* @__PURE__ */ jsx(CdnContext.Provider, {
26
- value,
27
- children
28
- });
29
- };
30
- const useCdn = () => {
31
- const context = useContext(CdnContext);
32
- if (!context) throw new Error("useCdn must be used within a CdnProvider");
33
- return context;
34
- };
35
-
36
- //#endregion
37
- export { CdnProvider, useCdn };
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RuQ29udGV4dC1DRUdCVlZCVS5qcyIsIm5hbWVzIjpbIkNkblByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvY2RuQ29udGV4dC9jZG5Db250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHsgY2RuVXJsQXRvbSB9IGZyb20gXCIuLi8uLi9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnXCI7XG5cbmludGVyZmFjZSBDZG5Db250ZXh0VHlwZSB7XG4gIGNkblVybDogc3RyaW5nO1xuICBnZXRDZG5CYXNlUGF0aDogKCkgPT4gc3RyaW5nO1xuICBnZXRBc3NldFVSTDogKGFzc2V0TmFtZTogc3RyaW5nLCBvcmdTaG9ydE5hbWU6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5jb25zdCBDZG5Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxDZG5Db250ZXh0VHlwZSB8IG51bGw+KG51bGwpO1xuXG5leHBvcnQgY29uc3QgQ2RuUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7XG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCBjZG5VcmxBdG9tVmFsdWUgPSB1c2VBdG9tVmFsdWUoY2RuVXJsQXRvbSk7XG4gIGNvbnN0IGNkblVybCA9IGNkblVybEF0b21WYWx1ZSB8fCBcImh0dHBzOi8vY2RuLnNwaWZmeS5haS9vdGhlclwiO1xuXG4gIGNvbnN0IGdldENkbkJhc2VQYXRoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJldHVybiBjZG5Vcmw7XG4gIH0sIFtjZG5VcmxdKTtcblxuICBjb25zdCBnZXRBc3NldFVSTCA9IHVzZUNhbGxiYWNrKFxuICAgIChhc3NldE5hbWU6IHN0cmluZywgb3JnU2hvcnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBgJHtnZXRDZG5CYXNlUGF0aCgpfS9hc3NldHMvJHtvcmdTaG9ydE5hbWV9LyR7YXNzZXROYW1lfWA7XG4gICAgfSxcbiAgICBbZ2V0Q2RuQmFzZVBhdGhdXG4gICk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBjZG5VcmwsXG4gICAgICBnZXRDZG5CYXNlUGF0aCxcbiAgICAgIGdldEFzc2V0VVJMLFxuICAgIH0pLFxuICAgIFtjZG5VcmwsIGdldENkbkJhc2VQYXRoLCBnZXRBc3NldFVSTF1cbiAgKTtcblxuICByZXR1cm4gPENkbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9DZG5Db250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VDZG4gPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KENkbkNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VDZG4gbXVzdCBiZSB1c2VkIHdpdGhpbiBhIENkblByb3ZpZGVyXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBVUEsTUFBTSxhQUFhLGNBQXFDLEtBQUs7QUFFN0QsTUFBYUEsZUFBd0QsRUFDbkUsZUFDSTtDQUVKLE1BQU0sU0FEa0IsYUFBYSxXQUFXLElBQ2Q7Q0FFbEMsTUFBTSxpQkFBaUIsa0JBQWtCO0FBQ3ZDLFNBQU87SUFDTixDQUFDLE9BQU8sQ0FBQztDQUVaLE1BQU0sY0FBYyxhQUNqQixXQUFtQixpQkFBeUI7QUFDM0MsU0FBTyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsYUFBYSxHQUFHO0lBRXZELENBQUMsZUFBZSxDQUNqQjtDQUVELE1BQU0sUUFBUSxlQUNMO0VBQ0w7RUFDQTtFQUNBO0VBQ0QsR0FDRDtFQUFDO0VBQVE7RUFBZ0I7RUFBWSxDQUN0QztBQUVELFFBQU8sb0JBQUMsV0FBVztFQUFnQjtFQUFRO0dBQStCOztBQUc1RSxNQUFhLGVBQWU7Q0FDMUIsTUFBTSxVQUFVLFdBQVcsV0FBVztBQUN0QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSwyQ0FBMkM7QUFFN0QsUUFBTyJ9