@envive-ai/react-hooks 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +35 -0
  2. package/dist/AmplitudeOperations-BEGeYKG5.cjs +0 -0
  3. package/dist/AmplitudeOperations-CWI4yjZ4.js +1 -0
  4. package/dist/NewOrgConfig-B98Y9tMb.js +10 -0
  5. package/dist/NewOrgConfig-ZbBKiByQ.cjs +15 -0
  6. package/dist/SystemSettingsContext-CO5c1L62.cjs +20 -0
  7. package/dist/SystemSettingsContext-CXmUlH8i.js +13 -0
  8. package/dist/TrackComponentVisibleEvent-B0WO3ArV.js +52 -0
  9. package/dist/TrackComponentVisibleEvent-LRE9MYzL.cjs +59 -0
  10. package/dist/amplitudeContext-B73xamNe.d.cts +52 -0
  11. package/dist/amplitudeContext-DXnJi0V1.d.ts +52 -0
  12. package/dist/api-BWSsazAG.js +166 -0
  13. package/dist/api-DeW6rHj3.cjs +239 -0
  14. package/dist/application/models/graphql/index.cjs +5 -0
  15. package/dist/application/models/graphql/index.d.cts +2 -0
  16. package/dist/application/models/graphql/index.d.ts +2 -0
  17. package/dist/application/models/graphql/index.js +4 -0
  18. package/dist/application/models/guards/api/index.cjs +16 -0
  19. package/dist/application/models/guards/api/index.d.cts +3 -0
  20. package/dist/application/models/guards/api/index.d.ts +3 -0
  21. package/dist/application/models/guards/api/index.js +5 -0
  22. package/dist/application/models/guards/utils.cjs +3 -0
  23. package/dist/application/models/guards/utils.d.cts +2 -0
  24. package/dist/application/models/guards/utils.d.ts +2 -0
  25. package/dist/application/models/guards/utils.js +3 -0
  26. package/dist/application/models/index.cjs +70 -0
  27. package/dist/application/models/index.d.cts +12 -0
  28. package/dist/application/models/index.d.ts +12 -0
  29. package/dist/application/models/index.js +12 -0
  30. package/dist/application/models/utilityTypes/index.cjs +1 -0
  31. package/dist/application/models/utilityTypes/index.d.cts +2 -0
  32. package/dist/application/models/utilityTypes/index.d.ts +2 -0
  33. package/dist/application/models/utilityTypes/index.js +3 -0
  34. package/dist/application/models/variantInfo/index.cjs +3 -0
  35. package/dist/application/models/variantInfo/index.d.cts +2 -0
  36. package/dist/application/models/variantInfo/index.d.ts +2 -0
  37. package/dist/application/models/variantInfo/index.js +3 -0
  38. package/dist/application/utils/index.cjs +47 -0
  39. package/dist/application/utils/index.d.cts +263 -0
  40. package/dist/application/utils/index.d.ts +263 -0
  41. package/dist/application/utils/index.js +21 -0
  42. package/dist/atomStore-DNji91Im.cjs +58 -0
  43. package/dist/atomStore-DXTVqiKc.js +32 -0
  44. package/dist/atoms/app/index.cjs +25 -0
  45. package/dist/atoms/app/index.d.cts +39 -0
  46. package/dist/atoms/app/index.d.ts +39 -0
  47. package/dist/atoms/app/index.js +21 -0
  48. package/dist/atoms/atomStore/index.cjs +6 -0
  49. package/dist/atoms/atomStore/index.d.cts +24 -0
  50. package/dist/atoms/atomStore/index.d.ts +24 -0
  51. package/dist/atoms/atomStore/index.js +3 -0
  52. package/dist/atoms/chat/index.cjs +52 -0
  53. package/dist/atoms/chat/index.d.cts +163 -0
  54. package/dist/atoms/chat/index.d.ts +163 -0
  55. package/dist/atoms/chat/index.js +23 -0
  56. package/dist/atoms/globalSearch/index.cjs +6 -0
  57. package/dist/atoms/globalSearch/index.d.cts +24 -0
  58. package/dist/atoms/globalSearch/index.d.ts +24 -0
  59. package/dist/atoms/globalSearch/index.js +3 -0
  60. package/dist/atoms/org/index.cjs +18 -0
  61. package/dist/atoms/org/index.d.cts +59 -0
  62. package/dist/atoms/org/index.d.ts +59 -0
  63. package/dist/atoms/org/index.js +5 -0
  64. package/dist/atoms/search/index.cjs +60 -0
  65. package/dist/atoms/search/index.d.cts +14 -0
  66. package/dist/atoms/search/index.d.ts +14 -0
  67. package/dist/atoms/search/index.js +30 -0
  68. package/dist/atoms/search/types.cjs +5 -0
  69. package/dist/atoms/search/types.d.cts +2 -0
  70. package/dist/atoms/search/types.d.ts +2 -0
  71. package/dist/atoms/search/types.js +3 -0
  72. package/dist/atoms/search/utils.cjs +3 -0
  73. package/dist/atoms/search/utils.d.cts +5 -0
  74. package/dist/atoms/search/utils.d.ts +5 -0
  75. package/dist/atoms/search/utils.js +3 -0
  76. package/dist/cdnContext-CH_-ssYa.js +38 -0
  77. package/dist/cdnContext-D7kHxOzE.cjs +53 -0
  78. package/dist/chat-ClvJ9xEj.js +25 -0
  79. package/dist/chat-CqPuT9_V.cjs +393 -0
  80. package/dist/chat-DCGriB7h.cjs +145 -0
  81. package/dist/chat-DH70QqJp.js +257 -0
  82. package/dist/chatElementDisplayLocation-BoE6DEdv.d.ts +25 -0
  83. package/dist/chatElementDisplayLocation-DWmfNX_u.d.cts +25 -0
  84. package/dist/chatSearch-BQCZI8MJ.cjs +418 -0
  85. package/dist/chatSearch-D8xCWU8m.js +295 -0
  86. package/dist/chatState-CcFtSqJT.cjs +120 -0
  87. package/dist/chatState-DKnNHmwe.js +34 -0
  88. package/dist/chunk-CUT6urMc.cjs +30 -0
  89. package/dist/common-DQPvV_S_.cjs +189 -0
  90. package/dist/common-c_4eX0qn.js +39 -0
  91. package/dist/components-CDpaMUjK.js +11 -0
  92. package/dist/components-DKwVHIjq.cjs +29 -0
  93. package/dist/config/index.cjs +71 -0
  94. package/dist/config/index.d.cts +5 -0
  95. package/dist/config/index.d.ts +5 -0
  96. package/dist/config/index.js +6 -0
  97. package/dist/config/locators/components/chat/index.cjs +22 -0
  98. package/dist/config/locators/components/chat/index.d.cts +2 -0
  99. package/dist/config/locators/components/chat/index.d.ts +2 -0
  100. package/dist/config/locators/components/chat/index.js +3 -0
  101. package/dist/config/locators/components/chat/variants/index.cjs +29 -0
  102. package/dist/config/locators/components/chat/variants/index.d.cts +16 -0
  103. package/dist/config/locators/components/chat/variants/index.d.ts +16 -0
  104. package/dist/config/locators/components/chat/variants/index.js +17 -0
  105. package/dist/config/locators/components/common/index.cjs +27 -0
  106. package/dist/config/locators/components/common/index.d.cts +2 -0
  107. package/dist/config/locators/components/common/index.d.ts +2 -0
  108. package/dist/config/locators/components/common/index.js +3 -0
  109. package/dist/config/locators/components/index.cjs +5 -0
  110. package/dist/config/locators/components/index.d.cts +2 -0
  111. package/dist/config/locators/components/index.d.ts +2 -0
  112. package/dist/config/locators/components/index.js +3 -0
  113. package/dist/config/locators/components/search/index.cjs +13 -0
  114. package/dist/config/locators/components/search/index.d.cts +8 -0
  115. package/dist/config/locators/components/search/index.d.ts +8 -0
  116. package/dist/config/locators/components/search/index.js +9 -0
  117. package/dist/config/locators/index.cjs +71 -0
  118. package/dist/config/locators/index.d.cts +5 -0
  119. package/dist/config/locators/index.d.ts +5 -0
  120. package/dist/config/locators/index.js +6 -0
  121. package/dist/contexts/amplitudeContext/index.cjs +23 -0
  122. package/dist/contexts/amplitudeContext/index.d.cts +2 -0
  123. package/dist/contexts/amplitudeContext/index.d.ts +2 -0
  124. package/dist/contexts/amplitudeContext/index.js +21 -0
  125. package/dist/contexts/cdnContext/index.cjs +7 -0
  126. package/dist/contexts/cdnContext/index.d.cts +15 -0
  127. package/dist/contexts/cdnContext/index.d.ts +15 -0
  128. package/dist/contexts/cdnContext/index.js +6 -0
  129. package/dist/contexts/chatContext/index.cjs +326 -0
  130. package/dist/contexts/chatContext/index.d.cts +15 -0
  131. package/dist/contexts/chatContext/index.d.ts +15 -0
  132. package/dist/contexts/chatContext/index.js +319 -0
  133. package/dist/contexts/enviveConfigContext/index.cjs +7 -0
  134. package/dist/contexts/enviveConfigContext/index.d.cts +30 -0
  135. package/dist/contexts/enviveConfigContext/index.d.ts +30 -0
  136. package/dist/contexts/enviveConfigContext/index.js +6 -0
  137. package/dist/contexts/enviveCssContext/index.cjs +66 -0
  138. package/dist/contexts/enviveCssContext/index.d.cts +10 -0
  139. package/dist/contexts/enviveCssContext/index.d.ts +10 -0
  140. package/dist/contexts/enviveCssContext/index.js +63 -0
  141. package/dist/contexts/featureFlagContext/index.cjs +107 -0
  142. package/dist/contexts/featureFlagContext/index.d.cts +20 -0
  143. package/dist/contexts/featureFlagContext/index.d.ts +20 -0
  144. package/dist/contexts/featureFlagContext/index.js +103 -0
  145. package/dist/contexts/featureFlagServiceContext/index.cjs +7 -0
  146. package/dist/contexts/featureFlagServiceContext/index.d.cts +5 -0
  147. package/dist/contexts/featureFlagServiceContext/index.d.ts +5 -0
  148. package/dist/contexts/featureFlagServiceContext/index.js +5 -0
  149. package/dist/contexts/graphqlContext/index.cjs +16 -0
  150. package/dist/contexts/graphqlContext/index.d.cts +14 -0
  151. package/dist/contexts/graphqlContext/index.d.ts +14 -0
  152. package/dist/contexts/graphqlContext/index.js +15 -0
  153. package/dist/contexts/localStorageContext/index.cjs +6 -0
  154. package/dist/contexts/localStorageContext/index.d.cts +30 -0
  155. package/dist/contexts/localStorageContext/index.d.ts +30 -0
  156. package/dist/contexts/localStorageContext/index.js +4 -0
  157. package/dist/contexts/newOrgConfigContext/index.cjs +20 -0
  158. package/dist/contexts/newOrgConfigContext/index.d.cts +15 -0
  159. package/dist/contexts/newOrgConfigContext/index.d.ts +15 -0
  160. package/dist/contexts/newOrgConfigContext/index.js +19 -0
  161. package/dist/contexts/searchContext/index.cjs +27 -0
  162. package/dist/contexts/searchContext/index.d.cts +16 -0
  163. package/dist/contexts/searchContext/index.d.ts +16 -0
  164. package/dist/contexts/searchContext/index.js +26 -0
  165. package/dist/contexts/sessionStorageContext/index.cjs +5 -0
  166. package/dist/contexts/sessionStorageContext/index.d.cts +15 -0
  167. package/dist/contexts/sessionStorageContext/index.d.ts +15 -0
  168. package/dist/contexts/sessionStorageContext/index.js +4 -0
  169. package/dist/contexts/shopifyUrlContext/index.cjs +5 -0
  170. package/dist/contexts/shopifyUrlContext/index.d.cts +20 -0
  171. package/dist/contexts/shopifyUrlContext/index.d.ts +20 -0
  172. package/dist/contexts/shopifyUrlContext/index.js +4 -0
  173. package/dist/contexts/systemSettingsContext/index.cjs +8 -0
  174. package/dist/contexts/systemSettingsContext/index.d.cts +37 -0
  175. package/dist/contexts/systemSettingsContext/index.d.ts +37 -0
  176. package/dist/contexts/systemSettingsContext/index.js +6 -0
  177. package/dist/contexts/types.cjs +7 -0
  178. package/dist/contexts/types.d.cts +4 -0
  179. package/dist/contexts/types.d.ts +4 -0
  180. package/dist/contexts/types.js +3 -0
  181. package/dist/contexts/userIdentityContext/index.cjs +22 -0
  182. package/dist/contexts/userIdentityContext/index.d.cts +2 -0
  183. package/dist/contexts/userIdentityContext/index.d.ts +2 -0
  184. package/dist/contexts/userIdentityContext/index.js +21 -0
  185. package/dist/domObserver-Bqf3ooj8.cjs +304 -0
  186. package/dist/domObserver-v9ODTyfT.js +285 -0
  187. package/dist/enviveConfig-DZBohDpc.js +62 -0
  188. package/dist/enviveConfig-Dv9-esGV.cjs +130 -0
  189. package/dist/enviveConfigContext-D2OELZDR.cjs +60 -0
  190. package/dist/enviveConfigContext-DrDjCems.js +45 -0
  191. package/dist/events/index.cjs +4 -0
  192. package/dist/events/index.d.cts +46 -0
  193. package/dist/events/index.d.ts +46 -0
  194. package/dist/events/index.js +3 -0
  195. package/dist/events-DYY4l817.cjs +90 -0
  196. package/dist/events-DyUix-Bn.js +78 -0
  197. package/dist/featureFlagServiceContext-CJyYItqu.cjs +62 -0
  198. package/dist/featureFlagServiceContext-C_2m4wPL.d.ts +23 -0
  199. package/dist/featureFlagServiceContext-CiKWV306.d.cts +23 -0
  200. package/dist/featureFlagServiceContext-FBM6DdMJ.js +42 -0
  201. package/dist/featureGates-KEwAL8p_.js +26 -0
  202. package/dist/featureGates-qU_ulhpC.cjs +32 -0
  203. package/dist/frontendConfig-CymUbclV.d.ts +856 -0
  204. package/dist/frontendConfig-tVg0hsWZ.d.cts +856 -0
  205. package/dist/globalSearch-Ccxq8hNF.js +14 -0
  206. package/dist/globalSearch-FBk2epe8.cjs +39 -0
  207. package/dist/graphql-3PxNRFOc.js +36 -0
  208. package/dist/graphql-DGYfelZp.cjs +53 -0
  209. package/dist/graphqlConfig-GHZ1UgCw.cjs +73 -0
  210. package/dist/graphqlConfig-mDg6J44N.js +24 -0
  211. package/dist/graphqlContext-BZPEAFSR.cjs +111 -0
  212. package/dist/graphqlContext-Bf3E-V2T.d.cts +28 -0
  213. package/dist/graphqlContext-CQikpV_I.d.ts +28 -0
  214. package/dist/graphqlContext-eaZPxgRE.js +96 -0
  215. package/dist/hooks/AmplitudeOperations/index.cjs +23 -0
  216. package/dist/hooks/AmplitudeOperations/index.d.cts +12 -0
  217. package/dist/hooks/AmplitudeOperations/index.d.ts +12 -0
  218. package/dist/hooks/AmplitudeOperations/index.js +23 -0
  219. package/dist/hooks/AppDetails/index.cjs +24 -0
  220. package/dist/hooks/AppDetails/index.d.cts +27 -0
  221. package/dist/hooks/AppDetails/index.d.ts +27 -0
  222. package/dist/hooks/AppDetails/index.js +24 -0
  223. package/dist/hooks/BlockBackButton/index.cjs +29 -0
  224. package/dist/hooks/BlockBackButton/index.d.cts +5 -0
  225. package/dist/hooks/BlockBackButton/index.d.ts +5 -0
  226. package/dist/hooks/BlockBackButton/index.js +27 -0
  227. package/dist/hooks/CdnOperations/index.cjs +24 -0
  228. package/dist/hooks/CdnOperations/index.d.cts +7 -0
  229. package/dist/hooks/CdnOperations/index.d.ts +7 -0
  230. package/dist/hooks/CdnOperations/index.js +22 -0
  231. package/dist/hooks/ChatToggle/index.cjs +64 -0
  232. package/dist/hooks/ChatToggle/index.d.cts +12 -0
  233. package/dist/hooks/ChatToggle/index.d.ts +12 -0
  234. package/dist/hooks/ChatToggle/index.js +62 -0
  235. package/dist/hooks/ChatToggleAnalytics/index.cjs +39 -0
  236. package/dist/hooks/ChatToggleAnalytics/index.d.cts +9 -0
  237. package/dist/hooks/ChatToggleAnalytics/index.d.ts +9 -0
  238. package/dist/hooks/ChatToggleAnalytics/index.js +37 -0
  239. package/dist/hooks/CustomerSupportHandoff/index.cjs +36 -0
  240. package/dist/hooks/CustomerSupportHandoff/index.d.cts +16 -0
  241. package/dist/hooks/CustomerSupportHandoff/index.d.ts +16 -0
  242. package/dist/hooks/CustomerSupportHandoff/index.js +34 -0
  243. package/dist/hooks/Debounce/index.cjs +3 -0
  244. package/dist/hooks/Debounce/index.d.cts +5 -0
  245. package/dist/hooks/Debounce/index.d.ts +5 -0
  246. package/dist/hooks/Debounce/index.js +3 -0
  247. package/dist/hooks/ElementObserver/index.cjs +179 -0
  248. package/dist/hooks/ElementObserver/index.d.cts +29 -0
  249. package/dist/hooks/ElementObserver/index.d.ts +29 -0
  250. package/dist/hooks/ElementObserver/index.js +177 -0
  251. package/dist/hooks/GrabAndScroll/index.cjs +99 -0
  252. package/dist/hooks/GrabAndScroll/index.d.cts +14 -0
  253. package/dist/hooks/GrabAndScroll/index.d.ts +14 -0
  254. package/dist/hooks/GrabAndScroll/index.js +97 -0
  255. package/dist/hooks/GraphQLConfig/index.cjs +17 -0
  256. package/dist/hooks/GraphQLConfig/index.d.cts +28 -0
  257. package/dist/hooks/GraphQLConfig/index.d.ts +28 -0
  258. package/dist/hooks/GraphQLConfig/index.js +16 -0
  259. package/dist/hooks/IdentifyUser/index.cjs +55 -0
  260. package/dist/hooks/IdentifyUser/index.d.cts +10 -0
  261. package/dist/hooks/IdentifyUser/index.d.ts +10 -0
  262. package/dist/hooks/IdentifyUser/index.js +53 -0
  263. package/dist/hooks/ImageResolver/index.cjs +55 -0
  264. package/dist/hooks/ImageResolver/index.d.cts +7 -0
  265. package/dist/hooks/ImageResolver/index.d.ts +7 -0
  266. package/dist/hooks/ImageResolver/index.js +53 -0
  267. package/dist/hooks/Intersection/index.cjs +3 -0
  268. package/dist/hooks/Intersection/index.d.cts +7 -0
  269. package/dist/hooks/Intersection/index.d.ts +7 -0
  270. package/dist/hooks/Intersection/index.js +3 -0
  271. package/dist/hooks/IsSmallScreen/index.cjs +22 -0
  272. package/dist/hooks/IsSmallScreen/index.d.cts +5 -0
  273. package/dist/hooks/IsSmallScreen/index.d.ts +5 -0
  274. package/dist/hooks/IsSmallScreen/index.js +20 -0
  275. package/dist/hooks/LocalStorageOperations/index.cjs +79 -0
  276. package/dist/hooks/LocalStorageOperations/index.d.cts +17 -0
  277. package/dist/hooks/LocalStorageOperations/index.d.ts +17 -0
  278. package/dist/hooks/LocalStorageOperations/index.js +74 -0
  279. package/dist/hooks/MessageFilter/index.cjs +54 -0
  280. package/dist/hooks/MessageFilter/index.d.cts +30 -0
  281. package/dist/hooks/MessageFilter/index.d.ts +30 -0
  282. package/dist/hooks/MessageFilter/index.js +54 -0
  283. package/dist/hooks/MessageScrollObserver/index.cjs +36 -0
  284. package/dist/hooks/MessageScrollObserver/index.d.cts +5 -0
  285. package/dist/hooks/MessageScrollObserver/index.d.ts +5 -0
  286. package/dist/hooks/MessageScrollObserver/index.js +34 -0
  287. package/dist/hooks/NewOrgConfig/index.cjs +20 -0
  288. package/dist/hooks/NewOrgConfig/index.d.cts +20 -0
  289. package/dist/hooks/NewOrgConfig/index.d.ts +20 -0
  290. package/dist/hooks/NewOrgConfig/index.js +20 -0
  291. package/dist/hooks/Search/index.cjs +325 -0
  292. package/dist/hooks/Search/index.d.cts +61 -0
  293. package/dist/hooks/Search/index.d.ts +61 -0
  294. package/dist/hooks/Search/index.js +322 -0
  295. package/dist/hooks/SearchOperations/index.cjs +105 -0
  296. package/dist/hooks/SearchOperations/index.d.cts +22 -0
  297. package/dist/hooks/SearchOperations/index.d.ts +22 -0
  298. package/dist/hooks/SearchOperations/index.js +102 -0
  299. package/dist/hooks/SessionStorageOperations/index.cjs +30 -0
  300. package/dist/hooks/SessionStorageOperations/index.d.cts +8 -0
  301. package/dist/hooks/SessionStorageOperations/index.d.ts +8 -0
  302. package/dist/hooks/SessionStorageOperations/index.js +28 -0
  303. package/dist/hooks/ShopifyUrlOperations/index.cjs +53 -0
  304. package/dist/hooks/ShopifyUrlOperations/index.d.cts +23 -0
  305. package/dist/hooks/ShopifyUrlOperations/index.d.ts +23 -0
  306. package/dist/hooks/ShopifyUrlOperations/index.js +49 -0
  307. package/dist/hooks/SnapCalculator/index.cjs +29 -0
  308. package/dist/hooks/SnapCalculator/index.d.cts +12 -0
  309. package/dist/hooks/SnapCalculator/index.d.ts +12 -0
  310. package/dist/hooks/SnapCalculator/index.js +27 -0
  311. package/dist/hooks/SystemSettingsContext/index.cjs +7 -0
  312. package/dist/hooks/SystemSettingsContext/index.d.cts +23 -0
  313. package/dist/hooks/SystemSettingsContext/index.d.ts +23 -0
  314. package/dist/hooks/SystemSettingsContext/index.js +7 -0
  315. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +23 -0
  316. package/dist/hooks/TrackComponentVisibleEvent/index.d.cts +18 -0
  317. package/dist/hooks/TrackComponentVisibleEvent/index.d.ts +18 -0
  318. package/dist/hooks/TrackComponentVisibleEvent/index.js +23 -0
  319. package/dist/hooks/UpdateAnalyticsProps/index.cjs +63 -0
  320. package/dist/hooks/UpdateAnalyticsProps/index.d.cts +9 -0
  321. package/dist/hooks/UpdateAnalyticsProps/index.d.ts +9 -0
  322. package/dist/hooks/UpdateAnalyticsProps/index.js +60 -0
  323. package/dist/hooks/utils.cjs +8 -0
  324. package/dist/hooks/utils.d.cts +13 -0
  325. package/dist/hooks/utils.d.ts +13 -0
  326. package/dist/hooks/utils.js +3 -0
  327. package/dist/index-9NE86em3.d.cts +35 -0
  328. package/dist/index-BVf069X-.d.ts +184 -0
  329. package/dist/index-B_KJB5L_.d.cts +186 -0
  330. package/dist/index-BkLv_fCu.d.ts +186 -0
  331. package/dist/index-Bmub8e38.d.cts +98 -0
  332. package/dist/index-C0eAp5f5.d.ts +98 -0
  333. package/dist/index-CESxqFso.d.cts +228 -0
  334. package/dist/index-CG3P8xE1.d.cts +676 -0
  335. package/dist/index-CJc7_j_v.d.ts +44 -0
  336. package/dist/index-CiWEYzXl.d.cts +184 -0
  337. package/dist/index-Cyq5HiC0.d.cts +44 -0
  338. package/dist/index-DBqgBV9N.d.ts +9 -0
  339. package/dist/index-DHgVW8ey.d.ts +35 -0
  340. package/dist/index-DL2ODEnw.d.ts +1 -0
  341. package/dist/index-Da1s8h5C.d.cts +9 -0
  342. package/dist/index-DgjDuQl4.d.ts +676 -0
  343. package/dist/index-DzbkQtaK.d.cts +24 -0
  344. package/dist/index-FQjyuD3D.d.cts +22 -0
  345. package/dist/index-LTdMHOxj.d.ts +22 -0
  346. package/dist/index-RcVcRKH7.d.cts +1 -0
  347. package/dist/index-nDWHlouq.d.ts +24 -0
  348. package/dist/index-vP8BKdxl.d.ts +228 -0
  349. package/dist/interceptors/index.cjs +4 -0
  350. package/dist/interceptors/index.d.cts +20 -0
  351. package/dist/interceptors/index.d.ts +20 -0
  352. package/dist/interceptors/index.js +4 -0
  353. package/dist/interceptors/types.cjs +1 -0
  354. package/dist/interceptors/types.d.cts +13 -0
  355. package/dist/interceptors/types.d.ts +13 -0
  356. package/dist/interceptors/types.js +3 -0
  357. package/dist/localStorageContext-BPZ82q-G.js +95 -0
  358. package/dist/localStorageContext-NRP-CdmF.cjs +115 -0
  359. package/dist/locators-BMQGmGLq.js +23 -0
  360. package/dist/locators-DxYdak1F.cjs +131 -0
  361. package/dist/logger-TBIl4uIH.cjs +26 -0
  362. package/dist/logger-W3lqg-4b.js +20 -0
  363. package/dist/models-D-4db7XW.cjs +1537 -0
  364. package/dist/models-c86hYW-F.js +1296 -0
  365. package/dist/newOrgConfigAtom-A4BEeHMf.cjs +15 -0
  366. package/dist/newOrgConfigAtom-OzAyrPS8.js +8 -0
  367. package/dist/newOrgConfigContext-DOdUxlOE.d.cts +16 -0
  368. package/dist/newOrgConfigContext-DX9iqIIK.cjs +68 -0
  369. package/dist/newOrgConfigContext-aqN8Tu79.js +53 -0
  370. package/dist/newOrgConfigContext-jphS5d4K.d.ts +16 -0
  371. package/dist/nodeSelector-B3bPtEjX.d.cts +31 -0
  372. package/dist/nodeSelector-Dcn3_NrZ.d.ts +31 -0
  373. package/dist/org-Bq2KsJSp.cjs +43 -0
  374. package/dist/org-gtWmGw4K.js +12 -0
  375. package/dist/search-BQPMtze5.cjs +205 -0
  376. package/dist/search-CIrqYYMI.d.ts +20 -0
  377. package/dist/search-PXzaYtZj.js +126 -0
  378. package/dist/search-filter-types-BhK20ts3.d.ts +102 -0
  379. package/dist/search-filter-types-BxaNSLs_.d.cts +102 -0
  380. package/dist/search-y-ioX5Mz.d.cts +20 -0
  381. package/dist/searchContext-CmsLR6Ka.cjs +145 -0
  382. package/dist/searchContext-NPfqMf6b.js +129 -0
  383. package/dist/searchServiceAdapter-BczodJGV.cjs +34 -0
  384. package/dist/searchServiceAdapter-BuEHFG5t.js +16 -0
  385. package/dist/sessionStorageContext-C1u04nAK.js +52 -0
  386. package/dist/sessionStorageContext-Cy8xc9-3.cjs +66 -0
  387. package/dist/shopifyUrlContext-CUyq3f27.cjs +75 -0
  388. package/dist/shopifyUrlContext-DTLlqlMj.js +61 -0
  389. package/dist/spiffyWidgets-BnkP5kXf.d.ts +20 -0
  390. package/dist/spiffyWidgets-BuS00VaQ.d.cts +20 -0
  391. package/dist/systemSettingsContext-Ba-wi2NZ.cjs +60 -0
  392. package/dist/systemSettingsContext-DumUaV0m.js +39 -0
  393. package/dist/test-types-DbrKQIqB.d.ts +40 -0
  394. package/dist/test-types-ThQiO_cc.d.cts +40 -0
  395. package/dist/types/index.cjs +34 -0
  396. package/dist/types/index.d.cts +3 -0
  397. package/dist/types/index.d.ts +3 -0
  398. package/dist/types/index.js +31 -0
  399. package/dist/types-BWzwd0Qc.js +30 -0
  400. package/dist/types-CEx2uKKS.d.ts +51 -0
  401. package/dist/types-CKMMb_gX.d.cts +51 -0
  402. package/dist/types-CKPddlfS.cjs +0 -0
  403. package/dist/types-CtUb63bt.js +76 -0
  404. package/dist/types-Cz8CaPUQ.cjs +48 -0
  405. package/dist/types-Dc6hx6ei.js +1 -0
  406. package/dist/types-Mwm0bS2l.d.ts +10 -0
  407. package/dist/types-UUvB6h05.cjs +106 -0
  408. package/dist/types-zQGBI-Yo.d.cts +10 -0
  409. package/dist/types.cjs +0 -0
  410. package/dist/types.d.cts +15 -0
  411. package/dist/types.d.ts +15 -0
  412. package/dist/types.js +1 -0
  413. package/dist/urlsParser-COzMdJaX.cjs +78 -0
  414. package/dist/urlsParser-DxjoLj98.js +42 -0
  415. package/dist/useAmplitudeOperations-Cv0fi3uj.cjs +41 -0
  416. package/dist/useAmplitudeOperations-Ti6phPPq.js +34 -0
  417. package/dist/useAppDetails-BgqbPlfR.cjs +38 -0
  418. package/dist/useAppDetails-DnKGYtCd.js +30 -0
  419. package/dist/useDebounce-BV7B-Jz3.js +19 -0
  420. package/dist/useDebounce-vU5iW5sa.cjs +26 -0
  421. package/dist/useGraphQLConfig-BizpCw23.cjs +76 -0
  422. package/dist/useGraphQLConfig-DFWl9Z89.js +63 -0
  423. package/dist/useIntersection-BJRFGG0f.js +21 -0
  424. package/dist/useIntersection-CYRvxtRN.cjs +28 -0
  425. package/dist/useMessageInterceptor-BjGP_uXm.js +25 -0
  426. package/dist/useMessageInterceptor-arAqUq1Q.cjs +33 -0
  427. package/dist/userIdentityContext-BvsEnQVX.d.ts +20 -0
  428. package/dist/userIdentityContext-D2oFVFzo.d.cts +20 -0
  429. package/dist/utilityTypes-B2KuRn37.js +1 -0
  430. package/dist/utilityTypes-BGbL2WTP.cjs +0 -0
  431. package/dist/utils-B3x_9JTY.d.cts +15 -0
  432. package/dist/utils-B7PAzB_M.d.cts +22 -0
  433. package/dist/utils-BRNaQkCK.js +23 -0
  434. package/dist/utils-Buo4KU5l.cjs +29 -0
  435. package/dist/utils-CDw74BCO.cjs +33 -0
  436. package/dist/utils-CLGXsOwE.cjs +1591 -0
  437. package/dist/utils-CrQ0h9tc.d.ts +22 -0
  438. package/dist/utils-DIvMgPe8.js +27 -0
  439. package/dist/utils-D_kATUj6.js +92 -0
  440. package/dist/utils-DyTiotQz.d.ts +15 -0
  441. package/dist/utils-hYTjy7hJ.cjs +130 -0
  442. package/dist/utils-jYtD3hmA.js +1385 -0
  443. package/dist/variantInfo-BfKlkaWU.js +11 -0
  444. package/dist/variantInfo-DpLn4nHz.cjs +17 -0
  445. package/package.json +11 -2
  446. package/src/config/index.ts +1 -0
  447. package/src/config/locators/components/chat/index.ts +0 -1
  448. package/src/config/locators/components/chat/preview.ts +0 -1
  449. package/src/config/locators/components/common/index.ts +4 -0
  450. package/src/config/locators/index.ts +1 -0
