@mirai/core 0.4.621 → 0.4.623

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 (680) hide show
  1. package/build/Core.ErrorBoundary.js +2 -6
  2. package/build/Core.ErrorBoundary.js.map +1 -1
  3. package/build/Core.Notifications.js +25 -24
  4. package/build/Core.Notifications.js.map +1 -1
  5. package/build/Core.js +42 -44
  6. package/build/Core.js.map +1 -1
  7. package/build/Core.provider.js +18 -10
  8. package/build/Core.provider.js.map +1 -1
  9. package/build/components/Banner/Banner.js +71 -52
  10. package/build/components/Banner/Banner.js.map +1 -1
  11. package/build/components/Banner/Banner.skeleton.js +2 -3
  12. package/build/components/Banner/Banner.skeleton.js.map +1 -1
  13. package/build/components/Booking/Booking.js +67 -45
  14. package/build/components/Booking/Booking.js.map +1 -1
  15. package/build/components/Booking/Booking.l10n.js +4 -6
  16. package/build/components/Booking/Booking.l10n.js.map +1 -1
  17. package/build/components/Booking/Booking.skeleton.js +3 -4
  18. package/build/components/Booking/Booking.skeleton.js.map +1 -1
  19. package/build/components/Booking/components/Field/Field.js +14 -16
  20. package/build/components/Booking/components/Field/Field.js.map +1 -1
  21. package/build/components/Booking/components/Hotelverse/Hotelverse.js +30 -27
  22. package/build/components/Booking/components/Hotelverse/Hotelverse.js.map +1 -1
  23. package/build/components/Booking/components/Summary/Summary.js +27 -29
  24. package/build/components/Booking/components/Summary/Summary.js.map +1 -1
  25. package/build/components/Booking/helpers/getButtonPaymentKey.js +11 -16
  26. package/build/components/Booking/helpers/getButtonPaymentKey.js.map +1 -1
  27. package/build/components/Booking/helpers/getOccupationDataSource.js +20 -12
  28. package/build/components/Booking/helpers/getOccupationDataSource.js.map +1 -1
  29. package/build/components/Booking/helpers/getOccupationFromParty.js +5 -4
  30. package/build/components/Booking/helpers/getOccupationFromParty.js.map +1 -1
  31. package/build/components/Booking/helpers/getRoomDataSource.js +35 -21
  32. package/build/components/Booking/helpers/getRoomDataSource.js.map +1 -1
  33. package/build/components/Booking/helpers/getRoomSelectionData.js +11 -13
  34. package/build/components/Booking/helpers/getRoomSelectionData.js.map +1 -1
  35. package/build/components/Booking/partials/Booking.FormCancel.js +14 -17
  36. package/build/components/Booking/partials/Booking.FormCancel.js.map +1 -1
  37. package/build/components/Booking/partials/Booking.FormEdit.js +2 -3
  38. package/build/components/Booking/partials/Booking.FormEdit.js.map +1 -1
  39. package/build/components/Booking/partials/Booking.FormEditBoard.js +45 -47
  40. package/build/components/Booking/partials/Booking.FormEditBoard.js.map +1 -1
  41. package/build/components/Booking/partials/Booking.FormEditDate.js +19 -23
  42. package/build/components/Booking/partials/Booking.FormEditDate.js.map +1 -1
  43. package/build/components/Booking/partials/Booking.FormEditOccupation.js +45 -49
  44. package/build/components/Booking/partials/Booking.FormEditOccupation.js.map +1 -1
  45. package/build/components/Booking/partials/Booking.FormResend.js +11 -14
  46. package/build/components/Booking/partials/Booking.FormResend.js.map +1 -1
  47. package/build/components/Booking/partials/Booking.Information.js +31 -18
  48. package/build/components/Booking/partials/Booking.Information.js.map +1 -1
  49. package/build/components/Booking/partials/Booking.Menu.js +21 -22
  50. package/build/components/Booking/partials/Booking.Menu.js.map +1 -1
  51. package/build/components/Booking/partials/Booking.Modal.actions.js +33 -53
  52. package/build/components/Booking/partials/Booking.Modal.actions.js.map +1 -1
  53. package/build/components/Booking/partials/Booking.Modal.js +41 -28
  54. package/build/components/Booking/partials/Booking.Modal.js.map +1 -1
  55. package/build/components/Booking/partials/Booking.ModalAgency.js +9 -12
  56. package/build/components/Booking/partials/Booking.ModalAgency.js.map +1 -1
  57. package/build/components/Booking/partials/Booking.ModalBoard.js +55 -44
  58. package/build/components/Booking/partials/Booking.ModalBoard.js.map +1 -1
  59. package/build/components/Booking/partials/Booking.ModalCalendar.js +33 -23
  60. package/build/components/Booking/partials/Booking.ModalCalendar.js.map +1 -1
  61. package/build/components/Booking/partials/Booking.ModalCesSurvey.js +28 -12
  62. package/build/components/Booking/partials/Booking.ModalCesSurvey.js.map +1 -1
  63. package/build/components/Booking/partials/Booking.ModalOccupation.js +59 -44
  64. package/build/components/Booking/partials/Booking.ModalOccupation.js.map +1 -1
  65. package/build/components/Booking/partials/Booking.ModalRoomSelection.js +46 -41
  66. package/build/components/Booking/partials/Booking.ModalRoomSelection.js.map +1 -1
  67. package/build/components/Booking/partials/Booking.Payment.js +80 -74
  68. package/build/components/Booking/partials/Booking.Payment.js.map +1 -1
  69. package/build/components/Booking/partials/Booking.RoomCard.js +10 -11
  70. package/build/components/Booking/partials/Booking.RoomCard.js.map +1 -1
  71. package/build/components/Booking/partials/hooks/useEditFlow.js +44 -30
  72. package/build/components/Booking/partials/hooks/useEditFlow.js.map +1 -1
  73. package/build/components/Booking/partials/hooks/useSelectedRoomData.js +16 -18
  74. package/build/components/Booking/partials/hooks/useSelectedRoomData.js.map +1 -1
  75. package/build/components/BookingQuery/BookingQuery.js +42 -29
  76. package/build/components/BookingQuery/BookingQuery.js.map +1 -1
  77. package/build/components/ButtonFinder/ButtonFinder.js +16 -11
  78. package/build/components/ButtonFinder/ButtonFinder.js.map +1 -1
  79. package/build/components/Chat/Chat.js +65 -46
  80. package/build/components/Chat/Chat.js.map +1 -1
  81. package/build/components/Chat/components/Aura/Aura.js +41 -29
  82. package/build/components/Chat/components/Aura/Aura.js.map +1 -1
  83. package/build/components/Chat/components/Aura/Aura.waveform.js +17 -6
  84. package/build/components/Chat/components/Aura/Aura.waveform.js.map +1 -1
  85. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js +31 -34
  86. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js.map +1 -1
  87. package/build/components/Chat/components/Aura/hooks/useXaiRealtimeSession.js +16 -24
  88. package/build/components/Chat/components/Aura/hooks/useXaiRealtimeSession.js.map +1 -1
  89. package/build/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js +41 -33
  90. package/build/components/Chat/components/ButtonDispatcher/ButtonDispatcher.js.map +1 -1
  91. package/build/components/Chat/components/ButtonDispatcher/helpers/determinePosition.js +17 -16
  92. package/build/components/Chat/components/ButtonDispatcher/helpers/determinePosition.js.map +1 -1
  93. package/build/components/Chat/components/Header/Header.js +12 -15
  94. package/build/components/Chat/components/Header/Header.js.map +1 -1
  95. package/build/components/Chat/components/Input/Input.Context.js +10 -13
  96. package/build/components/Chat/components/Input/Input.Context.js.map +1 -1
  97. package/build/components/Chat/components/Input/Input.js +28 -18
  98. package/build/components/Chat/components/Input/Input.js.map +1 -1
  99. package/build/components/Chat/components/Message/Message.js +23 -18
  100. package/build/components/Chat/components/Message/Message.js.map +1 -1
  101. package/build/components/Chat/components/Message/components/Environment.js +32 -22
  102. package/build/components/Chat/components/Message/components/Environment.js.map +1 -1
  103. package/build/components/Chat/components/Message/components/Typewriter.js +19 -7
  104. package/build/components/Chat/components/Message/components/Typewriter.js.map +1 -1
  105. package/build/components/Chat/components/Message/helpers/formatText.js +15 -5
  106. package/build/components/Chat/components/Message/helpers/formatText.js.map +1 -1
  107. package/build/components/Chat/components/Rating/Rating.js +18 -11
  108. package/build/components/Chat/components/Rating/Rating.js.map +1 -1
  109. package/build/components/Chat/components/Welcome/Welcome.js +17 -23
  110. package/build/components/Chat/components/Welcome/Welcome.js.map +1 -1
  111. package/build/components/Chat/helpers/clientLobby.js +16 -21
  112. package/build/components/Chat/helpers/clientLobby.js.map +1 -1
  113. package/build/components/Chat/helpers/getStorageDomain.js +7 -8
  114. package/build/components/Chat/helpers/getStorageDomain.js.map +1 -1
  115. package/build/components/Chat/services/lobby.service.js +13 -16
  116. package/build/components/Chat/services/lobby.service.js.map +1 -1
  117. package/build/components/Checkout/Checkout.js +83 -59
  118. package/build/components/Checkout/Checkout.js.map +1 -1
  119. package/build/components/Checkout/Checkout.skeleton.js +3 -4
  120. package/build/components/Checkout/Checkout.skeleton.js.map +1 -1
  121. package/build/components/Checkout/components/InputRadio/InputRadio.js +9 -11
  122. package/build/components/Checkout/components/InputRadio/InputRadio.js.map +1 -1
  123. package/build/components/Checkout/helpers/getButtonPaymentKey.js +11 -16
  124. package/build/components/Checkout/helpers/getButtonPaymentKey.js.map +1 -1
  125. package/build/components/Checkout/helpers/getFieldProps.js +34 -29
  126. package/build/components/Checkout/helpers/getFieldProps.js.map +1 -1
  127. package/build/components/Checkout/helpers/getSchemaProps.js +14 -6
  128. package/build/components/Checkout/helpers/getSchemaProps.js.map +1 -1
  129. package/build/components/Checkout/partials/Checkout.Confirmation.js +59 -53
  130. package/build/components/Checkout/partials/Checkout.Confirmation.js.map +1 -1
  131. package/build/components/Checkout/partials/Checkout.Form.js +110 -83
  132. package/build/components/Checkout/partials/Checkout.Form.js.map +1 -1
  133. package/build/components/CookieBanner/CookieBanner.js +48 -28
  134. package/build/components/CookieBanner/CookieBanner.js.map +1 -1
  135. package/build/components/Deals/Deals.js +1 -3
  136. package/build/components/Deals/Deals.js.map +1 -1
  137. package/build/components/Environment/Environment.State.js +34 -33
  138. package/build/components/Environment/Environment.State.js.map +1 -1
  139. package/build/components/Environment/Environment.js +6 -5
  140. package/build/components/Environment/Environment.js.map +1 -1
  141. package/build/components/Finder/Finder.compact.js +47 -42
  142. package/build/components/Finder/Finder.compact.js.map +1 -1
  143. package/build/components/Finder/Finder.constants.js +2 -4
  144. package/build/components/Finder/Finder.constants.js.map +1 -1
  145. package/build/components/Finder/Finder.js +121 -95
  146. package/build/components/Finder/Finder.js.map +1 -1
  147. package/build/components/Finder/components/Calendar/Calendar.js +75 -58
  148. package/build/components/Finder/components/Calendar/Calendar.js.map +1 -1
  149. package/build/components/Finder/components/Calendar/Calendar.l10n.js +1 -3
  150. package/build/components/Finder/components/Calendar/Calendar.l10n.js.map +1 -1
  151. package/build/components/Finder/components/Calendar/helpers/calcMinStay.js +6 -7
  152. package/build/components/Finder/components/Calendar/helpers/calcMinStay.js.map +1 -1
  153. package/build/components/Finder/components/Calendar/helpers/calcTooltips.js +8 -8
  154. package/build/components/Finder/components/Calendar/helpers/calcTooltips.js.map +1 -1
  155. package/build/components/Finder/components/Calendar/helpers/fetchPrices.js +21 -13
  156. package/build/components/Finder/components/Calendar/helpers/fetchPrices.js.map +1 -1
  157. package/build/components/Finder/components/Places/Places.js +35 -26
  158. package/build/components/Finder/components/Places/Places.js.map +1 -1
  159. package/build/components/Finder/components/Places/helpers/calcColumns.js +12 -12
  160. package/build/components/Finder/components/Places/helpers/calcColumns.js.map +1 -1
  161. package/build/components/Finder/helpers/getAvailableWidth.js +7 -9
  162. package/build/components/Finder/helpers/getAvailableWidth.js.map +1 -1
  163. package/build/components/Finder/helpers/getDataSource.js +22 -20
  164. package/build/components/Finder/helpers/getDataSource.js.map +1 -1
  165. package/build/components/Finder/helpers/getFieldPosition.js +5 -6
  166. package/build/components/Finder/helpers/getFieldPosition.js.map +1 -1
  167. package/build/components/Finder/helpers/getForwarderUrl.js +44 -29
  168. package/build/components/Finder/helpers/getForwarderUrl.js.map +1 -1
  169. package/build/components/Finder/helpers/getHotels.js +6 -5
  170. package/build/components/Finder/helpers/getHotels.js.map +1 -1
  171. package/build/components/Finder/helpers/getOccupationDataSource.js +42 -34
  172. package/build/components/Finder/helpers/getOccupationDataSource.js.map +1 -1
  173. package/build/components/Finder/helpers/getPlaceCaption.js +2 -3
  174. package/build/components/Finder/helpers/getPlaceCaption.js.map +1 -1
  175. package/build/components/Finder/helpers/getPlacesOptions.js +18 -11
  176. package/build/components/Finder/helpers/getPlacesOptions.js.map +1 -1
  177. package/build/components/Finder/helpers/parseCalendarProps.js +14 -13
  178. package/build/components/Finder/helpers/parseCalendarProps.js.map +1 -1
  179. package/build/components/Finder/helpers/parseValue.js +5 -6
  180. package/build/components/Finder/helpers/parseValue.js.map +1 -1
  181. package/build/components/Header/Header.js +65 -54
  182. package/build/components/Header/Header.js.map +1 -1
  183. package/build/components/Header/components/BookingProcess/BookingProcess.js +21 -16
  184. package/build/components/Header/components/BookingProcess/BookingProcess.js.map +1 -1
  185. package/build/components/Header/components/BookingProcess/BookingProcess.skeleton.js +3 -4
  186. package/build/components/Header/components/BookingProcess/BookingProcess.skeleton.js.map +1 -1
  187. package/build/components/Profile/Profile.js +15 -7
  188. package/build/components/Profile/Profile.js.map +1 -1
  189. package/build/components/Profile/components/Bookings/Bookings.Search.js +21 -12
  190. package/build/components/Profile/components/Bookings/Bookings.Search.js.map +1 -1
  191. package/build/components/Profile/components/Bookings/Bookings.Skeleton.js +4 -5
  192. package/build/components/Profile/components/Bookings/Bookings.Skeleton.js.map +1 -1
  193. package/build/components/Profile/components/Bookings/Bookings.js +47 -34
  194. package/build/components/Profile/components/Bookings/Bookings.js.map +1 -1
  195. package/build/components/Profile/components/Bookings/helpers/groupDatasource.js +2 -3
  196. package/build/components/Profile/components/Bookings/helpers/groupDatasource.js.map +1 -1
  197. package/build/components/Profile/components/Settings/Settings.Account.js +43 -20
  198. package/build/components/Profile/components/Settings/Settings.Account.js.map +1 -1
  199. package/build/components/Profile/components/Settings/Settings.Password.js +34 -20
  200. package/build/components/Profile/components/Settings/Settings.Password.js.map +1 -1
  201. package/build/components/Profile/components/Settings/Settings.Signout.js +31 -15
  202. package/build/components/Profile/components/Settings/Settings.Signout.js.map +1 -1
  203. package/build/components/Profile/components/Settings/Settings.Skeleton.js +2 -3
  204. package/build/components/Profile/components/Settings/Settings.Skeleton.js.map +1 -1
  205. package/build/components/Profile/components/Settings/Settings.js +27 -23
  206. package/build/components/Profile/components/Settings/Settings.js.map +1 -1
  207. package/build/components/Rates/Rates.Content.js +27 -20
  208. package/build/components/Rates/Rates.Content.js.map +1 -1
  209. package/build/components/Rates/Rates.Footer.js +46 -40
  210. package/build/components/Rates/Rates.Footer.js.map +1 -1
  211. package/build/components/Rates/Rates.Header.js +22 -24
  212. package/build/components/Rates/Rates.Header.js.map +1 -1
  213. package/build/components/Rates/Rates.RoomSelector.js +46 -37
  214. package/build/components/Rates/Rates.RoomSelector.js.map +1 -1
  215. package/build/components/Rates/Rates.Skeleton.js +18 -22
  216. package/build/components/Rates/Rates.Skeleton.js.map +1 -1
  217. package/build/components/Rates/Rates.Unavailability.js +69 -67
  218. package/build/components/Rates/Rates.Unavailability.js.map +1 -1
  219. package/build/components/Rates/Rates.js +147 -126
  220. package/build/components/Rates/Rates.js.map +1 -1
  221. package/build/components/Rates/components/CardHotel/CardHotel.js +108 -98
  222. package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
  223. package/build/components/Rates/components/Filters/Filters.Amenity.js +5 -6
  224. package/build/components/Rates/components/Filters/Filters.Amenity.js.map +1 -1
  225. package/build/components/Rates/components/Filters/Filters.BookingOption.js +8 -10
  226. package/build/components/Rates/components/Filters/Filters.BookingOption.js.map +1 -1
  227. package/build/components/Rates/components/Filters/Filters.Button.js +10 -14
  228. package/build/components/Rates/components/Filters/Filters.Button.js.map +1 -1
  229. package/build/components/Rates/components/Filters/Filters.js +123 -116
  230. package/build/components/Rates/components/Filters/Filters.js.map +1 -1
  231. package/build/components/Rates/components/Filters/components/InputRange/InputRange.js +36 -23
  232. package/build/components/Rates/components/Filters/components/InputRange/InputRange.js.map +1 -1
  233. package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js +6 -8
  234. package/build/components/Rates/components/Filters/components/InputRange/helpers/getHistogram.js.map +1 -1
  235. package/build/components/Rates/components/Filters/helpers/countFilters.js +6 -5
  236. package/build/components/Rates/components/Filters/helpers/countFilters.js.map +1 -1
  237. package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js +47 -40
  238. package/build/components/Rates/components/Filters/helpers/getAvailableFilters.js.map +1 -1
  239. package/build/components/Rates/components/Filters/helpers/getBookingOptions.js +2 -4
  240. package/build/components/Rates/components/Filters/helpers/getBookingOptions.js.map +1 -1
  241. package/build/components/Rates/components/Filters/helpers/getStrictSearch.js +4 -5
  242. package/build/components/Rates/components/Filters/helpers/getStrictSearch.js.map +1 -1
  243. package/build/components/Rates/components/Hotelverse/Hotelverse.js +76 -64
  244. package/build/components/Rates/components/Hotelverse/Hotelverse.js.map +1 -1
  245. package/build/components/Rates/components/Item/Item.Preview.js +67 -56
  246. package/build/components/Rates/components/Item/Item.Preview.js.map +1 -1
  247. package/build/components/Rates/components/Item/Item.Rates.js +119 -122
  248. package/build/components/Rates/components/Item/Item.Rates.js.map +1 -1
  249. package/build/components/Rates/components/Item/Item.Summary.js +86 -79
  250. package/build/components/Rates/components/Item/Item.Summary.js.map +1 -1
  251. package/build/components/Rates/components/Item/Item.js +76 -77
  252. package/build/components/Rates/components/Item/Item.js.map +1 -1
  253. package/build/components/Rates/components/Item/components/Amenities/Amenities.js +14 -16
  254. package/build/components/Rates/components/Item/components/Amenities/Amenities.js.map +1 -1
  255. package/build/components/Rates/components/Item/components/Countdown/Countdown.js +4 -7
  256. package/build/components/Rates/components/Item/components/Countdown/Countdown.js.map +1 -1
  257. package/build/components/Rates/components/Item/components/Features/Features.js +26 -28
  258. package/build/components/Rates/components/Item/components/Features/Features.js.map +1 -1
  259. package/build/components/Rates/components/Item/components/ModalCancellationInfo/ModalCancellationInfo.js +10 -13
  260. package/build/components/Rates/components/Item/components/ModalCancellationInfo/ModalCancellationInfo.js.map +1 -1
  261. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js +46 -45
  262. package/build/components/Rates/components/Item/components/ModalInfo/ModalInfo.js.map +1 -1
  263. package/build/components/Rates/components/Item/components/ModalOfferInfo/ModalOfferInfo.js +19 -12
  264. package/build/components/Rates/components/Item/components/ModalOfferInfo/ModalOfferInfo.js.map +1 -1
  265. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js +5 -6
  266. package/build/components/Rates/components/Item/components/ModalUrl/ModalUrl.js.map +1 -1
  267. package/build/components/Rates/components/Item/components/Option/Option.js +40 -31
  268. package/build/components/Rates/components/Item/components/Option/Option.js.map +1 -1
  269. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js +60 -55
  270. package/build/components/Rates/components/Item/components/PriceDetails/PriceDetails.js.map +1 -1
  271. package/build/components/Rates/components/Item/components/PriceDetails/helpers/getPrices.js +20 -21
  272. package/build/components/Rates/components/Item/components/PriceDetails/helpers/getPrices.js.map +1 -1
  273. package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js +19 -20
  274. package/build/components/Rates/components/Item/components/RateDetails/RateDetails.js.map +1 -1
  275. package/build/components/Rates/components/Item/components/Slider/Slider.js +30 -21
  276. package/build/components/Rates/components/Item/components/Slider/Slider.js.map +1 -1
  277. package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js +16 -8
  278. package/build/components/Rates/components/Item/components/TooltipDates/TooltipDates.js.map +1 -1
  279. package/build/components/Rates/components/ModalExtras/Extras.js +85 -71
  280. package/build/components/Rates/components/ModalExtras/Extras.js.map +1 -1
  281. package/build/components/Rates/components/ModalExtras/ModalExtras.js +122 -112
  282. package/build/components/Rates/components/ModalExtras/ModalExtras.js.map +1 -1
  283. package/build/components/Rates/components/ModalExtras/helpers/getCaption.js +18 -20
  284. package/build/components/Rates/components/ModalExtras/helpers/getCaption.js.map +1 -1
  285. package/build/components/Rates/components/ModalMapView/ModalMapView.js +70 -65
  286. package/build/components/Rates/components/ModalMapView/ModalMapView.js.map +1 -1
  287. package/build/components/Rates/components/ModalMapView/helpers/customMarker.js +7 -8
  288. package/build/components/Rates/components/ModalMapView/helpers/customMarker.js.map +1 -1
  289. package/build/components/Rates/components/ModalTwin/ModalTwin.js +83 -75
  290. package/build/components/Rates/components/ModalTwin/ModalTwin.js.map +1 -1
  291. package/build/components/Rates/components/ModalTwin/components/CardExpanded.js +16 -17
  292. package/build/components/Rates/components/ModalTwin/components/CardExpanded.js.map +1 -1
  293. package/build/components/Rates/components/ModalTwin/components/CardReduced.js +24 -16
  294. package/build/components/Rates/components/ModalTwin/components/CardReduced.js.map +1 -1
  295. package/build/components/Rates/components/ModalTwin/components/Prices.js +23 -16
  296. package/build/components/Rates/components/ModalTwin/components/Prices.js.map +1 -1
  297. package/build/components/Rates/components/ModalTwin/components/Slider.js +4 -5
  298. package/build/components/Rates/components/ModalTwin/components/Slider.js.map +1 -1
  299. package/build/components/Rates/components/ModalTwin/helpers/getUrl.js +14 -20
  300. package/build/components/Rates/components/ModalTwin/helpers/getUrl.js.map +1 -1
  301. package/build/components/Rates/components/OTAPrices/OTAPrices.js +55 -47
  302. package/build/components/Rates/components/OTAPrices/OTAPrices.js.map +1 -1
  303. package/build/components/Rates/components/OTAPrices/OTAPrices.skeleton.js +2 -3
  304. package/build/components/Rates/components/OTAPrices/OTAPrices.skeleton.js.map +1 -1
  305. package/build/components/Rates/helpers/fetchRates.js +19 -20
  306. package/build/components/Rates/helpers/fetchRates.js.map +1 -1
  307. package/build/components/Rates/helpers/filterItem.js +31 -38
  308. package/build/components/Rates/helpers/filterItem.js.map +1 -1
  309. package/build/components/Rates/helpers/getBoard.js +12 -13
  310. package/build/components/Rates/helpers/getBoard.js.map +1 -1
  311. package/build/components/Rates/helpers/getCardImageHeight.js +3 -3
  312. package/build/components/Rates/helpers/getCardImageHeight.js.map +1 -1
  313. package/build/components/Rates/helpers/getCheckoutParams.js +69 -70
  314. package/build/components/Rates/helpers/getCheckoutParams.js.map +1 -1
  315. package/build/components/Rates/helpers/getClubInclude.js +3 -4
  316. package/build/components/Rates/helpers/getClubInclude.js.map +1 -1
  317. package/build/components/Rates/helpers/getClubRate.js +22 -25
  318. package/build/components/Rates/helpers/getClubRate.js.map +1 -1
  319. package/build/components/Rates/helpers/getFeatures.js +2 -3
  320. package/build/components/Rates/helpers/getFeatures.js.map +1 -1
  321. package/build/components/Rates/helpers/getFinderParams.js +24 -13
  322. package/build/components/Rates/helpers/getFinderParams.js.map +1 -1
  323. package/build/components/Rates/helpers/getForwarderUrl.js +12 -11
  324. package/build/components/Rates/helpers/getForwarderUrl.js.map +1 -1
  325. package/build/components/Rates/helpers/select.js +51 -41
  326. package/build/components/Rates/helpers/select.js.map +1 -1
  327. package/build/components/Rates/helpers/signout.js +5 -6
  328. package/build/components/Rates/helpers/signout.js.map +1 -1
  329. package/build/components/Rates/hooks/useRates.js +112 -77
  330. package/build/components/Rates/hooks/useRates.js.map +1 -1
  331. package/build/components/Rooms/Rooms.js +1 -3
  332. package/build/components/Rooms/Rooms.js.map +1 -1
  333. package/build/components/Session/Session.Account.Info.js +3 -5
  334. package/build/components/Session/Session.Account.Info.js.map +1 -1
  335. package/build/components/Session/Session.Account.js +41 -39
  336. package/build/components/Session/Session.Account.js.map +1 -1
  337. package/build/components/Session/Session.Login.Modal.js +64 -41
  338. package/build/components/Session/Session.Login.Modal.js.map +1 -1
  339. package/build/components/Session/Session.Login.js +30 -24
  340. package/build/components/Session/Session.Login.js.map +1 -1
  341. package/build/components/Session/Session.js +17 -11
  342. package/build/components/Session/Session.js.map +1 -1
  343. package/build/components/Session/helpers/getDomain.js +2 -3
  344. package/build/components/Session/helpers/getDomain.js.map +1 -1
  345. package/build/components/Session/helpers/getProfileUrl.js +12 -13
  346. package/build/components/Session/helpers/getProfileUrl.js.map +1 -1
  347. package/build/components/Session/helpers/getSignupUrl.js +10 -11
  348. package/build/components/Session/helpers/getSignupUrl.js.map +1 -1
  349. package/build/components/Signup/Signup.js +55 -26
  350. package/build/components/Signup/Signup.js.map +1 -1
  351. package/build/components/__shared__/BookingDates/BookingDates.js +11 -16
  352. package/build/components/__shared__/BookingDates/BookingDates.js.map +1 -1
  353. package/build/components/__shared__/BookingDetails/BookingDetails.js +66 -56
  354. package/build/components/__shared__/BookingDetails/BookingDetails.js.map +1 -1
  355. package/build/components/__shared__/BookingSummary/BookingSummary.js +124 -124
  356. package/build/components/__shared__/BookingSummary/BookingSummary.js.map +1 -1
  357. package/build/components/__shared__/BookingSummary/_tests__/BookingSummary.test.js +62 -72
  358. package/build/components/__shared__/BookingSummary/_tests__/BookingSummary.test.js.map +1 -1
  359. package/build/components/__shared__/BookingSummary/_tests__/__snapshots__/BookingSummary.test.js.snap +1 -1
  360. package/build/components/__shared__/BookingTable/BookingTable.Row.js +13 -17
  361. package/build/components/__shared__/BookingTable/BookingTable.Row.js.map +1 -1
  362. package/build/components/__shared__/BookingTable/BookingTable.js +28 -22
  363. package/build/components/__shared__/BookingTable/BookingTable.js.map +1 -1
  364. package/build/components/__shared__/BookingTerms/BookingTerms.js +25 -18
  365. package/build/components/__shared__/BookingTerms/BookingTerms.js.map +1 -1
  366. package/build/components/__shared__/ButtonMore/ButtonMore.js +6 -10
  367. package/build/components/__shared__/ButtonMore/ButtonMore.js.map +1 -1
  368. package/build/components/__shared__/ButtonPayment/ButtonPayment.js +80 -72
  369. package/build/components/__shared__/ButtonPayment/ButtonPayment.js.map +1 -1
  370. package/build/components/__shared__/ButtonPayment/components/Form/Form.js +8 -10
  371. package/build/components/__shared__/ButtonPayment/components/Form/Form.js.map +1 -1
  372. package/build/components/__shared__/ButtonPayment/components/FormAddon/FormAddon.js +31 -24
  373. package/build/components/__shared__/ButtonPayment/components/FormAddon/FormAddon.js.map +1 -1
  374. package/build/components/__shared__/ButtonPayment/components/FormAddon/components/GooglePay/GooglePay.js +40 -35
  375. package/build/components/__shared__/ButtonPayment/components/FormAddon/components/GooglePay/GooglePay.js.map +1 -1
  376. package/build/components/__shared__/ButtonPayment/components/FormAddon/components/GooglePay/helpers/getPaymentData.js +6 -5
  377. package/build/components/__shared__/ButtonPayment/components/FormAddon/components/GooglePay/helpers/getPaymentData.js.map +1 -1
  378. package/build/components/__shared__/ButtonPayment/components/FormAddon/helpers/getCtaKey.js +3 -7
  379. package/build/components/__shared__/ButtonPayment/components/FormAddon/helpers/getCtaKey.js.map +1 -1
  380. package/build/components/__shared__/ButtonPayment/components/FormAdyen/FormAdyen.js +37 -30
  381. package/build/components/__shared__/ButtonPayment/components/FormAdyen/FormAdyen.js.map +1 -1
  382. package/build/components/__shared__/ButtonPayment/components/FormGetnet/FormGetnet.js +25 -14
  383. package/build/components/__shared__/ButtonPayment/components/FormGetnet/FormGetnet.js.map +1 -1
  384. package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.js +67 -50
  385. package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.js.map +1 -1
  386. package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/getStyle.js +4 -5
  387. package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/getStyle.js.map +1 -1
  388. package/build/components/__shared__/ButtonPayment/components/FormMews/FormMews.js +34 -24
  389. package/build/components/__shared__/ButtonPayment/components/FormMews/FormMews.js.map +1 -1
  390. package/build/components/__shared__/ButtonPayment/components/FormMews/helpers/getStyle.js +14 -15
  391. package/build/components/__shared__/ButtonPayment/components/FormMews/helpers/getStyle.js.map +1 -1
  392. package/build/components/__shared__/ButtonPayment/components/FormNuvei/FormNuvei.js +34 -26
  393. package/build/components/__shared__/ButtonPayment/components/FormNuvei/FormNuvei.js.map +1 -1
  394. package/build/components/__shared__/ButtonPayment/components/FormPaybyrd/FormPaybyrd.js +13 -18
  395. package/build/components/__shared__/ButtonPayment/components/FormPaybyrd/FormPaybyrd.js.map +1 -1
  396. package/build/components/__shared__/ButtonPayment/components/FormPaycomet/FormPaycomet.js +13 -7
  397. package/build/components/__shared__/ButtonPayment/components/FormPaycomet/FormPaycomet.js.map +1 -1
  398. package/build/components/__shared__/ButtonPayment/components/FormShift4/FormShift4.js +26 -24
  399. package/build/components/__shared__/ButtonPayment/components/FormShift4/FormShift4.js.map +1 -1
  400. package/build/components/__shared__/ButtonPayment/components/FormStripe/FormStripe.js +55 -35
  401. package/build/components/__shared__/ButtonPayment/components/FormStripe/FormStripe.js.map +1 -1
  402. package/build/components/__shared__/ButtonPayment/components/FormStripe/herlpes/getStyle.js +12 -14
  403. package/build/components/__shared__/ButtonPayment/components/FormStripe/herlpes/getStyle.js.map +1 -1
  404. package/build/components/__shared__/ButtonPayment/components/InputField/InputField.js +10 -11
  405. package/build/components/__shared__/ButtonPayment/components/InputField/InputField.js.map +1 -1
  406. package/build/components/__shared__/ButtonPayment/helpers/getComponent.js +12 -16
  407. package/build/components/__shared__/ButtonPayment/helpers/getComponent.js.map +1 -1
  408. package/build/components/__shared__/ButtonPayment/helpers/getUrl.js +17 -11
  409. package/build/components/__shared__/ButtonPayment/helpers/getUrl.js.map +1 -1
  410. package/build/components/__shared__/ButtonPayment/helpers/getUrlBooking.js +21 -21
  411. package/build/components/__shared__/ButtonPayment/helpers/getUrlBooking.js.map +1 -1
  412. package/build/components/__shared__/ButtonPayment/helpers/getUrlCriptan.js +11 -12
  413. package/build/components/__shared__/ButtonPayment/helpers/getUrlCriptan.js.map +1 -1
  414. package/build/components/__shared__/ButtonPayment/helpers/getUrlTpv.js +16 -19
  415. package/build/components/__shared__/ButtonPayment/helpers/getUrlTpv.js.map +1 -1
  416. package/build/components/__shared__/ButtonPayment/helpers/loadScript.js +4 -5
  417. package/build/components/__shared__/ButtonPayment/helpers/loadScript.js.map +1 -1
  418. package/build/components/__shared__/Card/Card.js +3 -5
  419. package/build/components/__shared__/Card/Card.js.map +1 -1
  420. package/build/components/__shared__/Countdown/Countdown.js +20 -14
  421. package/build/components/__shared__/Countdown/Countdown.js.map +1 -1
  422. package/build/components/__shared__/Field/Field.js +48 -34
  423. package/build/components/__shared__/Field/Field.js.map +1 -1
  424. package/build/components/__shared__/FieldOccupation/FieldOccupation.js +23 -29
  425. package/build/components/__shared__/FieldOccupation/FieldOccupation.js.map +1 -1
  426. package/build/components/__shared__/FieldPromocode/FieldPromocode.js +14 -19
  427. package/build/components/__shared__/FieldPromocode/FieldPromocode.js.map +1 -1
  428. package/build/components/__shared__/Footer/Footer.js +52 -43
  429. package/build/components/__shared__/Footer/Footer.js.map +1 -1
  430. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js +15 -8
  431. package/build/components/__shared__/NotificationRequiredFields/NotificationRequiredFields.js.map +1 -1
  432. package/build/components/__shared__/Occupation/Occupation.Group.js +18 -16
  433. package/build/components/__shared__/Occupation/Occupation.Group.js.map +1 -1
  434. package/build/components/__shared__/Occupation/Occupation.constants.js +5 -7
  435. package/build/components/__shared__/Occupation/Occupation.constants.js.map +1 -1
  436. package/build/components/__shared__/Occupation/Occupation.js +57 -36
  437. package/build/components/__shared__/Occupation/Occupation.js.map +1 -1
  438. package/build/components/__shared__/Occupation/Occupation.l10n.js +3 -5
  439. package/build/components/__shared__/Occupation/Occupation.l10n.js.map +1 -1
  440. package/build/components/__shared__/Occupation/helpers/checkRoom.js +8 -11
  441. package/build/components/__shared__/Occupation/helpers/checkRoom.js.map +1 -1
  442. package/build/components/__shared__/Occupation/helpers/consolidateValue.js +39 -34
  443. package/build/components/__shared__/Occupation/helpers/consolidateValue.js.map +1 -1
  444. package/build/components/__shared__/Occupation/helpers/getAgeOptions.js +11 -1
  445. package/build/components/__shared__/Occupation/helpers/getAgeOptions.js.map +1 -1
  446. package/build/components/__shared__/Occupation/helpers/getScrollHeight.js +5 -5
  447. package/build/components/__shared__/Occupation/helpers/getScrollHeight.js.map +1 -1
  448. package/build/components/__shared__/Occupation/helpers/toParties.js +6 -10
  449. package/build/components/__shared__/Occupation/helpers/toParties.js.map +1 -1
  450. package/build/components/__shared__/Payment/Payment.js +46 -34
  451. package/build/components/__shared__/Payment/Payment.js.map +1 -1
  452. package/build/components/__shared__/Payment/components/Aplazame/Aplazame.js +26 -20
  453. package/build/components/__shared__/Payment/components/Aplazame/Aplazame.js.map +1 -1
  454. package/build/components/__shared__/Payment/components/Card/Card.js +33 -23
  455. package/build/components/__shared__/Payment/components/Card/Card.js.map +1 -1
  456. package/build/components/__shared__/Payment/components/Card/helpers/formatValues.js +12 -10
  457. package/build/components/__shared__/Payment/components/Card/helpers/formatValues.js.map +1 -1
  458. package/build/components/__shared__/Payment/components/Card/helpers/getCardType.js +4 -4
  459. package/build/components/__shared__/Payment/components/Card/helpers/getCardType.js.map +1 -1
  460. package/build/components/__shared__/Payment/components/LinkagePay/LinkagePay.js +68 -48
  461. package/build/components/__shared__/Payment/components/LinkagePay/LinkagePay.js.map +1 -1
  462. package/build/components/__shared__/Payment/components/LinkagePay/services/VomsisService.js +31 -35
  463. package/build/components/__shared__/Payment/components/LinkagePay/services/VomsisService.js.map +1 -1
  464. package/build/components/__shared__/Payment/components/Openpay/Openpay.js +59 -38
  465. package/build/components/__shared__/Payment/components/Openpay/Openpay.js.map +1 -1
  466. package/build/components/__shared__/Payment/components/PCI/PCI.js +101 -76
  467. package/build/components/__shared__/Payment/components/PCI/PCI.js.map +1 -1
  468. package/build/components/__shared__/Payment/components/PCI/helpers/formatValues.js +7 -7
  469. package/build/components/__shared__/Payment/components/PCI/helpers/formatValues.js.map +1 -1
  470. package/build/components/__shared__/Payment/components/PCI/helpers/getStyle.js +5 -6
  471. package/build/components/__shared__/Payment/components/PCI/helpers/getStyle.js.map +1 -1
  472. package/build/components/__shared__/Payment/components/Tpv/Tpv.js +23 -11
  473. package/build/components/__shared__/Payment/components/Tpv/Tpv.js.map +1 -1
  474. package/build/components/__shared__/Payment/helpers/getCaption.js +22 -27
  475. package/build/components/__shared__/Payment/helpers/getCaption.js.map +1 -1
  476. package/build/components/__shared__/Payment/helpers/getComponent.js +16 -21
  477. package/build/components/__shared__/Payment/helpers/getComponent.js.map +1 -1
  478. package/build/components/__shared__/Payment/helpers/getImage.js +3 -4
  479. package/build/components/__shared__/Payment/helpers/getImage.js.map +1 -1
  480. package/build/components/__shared__/PriceBreakdown/PriceBreakdown.Line.js +6 -9
  481. package/build/components/__shared__/PriceBreakdown/PriceBreakdown.Line.js.map +1 -1
  482. package/build/components/__shared__/PriceBreakdown/PriceBreakdown.js +53 -58
  483. package/build/components/__shared__/PriceBreakdown/PriceBreakdown.js.map +1 -1
  484. package/build/components/__shared__/RatesExplorer/RatesExplorer.Calendar.js +65 -55
  485. package/build/components/__shared__/RatesExplorer/RatesExplorer.Calendar.js.map +1 -1
  486. package/build/components/__shared__/RatesExplorer/RatesExplorer.js +76 -59
  487. package/build/components/__shared__/RatesExplorer/RatesExplorer.js.map +1 -1
  488. package/build/components/__shared__/RatesExplorer/RatesExplorer.l10n.js +4 -6
  489. package/build/components/__shared__/RatesExplorer/RatesExplorer.l10n.js.map +1 -1
  490. package/build/components/__shared__/RatesExplorer/RatesExplorer.skeleton.js +2 -3
  491. package/build/components/__shared__/RatesExplorer/RatesExplorer.skeleton.js.map +1 -1
  492. package/build/components/__shared__/RatesExplorer/helpers/calcTooltips.js +12 -12
  493. package/build/components/__shared__/RatesExplorer/helpers/calcTooltips.js.map +1 -1
  494. package/build/components/__shared__/RatesExplorer/helpers/getCurrency.js +8 -9
  495. package/build/components/__shared__/RatesExplorer/helpers/getCurrency.js.map +1 -1
  496. package/build/components/__shared__/RatesExplorer/helpers/getOccupation.js +34 -34
  497. package/build/components/__shared__/RatesExplorer/helpers/getOccupation.js.map +1 -1
  498. package/build/components/__shared__/RatesExplorer/helpers/validate.js +20 -11
  499. package/build/components/__shared__/RatesExplorer/helpers/validate.js.map +1 -1
  500. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +33 -30
  501. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
  502. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.skeleton.js +2 -3
  503. package/build/components/__shared__/SelectEnvironment/SelectEnvironment.skeleton.js.map +1 -1
  504. package/build/components/__shared__/Skeleton/Skeleton.js +9 -7
  505. package/build/components/__shared__/Skeleton/Skeleton.js.map +1 -1
  506. package/build/components/__shared__/TextRequiredFields/TextRequiredFields.js +2 -3
  507. package/build/components/__shared__/TextRequiredFields/TextRequiredFields.js.map +1 -1
  508. package/build/components/helpers/getAccommodationLabel.js +6 -5
  509. package/build/components/helpers/getAccommodationLabel.js.map +1 -1
  510. package/build/components/helpers/getAccommodationType.js +23 -18
  511. package/build/components/helpers/getAccommodationType.js.map +1 -1
  512. package/build/components/helpers/getAgeRange.js +10 -1
  513. package/build/components/helpers/getAgeRange.js.map +1 -1
  514. package/build/components/helpers/getCalendarCaption.js +10 -1
  515. package/build/components/helpers/getCalendarCaption.js.map +1 -1
  516. package/build/components/helpers/getGuestLabel.js +6 -5
  517. package/build/components/helpers/getGuestLabel.js.map +1 -1
  518. package/build/components/helpers/getNormalizedLocale.js +9 -1
  519. package/build/components/helpers/getNormalizedLocale.js.map +1 -1
  520. package/build/components/helpers/getOccupationLabel.js +18 -9
  521. package/build/components/helpers/getOccupationLabel.js.map +1 -1
  522. package/build/components/helpers/getOccupationSummary.js +8 -11
  523. package/build/components/helpers/getOccupationSummary.js.map +1 -1
  524. package/build/components/helpers/getOccupationTotals.js +14 -17
  525. package/build/components/helpers/getOccupationTotals.js.map +1 -1
  526. package/build/components/helpers/getRatesUrl.js +23 -25
  527. package/build/components/helpers/getRatesUrl.js.map +1 -1
  528. package/build/components/helpers/getRoomNumber.js +14 -3
  529. package/build/components/helpers/getRoomNumber.js.map +1 -1
  530. package/build/components/helpers/getRoomOccupationLabel.js +40 -33
  531. package/build/components/helpers/getRoomOccupationLabel.js.map +1 -1
  532. package/build/components/helpers/parseHtml.js +6 -9
  533. package/build/components/helpers/parseHtml.js.map +1 -1
  534. package/build/components/helpers/parseValue.js +10 -1
  535. package/build/components/helpers/parseValue.js.map +1 -1
  536. package/build/components/helpers/trace.js +4 -5
  537. package/build/components/helpers/trace.js.map +1 -1
  538. package/build/components/helpers/valueFormat.js +10 -1
  539. package/build/components/helpers/valueFormat.js.map +1 -1
  540. package/build/contexts/EventManager/EventManager.js +31 -24
  541. package/build/contexts/EventManager/EventManager.js.map +1 -1
  542. package/build/contexts/PerformanceManager/PerformanceManager.js +85 -86
  543. package/build/contexts/PerformanceManager/PerformanceManager.js.map +1 -1
  544. package/build/contexts/PerformanceManager/PerformanceManager.scripts.js +39 -36
  545. package/build/contexts/PerformanceManager/PerformanceManager.scripts.js.map +1 -1
  546. package/build/contexts/PerformanceManager/helpers/dataLayerPush.js +1 -3
  547. package/build/contexts/PerformanceManager/helpers/dataLayerPush.js.map +1 -1
  548. package/build/contexts/PerformanceManager/helpers/getConsentMode.js +13 -10
  549. package/build/contexts/PerformanceManager/helpers/getConsentMode.js.map +1 -1
  550. package/build/contexts/PerformanceManager/helpers/getPerformanceLabel.js +8 -1
  551. package/build/contexts/PerformanceManager/helpers/getPerformanceLabel.js.map +1 -1
  552. package/build/contexts/PerformanceManager/providers/affilired/bookingResponse.js +32 -24
  553. package/build/contexts/PerformanceManager/providers/affilired/bookingResponse.js.map +1 -1
  554. package/build/contexts/PerformanceManager/providers/analytics/bookingCancel.js +25 -24
  555. package/build/contexts/PerformanceManager/providers/analytics/bookingCancel.js.map +1 -1
  556. package/build/contexts/PerformanceManager/providers/analytics/bookingResponse.js +52 -57
  557. package/build/contexts/PerformanceManager/providers/analytics/bookingResponse.js.map +1 -1
  558. package/build/contexts/PerformanceManager/providers/analytics/chatOpen.js +6 -7
  559. package/build/contexts/PerformanceManager/providers/analytics/chatOpen.js.map +1 -1
  560. package/build/contexts/PerformanceManager/providers/analytics/checkoutForm.js +24 -23
  561. package/build/contexts/PerformanceManager/providers/analytics/checkoutForm.js.map +1 -1
  562. package/build/contexts/PerformanceManager/providers/analytics/checkoutResponse.js +26 -27
  563. package/build/contexts/PerformanceManager/providers/analytics/checkoutResponse.js.map +1 -1
  564. package/build/contexts/PerformanceManager/providers/analytics/coreReady.js +16 -15
  565. package/build/contexts/PerformanceManager/providers/analytics/coreReady.js.map +1 -1
  566. package/build/contexts/PerformanceManager/providers/analytics/externalTwin.js +6 -7
  567. package/build/contexts/PerformanceManager/providers/analytics/externalTwin.js.map +1 -1
  568. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseCommon.js +16 -13
  569. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseCommon.js.map +1 -1
  570. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseItems.js +51 -44
  571. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseItems.js.map +1 -1
  572. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseRate.js +15 -16
  573. package/build/contexts/PerformanceManager/providers/analytics/helpers/parseRate.js.map +1 -1
  574. package/build/contexts/PerformanceManager/providers/analytics/logged.js +12 -13
  575. package/build/contexts/PerformanceManager/providers/analytics/logged.js.map +1 -1
  576. package/build/contexts/PerformanceManager/providers/analytics/ratesAddToCart.js +65 -58
  577. package/build/contexts/PerformanceManager/providers/analytics/ratesAddToCart.js.map +1 -1
  578. package/build/contexts/PerformanceManager/providers/analytics/ratesResponse.js +66 -59
  579. package/build/contexts/PerformanceManager/providers/analytics/ratesResponse.js.map +1 -1
  580. package/build/contexts/PerformanceManager/providers/analytics/synapse.js +11 -13
  581. package/build/contexts/PerformanceManager/providers/analytics/synapse.js.map +1 -1
  582. package/build/contexts/PerformanceManager/providers/bing/bookingResponse.js +18 -18
  583. package/build/contexts/PerformanceManager/providers/bing/bookingResponse.js.map +1 -1
  584. package/build/contexts/PerformanceManager/providers/facebook/bookingResponse.js +38 -36
  585. package/build/contexts/PerformanceManager/providers/facebook/bookingResponse.js.map +1 -1
  586. package/build/contexts/PerformanceManager/providers/facebook/checkoutResponse.js +33 -33
  587. package/build/contexts/PerformanceManager/providers/facebook/checkoutResponse.js.map +1 -1
  588. package/build/contexts/PerformanceManager/providers/facebook/helpers/parseCustomData.js +6 -8
  589. package/build/contexts/PerformanceManager/providers/facebook/helpers/parseCustomData.js.map +1 -1
  590. package/build/contexts/PerformanceManager/providers/facebook/helpers/parseUserData.js +5 -7
  591. package/build/contexts/PerformanceManager/providers/facebook/helpers/parseUserData.js.map +1 -1
  592. package/build/contexts/PerformanceManager/providers/facebook/ratesAddToCart.js +29 -31
  593. package/build/contexts/PerformanceManager/providers/facebook/ratesAddToCart.js.map +1 -1
  594. package/build/contexts/PerformanceManager/providers/facebook/ratesResponse.js +36 -28
  595. package/build/contexts/PerformanceManager/providers/facebook/ratesResponse.js.map +1 -1
  596. package/build/contexts/PerformanceManager/providers/googleAds/bookingResponse.js +30 -32
  597. package/build/contexts/PerformanceManager/providers/googleAds/bookingResponse.js.map +1 -1
  598. package/build/contexts/PerformanceManager/providers/gtm/bookingCancel.js +37 -38
  599. package/build/contexts/PerformanceManager/providers/gtm/bookingCancel.js.map +1 -1
  600. package/build/contexts/PerformanceManager/providers/gtm/bookingResponse.js +85 -84
  601. package/build/contexts/PerformanceManager/providers/gtm/bookingResponse.js.map +1 -1
  602. package/build/contexts/PerformanceManager/providers/gtm/checkoutResponse.js +87 -84
  603. package/build/contexts/PerformanceManager/providers/gtm/checkoutResponse.js.map +1 -1
  604. package/build/contexts/PerformanceManager/providers/gtm/coreReady.js +6 -7
  605. package/build/contexts/PerformanceManager/providers/gtm/coreReady.js.map +1 -1
  606. package/build/contexts/PerformanceManager/providers/gtm/duetto/bookingResponse.js +11 -13
  607. package/build/contexts/PerformanceManager/providers/gtm/duetto/bookingResponse.js.map +1 -1
  608. package/build/contexts/PerformanceManager/providers/gtm/duetto/ratesResponse.js +16 -22
  609. package/build/contexts/PerformanceManager/providers/gtm/duetto/ratesResponse.js.map +1 -1
  610. package/build/contexts/PerformanceManager/providers/gtm/helpers/getInitEvent.js +10 -11
  611. package/build/contexts/PerformanceManager/providers/gtm/helpers/getInitEvent.js.map +1 -1
  612. package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js +107 -103
  613. package/build/contexts/PerformanceManager/providers/gtm/ratesResponse.js.map +1 -1
  614. package/build/contexts/PerformanceManager/providers/helpers/getFirstOccupationOption.js +19 -11
  615. package/build/contexts/PerformanceManager/providers/helpers/getFirstOccupationOption.js.map +1 -1
  616. package/build/contexts/PerformanceManager/providers/helpers/getRatesPriceRange.js +4 -5
  617. package/build/contexts/PerformanceManager/providers/helpers/getRatesPriceRange.js.map +1 -1
  618. package/build/contexts/PerformanceManager/providers/helpers/getRoomsPriceRange.js +9 -1
  619. package/build/contexts/PerformanceManager/providers/helpers/getRoomsPriceRange.js.map +1 -1
  620. package/build/contexts/PerformanceManager/providers/helpers/legacy.js +3 -3
  621. package/build/contexts/PerformanceManager/providers/helpers/legacy.js.map +1 -1
  622. package/build/contexts/PerformanceManager/providers/mirai/bookingResponse.js +30 -30
  623. package/build/contexts/PerformanceManager/providers/mirai/bookingResponse.js.map +1 -1
  624. package/build/helpers/checkSession.js +9 -10
  625. package/build/helpers/checkSession.js.map +1 -1
  626. package/build/helpers/consolidateStore.js +108 -112
  627. package/build/helpers/consolidateStore.js.map +1 -1
  628. package/build/helpers/fetchConfig.js +4 -4
  629. package/build/helpers/fetchConfig.js.map +1 -1
  630. package/build/helpers/fetchCurrency.js +19 -11
  631. package/build/helpers/fetchCurrency.js.map +1 -1
  632. package/build/helpers/fetchExternalSession.js +12 -14
  633. package/build/helpers/fetchExternalSession.js.map +1 -1
  634. package/build/helpers/fetchSession.js +9 -10
  635. package/build/helpers/fetchSession.js.map +1 -1
  636. package/build/helpers/fetchUrlParams.js +9 -1
  637. package/build/helpers/fetchUrlParams.js.map +1 -1
  638. package/build/helpers/findComponents.js +9 -15
  639. package/build/helpers/findComponents.js.map +1 -1
  640. package/build/helpers/findDangerousCSSRules.js +2 -3
  641. package/build/helpers/findDangerousCSSRules.js.map +1 -1
  642. package/build/helpers/findInstance.js +12 -4
  643. package/build/helpers/findInstance.js.map +1 -1
  644. package/build/helpers/getClub.js +38 -42
  645. package/build/helpers/getClub.js.map +1 -1
  646. package/build/helpers/getCurrency.js +8 -7
  647. package/build/helpers/getCurrency.js.map +1 -1
  648. package/build/helpers/getGhost.js +9 -1
  649. package/build/helpers/getGhost.js.map +1 -1
  650. package/build/helpers/getLocale.js +24 -8
  651. package/build/helpers/getLocale.js.map +1 -1
  652. package/build/helpers/getPerformance.js +12 -16
  653. package/build/helpers/getPerformance.js.map +1 -1
  654. package/build/helpers/getRefundableFromItems.js +6 -6
  655. package/build/helpers/getRefundableFromItems.js.map +1 -1
  656. package/build/helpers/getSearchProps.js +44 -32
  657. package/build/helpers/getSearchProps.js.map +1 -1
  658. package/build/helpers/getSuperProps.js +47 -36
  659. package/build/helpers/getSuperProps.js.map +1 -1
  660. package/build/helpers/getTags.js +18 -11
  661. package/build/helpers/getTags.js.map +1 -1
  662. package/build/helpers/getVariant.js +7 -9
  663. package/build/helpers/getVariant.js.map +1 -1
  664. package/build/helpers/loadScript.js +9 -8
  665. package/build/helpers/loadScript.js.map +1 -1
  666. package/build/helpers/polyfills.js +9 -1
  667. package/build/helpers/polyfills.js.map +1 -1
  668. package/build/helpers/prepareRoom.js +5 -8
  669. package/build/helpers/prepareRoom.js.map +1 -1
  670. package/build/helpers/theme.js +7 -7
  671. package/build/helpers/theme.js.map +1 -1
  672. package/build/helpers/toOccupation.js +25 -20
  673. package/build/helpers/toOccupation.js.map +1 -1
  674. package/build/index.js +7 -8
  675. package/build/index.js.map +1 -1
  676. package/config/jest/fileMock.js +1 -0
  677. package/config/jest/setup.env.js +20 -0
  678. package/config/jest/setup.js +3 -0
  679. package/jest.config.js +22 -0
  680. package/package.json +14 -7
