@envive-ai/react-hooks 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/AmplitudeOperations-CNyxbBY6.cjs +0 -0
  2. package/dist/AmplitudeOperations-Oa2efWtF.js +1 -0
  3. package/dist/NewOrgConfig-CbqBTHzG.js +10 -0
  4. package/dist/NewOrgConfig-sLsJcSn8.cjs +15 -0
  5. package/dist/SystemSettingsContext-BHi2YaQp.cjs +20 -0
  6. package/dist/SystemSettingsContext-BLRfTbCC.js +13 -0
  7. package/dist/TrackComponentVisibleEvent-CftWp8QR.js +52 -0
  8. package/dist/TrackComponentVisibleEvent-Dag8vFhb.cjs +59 -0
  9. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  10. package/dist/amplitudeContext-BhhYPJSL.d.ts +52 -0
  11. package/dist/amplitudeContext-CwPtBPhg.js +287 -0
  12. package/dist/amplitudeContext-DTC6maR0.cjs +309 -0
  13. package/dist/api-Bc3_julZ.cjs +239 -0
  14. package/dist/api-D9gmGNAV.js +166 -0
  15. package/dist/app-CoQ1nC-j.js +132 -0
  16. package/dist/app-DN72spgQ.cjs +178 -0
  17. package/dist/application/models/graphql/index.cjs +5 -0
  18. package/dist/application/models/graphql/index.d.cts +2 -0
  19. package/dist/application/models/graphql/index.d.ts +2 -0
  20. package/dist/application/models/graphql/index.js +4 -0
  21. package/dist/application/models/guards/api/index.cjs +16 -0
  22. package/dist/application/models/guards/api/index.d.cts +3 -0
  23. package/dist/application/models/guards/api/index.d.ts +3 -0
  24. package/dist/application/models/guards/api/index.js +5 -0
  25. package/dist/application/models/guards/utils.cjs +3 -0
  26. package/dist/application/models/guards/utils.d.cts +2 -0
  27. package/dist/application/models/guards/utils.d.ts +2 -0
  28. package/dist/application/models/guards/utils.js +3 -0
  29. package/dist/application/models/index.cjs +69 -0
  30. package/dist/application/models/index.d.cts +12 -0
  31. package/dist/application/models/index.d.ts +12 -0
  32. package/dist/application/models/index.js +12 -0
  33. package/dist/application/models/utilityTypes/index.cjs +1 -0
  34. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  35. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  36. package/dist/application/models/utilityTypes/index.js +3 -0
  37. package/dist/application/models/variantInfo/index.cjs +1 -0
  38. package/dist/application/models/variantInfo/index.d.cts +2 -0
  39. package/dist/application/models/variantInfo/index.d.ts +2 -0
  40. package/dist/application/models/variantInfo/index.js +3 -0
  41. package/dist/application/utils/index.cjs +48 -0
  42. package/dist/application/utils/index.d.cts +263 -0
  43. package/dist/application/utils/index.d.ts +263 -0
  44. package/dist/application/utils/index.js +22 -0
  45. package/dist/atomStore-BuopbV9k.js +32 -0
  46. package/dist/atomStore-CZKe3itM.cjs +58 -0
  47. package/dist/atomStore-CdFkEC8s.cjs +0 -0
  48. package/dist/atomStore-DKlaDbMx.js +1 -0
  49. package/dist/atoms/app/index.cjs +20 -0
  50. package/dist/atoms/app/index.d.cts +39 -0
  51. package/dist/atoms/app/index.d.ts +39 -0
  52. package/dist/atoms/app/index.js +16 -0
  53. package/dist/atoms/atomStore/index.cjs +7 -0
  54. package/dist/atoms/atomStore/index.d.cts +24 -0
  55. package/dist/atoms/atomStore/index.d.ts +24 -0
  56. package/dist/atoms/atomStore/index.js +4 -0
  57. package/dist/atoms/chat/index.cjs +52 -0
  58. package/dist/atoms/chat/index.d.cts +163 -0
  59. package/dist/atoms/chat/index.d.ts +163 -0
  60. package/dist/atoms/chat/index.js +23 -0
  61. package/dist/atoms/globalSearch/index.cjs +6 -0
  62. package/dist/atoms/globalSearch/index.d.cts +24 -0
  63. package/dist/atoms/globalSearch/index.d.ts +24 -0
  64. package/dist/atoms/globalSearch/index.js +3 -0
  65. package/dist/atoms/org/index.cjs +19 -0
  66. package/dist/atoms/org/index.d.cts +59 -0
  67. package/dist/atoms/org/index.d.ts +59 -0
  68. package/dist/atoms/org/index.js +6 -0
  69. package/dist/atoms/search/index.cjs +60 -0
  70. package/dist/atoms/search/index.d.cts +14 -0
  71. package/dist/atoms/search/index.d.ts +14 -0
  72. package/dist/atoms/search/index.js +30 -0
  73. package/dist/atoms/search/types.cjs +5 -0
  74. package/dist/atoms/search/types.d.cts +2 -0
  75. package/dist/atoms/search/types.d.ts +2 -0
  76. package/dist/atoms/search/types.js +3 -0
  77. package/dist/atoms/search/utils.cjs +3 -0
  78. package/dist/atoms/search/utils.d.cts +5 -0
  79. package/dist/atoms/search/utils.d.ts +5 -0
  80. package/dist/atoms/search/utils.js +3 -0
  81. package/dist/cdnContext-ShKWLgKA.cjs +53 -0
  82. package/dist/cdnContext-pfrZ6lfu.js +38 -0
  83. package/dist/chat-BubCW1as.cjs +152 -0
  84. package/dist/chat-CV6MXeID.js +26 -0
  85. package/dist/chat-DQq8RR5E.js +258 -0
  86. package/dist/chat-KkJYXdfZ.cjs +394 -0
  87. package/dist/chatElementDisplayLocation-BwiXrkN7.d.ts +25 -0
  88. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  89. package/dist/chatSearch-OgBQtu3u.cjs +418 -0
  90. package/dist/chatSearch-xO4HYEBI.js +295 -0
  91. package/dist/chatState-CTwPHEJG.cjs +120 -0
  92. package/dist/chatState-CkMgQSse.js +34 -0
  93. package/dist/chunk-CUT6urMc.cjs +30 -0
  94. package/dist/commerce-api-BVy49Qk8.js +311 -0
  95. package/dist/commerce-api-Pclc9ZBQ.cjs +318 -0
  96. package/dist/components-B4T3Uzth.js +11 -0
  97. package/dist/components-Cw9WjA6g.cjs +29 -0
  98. package/dist/config/locators/components/chat/index.cjs +23 -0
  99. package/dist/config/locators/components/chat/index.d.cts +2 -0
  100. package/dist/config/locators/components/chat/index.d.ts +2 -0
  101. package/dist/config/locators/components/chat/index.js +3 -0
  102. package/dist/config/locators/components/chat/variants/index.cjs +29 -0
  103. package/dist/config/locators/components/chat/variants/index.d.cts +16 -0
  104. package/dist/config/locators/components/chat/variants/index.d.ts +16 -0
  105. package/dist/config/locators/components/chat/variants/index.js +17 -0
  106. package/dist/config/locators/components/index.cjs +5 -0
  107. package/dist/config/locators/components/index.d.cts +2 -0
  108. package/dist/config/locators/components/index.d.ts +2 -0
  109. package/dist/config/locators/components/index.js +3 -0
  110. package/dist/config/locators/components/search/index.cjs +13 -0
  111. package/dist/config/locators/components/search/index.d.cts +8 -0
  112. package/dist/config/locators/components/search/index.d.ts +8 -0
  113. package/dist/config/locators/components/search/index.js +9 -0
  114. package/dist/config/locators/index.cjs +67 -0
  115. package/dist/config/locators/index.d.cts +25 -0
  116. package/dist/config/locators/index.d.ts +25 -0
  117. package/dist/config/locators/index.js +26 -0
  118. package/dist/contexts/amplitudeContext/index.cjs +22 -0
  119. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  120. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  121. package/dist/contexts/amplitudeContext/index.js +20 -0
  122. package/dist/contexts/cdnContext/index.cjs +7 -0
  123. package/dist/contexts/cdnContext/index.d.cts +15 -0
  124. package/dist/contexts/cdnContext/index.d.ts +15 -0
  125. package/dist/contexts/cdnContext/index.js +6 -0
  126. package/dist/contexts/chatContext/index.cjs +331 -0
  127. package/dist/contexts/chatContext/index.d.cts +15 -0
  128. package/dist/contexts/chatContext/index.d.ts +15 -0
  129. package/dist/contexts/chatContext/index.js +324 -0
  130. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  131. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  132. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  133. package/dist/contexts/enviveConfigContext/index.js +6 -0
  134. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  135. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  136. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  137. package/dist/contexts/enviveCssContext/index.js +63 -0
  138. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  139. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  140. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  141. package/dist/contexts/featureFlagContext/index.js +103 -0
  142. package/dist/contexts/featureFlagServiceContext/index.cjs +6 -0
  143. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  144. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  145. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  146. package/dist/contexts/graphqlContext/index.cjs +16 -0
  147. package/dist/contexts/graphqlContext/index.d.cts +14 -0
  148. package/dist/contexts/graphqlContext/index.d.ts +14 -0
  149. package/dist/contexts/graphqlContext/index.js +15 -0
  150. package/dist/contexts/localStorageContext/index.cjs +6 -0
  151. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  152. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  153. package/dist/contexts/localStorageContext/index.js +4 -0
  154. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  155. package/dist/contexts/newOrgConfigContext/index.d.cts +15 -0
  156. package/dist/contexts/newOrgConfigContext/index.d.ts +15 -0
  157. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  158. package/dist/contexts/searchContext/index.cjs +24 -0
  159. package/dist/contexts/searchContext/index.d.cts +16 -0
  160. package/dist/contexts/searchContext/index.d.ts +16 -0
  161. package/dist/contexts/searchContext/index.js +23 -0
  162. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  163. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  164. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  165. package/dist/contexts/sessionStorageContext/index.js +4 -0
  166. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  167. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  168. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  169. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  170. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  171. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  172. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  173. package/dist/contexts/systemSettingsContext/index.js +6 -0
  174. package/dist/contexts/types.cjs +7 -0
  175. package/dist/contexts/types.d.cts +4 -0
  176. package/dist/contexts/types.d.ts +4 -0
  177. package/dist/contexts/types.js +3 -0
  178. package/dist/contexts/userIdentityContext/index.cjs +27 -0
  179. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  180. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  181. package/dist/contexts/userIdentityContext/index.js +26 -0
  182. package/dist/domObserver-B19-69gW.js +285 -0
  183. package/dist/domObserver-CwieVNgj.cjs +304 -0
  184. package/dist/enviveConfig-BSfyz_pm.js +62 -0
  185. package/dist/enviveConfig-D8vcVPWD.cjs +130 -0
  186. package/dist/enviveConfigContext-C8cCcdKU.cjs +60 -0
  187. package/dist/enviveConfigContext-CJqpRSKu.js +45 -0
  188. package/dist/events/index.cjs +4 -0
  189. package/dist/events/index.d.cts +46 -0
  190. package/dist/events/index.d.ts +46 -0
  191. package/dist/events/index.js +3 -0
  192. package/dist/events-BHJJjPDN.js +78 -0
  193. package/dist/events-B_fJZf9E.cjs +90 -0
  194. package/dist/featureFlagServiceContext-CUBoBV2i.cjs +56 -0
  195. package/dist/featureFlagServiceContext-Cpw8omUr.d.ts +23 -0
  196. package/dist/featureFlagServiceContext-Cvn6fcdB.d.cts +23 -0
  197. package/dist/featureFlagServiceContext-Dg8okVk1.js +42 -0
  198. package/dist/featureGates-Blx10fwB.js +27 -0
  199. package/dist/featureGates-DcZNrUma.cjs +33 -0
  200. package/dist/frontendConfig-DnMZfvcA.d.cts +857 -0
  201. package/dist/frontendConfig-Dqxbqo8G.d.ts +857 -0
  202. package/dist/globalSearch-B8jHLScz.js +14 -0
  203. package/dist/globalSearch-JJI1Fijh.cjs +39 -0
  204. package/dist/graphql-B9HhDXYt.cjs +53 -0
  205. package/dist/graphql-W7GMIHUu.js +36 -0
  206. package/dist/graphqlConfig-BWqLgZ6v.cjs +39 -0
  207. package/dist/graphqlConfig-Dn-hO_SQ.js +14 -0
  208. package/dist/graphqlContext-8kw4aLRc.js +96 -0
  209. package/dist/graphqlContext-ChRuFVxO.d.cts +28 -0
  210. package/dist/graphqlContext-EhYZM1v_.d.ts +28 -0
  211. package/dist/graphqlContext-Fwc6Upvh.cjs +111 -0
  212. package/dist/hooks/AmplitudeOperations/index.cjs +22 -0
  213. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  214. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  215. package/dist/hooks/AmplitudeOperations/index.js +22 -0
  216. package/dist/hooks/AppDetails/index.cjs +19 -0
  217. package/dist/hooks/AppDetails/index.d.cts +27 -0
  218. package/dist/hooks/AppDetails/index.d.ts +27 -0
  219. package/dist/hooks/AppDetails/index.js +19 -0
  220. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  221. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  222. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  223. package/dist/hooks/BlockBackButton/index.js +27 -0
  224. package/dist/hooks/CdnOperations/index.cjs +24 -0
  225. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  226. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  227. package/dist/hooks/CdnOperations/index.js +22 -0
  228. package/dist/hooks/ChatToggle/index.cjs +64 -0
  229. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  230. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  231. package/dist/hooks/ChatToggle/index.js +62 -0
  232. package/dist/hooks/ChatToggleAnalytics/index.cjs +38 -0
  233. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  234. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  235. package/dist/hooks/ChatToggleAnalytics/index.js +36 -0
  236. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  237. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  238. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  239. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  240. package/dist/hooks/Debounce/index.cjs +3 -0
  241. package/dist/hooks/Debounce/index.d.cts +5 -0
  242. package/dist/hooks/Debounce/index.d.ts +5 -0
  243. package/dist/hooks/Debounce/index.js +3 -0
  244. package/dist/hooks/ElementObserver/index.cjs +179 -0
  245. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  246. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  247. package/dist/hooks/ElementObserver/index.js +177 -0
  248. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  249. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  250. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  251. package/dist/hooks/GrabAndScroll/index.js +97 -0
  252. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  253. package/dist/hooks/GraphQLConfig/index.d.cts +28 -0
  254. package/dist/hooks/GraphQLConfig/index.d.ts +28 -0
  255. package/dist/hooks/GraphQLConfig/index.js +16 -0
  256. package/dist/hooks/IdentifyUser/index.cjs +60 -0
  257. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  258. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  259. package/dist/hooks/IdentifyUser/index.js +58 -0
  260. package/dist/hooks/ImageResolver/index.cjs +55 -0
  261. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  262. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  263. package/dist/hooks/ImageResolver/index.js +53 -0
  264. package/dist/hooks/Intersection/index.cjs +3 -0
  265. package/dist/hooks/Intersection/index.d.cts +7 -0
  266. package/dist/hooks/Intersection/index.d.ts +7 -0
  267. package/dist/hooks/Intersection/index.js +3 -0
  268. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  269. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  270. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  271. package/dist/hooks/IsSmallScreen/index.js +20 -0
  272. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  273. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  274. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  275. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  276. package/dist/hooks/MessageFilter/index.cjs +54 -0
  277. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  278. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  279. package/dist/hooks/MessageFilter/index.js +54 -0
  280. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  281. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  282. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  283. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  284. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  285. package/dist/hooks/NewOrgConfig/index.d.cts +20 -0
  286. package/dist/hooks/NewOrgConfig/index.d.ts +20 -0
  287. package/dist/hooks/NewOrgConfig/index.js +20 -0
  288. package/dist/hooks/Search/index.cjs +326 -0
  289. package/dist/hooks/Search/index.d.cts +61 -0
  290. package/dist/hooks/Search/index.d.ts +61 -0
  291. package/dist/hooks/Search/index.js +323 -0
  292. package/dist/hooks/SearchOperations/index.cjs +102 -0
  293. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  294. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  295. package/dist/hooks/SearchOperations/index.js +99 -0
  296. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  297. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  298. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  299. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  300. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  301. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  302. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  303. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  304. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  305. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  306. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  307. package/dist/hooks/SnapCalculator/index.js +27 -0
  308. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  309. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  310. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  311. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  312. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +22 -0
  313. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  314. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  315. package/dist/hooks/TrackComponentVisibleEvent/index.js +22 -0
  316. package/dist/hooks/UpdateAnalyticsProps/index.cjs +62 -0
  317. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  318. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  319. package/dist/hooks/UpdateAnalyticsProps/index.js +59 -0
  320. package/dist/hooks/utils.cjs +8 -0
  321. package/dist/hooks/utils.d.cts +13 -0
  322. package/dist/hooks/utils.d.ts +13 -0
  323. package/dist/hooks/utils.js +3 -0
  324. package/dist/index-B5qslMv7.d.cts +186 -0
  325. package/dist/index-BN-3ctk_.d.ts +184 -0
  326. package/dist/index-BPxqQmpF.d.ts +1 -0
  327. package/dist/index-Bmub8e38.d.cts +98 -0
  328. package/dist/index-BoYC9XLW.d.ts +39 -0
  329. package/dist/index-C12-NmS7.d.cts +25 -0
  330. package/dist/index-C4_vohah.d.ts +186 -0
  331. package/dist/index-C6KdON7d.d.ts +25 -0
  332. package/dist/index-CESxqFso.d.cts +228 -0
  333. package/dist/index-CK_J3QMY.d.ts +676 -0
  334. package/dist/index-CVa3DeXJ.d.cts +9 -0
  335. package/dist/index-C_MIfxF0.d.cts +676 -0
  336. package/dist/index-CiWEYzXl.d.cts +184 -0
  337. package/dist/index-DOii3C6b.d.ts +9 -0
  338. package/dist/index-Dr_c2DDq.d.ts +98 -0
  339. package/dist/index-DsiilEj-.d.ts +228 -0
  340. package/dist/index-RcVcRKH7.d.cts +1 -0
  341. package/dist/index-hdbCEjYy.d.cts +39 -0
  342. package/dist/interceptors/index.cjs +4 -0
  343. package/dist/interceptors/index.d.cts +20 -0
  344. package/dist/interceptors/index.d.ts +20 -0
  345. package/dist/interceptors/index.js +4 -0
  346. package/dist/interceptors/types.cjs +1 -0
  347. package/dist/interceptors/types.d.cts +13 -0
  348. package/dist/interceptors/types.d.ts +13 -0
  349. package/dist/interceptors/types.js +3 -0
  350. package/dist/localStorageContext-Dwgto93_.js +95 -0
  351. package/dist/localStorageContext-cnMYDllE.cjs +115 -0
  352. package/dist/logger-Cp7J4YJT.cjs +26 -0
  353. package/dist/logger-oAgZx2-m.js +20 -0
  354. package/dist/models-B1P-dSCW.cjs +1537 -0
  355. package/dist/models-CgvSM2fW.js +1296 -0
  356. package/dist/newOrgConfigAtom-DxILMn2I.cjs +15 -0
  357. package/dist/newOrgConfigAtom-sqve6LZU.js +8 -0
  358. package/dist/newOrgConfigContext-BzIpdpd6.js +53 -0
  359. package/dist/newOrgConfigContext-CiwteVzM.d.cts +16 -0
  360. package/dist/newOrgConfigContext-D9PpVqyW.d.ts +16 -0
  361. package/dist/newOrgConfigContext-wTQVvOaX.cjs +68 -0
  362. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  363. package/dist/nodeSelector-D5gjDWZ3.d.ts +31 -0
  364. package/dist/org-DlAesvQ_.cjs +43 -0
  365. package/dist/org-vi0njpBh.js +12 -0
  366. package/dist/orgAnalyticsConfig-BC4_sEmn.js +14 -0
  367. package/dist/orgAnalyticsConfig-DsGbyFhO.cjs +39 -0
  368. package/dist/search-0-pfy0cc.js +126 -0
  369. package/dist/search-BLShhjvR.d.ts +20 -0
  370. package/dist/search-BQn1pW2M.cjs +205 -0
  371. package/dist/search-filter-types-BBIjvwJV.d.cts +102 -0
  372. package/dist/search-filter-types-BlmWOnlA.d.ts +102 -0
  373. package/dist/search-y-ioX5Mz.d.cts +20 -0
  374. package/dist/searchContext-5qTU8CbH.js +129 -0
  375. package/dist/searchContext-DmXo2rpU.cjs +145 -0
  376. package/dist/searchServiceAdapter-DEv1tTn0.cjs +34 -0
  377. package/dist/searchServiceAdapter-WyCU55NV.js +16 -0
  378. package/dist/sessionStorageContext-B-UFXyJR.cjs +66 -0
  379. package/dist/sessionStorageContext-DnuKi3Gk.js +52 -0
  380. package/dist/shopifyUrlContext-Lm-Xcut2.cjs +75 -0
  381. package/dist/shopifyUrlContext-jLW63VLY.js +61 -0
  382. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  383. package/dist/spiffyWidgets-GILaqHv6.d.ts +20 -0
  384. package/dist/systemSettingsContext--LcXOVJz.js +39 -0
  385. package/dist/systemSettingsContext-CafaP6Zh.cjs +60 -0
  386. package/dist/test-types-EzMFw_U3.d.ts +40 -0
  387. package/dist/test-types-ThQiO_cc.d.cts +40 -0
  388. package/dist/types/index.cjs +34 -0
  389. package/dist/types/index.d.cts +3 -0
  390. package/dist/types/index.d.ts +3 -0
  391. package/dist/types/index.js +31 -0
  392. package/dist/types-6siNDmGv.d.ts +10 -0
  393. package/dist/types-BN2z0HcL.d.ts +51 -0
  394. package/dist/types-BwNrLPSZ.cjs +106 -0
  395. package/dist/types-CKMMb_gX.d.cts +51 -0
  396. package/dist/types-CS0Hrzja.js +30 -0
  397. package/dist/types-CxObxLKs.cjs +48 -0
  398. package/dist/types-D3uOF0Oy.js +76 -0
  399. package/dist/types-D4aa7_7x.d.cts +10 -0
  400. package/dist/types-DQoXDiso.js +1 -0
  401. package/dist/types-o3zWarRp.cjs +0 -0
  402. package/dist/types.cjs +0 -0
  403. package/dist/types.d.cts +15 -0
  404. package/dist/types.d.ts +15 -0
  405. package/dist/types.js +1 -0
  406. package/dist/unsupportedProductExceptions-CKiri_vO.cjs +32 -0
  407. package/dist/unsupportedProductExceptions-ClxlJ6cU.js +20 -0
  408. package/dist/urlsParser-BV5yF8sa.cjs +78 -0
  409. package/dist/urlsParser-DUgV_Qy9.js +42 -0
  410. package/dist/useAmplitudeOperations-aGOqxc4V.cjs +41 -0
  411. package/dist/useAmplitudeOperations-wQnkMaDm.js +34 -0
  412. package/dist/useAppDetails-9WXEc3mg.cjs +38 -0
  413. package/dist/useAppDetails-mNC2PBqH.js +30 -0
  414. package/dist/useDebounce-BaIp-A1W.cjs +26 -0
  415. package/dist/useDebounce-CxPj9WmE.js +19 -0
  416. package/dist/useGraphQLConfig-CTsRsKd2.js +63 -0
  417. package/dist/useGraphQLConfig-D7naV2RD.cjs +76 -0
  418. package/dist/useIntersection-B4J9UhaG.js +21 -0
  419. package/dist/useIntersection-DKWc5MY6.cjs +28 -0
  420. package/dist/useMessageInterceptor-C9p9No1n.cjs +33 -0
  421. package/dist/useMessageInterceptor-tntd2rvB.js +25 -0
  422. package/dist/userIdentityContext-BWzqWXPI.cjs +125 -0
  423. package/dist/userIdentityContext-BoNYqrTf.js +109 -0
  424. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  425. package/dist/userIdentityContext-wYRpgkaJ.d.ts +20 -0
  426. package/dist/utilityTypes-DynzxjK3.js +1 -0
  427. package/dist/utilityTypes-xb8SjKSV.cjs +0 -0
  428. package/dist/utils-2SWrJ12w.cjs +29 -0
  429. package/dist/utils-ARmpTh1O.js +27 -0
  430. package/dist/utils-B1xLx9S8.d.ts +15 -0
  431. package/dist/utils-B3x_9JTY.d.cts +15 -0
  432. package/dist/utils-BSYichA7.d.cts +22 -0
  433. package/dist/utils-BgMcvG6l.js +606 -0
  434. package/dist/utils-C8vYQhLV.cjs +130 -0
  435. package/dist/utils-Cavu4XiM.cjs +33 -0
  436. package/dist/utils-CqBxIpEV.js +23 -0
  437. package/dist/utils-D_aOvxMg.cjs +715 -0
  438. package/dist/utils-FU_r-pTj.d.ts +22 -0
  439. package/dist/utils-_97oEqyL.js +92 -0
  440. package/dist/variantInfo-B7IwRpCg.cjs +0 -0
  441. package/dist/variantInfo-BtOYUGWa.js +1 -0
  442. package/package.json +1 -1
