@mirai/core 0.4.490 → 0.4.492
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.
- package/build/components/Chat/Chat.js +2 -2
- package/build/components/Chat/Chat.js.map +1 -1
- package/build/components/Chat/components/Aura/Aura.js +5 -5
- package/build/components/Chat/components/Aura/Aura.js.map +1 -1
- package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js +8 -4
- package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js.map +1 -1
- package/build/components/Chat/components/Message/Message.js +6 -2
- package/build/components/Chat/components/Message/Message.js.map +1 -1
- package/build/components/Chat/components/Message/helpers/index.js +11 -0
- package/build/components/Chat/components/Message/helpers/index.js.map +1 -1
- package/build/components/Chat/components/Message/helpers/resolveInnerUrl.js +31 -0
- package/build/components/Chat/components/Message/helpers/resolveInnerUrl.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/ButtonPayment.js +4 -3
- package/build/components/__shared__/ButtonPayment/ButtonPayment.js.map +1 -1
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.constants.js +9 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.constants.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.js +259 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.l10n.js +35 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.l10n.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/FormHotelpay.module.css +36 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/getStyle.js +17 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/getStyle.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/index.js +13 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/helpers/index.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/index.js +17 -0
- package/build/components/__shared__/ButtonPayment/components/FormHotelpay/index.js.map +1 -0
- package/build/components/__shared__/ButtonPayment/components/index.js +11 -0
- package/build/components/__shared__/ButtonPayment/components/index.js.map +1 -1
- package/build/components/__shared__/ButtonPayment/helpers/constants.js +2 -1
- package/build/components/__shared__/ButtonPayment/helpers/constants.js.map +1 -1
- package/build/components/helpers/constants.js +1 -0
- package/build/components/helpers/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -48,7 +48,7 @@ const Chat = _ref => {
|
|
|
48
48
|
skeleton = false,
|
|
49
49
|
type,
|
|
50
50
|
urlParams: {
|
|
51
|
-
|
|
51
|
+
synapse = 'v1'
|
|
52
52
|
} = {}
|
|
53
53
|
} = {}
|
|
54
54
|
} = (0, _dataSources.useStore)();
|
|
@@ -89,7 +89,7 @@ const Chat = _ref => {
|
|
|
89
89
|
context,
|
|
90
90
|
input,
|
|
91
91
|
session,
|
|
92
|
-
mcp:
|
|
92
|
+
mcp: synapse === 'v2'
|
|
93
93
|
}).catch(() => {});
|
|
94
94
|
if (response) {
|
|
95
95
|
setMessages([...nextMessages, _objectSpread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_Aura","_helpers","_Core","_helpers2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Chat","_ref","others","translate","useLocale","isMobile","useDevice","assistant","calendar","components","currency","hotel","id","locale","occupation","origin","session","skeleton","type","urlParams","mcp","useStore","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","busy","setBusy","useState","inputMode","setInputMode","messages","setMessages","visible","setVisible","handleInput","input","shortcutMessage","undefined","nextMessages","text","timestamp","Date","getTime","setTimeout","context","TYPE","CHAIN","process","env","NODE_ENV","chain","response","ServiceSynapse","message","catch","synapse","audioNotification","DELAY_RESPONSE","handleInputMode","next","publish","METRICS","concat","toUpperCase","INPUT_MODE","WHATSAPP","handleClose","source","SARAI_SOURCE","CHAT_OPENED","event","isReady","every","item","BANNED_COMPONENTS","includes","enabled","entities","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","Welcome","onInputMode","TEXT","ScrollView","scrollTo","snap","map","index","Message","key","disabled","Input","onValue","AUDIO","Aura","onCallEnd","RATING","Rating","onRejoin","onReturnHome","Text","light","tiny","warning","L10N","LABEL_WARNING_RESPONSES","name","DEFAULT_NAME","ButtonDispatcher","onPress","exports"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DEFAULT_NAME, DELAY_RESPONSE, INPUT_MODE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Rating, Welcome } from './components';\nimport { Aura } from './components/Aura/Aura';\nimport { audioNotification } from './helpers';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT } from '../helpers';\n\nconst Chat = ({ ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n assistant = {},\n calendar,\n components = {},\n currency,\n hotel,\n id,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams: { mcp } = {},\n } = {},\n } = useStore();\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n }, [skeleton]);\n\n const [busy, setBusy] = useState(false);\n const [inputMode, setInputMode] = useState();\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if (type === TYPE.CHAIN || (process.env.NODE_ENV === 'preproduction' && id === '100379008')) {\n context.chain = { id: process.env.NODE_ENV === 'preproduction' && id === '100379008' ? '500659' : id };\n }\n if (hotel.id) context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: mcp === 'true',\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleInputMode = (next) => {\n Event.publish(EVENT.METRICS, { id: `SARAI:INPUT_MODE:${next.toUpperCase()}` });\n if (next === INPUT_MODE.WHATSAPP) return handleClose();\n setInputMode(next);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: 'SARAI:OPEN' });\n };\n\n const handleClose = () => {\n Event.publish(EVENT.METRICS, { id: 'SARAI:CLOSE' });\n setVisible(false);\n setInputMode();\n };\n\n const isReady =\n !skeleton && Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) && assistant.enabled;\n const { entities = {} } = messages[messages.length - 1] || {};\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header onClose={handleClose} />\n\n {!inputMode ? (\n <Welcome onInputMode={handleInputMode} />\n ) : inputMode === INPUT_MODE.TEXT ? (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input disabled={busy} entities={entities} onValue={handleInput} className={style.input} />\n </>\n ) : inputMode === INPUT_MODE.AUDIO ? (\n <Aura onCallEnd={() => setInputMode(INPUT_MODE.RATING)} />\n ) : inputMode === INPUT_MODE.RATING ? (\n <Rating onRejoin={() => setInputMode(INPUT_MODE.AUDIO)} onReturnHome={handleClose} />\n ) : null}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_WARNING_RESPONSES, { name: assistant.name || DEFAULT_NAME })}\n </Text>\n </Modal>\n\n <ButtonDispatcher visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nexport { Chat };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_Aura","_helpers","_Core","_helpers2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectDestructuringEmpty","_extends","assign","bind","Chat","_ref","others","translate","useLocale","isMobile","useDevice","assistant","calendar","components","currency","hotel","id","locale","occupation","origin","session","skeleton","type","urlParams","synapse","useStore","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","busy","setBusy","useState","inputMode","setInputMode","messages","setMessages","visible","setVisible","handleInput","input","shortcutMessage","undefined","nextMessages","text","timestamp","Date","getTime","setTimeout","context","TYPE","CHAIN","process","env","NODE_ENV","chain","response","ServiceSynapse","message","mcp","catch","audioNotification","DELAY_RESPONSE","handleInputMode","next","publish","METRICS","concat","toUpperCase","INPUT_MODE","WHATSAPP","handleClose","source","SARAI_SOURCE","CHAT_OPENED","event","isReady","every","item","BANNED_COMPONENTS","includes","enabled","entities","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","Welcome","onInputMode","TEXT","ScrollView","scrollTo","snap","map","index","Message","key","disabled","Input","onValue","AUDIO","Aura","onCallEnd","RATING","Rating","onRejoin","onReturnHome","Text","light","tiny","warning","L10N","LABEL_WARNING_RESPONSES","name","DEFAULT_NAME","ButtonDispatcher","onPress","exports"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DEFAULT_NAME, DELAY_RESPONSE, INPUT_MODE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Rating, Welcome } from './components';\nimport { Aura } from './components/Aura/Aura';\nimport { audioNotification } from './helpers';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT } from '../helpers';\n\nconst Chat = ({ ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n assistant = {},\n calendar,\n components = {},\n currency,\n hotel,\n id,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams: { synapse = 'v1' } = {},\n } = {},\n } = useStore();\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n }, [skeleton]);\n\n const [busy, setBusy] = useState(false);\n const [inputMode, setInputMode] = useState();\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n setTimeout(async () => {\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if (type === TYPE.CHAIN || (process.env.NODE_ENV === 'preproduction' && id === '100379008')) {\n context.chain = { id: process.env.NODE_ENV === 'preproduction' && id === '100379008' ? '500659' : id };\n }\n if (hotel.id) context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: synapse === 'v2',\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleInputMode = (next) => {\n Event.publish(EVENT.METRICS, { id: `SARAI:INPUT_MODE:${next.toUpperCase()}` });\n if (next === INPUT_MODE.WHATSAPP) return handleClose();\n setInputMode(next);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: 'SARAI:OPEN' });\n };\n\n const handleClose = () => {\n Event.publish(EVENT.METRICS, { id: 'SARAI:CLOSE' });\n setVisible(false);\n setInputMode();\n };\n\n const isReady =\n !skeleton && Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) && assistant.enabled;\n const { entities = {} } = messages[messages.length - 1] || {};\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header onClose={handleClose} />\n\n {!inputMode ? (\n <Welcome onInputMode={handleInputMode} />\n ) : inputMode === INPUT_MODE.TEXT ? (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input disabled={busy} entities={entities} onValue={handleInput} className={style.input} />\n </>\n ) : inputMode === INPUT_MODE.AUDIO ? (\n <Aura onCallEnd={() => setInputMode(INPUT_MODE.RATING)} />\n ) : inputMode === INPUT_MODE.RATING ? (\n <Rating onRejoin={() => setInputMode(INPUT_MODE.AUDIO)} onReturnHome={handleClose} />\n ) : null}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_WARNING_RESPONSES, { name: assistant.name || DEFAULT_NAME })}\n </Text>\n </Modal>\n\n <ButtonDispatcher visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nexport { Chat };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,7 +43,7 @@ const Aura = _ref => {
|
|
|
43
43
|
locale,
|
|
44
44
|
type,
|
|
45
45
|
urlParams: {
|
|
46
|
-
|
|
46
|
+
synapse = 'v1'
|
|
47
47
|
} = {}
|
|
48
48
|
} = {}
|
|
49
49
|
} = (0, _dataSources.useStore)();
|
|
@@ -60,7 +60,7 @@ const Aura = _ref => {
|
|
|
60
60
|
_dataSources.Event.subscribe(_helpers2.EVENT.SARAI_MESSAGE_SENT, callback);
|
|
61
61
|
return () => {
|
|
62
62
|
_dataSources.Event.unsubscribe(_helpers2.EVENT.SARAI_MESSAGE_SENT, callback);
|
|
63
|
-
if (
|
|
63
|
+
if (synapse === 'v2') callback();
|
|
64
64
|
};
|
|
65
65
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
66
66
|
}, [conversation, ready]);
|
|
@@ -88,7 +88,7 @@ const Aura = _ref => {
|
|
|
88
88
|
}
|
|
89
89
|
setIsConnecting(true);
|
|
90
90
|
try {
|
|
91
|
-
if (
|
|
91
|
+
if (synapse === 'v2') {
|
|
92
92
|
await startSession({
|
|
93
93
|
assistant_name,
|
|
94
94
|
chainId,
|
|
@@ -142,7 +142,7 @@ const Aura = _ref => {
|
|
|
142
142
|
}
|
|
143
143
|
};
|
|
144
144
|
const handleCallEnd = () => {
|
|
145
|
-
if (
|
|
145
|
+
if (synapse === 'v2') endSession();else conversation.endSession();
|
|
146
146
|
setReady(false);
|
|
147
147
|
onCallEnd();
|
|
148
148
|
_dataSources.Event.publish(_helpers2.EVENT.METRICS, {
|
|
@@ -151,7 +151,7 @@ const Aura = _ref => {
|
|
|
151
151
|
};
|
|
152
152
|
return !(!context && !(type === _Core.TYPE.CHAIN && !hotel.id)) ? /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement(_Aura2.Waveform, {
|
|
153
153
|
active: ready,
|
|
154
|
-
conversation:
|
|
154
|
+
conversation: synapse === 'v2' ? audioAnalyzers : conversation
|
|
155
155
|
}), /*#__PURE__*/_react2.default.createElement(_ui.View, {
|
|
156
156
|
className: style.footer
|
|
157
157
|
}, isConnecting && /*#__PURE__*/_react2.default.createElement(_ui.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aura.js","names":["_react","require","_dataSources","_locale","_ui","_propTypes","_interopRequireDefault","_react2","_interopRequireWildcard","_Aura","style","_Aura2","_helpers","_useOpenAiRealtimeSession","_Core","_helpers2","_Chat","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Aura","_ref","onCallEnd","conversation","useConversation","startSession","endSession","audioAnalyzers","useOpenAiRealtimeSession","assistant","hotel","id","locale","type","urlParams","openai","useStore","translate","useLocale","context","setContext","useState","isConnecting","setIsConnecting","ready","setReady","useEffect","callback","handleCallEnd","Event","subscribe","EVENT","SARAI_MESSAGE_SENT","unsubscribe","TYPE","CHAIN","hotelId","handleCallStart","name","assistant_name","isChain","chainId","undefined","navigator","mediaDevices","publish","METRICS","getUserMedia","audio","sessionConfig","clientTools","open_url","toolOpenUrl","dynamicVariables","chain_id","overrides","agent","language","split","signedUrl","getSignedUrl","onConnect","onDisconnect","onError","error","message","createElement","Fragment","Waveform","active","View","className","footer","Text","action","L10N","LABEL_CALLING","DEFAULT_NAME","Button","busy","rounded","squared","large","tooltip","LABEL_HANG_UP","onPress","styles","button","Icon","ICON","HANG_UP","exports","displayName","propTypes","PropTypes","func"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { useConversation } from '@elevenlabs/react';\nimport { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './Aura.l10n';\nimport * as style from './Aura.module.css';\nimport { Waveform } from './Aura.waveform';\nimport { getSignedUrl, toolOpenUrl } from './helpers';\nimport { useOpenAiRealtimeSession } from './hooks/useOpenAiRealtimeSession';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\n\nconst Aura = ({ onCallEnd = () => {} }) => {\n const conversation = useConversation();\n const { startSession, endSession, audioAnalyzers } = useOpenAiRealtimeSession();\n const { value: { assistant = {}, hotel = {}, id, locale, type, urlParams: { openai } = {} } = {} } = useStore();\n const { translate } = useLocale();\n\n const [context, setContext] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const callback = async () => {\n if (ready) handleCallEnd();\n };\n\n Event.subscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n return () => {\n Event.unsubscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n if (openai === 'true') callback();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversation, ready]);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotel.id) return;\n\n setContext({ hotelId: hotel.id });\n }, [hotel.id, type]);\n\n useEffect(() => {\n handleCallStart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context]);\n\n const handleCallStart = async () => {\n const { name: assistant_name = 'Sarai' } = assistant;\n const isChain = type === TYPE.CHAIN && !hotel.id;\n const chainId = isChain ? id : undefined;\n\n if (!navigator.mediaDevices || !conversation || (!context && !chainId)) {\n Event.publish(EVENT.METRICS, { id: 'AURA:ERROR' });\n return;\n }\n\n setIsConnecting(true);\n try {\n if (openai === 'true') {\n await startSession({\n assistant_name,\n chainId,\n hotelId: context?.hotelId,\n isChain,\n locale,\n setIsConnecting,\n setReady,\n });\n return;\n }\n\n await navigator.mediaDevices.getUserMedia({ audio: true });\n\n const sessionConfig = {\n clientTools: { open_url: toolOpenUrl },\n dynamicVariables: { assistant_name, ...(chainId ? { chain_id: chainId } : { hotelId: context.hotelId }) },\n overrides: { agent: { language: locale.split('-')[0] } },\n signedUrl: await getSignedUrl(!!chainId),\n onConnect: () => {\n Event.publish(EVENT.METRICS, { id: 'AURA:START' });\n setIsConnecting(false);\n setReady(true);\n },\n onDisconnect: handleCallEnd,\n onError: (error) => {\n setIsConnecting(false);\n Event.publish(EVENT.METRICS, { id: 'AURA:ERROR', error: error?.message });\n },\n };\n\n await conversation.startSession(sessionConfig);\n } catch (error) {\n setIsConnecting(false);\n }\n };\n\n const handleCallEnd = () => {\n if (openai === 'true') endSession();\n else conversation.endSession();\n setReady(false);\n onCallEnd();\n Event.publish(EVENT.METRICS, { id: 'AURA:CALL_END' });\n };\n\n return !(!context && !(type === TYPE.CHAIN && !hotel.id)) ? (\n <>\n <Waveform active={ready} conversation={openai === 'true' ? audioAnalyzers : conversation} />\n <View className={style.footer}>\n {isConnecting && <Text action>{translate(L10N.LABEL_CALLING, { name: assistant.name || DEFAULT_NAME })}</Text>}\n <Button\n busy={isConnecting}\n rounded\n squared\n large\n tooltip={translate(L10N.LABEL_HANG_UP)}\n onPress={handleCallEnd}\n className={styles(style.button, ready && style.ready)}\n >\n <Icon value={ICON.HANG_UP} />\n </Button>\n </View>\n </>\n ) : null;\n};\n\nAura.displayName = 'Mirai:Core:Chat.Aura';\n\nAura.propTypes = {\n onCallEnd: PropTypes.func,\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Aura.js","names":["_react","require","_dataSources","_locale","_ui","_propTypes","_interopRequireDefault","_react2","_interopRequireWildcard","_Aura","style","_Aura2","_helpers","_useOpenAiRealtimeSession","_Core","_helpers2","_Chat","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Aura","_ref","onCallEnd","conversation","useConversation","startSession","endSession","audioAnalyzers","useOpenAiRealtimeSession","assistant","hotel","id","locale","type","urlParams","synapse","useStore","translate","useLocale","context","setContext","useState","isConnecting","setIsConnecting","ready","setReady","useEffect","callback","handleCallEnd","Event","subscribe","EVENT","SARAI_MESSAGE_SENT","unsubscribe","TYPE","CHAIN","hotelId","handleCallStart","name","assistant_name","isChain","chainId","undefined","navigator","mediaDevices","publish","METRICS","getUserMedia","audio","sessionConfig","clientTools","open_url","toolOpenUrl","dynamicVariables","chain_id","overrides","agent","language","split","signedUrl","getSignedUrl","onConnect","onDisconnect","onError","error","message","createElement","Fragment","Waveform","active","View","className","footer","Text","action","L10N","LABEL_CALLING","DEFAULT_NAME","Button","busy","rounded","squared","large","tooltip","LABEL_HANG_UP","onPress","styles","button","Icon","ICON","HANG_UP","exports","displayName","propTypes","PropTypes","func"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { useConversation } from '@elevenlabs/react';\nimport { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { L10N } from './Aura.l10n';\nimport * as style from './Aura.module.css';\nimport { Waveform } from './Aura.waveform';\nimport { getSignedUrl, toolOpenUrl } from './helpers';\nimport { useOpenAiRealtimeSession } from './hooks/useOpenAiRealtimeSession';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\n\nconst Aura = ({ onCallEnd = () => {} }) => {\n const conversation = useConversation();\n const { startSession, endSession, audioAnalyzers } = useOpenAiRealtimeSession();\n const { value: { assistant = {}, hotel = {}, id, locale, type, urlParams: { synapse = 'v1' } = {} } = {} } =\n useStore();\n const { translate } = useLocale();\n\n const [context, setContext] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const callback = async () => {\n if (ready) handleCallEnd();\n };\n\n Event.subscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n return () => {\n Event.unsubscribe(EVENT.SARAI_MESSAGE_SENT, callback);\n if (synapse === 'v2') callback();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [conversation, ready]);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotel.id) return;\n\n setContext({ hotelId: hotel.id });\n }, [hotel.id, type]);\n\n useEffect(() => {\n handleCallStart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context]);\n\n const handleCallStart = async () => {\n const { name: assistant_name = 'Sarai' } = assistant;\n const isChain = type === TYPE.CHAIN && !hotel.id;\n const chainId = isChain ? id : undefined;\n\n if (!navigator.mediaDevices || !conversation || (!context && !chainId)) {\n Event.publish(EVENT.METRICS, { id: 'AURA:ERROR' });\n return;\n }\n\n setIsConnecting(true);\n try {\n if (synapse === 'v2') {\n await startSession({\n assistant_name,\n chainId,\n hotelId: context?.hotelId,\n isChain,\n locale,\n setIsConnecting,\n setReady,\n });\n return;\n }\n\n await navigator.mediaDevices.getUserMedia({ audio: true });\n\n const sessionConfig = {\n clientTools: { open_url: toolOpenUrl },\n dynamicVariables: { assistant_name, ...(chainId ? { chain_id: chainId } : { hotelId: context.hotelId }) },\n overrides: { agent: { language: locale.split('-')[0] } },\n signedUrl: await getSignedUrl(!!chainId),\n onConnect: () => {\n Event.publish(EVENT.METRICS, { id: 'AURA:START' });\n setIsConnecting(false);\n setReady(true);\n },\n onDisconnect: handleCallEnd,\n onError: (error) => {\n setIsConnecting(false);\n Event.publish(EVENT.METRICS, { id: 'AURA:ERROR', error: error?.message });\n },\n };\n\n await conversation.startSession(sessionConfig);\n } catch (error) {\n setIsConnecting(false);\n }\n };\n\n const handleCallEnd = () => {\n if (synapse === 'v2') endSession();\n else conversation.endSession();\n setReady(false);\n onCallEnd();\n Event.publish(EVENT.METRICS, { id: 'AURA:CALL_END' });\n };\n\n return !(!context && !(type === TYPE.CHAIN && !hotel.id)) ? (\n <>\n <Waveform active={ready} conversation={synapse === 'v2' ? audioAnalyzers : conversation} />\n <View className={style.footer}>\n {isConnecting && <Text action>{translate(L10N.LABEL_CALLING, { name: assistant.name || DEFAULT_NAME })}</Text>}\n <Button\n busy={isConnecting}\n rounded\n squared\n large\n tooltip={translate(L10N.LABEL_HANG_UP)}\n onPress={handleCallEnd}\n className={styles(style.button, ready && style.ready)}\n >\n <Icon value={ICON.HANG_UP} />\n </Button>\n </View>\n </>\n ) : null;\n};\n\nAura.displayName = 'Mirai:Core:Chat.Aura';\n\nAura.propTypes = {\n onCallEnd: PropTypes.func,\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -174,7 +174,7 @@ const useOpenAiRealtimeSession = () => {
|
|
|
174
174
|
dataChannel.send(JSON.stringify({
|
|
175
175
|
type: 'response.create',
|
|
176
176
|
response: {
|
|
177
|
-
|
|
177
|
+
response_id: payload.response_id
|
|
178
178
|
}
|
|
179
179
|
}));
|
|
180
180
|
}
|
|
@@ -222,12 +222,16 @@ const useOpenAiRealtimeSession = () => {
|
|
|
222
222
|
sdp: await sdpResponse.text()
|
|
223
223
|
};
|
|
224
224
|
await peerConnection.setRemoteDescription(answer);
|
|
225
|
-
|
|
225
|
+
setReady(true);
|
|
226
|
+
} catch (error) {
|
|
226
227
|
_dataSources.Event.publish(_helpers.EVENT.METRICS, {
|
|
227
|
-
id: 'AURA:ERROR'
|
|
228
|
+
id: 'AURA:ERROR',
|
|
229
|
+
error: error === null || error === void 0 ? void 0 : error.message
|
|
228
230
|
});
|
|
231
|
+
setReady(false);
|
|
232
|
+
throw error;
|
|
233
|
+
} finally {
|
|
229
234
|
setIsConnecting(false);
|
|
230
|
-
setReady(true);
|
|
231
235
|
}
|
|
232
236
|
}, [cleanupRealtimeSession]);
|
|
233
237
|
const endSession = (0, _react.useCallback)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOpenAiRealtimeSession.js","names":["_dataSources","require","_react","_helpers","useOpenAiRealtimeSession","audioElementRef","useRef","audioContextRef","peerConnectionRef","dataChannelRef","localStreamRef","pendingUserTranscriptRef","inputSourceRef","outputSourceRef","inputFrequencyDataRef","outputFrequencyDataRef","audioAnalyzersRef","inputAnalyser","outputAnalyser","getInputByteFrequencyData","getOutputByteFrequencyData","cleanupRealtimeSession","useCallback","shouldSignal","arguments","length","undefined","dataChannel","current","readyState","send","JSON","stringify","type","close","peerConnection","getSenders","forEach","sender","track","stop","localStream","getTracks","srcObject","disconnect","audioContext","startSession","_ref","assistant_name","chainId","hotelId","isChain","locale","setIsConnecting","setReady","fingerprint","localStorage","getItem","sessionResponse","request","endpoint","concat","hostname","process","env","SERVICE_SYNAPSE","method","ephemeralKey","value","RTCPeerConnection","document","createElement","autoplay","ontrack","event","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","addEventListener","Event","publish","EVENT","METRICS","id","localeHint","introductionMessage","response","instructions","_payload$item","payload","parse","data","item","name","url","window","location","href","_payload$transcript","transcript","trim","_payload$transcript2","input","activeLocale","text","agent","offer","createOffer","setLocalDescription","sdpResponse","fetch","body","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 } from '../../../../helpers';\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 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 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 startSession = useCallback(\n async ({ assistant_name, chainId, hotelId, isChain, locale, setIsConnecting, setReady }) => {\n cleanupRealtimeSession();\n\n const fingerprint = localStorage.getItem('MIRAI:FINGERPRINT');\n\n try {\n const sessionResponse = await request({\n endpoint: `/audio/session?fingerprint=${fingerprint}&hotelId=${isChain ? '' : hotelId ?? ''}&chainId=${\n isChain ? chainId ?? '' : ''\n }`,\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\n audioElementRef.current = document.createElement('audio');\n audioElementRef.current.autoplay = true;\n peerConnection.ontrack = (event) => {\n // eslint-disable-next-line prefer-destructuring\n audioElementRef.current.srcObject = event.streams[0];\n const [remoteStream] = event.streams;\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 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\n dataChannel.addEventListener('open', () => {\n pendingUserTranscriptRef.current = '';\n Event.publish(EVENT.METRICS, { id: '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 dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n instructions: introductionMessage,\n },\n }),\n );\n });\n\n dataChannel.addEventListener('message', (event) => {\n const payload = JSON.parse(event.data);\n\n if (payload.type === 'response.output_item.done' && payload.item?.type === 'mcp_call') {\n dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n instructions: 'Response to the user',\n },\n }),\n );\n }\n\n if (payload.type === 'response.function_call_arguments.done' && payload.name === 'open_url') {\n const { url } = JSON.parse(payload.arguments);\n window.location.href = url;\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.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 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 } finally {\n Event.publish(EVENT.METRICS, { id: 'AURA:ERROR' });\n setIsConnecting(false);\n setReady(true);\n }\n },\n [cleanupRealtimeSession],\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":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAMC,eAAe,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EACpC,MAAMC,eAAe,GAAG,IAAAD,aAAM,EAAC,IAAI,CAAC;EACpC,MAAME,iBAAiB,GAAG,IAAAF,aAAM,EAAC,IAAI,CAAC;EACtC,MAAMG,cAAc,GAAG,IAAAH,aAAM,EAAC,IAAI,CAAC;EACnC,MAAMI,cAAc,GAAG,IAAAJ,aAAM,EAAC,IAAI,CAAC;EACnC,MAAMK,wBAAwB,GAAG,IAAAL,aAAM,EAAC,EAAE,CAAC;EAC3C,MAAMM,cAAc,GAAG,IAAAN,aAAM,EAAC,IAAI,CAAC;EACnC,MAAMO,eAAe,GAAG,IAAAP,aAAM,EAAC,IAAI,CAAC;EACpC,MAAMQ,qBAAqB,GAAG,IAAAR,aAAM,EAAC,IAAI,CAAC;EAC1C,MAAMS,sBAAsB,GAAG,IAAAT,aAAM,EAAC,IAAI,CAAC;EAC3C,MAAMU,iBAAiB,GAAG,IAAAV,aAAM,EAAC;IAC/BW,aAAa,EAAE,IAAI;IACnBC,cAAc,EAAE,IAAI;IACpBC,yBAAyB,EAAEA,CAAA,KAAM,IAAI;IACrCC,0BAA0B,EAAEA,CAAA,KAAM;EACpC,CAAC,CAAC;EAEF,MAAMC,sBAAsB,GAAG,IAAAC,kBAAW,EAAC,YAA0B;IAAA,IAAzBC,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAC9D,MAAMG,WAAW,GAAGlB,cAAc,CAACmB,OAAO;IAC1C,IAAID,WAAW,EAAE;MACf,IAAIJ,YAAY,IAAII,WAAW,CAACE,UAAU,KAAK,MAAM,EAAE;QACrDF,WAAW,CAACG,IAAI,CAACC,IAAI,CAACC,SAAS,CAAC;UAAEC,IAAI,EAAE;QAAgB,CAAC,CAAC,CAAC;MAC7D;MACAN,WAAW,CAACO,KAAK,CAAC,CAAC;MACnBzB,cAAc,CAACmB,OAAO,GAAG,IAAI;IAC/B;IAEA,MAAMO,cAAc,GAAG3B,iBAAiB,CAACoB,OAAO;IAChD,IAAIO,cAAc,EAAE;MAClBA,cAAc,CAACC,UAAU,CAAC,CAAC,CAACC,OAAO,CAAEC,MAAM,IAAK;QAC9C,IAAIA,MAAM,CAACC,KAAK,EAAED,MAAM,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;MACvC,CAAC,CAAC;MACFL,cAAc,CAACD,KAAK,CAAC,CAAC;MACtB1B,iBAAiB,CAACoB,OAAO,GAAG,IAAI;IAClC;IAEA,MAAMa,WAAW,GAAG/B,cAAc,CAACkB,OAAO;IAC1C,IAAIa,WAAW,EAAE;MACfA,WAAW,CAACC,SAAS,CAAC,CAAC,CAACL,OAAO,CAAEE,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC;MACxD9B,cAAc,CAACkB,OAAO,GAAG,IAAI;IAC/B;IAEA,IAAIvB,eAAe,CAACuB,OAAO,EAAE;MAC3BvB,eAAe,CAACuB,OAAO,CAACe,SAAS,GAAG,IAAI;MACxCtC,eAAe,CAACuB,OAAO,GAAG,IAAI;IAChC;IAEA,IAAIhB,cAAc,CAACgB,OAAO,EAAE;MAC1BhB,cAAc,CAACgB,OAAO,CAACgB,UAAU,CAAC,CAAC;MACnChC,cAAc,CAACgB,OAAO,GAAG,IAAI;IAC/B;IAEA,IAAIf,eAAe,CAACe,OAAO,EAAE;MAC3Bf,eAAe,CAACe,OAAO,CAACgB,UAAU,CAAC,CAAC;MACpC/B,eAAe,CAACe,OAAO,GAAG,IAAI;IAChC;IAEAZ,iBAAiB,CAACY,OAAO,CAACX,aAAa,GAAG,IAAI;IAC9CD,iBAAiB,CAACY,OAAO,CAACV,cAAc,GAAG,IAAI;IAC/CF,iBAAiB,CAACY,OAAO,CAACT,yBAAyB,GAAG,MAAM,IAAI;IAChEH,iBAAiB,CAACY,OAAO,CAACR,0BAA0B,GAAG,MAAM,IAAI;IACjEN,qBAAqB,CAACc,OAAO,GAAG,IAAI;IACpCb,sBAAsB,CAACa,OAAO,GAAG,IAAI;IAErC,MAAMiB,YAAY,GAAGtC,eAAe,CAACqB,OAAO;IAC5C,IAAIiB,YAAY,EAAE;MAChBA,YAAY,CAACX,KAAK,CAAC,CAAC;MACpB3B,eAAe,CAACqB,OAAO,GAAG,IAAI;IAChC;IAEAjB,wBAAwB,CAACiB,OAAO,GAAG,EAAE;EACvC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkB,YAAY,GAAG,IAAAxB,kBAAW,EAC9B,MAAAyB,IAAA,IAA4F;IAAA,IAArF;MAAEC,cAAc;MAAEC,OAAO;MAAEC,OAAO;MAAEC,OAAO;MAAEC,MAAM;MAAEC,eAAe;MAAEC;IAAS,CAAC,GAAAP,IAAA;IACrF1B,sBAAsB,CAAC,CAAC;IAExB,MAAMkC,WAAW,GAAGC,YAAY,CAACC,OAAO,CAAC,mBAAmB,CAAC;IAE7D,IAAI;MACF,MAAMC,eAAe,GAAG,MAAM,IAAAC,oBAAO,EAAC;QACpCC,QAAQ,gCAAAC,MAAA,CAAgCN,WAAW,eAAAM,MAAA,CAAYV,OAAO,GAAG,EAAE,GAAGD,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE,eAAAW,MAAA,CACzFV,OAAO,GAAGF,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE,GAAG,EAAE,CAC5B;QACFa,QAAQ,EAAEC,OAAO,CAACC,GAAG,CAACC,eAAe;QACrCC,MAAM,EAAE;MACV,CAAC,CAAC;MAEF,MAAMC,YAAY,GAAGT,eAAe,CAACU,KAAK;MAC1C,MAAMjC,cAAc,GAAG,IAAIkC,iBAAiB,CAAC,CAAC;MAC9C7D,iBAAiB,CAACoB,OAAO,GAAGO,cAAc;MAE1C9B,eAAe,CAACuB,OAAO,GAAG0C,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MACzDlE,eAAe,CAACuB,OAAO,CAAC4C,QAAQ,GAAG,IAAI;MACvCrC,cAAc,CAACsC,OAAO,GAAIC,KAAK,IAAK;QAClC;QACArE,eAAe,CAACuB,OAAO,CAACe,SAAS,GAAG+B,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC;QACpD,MAAM,CAACC,YAAY,CAAC,GAAGF,KAAK,CAACC,OAAO;QACpC,IAAI,CAACpE,eAAe,CAACqB,OAAO,IAAI,CAACZ,iBAAiB,CAACY,OAAO,CAACV,cAAc,IAAI,CAAC0D,YAAY,EAAE;QAC5F,IAAI/D,eAAe,CAACe,OAAO,EAAEf,eAAe,CAACe,OAAO,CAACgB,UAAU,CAAC,CAAC;QACjE/B,eAAe,CAACe,OAAO,GAAGrB,eAAe,CAACqB,OAAO,CAACiD,uBAAuB,CAACD,YAAY,CAAC;QACvF/D,eAAe,CAACe,OAAO,CAACkD,OAAO,CAAC9D,iBAAiB,CAACY,OAAO,CAACV,cAAc,CAAC;MAC3E,CAAC;MAED,MAAM6D,WAAW,GAAG,MAAMC,SAAS,CAACC,YAAY,CAACC,YAAY,CAAC;QAC5DC,KAAK,EAAE;UACLC,gBAAgB,EAAE,IAAI;UACtBC,gBAAgB,EAAE,IAAI;UACtBC,eAAe,EAAE,IAAI;UACrBC,YAAY,EAAE,CAAC;UACfC,UAAU,EAAE;QACd;MACF,CAAC,CAAC;MAEF9E,cAAc,CAACkB,OAAO,GAAGmD,WAAW;MACpC,MAAM,CAACxC,KAAK,CAAC,GAAGwC,WAAW,CAACU,cAAc,CAAC,CAAC;MAE5C,MAAMC,uBAAuB,GAAGC,UAAU,CAACC,YAAY,IAAID,UAAU,CAACE,kBAAkB;MACxF,IAAI,CAACH,uBAAuB,EAAE,MAAM,IAAII,KAAK,CAAC,4BAA4B,CAAC;MAC3E,MAAMjD,YAAY,GAAG,IAAI6C,uBAAuB,CAAC,CAAC;MAClDnF,eAAe,CAACqB,OAAO,GAAGiB,YAAY;MACtC,IAAIA,YAAY,CAACkD,KAAK,KAAK,WAAW,EAAE,MAAMlD,YAAY,CAACmD,MAAM,CAAC,CAAC;MACnE,MAAM/E,aAAa,GAAG4B,YAAY,CAACoD,cAAc,CAAC,CAAC;MACnD,MAAM/E,cAAc,GAAG2B,YAAY,CAACoD,cAAc,CAAC,CAAC;MACpDhF,aAAa,CAACiF,OAAO,GAAG,IAAI;MAC5BhF,cAAc,CAACgF,OAAO,GAAG,IAAI;MAC7BlF,iBAAiB,CAACY,OAAO,CAACX,aAAa,GAAGA,aAAa;MACvDD,iBAAiB,CAACY,OAAO,CAACV,cAAc,GAAGA,cAAc;MACzDJ,qBAAqB,CAACc,OAAO,GAAG,IAAIuE,UAAU,CAAClF,aAAa,CAACmF,iBAAiB,CAAC;MAC/ErF,sBAAsB,CAACa,OAAO,GAAG,IAAIuE,UAAU,CAACjF,cAAc,CAACkF,iBAAiB,CAAC;MACjFpF,iBAAiB,CAACY,OAAO,CAACT,yBAAyB,GAAG,MAAM;QAC1D,IAAI,CAACH,iBAAiB,CAACY,OAAO,CAACX,aAAa,IAAI,CAACH,qBAAqB,CAACc,OAAO,EAAE,OAAO,IAAI;QAC3FZ,iBAAiB,CAACY,OAAO,CAACX,aAAa,CAACoF,oBAAoB,CAACvF,qBAAqB,CAACc,OAAO,CAAC;QAC3F,OAAOd,qBAAqB,CAACc,OAAO;MACtC,CAAC;MACDZ,iBAAiB,CAACY,OAAO,CAACR,0BAA0B,GAAG,MAAM;QAC3D,IAAI,CAACJ,iBAAiB,CAACY,OAAO,CAACV,cAAc,IAAI,CAACH,sBAAsB,CAACa,OAAO,EAAE,OAAO,IAAI;QAC7FZ,iBAAiB,CAACY,OAAO,CAACV,cAAc,CAACmF,oBAAoB,CAACtF,sBAAsB,CAACa,OAAO,CAAC;QAC7F,OAAOb,sBAAsB,CAACa,OAAO;MACvC,CAAC;MAED,MAAM0E,WAAW,GAAGzD,YAAY,CAACgC,uBAAuB,CAACE,WAAW,CAAC;MACrEnE,cAAc,CAACgB,OAAO,GAAG0E,WAAW;MACpCA,WAAW,CAACxB,OAAO,CAAC7D,aAAa,CAAC;MAElC,IAAIsB,KAAK,EAAE;QACT,MAAMA,KAAK,CAACgE,gBAAgB,CAAC;UAC3BnB,gBAAgB,EAAE,IAAI;UACtBC,gBAAgB,EAAE,IAAI;UACtBC,eAAe,EAAE;QACnB,CAAC,CAAC;QACFnD,cAAc,CAACqE,QAAQ,CAACjE,KAAK,EAAEwC,WAAW,CAAC;MAC7C;MAEA,MAAMpD,WAAW,GAAGQ,cAAc,CAACsE,iBAAiB,CAAC,YAAY,CAAC;MAClEhG,cAAc,CAACmB,OAAO,GAAGD,WAAW;MAEpCA,WAAW,CAAC+E,gBAAgB,CAAC,MAAM,EAAE,MAAM;QACzC/F,wBAAwB,CAACiB,OAAO,GAAG,EAAE;QACrC+E,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,OAAO,EAAE;UAAEC,EAAE,EAAE;QAAa,CAAC,CAAC;QAElD,MAAMC,UAAU,GAAG5D,MAAM,IAAI,OAAO;QACpC,MAAM6D,mBAAmB,6DAAApD,MAAA,CAA4DmD,UAAU,wGAAAnD,MAAA,CAAmGb,cAAc,sIAAkI;QAElVrB,WAAW,CAACG,IAAI,CACdC,IAAI,CAACC,SAAS,CAAC;UACbC,IAAI,EAAE,iBAAiB;UACvBiF,QAAQ,EAAE;YACRC,YAAY,EAAEF;UAChB;QACF,CAAC,CACH,CAAC;MACH,CAAC,CAAC;MAEFtF,WAAW,CAAC+E,gBAAgB,CAAC,SAAS,EAAGhC,KAAK,IAAK;QAAA,IAAA0C,aAAA;QACjD,MAAMC,OAAO,GAAGtF,IAAI,CAACuF,KAAK,CAAC5C,KAAK,CAAC6C,IAAI,CAAC;QAEtC,IAAIF,OAAO,CAACpF,IAAI,KAAK,2BAA2B,IAAI,EAAAmF,aAAA,GAAAC,OAAO,CAACG,IAAI,cAAAJ,aAAA,uBAAZA,aAAA,CAAcnF,IAAI,MAAK,UAAU,EAAE;UACrFN,WAAW,CAACG,IAAI,CACdC,IAAI,CAACC,SAAS,CAAC;YACbC,IAAI,EAAE,iBAAiB;YACvBiF,QAAQ,EAAE;cACRC,YAAY,EAAE;YAChB;UACF,CAAC,CACH,CAAC;QACH;QAEA,IAAIE,OAAO,CAACpF,IAAI,KAAK,uCAAuC,IAAIoF,OAAO,CAACI,IAAI,KAAK,UAAU,EAAE;UAC3F,MAAM;YAAEC;UAAI,CAAC,GAAG3F,IAAI,CAACuF,KAAK,CAACD,OAAO,CAAC7F,SAAS,CAAC;UAC7CmG,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGH,GAAG;QAC5B;QAEA,IAAIL,OAAO,CAACpF,IAAI,KAAK,uDAAuD,EAAE;UAAA,IAAA6F,mBAAA;UAC5E,MAAMC,UAAU,IAAAD,mBAAA,GAAGT,OAAO,CAACU,UAAU,cAAAD,mBAAA,uBAAlBA,mBAAA,CAAoBE,IAAI,CAAC,CAAC;UAC7C,IAAID,UAAU,EAAEpH,wBAAwB,CAACiB,OAAO,IAAImG,UAAU;QAChE;QAEA,IAAIV,OAAO,CAACpF,IAAI,KAAK,uCAAuC,EAAE;UAAA,IAAAgG,oBAAA;UAC5D,MAAMF,UAAU,IAAAE,oBAAA,GAAGZ,OAAO,CAACU,UAAU,cAAAE,oBAAA,uBAAlBA,oBAAA,CAAoBD,IAAI,CAAC,CAAC;UAC7C,IAAI,CAACD,UAAU,IAAI,CAACpH,wBAAwB,CAACiB,OAAO,EAAE;UAEtD,MAAMsG,KAAK,GAAGvH,wBAAwB,CAACiB,OAAO,CAACoG,IAAI,CAAC,CAAC;UACrDrH,wBAAwB,CAACiB,OAAO,GAAG,EAAE;UAErC,MAAMuG,YAAY,GAAG/E,MAAM,IAAI,OAAO;UAEtCuD,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,OAAO,EAAE;YAC3BC,EAAE,EAAE,kBAAkB;YACtBxD,WAAW;YACX6E,IAAI,EAAEL,UAAU;YAChBG,KAAK;YACLG,KAAK,EAAE,MAAM;YACbjF,MAAM,EAAE+E;UACV,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;MAEF,MAAMG,KAAK,GAAG,MAAMnG,cAAc,CAACoG,WAAW,CAAC,CAAC;MAChD,MAAMpG,cAAc,CAACqG,mBAAmB,CAACF,KAAK,CAAC;MAE/C,MAAMG,WAAW,GAAG,MAAMC,KAAK,CAAC,0CAA0C,EAAE;QAC1ExE,MAAM,EAAE,MAAM;QACdyE,IAAI,EAAEL,KAAK,CAACM,GAAG;QACfC,OAAO,EAAE;UACPC,aAAa,YAAAjF,MAAA,CAAYM,YAAY,CAAE;UACvC,cAAc,EAAE;QAClB;MACF,CAAC,CAAC;MAEF,IAAI,CAACsE,WAAW,CAACM,EAAE,EAAE,MAAM,IAAIjD,KAAK,CAAC,6CAA6C,CAAC;MAEnF,MAAMkD,MAAM,GAAG;QAAE/G,IAAI,EAAE,QAAQ;QAAE2G,GAAG,EAAE,MAAMH,WAAW,CAACL,IAAI,CAAC;MAAE,CAAC;MAEhE,MAAMjG,cAAc,CAAC8G,oBAAoB,CAACD,MAAM,CAAC;IACnD,CAAC,SAAS;MACRrC,kBAAK,CAACC,OAAO,CAACC,cAAK,CAACC,OAAO,EAAE;QAAEC,EAAE,EAAE;MAAa,CAAC,CAAC;MAClD1D,eAAe,CAAC,KAAK,CAAC;MACtBC,QAAQ,CAAC,IAAI,CAAC;IAChB;EACF,CAAC,EACD,CAACjC,sBAAsB,CACzB,CAAC;EAED,MAAM6H,UAAU,GAAG,IAAA5H,kBAAW,EAAC,MAAM;IACnCD,sBAAsB,CAAC,IAAI,CAAC;EAC9B,CAAC,EAAE,CAACA,sBAAsB,CAAC,CAAC;EAE5B,OAAO;IAAEyB,YAAY;IAAEoG,UAAU;IAAEC,cAAc,EAAEnI,iBAAiB,CAACY;EAAQ,CAAC;AAChF,CAAC;AAACwH,OAAA,CAAAhJ,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useOpenAiRealtimeSession.js","names":["_dataSources","require","_react","_helpers","useOpenAiRealtimeSession","audioElementRef","useRef","audioContextRef","peerConnectionRef","dataChannelRef","localStreamRef","pendingUserTranscriptRef","inputSourceRef","outputSourceRef","inputFrequencyDataRef","outputFrequencyDataRef","audioAnalyzersRef","inputAnalyser","outputAnalyser","getInputByteFrequencyData","getOutputByteFrequencyData","cleanupRealtimeSession","useCallback","shouldSignal","arguments","length","undefined","dataChannel","current","readyState","send","JSON","stringify","type","close","peerConnection","getSenders","forEach","sender","track","stop","localStream","getTracks","srcObject","disconnect","audioContext","startSession","_ref","assistant_name","chainId","hotelId","isChain","locale","setIsConnecting","setReady","fingerprint","localStorage","getItem","sessionResponse","request","endpoint","concat","hostname","process","env","SERVICE_SYNAPSE","method","ephemeralKey","value","RTCPeerConnection","document","createElement","autoplay","ontrack","event","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","addEventListener","Event","publish","EVENT","METRICS","id","localeHint","introductionMessage","response","instructions","_payload$item","payload","parse","data","item","response_id","name","url","window","location","href","_payload$transcript","transcript","trim","_payload$transcript2","input","activeLocale","text","agent","offer","createOffer","setLocalDescription","sdpResponse","fetch","body","sdp","headers","Authorization","ok","answer","setRemoteDescription","error","message","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 } from '../../../../helpers';\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 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 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 startSession = useCallback(\n async ({ assistant_name, chainId, hotelId, isChain, locale, setIsConnecting, setReady }) => {\n cleanupRealtimeSession();\n\n const fingerprint = localStorage.getItem('MIRAI:FINGERPRINT');\n\n try {\n const sessionResponse = await request({\n endpoint: `/audio/session?fingerprint=${fingerprint}&hotelId=${isChain ? '' : hotelId ?? ''}&chainId=${\n isChain ? chainId ?? '' : ''\n }`,\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\n audioElementRef.current = document.createElement('audio');\n audioElementRef.current.autoplay = true;\n peerConnection.ontrack = (event) => {\n // eslint-disable-next-line prefer-destructuring\n audioElementRef.current.srcObject = event.streams[0];\n const [remoteStream] = event.streams;\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 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\n dataChannel.addEventListener('open', () => {\n pendingUserTranscriptRef.current = '';\n Event.publish(EVENT.METRICS, { id: '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 dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n instructions: introductionMessage,\n },\n }),\n );\n });\n\n dataChannel.addEventListener('message', (event) => {\n const payload = JSON.parse(event.data);\n\n if (payload.type === 'response.output_item.done' && payload.item?.type === 'mcp_call') {\n dataChannel.send(\n JSON.stringify({\n type: 'response.create',\n response: {\n response_id: payload.response_id,\n },\n }),\n );\n }\n\n if (payload.type === 'response.function_call_arguments.done' && payload.name === 'open_url') {\n const { url } = JSON.parse(payload.arguments);\n window.location.href = url;\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.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 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: 'AURA:ERROR', error: error?.message });\n setReady(false);\n throw error;\n } finally {\n setIsConnecting(false);\n }\n },\n [cleanupRealtimeSession],\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":[]}
|
|
@@ -46,6 +46,10 @@ const Message = _ref => {
|
|
|
46
46
|
} = {}
|
|
47
47
|
} = (0, _dataSources.useStore)();
|
|
48
48
|
const [containerWidth, setContainerWidth] = (0, _react.useState)();
|
|
49
|
+
const {
|
|
50
|
+
innerUrl,
|
|
51
|
+
text: displayText
|
|
52
|
+
} = (0, _helpers.resolveInnerUrl)(text, url);
|
|
49
53
|
const {
|
|
50
54
|
testId
|
|
51
55
|
} = others,
|
|
@@ -74,8 +78,8 @@ const Message = _ref => {
|
|
|
74
78
|
className: style.spinner
|
|
75
79
|
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
76
80
|
className: style.text
|
|
77
|
-
}, (0, _helpers.parseLinks)(
|
|
78
|
-
onPress: !disabled ? () => handlePress(
|
|
81
|
+
}, (0, _helpers.parseLinks)(displayText)), innerUrl && /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
|
|
82
|
+
onPress: !disabled ? () => handlePress(innerUrl) : undefined,
|
|
79
83
|
className: style.card
|
|
80
84
|
}, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
|
|
81
85
|
light: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Message","style","_helpers2","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Message","_ref","busy","disabled","images","synapse","text","url","others","translate","useLocale","containerRef","useRef","urlParams","useStore","containerWidth","setContainerWidth","useState","testId","synapseProps","useEffect","current","updateWidth","offsetWidth","window","addEventListener","removeEventListener","handlePress","open","createElement","View","wide","row","className","styles","message","ref","undefined","content","spinner","Fragment","Text","parseLinks","Pressable","onPress","card","Icon","light","ICON","LINK","action","L10N","LABEL_VIEW_LINK","Slider","height","width","gallery","sarai","Environment","exports","propTypes","PropTypes","bool","arrayOf","string"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Slider, styles, Pressable, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Environment } from './components';\nimport { parseLinks } from './helpers';\nimport { L10N } from './Message.l10n';\nimport * as style from './Message.module.css';\nimport { ICON } from '../../../helpers';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ busy = false, disabled, images = [], synapse, text, url, ...others }) => {\n const { translate } = useLocale();\n const containerRef = useRef();\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [containerWidth, setContainerWidth] = useState();\n\n const { testId, ...synapseProps } = others;\n\n useEffect(() => {\n if (!synapse || !containerRef?.current) return setContainerWidth();\n\n const updateWidth = () => setContainerWidth(containerRef.current.offsetWidth);\n updateWidth();\n\n window.addEventListener('resize', updateWidth);\n\n return () => window.removeEventListener('resize', updateWidth);\n }, [synapse]);\n\n const handlePress = (url) => {\n window.open(url, '_blank');\n };\n\n return (\n <View testId={testId} wide>\n <View row wide className={styles(style.message, synapse && style.synapse)}>\n <View\n ref={synapse ? containerRef : undefined}\n className={styles(style.content, synapse && style.synapse, busy && style.busy)}\n >\n {busy ? (\n <View className={style.spinner} />\n ) : (\n <>\n <Text className={style.text}>{parseLinks(text)}</Text>\n {url && (\n <Pressable onPress={!disabled ? () => handlePress(url) : undefined} className={style.card}>\n <Icon light value={ICON.LINK} />\n <Text action className={style.text}>\n {translate(L10N.LABEL_VIEW_LINK)}\n </Text>\n </Pressable>\n )}\n {images.length > 0 && containerWidth && (\n <Slider\n height={containerWidth * 0.66}\n images={images}\n width={containerWidth}\n className={style.gallery}\n />\n )}\n </>\n )}\n </View>\n </View>\n\n {!busy && synapse && urlParams.sarai === 'environment' && (\n <Environment {...{ synapse, ...others, ...synapseProps }} />\n )}\n </View>\n );\n};\n\nMessage.propTypes = {\n busy: PropTypes.bool,\n disabled: PropTypes.bool,\n images: PropTypes.arrayOf(PropTypes.string),\n synapse: PropTypes.bool,\n text: PropTypes.string,\n url: PropTypes.string,\n};\n\nexport { Message };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Message.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_components","_helpers","_Message","style","_helpers2","_excluded","_excluded2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","Message","_ref","busy","disabled","images","synapse","text","url","others","translate","useLocale","containerRef","useRef","urlParams","useStore","containerWidth","setContainerWidth","useState","innerUrl","displayText","resolveInnerUrl","testId","synapseProps","useEffect","current","updateWidth","offsetWidth","window","addEventListener","removeEventListener","handlePress","open","createElement","View","wide","row","className","styles","message","ref","undefined","content","spinner","Fragment","Text","parseLinks","Pressable","onPress","card","Icon","light","ICON","LINK","action","L10N","LABEL_VIEW_LINK","Slider","height","width","gallery","sarai","Environment","exports","propTypes","PropTypes","bool","arrayOf","string"],"sources":["../../../../../src/components/Chat/components/Message/Message.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Icon, Slider, styles, Pressable, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Environment } from './components';\nimport { parseLinks, resolveInnerUrl } from './helpers';\nimport { L10N } from './Message.l10n';\nimport * as style from './Message.module.css';\nimport { ICON } from '../../../helpers';\n\n// ! TODO: Refacto use of intent/response vs lisa.intent/response\nconst Message = ({ busy = false, disabled, images = [], synapse, text, url, ...others }) => {\n const { translate } = useLocale();\n const containerRef = useRef();\n const { value: { urlParams = {} } = {} } = useStore();\n\n const [containerWidth, setContainerWidth] = useState();\n const { innerUrl, text: displayText } = resolveInnerUrl(text, url);\n\n const { testId, ...synapseProps } = others;\n\n useEffect(() => {\n if (!synapse || !containerRef?.current) return setContainerWidth();\n\n const updateWidth = () => setContainerWidth(containerRef.current.offsetWidth);\n updateWidth();\n\n window.addEventListener('resize', updateWidth);\n\n return () => window.removeEventListener('resize', updateWidth);\n }, [synapse]);\n\n const handlePress = (url) => {\n window.open(url, '_blank');\n };\n\n return (\n <View testId={testId} wide>\n <View row wide className={styles(style.message, synapse && style.synapse)}>\n <View\n ref={synapse ? containerRef : undefined}\n className={styles(style.content, synapse && style.synapse, busy && style.busy)}\n >\n {busy ? (\n <View className={style.spinner} />\n ) : (\n <>\n <Text className={style.text}>{parseLinks(displayText)}</Text>\n {innerUrl && (\n <Pressable onPress={!disabled ? () => handlePress(innerUrl) : undefined} className={style.card}>\n <Icon light value={ICON.LINK} />\n <Text action className={style.text}>\n {translate(L10N.LABEL_VIEW_LINK)}\n </Text>\n </Pressable>\n )}\n {images.length > 0 && containerWidth && (\n <Slider\n height={containerWidth * 0.66}\n images={images}\n width={containerWidth}\n className={style.gallery}\n />\n )}\n </>\n )}\n </View>\n </View>\n\n {!busy && synapse && urlParams.sarai === 'environment' && (\n <Environment {...{ synapse, ...others, ...synapseProps }} />\n )}\n </View>\n );\n};\n\nMessage.propTypes = {\n busy: PropTypes.bool,\n disabled: PropTypes.bool,\n images: PropTypes.arrayOf(PropTypes.string),\n synapse: PropTypes.bool,\n text: PropTypes.string,\n url: PropTypes.string,\n};\n\nexport { Message };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,4 +36,15 @@ Object.keys(_parseLinks).forEach(function (key) {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
+
var _resolveInnerUrl = require("./resolveInnerUrl");
|
|
40
|
+
Object.keys(_resolveInnerUrl).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _resolveInnerUrl[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _resolveInnerUrl[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
39
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_getActionIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getTime","_parseLinks"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/index.js"],"sourcesContent":["export * from './getActionIcon';\nexport * from './getTime';\nexport * from './parseLinks';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getActionIcon","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getTime","_parseLinks","_resolveInnerUrl"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/index.js"],"sourcesContent":["export * from './getActionIcon';\nexport * from './getTime';\nexport * from './parseLinks';\nexport * from './resolveInnerUrl';\n"],"mappings":";;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,cAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,gBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,gBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,gBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,gBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.resolveInnerUrl = void 0;
|
|
7
|
+
const URL_REGEX = /https?:\/\/[^\s]+/i;
|
|
8
|
+
const TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;
|
|
9
|
+
const resolveInnerUrl = (text, url) => {
|
|
10
|
+
if (url) return {
|
|
11
|
+
innerUrl: url,
|
|
12
|
+
text
|
|
13
|
+
};
|
|
14
|
+
if (!text) return {
|
|
15
|
+
innerUrl: undefined,
|
|
16
|
+
text
|
|
17
|
+
};
|
|
18
|
+
const [matchedUrl] = text.match(URL_REGEX) || [];
|
|
19
|
+
if (!matchedUrl) return {
|
|
20
|
+
innerUrl: undefined,
|
|
21
|
+
text
|
|
22
|
+
};
|
|
23
|
+
const cleanUrl = matchedUrl.replace(TRAILING_PUNCTUATION_REGEX, '');
|
|
24
|
+
const textWithoutUrl = text.replace(matchedUrl, '').replace(/\s{2,}/g, ' ').trim();
|
|
25
|
+
return {
|
|
26
|
+
innerUrl: cleanUrl,
|
|
27
|
+
text: textWithoutUrl
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.resolveInnerUrl = resolveInnerUrl;
|
|
31
|
+
//# sourceMappingURL=resolveInnerUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveInnerUrl.js","names":["URL_REGEX","TRAILING_PUNCTUATION_REGEX","resolveInnerUrl","text","url","innerUrl","undefined","matchedUrl","match","cleanUrl","replace","textWithoutUrl","trim","exports"],"sources":["../../../../../../src/components/Chat/components/Message/helpers/resolveInnerUrl.js"],"sourcesContent":["const URL_REGEX = /https?:\\/\\/[^\\s]+/i;\nconst TRAILING_PUNCTUATION_REGEX = /[.,!?;:]$/;\n\nexport const resolveInnerUrl = (text, url) => {\n if (url) return { innerUrl: url, text };\n if (!text) return { innerUrl: undefined, text };\n const [matchedUrl] = text.match(URL_REGEX) || [];\n if (!matchedUrl) return { innerUrl: undefined, text };\n const cleanUrl = matchedUrl.replace(TRAILING_PUNCTUATION_REGEX, '');\n const textWithoutUrl = text\n .replace(matchedUrl, '')\n .replace(/\\s{2,}/g, ' ')\n .trim();\n return { innerUrl: cleanUrl, text: textWithoutUrl };\n};\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,oBAAoB;AACtC,MAAMC,0BAA0B,GAAG,WAAW;AAEvC,MAAMC,eAAe,GAAGA,CAACC,IAAI,EAAEC,GAAG,KAAK;EAC5C,IAAIA,GAAG,EAAE,OAAO;IAAEC,QAAQ,EAAED,GAAG;IAAED;EAAK,CAAC;EACvC,IAAI,CAACA,IAAI,EAAE,OAAO;IAAEE,QAAQ,EAAEC,SAAS;IAAEH;EAAK,CAAC;EAC/C,MAAM,CAACI,UAAU,CAAC,GAAGJ,IAAI,CAACK,KAAK,CAACR,SAAS,CAAC,IAAI,EAAE;EAChD,IAAI,CAACO,UAAU,EAAE,OAAO;IAAEF,QAAQ,EAAEC,SAAS;IAAEH;EAAK,CAAC;EACrD,MAAMM,QAAQ,GAAGF,UAAU,CAACG,OAAO,CAACT,0BAA0B,EAAE,EAAE,CAAC;EACnE,MAAMU,cAAc,GAAGR,IAAI,CACxBO,OAAO,CAACH,UAAU,EAAE,EAAE,CAAC,CACvBG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CACvBE,IAAI,CAAC,CAAC;EACT,OAAO;IAAEP,QAAQ,EAAEI,QAAQ;IAAEN,IAAI,EAAEQ;EAAe,CAAC;AACrD,CAAC;AAACE,OAAA,CAAAX,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -39,6 +39,7 @@ const {
|
|
|
39
39
|
ADDON,
|
|
40
40
|
ADYEN,
|
|
41
41
|
CHECKOUT,
|
|
42
|
+
HOTELPAY,
|
|
42
43
|
LINKAGEPAY,
|
|
43
44
|
OPENPAY,
|
|
44
45
|
PAYCOMET,
|
|
@@ -47,7 +48,7 @@ const {
|
|
|
47
48
|
} = _Payment.PAYMENT_PROVIDER;
|
|
48
49
|
const PROVIDERS_WITH_MODAL = [ADDON, ADYEN, CHECKOUT, SIPAY, PAYCOMET];
|
|
49
50
|
const ButtonPayment = _ref => {
|
|
50
|
-
var _methods$method2, _methods$method2$conf, _methods$method3;
|
|
51
|
+
var _methods$method2, _methods$method2$conf, _methods$method3, _methods$method4;
|
|
51
52
|
let {
|
|
52
53
|
children,
|
|
53
54
|
config: {
|
|
@@ -175,7 +176,7 @@ const ButtonPayment = _ref => {
|
|
|
175
176
|
methodConfig: methods[method],
|
|
176
177
|
provider
|
|
177
178
|
});
|
|
178
|
-
const isModalResponse = [ADDON, ADYEN].includes(provider) || provider === STRIPE && ((_methods$method3 = methods[method]) === null || _methods$method3 === void 0 ? void 0 : _methods$method3.modal);
|
|
179
|
+
const isModalResponse = [ADDON, ADYEN, HOTELPAY].includes(provider) || provider === STRIPE && ((_methods$method3 = methods[method]) === null || _methods$method3 === void 0 ? void 0 : _methods$method3.modal);
|
|
179
180
|
const promiseData = gateway ? {
|
|
180
181
|
gateway
|
|
181
182
|
} : {};
|
|
@@ -186,7 +187,7 @@ const ButtonPayment = _ref => {
|
|
|
186
187
|
title: method,
|
|
187
188
|
visible: modal,
|
|
188
189
|
onClose: handleClose
|
|
189
|
-
}, component && /*#__PURE__*/_react.default.createElement(component, _objectSpread(_objectSpread({}, config), {}, {
|
|
190
|
+
}, component && /*#__PURE__*/_react.default.createElement(component, _objectSpread(_objectSpread(_objectSpread({}, config), (_methods$method4 = methods[method]) === null || _methods$method4 === void 0 ? void 0 : _methods$method4.prepayment), {}, {
|
|
190
191
|
currencyDecimals,
|
|
191
192
|
info,
|
|
192
193
|
method,
|