@@ -1 +1 @@
1
- {"version":3,"file":"useOpenAiRealtimeSession.js","names":["_dataSources","require","_react","_helpers","_helpers2","_lobby","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createMcpState","pending","pendingCallIds","Set","pendingCount","handledCallIds","handledApprovalIds","failedCallIds","responseIds","responsesDone","responsesWithMessage","resumeRequestedCallIds","resumeRequestedAny","retry","count","timeoutId","createResponseState","activeId","audioResponseIds","createFunctionState","pendingCalls","Map","pendingFollowup","pendingFollowupReason","pendingFollowupResponse","handledOpenUrlCalls","useOpenAiRealtimeSession","audioElementRef","useRef","audioContextRef","peerConnectionRef","dataChannelRef","localStreamRef","localAudioTrackRef","microphoneEnabledRef","pendingIntroRef","introResponseIdRef","mcpStateRef","responseStateRef","functionStateRef","pendingUserTranscriptRef","inputSourceRef","outputSourceRef","inputFrequencyDataRef","outputFrequencyDataRef","audioAnalyzersRef","inputAnalyser","outputAnalyser","getInputByteFrequencyData","getOutputByteFrequencyData","cleanupRealtimeSession","useCallback","shouldSignal","undefined","dataChannel","current","readyState","send","JSON","stringify","type","close","peerConnection","getSenders","sender","track","stop","localStream","getTracks","clearTimeout","srcObject","disconnect","audioContext","safeJsonParse","parse","_unused","isAllowedOpenUrl","url","trim","startsWith","enableMicrophone","enabled","clearPendingMcp","clearPendingFollowup","sendResponseCreate","reason","responseOverrides","size","channel","responsePayload","response","sendPendingFollowup","requestFollowupResponse","outputCallId","has","add","resumeMcpIfNeeded","delete","trackMcpStart","callId","getFunctionCallKey","responseId","name","concat","upsertFunctionCall","_ref","key","args","existing","get","set","handleMcpCompletion","requestFollowup","scheduleResumeRetry","attempt","delay","setTimeout","sendFunctionCallOutput","output","item","call_id","sendItemRetrieve","itemId","item_id","sendMcpApproval","approvalRequestId","approve","previous_item_id","approval_request_id","buildMcpFailureInstructions","localeHint","normalizedLocale","handleMcpFailure","failureKey","instructions","handleOpenUrlCalls","_ref2","outputItems","responseOpenUrlItems","Array","isArray","id","values","callKey","error","allowed_prefix","window","location","assign","startSession","_ref3","assistant_name","chainId","currency","hotelId","isChain","locale","setIsConnecting","setReady","fingerprint","getClientFingerprint","finalizeSession","errorMessage","message","Event","publish","EVENT","METRICS","METRICS_EVENTS","AURA_ERROR","sessionResponse","request","endpoint","hostname","process","env","SERVICE_SYNAPSE","method","ephemeralKey","RTCPeerConnection","addEventListener","connectionState","document","createElement","autoplay","ontrack","_ref4","streams","remoteStream","createMediaStreamSource","connect","mediaStream","navigator","mediaDevices","getUserMedia","audio","echoCancellation","noiseSuppression","autoGainControl","channelCount","sampleRate","getAudioTracks","AudioContextConstructor","globalThis","AudioContext","webkitAudioContext","Error","state","resume","createAnalyser","fftSize","Uint8Array","frequencyBinCount","getByteFrequencyData","inputSource","applyConstraints","addTrack","createDataChannel","event","AURA_START","introductionMessage","_payload$item","_payload$item2","_payload$item3","_payload$item4","_payload$item5","_payload$item6","_payload$item9","_payload$item0","payload","data","response_id","clear","_payload$item7","_payload$item8","_payload$item1","_payload$item10","status","_payload$item11","_payload$item12","_payload$item13","_payload$item14","approvalId","_payload$item15","_payload$item16","_payload$item19","_payload$item17","_payload$item18","_payload$item20","_response$status_deta","_response$status_deta2","_response$status_deta3","hasMessage","some","status_details","code","_payload$transcript","transcript","_payload$transcript2","input","activeLocale","channelId","chatId","ensureChatId","session","createChatMessage","author","body","meta","text","agent","offer","createOffer","setLocalDescription","sdpResponse","fetch","sdp","headers","Authorization","ok","answer","setRemoteDescription","endSession","audioAnalyzers","exports"],"sources":["../../../../../../src/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js"],"sourcesContent":["import { Event, request } from '@mirai/data-sources';\nimport { useCallback, useRef } from 'react';\n\nimport { EVENT, METRICS_EVENTS } from '../../../../helpers';\nimport { getClientFingerprint } from '../../../helpers';\nimport { createChatMessage, ensureChatId } from '../../../services/lobby.service';\n\nconst createMcpState = () => ({\n pending: false,\n pendingCallIds: new Set(),\n pendingCount: 0,\n handledCallIds: new Set(),\n handledApprovalIds: new Set(),\n failedCallIds: new Set(),\n responseIds: new Set(),\n responsesDone: new Set(),\n responsesWithMessage: new Set(),\n resumeRequestedCallIds: new Set(),\n resumeRequestedAny: false,\n retry: { count: 0, timeoutId: null },\n});\n\nconst createResponseState = () => ({\n activeId: null,\n audioResponseIds: new Set(),\n});\n\nconst createFunctionState = () => ({\n pendingCalls: new Map(),\n pendingFollowup: false,\n pendingFollowupReason: null,\n pendingFollowupResponse: null,\n handledOpenUrlCalls: new Set(),\n});\n\nconst useOpenAiRealtimeSession = () => {\n const audioElementRef = useRef(null);\n const audioContextRef = useRef(null);\n const peerConnectionRef = useRef(null);\n const dataChannelRef = useRef(null);\n const localStreamRef = useRef(null);\n const localAudioTrackRef = useRef(null);\n const microphoneEnabledRef = useRef(false);\n const pendingIntroRef = useRef(false);\n const introResponseIdRef = useRef(null);\n const mcpStateRef = useRef(createMcpState());\n const responseStateRef = useRef(createResponseState());\n const functionStateRef = useRef(createFunctionState());\n const pendingUserTranscriptRef = useRef('');\n const inputSourceRef = useRef(null);\n const outputSourceRef = useRef(null);\n const inputFrequencyDataRef = useRef(null);\n const outputFrequencyDataRef = useRef(null);\n const audioAnalyzersRef = useRef({\n inputAnalyser: null,\n outputAnalyser: null,\n getInputByteFrequencyData: () => null,\n getOutputByteFrequencyData: () => null,\n });\n\n const cleanupRealtimeSession = useCallback((shouldSignal = false) => {\n const dataChannel = dataChannelRef.current;\n if (dataChannel) {\n if (shouldSignal && dataChannel.readyState === 'open') {\n dataChannel.send(JSON.stringify({ type: 'session.close' }));\n }\n dataChannel.close();\n dataChannelRef.current = null;\n }\n\n const peerConnection = peerConnectionRef.current;\n if (peerConnection) {\n peerConnection.getSenders().forEach((sender) => {\n if (sender.track) sender.track.stop();\n });\n peerConnection.close();\n peerConnectionRef.current = null;\n }\n\n const localStream = localStreamRef.current;\n if (localStream) {\n localStream.getTracks().forEach((track) => track.stop());\n localStreamRef.current = null;\n }\n\n localAudioTrackRef.current = null;\n microphoneEnabledRef.current = false;\n pendingIntroRef.current = false;\n introResponseIdRef.current = null;\n if (mcpStateRef.current.retry.timeoutId) {\n clearTimeout(mcpStateRef.current.retry.timeoutId);\n }\n mcpStateRef.current = createMcpState();\n responseStateRef.current = createResponseState();\n functionStateRef.current = createFunctionState();\n\n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n audioElementRef.current = null;\n }\n\n if (inputSourceRef.current) {\n inputSourceRef.current.disconnect();\n inputSourceRef.current = null;\n }\n\n if (outputSourceRef.current) {\n outputSourceRef.current.disconnect();\n outputSourceRef.current = null;\n }\n\n audioAnalyzersRef.current.inputAnalyser = null;\n audioAnalyzersRef.current.outputAnalyser = null;\n audioAnalyzersRef.current.getInputByteFrequencyData = () => null;\n audioAnalyzersRef.current.getOutputByteFrequencyData = () => null;\n inputFrequencyDataRef.current = null;\n outputFrequencyDataRef.current = null;\n\n const audioContext = audioContextRef.current;\n if (audioContext) {\n audioContext.close();\n audioContextRef.current = null;\n }\n\n pendingUserTranscriptRef.current = '';\n }, []);\n\n const safeJsonParse = useCallback((value) => {\n if (typeof value !== 'string') return null;\n try {\n return JSON.parse(value);\n } catch {\n return null;\n }\n }, []);\n\n const isAllowedOpenUrl = useCallback((url) => {\n if (typeof url !== 'string') return false;\n return url.trim().startsWith('https://api.mirai');\n }, []);\n\n const enableMicrophone = useCallback(() => {\n const track = localAudioTrackRef.current;\n if (!track || microphoneEnabledRef.current) return;\n track.enabled = true;\n microphoneEnabledRef.current = true;\n }, []);\n\n const clearPendingMcp = useCallback(() => {\n if (mcpStateRef.current.retry.timeoutId) {\n clearTimeout(mcpStateRef.current.retry.timeoutId);\n }\n mcpStateRef.current = createMcpState();\n }, []);\n\n const clearPendingFollowup = useCallback(() => {\n functionStateRef.current.pendingFollowup = false;\n functionStateRef.current.pendingFollowupReason = null;\n functionStateRef.current.pendingFollowupResponse = null;\n }, []);\n\n const sendResponseCreate = useCallback((reason, responseOverrides) => {\n if (responseStateRef.current.activeId || responseStateRef.current.audioResponseIds.size > 0) {\n functionStateRef.current.pendingFollowup = true;\n functionStateRef.current.pendingFollowupReason = reason || null;\n functionStateRef.current.pendingFollowupResponse = responseOverrides || null;\n return false;\n }\n const channel = dataChannelRef.current;\n if (channel && channel.readyState === 'open') {\n const responsePayload = responseOverrides\n ? { type: 'response.create', response: responseOverrides }\n : { type: 'response.create' };\n channel.send(JSON.stringify(responsePayload));\n return true;\n }\n return false;\n }, []);\n\n const sendPendingFollowup = useCallback(() => {\n if (\n responseStateRef.current.activeId ||\n responseStateRef.current.audioResponseIds.size > 0 ||\n !functionStateRef.current.pendingFollowup\n ) {\n return false;\n }\n\n const reason = functionStateRef.current.pendingFollowupReason;\n const responseOverrides = functionStateRef.current.pendingFollowupResponse;\n clearPendingFollowup();\n return sendResponseCreate(reason || 'followup', responseOverrides);\n }, [clearPendingFollowup, sendResponseCreate]);\n\n const requestFollowupResponse = useCallback(\n (reason, outputCallId, responseOverrides) => {\n if (outputCallId && mcpStateRef.current.resumeRequestedCallIds.has(outputCallId)) return false;\n if (!outputCallId && mcpStateRef.current.resumeRequestedAny) return false;\n mcpStateRef.current.resumeRequestedAny = true;\n if (outputCallId) mcpStateRef.current.resumeRequestedCallIds.add(outputCallId);\n return sendResponseCreate(reason || 'followup', responseOverrides);\n },\n [sendResponseCreate],\n );\n\n const resumeMcpIfNeeded = useCallback(\n (outputCallId) => {\n if (outputCallId) {\n mcpStateRef.current.pendingCallIds.delete(outputCallId);\n }\n if (\n mcpStateRef.current.pending &&\n mcpStateRef.current.pendingCount === 0 &&\n !mcpStateRef.current.resumeRequestedAny &&\n !functionStateRef.current.pendingFollowup\n ) {\n clearPendingMcp();\n }\n },\n [clearPendingMcp],\n );\n\n const trackMcpStart = useCallback((callId) => {\n mcpStateRef.current.pending = true;\n if (callId) {\n if (mcpStateRef.current.handledCallIds.has(callId)) return;\n if (mcpStateRef.current.pendingCallIds.has(callId)) return;\n mcpStateRef.current.pendingCallIds.add(callId);\n mcpStateRef.current.pendingCount += 1;\n return;\n }\n mcpStateRef.current.pendingCount += 1;\n }, []);\n\n const getFunctionCallKey = useCallback((callId, responseId, name) => {\n if (callId) return callId;\n if (responseId && name) return `${responseId}:${name}`;\n return null;\n }, []);\n\n const upsertFunctionCall = useCallback(({ key, name, responseId, callId, args }) => {\n if (!key) return;\n const existing = functionStateRef.current.pendingCalls.get(key) || { key };\n functionStateRef.current.pendingCalls.set(key, {\n ...existing,\n name: name ?? existing.name,\n responseId: responseId ?? existing.responseId,\n callId: callId ?? existing.callId,\n args: args ?? existing.args,\n });\n }, []);\n\n const handleMcpCompletion = useCallback(\n (outputCallId, requestFollowup = true) => {\n mcpStateRef.current.pending = true;\n if (outputCallId) {\n if (mcpStateRef.current.handledCallIds.has(outputCallId)) return;\n mcpStateRef.current.handledCallIds.add(outputCallId);\n }\n if (mcpStateRef.current.pendingCount > 0) mcpStateRef.current.pendingCount -= 1;\n if (requestFollowup && mcpStateRef.current.pendingCount === 0) {\n requestFollowupResponse('mcp_completed', outputCallId);\n }\n resumeMcpIfNeeded(outputCallId);\n },\n [requestFollowupResponse, resumeMcpIfNeeded],\n );\n\n const scheduleResumeRetry = useCallback(\n (outputCallId) => {\n if (!mcpStateRef.current.pending) return;\n if (mcpStateRef.current.retry.timeoutId) return;\n if (mcpStateRef.current.retry.count >= 2) {\n clearPendingMcp();\n return;\n }\n const attempt = mcpStateRef.current.retry.count + 1;\n const delay = attempt * 600;\n mcpStateRef.current.retry.count = attempt;\n mcpStateRef.current.retry.timeoutId = setTimeout(() => {\n mcpStateRef.current.retry.timeoutId = null;\n if (outputCallId) mcpStateRef.current.resumeRequestedCallIds.delete(outputCallId);\n mcpStateRef.current.resumeRequestedAny = false;\n requestFollowupResponse('mcp_completed', outputCallId);\n }, delay);\n },\n [clearPendingMcp, requestFollowupResponse],\n );\n\n const sendFunctionCallOutput = useCallback((callId, output) => {\n const channel = dataChannelRef.current;\n if (!callId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.create',\n item: {\n type: 'function_call_output',\n call_id: callId,\n output: JSON.stringify(output || {}),\n },\n }),\n );\n return true;\n }, []);\n\n const sendItemRetrieve = useCallback((itemId) => {\n const channel = dataChannelRef.current;\n if (!itemId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.retrieve',\n item_id: itemId,\n }),\n );\n return true;\n }, []);\n\n const sendMcpApproval = useCallback((approvalRequestId, approve = true) => {\n const channel = dataChannelRef.current;\n if (!approvalRequestId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.create',\n previous_item_id: approvalRequestId,\n item: {\n type: 'mcp_approval_response',\n approval_request_id: approvalRequestId,\n approve,\n },\n }),\n );\n return true;\n }, []);\n\n const buildMcpFailureInstructions = useCallback((localeHint) => {\n const normalizedLocale = localeHint || 'en-US';\n return `Respond in the language that matches the locale code \"${normalizedLocale}\". The requested information could not be retrieved because a data source failed. Apologize briefly and ask if the user wants to try again or ask something else.`;\n }, []);\n\n const handleMcpFailure = useCallback(\n (callId, localeHint) => {\n const failureKey = callId || 'unknown';\n if (mcpStateRef.current.failedCallIds.has(failureKey)) return;\n mcpStateRef.current.failedCallIds.add(failureKey);\n const instructions = buildMcpFailureInstructions(localeHint);\n requestFollowupResponse('mcp_failed', callId, { instructions });\n },\n [buildMcpFailureInstructions, requestFollowupResponse],\n );\n\n const handleOpenUrlCalls = useCallback(\n ({ responseId, outputItems }) => {\n const responseOpenUrlItems = Array.isArray(outputItems)\n ? outputItems.filter((item) => item?.type === 'function_call' && item?.name === 'open_url')\n : [];\n responseOpenUrlItems.forEach((item) => {\n const key = getFunctionCallKey(item.call_id || item.id || null, responseId, item.name);\n upsertFunctionCall({\n key,\n name: item.name,\n responseId,\n callId: item.call_id || item.id || null,\n args: item.arguments || null,\n });\n });\n\n const pendingCalls = [...functionStateRef.current.pendingCalls.values()].filter((call) => {\n if (!call?.name || call.name !== 'open_url') return false;\n if (!responseId) return true;\n return !call.responseId || call.responseId === responseId;\n });\n\n for (const call of pendingCalls) {\n const callKey = call.key || call.callId || call.args || null;\n if (callKey && functionStateRef.current.handledOpenUrlCalls.has(callKey)) continue;\n const args = safeJsonParse(call.args);\n const url = args?.url;\n if (!isAllowedOpenUrl(url)) {\n if (call.callId) {\n sendFunctionCallOutput(call.callId, {\n error: 'blocked_url',\n allowed_prefix: 'https://api.mirai',\n });\n requestFollowupResponse('open_url_blocked', call.callId);\n }\n if (call.key) functionStateRef.current.pendingCalls.delete(call.key);\n continue;\n }\n if (callKey) functionStateRef.current.handledOpenUrlCalls.add(callKey);\n if (call.key) functionStateRef.current.pendingCalls.delete(call.key);\n cleanupRealtimeSession(true);\n window.location.assign(url.trim());\n return true;\n }\n return false;\n },\n [\n cleanupRealtimeSession,\n getFunctionCallKey,\n isAllowedOpenUrl,\n requestFollowupResponse,\n safeJsonParse,\n sendFunctionCallOutput,\n upsertFunctionCall,\n ],\n );\n\n const startSession = useCallback(\n async ({ assistant_name, chainId, currency, hotelId, isChain, locale, setIsConnecting, setReady }) => {\n cleanupRealtimeSession();\n\n const fingerprint = getClientFingerprint();\n const finalizeSession = (error) => {\n const errorMessage = typeof error === 'string' ? error : error?.message;\n if (errorMessage) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: errorMessage });\n }\n cleanupRealtimeSession(true);\n setReady(false);\n setIsConnecting(false);\n };\n\n try {\n const sessionResponse = await request({\n endpoint: `/voice/session?fingerprint=${fingerprint}&hotelId=${isChain ? '' : hotelId ?? ''}&chainId=${\n isChain ? chainId ?? '' : ''\n }&locale=${locale ?? ''}&currency=${currency ?? ''}`,\n hostname: process.env.SERVICE_SYNAPSE,\n method: 'GET',\n });\n\n const ephemeralKey = sessionResponse.value;\n const peerConnection = new RTCPeerConnection();\n peerConnectionRef.current = peerConnection;\n peerConnection.addEventListener('connectionstatechange', () => {\n const { connectionState } = peerConnection;\n if (connectionState === 'failed' || connectionState === 'disconnected' || connectionState === 'closed') {\n finalizeSession();\n }\n });\n\n audioElementRef.current = document.createElement('audio');\n audioElementRef.current.autoplay = true;\n peerConnection.ontrack = ({ streams }) => {\n const [remoteStream] = streams;\n if (audioElementRef.current) {\n audioElementRef.current.srcObject = remoteStream || null;\n }\n if (!audioContextRef.current || !audioAnalyzersRef.current.outputAnalyser || !remoteStream) return;\n if (outputSourceRef.current) outputSourceRef.current.disconnect();\n outputSourceRef.current = audioContextRef.current.createMediaStreamSource(remoteStream);\n outputSourceRef.current.connect(audioAnalyzersRef.current.outputAnalyser);\n };\n\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n channelCount: 1,\n sampleRate: 48000,\n },\n });\n\n localStreamRef.current = mediaStream;\n const [track] = mediaStream.getAudioTracks();\n\n const AudioContextConstructor = globalThis.AudioContext || globalThis.webkitAudioContext;\n if (!AudioContextConstructor) throw new Error('AudioContext not supported');\n const audioContext = new AudioContextConstructor();\n audioContextRef.current = audioContext;\n if (audioContext.state === 'suspended') await audioContext.resume();\n const inputAnalyser = audioContext.createAnalyser();\n const outputAnalyser = audioContext.createAnalyser();\n inputAnalyser.fftSize = 1024;\n outputAnalyser.fftSize = 1024;\n audioAnalyzersRef.current.inputAnalyser = inputAnalyser;\n audioAnalyzersRef.current.outputAnalyser = outputAnalyser;\n inputFrequencyDataRef.current = new Uint8Array(inputAnalyser.frequencyBinCount);\n outputFrequencyDataRef.current = new Uint8Array(outputAnalyser.frequencyBinCount);\n audioAnalyzersRef.current.getInputByteFrequencyData = () => {\n if (!audioAnalyzersRef.current.inputAnalyser || !inputFrequencyDataRef.current) return null;\n audioAnalyzersRef.current.inputAnalyser.getByteFrequencyData(inputFrequencyDataRef.current);\n return inputFrequencyDataRef.current;\n };\n audioAnalyzersRef.current.getOutputByteFrequencyData = () => {\n if (!audioAnalyzersRef.current.outputAnalyser || !outputFrequencyDataRef.current) return null;\n audioAnalyzersRef.current.outputAnalyser.getByteFrequencyData(outputFrequencyDataRef.current);\n return outputFrequencyDataRef.current;\n };\n\n const inputSource = audioContext.createMediaStreamSource(mediaStream);\n inputSourceRef.current = inputSource;\n inputSource.connect(inputAnalyser);\n\n if (track) {\n localAudioTrackRef.current = track;\n track.enabled = false;\n await track.applyConstraints({\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n });\n peerConnection.addTrack(track, mediaStream);\n }\n\n const dataChannel = peerConnection.createDataChannel('oai-events');\n dataChannelRef.current = dataChannel;\n dataChannel.addEventListener('close', () => {\n finalizeSession();\n });\n dataChannel.addEventListener('error', (event) => {\n finalizeSession(event);\n });\n\n dataChannel.addEventListener('open', () => {\n pendingUserTranscriptRef.current = '';\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_START });\n\n const localeHint = locale || 'en-US';\n const introductionMessage = `Respond in the language that matches the locale code \"${localeHint}\". Introduce yourself using the following sentence, translated into that language: \"Hello, I am ${assistant_name}, your virtual assistant. I can help you with information about our services and facilities. What would you like to know today?\"`;\n\n pendingIntroRef.current = true;\n introResponseIdRef.current = null;\n dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n instructions: introductionMessage,\n },\n }),\n );\n });\n\n dataChannel.addEventListener('message', async (event) => {\n const payload = JSON.parse(event.data);\n const { response } = payload;\n const itemId = payload.item?.id || payload.item_id || null;\n const callId = payload.item?.call_id || payload.call_id || itemId;\n const responseId = payload.response_id || response?.id || null;\n\n if (payload.type === 'response.output_item.added' && payload.item?.type === 'message') {\n if (pendingIntroRef.current && !introResponseIdRef.current && payload.response_id) {\n introResponseIdRef.current = payload.response_id;\n }\n if (responseId) responseStateRef.current.audioResponseIds.add(responseId);\n if (responseId) {\n mcpStateRef.current.responsesWithMessage.add(responseId);\n mcpStateRef.current.responseIds.delete(responseId);\n }\n if (mcpStateRef.current.pending && mcpStateRef.current.pendingCount === 0) {\n if (mcpStateRef.current.resumeRequestedAny) clearPendingFollowup();\n clearPendingMcp();\n }\n }\n\n if (payload.type === 'output_audio_buffer.stopped' || payload.type === 'output_audio_buffer.cleared') {\n if (responseId) {\n responseStateRef.current.audioResponseIds.delete(responseId);\n } else {\n responseStateRef.current.audioResponseIds.clear();\n }\n if (\n pendingIntroRef.current &&\n introResponseIdRef.current &&\n payload.response_id === introResponseIdRef.current\n ) {\n enableMicrophone();\n pendingIntroRef.current = false;\n introResponseIdRef.current = null;\n }\n sendPendingFollowup();\n }\n\n if (\n payload.type === 'response.output_item.added' &&\n (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call')\n ) {\n if (responseId) mcpStateRef.current.responseIds.add(responseId);\n trackMcpStart(callId);\n }\n\n if (payload.type === 'response.output_item.added' && payload.item?.type === 'function_call') {\n const name = payload.item?.name || payload.name || null;\n const key = getFunctionCallKey(callId, responseId, name);\n upsertFunctionCall({ key, name, responseId, callId, args: payload.item?.arguments || null });\n }\n\n if (payload.type === 'response.function_call_arguments.done') {\n const name = payload.name || null;\n const key = getFunctionCallKey(payload.call_id || null, responseId, name);\n upsertFunctionCall({ key, name, responseId, callId: payload.call_id || null, args: payload.arguments });\n }\n\n if (payload.type === 'response.mcp_call.in_progress') {\n trackMcpStart(callId);\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (payload.type === 'response.mcp_tool_call.in_progress') {\n trackMcpStart(callId);\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (payload.type === 'mcp_list_tools.in_progress' || payload.type === 'response.mcp_list_tools.in_progress') {\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (\n payload.type === 'response.output_item.done' &&\n (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call')\n ) {\n if (payload.item?.error || payload.item?.status === 'failed') {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n\n if (\n payload.type === 'response.mcp_call.completed' ||\n payload.type === 'response.mcp_call.failed' ||\n payload.type === 'response.mcp_tool_call.completed' ||\n payload.type === 'response.mcp_tool_call.failed'\n ) {\n if (payload.type === 'response.mcp_call.failed' || payload.type === 'response.mcp_tool_call.failed') {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n\n if (payload.type === 'conversation.item.added' || payload.type === 'conversation.item.retrieved') {\n if (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call') {\n trackMcpStart(callId);\n }\n if (payload.item?.type === 'mcp_approval_request') {\n const approvalId = payload.item?.id || payload.item_id || null;\n if (approvalId && !mcpStateRef.current.handledApprovalIds.has(approvalId)) {\n mcpStateRef.current.handledApprovalIds.add(approvalId);\n sendMcpApproval(approvalId, true);\n }\n }\n }\n\n if (payload.type === 'conversation.item.done') {\n if (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call') {\n if (payload.item?.status === 'failed' || payload.item?.error) {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n if (payload.item?.type === 'mcp_approval_request') {\n const approvalId = payload.item?.id || payload.item_id || null;\n if (approvalId && !mcpStateRef.current.handledApprovalIds.has(approvalId)) {\n mcpStateRef.current.handledApprovalIds.add(approvalId);\n sendMcpApproval(approvalId, true);\n }\n }\n }\n\n if (payload.type === 'response.done') {\n if (responseId) mcpStateRef.current.responsesDone.add(responseId);\n const outputItems = Array.isArray(response?.output) ? response.output : [];\n const hasMessage = outputItems.some((item) => item?.type === 'message');\n const status = response?.status;\n const reason = response?.status_details?.reason || response?.status_details?.error?.code || null;\n if (status !== 'completed' && responseId) {\n responseStateRef.current.audioResponseIds.delete(responseId);\n }\n if (status === 'completed') {\n if (\n hasMessage &&\n mcpStateRef.current.pending &&\n mcpStateRef.current.pendingCount === 0 &&\n mcpStateRef.current.responseIds.size === 0\n ) {\n clearPendingMcp();\n }\n } else if (mcpStateRef.current.pending) {\n if (status === 'failed') {\n if (mcpStateRef.current.failedCallIds.size === 0) {\n scheduleResumeRetry(callId);\n }\n } else if (status === 'cancelled' && reason !== 'turn_detected') {\n if (mcpStateRef.current.failedCallIds.size === 0) {\n scheduleResumeRetry(callId);\n }\n }\n }\n resumeMcpIfNeeded(callId);\n handleOpenUrlCalls({ responseId, outputItems });\n }\n\n if (payload.type === 'response.created') {\n if (responseId) responseStateRef.current.activeId = responseId;\n }\n\n if (payload.type === 'conversation.item.input_audio_transcription.completed') {\n const transcript = payload.transcript?.trim();\n if (transcript) pendingUserTranscriptRef.current += transcript;\n }\n\n if (payload.type === 'response.done' && responseId && responseStateRef.current.activeId === responseId) {\n responseStateRef.current.activeId = null;\n sendPendingFollowup();\n }\n\n if (payload.type === 'response.output_audio_transcript.done') {\n const transcript = payload.transcript?.trim();\n if (!transcript || !pendingUserTranscriptRef.current) return;\n\n const input = pendingUserTranscriptRef.current.trim();\n pendingUserTranscriptRef.current = '';\n\n const activeLocale = locale || 'en-US';\n\n const channelId = hotelId || chainId;\n if (channelId) {\n try {\n const chatId = await ensureChatId({\n fingerprint,\n channelId,\n session: { locale: activeLocale },\n });\n if (chatId) {\n await createChatMessage({ author: 'user', body: input, chatId, meta: { audio: true } });\n await createChatMessage({ author: 'ai', body: transcript, chatId, meta: { audio: true } });\n }\n } catch (error) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: error?.message });\n }\n }\n\n Event.publish(EVENT.METRICS, {\n id: 'SYNAPSE_RESPONSE',\n fingerprint,\n text: transcript,\n input,\n agent: 'aura',\n locale: activeLocale,\n });\n }\n });\n\n const offer = await peerConnection.createOffer();\n await peerConnection.setLocalDescription(offer);\n\n const sdpResponse = await fetch('https://api.openai.com/v1/realtime/calls', {\n method: 'POST',\n body: offer.sdp,\n headers: {\n Authorization: `Bearer ${ephemeralKey}`,\n 'Content-Type': 'application/sdp',\n },\n });\n\n if (!sdpResponse.ok) throw new Error('Failed to establish OpenAI Realtime session');\n\n const answer = { type: 'answer', sdp: await sdpResponse.text() };\n\n await peerConnection.setRemoteDescription(answer);\n setReady(true);\n } catch (error) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: error?.message });\n setReady(false);\n throw error;\n } finally {\n setIsConnecting(false);\n }\n },\n [\n cleanupRealtimeSession,\n clearPendingFollowup,\n clearPendingMcp,\n enableMicrophone,\n handleMcpCompletion,\n handleMcpFailure,\n handleOpenUrlCalls,\n resumeMcpIfNeeded,\n scheduleResumeRetry,\n sendPendingFollowup,\n sendItemRetrieve,\n sendMcpApproval,\n trackMcpStart,\n upsertFunctionCall,\n getFunctionCallKey,\n ],\n );\n\n const endSession = useCallback(() => {\n cleanupRealtimeSession(true);\n }, [cleanupRealtimeSession]);\n\n return { startSession, endSession, audioAnalyzers: audioAnalyzersRef.current };\n};\n\nexport { useOpenAiRealtimeSession };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useOpenAiRealtimeSession.js","names":["_dataSources","require","_react","_helpers","_helpers2","_lobby","_slicedToArray","r","e","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","createMcpState","pending","pendingCallIds","Set","pendingCount","handledCallIds","handledApprovalIds","failedCallIds","responseIds","responsesDone","responsesWithMessage","resumeRequestedCallIds","resumeRequestedAny","retry","count","timeoutId","createResponseState","activeId","audioResponseIds","createFunctionState","pendingCalls","Map","pendingFollowup","pendingFollowupReason","pendingFollowupResponse","handledOpenUrlCalls","useOpenAiRealtimeSession","audioElementRef","useRef","audioContextRef","peerConnectionRef","dataChannelRef","localStreamRef","localAudioTrackRef","microphoneEnabledRef","pendingIntroRef","introResponseIdRef","mcpStateRef","responseStateRef","functionStateRef","pendingUserTranscriptRef","inputSourceRef","outputSourceRef","inputFrequencyDataRef","outputFrequencyDataRef","audioAnalyzersRef","inputAnalyser","outputAnalyser","getInputByteFrequencyData","getOutputByteFrequencyData","cleanupRealtimeSession","useCallback","shouldSignal","undefined","dataChannel","current","readyState","send","JSON","stringify","type","close","peerConnection","getSenders","sender","track","stop","localStream","getTracks","clearTimeout","srcObject","disconnect","audioContext","safeJsonParse","parse","_unused","isAllowedOpenUrl","url","trim","startsWith","enableMicrophone","enabled","clearPendingMcp","clearPendingFollowup","sendResponseCreate","reason","responseOverrides","size","channel","responsePayload","response","sendPendingFollowup","requestFollowupResponse","outputCallId","has","add","resumeMcpIfNeeded","delete","trackMcpStart","callId","getFunctionCallKey","responseId","concat","upsertFunctionCall","_ref","key","args","existing","get","set","handleMcpCompletion","requestFollowup","scheduleResumeRetry","attempt","delay","setTimeout","sendFunctionCallOutput","output","item","call_id","sendItemRetrieve","itemId","item_id","sendMcpApproval","approvalRequestId","approve","previous_item_id","approval_request_id","buildMcpFailureInstructions","localeHint","normalizedLocale","handleMcpFailure","failureKey","instructions","handleOpenUrlCalls","_ref2","outputItems","responseOpenUrlItems","id","values","callKey","error","allowed_prefix","window","location","assign","startSession","_ref3","assistant_name","chainId","currency","hotelId","isChain","locale","setIsConnecting","setReady","fingerprint","getClientFingerprint","finalizeSession","errorMessage","message","Event","publish","EVENT","METRICS","METRICS_EVENTS","AURA_ERROR","sessionResponse","request","endpoint","hostname","process","env","SERVICE_SYNAPSE","method","ephemeralKey","RTCPeerConnection","addEventListener","connectionState","document","createElement","autoplay","ontrack","_ref4","streams","_streams","remoteStream","createMediaStreamSource","connect","mediaStream","navigator","mediaDevices","getUserMedia","audio","echoCancellation","noiseSuppression","autoGainControl","channelCount","sampleRate","_mediaStream$getAudio","getAudioTracks","_mediaStream$getAudio2","AudioContextConstructor","globalThis","AudioContext","webkitAudioContext","Error","state","resume","createAnalyser","fftSize","Uint8Array","frequencyBinCount","getByteFrequencyData","inputSource","applyConstraints","addTrack","createDataChannel","event","AURA_START","introductionMessage","_payload$item","_payload$item2","_payload$item3","_payload$item4","_payload$item5","_payload$item6","_payload$item9","_payload$item0","payload","data","response_id","clear","_payload$item7","_payload$item8","_payload$item1","_payload$item10","status","_payload$item11","_payload$item12","_payload$item13","_payload$item14","approvalId","_payload$item15","_payload$item16","_payload$item19","_payload$item17","_payload$item18","_payload$item20","_response$status_deta","_response$status_deta2","hasMessage","some","status_details","code","_payload$transcript","transcript","_payload$transcript2","input","activeLocale","channelId","chatId","ensureChatId","session","createChatMessage","author","body","meta","text","agent","offer","createOffer","setLocalDescription","sdpResponse","fetch","sdp","headers","Authorization","ok","answer","setRemoteDescription","endSession","audioAnalyzers","exports"],"sources":["../../../../../../src/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js"],"sourcesContent":["import { Event, request } from '@mirai/data-sources';\nimport { useCallback, useRef } from 'react';\n\nimport { EVENT, METRICS_EVENTS } from '../../../../helpers';\nimport { getClientFingerprint } from '../../../helpers';\nimport { createChatMessage, ensureChatId } from '../../../services/lobby.service';\n\nconst createMcpState = () => ({\n pending: false,\n pendingCallIds: new Set(),\n pendingCount: 0,\n handledCallIds: new Set(),\n handledApprovalIds: new Set(),\n failedCallIds: new Set(),\n responseIds: new Set(),\n responsesDone: new Set(),\n responsesWithMessage: new Set(),\n resumeRequestedCallIds: new Set(),\n resumeRequestedAny: false,\n retry: { count: 0, timeoutId: null },\n});\n\nconst createResponseState = () => ({\n activeId: null,\n audioResponseIds: new Set(),\n});\n\nconst createFunctionState = () => ({\n pendingCalls: new Map(),\n pendingFollowup: false,\n pendingFollowupReason: null,\n pendingFollowupResponse: null,\n handledOpenUrlCalls: new Set(),\n});\n\nconst useOpenAiRealtimeSession = () => {\n const audioElementRef = useRef(null);\n const audioContextRef = useRef(null);\n const peerConnectionRef = useRef(null);\n const dataChannelRef = useRef(null);\n const localStreamRef = useRef(null);\n const localAudioTrackRef = useRef(null);\n const microphoneEnabledRef = useRef(false);\n const pendingIntroRef = useRef(false);\n const introResponseIdRef = useRef(null);\n const mcpStateRef = useRef(createMcpState());\n const responseStateRef = useRef(createResponseState());\n const functionStateRef = useRef(createFunctionState());\n const pendingUserTranscriptRef = useRef('');\n const inputSourceRef = useRef(null);\n const outputSourceRef = useRef(null);\n const inputFrequencyDataRef = useRef(null);\n const outputFrequencyDataRef = useRef(null);\n const audioAnalyzersRef = useRef({\n inputAnalyser: null,\n outputAnalyser: null,\n getInputByteFrequencyData: () => null,\n getOutputByteFrequencyData: () => null,\n });\n\n const cleanupRealtimeSession = useCallback((shouldSignal = false) => {\n const dataChannel = dataChannelRef.current;\n if (dataChannel) {\n if (shouldSignal && dataChannel.readyState === 'open') {\n dataChannel.send(JSON.stringify({ type: 'session.close' }));\n }\n dataChannel.close();\n dataChannelRef.current = null;\n }\n\n const peerConnection = peerConnectionRef.current;\n if (peerConnection) {\n peerConnection.getSenders().forEach((sender) => {\n if (sender.track) sender.track.stop();\n });\n peerConnection.close();\n peerConnectionRef.current = null;\n }\n\n const localStream = localStreamRef.current;\n if (localStream) {\n localStream.getTracks().forEach((track) => track.stop());\n localStreamRef.current = null;\n }\n\n localAudioTrackRef.current = null;\n microphoneEnabledRef.current = false;\n pendingIntroRef.current = false;\n introResponseIdRef.current = null;\n if (mcpStateRef.current.retry.timeoutId) {\n clearTimeout(mcpStateRef.current.retry.timeoutId);\n }\n mcpStateRef.current = createMcpState();\n responseStateRef.current = createResponseState();\n functionStateRef.current = createFunctionState();\n\n if (audioElementRef.current) {\n audioElementRef.current.srcObject = null;\n audioElementRef.current = null;\n }\n\n if (inputSourceRef.current) {\n inputSourceRef.current.disconnect();\n inputSourceRef.current = null;\n }\n\n if (outputSourceRef.current) {\n outputSourceRef.current.disconnect();\n outputSourceRef.current = null;\n }\n\n audioAnalyzersRef.current.inputAnalyser = null;\n audioAnalyzersRef.current.outputAnalyser = null;\n audioAnalyzersRef.current.getInputByteFrequencyData = () => null;\n audioAnalyzersRef.current.getOutputByteFrequencyData = () => null;\n inputFrequencyDataRef.current = null;\n outputFrequencyDataRef.current = null;\n\n const audioContext = audioContextRef.current;\n if (audioContext) {\n audioContext.close();\n audioContextRef.current = null;\n }\n\n pendingUserTranscriptRef.current = '';\n }, []);\n\n const safeJsonParse = useCallback((value) => {\n if (typeof value !== 'string') return null;\n try {\n return JSON.parse(value);\n } catch {\n return null;\n }\n }, []);\n\n const isAllowedOpenUrl = useCallback((url) => {\n if (typeof url !== 'string') return false;\n return url.trim().startsWith('https://api.mirai');\n }, []);\n\n const enableMicrophone = useCallback(() => {\n const track = localAudioTrackRef.current;\n if (!track || microphoneEnabledRef.current) return;\n track.enabled = true;\n microphoneEnabledRef.current = true;\n }, []);\n\n const clearPendingMcp = useCallback(() => {\n if (mcpStateRef.current.retry.timeoutId) {\n clearTimeout(mcpStateRef.current.retry.timeoutId);\n }\n mcpStateRef.current = createMcpState();\n }, []);\n\n const clearPendingFollowup = useCallback(() => {\n functionStateRef.current.pendingFollowup = false;\n functionStateRef.current.pendingFollowupReason = null;\n functionStateRef.current.pendingFollowupResponse = null;\n }, []);\n\n const sendResponseCreate = useCallback((reason, responseOverrides) => {\n if (responseStateRef.current.activeId || responseStateRef.current.audioResponseIds.size > 0) {\n functionStateRef.current.pendingFollowup = true;\n functionStateRef.current.pendingFollowupReason = reason || null;\n functionStateRef.current.pendingFollowupResponse = responseOverrides || null;\n return false;\n }\n const channel = dataChannelRef.current;\n if (channel && channel.readyState === 'open') {\n const responsePayload = responseOverrides\n ? { type: 'response.create', response: responseOverrides }\n : { type: 'response.create' };\n channel.send(JSON.stringify(responsePayload));\n return true;\n }\n return false;\n }, []);\n\n const sendPendingFollowup = useCallback(() => {\n if (\n responseStateRef.current.activeId ||\n responseStateRef.current.audioResponseIds.size > 0 ||\n !functionStateRef.current.pendingFollowup\n ) {\n return false;\n }\n\n const reason = functionStateRef.current.pendingFollowupReason;\n const responseOverrides = functionStateRef.current.pendingFollowupResponse;\n clearPendingFollowup();\n return sendResponseCreate(reason || 'followup', responseOverrides);\n }, [clearPendingFollowup, sendResponseCreate]);\n\n const requestFollowupResponse = useCallback(\n (reason, outputCallId, responseOverrides) => {\n if (outputCallId && mcpStateRef.current.resumeRequestedCallIds.has(outputCallId)) return false;\n if (!outputCallId && mcpStateRef.current.resumeRequestedAny) return false;\n mcpStateRef.current.resumeRequestedAny = true;\n if (outputCallId) mcpStateRef.current.resumeRequestedCallIds.add(outputCallId);\n return sendResponseCreate(reason || 'followup', responseOverrides);\n },\n [sendResponseCreate],\n );\n\n const resumeMcpIfNeeded = useCallback(\n (outputCallId) => {\n if (outputCallId) {\n mcpStateRef.current.pendingCallIds.delete(outputCallId);\n }\n if (\n mcpStateRef.current.pending &&\n mcpStateRef.current.pendingCount === 0 &&\n !mcpStateRef.current.resumeRequestedAny &&\n !functionStateRef.current.pendingFollowup\n ) {\n clearPendingMcp();\n }\n },\n [clearPendingMcp],\n );\n\n const trackMcpStart = useCallback((callId) => {\n mcpStateRef.current.pending = true;\n if (callId) {\n if (mcpStateRef.current.handledCallIds.has(callId)) return;\n if (mcpStateRef.current.pendingCallIds.has(callId)) return;\n mcpStateRef.current.pendingCallIds.add(callId);\n mcpStateRef.current.pendingCount += 1;\n return;\n }\n mcpStateRef.current.pendingCount += 1;\n }, []);\n\n const getFunctionCallKey = useCallback((callId, responseId, name) => {\n if (callId) return callId;\n if (responseId && name) return `${responseId}:${name}`;\n return null;\n }, []);\n\n const upsertFunctionCall = useCallback(({ key, name, responseId, callId, args }) => {\n if (!key) return;\n const existing = functionStateRef.current.pendingCalls.get(key) || { key };\n functionStateRef.current.pendingCalls.set(key, {\n ...existing,\n name: name ?? existing.name,\n responseId: responseId ?? existing.responseId,\n callId: callId ?? existing.callId,\n args: args ?? existing.args,\n });\n }, []);\n\n const handleMcpCompletion = useCallback(\n (outputCallId, requestFollowup = true) => {\n mcpStateRef.current.pending = true;\n if (outputCallId) {\n if (mcpStateRef.current.handledCallIds.has(outputCallId)) return;\n mcpStateRef.current.handledCallIds.add(outputCallId);\n }\n if (mcpStateRef.current.pendingCount > 0) mcpStateRef.current.pendingCount -= 1;\n if (requestFollowup && mcpStateRef.current.pendingCount === 0) {\n requestFollowupResponse('mcp_completed', outputCallId);\n }\n resumeMcpIfNeeded(outputCallId);\n },\n [requestFollowupResponse, resumeMcpIfNeeded],\n );\n\n const scheduleResumeRetry = useCallback(\n (outputCallId) => {\n if (!mcpStateRef.current.pending) return;\n if (mcpStateRef.current.retry.timeoutId) return;\n if (mcpStateRef.current.retry.count >= 2) {\n clearPendingMcp();\n return;\n }\n const attempt = mcpStateRef.current.retry.count + 1;\n const delay = attempt * 600;\n mcpStateRef.current.retry.count = attempt;\n mcpStateRef.current.retry.timeoutId = setTimeout(() => {\n mcpStateRef.current.retry.timeoutId = null;\n if (outputCallId) mcpStateRef.current.resumeRequestedCallIds.delete(outputCallId);\n mcpStateRef.current.resumeRequestedAny = false;\n requestFollowupResponse('mcp_completed', outputCallId);\n }, delay);\n },\n [clearPendingMcp, requestFollowupResponse],\n );\n\n const sendFunctionCallOutput = useCallback((callId, output) => {\n const channel = dataChannelRef.current;\n if (!callId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.create',\n item: {\n type: 'function_call_output',\n call_id: callId,\n output: JSON.stringify(output || {}),\n },\n }),\n );\n return true;\n }, []);\n\n const sendItemRetrieve = useCallback((itemId) => {\n const channel = dataChannelRef.current;\n if (!itemId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.retrieve',\n item_id: itemId,\n }),\n );\n return true;\n }, []);\n\n const sendMcpApproval = useCallback((approvalRequestId, approve = true) => {\n const channel = dataChannelRef.current;\n if (!approvalRequestId || !channel || channel.readyState !== 'open') return false;\n channel.send(\n JSON.stringify({\n type: 'conversation.item.create',\n previous_item_id: approvalRequestId,\n item: {\n type: 'mcp_approval_response',\n approval_request_id: approvalRequestId,\n approve,\n },\n }),\n );\n return true;\n }, []);\n\n const buildMcpFailureInstructions = useCallback((localeHint) => {\n const normalizedLocale = localeHint || 'en-US';\n return `Respond in the language that matches the locale code \"${normalizedLocale}\". The requested information could not be retrieved because a data source failed. Apologize briefly and ask if the user wants to try again or ask something else.`;\n }, []);\n\n const handleMcpFailure = useCallback(\n (callId, localeHint) => {\n const failureKey = callId || 'unknown';\n if (mcpStateRef.current.failedCallIds.has(failureKey)) return;\n mcpStateRef.current.failedCallIds.add(failureKey);\n const instructions = buildMcpFailureInstructions(localeHint);\n requestFollowupResponse('mcp_failed', callId, { instructions });\n },\n [buildMcpFailureInstructions, requestFollowupResponse],\n );\n\n const handleOpenUrlCalls = useCallback(\n ({ responseId, outputItems }) => {\n const responseOpenUrlItems = Array.isArray(outputItems)\n ? outputItems.filter((item) => item?.type === 'function_call' && item?.name === 'open_url')\n : [];\n responseOpenUrlItems.forEach((item) => {\n const key = getFunctionCallKey(item.call_id || item.id || null, responseId, item.name);\n upsertFunctionCall({\n key,\n name: item.name,\n responseId,\n callId: item.call_id || item.id || null,\n args: item.arguments || null,\n });\n });\n\n const pendingCalls = [...functionStateRef.current.pendingCalls.values()].filter((call) => {\n if (!call?.name || call.name !== 'open_url') return false;\n if (!responseId) return true;\n return !call.responseId || call.responseId === responseId;\n });\n\n for (const call of pendingCalls) {\n const callKey = call.key || call.callId || call.args || null;\n if (callKey && functionStateRef.current.handledOpenUrlCalls.has(callKey)) continue;\n const args = safeJsonParse(call.args);\n const url = args?.url;\n if (!isAllowedOpenUrl(url)) {\n if (call.callId) {\n sendFunctionCallOutput(call.callId, {\n error: 'blocked_url',\n allowed_prefix: 'https://api.mirai',\n });\n requestFollowupResponse('open_url_blocked', call.callId);\n }\n if (call.key) functionStateRef.current.pendingCalls.delete(call.key);\n continue;\n }\n if (callKey) functionStateRef.current.handledOpenUrlCalls.add(callKey);\n if (call.key) functionStateRef.current.pendingCalls.delete(call.key);\n cleanupRealtimeSession(true);\n window.location.assign(url.trim());\n return true;\n }\n return false;\n },\n [\n cleanupRealtimeSession,\n getFunctionCallKey,\n isAllowedOpenUrl,\n requestFollowupResponse,\n safeJsonParse,\n sendFunctionCallOutput,\n upsertFunctionCall,\n ],\n );\n\n const startSession = useCallback(\n async ({ assistant_name, chainId, currency, hotelId, isChain, locale, setIsConnecting, setReady }) => {\n cleanupRealtimeSession();\n\n const fingerprint = getClientFingerprint();\n const finalizeSession = (error) => {\n const errorMessage = typeof error === 'string' ? error : error?.message;\n if (errorMessage) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: errorMessage });\n }\n cleanupRealtimeSession(true);\n setReady(false);\n setIsConnecting(false);\n };\n\n try {\n const sessionResponse = await request({\n endpoint: `/voice/session?fingerprint=${fingerprint}&hotelId=${isChain ? '' : hotelId ?? ''}&chainId=${\n isChain ? chainId ?? '' : ''\n }&locale=${locale ?? ''}&currency=${currency ?? ''}`,\n hostname: process.env.SERVICE_SYNAPSE,\n method: 'GET',\n });\n\n const ephemeralKey = sessionResponse.value;\n const peerConnection = new RTCPeerConnection();\n peerConnectionRef.current = peerConnection;\n peerConnection.addEventListener('connectionstatechange', () => {\n const { connectionState } = peerConnection;\n if (connectionState === 'failed' || connectionState === 'disconnected' || connectionState === 'closed') {\n finalizeSession();\n }\n });\n\n audioElementRef.current = document.createElement('audio');\n audioElementRef.current.autoplay = true;\n peerConnection.ontrack = ({ streams }) => {\n const [remoteStream] = streams;\n if (audioElementRef.current) {\n audioElementRef.current.srcObject = remoteStream || null;\n }\n if (!audioContextRef.current || !audioAnalyzersRef.current.outputAnalyser || !remoteStream) return;\n if (outputSourceRef.current) outputSourceRef.current.disconnect();\n outputSourceRef.current = audioContextRef.current.createMediaStreamSource(remoteStream);\n outputSourceRef.current.connect(audioAnalyzersRef.current.outputAnalyser);\n };\n\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n channelCount: 1,\n sampleRate: 48000,\n },\n });\n\n localStreamRef.current = mediaStream;\n const [track] = mediaStream.getAudioTracks();\n\n const AudioContextConstructor = globalThis.AudioContext || globalThis.webkitAudioContext;\n if (!AudioContextConstructor) throw new Error('AudioContext not supported');\n const audioContext = new AudioContextConstructor();\n audioContextRef.current = audioContext;\n if (audioContext.state === 'suspended') await audioContext.resume();\n const inputAnalyser = audioContext.createAnalyser();\n const outputAnalyser = audioContext.createAnalyser();\n inputAnalyser.fftSize = 1024;\n outputAnalyser.fftSize = 1024;\n audioAnalyzersRef.current.inputAnalyser = inputAnalyser;\n audioAnalyzersRef.current.outputAnalyser = outputAnalyser;\n inputFrequencyDataRef.current = new Uint8Array(inputAnalyser.frequencyBinCount);\n outputFrequencyDataRef.current = new Uint8Array(outputAnalyser.frequencyBinCount);\n audioAnalyzersRef.current.getInputByteFrequencyData = () => {\n if (!audioAnalyzersRef.current.inputAnalyser || !inputFrequencyDataRef.current) return null;\n audioAnalyzersRef.current.inputAnalyser.getByteFrequencyData(inputFrequencyDataRef.current);\n return inputFrequencyDataRef.current;\n };\n audioAnalyzersRef.current.getOutputByteFrequencyData = () => {\n if (!audioAnalyzersRef.current.outputAnalyser || !outputFrequencyDataRef.current) return null;\n audioAnalyzersRef.current.outputAnalyser.getByteFrequencyData(outputFrequencyDataRef.current);\n return outputFrequencyDataRef.current;\n };\n\n const inputSource = audioContext.createMediaStreamSource(mediaStream);\n inputSourceRef.current = inputSource;\n inputSource.connect(inputAnalyser);\n\n if (track) {\n localAudioTrackRef.current = track;\n track.enabled = false;\n await track.applyConstraints({\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true,\n });\n peerConnection.addTrack(track, mediaStream);\n }\n\n const dataChannel = peerConnection.createDataChannel('oai-events');\n dataChannelRef.current = dataChannel;\n dataChannel.addEventListener('close', () => {\n finalizeSession();\n });\n dataChannel.addEventListener('error', (event) => {\n finalizeSession(event);\n });\n\n dataChannel.addEventListener('open', () => {\n pendingUserTranscriptRef.current = '';\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_START });\n\n const localeHint = locale || 'en-US';\n const introductionMessage = `Respond in the language that matches the locale code \"${localeHint}\". Introduce yourself using the following sentence, translated into that language: \"Hello, I am ${assistant_name}, your virtual assistant. I can help you with information about our services and facilities. What would you like to know today?\"`;\n\n pendingIntroRef.current = true;\n introResponseIdRef.current = null;\n dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n instructions: introductionMessage,\n },\n }),\n );\n });\n\n dataChannel.addEventListener('message', async (event) => {\n const payload = JSON.parse(event.data);\n const { response } = payload;\n const itemId = payload.item?.id || payload.item_id || null;\n const callId = payload.item?.call_id || payload.call_id || itemId;\n const responseId = payload.response_id || response?.id || null;\n\n if (payload.type === 'response.output_item.added' && payload.item?.type === 'message') {\n if (pendingIntroRef.current && !introResponseIdRef.current && payload.response_id) {\n introResponseIdRef.current = payload.response_id;\n }\n if (responseId) responseStateRef.current.audioResponseIds.add(responseId);\n if (responseId) {\n mcpStateRef.current.responsesWithMessage.add(responseId);\n mcpStateRef.current.responseIds.delete(responseId);\n }\n if (mcpStateRef.current.pending && mcpStateRef.current.pendingCount === 0) {\n if (mcpStateRef.current.resumeRequestedAny) clearPendingFollowup();\n clearPendingMcp();\n }\n }\n\n if (payload.type === 'output_audio_buffer.stopped' || payload.type === 'output_audio_buffer.cleared') {\n if (responseId) {\n responseStateRef.current.audioResponseIds.delete(responseId);\n } else {\n responseStateRef.current.audioResponseIds.clear();\n }\n if (\n pendingIntroRef.current &&\n introResponseIdRef.current &&\n payload.response_id === introResponseIdRef.current\n ) {\n enableMicrophone();\n pendingIntroRef.current = false;\n introResponseIdRef.current = null;\n }\n sendPendingFollowup();\n }\n\n if (\n payload.type === 'response.output_item.added' &&\n (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call')\n ) {\n if (responseId) mcpStateRef.current.responseIds.add(responseId);\n trackMcpStart(callId);\n }\n\n if (payload.type === 'response.output_item.added' && payload.item?.type === 'function_call') {\n const name = payload.item?.name || payload.name || null;\n const key = getFunctionCallKey(callId, responseId, name);\n upsertFunctionCall({ key, name, responseId, callId, args: payload.item?.arguments || null });\n }\n\n if (payload.type === 'response.function_call_arguments.done') {\n const name = payload.name || null;\n const key = getFunctionCallKey(payload.call_id || null, responseId, name);\n upsertFunctionCall({ key, name, responseId, callId: payload.call_id || null, args: payload.arguments });\n }\n\n if (payload.type === 'response.mcp_call.in_progress') {\n trackMcpStart(callId);\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (payload.type === 'response.mcp_tool_call.in_progress') {\n trackMcpStart(callId);\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (payload.type === 'mcp_list_tools.in_progress' || payload.type === 'response.mcp_list_tools.in_progress') {\n if (payload.item_id) sendItemRetrieve(payload.item_id);\n }\n\n if (\n payload.type === 'response.output_item.done' &&\n (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call')\n ) {\n if (payload.item?.error || payload.item?.status === 'failed') {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n\n if (\n payload.type === 'response.mcp_call.completed' ||\n payload.type === 'response.mcp_call.failed' ||\n payload.type === 'response.mcp_tool_call.completed' ||\n payload.type === 'response.mcp_tool_call.failed'\n ) {\n if (payload.type === 'response.mcp_call.failed' || payload.type === 'response.mcp_tool_call.failed') {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n\n if (payload.type === 'conversation.item.added' || payload.type === 'conversation.item.retrieved') {\n if (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call') {\n trackMcpStart(callId);\n }\n if (payload.item?.type === 'mcp_approval_request') {\n const approvalId = payload.item?.id || payload.item_id || null;\n if (approvalId && !mcpStateRef.current.handledApprovalIds.has(approvalId)) {\n mcpStateRef.current.handledApprovalIds.add(approvalId);\n sendMcpApproval(approvalId, true);\n }\n }\n }\n\n if (payload.type === 'conversation.item.done') {\n if (payload.item?.type === 'mcp_call' || payload.item?.type === 'mcp_tool_call') {\n if (payload.item?.status === 'failed' || payload.item?.error) {\n handleMcpFailure(callId, locale);\n }\n handleMcpCompletion(callId);\n }\n if (payload.item?.type === 'mcp_approval_request') {\n const approvalId = payload.item?.id || payload.item_id || null;\n if (approvalId && !mcpStateRef.current.handledApprovalIds.has(approvalId)) {\n mcpStateRef.current.handledApprovalIds.add(approvalId);\n sendMcpApproval(approvalId, true);\n }\n }\n }\n\n if (payload.type === 'response.done') {\n if (responseId) mcpStateRef.current.responsesDone.add(responseId);\n const outputItems = Array.isArray(response?.output) ? response.output : [];\n const hasMessage = outputItems.some((item) => item?.type === 'message');\n const status = response?.status;\n const reason = response?.status_details?.reason || response?.status_details?.error?.code || null;\n if (status !== 'completed' && responseId) {\n responseStateRef.current.audioResponseIds.delete(responseId);\n }\n if (status === 'completed') {\n if (\n hasMessage &&\n mcpStateRef.current.pending &&\n mcpStateRef.current.pendingCount === 0 &&\n mcpStateRef.current.responseIds.size === 0\n ) {\n clearPendingMcp();\n }\n } else if (mcpStateRef.current.pending) {\n if (status === 'failed') {\n if (mcpStateRef.current.failedCallIds.size === 0) {\n scheduleResumeRetry(callId);\n }\n } else if (status === 'cancelled' && reason !== 'turn_detected') {\n if (mcpStateRef.current.failedCallIds.size === 0) {\n scheduleResumeRetry(callId);\n }\n }\n }\n resumeMcpIfNeeded(callId);\n handleOpenUrlCalls({ responseId, outputItems });\n }\n\n if (payload.type === 'response.created') {\n if (responseId) responseStateRef.current.activeId = responseId;\n }\n\n if (payload.type === 'conversation.item.input_audio_transcription.completed') {\n const transcript = payload.transcript?.trim();\n if (transcript) pendingUserTranscriptRef.current += transcript;\n }\n\n if (payload.type === 'response.done' && responseId && responseStateRef.current.activeId === responseId) {\n responseStateRef.current.activeId = null;\n sendPendingFollowup();\n }\n\n if (payload.type === 'response.output_audio_transcript.done') {\n const transcript = payload.transcript?.trim();\n if (!transcript || !pendingUserTranscriptRef.current) return;\n\n const input = pendingUserTranscriptRef.current.trim();\n pendingUserTranscriptRef.current = '';\n\n const activeLocale = locale || 'en-US';\n\n const channelId = hotelId || chainId;\n if (channelId) {\n try {\n const chatId = await ensureChatId({\n fingerprint,\n channelId,\n session: { locale: activeLocale },\n });\n if (chatId) {\n await createChatMessage({ author: 'user', body: input, chatId, meta: { audio: true } });\n await createChatMessage({ author: 'ai', body: transcript, chatId, meta: { audio: true } });\n }\n } catch (error) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: error?.message });\n }\n }\n\n Event.publish(EVENT.METRICS, {\n id: 'SYNAPSE_RESPONSE',\n fingerprint,\n text: transcript,\n input,\n agent: 'aura',\n locale: activeLocale,\n });\n }\n });\n\n const offer = await peerConnection.createOffer();\n await peerConnection.setLocalDescription(offer);\n\n const sdpResponse = await fetch('https://api.openai.com/v1/realtime/calls', {\n method: 'POST',\n body: offer.sdp,\n headers: {\n Authorization: `Bearer ${ephemeralKey}`,\n 'Content-Type': 'application/sdp',\n },\n });\n\n if (!sdpResponse.ok) throw new Error('Failed to establish OpenAI Realtime session');\n\n const answer = { type: 'answer', sdp: await sdpResponse.text() };\n\n await peerConnection.setRemoteDescription(answer);\n setReady(true);\n } catch (error) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: error?.message });\n setReady(false);\n throw error;\n } finally {\n setIsConnecting(false);\n }\n },\n [\n cleanupRealtimeSession,\n clearPendingFollowup,\n clearPendingMcp,\n enableMicrophone,\n handleMcpCompletion,\n handleMcpFailure,\n handleOpenUrlCalls,\n resumeMcpIfNeeded,\n scheduleResumeRetry,\n sendPendingFollowup,\n sendItemRetrieve,\n sendMcpApproval,\n trackMcpStart,\n upsertFunctionCall,\n getFunctionCallKey,\n ],\n );\n\n const endSession = useCallback(() => {\n cleanupRealtimeSession(true);\n }, [cleanupRealtimeSession]);\n\n return { startSession, endSession, audioAnalyzers: audioAnalyzersRef.current };\n};\n\nexport { useOpenAiRealtimeSession };\n"],"mappings":"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","ignoreList":[]}
@@ -49,7 +49,7 @@ const extractAudioDelta = payload => {
49
49
  // xAI docs show response.output_audio.delta with delta: { type: 'audio_delta', audio: 'base64' }.
50
50
  // Stay defensive in case the server returns a plain string in delta or a top-level audio field.
51
51
  if (typeof (payload === null || payload === void 0 ? void 0 : payload.delta) === 'string') return payload.delta;
52
- if (typeof (payload === null || payload === void 0 ? void 0 : (_payload$delta = payload.delta) === null || _payload$delta === void 0 ? void 0 : _payload$delta.audio) === 'string') return payload.delta.audio;
52
+ if (typeof (payload === null || payload === void 0 || (_payload$delta = payload.delta) === null || _payload$delta === void 0 ? void 0 : _payload$delta.audio) === 'string') return payload.delta.audio;
53
53
  if (typeof (payload === null || payload === void 0 ? void 0 : payload.audio) === 'string') return payload.audio;
54
54
  return null;
55
55
  };
@@ -173,10 +173,8 @@ const useXaiRealtimeSession = () => {
173
173
  return true;
174
174
  }, []);