@@ -0,0 +1,166 @@
1
+ import { hasPropertyOfType } from "./utils-ARmpTh1O.js";
2
+ import { logger_default } from "./logger-oAgZx2-m.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLUQ5Z21HTkFWLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVBEUEV2ZW50QXR0cmlidXRlcy50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVF1ZXJ5VHlwZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXNwb25zZS50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24udHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTZWFyY2hFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlTdWdnZXN0aW9uLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpU3VnZ2VzdGlvbkNsaWNrZWRFdmVudEF0dHJpYnV0ZXMudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpVXNlckV2ZW50LnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFNlYXJjaEF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUERQQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVBEUEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUERQQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb2R1Y3RfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnByb2R1Y3RfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwYXJlbnRfcHJvZHVjdF9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5wYXJlbnRfcHJvZHVjdF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3VybCcgaW4gZGF0YSAmJiBkYXRhLnVybCAhPSBudWxsICYmIHR5cGVvZiBkYXRhLnVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBRdWVyeVR5cGVkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3F1ZXJ5JyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLnF1ZXJ5ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFJlc3BvbnNlLCBSZXNwb25zZUNhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXNwb25zZSA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBSZXNwb25zZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBkYXRhIGlzIG51bGwgb3Igbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2lkJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBpZCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjYXRlZ29yeScsICdzdHJpbmcnKSB8fFxuICAgICFPYmplY3QudmFsdWVzKFJlc3BvbnNlQ2F0ZWdvcnkpLmluY2x1ZGVzKGRhdGEuY2F0ZWdvcnkgYXMgUmVzcG9uc2VDYXRlZ29yeSlcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUmVzcG9uc2U6IGNhdGVnb3J5IGlzIG5vdCBhIHN0cmluZyBvciBub3QgYSB2YWxpZCByZXNwb25zZSBjYXRlZ29yeScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7IGRhdGEgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2NyZWF0ZWRfYXQnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGNyZWF0ZWRfYXQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnYXR0cmlidXRlcycsICdvYmplY3QnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogYXR0cmlidXRlcyBpcyBub3QgYW4gb2JqZWN0JywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyA9PiB7XG4gIGlmIChhdHRyaWJ1dGVzID09IG51bGwgfHwgdHlwZW9mIGF0dHJpYnV0ZXMgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXR0cmlidXRlcyBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2Rlc2NyaXB0aW9uJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGRlc2NyaXB0aW9uIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdpbWFnZV91cmwnLCAnc3RyaW5nJywgdHJ1ZSlcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGltYWdlX3VybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndGl0bGUnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdGl0bGUgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3VybCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB1cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ29yaWdpbmFsX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG9yaWdpbmFsX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdzYWxlX3ByaWNlJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHNhbGVfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2F2ZXJhZ2VfcmF0aW5nJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGF2ZXJhZ2VfcmF0aW5nIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdudW1iZXJfcmV2aWV3cycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBudW1iZXJfcmV2aWV3cyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbWV0YWRhdGEnLCAnYXJyYXknLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBtZXRhZGF0YSBpcyBub3QgYW4gYXJyYXknLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbiA9IChcbiAgcmljaEluZm86IHVua25vd24sXG4pOiByaWNoSW5mbyBpcyBBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24gPT4ge1xuICBpZiAocmljaEluZm8gPT0gbnVsbCB8fCB0eXBlb2YgcmljaEluZm8gIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdjb25zJyBpbiByaWNoSW5mbyAmJlxuICAgICghQXJyYXkuaXNBcnJheShyaWNoSW5mby5jb25zKSB8fCByaWNoSW5mby5jb25zLnNvbWUoKGNvbikgPT4gdHlwZW9mIGNvbiAhPT0gJ3N0cmluZycpKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb3MnIGluIHJpY2hJbmZvICYmXG4gICAgKCFBcnJheS5pc0FycmF5KHJpY2hJbmZvLnByb3MpIHx8IHJpY2hJbmZvLnByb3Muc29tZSgocHJvKSA9PiB0eXBlb2YgcHJvICE9PSAnc3RyaW5nJykpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgncmV2aWV3X2RhdGUnIGluIHJpY2hJbmZvICYmIHR5cGVvZiByaWNoSW5mby5yZXZpZXdfZGF0ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyX3RpdGxlJyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucmV2aWV3ZXJfdGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdwcm9kdWN0X2ZhbWlsaWFyaXR5JyBpbiByaWNoSW5mbyAmJiB0eXBlb2YgcmljaEluZm8ucHJvZHVjdF9mYW1pbGlhcml0eSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQgeyBBcGlSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9yZXNwb25zZUdlbmVyaWNzJztcbmltcG9ydCB7IGlzQXBpUmV2aWV3UmljaEluZm9ybWF0aW9uIH0gZnJvbSAnLi9pc0FwaVJldmlld1JpY2hJbmZvcm1hdGlvbic7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVJldmlld1Jlc3BvbnNlQXR0cmlidXRlcyA9IChvYmo6IHVua25vd24pOiBvYmogaXMgQXBpUmV2aWV3UmVzcG9uc2VBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCd0aXRsZScgaW4gb2JqICYmIG9iai50aXRsZSAhPSBudWxsICYmIHR5cGVvZiBvYmoudGl0bGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdyZXZpZXcnIGluIG9iaiAmJiB0eXBlb2Ygb2JqLnJldmlldyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3Jldmlld2VyJyBpbiBvYmogJiYgdHlwZW9mIG9iai5yZXZpZXdlciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3N0YXJzJyBpbiBvYmogJiYgdHlwZW9mIG9iai5zdGFycyAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ3JpY2hfaW5mb3JtYXRpb24nIGluIG9iaiAmJiAhaXNBcGlSZXZpZXdSaWNoSW5mb3JtYXRpb24ob2JqLnJpY2hfaW5mb3JtYXRpb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgU2VhcmNoQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVNlYXJjaEF0dHJpYnV0ZXMgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgU2VhcmNoQXR0cmlidXRlcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3NlYXJjaF90ZXJtJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5zZWFyY2hfdGVybSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCdzZWxlY3RlZF9maWx0ZXJzJyBpbiBkYXRhICYmICFBcnJheS5pc0FycmF5KGRhdGEuc2VsZWN0ZWRfZmlsdGVycykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISFkYXRhLnNlYXJjaF90ZXJtKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoXG4gICAgISgnc2VhcmNoX3Jlc3VsdHMnIGluIGRhdGEpIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoZGF0YS5zZWFyY2hfcmVzdWx0cykgfHxcbiAgICAhZGF0YS5zZWFyY2hfcmVzdWx0cy5ldmVyeSgodikgPT4gdHlwZW9mIHYgPT09ICdzdHJpbmcnKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJpbXBvcnQge1xuICBTdWdnZXN0aW9uIGFzIENvbW1lcmNlU3VnZ2VzdGlvbixcbiAgU3VnZ2VzdGlvbkNhdGVnb3J5LFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNTdWdnZXN0aW9uID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIENvbW1lcmNlU3VnZ2VzdGlvbiA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnY2F0ZWdvcnknIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY2F0ZWdvcnkgIT09ICdzdHJpbmcnIHx8XG4gICAgIU9iamVjdC52YWx1ZXMoU3VnZ2VzdGlvbkNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFN1Z2dlc3Rpb25DYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNyZWF0ZWRfYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NvbnRlbnQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpc19hbnN3ZXInIGluIGRhdGEgJiYgZGF0YS5pc19hbnN3ZXIgIT0gbnVsbCAmJiB0eXBlb2YgZGF0YS5pc19hbnN3ZXIgIT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiIsImltcG9ydCB7IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzID0+XG4gIGRhdGEgIT0gbnVsbCAmJlxuICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgJ3N1Z2dlc3Rpb25faWQnIGluIGRhdGEgJiZcbiAgdHlwZW9mIGRhdGEuc3VnZ2VzdGlvbl9pZCA9PT0gJ3N0cmluZyc7XG4iLCJpbXBvcnQgeyBBcGlUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvcmVzcG9uc2VHZW5lcmljcyc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIEFwaVRleHRSZXNwb25zZUF0dHJpYnV0ZXMgPT5cbiAgdHlwZW9mIGF0dHJpYnV0ZXMgPT09ICdvYmplY3QnICYmXG4gIGF0dHJpYnV0ZXMgIT0gbnVsbCAmJlxuICAnY29udGVudCcgaW4gYXR0cmlidXRlcyAmJlxuICB0eXBlb2YgYXR0cmlidXRlcy5jb250ZW50ID09PSAnc3RyaW5nJztcbiIsImltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlVc2VyRXZlbnQgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgVXNlckV2ZW50ID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnZXZlbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLmV2ZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdjcmVhdGVkX2F0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5jcmVhdGVkX2F0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjYXRlZ29yeScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jYXRlZ29yeSAhPT0gJ3N0cmluZycgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhVc2VyRXZlbnRDYXRlZ29yeSkuaW5jbHVkZXMoZGF0YS5jYXRlZ29yeSBhcyBVc2VyRXZlbnRDYXRlZ29yeSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIiwiaW1wb3J0IHsgUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPSAoXG4gIGF0dHJpYnV0ZXM6IHVua25vd24sXG4pOiBhdHRyaWJ1dGVzIGlzIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgPT4ge1xuICBpZiAoYXR0cmlidXRlcyA9PSBudWxsIHx8IHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnZ2VuZXJhdGVkX3F1ZXJ5JyBpbiBhdHRyaWJ1dGVzICYmIHR5cGVvZiBhdHRyaWJ1dGVzLmdlbmVyYXRlZF9xdWVyeSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ3Byb2R1Y3RfY291bnQnIGluIGF0dHJpYnV0ZXMgJiZcbiAgICBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT0gbnVsbCAmJlxuICAgIHR5cGVvZiBhdHRyaWJ1dGVzLnByb2R1Y3RfY291bnQgIT09ICdudW1iZXInXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxNQUFhLHNCQUFzQixTQUF5QztBQUMxRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsU0FDbEMsUUFBTztBQUdULEtBQUksRUFBRSxnQkFBZ0IsU0FBUyxPQUFPLEtBQUssZUFBZSxTQUN4RCxRQUFPO0FBR1QsS0FBSSx1QkFBdUIsUUFBUSxPQUFPLEtBQUssc0JBQXNCLFNBQ25FLFFBQU87QUFHVCxLQUFJLFNBQVMsUUFBUSxLQUFLLE9BQU8sUUFBUSxPQUFPLEtBQUssUUFBUSxTQUMzRCxRQUFPO0FBR1QsUUFBTzs7Ozs7QUNqQlQsTUFBYSw2QkFBNkIsU0FDeEMsUUFBUSxRQUFRLE9BQU8sU0FBUyxZQUFZLFdBQVcsUUFBUSxPQUFPLEtBQUssVUFBVTs7OztBQ0N2RixNQUFhLGlCQUFpQixTQUFvQztBQUNoRSxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxpQkFBTyxTQUFTLGdEQUFnRCxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ3BGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixNQUFNLE1BQU0sU0FBUyxFQUFFO0FBQzVDLGlCQUFPLFNBQVMscUNBQXFDLFFBQVcsRUFBRSxNQUFNLENBQUM7QUFDekUsU0FBTzs7QUFHVCxLQUNFLENBQUMsa0JBQWtCLE1BQU0sWUFBWSxTQUFTLElBQzlDLENBQUMsT0FBTyxPQUFPLGlCQUFpQixDQUFDLFNBQVMsS0FBSyxTQUE2QixFQUM1RTtBQUNBLGlCQUFPLFNBQ0wsNEVBQ0EsUUFDQSxFQUFFLE1BQU0sQ0FDVDtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixNQUFNLGNBQWMsU0FBUyxFQUFFO0FBQ3BELGlCQUFPLFNBQVMsNkNBQTZDLFFBQVcsRUFBRSxNQUFNLENBQUM7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
@@ -0,0 +1,132 @@
1
+ import { OrgShortName } from "./models-CgvSM2fW.js";
2
+ import { FeatureGates } from "./featureGates-Blx10fwB.js";
3
+ import { contextSourceAtom, enviveConfigAtom } from "./enviveConfig-BSfyz_pm.js";
4
+ import { sessionStorageUtil } from "./atomStore-BuopbV9k.js";
5
+ import { ContextSourceEnum, SupportedEventProductCategory } from "@spiffy-ai/commerce-api-client";
6
+ import { v4 } from "uuid";
7
+ import { atom } from "jotai";
8
+ import { atomWithStorage } from "jotai/utils";
9
+
10
+ //#region src/atoms/app/variant.ts
11
+ const internalStorageUrlResolverAtom = atomWithStorage("spiffy-url-resolver", void 0, sessionStorageUtil, { getOnInit: true });
12
+ const urlResolverAtom = atom((get) => {
13
+ const maybeUrlResolver = get(internalStorageUrlResolverAtom);
14
+ if (maybeUrlResolver == null) return {};
15
+ return JSON.parse(maybeUrlResolver);
16
+ }, (get, set, value) => {
17
+ const newCache = {
18
+ ...get(urlResolverAtom),
19
+ [value.url]: value.response
20
+ };
21
+ set(internalStorageUrlResolverAtom, JSON.stringify(newCache));
22
+ });
23
+ const internalStorageSupportedEventAtom = atomWithStorage("spiffy-supported-event", void 0, sessionStorageUtil, { getOnInit: true });
24
+ const internalSupportedEventAtom = atom(void 0);
25
+ const featureFlagServiceAtom = atom((get) => {
26
+ const featureOverrides = get(enviveConfigAtom)?.featureOverrides;
27
+ return { isFeatureGateEnabled: (gate) => featureOverrides?.[gate] || false };
28
+ });
29
+ const supportedEventAtom = atom((get) => {
30
+ const maybeSupportedEvent = get(internalStorageSupportedEventAtom);
31
+ if (maybeSupportedEvent == null) return;
32
+ return JSON.parse(maybeSupportedEvent);
33
+ }, (get, set, value) => {
34
+ if (value == null) {
35
+ set(internalStorageSupportedEventAtom, void 0);
36
+ set(internalSupportedEventAtom, void 0);
37
+ return;
38
+ }
39
+ const featureFlagService = get(featureFlagServiceAtom);
40
+ const variantCategory = get(internalSupportedEventAtom)?.category;
41
+ const orgShortName = get(enviveConfigAtom)?.orgShortName;
42
+ if (featureFlagService && !featureFlagService.isFeatureGateEnabled(FeatureGates.IsNonShapewearEnabled) && variantCategory && variantCategory !== SupportedEventProductCategory.Shapewear && (orgShortName === OrgShortName.Spanx || orgShortName === OrgShortName.SpanxStaging)) {
43
+ const modifiedSupportedEvent = {
44
+ supported: false,
45
+ ready: value.ready,
46
+ category: value.category,
47
+ numberOfReviews: value.numberOfReviews,
48
+ collections: value.collections,
49
+ top_category: value.top_category,
50
+ merchant_tags: value.merchant_tags
51
+ };
52
+ set(internalSupportedEventAtom, modifiedSupportedEvent);
53
+ set(internalStorageSupportedEventAtom, JSON.stringify(modifiedSupportedEvent));
54
+ return;
55
+ }
56
+ set(internalSupportedEventAtom, value);
57
+ set(internalStorageSupportedEventAtom, JSON.stringify(value));
58
+ });
59
+ const internalVariantIdAtom = atom();
60
+ const internalProductIdAtom = atom();
61
+ const internalParentProductIdAtom = atom();
62
+ const internalProductUrlAtom = atom();
63
+ const internalPlpIdAtom = atom();
64
+ const internalUrlAtom = atom();
65
+ const internalPageVisitCategoryAtom = atom();
66
+ const internalVariantAtom = atom("pdp");
67
+ const variantIdAtom = atom((get) => get(internalVariantIdAtom));
68
+ const productIdAtom = atom((get) => get(internalProductIdAtom));
69
+ const parentProductIdAtom = atom((get) => get(internalParentProductIdAtom));
70
+ const productUrlAtom = atom((get) => get(internalProductUrlAtom));
71
+ const plpIdAtom = atom((get) => get(internalPlpIdAtom));
72
+ const urlAtom = atom((get) => get(internalUrlAtom));
73
+ const pageVisitCategoryAtom = atom((get) => get(internalPageVisitCategoryAtom));
74
+ const variantAtom = atom((get) => get(internalVariantAtom));
75
+ const hasParsedVariantInfoAtom = atom(false);
76
+ const variantInfoAtom = atom((get) => {
77
+ const variant = get(variantAtom);
78
+ if (variant === "pdp") return {
79
+ variantId: get(variantIdAtom),
80
+ variant,
81
+ productId: get(productIdAtom),
82
+ parentProductId: get(parentProductIdAtom),
83
+ url: get(urlAtom)
84
+ };
85
+ if (variant === "plp") return {
86
+ variantId: get(variantIdAtom),
87
+ variant,
88
+ plpId: get(plpIdAtom),
89
+ url: get(urlAtom)
90
+ };
91
+ if (variant === "page_visit") return {
92
+ variantId: get(variantIdAtom),
93
+ variant,
94
+ url: get(urlAtom),
95
+ pageVisitCategory: get(pageVisitCategoryAtom)
96
+ };
97
+ throw new Error("Invalid variantInfo details");
98
+ }, (_, set, newVariant) => {
99
+ set(internalVariantAtom, newVariant.variant);
100
+ set(internalVariantIdAtom, newVariant.variantId);
101
+ if (newVariant.variant === "pdp") {
102
+ set(internalProductIdAtom, newVariant.productId);
103
+ set(internalParentProductIdAtom, newVariant.parentProductId);
104
+ set(internalUrlAtom, newVariant.url);
105
+ }
106
+ if (newVariant.variant === "plp") {
107
+ set(internalPlpIdAtom, newVariant.plpId);
108
+ set(internalUrlAtom, newVariant.url);
109
+ }
110
+ if (newVariant.variant === "page_visit") {
111
+ set(internalUrlAtom, newVariant.url);
112
+ set(internalPageVisitCategoryAtom, newVariant.pageVisitCategory);
113
+ }
114
+ });
115
+
116
+ //#endregion
117
+ //#region src/atoms/app/index.ts
118
+ const internalUserIdAtom = atom(void 0);
119
+ const userIdAtom = atom((get) => {
120
+ const maybeUserId = get(internalUserIdAtom);
121
+ if (maybeUserId) return maybeUserId;
122
+ return get(userIdentityAtom)?.getUserIdOrDefault() ?? "";
123
+ }, (_, set, value) => {
124
+ set(internalUserIdAtom, value);
125
+ });
126
+ const userIdentityAtom = atom(void 0);
127
+ const appSourceAtom = atom((get) => get(contextSourceAtom) ?? ContextSourceEnum.App);
128
+ const chatIdAtom = atomWithStorage("v1-spiffy-chat-session-id", v4(), void 0, { getOnInit: true });
129
+
130
+ //#endregion
131
+ export { appSourceAtom, chatIdAtom, hasParsedVariantInfoAtom, supportedEventAtom, userIdAtom, userIdentityAtom, variantInfoAtom };
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLUNvUTFuQy1qLmpzIiwibmFtZXMiOlsidXVpZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9hcHAvdmFyaWFudC50cyIsIi4uL3NyYy9hdG9tcy9hcHAvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXRvbVdpdGhTdG9yYWdlIH0gZnJvbSBcImpvdGFpL3V0aWxzXCI7XG5pbXBvcnQgeyBhdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQge1xuICBTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSxcbiAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbiAgUGFnZVZpc2l0Q2F0ZWdvcnksXG59IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7XG4gIFBhZ2VWaXNpdFZhcmlhbnRJbmZvLFxuICBQRFBWYXJpYW50SW5mbyxcbiAgUExQVmFyaWFudEluZm8sXG4gIFZhcmlhbnRJbmZvLFxuICBGZWF0dXJlR2F0ZXMsXG4gIE9yZ1Nob3J0TmFtZSxcbn0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHNcIjtcbmltcG9ydCB7IHNlc3Npb25TdG9yYWdlVXRpbCB9IGZyb20gXCJzcmMvYXRvbXMvYXRvbVN0b3JlL2F0b21TdG9yZVwiO1xuaW1wb3J0IHsgZW52aXZlQ29uZmlnQXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRlZEV2ZW50XG4gIGV4dGVuZHMgUGljazxcbiAgICBTdXBwb3J0ZWRFdmVudFJlc3BvbnNlLFxuICAgIFwic3VwcG9ydGVkXCIgfCBcInJlYWR5XCIgfCBcImNhdGVnb3J5XCIgfCBcImNvbGxlY3Rpb25zXCIgfCBcInRvcF9jYXRlZ29yeVwiXG4gID4ge1xuICBudW1iZXJPZlJldmlld3M6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgbWVyY2hhbnRfdGFncz86IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUERQQXR0cmlidXRlcyB7XG4gIHByb2R1Y3RfaWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQTFBBdHRyaWJ1dGVzIHtcbiAgYXR0cmlidXRlcz86IHtcbiAgICBpZD86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZpbmdQRFBDb25maWcge1xuICBwZHBfYXR0cmlidXRlczogUERQQXR0cmlidXRlcztcbiAgbnVtYmVyX29mX3Jldmlld3M/OiBudW1iZXI7XG4gIGNvbGxlY3Rpb25zPzogc3RyaW5nW107XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcmxSZXNvbHZpbmdQTFBDb25maWcge1xuICBwbHBfYXR0cmlidXRlczogUExQQXR0cmlidXRlcztcbiAgdG9wX2NhdGVnb3J5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVXJsUmVzb2x2aW5nR2VuZXJpY0NvbmZpZyB7XG4gIGRldGFpbHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2VWYXJpYW50Q2hlY2tDb25maWcgPSB7XG4gIGNoZWNrX3R5cGU6IHN0cmluZztcbiAgZmVhdHVyZV9nYXRlPzogc3RyaW5nO1xuICBleHRyYWN0b3I/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG1hcD86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgICB2YWx1ZT86IHN0cmluZztcbiAgfTtcbiAgcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHByb2R1Y3RfaWRzPzogc3RyaW5nW107XG4gIHBscF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHBscF9pZHM/OiBzdHJpbmdbXTtcbiAgY29sbGVjdGlvbnM/OiBzdHJpbmdbXTtcbiAgcXVlcnlfcGFyYW0/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICB0b3BfY2F0ZWdvcnk/OiBzdHJpbmdbXTtcbiAgcmV2aWV3X21pbmltdW0/OiBudW1iZXI7XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRXaWRnZXRNb3VudGluZ0NvbmZpZyA9IHtcbiAgbW91bnRpbmdfY29uZmlnX2lkOiBzdHJpbmc7XG4gIHdpZGdldF9jb25maWdfaWQ/OiBzdHJpbmc7XG4gIG1vdW50aW5nX3BvaW50X3dpZGdldHM/OiBBcnJheTx7XG4gICAgY2hlY2tzOiBQYWdlVmFyaWFudENoZWNrQ29uZmlnW107XG4gICAgd2lkZ2V0X2NvbmZpZ19pZDogc3RyaW5nO1xuICB9Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tlbmRQYWdlVmFyaWFudENvbmZpZyA9IHtcbiAgdmFyaWFudF9pZDogc3RyaW5nO1xuICB2YXJpYW50X3R5cGU6IHN0cmluZztcbiAgdmFyaWFudF9jaGVja3M6IFBhZ2VWYXJpYW50Q2hlY2tDb25maWdbXTtcbiAgd2lkZ2V0X21vdW50aW5nOiBCYWNrZW5kV2lkZ2V0TW91bnRpbmdDb25maWdbXTtcbiAgcGxwX2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbiAgcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHBhcmVudF9wcm9kdWN0X2lkX2V4dHJhY3Rvcj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2ZXJSZXNwb25zZSB7XG4gIHZhcmlhbnRfdHlwZTogc3RyaW5nO1xuICBzcGVjaWZpY19kZXRhaWxzOlxuICAgIHwgVXJsUmVzb2x2aW5nUERQQ29uZmlnXG4gICAgfCBVcmxSZXNvbHZpbmdQTFBDb25maWdcbiAgICB8IFVybFJlc29sdmluZ0dlbmVyaWNDb25maWc7XG4gIHJlYWR5OiBib29sZWFuO1xuICB1c2VyX2V2ZW50Pzoge1xuICAgIGV2ZW50X2lkPzogc3RyaW5nO1xuICAgIGF0dHJpYnV0ZXM/OiBQRFBBdHRyaWJ1dGVzIHwgUExQQXR0cmlidXRlcztcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBjcmVhdGVkX2F0Pzogc3RyaW5nO1xuICB9O1xuICBwYWdlX3ZhcmlhbnQ/OiBCYWNrZW5kUGFnZVZhcmlhbnRDb25maWc7XG59XG5cbi8vIFVzZSBhIG1hcCBmb3IgcGVyLVVSTCBjYWNoZVxuZXhwb3J0IHR5cGUgVXJsUmVzb2x2ZXJDYWNoZSA9IFJlY29yZDxzdHJpbmcsIFVybFJlc29sdmVyUmVzcG9uc2UgfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgXCJzcGlmZnktdXJsLXJlc29sdmVyXCIsXG4gIHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgdXJsUmVzb2x2ZXJBdG9tID0gYXRvbShcbiAgKGdldCk6IFVybFJlc29sdmVyQ2FjaGUgPT4ge1xuICAgIGNvbnN0IG1heWJlVXJsUmVzb2x2ZXIgPSBnZXQoaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tKTtcbiAgICBpZiAobWF5YmVVcmxSZXNvbHZlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHJldHVybiBKU09OLnBhcnNlKG1heWJlVXJsUmVzb2x2ZXIpO1xuICB9LFxuICAoXG4gICAgZ2V0LFxuICAgIHNldCxcbiAgICB2YWx1ZTogeyB1cmw6IHN0cmluZzsgcmVzcG9uc2U6IFVybFJlc29sdmVyUmVzcG9uc2UgfCB1bmRlZmluZWQgfVxuICApID0+IHtcbiAgICAvLyBHZXQgY3VycmVudCBjYWNoZSBmcm9tIHN0b3JhZ2VcbiAgICBjb25zdCBjdXJyZW50Q2FjaGUgPSBnZXQodXJsUmVzb2x2ZXJBdG9tKTtcbiAgICBjb25zdCBuZXdDYWNoZSA9IHsgLi4uY3VycmVudENhY2hlLCBbdmFsdWUudXJsXTogdmFsdWUucmVzcG9uc2UgfTtcblxuICAgIHNldChpbnRlcm5hbFN0b3JhZ2VVcmxSZXNvbHZlckF0b20sIEpTT04uc3RyaW5naWZ5KG5ld0NhY2hlKSk7XG4gIH1cbik7XG5cbmNvbnN0IGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b21XaXRoU3RvcmFnZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICBcInNwaWZmeS1zdXBwb3J0ZWQtZXZlbnRcIixcbiAgdW5kZWZpbmVkLFxuICBzZXNzaW9uU3RvcmFnZVV0aWwsXG4gIHtcbiAgICBnZXRPbkluaXQ6IHRydWUsXG4gIH1cbik7XG5jb25zdCBpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b208U3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmNvbnN0IGZlYXR1cmVGbGFnU2VydmljZUF0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICBjb25zdCBmZWF0dXJlT3ZlcnJpZGVzID0gY29uZmlnPy5mZWF0dXJlT3ZlcnJpZGVzO1xuICByZXR1cm4ge1xuICAgIGlzRmVhdHVyZUdhdGVFbmFibGVkOiAoZ2F0ZTogc3RyaW5nKSA9PiBmZWF0dXJlT3ZlcnJpZGVzPy5bZ2F0ZV0gfHwgZmFsc2UsXG4gIH07XG59KTtcblxuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZEV2ZW50QXRvbSA9IGF0b20oXG4gIChnZXQpOiBTdXBwb3J0ZWRFdmVudCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgbWF5YmVTdXBwb3J0ZWRFdmVudCA9IGdldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20pO1xuICAgIGlmIChtYXliZVN1cHBvcnRlZEV2ZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETyB0aGlzIGlzIGFuIHVudmFsaWRhdGVkIHBhcnNlLiBJdCBtYXkgYmUgYmV0dGVyIHRvIGltcGxlbWVudCBhIGN1c3RvbSBzdG9yYWdlIHV0aWxcbiAgICAvLyBhbmQgcGVyZm9ybSB0aGUgb2JqZWN0IHZhbGlkYXRpb24gb24gXCJnZXRcIiB0aGVyZS5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShtYXliZVN1cHBvcnRlZEV2ZW50KTtcbiAgfSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogU3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgc2V0KGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSwgdW5kZWZpbmVkKTtcbiAgICAgIHNldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSwgdW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSBnZXQoZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbSk7XG4gICAgY29uc3QgbWF5YmVTdXBwb3J0ZWRFdmVudCA9IGdldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSk7XG4gICAgY29uc3QgdmFyaWFudENhdGVnb3J5ID0gbWF5YmVTdXBwb3J0ZWRFdmVudD8uY2F0ZWdvcnk7XG4gICAgY29uc3QgY29uZmlnID0gZ2V0KGVudml2ZUNvbmZpZ0F0b20pO1xuICAgIGNvbnN0IG9yZ1Nob3J0TmFtZSA9IGNvbmZpZz8ub3JnU2hvcnROYW1lO1xuXG4gICAgLy8gVE9ETzogY2xlYW4gdXAgdGhpcyBsb2dpYyAmIHRoZSBmZWF0dXJlIGdhdGUgd2hlbiB3ZSd2ZSBmdWxseSByb2xsZWQgb3V0XG4gICAgaWYgKFxuICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlICYmXG4gICAgICAhZmVhdHVyZUZsYWdTZXJ2aWNlLmlzRmVhdHVyZUdhdGVFbmFibGVkKFxuICAgICAgICBGZWF0dXJlR2F0ZXMuSXNOb25TaGFwZXdlYXJFbmFibGVkXG4gICAgICApICYmXG4gICAgICB2YXJpYW50Q2F0ZWdvcnkgJiZcbiAgICAgIHZhcmlhbnRDYXRlZ29yeSAhPT0gU3VwcG9ydGVkRXZlbnRQcm9kdWN0Q2F0ZWdvcnkuU2hhcGV3ZWFyICYmXG4gICAgICAob3JnU2hvcnROYW1lID09PSBPcmdTaG9ydE5hbWUuU3BhbnggfHxcbiAgICAgICAgb3JnU2hvcnROYW1lID09PSBPcmdTaG9ydE5hbWUuU3BhbnhTdGFnaW5nKVxuICAgICkge1xuICAgICAgY29uc3QgbW9kaWZpZWRTdXBwb3J0ZWRFdmVudCA9IHtcbiAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSxcbiAgICAgICAgcmVhZHk6IHZhbHVlLnJlYWR5LFxuICAgICAgICBjYXRlZ29yeTogdmFsdWUuY2F0ZWdvcnksXG4gICAgICAgIG51bWJlck9mUmV2aWV3czogdmFsdWUubnVtYmVyT2ZSZXZpZXdzLFxuICAgICAgICBjb2xsZWN0aW9uczogdmFsdWUuY29sbGVjdGlvbnMsXG4gICAgICAgIHRvcF9jYXRlZ29yeTogdmFsdWUudG9wX2NhdGVnb3J5LFxuICAgICAgICBtZXJjaGFudF90YWdzOiB2YWx1ZS5tZXJjaGFudF90YWdzLFxuICAgICAgfTtcbiAgICAgIHNldChpbnRlcm5hbFN1cHBvcnRlZEV2ZW50QXRvbSwgbW9kaWZpZWRTdXBwb3J0ZWRFdmVudCk7XG4gICAgICBzZXQoXG4gICAgICAgIGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkobW9kaWZpZWRTdXBwb3J0ZWRFdmVudClcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20sIHZhbHVlKTtcbiAgICBzZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICB9XG4pO1xuXG5jb25zdCBpbnRlcm5hbFZhcmlhbnRJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUHJvZHVjdElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFByb2R1Y3RVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBscElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxVcmxBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b208UGFnZVZpc2l0Q2F0ZWdvcnk+KCk7XG5jb25zdCBpbnRlcm5hbFZhcmlhbnRBdG9tID0gYXRvbTxcInBkcFwiIHwgXCJwbHBcIiB8IFwic2VhcmNoXCIgfCBcInBhZ2VfdmlzaXRcIj4oXG4gIFwicGRwXCJcbik7XG5cbmV4cG9ydCBjb25zdCB2YXJpYW50SWRBdG9tID0gYXRvbSgoZ2V0KSA9PiBnZXQoaW50ZXJuYWxWYXJpYW50SWRBdG9tKSk7XG5leHBvcnQgY29uc3QgcHJvZHVjdElkQXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsUHJvZHVjdElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBhcmVudFByb2R1Y3RJZEF0b20gPSBhdG9tKChnZXQpID0+XG4gIGdldChpbnRlcm5hbFBhcmVudFByb2R1Y3RJZEF0b20pXG4pO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RVcmxBdG9tID0gYXRvbSgoZ2V0KSA9PiBnZXQoaW50ZXJuYWxQcm9kdWN0VXJsQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBscElkQXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsUGxwSWRBdG9tKSk7XG5leHBvcnQgY29uc3QgdXJsQXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsVXJsQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHBhZ2VWaXNpdENhdGVnb3J5QXRvbSA9IGF0b20oKGdldCkgPT5cbiAgZ2V0KGludGVybmFsUGFnZVZpc2l0Q2F0ZWdvcnlBdG9tKVxuKTtcbmV4cG9ydCBjb25zdCB2YXJpYW50QXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsVmFyaWFudEF0b20pKTtcbmV4cG9ydCBjb25zdCBoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20gPSBhdG9tKGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHZhcmlhbnRJbmZvQXRvbSA9IGF0b20oXG4gIChnZXQpOiBWYXJpYW50SW5mbyA9PiB7XG4gICAgY29uc3QgdmFyaWFudCA9IGdldCh2YXJpYW50QXRvbSk7XG4gICAgaWYgKHZhcmlhbnQgPT09IFwicGRwXCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhcmlhbnRJZDogZ2V0KHZhcmlhbnRJZEF0b20pLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBwcm9kdWN0SWQ6IGdldChwcm9kdWN0SWRBdG9tKSxcbiAgICAgICAgcGFyZW50UHJvZHVjdElkOiBnZXQocGFyZW50UHJvZHVjdElkQXRvbSksXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgfSBhcyBQRFBWYXJpYW50SW5mbztcbiAgICB9XG4gICAgaWYgKHZhcmlhbnQgPT09IFwicGxwXCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhcmlhbnRJZDogZ2V0KHZhcmlhbnRJZEF0b20pLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBwbHBJZDogZ2V0KHBscElkQXRvbSksXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgfSBhcyBQTFBWYXJpYW50SW5mbztcbiAgICB9XG4gICAgaWYgKHZhcmlhbnQgPT09IFwicGFnZV92aXNpdFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgdXJsOiBnZXQodXJsQXRvbSksXG4gICAgICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBnZXQocGFnZVZpc2l0Q2F0ZWdvcnlBdG9tKSxcbiAgICAgIH0gYXMgUGFnZVZpc2l0VmFyaWFudEluZm87XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgdmFyaWFudEluZm8gZGV0YWlsc1wiKTtcbiAgfSxcbiAgKF8sIHNldCwgbmV3VmFyaWFudDogVmFyaWFudEluZm8pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxWYXJpYW50QXRvbSwgbmV3VmFyaWFudC52YXJpYW50KTtcbiAgICBzZXQoaW50ZXJuYWxWYXJpYW50SWRBdG9tLCBuZXdWYXJpYW50LnZhcmlhbnRJZCk7XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gXCJwZHBcIikge1xuICAgICAgc2V0KGludGVybmFsUHJvZHVjdElkQXRvbSwgbmV3VmFyaWFudC5wcm9kdWN0SWQpO1xuICAgICAgc2V0KGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSwgbmV3VmFyaWFudC5wYXJlbnRQcm9kdWN0SWQpO1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgIH1cbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBcInBscFwiKSB7XG4gICAgICBzZXQoaW50ZXJuYWxQbHBJZEF0b20sIG5ld1ZhcmlhbnQucGxwSWQpO1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgIH1cbiAgICBpZiAobmV3VmFyaWFudC52YXJpYW50ID09PSBcInBhZ2VfdmlzaXRcIikge1xuICAgICAgc2V0KGludGVybmFsVXJsQXRvbSwgbmV3VmFyaWFudC51cmwpO1xuICAgICAgc2V0KGludGVybmFsUGFnZVZpc2l0Q2F0ZWdvcnlBdG9tLCBuZXdWYXJpYW50LnBhZ2VWaXNpdENhdGVnb3J5KTtcbiAgICB9XG4gIH1cbik7XG4iLCJpbXBvcnQge1xuICBDb250ZXh0RW52RW51bSxcbiAgQ29udGV4dFNvdXJjZUVudW0sXG59IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7IGF0b20gfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCB7IGF0b21XaXRoU3RvcmFnZSB9IGZyb20gXCJqb3RhaS91dGlsc1wiO1xuaW1wb3J0IHsgVmFyaWFudEluZm8gfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVsc1wiO1xuaW1wb3J0IHsgVXNlcklkZW50aXR5Q29udGV4dFR5cGUgfSBmcm9tIFwic3JjL2NvbnRleHRzL3VzZXJJZGVudGl0eUNvbnRleHQvdXNlcklkZW50aXR5Q29udGV4dFwiO1xuaW1wb3J0IHsgdmFyaWFudEluZm9BdG9tIH0gZnJvbSBcInNyYy9hdG9tcy9hcHAvdmFyaWFudFwiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgeyBjb250ZXh0U291cmNlQXRvbSB9IGZyb20gXCIuLi9lbnZpdmUvZW52aXZlQ29uZmlnXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwRGV0YWlscyB7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZTogc3RyaW5nO1xuICBjaGF0SWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHNvdXJjZTogQ29udGV4dFNvdXJjZUVudW07XG4gIGVudjogQ29udGV4dEVudkVudW07XG4gIHZhcmlhbnRJbmZvOiBWYXJpYW50SW5mbztcbn1cblxuZXhwb3J0IHsgdmFyaWFudEluZm9BdG9tIH0gZnJvbSBcIi4vdmFyaWFudFwiO1xuXG5jb25zdCBpbnRlcm5hbFVzZXJJZEF0b20gPSBhdG9tPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IHVzZXJJZEF0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiB7XG4gICAgY29uc3QgbWF5YmVVc2VySWQgPSBnZXQoaW50ZXJuYWxVc2VySWRBdG9tKTtcblxuICAgIGlmIChtYXliZVVzZXJJZCkge1xuICAgICAgcmV0dXJuIG1heWJlVXNlcklkO1xuICAgIH1cblxuICAgIHJldHVybiBnZXQodXNlcklkZW50aXR5QXRvbSk/LmdldFVzZXJJZE9yRGVmYXVsdCgpID8/IFwiXCI7XG4gIH0sXG4gIChfLCBzZXQsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBzZXQoaW50ZXJuYWxVc2VySWRBdG9tLCB2YWx1ZSk7XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCB1c2VySWRlbnRpdHlBdG9tID0gYXRvbTxVc2VySWRlbnRpdHlDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4oXG4gIHVuZGVmaW5lZFxuKTtcblxuZXhwb3J0IGNvbnN0IGFwcFNvdXJjZUF0b20gPSBhdG9tPENvbnRleHRTb3VyY2VFbnVtPihcbiAgKGdldCk6IENvbnRleHRTb3VyY2VFbnVtID0+IGdldChjb250ZXh0U291cmNlQXRvbSkgPz8gQ29udGV4dFNvdXJjZUVudW0uQXBwXG4pO1xuZXhwb3J0IGNvbnN0IGNoYXRJZEF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nPihcbiAgXCJ2MS1zcGlmZnktY2hhdC1zZXNzaW9uLWlkXCIsXG4gIHV1aWQoKSxcbiAgdW5kZWZpbmVkLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9XG4pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBK0dBLE1BQU0saUNBQWlDLGdCQUNyQyx1QkFDQSxRQUNBLG9CQUNBLEVBQ0UsV0FBVyxNQUNaLENBQ0Y7QUFFRCxNQUFhLGtCQUFrQixNQUM1QixRQUEwQjtDQUN6QixNQUFNLG1CQUFtQixJQUFJLCtCQUErQjtBQUM1RCxLQUFJLG9CQUFvQixLQUN0QixRQUFPLEVBQUU7QUFFWCxRQUFPLEtBQUssTUFBTSxpQkFBaUI7SUFHbkMsS0FDQSxLQUNBLFVBQ0c7Q0FHSCxNQUFNLFdBQVc7RUFBRSxHQURFLElBQUksZ0JBQWdCO0dBQ0osTUFBTSxNQUFNLE1BQU07RUFBVTtBQUVqRSxLQUFJLGdDQUFnQyxLQUFLLFVBQVUsU0FBUyxDQUFDO0VBRWhFO0FBRUQsTUFBTSxvQ0FBb0MsZ0JBQ3hDLDBCQUNBLFFBQ0Esb0JBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUNELE1BQU0sNkJBQTZCLEtBQWlDLE9BQVU7QUFFOUUsTUFBTSx5QkFBeUIsTUFBTSxR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
@@ -0,0 +1,178 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_models = require('./models-B1P-dSCW.cjs');
3
+ const require_featureGates = require('./featureGates-DcZNrUma.cjs');
4
+ const require_enviveConfig = require('./enviveConfig-D8vcVPWD.cjs');
5
+ const require_atomStore = require('./atomStore-CZKe3itM.cjs');
6
+ let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
7
+ __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
8
+ let uuid = require("uuid");
9
+ uuid = require_chunk.__toESM(uuid);
10
+ let jotai = require("jotai");
11
+ jotai = require_chunk.__toESM(jotai);
12
+ let jotai_utils = require("jotai/utils");
13
+ jotai_utils = require_chunk.__toESM(jotai_utils);
14
+
15
+ //#region src/atoms/app/variant.ts
16
+ const internalStorageUrlResolverAtom = (0, jotai_utils.atomWithStorage)("spiffy-url-resolver", void 0, require_atomStore.sessionStorageUtil, { getOnInit: true });
17
+ const urlResolverAtom = (0, jotai.atom)((get) => {
18
+ const maybeUrlResolver = get(internalStorageUrlResolverAtom);
19
+ if (maybeUrlResolver == null) return {};
20
+ return JSON.parse(maybeUrlResolver);
21
+ }, (get, set, value) => {
22
+ const newCache = {
23
+ ...get(urlResolverAtom),
24
+ [value.url]: value.response
25
+ };
26
+ set(internalStorageUrlResolverAtom, JSON.stringify(newCache));
27
+ });
28
+ const internalStorageSupportedEventAtom = (0, jotai_utils.atomWithStorage)("spiffy-supported-event", void 0, require_atomStore.sessionStorageUtil, { getOnInit: true });
29
+ const internalSupportedEventAtom = (0, jotai.atom)(void 0);
30
+ const featureFlagServiceAtom = (0, jotai.atom)((get) => {
31
+ const featureOverrides = get(require_enviveConfig.enviveConfigAtom)?.featureOverrides;
32
+ return { isFeatureGateEnabled: (gate) => featureOverrides?.[gate] || false };
33
+ });
34
+ const supportedEventAtom = (0, jotai.atom)((get) => {
35
+ const maybeSupportedEvent = get(internalStorageSupportedEventAtom);
36
+ if (maybeSupportedEvent == null) return;
37
+ return JSON.parse(maybeSupportedEvent);
38
+ }, (get, set, value) => {
39
+ if (value == null) {
40
+ set(internalStorageSupportedEventAtom, void 0);
41
+ set(internalSupportedEventAtom, void 0);
42
+ return;
43
+ }
44
+ const featureFlagService = get(featureFlagServiceAtom);
45
+ const variantCategory = get(internalSupportedEventAtom)?.category;
46
+ const orgShortName = get(require_enviveConfig.enviveConfigAtom)?.orgShortName;
47
+ if (featureFlagService && !featureFlagService.isFeatureGateEnabled(require_featureGates.FeatureGates.IsNonShapewearEnabled) && variantCategory && variantCategory !== __spiffy_ai_commerce_api_client.SupportedEventProductCategory.Shapewear && (orgShortName === require_models.OrgShortName.Spanx || orgShortName === require_models.OrgShortName.SpanxStaging)) {
48
+ const modifiedSupportedEvent = {
49
+ supported: false,
50
+ ready: value.ready,
51
+ category: value.category,
52
+ numberOfReviews: value.numberOfReviews,
53
+ collections: value.collections,
54
+ top_category: value.top_category,
55
+ merchant_tags: value.merchant_tags
56
+ };
57
+ set(internalSupportedEventAtom, modifiedSupportedEvent);
58
+ set(internalStorageSupportedEventAtom, JSON.stringify(modifiedSupportedEvent));
59
+ return;
60
+ }
61
+ set(internalSupportedEventAtom, value);
62
+ set(internalStorageSupportedEventAtom, JSON.stringify(value));
63
+ });
64
+ const internalVariantIdAtom = (0, jotai.atom)();
65
+ const internalProductIdAtom = (0, jotai.atom)();
66
+ const internalParentProductIdAtom = (0, jotai.atom)();
67
+ const internalProductUrlAtom = (0, jotai.atom)();
68
+ const internalPlpIdAtom = (0, jotai.atom)();
69
+ const internalUrlAtom = (0, jotai.atom)();
70
+ const internalPageVisitCategoryAtom = (0, jotai.atom)();
71
+ const internalVariantAtom = (0, jotai.atom)("pdp");
72
+ const variantIdAtom = (0, jotai.atom)((get) => get(internalVariantIdAtom));
73
+ const productIdAtom = (0, jotai.atom)((get) => get(internalProductIdAtom));
74
+ const parentProductIdAtom = (0, jotai.atom)((get) => get(internalParentProductIdAtom));
75
+ const productUrlAtom = (0, jotai.atom)((get) => get(internalProductUrlAtom));
76
+ const plpIdAtom = (0, jotai.atom)((get) => get(internalPlpIdAtom));
77
+ const urlAtom = (0, jotai.atom)((get) => get(internalUrlAtom));
78
+ const pageVisitCategoryAtom = (0, jotai.atom)((get) => get(internalPageVisitCategoryAtom));
79
+ const variantAtom = (0, jotai.atom)((get) => get(internalVariantAtom));
80
+ const hasParsedVariantInfoAtom = (0, jotai.atom)(false);
81
+ const variantInfoAtom = (0, jotai.atom)((get) => {
82
+ const variant = get(variantAtom);
83
+ if (variant === "pdp") return {
84
+ variantId: get(variantIdAtom),
85
+ variant,
86
+ productId: get(productIdAtom),
87
+ parentProductId: get(parentProductIdAtom),
88
+ url: get(urlAtom)
89
+ };
90
+ if (variant === "plp") return {
91
+ variantId: get(variantIdAtom),
92
+ variant,
93
+ plpId: get(plpIdAtom),
94
+ url: get(urlAtom)
95
+ };
96
+ if (variant === "page_visit") return {
97
+ variantId: get(variantIdAtom),
98
+ variant,
99
+ url: get(urlAtom),
100
+ pageVisitCategory: get(pageVisitCategoryAtom)
101
+ };
102
+ throw new Error("Invalid variantInfo details");
103
+ }, (_, set, newVariant) => {
104
+ set(internalVariantAtom, newVariant.variant);
105
+ set(internalVariantIdAtom, newVariant.variantId);
106
+ if (newVariant.variant === "pdp") {
107
+ set(internalProductIdAtom, newVariant.productId);
108
+ set(internalParentProductIdAtom, newVariant.parentProductId);
109
+ set(internalUrlAtom, newVariant.url);
110
+ }
111
+ if (newVariant.variant === "plp") {
112
+ set(internalPlpIdAtom, newVariant.plpId);
113
+ set(internalUrlAtom, newVariant.url);
114
+ }
115
+ if (newVariant.variant === "page_visit") {
116
+ set(internalUrlAtom, newVariant.url);
117
+ set(internalPageVisitCategoryAtom, newVariant.pageVisitCategory);
118
+ }
119
+ });
120
+
121
+ //#endregion
122
+ //#region src/atoms/app/index.ts
123
+ const internalUserIdAtom = (0, jotai.atom)(void 0);
124
+ const userIdAtom = (0, jotai.atom)((get) => {
125
+ const maybeUserId = get(internalUserIdAtom);
126
+ if (maybeUserId) return maybeUserId;
127
+ return get(userIdentityAtom)?.getUserIdOrDefault() ?? "";
128
+ }, (_, set, value) => {
129
+ set(internalUserIdAtom, value);
130
+ });
131
+ const userIdentityAtom = (0, jotai.atom)(void 0);
132
+ const appSourceAtom = (0, jotai.atom)((get) => get(require_enviveConfig.contextSourceAtom) ?? __spiffy_ai_commerce_api_client.ContextSourceEnum.App);
133
+ const chatIdAtom = (0, jotai_utils.atomWithStorage)("v1-spiffy-chat-session-id", (0, uuid.v4)(), void 0, { getOnInit: true });
134
+
135
+ //#endregion
136
+ Object.defineProperty(exports, 'appSourceAtom', {
137
+ enumerable: true,
138
+ get: function () {
139
+ return appSourceAtom;
140
+ }
141
+ });
142
+ Object.defineProperty(exports, 'chatIdAtom', {
143
+ enumerable: true,
144
+ get: function () {
145
+ return chatIdAtom;
146
+ }
147
+ });
148
+ Object.defineProperty(exports, 'hasParsedVariantInfoAtom', {
149
+ enumerable: true,
150
+ get: function () {
151
+ return hasParsedVariantInfoAtom;
152
+ }
153
+ });
154
+ Object.defineProperty(exports, 'supportedEventAtom', {
155
+ enumerable: true,
156
+ get: function () {
157
+ return supportedEventAtom;
158
+ }
159
+ });
160
+ Object.defineProperty(exports, 'userIdAtom', {
161
+ enumerable: true,
162
+ get: function () {
163
+ return userIdAtom;
164
+ }
165
+ });
166
+ Object.defineProperty(exports, 'userIdentityAtom', {
167
+ enumerable: true,
168
+ get: function () {
169
+ return userIdentityAtom;
170
+ }
171
+ });
172
+ Object.defineProperty(exports, 'variantInfoAtom', {
173
+ enumerable: true,
174
+ get: function () {
175
+ return variantInfoAtom;
176
+ }
177
+ });
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLURONzJzcGdRLmNqcyIsIm5hbWVzIjpbInNlc3Npb25TdG9yYWdlVXRpbCIsImVudml2ZUNvbmZpZ0F0b20iLCJGZWF0dXJlR2F0ZXMiLCJTdXBwb3J0ZWRFdmVudFByb2R1Y3RDYXRlZ29yeSIsIk9yZ1Nob3J0TmFtZSIsImNvbnRleHRTb3VyY2VBdG9tIiwiQ29udGV4dFNvdXJjZUVudW0iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvYXBwL3ZhcmlhbnQudHMiLCIuLi9zcmMvYXRvbXMvYXBwL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0b21XaXRoU3RvcmFnZSB9IGZyb20gXCJqb3RhaS91dGlsc1wiO1xuaW1wb3J0IHsgYXRvbSB9IGZyb20gXCJqb3RhaVwiO1xuaW1wb3J0IHtcbiAgU3VwcG9ydGVkRXZlbnRQcm9kdWN0Q2F0ZWdvcnksXG4gIFN1cHBvcnRlZEV2ZW50UmVzcG9uc2UsXG4gIFBhZ2VWaXNpdENhdGVnb3J5LFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQge1xuICBQYWdlVmlzaXRWYXJpYW50SW5mbyxcbiAgUERQVmFyaWFudEluZm8sXG4gIFBMUFZhcmlhbnRJbmZvLFxuICBWYXJpYW50SW5mbyxcbiAgRmVhdHVyZUdhdGVzLFxuICBPcmdTaG9ydE5hbWUsXG59IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzXCI7XG5pbXBvcnQgeyBzZXNzaW9uU3RvcmFnZVV0aWwgfSBmcm9tIFwic3JjL2F0b21zL2F0b21TdG9yZS9hdG9tU3RvcmVcIjtcbmltcG9ydCB7IGVudml2ZUNvbmZpZ0F0b20gfSBmcm9tIFwic3JjL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWdcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdXBwb3J0ZWRFdmVudFxuICBleHRlbmRzIFBpY2s8XG4gICAgU3VwcG9ydGVkRXZlbnRSZXNwb25zZSxcbiAgICBcInN1cHBvcnRlZFwiIHwgXCJyZWFkeVwiIHwgXCJjYXRlZ29yeVwiIHwgXCJjb2xsZWN0aW9uc1wiIHwgXCJ0b3BfY2F0ZWdvcnlcIlxuICA+IHtcbiAgbnVtYmVyT2ZSZXZpZXdzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIG1lcmNoYW50X3RhZ3M/OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIFBEUEF0dHJpYnV0ZXMge1xuICBwcm9kdWN0X2lkPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUExQQXR0cmlidXRlcyB7XG4gIGF0dHJpYnV0ZXM/OiB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2aW5nUERQQ29uZmlnIHtcbiAgcGRwX2F0dHJpYnV0ZXM6IFBEUEF0dHJpYnV0ZXM7XG4gIG51bWJlcl9vZl9yZXZpZXdzPzogbnVtYmVyO1xuICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXJsUmVzb2x2aW5nUExQQ29uZmlnIHtcbiAgcGxwX2F0dHJpYnV0ZXM6IFBMUEF0dHJpYnV0ZXM7XG4gIHRvcF9jYXRlZ29yeT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFVybFJlc29sdmluZ0dlbmVyaWNDb25maWcge1xuICBkZXRhaWxzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdlVmFyaWFudENoZWNrQ29uZmlnID0ge1xuICBjaGVja190eXBlOiBzdHJpbmc7XG4gIGZlYXR1cmVfZ2F0ZT86IHN0cmluZztcbiAgZXh0cmFjdG9yPzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBtYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gIH07XG4gIHByb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwcm9kdWN0X2lkcz86IHN0cmluZ1tdO1xuICBwbHBfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwbHBfaWRzPzogc3RyaW5nW107XG4gIGNvbGxlY3Rpb25zPzogc3RyaW5nW107XG4gIHF1ZXJ5X3BhcmFtPzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgdG9wX2NhdGVnb3J5Pzogc3RyaW5nW107XG4gIHJldmlld19taW5pbXVtPzogbnVtYmVyO1xuICBtZXJjaGFudF90YWdzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrZW5kV2lkZ2V0TW91bnRpbmdDb25maWcgPSB7XG4gIG1vdW50aW5nX2NvbmZpZ19pZDogc3RyaW5nO1xuICB3aWRnZXRfY29uZmlnX2lkPzogc3RyaW5nO1xuICBtb3VudGluZ19wb2ludF93aWRnZXRzPzogQXJyYXk8e1xuICAgIGNoZWNrczogUGFnZVZhcmlhbnRDaGVja0NvbmZpZ1tdO1xuICAgIHdpZGdldF9jb25maWdfaWQ6IHN0cmluZztcbiAgfT47XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrZW5kUGFnZVZhcmlhbnRDb25maWcgPSB7XG4gIHZhcmlhbnRfaWQ6IHN0cmluZztcbiAgdmFyaWFudF90eXBlOiBzdHJpbmc7XG4gIHZhcmlhbnRfY2hlY2tzOiBQYWdlVmFyaWFudENoZWNrQ29uZmlnW107XG4gIHdpZGdldF9tb3VudGluZzogQmFja2VuZFdpZGdldE1vdW50aW5nQ29uZmlnW107XG4gIHBscF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG4gIHByb2R1Y3RfaWRfZXh0cmFjdG9yPzogc3RyaW5nO1xuICBwYXJlbnRfcHJvZHVjdF9pZF9leHRyYWN0b3I/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFVybFJlc29sdmVyUmVzcG9uc2Uge1xuICB2YXJpYW50X3R5cGU6IHN0cmluZztcbiAgc3BlY2lmaWNfZGV0YWlsczpcbiAgICB8IFVybFJlc29sdmluZ1BEUENvbmZpZ1xuICAgIHwgVXJsUmVzb2x2aW5nUExQQ29uZmlnXG4gICAgfCBVcmxSZXNvbHZpbmdHZW5lcmljQ29uZmlnO1xuICByZWFkeTogYm9vbGVhbjtcbiAgdXNlcl9ldmVudD86IHtcbiAgICBldmVudF9pZD86IHN0cmluZztcbiAgICBhdHRyaWJ1dGVzPzogUERQQXR0cmlidXRlcyB8IFBMUEF0dHJpYnV0ZXM7XG4gICAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gICAgY3JlYXRlZF9hdD86IHN0cmluZztcbiAgfTtcbiAgcGFnZV92YXJpYW50PzogQmFja2VuZFBhZ2VWYXJpYW50Q29uZmlnO1xufVxuXG4vLyBVc2UgYSBtYXAgZm9yIHBlci1VUkwgY2FjaGVcbmV4cG9ydCB0eXBlIFVybFJlc29sdmVyQ2FjaGUgPSBSZWNvcmQ8c3RyaW5nLCBVcmxSZXNvbHZlclJlc3BvbnNlIHwgdW5kZWZpbmVkPjtcblxuY29uc3QgaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tID0gYXRvbVdpdGhTdG9yYWdlPHN0cmluZyB8IHVuZGVmaW5lZD4oXG4gIFwic3BpZmZ5LXVybC1yZXNvbHZlclwiLFxuICB1bmRlZmluZWQsXG4gIHNlc3Npb25TdG9yYWdlVXRpbCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IHVybFJlc29sdmVyQXRvbSA9IGF0b20oXG4gIChnZXQpOiBVcmxSZXNvbHZlckNhY2hlID0+IHtcbiAgICBjb25zdCBtYXliZVVybFJlc29sdmVyID0gZ2V0KGludGVybmFsU3RvcmFnZVVybFJlc29sdmVyQXRvbSk7XG4gICAgaWYgKG1heWJlVXJsUmVzb2x2ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5wYXJzZShtYXliZVVybFJlc29sdmVyKTtcbiAgfSxcbiAgKFxuICAgIGdldCxcbiAgICBzZXQsXG4gICAgdmFsdWU6IHsgdXJsOiBzdHJpbmc7IHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgdW5kZWZpbmVkIH1cbiAgKSA9PiB7XG4gICAgLy8gR2V0IGN1cnJlbnQgY2FjaGUgZnJvbSBzdG9yYWdlXG4gICAgY29uc3QgY3VycmVudENhY2hlID0gZ2V0KHVybFJlc29sdmVyQXRvbSk7XG4gICAgY29uc3QgbmV3Q2FjaGUgPSB7IC4uLmN1cnJlbnRDYWNoZSwgW3ZhbHVlLnVybF06IHZhbHVlLnJlc3BvbnNlIH07XG5cbiAgICBzZXQoaW50ZXJuYWxTdG9yYWdlVXJsUmVzb2x2ZXJBdG9tLCBKU09OLnN0cmluZ2lmeShuZXdDYWNoZSkpO1xuICB9XG4pO1xuXG5jb25zdCBpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tV2l0aFN0b3JhZ2U8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgXCJzcGlmZnktc3VwcG9ydGVkLWV2ZW50XCIsXG4gIHVuZGVmaW5lZCxcbiAgc2Vzc2lvblN0b3JhZ2VVdGlsLFxuICB7XG4gICAgZ2V0T25Jbml0OiB0cnVlLFxuICB9XG4pO1xuY29uc3QgaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tPFN1cHBvcnRlZEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5jb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2VBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgY29uc3QgZmVhdHVyZU92ZXJyaWRlcyA9IGNvbmZpZz8uZmVhdHVyZU92ZXJyaWRlcztcbiAgcmV0dXJuIHtcbiAgICBpc0ZlYXR1cmVHYXRlRW5hYmxlZDogKGdhdGU6IHN0cmluZykgPT4gZmVhdHVyZU92ZXJyaWRlcz8uW2dhdGVdIHx8IGZhbHNlLFxuICB9O1xufSk7XG5cbmV4cG9ydCBjb25zdCBzdXBwb3J0ZWRFdmVudEF0b20gPSBhdG9tKFxuICAoZ2V0KTogU3VwcG9ydGVkRXZlbnQgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IG1heWJlU3VwcG9ydGVkRXZlbnQgPSBnZXQoaW50ZXJuYWxTdG9yYWdlU3VwcG9ydGVkRXZlbnRBdG9tKTtcbiAgICBpZiAobWF5YmVTdXBwb3J0ZWRFdmVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRPRE8gdGhpcyBpcyBhbiB1bnZhbGlkYXRlZCBwYXJzZS4gSXQgbWF5IGJlIGJldHRlciB0byBpbXBsZW1lbnQgYSBjdXN0b20gc3RvcmFnZSB1dGlsXG4gICAgLy8gYW5kIHBlcmZvcm0gdGhlIG9iamVjdCB2YWxpZGF0aW9uIG9uIFwiZ2V0XCIgdGhlcmUuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UobWF5YmVTdXBwb3J0ZWRFdmVudCk7XG4gIH0sXG4gIChnZXQsIHNldCwgdmFsdWU6IFN1cHBvcnRlZEV2ZW50IHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHNldChpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20sIHVuZGVmaW5lZCk7XG4gICAgICBzZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20sIHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gZ2V0KGZlYXR1cmVGbGFnU2VydmljZUF0b20pO1xuICAgIGNvbnN0IG1heWJlU3VwcG9ydGVkRXZlbnQgPSBnZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20pO1xuICAgIGNvbnN0IHZhcmlhbnRDYXRlZ29yeSA9IG1heWJlU3VwcG9ydGVkRXZlbnQ/LmNhdGVnb3J5O1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldChlbnZpdmVDb25maWdBdG9tKTtcbiAgICBjb25zdCBvcmdTaG9ydE5hbWUgPSBjb25maWc/Lm9yZ1Nob3J0TmFtZTtcblxuICAgIC8vIFRPRE86IGNsZWFuIHVwIHRoaXMgbG9naWMgJiB0aGUgZmVhdHVyZSBnYXRlIHdoZW4gd2UndmUgZnVsbHkgcm9sbGVkIG91dFxuICAgIGlmIChcbiAgICAgIGZlYXR1cmVGbGFnU2VydmljZSAmJlxuICAgICAgIWZlYXR1cmVGbGFnU2VydmljZS5pc0ZlYXR1cmVHYXRlRW5hYmxlZChcbiAgICAgICAgRmVhdHVyZUdhdGVzLklzTm9uU2hhcGV3ZWFyRW5hYmxlZFxuICAgICAgKSAmJlxuICAgICAgdmFyaWFudENhdGVnb3J5ICYmXG4gICAgICB2YXJpYW50Q2F0ZWdvcnkgIT09IFN1cHBvcnRlZEV2ZW50UHJvZHVjdENhdGVnb3J5LlNoYXBld2VhciAmJlxuICAgICAgKG9yZ1Nob3J0TmFtZSA9PT0gT3JnU2hvcnROYW1lLlNwYW54IHx8XG4gICAgICAgIG9yZ1Nob3J0TmFtZSA9PT0gT3JnU2hvcnROYW1lLlNwYW54U3RhZ2luZylcbiAgICApIHtcbiAgICAgIGNvbnN0IG1vZGlmaWVkU3VwcG9ydGVkRXZlbnQgPSB7XG4gICAgICAgIHN1cHBvcnRlZDogZmFsc2UsXG4gICAgICAgIHJlYWR5OiB2YWx1ZS5yZWFkeSxcbiAgICAgICAgY2F0ZWdvcnk6IHZhbHVlLmNhdGVnb3J5LFxuICAgICAgICBudW1iZXJPZlJldmlld3M6IHZhbHVlLm51bWJlck9mUmV2aWV3cyxcbiAgICAgICAgY29sbGVjdGlvbnM6IHZhbHVlLmNvbGxlY3Rpb25zLFxuICAgICAgICB0b3BfY2F0ZWdvcnk6IHZhbHVlLnRvcF9jYXRlZ29yeSxcbiAgICAgICAgbWVyY2hhbnRfdGFnczogdmFsdWUubWVyY2hhbnRfdGFncyxcbiAgICAgIH07XG4gICAgICBzZXQoaW50ZXJuYWxTdXBwb3J0ZWRFdmVudEF0b20sIG1vZGlmaWVkU3VwcG9ydGVkRXZlbnQpO1xuICAgICAgc2V0KFxuICAgICAgICBpbnRlcm5hbFN0b3JhZ2VTdXBwb3J0ZWRFdmVudEF0b20sXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KG1vZGlmaWVkU3VwcG9ydGVkRXZlbnQpXG4gICAgICApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2V0KGludGVybmFsU3VwcG9ydGVkRXZlbnRBdG9tLCB2YWx1ZSk7XG4gICAgc2V0KGludGVybmFsU3RvcmFnZVN1cHBvcnRlZEV2ZW50QXRvbSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgfVxuKTtcblxuY29uc3QgaW50ZXJuYWxWYXJpYW50SWRBdG9tID0gYXRvbTxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcm5hbFByb2R1Y3RJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsUGFyZW50UHJvZHVjdElkQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQcm9kdWN0VXJsQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQbHBJZEF0b20gPSBhdG9tPHN0cmluZz4oKTtcbmNvbnN0IGludGVybmFsVXJsQXRvbSA9IGF0b208c3RyaW5nPigpO1xuY29uc3QgaW50ZXJuYWxQYWdlVmlzaXRDYXRlZ29yeUF0b20gPSBhdG9tPFBhZ2VWaXNpdENhdGVnb3J5PigpO1xuY29uc3QgaW50ZXJuYWxWYXJpYW50QXRvbSA9IGF0b208XCJwZHBcIiB8IFwicGxwXCIgfCBcInNlYXJjaFwiIHwgXCJwYWdlX3Zpc2l0XCI+KFxuICBcInBkcFwiXG4pO1xuXG5leHBvcnQgY29uc3QgdmFyaWFudElkQXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsVmFyaWFudElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RJZEF0b20gPSBhdG9tKChnZXQpID0+IGdldChpbnRlcm5hbFByb2R1Y3RJZEF0b20pKTtcbmV4cG9ydCBjb25zdCBwYXJlbnRQcm9kdWN0SWRBdG9tID0gYXRvbSgoZ2V0KSA9PlxuICBnZXQoaW50ZXJuYWxQYXJlbnRQcm9kdWN0SWRBdG9tKVxuKTtcbmV4cG9ydCBjb25zdCBwcm9kdWN0VXJsQXRvbSA9IGF0b20oKGdldCkgPT4gZ2V0KGludGVybmFsUHJvZHVjdFVybEF0b20pKTtcbmV4cG9ydCBjb25zdCBwbHBJZEF0b20gPSBhdG9tKChnZXQpID0+IGdldChpbnRlcm5hbFBscElkQXRvbSkpO1xuZXhwb3J0IGNvbnN0IHVybEF0b20gPSBhdG9tKChnZXQpID0+IGdldChpbnRlcm5hbFVybEF0b20pKTtcbmV4cG9ydCBjb25zdCBwYWdlVmlzaXRDYXRlZ29yeUF0b20gPSBhdG9tKChnZXQpID0+XG4gIGdldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSlcbik7XG5leHBvcnQgY29uc3QgdmFyaWFudEF0b20gPSBhdG9tKChnZXQpID0+IGdldChpbnRlcm5hbFZhcmlhbnRBdG9tKSk7XG5leHBvcnQgY29uc3QgaGFzUGFyc2VkVmFyaWFudEluZm9BdG9tID0gYXRvbShmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCB2YXJpYW50SW5mb0F0b20gPSBhdG9tKFxuICAoZ2V0KTogVmFyaWFudEluZm8gPT4ge1xuICAgIGNvbnN0IHZhcmlhbnQgPSBnZXQodmFyaWFudEF0b20pO1xuICAgIGlmICh2YXJpYW50ID09PSBcInBkcFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgcHJvZHVjdElkOiBnZXQocHJvZHVjdElkQXRvbSksXG4gICAgICAgIHBhcmVudFByb2R1Y3RJZDogZ2V0KHBhcmVudFByb2R1Y3RJZEF0b20pLFxuICAgICAgICB1cmw6IGdldCh1cmxBdG9tKSxcbiAgICAgIH0gYXMgUERQVmFyaWFudEluZm87XG4gICAgfVxuICAgIGlmICh2YXJpYW50ID09PSBcInBscFwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YXJpYW50SWQ6IGdldCh2YXJpYW50SWRBdG9tKSxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgcGxwSWQ6IGdldChwbHBJZEF0b20pLFxuICAgICAgICB1cmw6IGdldCh1cmxBdG9tKSxcbiAgICAgIH0gYXMgUExQVmFyaWFudEluZm87XG4gICAgfVxuICAgIGlmICh2YXJpYW50ID09PSBcInBhZ2VfdmlzaXRcIikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFyaWFudElkOiBnZXQodmFyaWFudElkQXRvbSksXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHVybDogZ2V0KHVybEF0b20pLFxuICAgICAgICBwYWdlVmlzaXRDYXRlZ29yeTogZ2V0KHBhZ2VWaXNpdENhdGVnb3J5QXRvbSksXG4gICAgICB9IGFzIFBhZ2VWaXNpdFZhcmlhbnRJbmZvO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHZhcmlhbnRJbmZvIGRldGFpbHNcIik7XG4gIH0sXG4gIChfLCBzZXQsIG5ld1ZhcmlhbnQ6IFZhcmlhbnRJbmZvKSA9PiB7XG4gICAgc2V0KGludGVybmFsVmFyaWFudEF0b20sIG5ld1ZhcmlhbnQudmFyaWFudCk7XG4gICAgc2V0KGludGVybmFsVmFyaWFudElkQXRvbSwgbmV3VmFyaWFudC52YXJpYW50SWQpO1xuICAgIGlmIChuZXdWYXJpYW50LnZhcmlhbnQgPT09IFwicGRwXCIpIHtcbiAgICAgIHNldChpbnRlcm5hbFByb2R1Y3RJZEF0b20sIG5ld1ZhcmlhbnQucHJvZHVjdElkKTtcbiAgICAgIHNldChpbnRlcm5hbFBhcmVudFByb2R1Y3RJZEF0b20sIG5ld1ZhcmlhbnQucGFyZW50UHJvZHVjdElkKTtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gXCJwbHBcIikge1xuICAgICAgc2V0KGludGVybmFsUGxwSWRBdG9tLCBuZXdWYXJpYW50LnBscElkKTtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhcmlhbnQudmFyaWFudCA9PT0gXCJwYWdlX3Zpc2l0XCIpIHtcbiAgICAgIHNldChpbnRlcm5hbFVybEF0b20sIG5ld1ZhcmlhbnQudXJsKTtcbiAgICAgIHNldChpbnRlcm5hbFBhZ2VWaXNpdENhdGVnb3J5QXRvbSwgbmV3VmFyaWFudC5wYWdlVmlzaXRDYXRlZ29yeSk7XG4gICAgfVxuICB9XG4pO1xuIiwiaW1wb3J0IHtcbiAgQ29udGV4dEVudkVudW0sXG4gIENvbnRleHRTb3VyY2VFbnVtLFxufSBmcm9tIFwiQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50XCI7XG5pbXBvcnQgeyBhdG9tIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyBhdG9tV2l0aFN0b3JhZ2UgfSBmcm9tIFwiam90YWkvdXRpbHNcIjtcbmltcG9ydCB7IFZhcmlhbnRJbmZvIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi9tb2RlbHNcIjtcbmltcG9ydCB7IFVzZXJJZGVudGl0eUNvbnRleHRUeXBlIH0gZnJvbSBcInNyYy9jb250ZXh0cy91c2VySWRlbnRpdHlDb250ZXh0L3VzZXJJZGVudGl0eUNvbnRleHRcIjtcbmltcG9ydCB7IHZhcmlhbnRJbmZvQXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvYXBwL3ZhcmlhbnRcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgY29udGV4dFNvdXJjZUF0b20gfSBmcm9tIFwiLi4vZW52aXZlL2Vudml2ZUNvbmZpZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcERldGFpbHMge1xuICBvcmdJZDogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU6IHN0cmluZztcbiAgY2hhdElkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBzb3VyY2U6IENvbnRleHRTb3VyY2VFbnVtO1xuICBlbnY6IENvbnRleHRFbnZFbnVtO1xuICB2YXJpYW50SW5mbzogVmFyaWFudEluZm87XG59XG5cbmV4cG9ydCB7IHZhcmlhbnRJbmZvQXRvbSB9IGZyb20gXCIuL3ZhcmlhbnRcIjtcblxuY29uc3QgaW50ZXJuYWxVc2VySWRBdG9tID0gYXRvbTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCB1c2VySWRBdG9tID0gYXRvbShcbiAgKGdldCkgPT4ge1xuICAgIGNvbnN0IG1heWJlVXNlcklkID0gZ2V0KGludGVybmFsVXNlcklkQXRvbSk7XG5cbiAgICBpZiAobWF5YmVVc2VySWQpIHtcbiAgICAgIHJldHVybiBtYXliZVVzZXJJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0KHVzZXJJZGVudGl0eUF0b20pPy5nZXRVc2VySWRPckRlZmF1bHQoKSA/PyBcIlwiO1xuICB9LFxuICAoXywgc2V0LCB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgc2V0KGludGVybmFsVXNlcklkQXRvbSwgdmFsdWUpO1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgdXNlcklkZW50aXR5QXRvbSA9IGF0b208VXNlcklkZW50aXR5Q29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KFxuICB1bmRlZmluZWRcbik7XG5cbmV4cG9ydCBjb25zdCBhcHBTb3VyY2VBdG9tID0gYXRvbTxDb250ZXh0U291cmNlRW51bT4oXG4gIChnZXQpOiBDb250ZXh0U291cmNlRW51bSA9PiBnZXQoY29udGV4dFNvdXJjZUF0b20pID8/IENvbnRleHRTb3VyY2VFbnVtLkFwcFxuKTtcbmV4cG9ydCBjb25zdCBjaGF0SWRBdG9tID0gYXRvbVdpdGhTdG9yYWdlPHN0cmluZz4oXG4gIFwidjEtc3BpZmZ5LWNoYXQtc2Vzc2lvbi1pZFwiLFxuICB1dWlkKCksXG4gIHVuZGVmaW5lZCxcbiAge1xuICAgIGdldE9uSW5pdDogdHJ1ZSxcbiAgfVxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBK0dBLE1BQU0sa0VBQ0osdUJBQ0EsUUFDQUEsc0NBQ0EsRUFDRSxXQUFXLE1BQ1osQ0FDRjtBQUVELE1BQWEsbUNBQ1YsUUFBMEI7Q0FDekIsTUFBTSxtQkFBbUIsSUFBSSwrQkFBK0I7QUFDNUQsS0FBSSxvQkFBb0IsS0FDdEIsUUFBTyxFQUFFO0FBRVgsUUFBTyxLQUFLLE1BQU0saUJBQWlCO0lBR25DLEtBQ0EsS0FDQSxVQUNHO0NBR0gsTUFBTSxXQUFXO0VBQUUsR0FERSxJQUFJLGdCQUFnQjtHQUNKLE1BQU0sTUFBTSxNQUFNO0VBQVU7QUFFakUsS0FBSSxnQ0FBZ0MsS0FBSyxVQUFVLFNB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
@@ -0,0 +1,5 @@
1
+ require('../../../urlsParser-BV5yF8sa.cjs');
2
+ const require_graphql = require('../../../graphql-B9HhDXYt.cjs');
3
+
4
+ exports.getMerchantColorsQuery = require_graphql.getMerchantColorsQuery;
5
+ exports.getMerchantFrontendConfigQuery = require_graphql.getMerchantFrontendConfigQuery;
@@ -0,0 +1,2 @@
1
+ import { GetMerchantColorsQueryData, GetMerchantFrontendConfigQueryData, MountingConfigQueryData, PageVariantCheckQueryData, PageVariantQueryData, UIConfigQueryData, WidgetConfigQueryData, WidgetMountingQueryData, getMerchantColorsQuery, getMerchantFrontendConfigQuery } from "../../../index-Bmub8e38.cjs";
2
+ export { GetMerchantColorsQueryData, GetMerchantFrontendConfigQueryData, MountingConfigQueryData, PageVariantCheckQueryData, PageVariantQueryData, UIConfigQueryData, WidgetConfigQueryData, WidgetMountingQueryData, getMerchantColorsQuery, getMerchantFrontendConfigQuery };
@@ -0,0 +1,2 @@
1
+ import { GetMerchantColorsQueryData, GetMerchantFrontendConfigQueryData, MountingConfigQueryData, PageVariantCheckQueryData, PageVariantQueryData, UIConfigQueryData, WidgetConfigQueryData, WidgetMountingQueryData, getMerchantColorsQuery, getMerchantFrontendConfigQuery } from "../../../index-Dr_c2DDq.js";
2
+ export { GetMerchantColorsQueryData, GetMerchantFrontendConfigQueryData, MountingConfigQueryData, PageVariantCheckQueryData, PageVariantQueryData, UIConfigQueryData, WidgetConfigQueryData, WidgetMountingQueryData, getMerchantColorsQuery, getMerchantFrontendConfigQuery };
@@ -0,0 +1,4 @@
1
+ import "../../../urlsParser-DUgV_Qy9.js";
2
+ import { getMerchantColorsQuery, getMerchantFrontendConfigQuery } from "../../../graphql-W7GMIHUu.js";
3
+
4
+ export { getMerchantColorsQuery, getMerchantFrontendConfigQuery };
@@ -0,0 +1,16 @@
1
+ require('../../../../utils-Cavu4XiM.cjs');
2
+ const require_api = require('../../../../api-Bc3_julZ.cjs');
3
+ require('../../../../logger-Cp7J4YJT.cjs');
4
+
5
+ exports.isApiPDPAttributes = require_api.isApiPDPAttributes;
6
+ exports.isApiProductResponseAttributes = require_api.isApiProductResponseAttributes;
7
+ exports.isApiProductSearchResponseAttributes = require_api.isApiProductSearchResponseAttributes;
8
+ exports.isApiQueryTypedAttributes = require_api.isApiQueryTypedAttributes;
9
+ exports.isApiResponse = require_api.isApiResponse;
10
+ exports.isApiReviewResponseAttributes = require_api.isApiReviewResponseAttributes;
11
+ exports.isApiReviewRichInformation = require_api.isApiReviewRichInformation;
12
+ exports.isApiSearchAttributes = require_api.isApiSearchAttributes;
13
+ exports.isApiSuggestionClickedAttributes = require_api.isApiSuggestionClickedAttributes;
14
+ exports.isApiTextResponseAttributes = require_api.isApiTextResponseAttributes;
15
+ exports.isApiUserEvent = require_api.isApiUserEvent;
16
+ exports.isSuggestion = require_api.isSuggestion;
@@ -0,0 +1,3 @@
1
+ import { isApiPDPAttributes, isApiProductResponseAttributes, isApiProductSearchResponseAttributes, isApiQueryTypedAttributes, isApiResponse, isApiReviewResponseAttributes, isApiReviewRichInformation, isApiSearchAttributes, isApiSuggestionClickedAttributes, isApiTextResponseAttributes, isApiUserEvent, isSuggestion } from "../../../../index-CiWEYzXl.cjs";
2
+ import "../../../../index-CESxqFso.cjs";
3
+ export { isApiPDPAttributes, isApiProductResponseAttributes, isApiProductSearchResponseAttributes, isApiQueryTypedAttributes, isApiResponse, isApiReviewResponseAttributes, isApiReviewRichInformation, isApiSearchAttributes, isApiSuggestionClickedAttributes, isApiTextResponseAttributes, isApiUserEvent, isSuggestion };