@@ -0,0 +1,263 @@
1
+ import "../../index-Bmub8e38.cjs";
2
+ import { FormResponseAttributes, Response as Response$1 } from "../../index-CiWEYzXl.cjs";
3
+ import "../../index-CESxqFso.cjs";
4
+ import "../../utils-B3x_9JTY.cjs";
5
+ import { Context as Context$1, Message, MessageRole, NextMessageRequest as NextMessageRequest$1, ProductSearchMessageMetadata, Suggestion as Suggestion$1, SupportedEventRequest as SupportedEventRequest$1, UserEvent as UserEvent$1 } from "../../index-CG3P8xE1.cjs";
6
+ import "../../chatElementDisplayLocation-DWmfNX_u.cjs";
7
+ import "../../frontendConfig-tVg0hsWZ.cjs";
8
+ import "../../test-types-ThQiO_cc.cjs";
9
+ import "../../spiffyWidgets-BuS00VaQ.cjs";
10
+ import "../../search-y-ioX5Mz.cjs";
11
+ import "../../index-Cyq5HiC0.cjs";
12
+ import { SpiffyMetricsEventName } from "../../amplitudeContext-B73xamNe.cjs";
13
+ import { MouseEventTypes, NodeSelector, SelectorFactory } from "../../nodeSelector-B3bPtEjX.cjs";
14
+ import { Context, NextMessageRequest, SupportedEventRequest, UserEvent } from "@spiffy-ai/commerce-api-client";
15
+ import * as react0 from "react";
16
+ import { ReactElement } from "react";
17
+
18
+ //#region src/application/utils/analyticsUtils.d.ts
19
+ declare global {
20
+ interface Window {
21
+ dataLayer: any[];
22
+ }
23
+ }
24
+ /**
25
+ * Wraps the window.dataLayer.push method to intercept add_to_cart events and send them to Amplitude.
26
+ * This function runs on an interval until the dataLayer is available.
27
+ */
28
+ declare const initDataLayerWrapper: (track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) => void;
29
+ declare const initAmplitude: (track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) => void;
30
+ //#endregion
31
+ //#region src/application/utils/coreContextToApiContext.d.ts
32
+ declare const coreContextToApiContext: (context: Context$1) => Context;
33
+ //#endregion
34
+ //#region src/application/utils/coreUserEventToApiUserEvent.d.ts
35
+ declare const coreUserEventToApiUserEvent: (data: UserEvent$1) => UserEvent;
36
+ //#endregion
37
+ //#region src/application/utils/divideArray.d.ts
38
+ declare const divideArray: <T>(array: T[], size: number) => T[][];
39
+ //#endregion
40
+ //#region src/application/utils/elementObserver.d.ts
41
+ /**
42
+ * The `ElementObserver` class monitors all changes related to the specific element it is responsible for.
43
+ * It is automatically instantiated by the `useElementObserver` hook, which manages all instances of this class.
44
+ *
45
+ * How it works:
46
+ *
47
+ * Each instance of `ElementObserver` holds several pieces of information related to the node it is monitoring,
48
+ * such as the node's selector and its `MutationObserver`. This class is responsible for translating raw node
49
+ * changes into a more user-friendly format. For example, when the node is added to the DOM, the `ElementObserver`
50
+ * is notified by the `DOMObserver`, which triggers the `onAdd` callback function on the respective `useElementObserver`
51
+ * instance.
52
+ *
53
+ * Instances of `ElementObserver` are fully managed by the `useElementObserver` hook, requiring no additional configuration.
54
+ * When the hook is destroyed, its corresponding `ElementObserver` instance is automatically removed.
55
+ *
56
+ */
57
+ declare class ElementObserver {
58
+ private mutation;
59
+ private node;
60
+ private selector;
61
+ private eventListeners;
62
+ private classAdded;
63
+ private classRemoved;
64
+ private nodeDisplay;
65
+ private addFn;
66
+ private removeFn;
67
+ private changeFn;
68
+ private classChangeFn;
69
+ private addChildFn?;
70
+ private removeChildFn?;
71
+ private resetFn;
72
+ constructor(selector: NodeSelector);
73
+ private handleAttributes;
74
+ private handleChildList;
75
+ private addInitialListeners;
76
+ private clearEventListeners;
77
+ private renew;
78
+ getSelector(): NodeSelector;
79
+ getNode(): HTMLElement | null;
80
+ synchronize(): void;
81
+ init(): void;
82
+ watch(node: Node): void;
83
+ destroy(): void;
84
+ render(fn: () => ReactElement): react0.ReactPortal | undefined;
85
+ fire(event: MouseEventTypes): void;
86
+ show(): void;
87
+ hide(): void;
88
+ registerEvent(event: keyof HTMLElementEventMap, fn: EventListenerOrEventListenerObject): void;
89
+ registerOnReset(fn: () => void): void;
90
+ registerOnChange(fn: (el: HTMLElement | null) => void): void;
91
+ registerOnAdd(fn: (el: HTMLElement | null) => void): void;
92
+ registerOnRemove(fn: (el: HTMLElement | null) => void): void;
93
+ registerOnclassChange(fn: (classes?: DOMTokenList) => void): void;
94
+ registerOnAddChild(fn: (classes?: DOMTokenList) => void): void;
95
+ registerOnRemoveChild(fn: (classes?: DOMTokenList) => void): void;
96
+ registerOnClassAdded(className: string, fn: () => void): void;
97
+ registerOnClassRemoved(className: string, fn: () => void): void;
98
+ }
99
+ //#endregion
100
+ //#region src/application/utils/domObserver.d.ts
101
+ /**
102
+ * This class manages a `MutationObserver` for the `document.body`. It monitors nodes that are
103
+ * added or removed from the DOM and notifies the observers for each observable element
104
+ * when they are ready to be watched.
105
+ *
106
+ * How that works:
107
+ *
108
+ * When the `observe` function is called, it attaches a `MutationObserver` to the `document.body` element.
109
+ * All changes to `document.body` are tracked by this observer. When changes are detected, the `MutationObserver`
110
+ * iterates through all added and removed nodes and checks if each node exists in the main map of observable elements.
111
+ *
112
+ * If a match is found, it notifies the corresponding `ElementObserver` instance to start monitoring changes for that element.
113
+ *
114
+ * The primary `MutationObserver` remains active until the `destroy` function is called. Calling `destroy` will disconnect all
115
+ * individual element observers and release any associated resources.
116
+ *
117
+ * There is no need to explicitly call the `observe` function. It is automatically invoked when a `useElementObserver` hook is instantiated.
118
+ *
119
+ */
120
+ declare class DOMObserver {
121
+ private static documentObserver;
122
+ private static listeners;
123
+ private static notifyAdition;
124
+ private static notifyRemoval;
125
+ private static notifyChildrenChanges;
126
+ private static mapNodeInstancesToListeners;
127
+ static add(selector: NodeSelector): ElementObserver;
128
+ static remove(selector: NodeSelector): void;
129
+ static observe(): void;
130
+ static destroy(): void;
131
+ }
132
+ //#endregion
133
+ //#region src/application/utils/imageFilter.d.ts
134
+ declare const getRecentProductImageUrls: (lastMessages: Message[], currentProductId: string | undefined) => string[];
135
+ //#endregion
136
+ //#region src/application/utils/merchantUtils.d.ts
137
+ declare const prepareMerchantPage: () => void;
138
+ //#endregion
139
+ //#region src/application/utils/messageFromFormSubmittedEvent.d.ts
140
+ declare const messageFromFormSubmittedEvent: (event: UserEvent$1, formResponseAttributes: FormResponseAttributes["attributes"]) => Message | undefined;
141
+ //#endregion
142
+ //#region src/application/utils/messageFromQueryEvent.d.ts
143
+ /**
144
+ * Transforms a query UserEvent object into a Message object for presentation.
145
+ *
146
+ * @param event The user event object received from the server
147
+ *
148
+ * @returns A Message if the event is a query event, otherwise undefined
149
+ */
150
+ declare const messageFromQueryEvent: (event: UserEvent$1) => Message | undefined;
151
+ //#endregion
152
+ //#region src/application/utils/messageFromResponse.d.ts
153
+ /**
154
+ * Transforms a server Response object into a Message object for presentation.
155
+ *
156
+ * @param response The response object received from the server containing model generated content
157
+ *
158
+ * @returns A Message if the response contains known attributes, undefined otherwise
159
+ */
160
+ declare const messageFromResponse: (response?: Response$1) => Message | undefined;
161
+ //#endregion
162
+ //#region src/application/utils/messageFromSuggestionEvent.d.ts
163
+ /**
164
+ * Transforms a UserEvent object into a Message object for presentation.
165
+ *
166
+ * @param event The UserEvent object received from the server
167
+ * @param suggestions A list of generated suggestions to match the event to
168
+ *
169
+ * @returns A Message if the event is a suggestion click event, undefined otherwise
170
+ */
171
+ declare const messageFromSuggestionEvent: (event: UserEvent$1, suggestions: Suggestion$1[]) => Message | undefined;
172
+ //#endregion
173
+ //#region src/application/utils/mutationHelper.d.ts
174
+ declare class MutationHelper {
175
+ static fireClassChange(record: MutationRecord, node: HTMLElement | null, fn: (classes: DOMTokenList) => void): void;
176
+ static fireClassAdded(record: MutationRecord, node: HTMLElement | null, classMap: Map<string, () => void>): void;
177
+ static fireClassRemoved(record: MutationRecord, node: HTMLElement | null, classMap: Map<string, () => void>): void;
178
+ static fireSubtreeChange(nodes: NodeList, fn?: (nodes: NodeList) => void): void;
179
+ static isClass(mutation: MutationRecord): boolean;
180
+ static isChildList(mutation: MutationRecord): boolean;
181
+ }
182
+ //#endregion
183
+ //#region src/application/utils/nextMessageRequestToApiRequest.d.ts
184
+ declare const messageRequestToCommerceMessageRequest: (data: NextMessageRequest$1) => NextMessageRequest;
185
+ //#endregion
186
+ //#region src/application/utils/overrides.d.ts
187
+ type ReplaceOp<T> = {
188
+ $replace: T;
189
+ };
190
+ type DeleteOp = {
191
+ $delete: true;
192
+ };
193
+ type Builtin = Date | RegExp | ((...args: unknown[]) => unknown);
194
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined;
195
+ /**
196
+ * Override<T> is a DeepPartial-like type with special operators:
197
+ * - { $replace: T } to replace an entire subtree/array
198
+ * - { $delete: true } to delete an object key
199
+ *
200
+ * Arrays behavior:
201
+ * - Arrays of objects: merge-by-index by default (unless `arrayStrategy: 'replace'` or `$replace` is used)
202
+ * - Arrays of primitives (string/number/boolean/...): replaced by default when a patch array is provided
203
+ */
204
+ type Override<T> = T extends Primitive | Builtin ? T | ReplaceOp<T> | DeleteOp : T extends (infer U)[] ? Array<Override<U> | undefined> | ReplaceOp<T> : T extends Map<unknown, unknown> | Set<unknown> ? ReplaceOp<T> : T extends object ? { [K in keyof T]?: Override<T[K]> | DeleteOp | null } | ReplaceOp<T> : T;
205
+ type MergeOptions = {
206
+ /**
207
+ * How to treat arrays when patch provides an array (not $replace):
208
+ * - 'replace': always use patch array as whole value
209
+ * - 'mergeByIndex': merge each index recursively (default for arrays of objects)
210
+ * Note: Arrays of primitives are replaced by default regardless of this option.
211
+ */
212
+ arrayStrategy?: 'replace' | 'mergeByIndex';
213
+ /**
214
+ * If true, a `null` patch value deletes the key from an object (RFC 7396-ish)
215
+ */
216
+ nullDeletes?: boolean;
217
+ };
218
+ type NoInfer<T> = [T][T extends unknown ? 0 : never];
219
+ declare function applyOverrides<T>(base: T, patch: Override<NoInfer<T>>, opts?: MergeOptions): T;
220
+ //#endregion
221
+ //#region src/application/utils/stringUtils.d.ts
222
+ declare class StringUtils {
223
+ static isNullOrEmpty(value: string | undefined): boolean;
224
+ static trimToNull(value: string | undefined): string | undefined;
225
+ static capitalize(type: string | undefined): string;
226
+ /**
227
+ * Finds the first pattern in an array that matches a given URL.
228
+ * Patterns can include a single wildcard '*' which matches any sequence of characters.
229
+ *
230
+ * @param patterns
231
+ * @param urlToTest
232
+ * @returns
233
+ */
234
+ static findMatchingPattern(patterns: string[], urlToTest: Location): string | undefined;
235
+ }
236
+ //#endregion
237
+ //#region src/application/utils/supportedEventRequestToApiRequest.d.ts
238
+ declare const coreSupportedEventRequestToApiRequest: (coreSupportedEventRequest: SupportedEventRequest$1) => SupportedEventRequest;
239
+ //#endregion
240
+ //#region src/application/utils/urlsParser.d.ts
241
+ declare const parseHref: (href: string) => {
242
+ url: URL | undefined;
243
+ urlSearchParams: URLSearchParams | undefined;
244
+ };
245
+ declare const createUrlWithQueryParams: (url: string, queryParams: Record<string, string>) => string;
246
+ declare const getQueryParam: (key: string) => string | null;
247
+ type SearchMessage = {
248
+ id: string;
249
+ role: MessageRole;
250
+ createdAt: string;
251
+ } & ProductSearchMessageMetadata;
252
+ declare const buildSearchHash: (message: SearchMessage) => string;
253
+ declare const buildSearchStartHash: (query: string) => string;
254
+ declare const parseSearchHash: (hash: string) => {
255
+ id: string | null;
256
+ query: string | null;
257
+ };
258
+ //#endregion
259
+ //#region src/application/utils/validation.d.ts
260
+ declare const validateEmail: (value: string) => boolean;
261
+ //#endregion
262
+ export { DOMObserver, DeleteOp, ElementObserver, MergeOptions, MouseEventTypes, MutationHelper, NodeSelector, Override, ReplaceOp, SelectorFactory, StringUtils, applyOverrides, buildSearchHash, buildSearchStartHash, coreContextToApiContext, coreSupportedEventRequestToApiRequest, coreUserEventToApiUserEvent, createUrlWithQueryParams, divideArray, getQueryParam, getRecentProductImageUrls, initAmplitude, initDataLayerWrapper, messageFromFormSubmittedEvent, messageFromQueryEvent, messageFromResponse, messageFromSuggestionEvent, messageRequestToCommerceMessageRequest, parseHref, parseSearchHash, prepareMerchantPage, validateEmail };
263
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvY29yZUNvbnRleHRUb0FwaUNvbnRleHQuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9jb3JlVXNlckV2ZW50VG9BcGlVc2VyRXZlbnQuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9kaXZpZGVBcnJheS5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2VsZW1lbnRPYnNlcnZlci5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2RvbU9ic2VydmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvaW1hZ2VGaWx0ZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tZXJjaGFudFV0aWxzLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tZXNzYWdlRnJvbVF1ZXJ5RXZlbnQuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tZXNzYWdlRnJvbVJlc3BvbnNlLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvbWVzc2FnZUZyb21TdWdnZXN0aW9uRXZlbnQuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tdXRhdGlvbkhlbHBlci5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL25leHRNZXNzYWdlUmVxdWVzdFRvQXBpUmVxdWVzdC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL292ZXJyaWRlcy5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL3N0cmluZ1V0aWxzLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvc3VwcG9ydGVkRXZlbnRSZXF1ZXN0VG9BcGlSZXF1ZXN0LmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvdXJsc1BhcnNlci5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL3ZhbGlkYXRpb24uZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSBcInNyYy9jb250ZXh0cy9hbXBsaXR1ZGVDb250ZXh0L2FtcGxpdHVkZUNvbnRleHRcIjtcbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgZGF0YUxheWVyOiBhbnlbXTtcbiAgICB9XG59XG4vKipcbiAqIFdyYXBzIHRoZSB3aW5kb3cuZGF0YUxheWVyLnB1c2ggbWV0aG9kIHRvIGludGVyY2VwdCBhZGRfdG9fY2FydCBldmVudHMgYW5kIHNlbmQgdGhlbSB0byBBbXBsaXR1ZGUuXG4gKiBUaGlzIGZ1bmN0aW9uIHJ1bnMgb24gYW4gaW50ZXJ2YWwgdW50aWwgdGhlIGRhdGFMYXllciBpcyBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGluaXREYXRhTGF5ZXJXcmFwcGVyOiAodHJhY2s6IChldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZCkgPT4gdm9pZDtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGluaXRBbXBsaXR1ZGU6ICh0cmFjazogKGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkKSA9PiB2b2lkO1xuIiwiaW1wb3J0IHsgQ29udGV4dCBhcyBBcGlDb250ZXh0IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENvbnRleHQgYXMgQ29yZUNvbnRleHQgfSBmcm9tICcuLi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY29yZUNvbnRleHRUb0FwaUNvbnRleHQ6IChjb250ZXh0OiBDb3JlQ29udGV4dCkgPT4gQXBpQ29udGV4dDtcbiIsImltcG9ydCB7IFVzZXJFdmVudCBhcyBBcGlVc2VyRXZlbnQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgVXNlckV2ZW50IGFzIENvcmVVc2VyRXZlbnQgfSBmcm9tICcuLi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgY29yZVVzZXJFdmVudFRvQXBpVXNlckV2ZW50OiAoZGF0YTogQ29yZVVzZXJFdmVudCkgPT4gQXBpVXNlckV2ZW50O1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgZGl2aWRlQXJyYXk6IDxUPihhcnJheTogVFtdLCBzaXplOiBudW1iZXIpID0+IFRbXVtdO1xuIiwiaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW91c2VFdmVudFR5cGVzIH0gZnJvbSAnLi9tb3VzZUV2ZW50VHlwZXMnO1xuaW1wb3J0IHsgTm9kZVNlbGVjdG9yIH0gZnJvbSAnLi9ub2RlU2VsZWN0b3InO1xuLyoqXG4gKiBUaGUgYEVsZW1lbnRPYnNlcnZlcmAgY2xhc3MgbW9uaXRvcnMgYWxsIGNoYW5nZXMgcmVsYXRlZCB0byB0aGUgc3BlY2lmaWMgZWxlbWVudCBpdCBpcyByZXNwb25zaWJsZSBmb3IuXG4gKiBJdCBpcyBhdXRvbWF0aWNhbGx5IGluc3RhbnRpYXRlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgd2hpY2ggbWFuYWdlcyBhbGwgaW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MuXG4gKlxuICogSG93IGl0IHdvcmtzOlxuICpcbiAqIEVhY2ggaW5zdGFuY2Ugb2YgYEVsZW1lbnRPYnNlcnZlcmAgaG9sZHMgc2V2ZXJhbCBwaWVjZXMgb2YgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgbm9kZSBpdCBpcyBtb25pdG9yaW5nLFxuICogc3VjaCBhcyB0aGUgbm9kZSdzIHNlbGVjdG9yIGFuZCBpdHMgYE11dGF0aW9uT2JzZXJ2ZXJgLiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyByYXcgbm9kZVxuICogY2hhbmdlcyBpbnRvIGEgbW9yZSB1c2VyLWZyaWVuZGx5IGZvcm1hdC4gRm9yIGV4YW1wbGUsIHdoZW4gdGhlIG5vZGUgaXMgYWRkZWQgdG8gdGhlIERPTSwgdGhlIGBFbGVtZW50T2JzZXJ2ZXJgXG4gKiBpcyBub3RpZmllZCBieSB0aGUgYERPTU9ic2VydmVyYCwgd2hpY2ggdHJpZ2dlcnMgdGhlIGBvbkFkZGAgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHJlc3BlY3RpdmUgYHVzZUVsZW1lbnRPYnNlcnZlcmBcbiAqIGluc3RhbmNlLlxuICpcbiAqIEluc3RhbmNlcyBvZiBgRWxlbWVudE9ic2VydmVyYCBhcmUgZnVsbHkgbWFuYWdlZCBieSB0aGUgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vaywgcmVxdWlyaW5nIG5vIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAqIFdoZW4gdGhlIGhvb2sgaXMgZGVzdHJveWVkLCBpdHMgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXG4gKlxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBFbGVtZW50T2JzZXJ2ZXIge1xuICAgIHByaXZhdGUgbXV0YXRpb247XG4gICAgcHJpdmF0ZSBub2RlO1xuICAgIHByaXZhdGUgc2VsZWN0b3I7XG4gICAgcHJpdmF0ZSBldmVudExpc3RlbmVycztcbiAgICBwcml2YXRlIGNsYXNzQWRkZWQ7XG4gICAgcHJpdmF0ZSBjbGFzc1JlbW92ZWQ7XG4gICAgcHJpdmF0ZSBub2RlRGlzcGxheTtcbiAgICBwcml2YXRlIGFkZEZuO1xuICAgIHByaXZhdGUgcmVtb3ZlRm47XG4gICAgcHJpdmF0ZSBjaGFuZ2VGbjtcbiAgICBwcml2YXRlIGNsYXNzQ2hhbmdlRm47XG4gICAgcHJpdmF0ZSBhZGRDaGlsZEZuPztcbiAgICBwcml2YXRlIHJlbW92ZUNoaWxkRm4/O1xuICAgIHByaXZhdGUgcmVzZXRGbjtcbiAgICBjb25zdHJ1Y3RvcihzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTtcbiAgICBwcml2YXRlIGhhbmRsZUF0dHJpYnV0ZXM7XG4gICAgcHJpdmF0ZSBoYW5kbGVDaGlsZExpc3Q7XG4gICAgcHJpdmF0ZSBhZGRJbml0aWFsTGlzdGVuZXJzO1xuICAgIHByaXZhdGUgY2xlYXJFdmVudExpc3RlbmVycztcbiAgICBwcml2YXRlIHJlbmV3O1xuICAgIGdldFNlbGVjdG9yKCk6IE5vZGVTZWxlY3RvcjtcbiAgICBnZXROb2RlKCk6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBzeW5jaHJvbml6ZSgpOiB2b2lkO1xuICAgIGluaXQoKTogdm9pZDtcbiAgICB3YXRjaChub2RlOiBOb2RlKTogdm9pZDtcbiAgICBkZXN0cm95KCk6IHZvaWQ7XG4gICAgcmVuZGVyKGZuOiAoKSA9PiBSZWFjdEVsZW1lbnQpOiBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdFBvcnRhbCB8IHVuZGVmaW5lZDtcbiAgICBmaXJlKGV2ZW50OiBNb3VzZUV2ZW50VHlwZXMpOiB2b2lkO1xuICAgIHNob3coKTogdm9pZDtcbiAgICBoaWRlKCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJFdmVudChldmVudDoga2V5b2YgSFRNTEVsZW1lbnRFdmVudE1hcCwgZm46IEV2ZW50TGlzdGVuZXJPckV2ZW50TGlzdGVuZXJPYmplY3QpOiB2b2lkO1xuICAgIHJlZ2lzdGVyT25SZXNldChmbjogKCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpOiB2b2lkO1xuICAgIHJlZ2lzdGVyT25BZGQoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uUmVtb3ZlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPbmNsYXNzQ2hhbmdlKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPbkFkZENoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPblJlbW92ZUNoaWxkKGZuOiAoY2xhc3Nlcz86IERPTVRva2VuTGlzdCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPbkNsYXNzQWRkZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uQ2xhc3NSZW1vdmVkKGNsYXNzTmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCk6IHZvaWQ7XG59XG4iLCJpbXBvcnQgeyBFbGVtZW50T2JzZXJ2ZXIgfSBmcm9tICcuL2VsZW1lbnRPYnNlcnZlcic7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG4vKipcbiAqIFRoaXMgY2xhc3MgbWFuYWdlcyBhIGBNdXRhdGlvbk9ic2VydmVyYCBmb3IgdGhlIGBkb2N1bWVudC5ib2R5YC4gSXQgbW9uaXRvcnMgbm9kZXMgdGhhdCBhcmVcbiAqIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGFuZCBub3RpZmllcyB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIG9ic2VydmFibGUgZWxlbWVudFxuICogd2hlbiB0aGV5IGFyZSByZWFkeSB0byBiZSB3YXRjaGVkLlxuICpcbiAqIEhvdyB0aGF0IHdvcmtzOlxuICpcbiAqIFdoZW4gdGhlIGBvYnNlcnZlYCBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IGF0dGFjaGVzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHRoZSBgZG9jdW1lbnQuYm9keWAgZWxlbWVudC5cbiAqIEFsbCBjaGFuZ2VzIHRvIGBkb2N1bWVudC5ib2R5YCBhcmUgdHJhY2tlZCBieSB0aGlzIG9ic2VydmVyLiBXaGVuIGNoYW5nZXMgYXJlIGRldGVjdGVkLCB0aGUgYE11dGF0aW9uT2JzZXJ2ZXJgXG4gKiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBhZGRlZCBhbmQgcmVtb3ZlZCBub2RlcyBhbmQgY2hlY2tzIGlmIGVhY2ggbm9kZSBleGlzdHMgaW4gdGhlIG1haW4gbWFwIG9mIG9ic2VydmFibGUgZWxlbWVudHMuXG4gKlxuICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgaXQgbm90aWZpZXMgdGhlIGNvcnJlc3BvbmRpbmcgYEVsZW1lbnRPYnNlcnZlcmAgaW5zdGFuY2UgdG8gc3RhcnQgbW9uaXRvcmluZyBjaGFuZ2VzIGZvciB0aGF0IGVsZW1lbnQuXG4gKlxuICogVGhlIHByaW1hcnkgYE11dGF0aW9uT2JzZXJ2ZXJgIHJlbWFpbnMgYWN0aXZlIHVudGlsIHRoZSBgZGVzdHJveWAgZnVuY3Rpb24gaXMgY2FsbGVkLiBDYWxsaW5nIGBkZXN0cm95YCB3aWxsIGRpc2Nvbm5lY3QgYWxsXG4gKiBpbmRpdmlkdWFsIGVsZW1lbnQgb2JzZXJ2ZXJzIGFuZCByZWxlYXNlIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBUaGVyZSBpcyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgY2FsbCB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGludm9rZWQgd2hlbiBhIGB1c2VFbGVtZW50T2JzZXJ2ZXJgIGhvb2sgaXMgaW5zdGFudGlhdGVkLlxuICpcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgRE9NT2JzZXJ2ZXIge1xuICAgIHByaXZhdGUgc3RhdGljIGRvY3VtZW50T2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGlzdGVuZXJzO1xuICAgIHByaXZhdGUgc3RhdGljIG5vdGlmeUFkaXRpb247XG4gICAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5UmVtb3ZhbDtcbiAgICBwcml2YXRlIHN0YXRpYyBub3RpZnlDaGlsZHJlbkNoYW5nZXM7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbWFwTm9kZUluc3RhbmNlc1RvTGlzdGVuZXJzO1xuICAgIHN0YXRpYyBhZGQoc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcik6IEVsZW1lbnRPYnNlcnZlcjtcbiAgICBzdGF0aWMgcmVtb3ZlKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpOiB2b2lkO1xuICAgIHN0YXRpYyBvYnNlcnZlKCk6IHZvaWQ7XG4gICAgc3RhdGljIGRlc3Ryb3koKTogdm9pZDtcbn1cbiIsImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGdldFJlY2VudFByb2R1Y3RJbWFnZVVybHM6IChsYXN0TWVzc2FnZXM6IE1lc3NhZ2VbXSwgY3VycmVudFByb2R1Y3RJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmdbXTtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IHByZXBhcmVNZXJjaGFudFBhZ2U6ICgpID0+IHZvaWQ7XG4iLCJpbXBvcnQgeyBGb3JtUmVzcG9uc2VBdHRyaWJ1dGVzLCBNZXNzYWdlLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG1lc3NhZ2VGcm9tRm9ybVN1Ym1pdHRlZEV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCwgZm9ybVJlc3BvbnNlQXR0cmlidXRlczogRm9ybVJlc3BvbnNlQXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl0pID0+IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBNZXNzYWdlLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogVHJhbnNmb3JtcyBhIHF1ZXJ5IFVzZXJFdmVudCBvYmplY3QgaW50byBhIE1lc3NhZ2Ugb2JqZWN0IGZvciBwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSB1c2VyIGV2ZW50IG9iamVjdCByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXJcbiAqXG4gKiBAcmV0dXJucyBBIE1lc3NhZ2UgaWYgdGhlIGV2ZW50IGlzIGEgcXVlcnkgZXZlbnQsIG90aGVyd2lzZSB1bmRlZmluZWRcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgbWVzc2FnZUZyb21RdWVyeUV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCkgPT4gTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IE1lc3NhZ2UsIFJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG4vKipcbiAqIFRyYW5zZm9ybXMgYSBzZXJ2ZXIgUmVzcG9uc2Ugb2JqZWN0IGludG8gYSBNZXNzYWdlIG9iamVjdCBmb3IgcHJlc2VudGF0aW9uLlxuICpcbiAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciBjb250YWluaW5nIG1vZGVsIGdlbmVyYXRlZCBjb250ZW50XG4gKlxuICogQHJldHVybnMgQSBNZXNzYWdlIGlmIHRoZSByZXNwb25zZSBjb250YWlucyBrbm93biBhdHRyaWJ1dGVzLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG1lc3NhZ2VGcm9tUmVzcG9uc2U6IChyZXNwb25zZT86IFJlc3BvbnNlKSA9PiBNZXNzYWdlIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgTWVzc2FnZSwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG4vKipcbiAqIFRyYW5zZm9ybXMgYSBVc2VyRXZlbnQgb2JqZWN0IGludG8gYSBNZXNzYWdlIG9iamVjdCBmb3IgcHJlc2VudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBldmVudCBUaGUgVXNlckV2ZW50IG9iamVjdCByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXJcbiAqIEBwYXJhbSBzdWdnZXN0aW9ucyBBIGxpc3Qgb2YgZ2VuZXJhdGVkIHN1Z2dlc3Rpb25zIHRvIG1hdGNoIHRoZSBldmVudCB0b1xuICpcbiAqIEByZXR1cm5zIEEgTWVzc2FnZSBpZiB0aGUgZXZlbnQgaXMgYSBzdWdnZXN0aW9uIGNsaWNrIGV2ZW50LCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG1lc3NhZ2VGcm9tU3VnZ2VzdGlvbkV2ZW50OiAoZXZlbnQ6IFVzZXJFdmVudCwgc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXSkgPT4gTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiIsImV4cG9ydCBkZWNsYXJlIGNsYXNzIE11dGF0aW9uSGVscGVyIHtcbiAgICBzdGF0aWMgZmlyZUNsYXNzQ2hhbmdlKHJlY29yZDogTXV0YXRpb25SZWNvcmQsIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCwgZm46IChjbGFzc2VzOiBET01Ub2tlbkxpc3QpID0+IHZvaWQpOiB2b2lkO1xuICAgIHN0YXRpYyBmaXJlQ2xhc3NBZGRlZChyZWNvcmQ6IE11dGF0aW9uUmVjb3JkLCBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPik6IHZvaWQ7XG4gICAgc3RhdGljIGZpcmVDbGFzc1JlbW92ZWQocmVjb3JkOiBNdXRhdGlvblJlY29yZCwgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLCBjbGFzc01hcDogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4pOiB2b2lkO1xuICAgIHN0YXRpYyBmaXJlU3VidHJlZUNoYW5nZShub2RlczogTm9kZUxpc3QsIGZuPzogKG5vZGVzOiBOb2RlTGlzdCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgc3RhdGljIGlzQ2xhc3MobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKTogYm9vbGVhbjtcbiAgICBzdGF0aWMgaXNDaGlsZExpc3QobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKTogYm9vbGVhbjtcbn1cbiIsImltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCBhcyBBcGlOZXh0TWVzc2FnZVJlcXVlc3QgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgTmV4dE1lc3NhZ2VSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWxzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IG1lc3NhZ2VSZXF1ZXN0VG9Db21tZXJjZU1lc3NhZ2VSZXF1ZXN0OiAoZGF0YTogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiBBcGlOZXh0TWVzc2FnZVJlcXVlc3Q7XG4iLCJleHBvcnQgdHlwZSBSZXBsYWNlT3A8VD4gPSB7XG4gICAgJHJlcGxhY2U6IFQ7XG59O1xuZXhwb3J0IHR5cGUgRGVsZXRlT3AgPSB7XG4gICAgJGRlbGV0ZTogdHJ1ZTtcbn07XG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgUmVnRXhwIHwgKCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24pO1xudHlwZSBQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYmlnaW50IHwgc3ltYm9sIHwgbnVsbCB8IHVuZGVmaW5lZDtcbi8qKlxuICogT3ZlcnJpZGU8VD4gaXMgYSBEZWVwUGFydGlhbC1saWtlIHR5cGUgd2l0aCBzcGVjaWFsIG9wZXJhdG9yczpcbiAqIC0geyAkcmVwbGFjZTogVCB9IHRvIHJlcGxhY2UgYW4gZW50aXJlIHN1YnRyZWUvYXJyYXlcbiAqIC0geyAkZGVsZXRlOiB0cnVlIH0gdG8gZGVsZXRlIGFuIG9iamVjdCBrZXlcbiAqXG4gKiBBcnJheXMgYmVoYXZpb3I6XG4gKiAtIEFycmF5cyBvZiBvYmplY3RzOiBtZXJnZS1ieS1pbmRleCBieSBkZWZhdWx0ICh1bmxlc3MgYGFycmF5U3RyYXRlZ3k6ICdyZXBsYWNlJ2Agb3IgYCRyZXBsYWNlYCBpcyB1c2VkKVxuICogLSBBcnJheXMgb2YgcHJpbWl0aXZlcyAoc3RyaW5nL251bWJlci9ib29sZWFuLy4uLik6IHJlcGxhY2VkIGJ5IGRlZmF1bHQgd2hlbiBhIHBhdGNoIGFycmF5IGlzIHByb3ZpZGVkXG4gKi9cbmV4cG9ydCB0eXBlIE92ZXJyaWRlPFQ+ID0gVCBleHRlbmRzIFByaW1pdGl2ZSB8IEJ1aWx0aW4gPyBUIHwgUmVwbGFjZU9wPFQ+IHwgRGVsZXRlT3AgOiBUIGV4dGVuZHMgKGluZmVyIFUpW10gPyBBcnJheTxPdmVycmlkZTxVPiB8IHVuZGVmaW5lZD4gfCBSZXBsYWNlT3A8VD4gOiBUIGV4dGVuZHMgTWFwPHVua25vd24sIHVua25vd24+IHwgU2V0PHVua25vd24+ID8gUmVwbGFjZU9wPFQ+IDogVCBleHRlbmRzIG9iamVjdCA/IHtcbiAgICBbSyBpbiBrZXlvZiBUXT86IE92ZXJyaWRlPFRbS10+IHwgRGVsZXRlT3AgfCBudWxsO1xufSB8IFJlcGxhY2VPcDxUPiA6IFQ7XG5leHBvcnQgdHlwZSBNZXJnZU9wdGlvbnMgPSB7XG4gICAgLyoqXG4gICAgICogSG93IHRvIHRyZWF0IGFycmF5cyB3aGVuIHBhdGNoIHByb3ZpZGVzIGFuIGFycmF5IChub3QgJHJlcGxhY2UpOlxuICAgICAqIC0gJ3JlcGxhY2UnOiBhbHdheXMgdXNlIHBhdGNoIGFycmF5IGFzIHdob2xlIHZhbHVlXG4gICAgICogLSAnbWVyZ2VCeUluZGV4JzogbWVyZ2UgZWFjaCBpbmRleCByZWN1cnNpdmVseSAoZGVmYXVsdCBmb3IgYXJyYXlzIG9mIG9iamVjdHMpXG4gICAgICogTm90ZTogQXJyYXlzIG9mIHByaW1pdGl2ZXMgYXJlIHJlcGxhY2VkIGJ5IGRlZmF1bHQgcmVnYXJkbGVzcyBvZiB0aGlzIG9wdGlvbi5cbiAgICAgKi9cbiAgICBhcnJheVN0cmF0ZWd5PzogJ3JlcGxhY2UnIHwgJ21lcmdlQnlJbmRleCc7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgYSBgbnVsbGAgcGF0Y2ggdmFsdWUgZGVsZXRlcyB0aGUga2V5IGZyb20gYW4gb2JqZWN0IChSRkMgNzM5Ni1pc2gpXG4gICAgICovXG4gICAgbnVsbERlbGV0ZXM/OiBib29sZWFuO1xufTtcbnR5cGUgTm9JbmZlcjxUPiA9IFtUXVtUIGV4dGVuZHMgdW5rbm93biA/IDAgOiBuZXZlcl07XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBhcHBseU92ZXJyaWRlczxUPihiYXNlOiBULCBwYXRjaDogT3ZlcnJpZGU8Tm9JbmZlcjxUPj4sIG9wdHM/OiBNZXJnZU9wdGlvbnMpOiBUO1xuZXhwb3J0IHt9O1xuIiwiZGVjbGFyZSBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGlzTnVsbE9yRW1wdHkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG4gICAgc3RhdGljIHRyaW1Ub051bGwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBzdGF0aWMgY2FwaXRhbGl6ZSh0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRmluZHMgdGhlIGZpcnN0IHBhdHRlcm4gaW4gYW4gYXJyYXkgdGhhdCBtYXRjaGVzIGEgZ2l2ZW4gVVJMLlxuICAgICAqIFBhdHRlcm5zIGNhbiBpbmNsdWRlIGEgc2luZ2xlIHdpbGRjYXJkICcqJyB3aGljaCBtYXRjaGVzIGFueSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdHRlcm5zXG4gICAgICogQHBhcmFtIHVybFRvVGVzdFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgc3RhdGljIGZpbmRNYXRjaGluZ1BhdHRlcm4ocGF0dGVybnM6IHN0cmluZ1tdLCB1cmxUb1Rlc3Q6IExvY2F0aW9uKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IHsgU3RyaW5nVXRpbHMgfTtcbiIsImltcG9ydCB7IFN1cHBvcnRlZEV2ZW50UmVxdWVzdCBhcyBBcGlTdXBwb3J0ZWRFdmVudFJlcXVlc3QgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgU3VwcG9ydGVkRXZlbnRSZXF1ZXN0IGFzIENvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbHMvYXBpL3N1cHBvcnRlZEV2ZW50UmVxdWVzdCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjb3JlU3VwcG9ydGVkRXZlbnRSZXF1ZXN0VG9BcGlSZXF1ZXN0OiAoY29yZVN1cHBvcnRlZEV2ZW50UmVxdWVzdDogQ29yZVN1cHBvcnRlZEV2ZW50UmVxdWVzdCkgPT4gQXBpU3VwcG9ydGVkRXZlbnRSZXF1ZXN0O1xuIiwiaW1wb3J0IHsgTWVzc2FnZVJvbGUsIFByb2R1Y3RTZWFyY2hNZXNzYWdlTWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvbWVzc2FnZSc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBwYXJzZUhyZWY6IChocmVmOiBzdHJpbmcpID0+IHtcbiAgICB1cmw6IFVSTCB8IHVuZGVmaW5lZDtcbiAgICB1cmxTZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyB8IHVuZGVmaW5lZDtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjcmVhdGVVcmxXaXRoUXVlcnlQYXJhbXM6ICh1cmw6IHN0cmluZywgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGdldFF1ZXJ5UGFyYW06IChrZXk6IHN0cmluZykgPT4gc3RyaW5nIHwgbnVsbDtcbnR5cGUgU2VhcmNoTWVzc2FnZSA9IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJvbGU6IE1lc3NhZ2VSb2xlO1xuICAgIGNyZWF0ZWRBdDogc3RyaW5nO1xufSAmIFByb2R1Y3RTZWFyY2hNZXNzYWdlTWV0YWRhdGE7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBidWlsZFNlYXJjaEhhc2g6IChtZXNzYWdlOiBTZWFyY2hNZXNzYWdlKSA9PiBzdHJpbmc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBidWlsZFNlYXJjaFN0YXJ0SGFzaDogKHF1ZXJ5OiBzdHJpbmcpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHBhcnNlU2VhcmNoSGFzaDogKGhhc2g6IHN0cmluZykgPT4ge1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufTtcbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlRW1haWw6ICh2YWx1ZTogc3RyaW5nKSA9PiBib29sZWFuO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFJLEtBQUssQ0FBQyxLQUFLLFdBQUEsR0FBQSxDQUFBO0FBQ2YsSUFBVyx1QkFBVTtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3JCLElBQVcsZ0JBQWE7Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0R4QixJQUFXLDBCQUEwQjtDQUFDO09BQVc7T0FBbUI7Q0FBVzs7OztBQ0EvRSxJQUFXLDhCQUE4QjtDQUFDO09BQVc7T0FBcUI7Q0FBYTs7OztBQ0Z2RixJQUFXLGNBQWM7Q0FBQztPQUFXO09BQVM7Q0FBRTs7OztBQ0loRCxJQUFXLGtCQUFrQjtDQUFDO09BQVc7T0FBb0I7T0FBb0I7T0FBbUI7T0FBSztPQUFBLE9BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0Z6RyxJQUFFLGNBQUE7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDREYsSUFBVyw0QkFBNEIsQ0FBQyxXQUFXLFFBQVE7Ozs7QUNEM0QsSUFBVyxzQkFBc0IsQ0FBQyxJQUFJOzs7O0FDQ3RDLElBQVcsZ0NBQWdDO0NBQUM7T0FBVztPQUFpQjtPQUE4QjtDQUFROzs7O0FDQTlHLElBQUUsd0JBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0FGLElBQUUsc0JBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0FGLElBQUUsNkJBQUE7Q0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDREYsSUFBVyxpQkFBaUI7Q0FBQztPQUFPO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNFcEMsSUFBVyx5Q0FBeUM7Q0FBQztPQUFXO09BQTBCO0NBQXNCOzs7O0FDRmhILElBQVcsWUFBWSxDQUFDLFdBQUcsRUFBQTtBQUMzQixJQUFXLFdBQUksQ0FBQSxJQUFBO0FBQ2YsSUFBQyxVQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJO0FBQ3JCLElBQVcsV0FBTTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDakIsSUFBQyxlQUFBLENBQUEsSUFBQTtBQUNELElBQUksVUFBVTtDQUFDO09BQVc7T0FBUztDQUFFO0FBQ3JDLElBQVcsaUJBQWlCO0NBQUM7T0FBVztPQUFTO09BQVM7T0FBZTtPQUFNO09BQUE7Q0FBQTs7OztBQ1AvRSxJQUFJLGNBQWMsQ0FBQyxXQUFPLFNBQUE7Ozs7QUNFMUIsSUFBVyx3Q0FBd0M7Q0FBQztPQUFXO09BQWlDO0NBQXlCOzs7O0FDRHpILElBQVcsWUFBWTtDQUFDO09BQVc7T0FBVztDQUFJO0FBQ2xELElBQVcsMkJBQWEsQ0FBQSxXQUFBLE9BQUE7QUFDeEIsSUFBVyxnQkFBZ0IsQ0FBQyxJQUFJO0FBQ2hDLElBQUMsZ0JBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNELElBQVcsa0JBQWtCLENBQUMsV0FBVyxjQUFjO0FBQ3ZELElBQVcsdUJBQXVCLENBQUMsSUFBSTtBQUN2QyxJQUFXLGtCQUFVLENBQUEsSUFBQTs7OztBQ1ByQixJQUFXLGdCQUFnQixDQUFDLElBQUkifQ==
@@ -0,0 +1,263 @@
1
+ import "../../index-C0eAp5f5.js";
2
+ import { FormResponseAttributes, Response as Response$1 } from "../../index-BVf069X-.js";
3
+ import "../../index-vP8BKdxl.js";
4
+ import "../../utils-DyTiotQz.js";
5
+ import { Context as Context$1, Message, MessageRole, NextMessageRequest as NextMessageRequest$1, ProductSearchMessageMetadata, Suggestion as Suggestion$1, SupportedEventRequest as SupportedEventRequest$1, UserEvent as UserEvent$1 } from "../../index-DgjDuQl4.js";
6
+ import "../../chatElementDisplayLocation-BoE6DEdv.js";
7
+ import "../../frontendConfig-CymUbclV.js";
8
+ import "../../test-types-DbrKQIqB.js";
9
+ import "../../spiffyWidgets-BnkP5kXf.js";
10
+ import "../../search-CIrqYYMI.js";
11
+ import "../../index-CJc7_j_v.js";
12
+ import { SpiffyMetricsEventName } from "../../amplitudeContext-DXnJi0V1.js";
13
+ import { MouseEventTypes, NodeSelector, SelectorFactory } from "../../nodeSelector-Dcn3_NrZ.js";
14
+ import { Context, NextMessageRequest, SupportedEventRequest, UserEvent } from "@spiffy-ai/commerce-api-client";
15
+ import * as react2 from "react";
16
+ import { ReactElement } from "react";
17
+
18
+ //#region src/application/utils/analyticsUtils.d.ts
19
+ declare global {
20
+ interface Window {
21
+ dataLayer: any[];
22
+ }
23
+ }
24
+ /**
25
+ * Wraps the window.dataLayer.push method to intercept add_to_cart events and send them to Amplitude.
26
+ * This function runs on an interval until the dataLayer is available.
27
+ */
28
+ declare const initDataLayerWrapper: (track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) => void;
29
+ declare const initAmplitude: (track: (eventName: SpiffyMetricsEventName, eventProps?: Record<string, unknown>) => void) => void;
30
+ //#endregion
31
+ //#region src/application/utils/coreContextToApiContext.d.ts
32
+ declare const coreContextToApiContext: (context: Context$1) => Context;
33
+ //#endregion
34
+ //#region src/application/utils/coreUserEventToApiUserEvent.d.ts
35
+ declare const coreUserEventToApiUserEvent: (data: UserEvent$1) => UserEvent;
36
+ //#endregion
37
+ //#region src/application/utils/divideArray.d.ts
38
+ declare const divideArray: <T>(array: T[], size: number) => T[][];
39
+ //#endregion
40
+ //#region src/application/utils/elementObserver.d.ts
41
+ /**
42
+ * The `ElementObserver` class monitors all changes related to the specific element it is responsible for.
43
+ * It is automatically instantiated by the `useElementObserver` hook, which manages all instances of this class.
44
+ *
45
+ * How it works:
46
+ *
47
+ * Each instance of `ElementObserver` holds several pieces of information related to the node it is monitoring,
48
+ * such as the node's selector and its `MutationObserver`. This class is responsible for translating raw node
49
+ * changes into a more user-friendly format. For example, when the node is added to the DOM, the `ElementObserver`
50
+ * is notified by the `DOMObserver`, which triggers the `onAdd` callback function on the respective `useElementObserver`
51
+ * instance.
52
+ *
53
+ * Instances of `ElementObserver` are fully managed by the `useElementObserver` hook, requiring no additional configuration.
54
+ * When the hook is destroyed, its corresponding `ElementObserver` instance is automatically removed.
55
+ *
56
+ */
57
+ declare class ElementObserver {
58
+ private mutation;
59
+ private node;
60
+ private selector;
61
+ private eventListeners;
62
+ private classAdded;
63
+ private classRemoved;
64
+ private nodeDisplay;
65
+ private addFn;
66
+ private removeFn;
67
+ private changeFn;
68
+ private classChangeFn;
69
+ private addChildFn?;
70
+ private removeChildFn?;
71
+ private resetFn;
72
+ constructor(selector: NodeSelector);
73
+ private handleAttributes;
74
+ private handleChildList;
75
+ private addInitialListeners;
76
+ private clearEventListeners;
77
+ private renew;
78
+ getSelector(): NodeSelector;
79
+ getNode(): HTMLElement | null;
80
+ synchronize(): void;
81
+ init(): void;
82
+ watch(node: Node): void;
83
+ destroy(): void;
84
+ render(fn: () => ReactElement): react2.ReactPortal | undefined;
85
+ fire(event: MouseEventTypes): void;
86
+ show(): void;
87
+ hide(): void;
88
+ registerEvent(event: keyof HTMLElementEventMap, fn: EventListenerOrEventListenerObject): void;
89
+ registerOnReset(fn: () => void): void;
90
+ registerOnChange(fn: (el: HTMLElement | null) => void): void;
91
+ registerOnAdd(fn: (el: HTMLElement | null) => void): void;
92
+ registerOnRemove(fn: (el: HTMLElement | null) => void): void;
93
+ registerOnclassChange(fn: (classes?: DOMTokenList) => void): void;
94
+ registerOnAddChild(fn: (classes?: DOMTokenList) => void): void;
95
+ registerOnRemoveChild(fn: (classes?: DOMTokenList) => void): void;
96
+ registerOnClassAdded(className: string, fn: () => void): void;
97
+ registerOnClassRemoved(className: string, fn: () => void): void;
98
+ }
99
+ //#endregion
100
+ //#region src/application/utils/domObserver.d.ts
101
+ /**
102
+ * This class manages a `MutationObserver` for the `document.body`. It monitors nodes that are
103
+ * added or removed from the DOM and notifies the observers for each observable element
104
+ * when they are ready to be watched.
105
+ *
106
+ * How that works:
107
+ *
108
+ * When the `observe` function is called, it attaches a `MutationObserver` to the `document.body` element.
109
+ * All changes to `document.body` are tracked by this observer. When changes are detected, the `MutationObserver`
110
+ * iterates through all added and removed nodes and checks if each node exists in the main map of observable elements.
111
+ *
112
+ * If a match is found, it notifies the corresponding `ElementObserver` instance to start monitoring changes for that element.
113
+ *
114
+ * The primary `MutationObserver` remains active until the `destroy` function is called. Calling `destroy` will disconnect all
115
+ * individual element observers and release any associated resources.
116
+ *
117
+ * There is no need to explicitly call the `observe` function. It is automatically invoked when a `useElementObserver` hook is instantiated.
118
+ *
119
+ */
120
+ declare class DOMObserver {
121
+ private static documentObserver;
122
+ private static listeners;
123
+ private static notifyAdition;
124
+ private static notifyRemoval;
125
+ private static notifyChildrenChanges;
126
+ private static mapNodeInstancesToListeners;
127
+ static add(selector: NodeSelector): ElementObserver;
128
+ static remove(selector: NodeSelector): void;
129
+ static observe(): void;
130
+ static destroy(): void;
131
+ }
132
+ //#endregion
133
+ //#region src/application/utils/imageFilter.d.ts
134
+ declare const getRecentProductImageUrls: (lastMessages: Message[], currentProductId: string | undefined) => string[];
135
+ //#endregion
136
+ //#region src/application/utils/merchantUtils.d.ts
137
+ declare const prepareMerchantPage: () => void;
138
+ //#endregion
139
+ //#region src/application/utils/messageFromFormSubmittedEvent.d.ts
140
+ declare const messageFromFormSubmittedEvent: (event: UserEvent$1, formResponseAttributes: FormResponseAttributes["attributes"]) => Message | undefined;
141
+ //#endregion
142
+ //#region src/application/utils/messageFromQueryEvent.d.ts
143
+ /**
144
+ * Transforms a query UserEvent object into a Message object for presentation.
145
+ *
146
+ * @param event The user event object received from the server
147
+ *
148
+ * @returns A Message if the event is a query event, otherwise undefined
149
+ */
150
+ declare const messageFromQueryEvent: (event: UserEvent$1) => Message | undefined;
151
+ //#endregion
152
+ //#region src/application/utils/messageFromResponse.d.ts
153
+ /**
154
+ * Transforms a server Response object into a Message object for presentation.
155
+ *
156
+ * @param response The response object received from the server containing model generated content
157
+ *
158
+ * @returns A Message if the response contains known attributes, undefined otherwise
159
+ */
160
+ declare const messageFromResponse: (response?: Response$1) => Message | undefined;
161
+ //#endregion
162
+ //#region src/application/utils/messageFromSuggestionEvent.d.ts
163
+ /**
164
+ * Transforms a UserEvent object into a Message object for presentation.
165
+ *
166
+ * @param event The UserEvent object received from the server
167
+ * @param suggestions A list of generated suggestions to match the event to
168
+ *
169
+ * @returns A Message if the event is a suggestion click event, undefined otherwise
170
+ */
171
+ declare const messageFromSuggestionEvent: (event: UserEvent$1, suggestions: Suggestion$1[]) => Message | undefined;
172
+ //#endregion
173
+ //#region src/application/utils/mutationHelper.d.ts
174
+ declare class MutationHelper {
175
+ static fireClassChange(record: MutationRecord, node: HTMLElement | null, fn: (classes: DOMTokenList) => void): void;
176
+ static fireClassAdded(record: MutationRecord, node: HTMLElement | null, classMap: Map<string, () => void>): void;
177
+ static fireClassRemoved(record: MutationRecord, node: HTMLElement | null, classMap: Map<string, () => void>): void;
178
+ static fireSubtreeChange(nodes: NodeList, fn?: (nodes: NodeList) => void): void;
179
+ static isClass(mutation: MutationRecord): boolean;
180
+ static isChildList(mutation: MutationRecord): boolean;
181
+ }
182
+ //#endregion
183
+ //#region src/application/utils/nextMessageRequestToApiRequest.d.ts
184
+ declare const messageRequestToCommerceMessageRequest: (data: NextMessageRequest$1) => NextMessageRequest;
185
+ //#endregion
186
+ //#region src/application/utils/overrides.d.ts
187
+ type ReplaceOp<T> = {
188
+ $replace: T;
189
+ };
190
+ type DeleteOp = {
191
+ $delete: true;
192
+ };
193
+ type Builtin = Date | RegExp | ((...args: unknown[]) => unknown);
194
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined;
195
+ /**
196
+ * Override<T> is a DeepPartial-like type with special operators:
197
+ * - { $replace: T } to replace an entire subtree/array
198
+ * - { $delete: true } to delete an object key
199
+ *
200
+ * Arrays behavior:
201
+ * - Arrays of objects: merge-by-index by default (unless `arrayStrategy: 'replace'` or `$replace` is used)
202
+ * - Arrays of primitives (string/number/boolean/...): replaced by default when a patch array is provided
203
+ */
204
+ type Override<T> = T extends Primitive | Builtin ? T | ReplaceOp<T> | DeleteOp : T extends (infer U)[] ? Array<Override<U> | undefined> | ReplaceOp<T> : T extends Map<unknown, unknown> | Set<unknown> ? ReplaceOp<T> : T extends object ? { [K in keyof T]?: Override<T[K]> | DeleteOp | null } | ReplaceOp<T> : T;
205
+ type MergeOptions = {
206
+ /**
207
+ * How to treat arrays when patch provides an array (not $replace):
208
+ * - 'replace': always use patch array as whole value
209
+ * - 'mergeByIndex': merge each index recursively (default for arrays of objects)
210
+ * Note: Arrays of primitives are replaced by default regardless of this option.
211
+ */
212
+ arrayStrategy?: 'replace' | 'mergeByIndex';
213
+ /**
214
+ * If true, a `null` patch value deletes the key from an object (RFC 7396-ish)
215
+ */
216
+ nullDeletes?: boolean;
217
+ };
218
+ type NoInfer<T> = [T][T extends unknown ? 0 : never];
219
+ declare function applyOverrides<T>(base: T, patch: Override<NoInfer<T>>, opts?: MergeOptions): T;
220
+ //#endregion
221
+ //#region src/application/utils/stringUtils.d.ts
222
+ declare class StringUtils {
223
+ static isNullOrEmpty(value: string | undefined): boolean;
224
+ static trimToNull(value: string | undefined): string | undefined;
225
+ static capitalize(type: string | undefined): string;
226
+ /**
227
+ * Finds the first pattern in an array that matches a given URL.
228
+ * Patterns can include a single wildcard '*' which matches any sequence of characters.
229
+ *
230
+ * @param patterns
231
+ * @param urlToTest
232
+ * @returns
233
+ */
234
+ static findMatchingPattern(patterns: string[], urlToTest: Location): string | undefined;
235
+ }
236
+ //#endregion
237
+ //#region src/application/utils/supportedEventRequestToApiRequest.d.ts
238
+ declare const coreSupportedEventRequestToApiRequest: (coreSupportedEventRequest: SupportedEventRequest$1) => SupportedEventRequest;
239
+ //#endregion
240
+ //#region src/application/utils/urlsParser.d.ts
241
+ declare const parseHref: (href: string) => {
242
+ url: URL | undefined;
243
+ urlSearchParams: URLSearchParams | undefined;
244
+ };
245
+ declare const createUrlWithQueryParams: (url: string, queryParams: Record<string, string>) => string;
246
+ declare const getQueryParam: (key: string) => string | null;
247
+ type SearchMessage = {
248
+ id: string;
249
+ role: MessageRole;
250
+ createdAt: string;
251
+ } & ProductSearchMessageMetadata;
252
+ declare const buildSearchHash: (message: SearchMessage) => string;
253
+ declare const buildSearchStartHash: (query: string) => string;
254
+ declare const parseSearchHash: (hash: string) => {
255
+ id: string | null;
256
+ query: string | null;
257
+ };
258
+ //#endregion
259
+ //#region src/application/utils/validation.d.ts
260
+ declare const validateEmail: (value: string) => boolean;
261
+ //#endregion
262
+ export { DOMObserver, DeleteOp, ElementObserver, MergeOptions, MouseEventTypes, MutationHelper, NodeSelector, Override, ReplaceOp, SelectorFactory, StringUtils, applyOverrides, buildSearchHash, buildSearchStartHash, coreContextToApiContext, coreSupportedEventRequestToApiRequest, coreUserEventToApiUserEvent, createUrlWithQueryParams, divideArray, getQueryParam, getRecentProductImageUrls, initAmplitude, initDataLayerWrapper, messageFromFormSubmittedEvent, messageFromQueryEvent, messageFromResponse, messageFromSuggestionEvent, messageRequestToCommerceMessageRequest, parseHref, parseSearchHash, prepareMerchantPage, validateEmail };
263
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvYW5hbHl0aWNzVXRpbHMuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9jb3JlQ29udGV4dFRvQXBpQ29udGV4dC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2NvcmVVc2VyRXZlbnRUb0FwaVVzZXJFdmVudC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL2RpdmlkZUFycmF5LmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZWxlbWVudE9ic2VydmVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvZG9tT2JzZXJ2ZXIuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9pbWFnZUZpbHRlci5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL21lcmNoYW50VXRpbHMuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tZXNzYWdlRnJvbUZvcm1TdWJtaXR0ZWRFdmVudC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL21lc3NhZ2VGcm9tUXVlcnlFdmVudC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL21lc3NhZ2VGcm9tUmVzcG9uc2UuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9tZXNzYWdlRnJvbVN1Z2dlc3Rpb25FdmVudC5kLnRzIiwiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3V0aWxzL211dGF0aW9uSGVscGVyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvbmV4dE1lc3NhZ2VSZXF1ZXN0VG9BcGlSZXF1ZXN0LmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvb3ZlcnJpZGVzLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvc3RyaW5nVXRpbHMuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy9zdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3QuZC50cyIsIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi91dGlscy91cmxzUGFyc2VyLmQudHMiLCIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vdXRpbHMvdmFsaWRhdGlvbi5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tIFwic3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQvYW1wbGl0dWRlQ29udGV4dFwiO1xuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBkYXRhTGF5ZXI6IGFueVtdO1xuICAgIH1cbn1cbi8qKlxuICogV3JhcHMgdGhlIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCBtZXRob2QgdG8gaW50ZXJjZXB0IGFkZF90b19jYXJ0IGV2ZW50cyBhbmQgc2VuZCB0aGVtIHRvIEFtcGxpdHVkZS5cbiAqIFRoaXMgZnVuY3Rpb24gcnVucyBvbiBhbiBpbnRlcnZhbCB1bnRpbCB0aGUgZGF0YUxheWVyIGlzIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaW5pdERhdGFMYXllcldyYXBwZXI6ICh0cmFjazogKGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgZXZlbnRQcm9wcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkKSA9PiB2b2lkO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaW5pdEFtcGxpdHVkZTogKHRyYWNrOiAoZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCBldmVudFByb3BzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQpID0+IHZvaWQ7XG4iLCJpbXBvcnQgeyBDb250ZXh0IGFzIEFwaUNvbnRleHQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDb3JlQ29udGV4dCB9IGZyb20gJy4uL21vZGVscyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjb3JlQ29udGV4dFRvQXBpQ29udGV4dDogKGNvbnRleHQ6IENvcmVDb250ZXh0KSA9PiBBcGlDb250ZXh0O1xuIiwiaW1wb3J0IHsgVXNlckV2ZW50IGFzIEFwaVVzZXJFdmVudCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgYXMgQ29yZVVzZXJFdmVudCB9IGZyb20gJy4uL21vZGVscyc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBjb3JlVXNlckV2ZW50VG9BcGlVc2VyRXZlbnQ6IChkYXRhOiBDb3JlVXNlckV2ZW50KSA9PiBBcGlVc2VyRXZlbnQ7XG4iLCJleHBvcnQgZGVjbGFyZSBjb25zdCBkaXZpZGVBcnJheTogPFQ+KGFycmF5OiBUW10sIHNpemU6IG51bWJlcikgPT4gVFtdW107XG4iLCJpbXBvcnQgeyBSZWFjdEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNb3VzZUV2ZW50VHlwZXMgfSBmcm9tICcuL21vdXNlRXZlbnRUeXBlcyc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3IgfSBmcm9tICcuL25vZGVTZWxlY3Rvcic7XG4vKipcbiAqIFRoZSBgRWxlbWVudE9ic2VydmVyYCBjbGFzcyBtb25pdG9ycyBhbGwgY2hhbmdlcyByZWxhdGVkIHRvIHRoZSBzcGVjaWZpYyBlbGVtZW50IGl0IGlzIHJlc3BvbnNpYmxlIGZvci5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW5zdGFudGlhdGVkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCB3aGljaCBtYW5hZ2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcy5cbiAqXG4gKiBIb3cgaXQgd29ya3M6XG4gKlxuICogRWFjaCBpbnN0YW5jZSBvZiBgRWxlbWVudE9ic2VydmVyYCBob2xkcyBzZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRoZSBub2RlIGl0IGlzIG1vbml0b3JpbmcsXG4gKiBzdWNoIGFzIHRoZSBub2RlJ3Mgc2VsZWN0b3IgYW5kIGl0cyBgTXV0YXRpb25PYnNlcnZlcmAuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIHJhdyBub2RlXG4gKiBjaGFuZ2VzIGludG8gYSBtb3JlIHVzZXItZnJpZW5kbHkgZm9ybWF0LiBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgbm9kZSBpcyBhZGRlZCB0byB0aGUgRE9NLCB0aGUgYEVsZW1lbnRPYnNlcnZlcmBcbiAqIGlzIG5vdGlmaWVkIGJ5IHRoZSBgRE9NT2JzZXJ2ZXJgLCB3aGljaCB0cmlnZ2VycyB0aGUgYG9uQWRkYCBjYWxsYmFjayBmdW5jdGlvbiBvbiB0aGUgcmVzcGVjdGl2ZSBgdXNlRWxlbWVudE9ic2VydmVyYFxuICogaW5zdGFuY2UuXG4gKlxuICogSW5zdGFuY2VzIG9mIGBFbGVtZW50T2JzZXJ2ZXJgIGFyZSBmdWxseSBtYW5hZ2VkIGJ5IHRoZSBgdXNlRWxlbWVudE9ic2VydmVyYCBob29rLCByZXF1aXJpbmcgbm8gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICogV2hlbiB0aGUgaG9vayBpcyBkZXN0cm95ZWQsIGl0cyBjb3JyZXNwb25kaW5nIGBFbGVtZW50T2JzZXJ2ZXJgIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5cbiAqXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEVsZW1lbnRPYnNlcnZlciB7XG4gICAgcHJpdmF0ZSBtdXRhdGlvbjtcbiAgICBwcml2YXRlIG5vZGU7XG4gICAgcHJpdmF0ZSBzZWxlY3RvcjtcbiAgICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzO1xuICAgIHByaXZhdGUgY2xhc3NBZGRlZDtcbiAgICBwcml2YXRlIGNsYXNzUmVtb3ZlZDtcbiAgICBwcml2YXRlIG5vZGVEaXNwbGF5O1xuICAgIHByaXZhdGUgYWRkRm47XG4gICAgcHJpdmF0ZSByZW1vdmVGbjtcbiAgICBwcml2YXRlIGNoYW5nZUZuO1xuICAgIHByaXZhdGUgY2xhc3NDaGFuZ2VGbjtcbiAgICBwcml2YXRlIGFkZENoaWxkRm4/O1xuICAgIHByaXZhdGUgcmVtb3ZlQ2hpbGRGbj87XG4gICAgcHJpdmF0ZSByZXNldEZuO1xuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yOiBOb2RlU2VsZWN0b3IpO1xuICAgIHByaXZhdGUgaGFuZGxlQXR0cmlidXRlcztcbiAgICBwcml2YXRlIGhhbmRsZUNoaWxkTGlzdDtcbiAgICBwcml2YXRlIGFkZEluaXRpYWxMaXN0ZW5lcnM7XG4gICAgcHJpdmF0ZSBjbGVhckV2ZW50TGlzdGVuZXJzO1xuICAgIHByaXZhdGUgcmVuZXc7XG4gICAgZ2V0U2VsZWN0b3IoKTogTm9kZVNlbGVjdG9yO1xuICAgIGdldE5vZGUoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIHN5bmNocm9uaXplKCk6IHZvaWQ7XG4gICAgaW5pdCgpOiB2b2lkO1xuICAgIHdhdGNoKG5vZGU6IE5vZGUpOiB2b2lkO1xuICAgIGRlc3Ryb3koKTogdm9pZDtcbiAgICByZW5kZXIoZm46ICgpID0+IFJlYWN0RWxlbWVudCk6IGltcG9ydChcInJlYWN0XCIpLlJlYWN0UG9ydGFsIHwgdW5kZWZpbmVkO1xuICAgIGZpcmUoZXZlbnQ6IE1vdXNlRXZlbnRUeXBlcyk6IHZvaWQ7XG4gICAgc2hvdygpOiB2b2lkO1xuICAgIGhpZGUoKTogdm9pZDtcbiAgICByZWdpc3RlckV2ZW50KGV2ZW50OiBrZXlvZiBIVE1MRWxlbWVudEV2ZW50TWFwLCBmbjogRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPblJlc2V0KGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoZWw6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJPbkFkZChmbjogKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHZvaWQpOiB2b2lkO1xuICAgIHJlZ2lzdGVyT25SZW1vdmUoZm46IChlbDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uY2xhc3NDaGFuZ2UoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uQWRkQ2hpbGQoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uUmVtb3ZlQ2hpbGQoZm46IChjbGFzc2VzPzogRE9NVG9rZW5MaXN0KSA9PiB2b2lkKTogdm9pZDtcbiAgICByZWdpc3Rlck9uQ2xhc3NBZGRlZChjbGFzc05hbWU6IHN0cmluZywgZm46ICgpID0+IHZvaWQpOiB2b2lkO1xuICAgIHJlZ2lzdGVyT25DbGFzc1JlbW92ZWQoY2xhc3NOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn1cbiIsImltcG9ydCB7IEVsZW1lbnRPYnNlcnZlciB9IGZyb20gJy4vZWxlbWVudE9ic2VydmVyJztcbmltcG9ydCB7IE5vZGVTZWxlY3RvciB9IGZyb20gJy4vbm9kZVNlbGVjdG9yJztcbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIGZvciB0aGUgYGRvY3VtZW50LmJvZHlgLiBJdCBtb25pdG9ycyBub2RlcyB0aGF0IGFyZVxuICogYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBET00gYW5kIG5vdGlmaWVzIHRoZSBvYnNlcnZlcnMgZm9yIGVhY2ggb2JzZXJ2YWJsZSBlbGVtZW50XG4gKiB3aGVuIHRoZXkgYXJlIHJlYWR5IHRvIGJlIHdhdGNoZWQuXG4gKlxuICogSG93IHRoYXQgd29ya3M6XG4gKlxuICogV2hlbiB0aGUgYG9ic2VydmVgIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgYXR0YWNoZXMgYSBgTXV0YXRpb25PYnNlcnZlcmAgdG8gdGhlIGBkb2N1bWVudC5ib2R5YCBlbGVtZW50LlxuICogQWxsIGNoYW5nZXMgdG8gYGRvY3VtZW50LmJvZHlgIGFyZSB0cmFja2VkIGJ5IHRoaXMgb2JzZXJ2ZXIuIFdoZW4gY2hhbmdlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBgTXV0YXRpb25PYnNlcnZlcmBcbiAqIGl0ZXJhdGVzIHRocm91Z2ggYWxsIGFkZGVkIGFuZCByZW1vdmVkIG5vZGVzIGFuZCBjaGVja3MgaWYgZWFjaCBub2RlIGV4aXN0cyBpbiB0aGUgbWFpbiBtYXAgb2Ygb2JzZXJ2YWJsZSBlbGVtZW50cy5cbiAqXG4gKiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBub3RpZmllcyB0aGUgY29ycmVzcG9uZGluZyBgRWxlbWVudE9ic2VydmVyYCBpbnN0YW5jZSB0byBzdGFydCBtb25pdG9yaW5nIGNoYW5nZXMgZm9yIHRoYXQgZWxlbWVudC5cbiAqXG4gKiBUaGUgcHJpbWFyeSBgTXV0YXRpb25PYnNlcnZlcmAgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBkZXN0cm95YCBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbGxpbmcgYGRlc3Ryb3lgIHdpbGwgZGlzY29ubmVjdCBhbGxcbiAqIGluZGl2aWR1YWwgZWxlbWVudCBvYnNlcnZlcnMgYW5kIHJlbGVhc2UgYW55IGFzc29jaWF0ZWQgcmVzb3VyY2VzLlxuICpcbiAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwbGljaXRseSBjYWxsIHRoZSBgb2JzZXJ2ZWAgZnVuY3Rpb24uIEl0IGlzIGF1dG9tYXRpY2FsbHkgaW52b2tlZCB3aGVuIGEgYHVzZUVsZW1lbnRPYnNlcnZlcmAgaG9vayBpcyBpbnN0YW50aWF0ZWQuXG4gKlxuICovXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBET01PYnNlcnZlciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZG9jdW1lbnRPYnNlcnZlcjtcbiAgICBwcml2YXRlIHN0YXRpYyBsaXN0ZW5lcnM7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbm90aWZ5QWRpdGlvbjtcbiAgICBwcml2YXRlIHN0YXRpYyBub3RpZnlSZW1vdmFsO1xuICAgIHByaXZhdGUgc3RhdGljIG5vdGlmeUNoaWxkcmVuQ2hhbmdlcztcbiAgICBwcml2YXRlIHN0YXRpYyBtYXBOb2RlSW5zdGFuY2VzVG9MaXN0ZW5lcnM7XG4gICAgc3RhdGljIGFkZChzZWxlY3RvcjogTm9kZVNlbGVjdG9yKTogRWxlbWVudE9ic2VydmVyO1xuICAgIHN0YXRpYyByZW1vdmUoc2VsZWN0b3I6IE5vZGVTZWxlY3Rvcik6IHZvaWQ7XG4gICAgc3RhdGljIG9ic2VydmUoKTogdm9pZDtcbiAgICBzdGF0aWMgZGVzdHJveSgpOiB2b2lkO1xufVxuIiwiaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0UmVjZW50UHJvZHVjdEltYWdlVXJsczogKGxhc3RNZXNzYWdlczogTWVzc2FnZVtdLCBjdXJyZW50UHJvZHVjdElkOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHN0cmluZ1tdO1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgcHJlcGFyZU1lcmNoYW50UGFnZTogKCkgPT4gdm9pZDtcbiIsImltcG9ydCB7IEZvcm1SZXNwb25zZUF0dHJpYnV0ZXMsIE1lc3NhZ2UsIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQ6IChldmVudDogVXNlckV2ZW50LCBmb3JtUmVzcG9uc2VBdHRyaWJ1dGVzOiBGb3JtUmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXSkgPT4gTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IE1lc3NhZ2UsIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgcXVlcnkgVXNlckV2ZW50IG9iamVjdCBpbnRvIGEgTWVzc2FnZSBvYmplY3QgZm9yIHByZXNlbnRhdGlvbi5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgVGhlIHVzZXIgZXZlbnQgb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlclxuICpcbiAqIEByZXR1cm5zIEEgTWVzc2FnZSBpZiB0aGUgZXZlbnQgaXMgYSBxdWVyeSBldmVudCwgb3RoZXJ3aXNlIHVuZGVmaW5lZFxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBtZXNzYWdlRnJvbVF1ZXJ5RXZlbnQ6IChldmVudDogVXNlckV2ZW50KSA9PiBNZXNzYWdlIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgTWVzc2FnZSwgUmVzcG9uc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogVHJhbnNmb3JtcyBhIHNlcnZlciBSZXNwb25zZSBvYmplY3QgaW50byBhIE1lc3NhZ2Ugb2JqZWN0IGZvciBwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSBvYmplY3QgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGNvbnRhaW5pbmcgbW9kZWwgZ2VuZXJhdGVkIGNvbnRlbnRcbiAqXG4gKiBAcmV0dXJucyBBIE1lc3NhZ2UgaWYgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIGtub3duIGF0dHJpYnV0ZXMsIHVuZGVmaW5lZCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgbWVzc2FnZUZyb21SZXNwb25zZTogKHJlc3BvbnNlPzogUmVzcG9uc2UpID0+IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBNZXNzYWdlLCBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogVHJhbnNmb3JtcyBhIFVzZXJFdmVudCBvYmplY3QgaW50byBhIE1lc3NhZ2Ugb2JqZWN0IGZvciBwcmVzZW50YXRpb24uXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSBVc2VyRXZlbnQgb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlclxuICogQHBhcmFtIHN1Z2dlc3Rpb25zIEEgbGlzdCBvZiBnZW5lcmF0ZWQgc3VnZ2VzdGlvbnMgdG8gbWF0Y2ggdGhlIGV2ZW50IHRvXG4gKlxuICogQHJldHVybnMgQSBNZXNzYWdlIGlmIHRoZSBldmVudCBpcyBhIHN1Z2dlc3Rpb24gY2xpY2sgZXZlbnQsIHVuZGVmaW5lZCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgbWVzc2FnZUZyb21TdWdnZXN0aW9uRXZlbnQ6IChldmVudDogVXNlckV2ZW50LCBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdKSA9PiBNZXNzYWdlIHwgdW5kZWZpbmVkO1xuIiwiZXhwb3J0IGRlY2xhcmUgY2xhc3MgTXV0YXRpb25IZWxwZXIge1xuICAgIHN0YXRpYyBmaXJlQ2xhc3NDaGFuZ2UocmVjb3JkOiBNdXRhdGlvblJlY29yZCwgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsLCBmbjogKGNsYXNzZXM6IERPTVRva2VuTGlzdCkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgc3RhdGljIGZpcmVDbGFzc0FkZGVkKHJlY29yZDogTXV0YXRpb25SZWNvcmQsIG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCwgY2xhc3NNYXA6IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KTogdm9pZDtcbiAgICBzdGF0aWMgZmlyZUNsYXNzUmVtb3ZlZChyZWNvcmQ6IE11dGF0aW9uUmVjb3JkLCBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsIGNsYXNzTWFwOiBNYXA8c3RyaW5nLCAoKSA9PiB2b2lkPik6IHZvaWQ7XG4gICAgc3RhdGljIGZpcmVTdWJ0cmVlQ2hhbmdlKG5vZGVzOiBOb2RlTGlzdCwgZm4/OiAobm9kZXM6IE5vZGVMaXN0KSA9PiB2b2lkKTogdm9pZDtcbiAgICBzdGF0aWMgaXNDbGFzcyhtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpOiBib29sZWFuO1xuICAgIHN0YXRpYyBpc0NoaWxkTGlzdChtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpOiBib29sZWFuO1xufVxuIiwiaW1wb3J0IHsgTmV4dE1lc3NhZ2VSZXF1ZXN0IGFzIEFwaU5leHRNZXNzYWdlUmVxdWVzdCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBOZXh0TWVzc2FnZVJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbHMnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgbWVzc2FnZVJlcXVlc3RUb0NvbW1lcmNlTWVzc2FnZVJlcXVlc3Q6IChkYXRhOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IEFwaU5leHRNZXNzYWdlUmVxdWVzdDtcbiIsImV4cG9ydCB0eXBlIFJlcGxhY2VPcDxUPiA9IHtcbiAgICAkcmVwbGFjZTogVDtcbn07XG5leHBvcnQgdHlwZSBEZWxldGVPcCA9IHtcbiAgICAkZGVsZXRlOiB0cnVlO1xufTtcbnR5cGUgQnVpbHRpbiA9IERhdGUgfCBSZWdFeHAgfCAoKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bik7XG50eXBlIFByaW1pdGl2ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBiaWdpbnQgfCBzeW1ib2wgfCBudWxsIHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBPdmVycmlkZTxUPiBpcyBhIERlZXBQYXJ0aWFsLWxpa2UgdHlwZSB3aXRoIHNwZWNpYWwgb3BlcmF0b3JzOlxuICogLSB7ICRyZXBsYWNlOiBUIH0gdG8gcmVwbGFjZSBhbiBlbnRpcmUgc3VidHJlZS9hcnJheVxuICogLSB7ICRkZWxldGU6IHRydWUgfSB0byBkZWxldGUgYW4gb2JqZWN0IGtleVxuICpcbiAqIEFycmF5cyBiZWhhdmlvcjpcbiAqIC0gQXJyYXlzIG9mIG9iamVjdHM6IG1lcmdlLWJ5LWluZGV4IGJ5IGRlZmF1bHQgKHVubGVzcyBgYXJyYXlTdHJhdGVneTogJ3JlcGxhY2UnYCBvciBgJHJlcGxhY2VgIGlzIHVzZWQpXG4gKiAtIEFycmF5cyBvZiBwcmltaXRpdmVzIChzdHJpbmcvbnVtYmVyL2Jvb2xlYW4vLi4uKTogcmVwbGFjZWQgYnkgZGVmYXVsdCB3aGVuIGEgcGF0Y2ggYXJyYXkgaXMgcHJvdmlkZWRcbiAqL1xuZXhwb3J0IHR5cGUgT3ZlcnJpZGU8VD4gPSBUIGV4dGVuZHMgUHJpbWl0aXZlIHwgQnVpbHRpbiA/IFQgfCBSZXBsYWNlT3A8VD4gfCBEZWxldGVPcCA6IFQgZXh0ZW5kcyAoaW5mZXIgVSlbXSA/IEFycmF5PE92ZXJyaWRlPFU+IHwgdW5kZWZpbmVkPiB8IFJlcGxhY2VPcDxUPiA6IFQgZXh0ZW5kcyBNYXA8dW5rbm93biwgdW5rbm93bj4gfCBTZXQ8dW5rbm93bj4gPyBSZXBsYWNlT3A8VD4gOiBUIGV4dGVuZHMgb2JqZWN0ID8ge1xuICAgIFtLIGluIGtleW9mIFRdPzogT3ZlcnJpZGU8VFtLXT4gfCBEZWxldGVPcCB8IG51bGw7XG59IHwgUmVwbGFjZU9wPFQ+IDogVDtcbmV4cG9ydCB0eXBlIE1lcmdlT3B0aW9ucyA9IHtcbiAgICAvKipcbiAgICAgKiBIb3cgdG8gdHJlYXQgYXJyYXlzIHdoZW4gcGF0Y2ggcHJvdmlkZXMgYW4gYXJyYXkgKG5vdCAkcmVwbGFjZSk6XG4gICAgICogLSAncmVwbGFjZSc6IGFsd2F5cyB1c2UgcGF0Y2ggYXJyYXkgYXMgd2hvbGUgdmFsdWVcbiAgICAgKiAtICdtZXJnZUJ5SW5kZXgnOiBtZXJnZSBlYWNoIGluZGV4IHJlY3Vyc2l2ZWx5IChkZWZhdWx0IGZvciBhcnJheXMgb2Ygb2JqZWN0cylcbiAgICAgKiBOb3RlOiBBcnJheXMgb2YgcHJpbWl0aXZlcyBhcmUgcmVwbGFjZWQgYnkgZGVmYXVsdCByZWdhcmRsZXNzIG9mIHRoaXMgb3B0aW9uLlxuICAgICAqL1xuICAgIGFycmF5U3RyYXRlZ3k/OiAncmVwbGFjZScgfCAnbWVyZ2VCeUluZGV4JztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhIGBudWxsYCBwYXRjaCB2YWx1ZSBkZWxldGVzIHRoZSBrZXkgZnJvbSBhbiBvYmplY3QgKFJGQyA3Mzk2LWlzaClcbiAgICAgKi9cbiAgICBudWxsRGVsZXRlcz86IGJvb2xlYW47XG59O1xudHlwZSBOb0luZmVyPFQ+ID0gW1RdW1QgZXh0ZW5kcyB1bmtub3duID8gMCA6IG5ldmVyXTtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGFwcGx5T3ZlcnJpZGVzPFQ+KGJhc2U6IFQsIHBhdGNoOiBPdmVycmlkZTxOb0luZmVyPFQ+Piwgb3B0cz86IE1lcmdlT3B0aW9ucyk6IFQ7XG5leHBvcnQge307XG4iLCJkZWNsYXJlIGNsYXNzIFN0cmluZ1V0aWxzIHtcbiAgICBzdGF0aWMgaXNOdWxsT3JFbXB0eSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbjtcbiAgICBzdGF0aWMgdHJpbVRvTnVsbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBjYXBpdGFsaXplKHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBGaW5kcyB0aGUgZmlyc3QgcGF0dGVybiBpbiBhbiBhcnJheSB0aGF0IG1hdGNoZXMgYSBnaXZlbiBVUkwuXG4gICAgICogUGF0dGVybnMgY2FuIGluY2x1ZGUgYSBzaW5nbGUgd2lsZGNhcmQgJyonIHdoaWNoIG1hdGNoZXMgYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0dGVybnNcbiAgICAgKiBAcGFyYW0gdXJsVG9UZXN0XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBzdGF0aWMgZmluZE1hdGNoaW5nUGF0dGVybihwYXR0ZXJuczogc3RyaW5nW10sIHVybFRvVGVzdDogTG9jYXRpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgeyBTdHJpbmdVdGlscyB9O1xuIiwiaW1wb3J0IHsgU3VwcG9ydGVkRXZlbnRSZXF1ZXN0IGFzIEFwaVN1cHBvcnRlZEV2ZW50UmVxdWVzdCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBTdXBwb3J0ZWRFdmVudFJlcXVlc3QgYXMgQ29yZVN1cHBvcnRlZEV2ZW50UmVxdWVzdCB9IGZyb20gJy4uL21vZGVscy9hcGkvc3VwcG9ydGVkRXZlbnRSZXF1ZXN0JztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3Q6IChjb3JlU3VwcG9ydGVkRXZlbnRSZXF1ZXN0OiBDb3JlU3VwcG9ydGVkRXZlbnRSZXF1ZXN0KSA9PiBBcGlTdXBwb3J0ZWRFdmVudFJlcXVlc3Q7XG4iLCJpbXBvcnQgeyBNZXNzYWdlUm9sZSwgUHJvZHVjdFNlYXJjaE1lc3NhZ2VNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9tZXNzYWdlJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHBhcnNlSHJlZjogKGhyZWY6IHN0cmluZykgPT4ge1xuICAgIHVybDogVVJMIHwgdW5kZWZpbmVkO1xuICAgIHVybFNlYXJjaFBhcmFtczogVVJMU2VhcmNoUGFyYW1zIHwgdW5kZWZpbmVkO1xufTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGNyZWF0ZVVybFdpdGhRdWVyeVBhcmFtczogKHVybDogc3RyaW5nLCBxdWVyeVBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4gc3RyaW5nO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0UXVlcnlQYXJhbTogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcgfCBudWxsO1xudHlwZSBTZWFyY2hNZXNzYWdlID0ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcm9sZTogTWVzc2FnZVJvbGU7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG59ICYgUHJvZHVjdFNlYXJjaE1lc3NhZ2VNZXRhZGF0YTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGJ1aWxkU2VhcmNoSGFzaDogKG1lc3NhZ2U6IFNlYXJjaE1lc3NhZ2UpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGJ1aWxkU2VhcmNoU3RhcnRIYXNoOiAocXVlcnk6IHN0cmluZykgPT4gc3RyaW5nO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgcGFyc2VTZWFyY2hIYXNoOiAoaGFzaDogc3RyaW5nKSA9PiB7XG4gICAgaWQ6IHN0cmluZyB8IG51bGw7XG4gICAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG59O1xuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVFbWFpbDogKHZhbHVlOiBzdHJpbmcpID0+IGJvb2xlYW47XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQUksS0FBSyxDQUFDLEtBQUssV0FBQSxHQUFBLENBQUE7QUFDZixJQUFXLHVCQUFVO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDckIsSUFBVyxnQkFBYTtDQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDRHhCLElBQVcsMEJBQTBCO0NBQUM7T0FBVztPQUFtQjtDQUFXOzs7O0FDQS9FLElBQVcsOEJBQThCO0NBQUM7T0FBVztPQUFxQjtDQUFhOzs7O0FDRnZGLElBQVcsY0FBYztDQUFDO09BQVc7T0FBUztDQUFFOzs7O0FDSWhELElBQVcsa0JBQWtCO0NBQUM7T0FBVztPQUFvQjtPQUFvQjtPQUFtQjtPQUFLO09BQUEsT0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDRnpHLElBQUUsY0FBQTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNERixJQUFXLDRCQUE0QixDQUFDLFdBQVcsUUFBUTs7OztBQ0QzRCxJQUFXLHNCQUFzQixDQUFDLElBQUk7Ozs7QUNDdEMsSUFBVyxnQ0FBZ0M7Q0FBQztPQUFXO09BQWlCO09BQThCO0NBQVE7Ozs7QUNBOUcsSUFBRSx3QkFBQTtDQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDQUYsSUFBRSxzQkFBQTtDQUFBO09BQUE7T0FBQTtDQUFBOzs7O0FDQUYsSUFBRSw2QkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7Ozs7QUNERixJQUFXLGlCQUFpQjtDQUFDO09BQU87T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0VwQyxJQUFXLHlDQUF5QztDQUFDO09BQVc7T0FBMEI7Q0FBc0I7Ozs7QUNGaEgsSUFBVyxZQUFZLENBQUMsV0FBRyxFQUFBO0FBQzNCLElBQVcsV0FBSSxDQUFBLElBQUE7QUFDZixJQUFDLFVBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNELElBQUksWUFBWSxDQUFDLElBQUk7QUFDckIsSUFBVyxXQUFNO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNqQixJQUFDLGVBQUEsQ0FBQSxJQUFBO0FBQ0QsSUFBSSxVQUFVO0NBQUM7T0FBVztPQUFTO0NBQUU7QUFDckMsSUFBVyxpQkFBaUI7Q0FBQztPQUFXO09BQVM7T0FBUztPQUFlO09BQU07T0FBQTtDQUFBOzs7O0FDUC9FLElBQUksY0FBYyxDQUFDLFdBQU8sU0FBQTs7OztBQ0UxQixJQUFXLHdDQUF3QztDQUFDO09BQVc7T0FBaUM7Q0FBeUI7Ozs7QUNEekgsSUFBVyxZQUFZO0NBQUM7T0FBVztPQUFXO0NBQUk7QUFDbEQsSUFBVywyQkFBYSxDQUFBLFdBQUEsT0FBQTtBQUN4QixJQUFXLGdCQUFnQixDQUFDLElBQUk7QUFDaEMsSUFBQyxnQkFBQTtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ0QsSUFBVyxrQkFBa0IsQ0FBQyxXQUFXLGNBQWM7QUFDdkQsSUFBVyx1QkFBdUIsQ0FBQyxJQUFJO0FBQ3ZDLElBQVcsa0JBQVUsQ0FBQSxJQUFBOzs7O0FDUHJCLElBQVcsZ0JBQWdCLENBQUMsSUFBSSJ9
@@ -0,0 +1,21 @@
1
+ import "../../types-CtUb63bt.js";
2
+ import "../../events-DyUix-Bn.js";
3
+ import "../../models-c86hYW-F.js";
4
+ import "../../featureGates-KEwAL8p_.js";
5
+ import { buildSearchHash, buildSearchStartHash, createUrlWithQueryParams, getQueryParam, parseHref, parseSearchHash } from "../../urlsParser-DxjoLj98.js";
6
+ import "../../graphql-3PxNRFOc.js";
7
+ import "../../utils-DIvMgPe8.js";
8
+ import "../../api-BWSsazAG.js";
9
+ import "../../logger-W3lqg-4b.js";
10
+ import "../../utilityTypes-B2KuRn37.js";
11
+ import "../../variantInfo-BfKlkaWU.js";
12
+ import "../../localStorageContext-BPZ82q-G.js";
13
+ import "../../enviveConfig-DZBohDpc.js";
14
+ import "../../graphqlConfig-mDg6J44N.js";
15
+ import { NodeSelector, SelectorFactory, StringUtils, applyOverrides, coreContextToApiContext, coreSupportedEventRequestToApiRequest, coreUserEventToApiUserEvent, divideArray, getRecentProductImageUrls, initAmplitude, initDataLayerWrapper, messageFromFormSubmittedEvent, messageFromQueryEvent, messageFromResponse, messageFromSuggestionEvent, messageRequestToCommerceMessageRequest, prepareMerchantPage, validateEmail } from "../../utils-jYtD3hmA.js";
16
+ import "../../atomStore-DXTVqiKc.js";
17
+ import "../../enviveConfigContext-DrDjCems.js";
18
+ import "../../featureFlagServiceContext-FBM6DdMJ.js";
19
+ import { DOMObserver, ElementObserver, MutationHelper } from "../../domObserver-v9ODTyfT.js";
20
+
21
+ export { DOMObserver, ElementObserver, MutationHelper, NodeSelector, SelectorFactory, StringUtils, applyOverrides, buildSearchHash, buildSearchStartHash, coreContextToApiContext, coreSupportedEventRequestToApiRequest, coreUserEventToApiUserEvent, createUrlWithQueryParams, divideArray, getQueryParam, getRecentProductImageUrls, initAmplitude, initDataLayerWrapper, messageFromFormSubmittedEvent, messageFromQueryEvent, messageFromResponse, messageFromSuggestionEvent, messageRequestToCommerceMessageRequest, parseHref, parseSearchHash, prepareMerchantPage, validateEmail };