175
175
  const sendIntro = (0, _react.useCallback)(_ref => {
176
- let {
177
- assistantName,
178
- locale
179
- } = _ref;
176
+ let assistantName = _ref.assistantName,
177
+ locale = _ref.locale;
180
178
  if (introSentRef.current) return;
181
179
  const localeHint = locale || 'en-US';
182
180
  const text = "Respond in the language that matches the locale code \"".concat(localeHint, "\". Introduce yourself using the following sentence, translated into that language: \"Hello, I am ").concat(assistantName, ", your virtual assistant. I can help you with information about our services and facilities. What would you like to know today?\"");
@@ -198,9 +196,7 @@ const useXaiRealtimeSession = () => {
198
196
  }, [sendJson]);
199
197
  const handleFunctionCall = (0, _react.useCallback)(payload => {
200
198
  var _parsed;
201
- const {
202
- name
203
- } = payload;
199
+ const name = payload.name;
204
200
  const callId = payload.call_id;
205
201
  if (name !== 'open_url' || !callId) return;
206
202
  if (handledOpenUrlCallsRef.current.has(callId)) return;
@@ -234,12 +230,10 @@ const useXaiRealtimeSession = () => {
234
230
  window.location.assign(url.trim());
235
231
  }, [cleanupSession, sendJson]);
236
232
  const persistTranscriptPair = (0, _react.useCallback)(async _ref2 => {
237
- let {
238
- fingerprint,
239
- hotelId,
240
- locale,
241
- transcript
242
- } = _ref2;
233
+ let fingerprint = _ref2.fingerprint,
234
+ hotelId = _ref2.hotelId,
235
+ locale = _ref2.locale,
236
+ transcript = _ref2.transcript;
243
237
  if (!transcript || !pendingUserTranscriptRef.current) return;
244
238
  const input = pendingUserTranscriptRef.current.trim();
245
239
  pendingUserTranscriptRef.current = '';
@@ -288,16 +282,14 @@ const useXaiRealtimeSession = () => {
288
282
  });
289
283
  }, []);
290
284
  const startSession = (0, _react.useCallback)(async _ref3 => {
291
- let {
292
- assistant_name,
293
- chainId,
294
- currency,
295
- hotelId,
296
- isChain,
297
- locale,
298
- setIsConnecting,
299
- setReady
300
- } = _ref3;
285
+ let assistant_name = _ref3.assistant_name,
286
+ chainId = _ref3.chainId,
287
+ currency = _ref3.currency,
288
+ hotelId = _ref3.hotelId,
289
+ isChain = _ref3.isChain,
290
+ locale = _ref3.locale,
291
+ setIsConnecting = _ref3.setIsConnecting,
292
+ setReady = _ref3.setReady;
301
293
  cleanupSession();
302
294
  const fingerprint = (0, _helpers2.getClientFingerprint)();
303
295
  const finalizeSession = error => {