bibot 1.0.10 → 1.0.12
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/README.md +10 -9
- package/dist/index.js +80 -8
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +80 -8
- package/dist/index.modern.js.map +1 -1
- package/package.json +10 -7
package/README.md
CHANGED
@@ -13,16 +13,17 @@ npm install --save bibot
|
|
13
13
|
## Usage
|
14
14
|
|
15
15
|
```tsx
|
16
|
-
import
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
}
|
16
|
+
import { BiBot } from 'bibot'
|
17
|
+
|
18
|
+
function App() {
|
19
|
+
return (
|
20
|
+
<div className="App">
|
21
|
+
<BiBot clientId='YOUR CLIENT ID HERE' />
|
22
|
+
</div>
|
23
|
+
);
|
25
24
|
}
|
25
|
+
|
26
|
+
export default App;
|
26
27
|
```
|
27
28
|
|
28
29
|
## License
|
package/dist/index.js
CHANGED
@@ -516,16 +516,38 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
516
516
|
predefinedQuestions = _useBiBotChatBot.predefinedQuestions,
|
517
517
|
handlePredefinedQuestionSelect = _useBiBotChatBot.handlePredefinedQuestionSelect;
|
518
518
|
return React.createElement("div", {
|
519
|
-
className: "chat-bubble " + (chatIsOpen ? 'open' : '')
|
519
|
+
className: "chat-bubble " + (chatIsOpen ? 'open' : ''),
|
520
|
+
style: {
|
521
|
+
position: 'fixed',
|
522
|
+
bottom: '20px',
|
523
|
+
right: '20px',
|
524
|
+
zIndex: 9999
|
525
|
+
}
|
520
526
|
}, chatIsOpen && React.createElement("div", {
|
521
527
|
className: styles["chat-window"],
|
522
528
|
style: {
|
523
|
-
backgroundColor:
|
529
|
+
backgroundColor: '#fff',
|
530
|
+
position: 'absolute',
|
531
|
+
bottom: '50px',
|
532
|
+
right: '25px',
|
533
|
+
width: 350,
|
534
|
+
height: 500,
|
535
|
+
borderRadius: 10,
|
536
|
+
display: 'flex',
|
537
|
+
flexDirection: 'column',
|
538
|
+
justifyContent: 'space-between'
|
524
539
|
}
|
525
540
|
}, React.createElement("div", {
|
526
541
|
className: styles["chat-header"],
|
527
542
|
style: {
|
528
|
-
backgroundColor: (_chatBubbleConfig$col = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col : '#dedede'
|
543
|
+
backgroundColor: (_chatBubbleConfig$col = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col : '#dedede',
|
544
|
+
borderTopLeftRadius: 8,
|
545
|
+
borderTopRightRadius: 8,
|
546
|
+
display: 'flex',
|
547
|
+
alignItems: 'center',
|
548
|
+
justifyContent: 'flex-start',
|
549
|
+
paddingInline: 15,
|
550
|
+
paddingBlock: 30
|
529
551
|
}
|
530
552
|
}, React.createElement("div", {
|
531
553
|
style: {
|
@@ -568,11 +590,29 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
568
590
|
lineHeight: '0.5'
|
569
591
|
}
|
570
592
|
}, 'Online'))), React.createElement("div", {
|
571
|
-
className: styles["message-list"]
|
593
|
+
className: styles["message-list"],
|
594
|
+
style: {
|
595
|
+
height: 'calc(100% - 100px)',
|
596
|
+
overflowY: 'auto',
|
597
|
+
padding: 10,
|
598
|
+
display: 'flex',
|
599
|
+
flexGrow: 1,
|
600
|
+
flexDirection: 'column'
|
601
|
+
}
|
572
602
|
}, messages.map(function (message, index) {
|
573
603
|
return message.sender === 'user' ? React.createElement("div", {
|
574
604
|
key: index,
|
575
|
-
className: "message " + message.sender
|
605
|
+
className: "message " + message.sender,
|
606
|
+
style: {
|
607
|
+
marginBottom: 10,
|
608
|
+
padding: '5px 10px',
|
609
|
+
borderRadius: 8,
|
610
|
+
maxWidth: 70,
|
611
|
+
alignSelf: 'flex-end',
|
612
|
+
fontSize: '15px',
|
613
|
+
backgroundColor: '#b8b8b8c6',
|
614
|
+
color: '#000'
|
615
|
+
}
|
576
616
|
}, message.text) : React.createElement("div", {
|
577
617
|
key: index,
|
578
618
|
style: {
|
@@ -584,7 +624,16 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
584
624
|
size: 25,
|
585
625
|
alt: "profile"
|
586
626
|
}), React.createElement("div", {
|
587
|
-
className: "message " + message.sender
|
627
|
+
className: "message " + message.sender,
|
628
|
+
style: {
|
629
|
+
marginBottom: 10,
|
630
|
+
padding: '5px 10px',
|
631
|
+
borderRadius: 8,
|
632
|
+
alignSelf: 'flex-start',
|
633
|
+
fontSize: '15px',
|
634
|
+
backgroundColor: '#f0f0f0',
|
635
|
+
color: '#000'
|
636
|
+
}
|
588
637
|
}, message.text));
|
589
638
|
}), showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && React.createElement(PredefinedQuestions, {
|
590
639
|
questions: predefinedQuestions,
|
@@ -599,8 +648,24 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
599
648
|
}), " "), React.createElement("div", {
|
600
649
|
ref: messageEndRef
|
601
650
|
})), React.createElement("div", {
|
602
|
-
className: styles["input-area"]
|
651
|
+
className: styles["input-area"],
|
652
|
+
style: {
|
653
|
+
display: 'flex',
|
654
|
+
alignItems: 'center',
|
655
|
+
borderTop: '1px solid #ddd',
|
656
|
+
padding: 10,
|
657
|
+
borderBottomLeftRadius: 8,
|
658
|
+
borderBottomRightRadius: 8
|
659
|
+
}
|
603
660
|
}, React.createElement("input", {
|
661
|
+
style: {
|
662
|
+
outline: 'none',
|
663
|
+
flexGrow: 1,
|
664
|
+
border: 'none',
|
665
|
+
backgroundColor: 'transparent',
|
666
|
+
padding: '5px 10px',
|
667
|
+
marginRight: 10
|
668
|
+
},
|
604
669
|
autoFocus: true,
|
605
670
|
type: "text",
|
606
671
|
value: userInput,
|
@@ -621,7 +686,14 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
621
686
|
onClick: toggleChat,
|
622
687
|
className: styles["chat-toggle"],
|
623
688
|
style: {
|
624
|
-
backgroundColor: (_chatBubbleConfig$col2 = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col2 : '#dedede'
|
689
|
+
backgroundColor: (_chatBubbleConfig$col2 = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col2 : '#dedede',
|
690
|
+
color: '#fff',
|
691
|
+
borderRadius: '50%',
|
692
|
+
width: '60px',
|
693
|
+
height: '60px',
|
694
|
+
display: 'flex',
|
695
|
+
alignItems: 'center',
|
696
|
+
justifyContent: 'center'
|
625
697
|
}
|
626
698
|
}, chatIsOpen ? React.createElement(iconsMaterial.Close, {
|
627
699
|
style: {
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/config/endpointEnums.ts","../src/hooks/usePluginFactory.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/config/appStateEnums.ts","../src/reducers/appReducer.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/sessionManager.tsx","../src/context/AppContext.tsx","../src/services/plugin-api.tsx","../src/hooks/useBiBotChatBot.tsx","../src/component/bibot.tsx","../src/index.tsx"],"sourcesContent":["\nexport const APP_DATA = {\n APP_NAME: 'Bibot'\n}\n\nconst baseUrls = {\n inference: 'https://inference.dev.bibot.thespuka.com/v0',\n}\n\nexport const endpoints = {\n get inference () {\n return baseUrls.inference\n },\n} as const\n\nexport enum domain {\n app = '/app',\n bibot = '/bibot',\n inference = '/inference',\n}\n\nexport enum resources {\n chatBubble = '/chat-bubble-config',\n predefinedQ = '/predefined-q',\n localQ = '/local-q',\n timedOutLocalQ = '/t-local-q',\n q = '/q'\n}\n","import axios from 'axios';\nimport { endpoints } from '../config/endpointEnums';\nconst inferenceBaseURL = endpoints.inference;\n\nexport const createPluginAxiosInstance = (params = {}, headers = {}) => {\n const instance = axios.create({\n baseURL: inferenceBaseURL,\n timeout: 60000, // 1 minute\n headers: {\n 'Content-Type': 'application/json',\n ...headers\n },\n ...params\n });\n\n\n instance.interceptors.response.use(\n (response) => {\n return response\n },\n async (error) => {\n let errMsg = 'An unknown error occurred'\n if (error.response) {\n errMsg = error.response.data.message\n } else if (error.request) {\n errMsg = 'No response received from the server.'\n } else {\n errMsg = `Error setting up the request: ${error.message}`\n }\n return await Promise.reject(new Error(errMsg))\n }\n )\n\n return instance\n}\n\n ","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","export enum appStateEnums {\n BIBOT = 'BIBOT'\n}\n","import { appStateEnums } from '../config/appStateEnums'\nimport type { AppStates, AppAction } from '../types/coreInterfaces'\n\nexport const appReducer = (state: AppStates, action: AppAction): AppStates => {\n console.log('This is the appReducer state', state, action)\n switch (action.type) {\n case appStateEnums.BIBOT:\n return {\n ...state,\n chatIsOpen: action.chatIsOpen\n }\n default:\n return state\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid'\n\nconst SESSION_KEY: string = 'bibotUserSessionId'\n\nconst getSessionId = (): string => {\n const sessionId = localStorage.getItem(SESSION_KEY)\n if (sessionId === null) {\n const newSessionId = uuidv4()\n localStorage.setItem(SESSION_KEY, newSessionId)\n return newSessionId\n }\n return sessionId\n}\n\nexport { getSessionId }\n","import { appStateEnums } from '../config/appStateEnums'\nimport React, { createContext, useReducer, useEffect } from 'react'\nimport { ReactNode } from 'react'\nimport { appReducer } from '../reducers/appReducer'\nimport type { AppContextProps, AppStates } from '../types/coreInterfaces'\nimport { getSessionId } from '../utils/sessionManager'\n\ninterface AppProps {\n children: ReactNode\n}\n\nconst dummyDispatch = () => {} // A no-op function.\n\nconst defaultContextValue: AppContextProps = {\n state: {\n chatIsOpen: false,\n sessionId: getSessionId()\n },\n dispatch: dummyDispatch\n}\n\nconst AppContext = createContext<AppContextProps>(defaultContextValue)\n\nconst AppProvider: React.FC<AppProps> = ({ children }) => {\n const APP_STATE_KEY = 'app_states'\n const initialState: AppStates = {\n chatIsOpen: false,\n sessionId: getSessionId()\n }\n\n const [state, dispatch] = useReducer(appReducer, initialState)\n\n useEffect(() => {\n // Pool the initial states from local storage\n const storedStates = localStorage.getItem(APP_STATE_KEY)\n\n if (storedStates) {\n try {\n const parsedStates = JSON.parse(storedStates)\n\n // Merge stored states with initial states\n const updatedStates = {\n ...initialState,\n ...parsedStates\n }\n console.log(initialState, parsedStates, updatedStates)\n // Dispatch action to update the states\n dispatch({ type: appStateEnums.BIBOT, ...updatedStates })\n } catch (error) {\n console.error('Failed to parse app states from local storage:', error)\n }\n }\n }, [])\n\n useEffect(() => {\n console.log('Changes in state: ', state)\n localStorage.setItem(APP_STATE_KEY, JSON.stringify(state))\n }, [state])\n\n return (\n <AppContext.Provider value={{ state, dispatch }}>\n {children}\n </AppContext.Provider>\n )\n}\n\nexport { AppContext, AppProvider }\n","import { domain, resources } from '../config/endpointEnums'\nimport { createPluginAxiosInstance } from '../hooks/usePluginFactory'\n\nconst pluginAxiosInstance=createPluginAxiosInstance()\n\ninterface Q_DATA_TYPE {\n client_id: string\n q: string\n endSession?: boolean\n session_id: string\n chat_id: string\n tries?: number\n}\n\ninterface RemoteChatBubbleConfigProps {\n bgColor: string,\n chatColor: string,\n title: string,\n userImage: string\n}\n\nasync function askTimedOutBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n // return 'Hello'\n const path=`${domain.bibot}${resources.timedOutLocalQ}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n } catch (error) {\n console.log(error.message)\n return error.message\n }\n}\n\nasync function askBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n const path=`${domain.inference}${resources.q}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n // return 'Hello'\n } catch (error1) {\n console.log(error1.message)\n if (error1.code==='ECONNABORTED'||error1.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 2\n })\n } catch (error2) {\n if (error2.code==='ECONNABORTED'||error2.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 3\n })\n } catch (error3) {\n return error3.message\n }\n } else {\n return error2.message\n }\n }\n } else {\n return error1.message\n }\n }\n}\n// TODO: Emmanuel fix the default returned values, especially the userImage to a default robot image\nasync function getRemoteClientChatBubbleConfig(params: { client_id: string }): Promise<RemoteChatBubbleConfigProps> {\n try {\n // return {\n // bgColor: 'white',\n // chatColor: 'blue',\n // title: 'ChatBot',\n // userImage: 'string'\n // }\n const path=`${domain.inference}${resources.chatBubble}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data\n } catch (error) {\n return {\n bgColor: 'white',\n chatColor: 'blue',\n title: 'ChatBot',\n userImage: 'string'\n }\n }\n}\n\nasync function getRemoteClientChatPredefinedQuestions(params: { client_id: string }): Promise<string[]> {\n try {\n // return ['Hello']\n const path=`${domain.inference}${resources.predefinedQ}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data.predefined_messages\n } catch (error) {\n return ['These are placeholders', 'They will be removed in production', 'This will be empty if there are no predefined questions', 'So hide if there are no predefined questions']\n }\n}\n\nasync function GetPredefinedQuestion (){\n const clientId = '6c74b4bb-0395-4751-a55f-7d065d67c56b'\n try {\n // return [{question: \"q\", answer: \"a\"}]\n const path = `${domain.inference}${resources.predefinedQ}?client_id=${clientId}`\n const response = await pluginAxiosInstance.get(path)\n return response.data\n } catch (error) {\n console.error('Error fetching subscription:', error)\n }\n }\n\nexport {\n askBiBot,\n getRemoteClientChatBubbleConfig,\n getRemoteClientChatPredefinedQuestions,\n GetPredefinedQuestion\n}\n","import { message } from 'antd'\nimport React, { useEffect, useRef, useState, useContext, useCallback } from 'react'\nimport { AppContext } from '../context/AppContext'\n\nimport { v4 as uuidv4 } from 'uuid'\nimport { askBiBot, getRemoteClientChatBubbleConfig, getRemoteClientChatPredefinedQuestions } from '../services/plugin-api'\ninterface UseBiBotChatBotProps {\n clientId: string\n }\n\ninterface ChatBubbleConfigProps {\n bgColor?: string,\n color?: string,\n title?: string,\n logo_url?: string\n}\nconst useBiBotChatBot = ({ clientId }: UseBiBotChatBotProps) => {\n const [predefinedQuestions, setPredefinedQuestions] = useState<string[]>([]) // State to store predefined questions\n const [showPredefinedQuestions, setShowPredefinedQuestions] = useState(true); // State to toggle predefined questions\n const { state } = useContext(AppContext)\n const [ chatIsOpen, setChatIsOpen ] = useState<boolean>(false)\n const [messages, setMessages] = useState<Array<{ sender: 'user' | 'bot', text: string }>>([])\n const [userInput, setUserInput] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const messageEndRef = useRef<HTMLDivElement>(null)\n const [chatBubbleConfig, setChatBubbleConfig] = useState<ChatBubbleConfigProps>()\n\n // Function to handle selecting a predefined question\n const handlePredefinedQuestionSelect = (question: any) => {\n setUserInput(question);\n sendInputInquiry();\n setShowPredefinedQuestions(false); // Hide predefined questions after selection\n }\n \n const getChatBubbleConfig = useCallback(async()=>{\n const remotePredefinedQuestions = await getRemoteClientChatPredefinedQuestions({client_id: clientId})\n if (remotePredefinedQuestions){\n setPredefinedQuestions(remotePredefinedQuestions)\n }\n const remoteChatBubbleConfig = await getRemoteClientChatBubbleConfig({client_id: clientId})\n if (remoteChatBubbleConfig){\n setChatBubbleConfig(remoteChatBubbleConfig)\n }\n },[clientId])\n\n useEffect(()=>{\n void getChatBubbleConfig()\n }, [getChatBubbleConfig])\n \n useEffect(() => {\n if (messageEndRef?.current) { messageEndRef.current.scrollIntoView({ behavior: 'smooth' }) }\n }, [messages])\n\n const toggleChat = () => {\n console.log('This is it', chatIsOpen)\n setChatIsOpen(!chatIsOpen)\n }\n\n const handleUserInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n setUserInput(e.target.value)\n }\n\n async function sendInputInquiry () {\n setIsLoading(true)\n setUserInput('')\n try {\n if (userInput.trim()) {\n // dispatch({ type: appStateEnums.BIBOT, chatIsOpen: true })\n setMessages(messages => [...messages, { sender: 'user', text: userInput }])\n const response = await askBiBot({\n client_id: clientId,\n q: userInput.trim(),\n session_id: state.sessionId,\n chat_id: uuidv4()\n })\n setMessages(messages => [...messages, { sender: 'bot', text: response }])\n }\n } catch (error) {\n void message.error(error?.message ?? 'Failed to get response from server')\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleKeyPress = async (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && !isLoading) {\n await sendInputInquiry()\n }\n }\n return {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n toggleChat,\n sendInputInquiry,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n }\n}\n\nexport { useBiBotChatBot }\n","import { Avatar, Indicator } from '@mantine/core'\nimport { Close, SendRounded } from '@mui/icons-material'\nimport ChatIcon from '@mui/icons-material/Chat'\nimport { Button } from 'antd'\nimport { useBiBotChatBot } from '../hooks'\nimport * as React from 'react'\nimport styles from '../styles.module.css'\n\ninterface bubbleProps {\n clientId: string\n}\n\ninterface PredefinedQuestionsProps {\n onSelect: (question: string) => void\n questions: string[]\n}\n\nconst PredefinedQuestions = ({ questions, onSelect }: PredefinedQuestionsProps) => {\n return (\n <div className={styles['predefined-questions']}>\n {questions.map((question, index) => (\n <div key={index} className={styles['predefined-questions']} onClick={() => onSelect(question)}>\n {question}\n </div>\n ))}\n </div>\n );\n};\n\nconst ChatBubbleBiBot = ({ clientId }: bubbleProps) => {\n const {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n sendInputInquiry,\n toggleChat,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n } = useBiBotChatBot({clientId})\n\n return (\n \n <div className={`chat-bubble ${chatIsOpen ? 'open' : ''}`}>\n {chatIsOpen && (\n <div className={styles[\"chat-window\"]} style={{ backgroundColor: chatBubbleConfig?.bgColor }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede' }}>\n <div style={{ alignItems: 'center', display: 'flex', color: '#fff', fontWeight: 'bold' }}>\n <Indicator inline size={12} offset={7} position=\"bottom-end\" color={ 'green' }>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} alt=\"profile\" />\n </Indicator>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', textAlign: 'left', paddingLeft: '10px', justifyContent: 'flex-start', color: '#fff' }}>\n <span style={{ fontWeight: 'bold' }}>{chatBubbleConfig?.title}</span>\n {}\n {isLoading ? <span style={{ fontSize: '12px', lineHeight: '0.5' }}>Typing...</span> : <span style={{ fontSize: '12px', lineHeight: '0.5' }}>{'Online'}</span>}\n </div>\n </div>\n <div className={styles[\"message-list\"]}>\n {messages.map((message: { sender: 'user' | 'bot', text: string }, index: number) => (\n message.sender === 'user'\n ? <div key={index} className={`message ${message.sender}`}>\n {message.text}\n </div>\n : <div key={index} style={{ display: 'flex' }}>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} size={25} alt=\"profile\" />\n <div className={`message ${message.sender}`}>\n {message.text}\n </div>\n </div>\n ))}\n {showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && (\n <PredefinedQuestions questions={predefinedQuestions} onSelect={handlePredefinedQuestionSelect} />\n )}\n {isLoading && <div style={{marginLeft: '20px'}} className='message'> <div className=\"loader\"></div> </div> }\n <div ref={messageEndRef} />\n </div>\n <div className={styles[\"input-area\"]}>\n <input\n autoFocus={true}\n type=\"text\"\n value={userInput}\n onChange={handleUserInput}\n onKeyDown={handleKeyPress}\n placeholder=\"Ask a question\"\n />\n <Button disabled={isLoading ?? true} style={{ backgroundColor: 'transparent', color: isLoading ? '#dedede' : chatBubbleConfig?.color }} size='middle' icon={<SendRounded />} onClick={sendInputInquiry}/>\n </div>\n </div>\n )}\n <Button type='link' onClick={toggleChat} className={styles[\"chat-toggle\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede' }}>\n {chatIsOpen ? <Close style={{ width: 30, height: 30, color: '#fff' }} /> : <ChatIcon style={{ width: 30, height: 30, color: '#fff' }}/>}\n </Button>\n </div>\n\n )\n}\n\nexport default ChatBubbleBiBot\n","import * as React from 'react'\n\nimport ChatBubbleBiBot from './component/bibot';\nimport { AppProvider } from './context/AppContext';\nimport { MantineProvider } from '@mantine/core'\ninterface Props {\n clientId: string\n}\nexport const BiBot = ({ clientId }: Props) => {\n return (\n <AppProvider>\n <MantineProvider>\n <ChatBubbleBiBot clientId={clientId}/>\n </MantineProvider>\n \n </AppProvider>\n )\n \n}\n"],"names":["baseUrls","inference","endpoints","domain","resources","inferenceBaseURL","createPluginAxiosInstance","params","headers","instance","axios","create","_extends","baseURL","timeout","interceptors","response","use","error","errMsg","data","message","request","Promise","resolve","reject","Error","e","appStateEnums","appReducer","state","action","console","log","type","BIBOT","chatIsOpen","SESSION_KEY","getSessionId","sessionId","localStorage","getItem","newSessionId","uuidv4","setItem","dummyDispatch","defaultContextValue","dispatch","AppContext","createContext","AppProvider","_ref","children","APP_STATE_KEY","initialState","_useReducer","useReducer","useEffect","storedStates","parsedStates","JSON","parse","updatedStates","stringify","React","Provider","value","getRemoteClientChatPredefinedQuestions","path","predefinedQ","pluginAxiosInstance","get","then","predefined_messages","getRemoteClientChatBubbleConfig","chatBubble","bgColor","chatColor","title","userImage","askBiBot","q","post","error1","code","includes","_catch","askTimedOutBiBot","tries","error2","error3","bibot","timedOutLocalQ","useBiBotChatBot","sendInputInquiry","setIsLoading","setUserInput","_finallyRethrows","_temp2","userInput","trim","setMessages","messages","concat","sender","text","client_id","clientId","session_id","chat_id","_error$message","_wasThrown","_result","_useState","useState","predefinedQuestions","setPredefinedQuestions","_useState2","showPredefinedQuestions","setShowPredefinedQuestions","_useContext","useContext","_useState3","setChatIsOpen","_useState4","_useState5","_useState6","isLoading","messageEndRef","useRef","_useState7","chatBubbleConfig","setChatBubbleConfig","handlePredefinedQuestionSelect","question","getChatBubbleConfig","useCallback","remotePredefinedQuestions","remoteChatBubbleConfig","current","scrollIntoView","behavior","toggleChat","handleUserInput","target","handleKeyPress","key","_temp","PredefinedQuestions","questions","onSelect","className","styles","map","index","onClick","ChatBubbleBiBot","_ref2","_useBiBotChatBot","style","backgroundColor","_chatBubbleConfig$col","color","alignItems","display","fontWeight","Indicator","inline","size","offset","position","Avatar","src","logo_url","alt","flexDirection","textAlign","paddingLeft","justifyContent","fontSize","lineHeight","length","marginLeft","ref","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","width","height","ChatIcon","BiBot","MantineProvider"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/config/endpointEnums.ts","../src/hooks/usePluginFactory.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/config/appStateEnums.ts","../src/reducers/appReducer.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/sessionManager.tsx","../src/context/AppContext.tsx","../src/services/plugin-api.tsx","../src/hooks/useBiBotChatBot.tsx","../src/component/bibot.tsx","../src/index.tsx"],"sourcesContent":["\nexport const APP_DATA = {\n APP_NAME: 'Bibot'\n}\n\nconst baseUrls = {\n inference: 'https://inference.dev.bibot.thespuka.com/v0',\n}\n\nexport const endpoints = {\n get inference () {\n return baseUrls.inference\n },\n} as const\n\nexport enum domain {\n app = '/app',\n bibot = '/bibot',\n inference = '/inference',\n}\n\nexport enum resources {\n chatBubble = '/chat-bubble-config',\n predefinedQ = '/predefined-q',\n localQ = '/local-q',\n timedOutLocalQ = '/t-local-q',\n q = '/q'\n}\n","import axios from 'axios';\nimport { endpoints } from '../config/endpointEnums';\nconst inferenceBaseURL = endpoints.inference;\n\nexport const createPluginAxiosInstance = (params = {}, headers = {}) => {\n const instance = axios.create({\n baseURL: inferenceBaseURL,\n timeout: 60000, // 1 minute\n headers: {\n 'Content-Type': 'application/json',\n ...headers\n },\n ...params\n });\n\n\n instance.interceptors.response.use(\n (response) => {\n return response\n },\n async (error) => {\n let errMsg = 'An unknown error occurred'\n if (error.response) {\n errMsg = error.response.data.message\n } else if (error.request) {\n errMsg = 'No response received from the server.'\n } else {\n errMsg = `Error setting up the request: ${error.message}`\n }\n return await Promise.reject(new Error(errMsg))\n }\n )\n\n return instance\n}\n\n ","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","export enum appStateEnums {\n BIBOT = 'BIBOT'\n}\n","import { appStateEnums } from '../config/appStateEnums'\nimport type { AppStates, AppAction } from '../types/coreInterfaces'\n\nexport const appReducer = (state: AppStates, action: AppAction): AppStates => {\n console.log('This is the appReducer state', state, action)\n switch (action.type) {\n case appStateEnums.BIBOT:\n return {\n ...state,\n chatIsOpen: action.chatIsOpen\n }\n default:\n return state\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid'\n\nconst SESSION_KEY: string = 'bibotUserSessionId'\n\nconst getSessionId = (): string => {\n const sessionId = localStorage.getItem(SESSION_KEY)\n if (sessionId === null) {\n const newSessionId = uuidv4()\n localStorage.setItem(SESSION_KEY, newSessionId)\n return newSessionId\n }\n return sessionId\n}\n\nexport { getSessionId }\n","import { appStateEnums } from '../config/appStateEnums'\nimport React, { createContext, useReducer, useEffect } from 'react'\nimport { ReactNode } from 'react'\nimport { appReducer } from '../reducers/appReducer'\nimport type { AppContextProps, AppStates } from '../types/coreInterfaces'\nimport { getSessionId } from '../utils/sessionManager'\n\ninterface AppProps {\n children: ReactNode\n}\n\nconst dummyDispatch = () => {} // A no-op function.\n\nconst defaultContextValue: AppContextProps = {\n state: {\n chatIsOpen: false,\n sessionId: getSessionId()\n },\n dispatch: dummyDispatch\n}\n\nconst AppContext = createContext<AppContextProps>(defaultContextValue)\n\nconst AppProvider: React.FC<AppProps> = ({ children }) => {\n const APP_STATE_KEY = 'app_states'\n const initialState: AppStates = {\n chatIsOpen: false,\n sessionId: getSessionId()\n }\n\n const [state, dispatch] = useReducer(appReducer, initialState)\n\n useEffect(() => {\n // Pool the initial states from local storage\n const storedStates = localStorage.getItem(APP_STATE_KEY)\n\n if (storedStates) {\n try {\n const parsedStates = JSON.parse(storedStates)\n\n // Merge stored states with initial states\n const updatedStates = {\n ...initialState,\n ...parsedStates\n }\n console.log(initialState, parsedStates, updatedStates)\n // Dispatch action to update the states\n dispatch({ type: appStateEnums.BIBOT, ...updatedStates })\n } catch (error) {\n console.error('Failed to parse app states from local storage:', error)\n }\n }\n }, [])\n\n useEffect(() => {\n console.log('Changes in state: ', state)\n localStorage.setItem(APP_STATE_KEY, JSON.stringify(state))\n }, [state])\n\n return (\n <AppContext.Provider value={{ state, dispatch }}>\n {children}\n </AppContext.Provider>\n )\n}\n\nexport { AppContext, AppProvider }\n","import { domain, resources } from '../config/endpointEnums'\nimport { createPluginAxiosInstance } from '../hooks/usePluginFactory'\n\nconst pluginAxiosInstance=createPluginAxiosInstance()\n\ninterface Q_DATA_TYPE {\n client_id: string\n q: string\n endSession?: boolean\n session_id: string\n chat_id: string\n tries?: number\n}\n\ninterface RemoteChatBubbleConfigProps {\n bgColor: string,\n chatColor: string,\n title: string,\n userImage: string\n}\n\nasync function askTimedOutBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n // return 'Hello'\n const path=`${domain.bibot}${resources.timedOutLocalQ}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n } catch (error) {\n console.log(error.message)\n return error.message\n }\n}\n\nasync function askBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n const path=`${domain.inference}${resources.q}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n // return 'Hello'\n } catch (error1) {\n console.log(error1.message)\n if (error1.code==='ECONNABORTED'||error1.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 2\n })\n } catch (error2) {\n if (error2.code==='ECONNABORTED'||error2.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 3\n })\n } catch (error3) {\n return error3.message\n }\n } else {\n return error2.message\n }\n }\n } else {\n return error1.message\n }\n }\n}\n// TODO: Emmanuel fix the default returned values, especially the userImage to a default robot image\nasync function getRemoteClientChatBubbleConfig(params: { client_id: string }): Promise<RemoteChatBubbleConfigProps> {\n try {\n // return {\n // bgColor: 'white',\n // chatColor: 'blue',\n // title: 'ChatBot',\n // userImage: 'string'\n // }\n const path=`${domain.inference}${resources.chatBubble}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data\n } catch (error) {\n return {\n bgColor: 'white',\n chatColor: 'blue',\n title: 'ChatBot',\n userImage: 'string'\n }\n }\n}\n\nasync function getRemoteClientChatPredefinedQuestions(params: { client_id: string }): Promise<string[]> {\n try {\n // return ['Hello']\n const path=`${domain.inference}${resources.predefinedQ}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data.predefined_messages\n } catch (error) {\n return ['These are placeholders', 'They will be removed in production', 'This will be empty if there are no predefined questions', 'So hide if there are no predefined questions']\n }\n}\n\nasync function GetPredefinedQuestion (){\n const clientId = '6c74b4bb-0395-4751-a55f-7d065d67c56b'\n try {\n // return [{question: \"q\", answer: \"a\"}]\n const path = `${domain.inference}${resources.predefinedQ}?client_id=${clientId}`\n const response = await pluginAxiosInstance.get(path)\n return response.data\n } catch (error) {\n console.error('Error fetching subscription:', error)\n }\n }\n\nexport {\n askBiBot,\n getRemoteClientChatBubbleConfig,\n getRemoteClientChatPredefinedQuestions,\n GetPredefinedQuestion\n}\n","import { message } from 'antd'\nimport React, { useEffect, useRef, useState, useContext, useCallback } from 'react'\nimport { AppContext } from '../context/AppContext'\n\nimport { v4 as uuidv4 } from 'uuid'\nimport { askBiBot, getRemoteClientChatBubbleConfig, getRemoteClientChatPredefinedQuestions } from '../services/plugin-api'\ninterface UseBiBotChatBotProps {\n clientId: string\n }\n\ninterface ChatBubbleConfigProps {\n bgColor?: string,\n color?: string,\n title?: string,\n logo_url?: string\n}\nconst useBiBotChatBot = ({ clientId }: UseBiBotChatBotProps) => {\n const [predefinedQuestions, setPredefinedQuestions] = useState<string[]>([]) // State to store predefined questions\n const [showPredefinedQuestions, setShowPredefinedQuestions] = useState(true); // State to toggle predefined questions\n const { state } = useContext(AppContext)\n const [ chatIsOpen, setChatIsOpen ] = useState<boolean>(false)\n const [messages, setMessages] = useState<Array<{ sender: 'user' | 'bot', text: string }>>([])\n const [userInput, setUserInput] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const messageEndRef = useRef<HTMLDivElement>(null)\n const [chatBubbleConfig, setChatBubbleConfig] = useState<ChatBubbleConfigProps>()\n\n // Function to handle selecting a predefined question\n const handlePredefinedQuestionSelect = (question: any) => {\n setUserInput(question);\n sendInputInquiry();\n setShowPredefinedQuestions(false); // Hide predefined questions after selection\n }\n \n const getChatBubbleConfig = useCallback(async()=>{\n const remotePredefinedQuestions = await getRemoteClientChatPredefinedQuestions({client_id: clientId})\n if (remotePredefinedQuestions){\n setPredefinedQuestions(remotePredefinedQuestions)\n }\n const remoteChatBubbleConfig = await getRemoteClientChatBubbleConfig({client_id: clientId})\n if (remoteChatBubbleConfig){\n setChatBubbleConfig(remoteChatBubbleConfig)\n }\n },[clientId])\n\n useEffect(()=>{\n void getChatBubbleConfig()\n }, [getChatBubbleConfig])\n \n useEffect(() => {\n if (messageEndRef?.current) { messageEndRef.current.scrollIntoView({ behavior: 'smooth' }) }\n }, [messages])\n\n const toggleChat = () => {\n console.log('This is it', chatIsOpen)\n setChatIsOpen(!chatIsOpen)\n }\n\n const handleUserInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n setUserInput(e.target.value)\n }\n\n async function sendInputInquiry () {\n setIsLoading(true)\n setUserInput('')\n try {\n if (userInput.trim()) {\n // dispatch({ type: appStateEnums.BIBOT, chatIsOpen: true })\n setMessages(messages => [...messages, { sender: 'user', text: userInput }])\n const response = await askBiBot({\n client_id: clientId,\n q: userInput.trim(),\n session_id: state.sessionId,\n chat_id: uuidv4()\n })\n setMessages(messages => [...messages, { sender: 'bot', text: response }])\n }\n } catch (error) {\n void message.error(error?.message ?? 'Failed to get response from server')\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleKeyPress = async (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && !isLoading) {\n await sendInputInquiry()\n }\n }\n return {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n toggleChat,\n sendInputInquiry,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n }\n}\n\nexport { useBiBotChatBot }\n","import { Avatar, Indicator } from '@mantine/core'\nimport { Close, SendRounded } from '@mui/icons-material'\nimport ChatIcon from '@mui/icons-material/Chat'\nimport { Button } from 'antd'\nimport { useBiBotChatBot } from '../hooks'\nimport * as React from 'react'\nimport styles from '../styles.module.css'\n\ninterface bubbleProps {\n clientId: string\n}\n\ninterface PredefinedQuestionsProps {\n onSelect: (question: string) => void\n questions: string[]\n}\n\nconst PredefinedQuestions = ({ questions, onSelect }: PredefinedQuestionsProps) => {\n return (\n <div className={styles['predefined-questions']}>\n {questions.map((question, index) => (\n <div key={index} className={styles['predefined-questions']} onClick={() => onSelect(question)}>\n {question}\n </div>\n ))}\n </div>\n );\n};\n\nconst ChatBubbleBiBot = ({ clientId }: bubbleProps) => {\n const {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n sendInputInquiry,\n toggleChat,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n } = useBiBotChatBot({clientId})\n\n return (\n \n <div className={`chat-bubble ${chatIsOpen ? 'open' : ''}`} style={{ position: 'fixed', bottom: '20px', right: '20px', zIndex: 9999}}>\n {chatIsOpen && (\n <div className={styles[\"chat-window\"]} style={{ backgroundColor: '#fff', position: 'absolute', bottom: '50px', right: '25px', width: 350, height: 500, borderRadius: 10, display: 'flex', flexDirection: 'column', justifyContent: 'space-between' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', borderTopLeftRadius: 8, borderTopRightRadius: 8, display: 'flex', alignItems: 'center', justifyContent: 'flex-start', paddingInline: 15, paddingBlock: 30 }}>\n <div style={{ alignItems: 'center', display: 'flex', color: '#fff', fontWeight: 'bold' }}>\n <Indicator inline size={12} offset={7} position=\"bottom-end\" color={ 'green' }>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} alt=\"profile\" />\n </Indicator>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', textAlign: 'left', paddingLeft: '10px', justifyContent: 'flex-start', color: '#fff' }}>\n <span style={{ fontWeight: 'bold' }}>{chatBubbleConfig?.title}</span>\n {}\n {isLoading ? <span style={{ fontSize: '12px', lineHeight: '0.5' }}>Typing...</span> : <span style={{ fontSize: '12px', lineHeight: '0.5' }}>{'Online'}</span>}\n </div>\n </div>\n <div className={styles[\"message-list\"]} style={{ height: 'calc(100% - 100px)', overflowY: 'auto', padding: 10, display: 'flex', flexGrow: 1, flexDirection: 'column'}}>\n {messages.map((message: { sender: 'user' | 'bot', text: string }, index: number) => (\n message.sender === 'user'\n ? <div key={index} className={`message ${message.sender}`} style={{ marginBottom: 10, padding: '5px 10px', borderRadius: 8, maxWidth: 70, alignSelf: 'flex-end', fontSize: '15px', backgroundColor: '#b8b8b8c6', color:'#000'}}>\n {message.text}\n </div>\n : <div key={index} style={{ display: 'flex' }}>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} size={25} alt=\"profile\" />\n <div className={`message ${message.sender}`} style={{ marginBottom: 10, padding: '5px 10px', borderRadius: 8, alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000'}}>\n {message.text}\n </div>\n </div>\n ))}\n {showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && (\n <PredefinedQuestions questions={predefinedQuestions} onSelect={handlePredefinedQuestionSelect} />\n )}\n {isLoading && <div style={{marginLeft: '20px'}} className='message'> <div className=\"loader\"></div> </div> }\n <div ref={messageEndRef} />\n </div>\n <div className={styles[\"input-area\"]} style={{ display: 'flex', alignItems: 'center', borderTop: '1px solid #ddd', padding: 10, borderBottomLeftRadius: 8, borderBottomRightRadius: 8}}>\n <input\n style={{ outline: 'none', flexGrow: 1, border: 'none', backgroundColor: 'transparent', padding: '5px 10px', marginRight: 10}}\n autoFocus={true}\n type=\"text\"\n value={userInput}\n onChange={handleUserInput}\n onKeyDown={handleKeyPress}\n placeholder=\"Ask a question\"\n />\n <Button disabled={isLoading ?? true} style={{ backgroundColor: 'transparent', color: isLoading ? '#dedede' : chatBubbleConfig?.color }} size='middle' icon={<SendRounded />} onClick={sendInputInquiry}/>\n </div>\n </div>\n )}\n <Button type='link' onClick={toggleChat} className={styles[\"chat-toggle\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', color: '#fff', borderRadius: '50%', width: '60px', height: '60px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n {chatIsOpen ? <Close style={{ width: 30, height: 30, color: '#fff' }} /> : <ChatIcon style={{ width: 30, height: 30, color: '#fff' }}/>}\n </Button>\n </div>\n\n )\n}\n\nexport default ChatBubbleBiBot\n","import * as React from 'react'\n\nimport ChatBubbleBiBot from './component/bibot';\nimport { AppProvider } from './context/AppContext';\nimport { MantineProvider } from '@mantine/core'\ninterface Props {\n clientId: string\n}\nexport const BiBot = ({ clientId }: Props) => {\n return (\n <AppProvider>\n <MantineProvider>\n <ChatBubbleBiBot clientId={clientId}/>\n </MantineProvider>\n \n </AppProvider>\n )\n \n}\n"],"names":["baseUrls","inference","endpoints","domain","resources","inferenceBaseURL","createPluginAxiosInstance","params","headers","instance","axios","create","_extends","baseURL","timeout","interceptors","response","use","error","errMsg","data","message","request","Promise","resolve","reject","Error","e","appStateEnums","appReducer","state","action","console","log","type","BIBOT","chatIsOpen","SESSION_KEY","getSessionId","sessionId","localStorage","getItem","newSessionId","uuidv4","setItem","dummyDispatch","defaultContextValue","dispatch","AppContext","createContext","AppProvider","_ref","children","APP_STATE_KEY","initialState","_useReducer","useReducer","useEffect","storedStates","parsedStates","JSON","parse","updatedStates","stringify","React","Provider","value","getRemoteClientChatPredefinedQuestions","path","predefinedQ","pluginAxiosInstance","get","then","predefined_messages","getRemoteClientChatBubbleConfig","chatBubble","bgColor","chatColor","title","userImage","askBiBot","q","post","error1","code","includes","_catch","askTimedOutBiBot","tries","error2","error3","bibot","timedOutLocalQ","useBiBotChatBot","sendInputInquiry","setIsLoading","setUserInput","_finallyRethrows","_temp2","userInput","trim","setMessages","messages","concat","sender","text","client_id","clientId","session_id","chat_id","_error$message","_wasThrown","_result","_useState","useState","predefinedQuestions","setPredefinedQuestions","_useState2","showPredefinedQuestions","setShowPredefinedQuestions","_useContext","useContext","_useState3","setChatIsOpen","_useState4","_useState5","_useState6","isLoading","messageEndRef","useRef","_useState7","chatBubbleConfig","setChatBubbleConfig","handlePredefinedQuestionSelect","question","getChatBubbleConfig","useCallback","remotePredefinedQuestions","remoteChatBubbleConfig","current","scrollIntoView","behavior","toggleChat","handleUserInput","target","handleKeyPress","key","_temp","PredefinedQuestions","questions","onSelect","className","styles","map","index","onClick","ChatBubbleBiBot","_ref2","_useBiBotChatBot","style","position","bottom","right","zIndex","backgroundColor","width","height","borderRadius","display","flexDirection","justifyContent","_chatBubbleConfig$col","color","borderTopLeftRadius","borderTopRightRadius","alignItems","paddingInline","paddingBlock","fontWeight","Indicator","inline","size","offset","Avatar","src","logo_url","alt","textAlign","paddingLeft","fontSize","lineHeight","overflowY","padding","flexGrow","marginBottom","maxWidth","alignSelf","length","marginLeft","ref","borderTop","borderBottomLeftRadius","borderBottomRightRadius","outline","border","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","ChatIcon","BiBot","MantineProvider"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
@@ -513,16 +513,38 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
513
513
|
predefinedQuestions = _useBiBotChatBot.predefinedQuestions,
|
514
514
|
handlePredefinedQuestionSelect = _useBiBotChatBot.handlePredefinedQuestionSelect;
|
515
515
|
return createElement("div", {
|
516
|
-
className: "chat-bubble " + (chatIsOpen ? 'open' : '')
|
516
|
+
className: "chat-bubble " + (chatIsOpen ? 'open' : ''),
|
517
|
+
style: {
|
518
|
+
position: 'fixed',
|
519
|
+
bottom: '20px',
|
520
|
+
right: '20px',
|
521
|
+
zIndex: 9999
|
522
|
+
}
|
517
523
|
}, chatIsOpen && createElement("div", {
|
518
524
|
className: styles["chat-window"],
|
519
525
|
style: {
|
520
|
-
backgroundColor:
|
526
|
+
backgroundColor: '#fff',
|
527
|
+
position: 'absolute',
|
528
|
+
bottom: '50px',
|
529
|
+
right: '25px',
|
530
|
+
width: 350,
|
531
|
+
height: 500,
|
532
|
+
borderRadius: 10,
|
533
|
+
display: 'flex',
|
534
|
+
flexDirection: 'column',
|
535
|
+
justifyContent: 'space-between'
|
521
536
|
}
|
522
537
|
}, createElement("div", {
|
523
538
|
className: styles["chat-header"],
|
524
539
|
style: {
|
525
|
-
backgroundColor: (_chatBubbleConfig$col = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col : '#dedede'
|
540
|
+
backgroundColor: (_chatBubbleConfig$col = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col : '#dedede',
|
541
|
+
borderTopLeftRadius: 8,
|
542
|
+
borderTopRightRadius: 8,
|
543
|
+
display: 'flex',
|
544
|
+
alignItems: 'center',
|
545
|
+
justifyContent: 'flex-start',
|
546
|
+
paddingInline: 15,
|
547
|
+
paddingBlock: 30
|
526
548
|
}
|
527
549
|
}, createElement("div", {
|
528
550
|
style: {
|
@@ -565,11 +587,29 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
565
587
|
lineHeight: '0.5'
|
566
588
|
}
|
567
589
|
}, 'Online'))), createElement("div", {
|
568
|
-
className: styles["message-list"]
|
590
|
+
className: styles["message-list"],
|
591
|
+
style: {
|
592
|
+
height: 'calc(100% - 100px)',
|
593
|
+
overflowY: 'auto',
|
594
|
+
padding: 10,
|
595
|
+
display: 'flex',
|
596
|
+
flexGrow: 1,
|
597
|
+
flexDirection: 'column'
|
598
|
+
}
|
569
599
|
}, messages.map(function (message, index) {
|
570
600
|
return message.sender === 'user' ? createElement("div", {
|
571
601
|
key: index,
|
572
|
-
className: "message " + message.sender
|
602
|
+
className: "message " + message.sender,
|
603
|
+
style: {
|
604
|
+
marginBottom: 10,
|
605
|
+
padding: '5px 10px',
|
606
|
+
borderRadius: 8,
|
607
|
+
maxWidth: 70,
|
608
|
+
alignSelf: 'flex-end',
|
609
|
+
fontSize: '15px',
|
610
|
+
backgroundColor: '#b8b8b8c6',
|
611
|
+
color: '#000'
|
612
|
+
}
|
573
613
|
}, message.text) : createElement("div", {
|
574
614
|
key: index,
|
575
615
|
style: {
|
@@ -581,7 +621,16 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
581
621
|
size: 25,
|
582
622
|
alt: "profile"
|
583
623
|
}), createElement("div", {
|
584
|
-
className: "message " + message.sender
|
624
|
+
className: "message " + message.sender,
|
625
|
+
style: {
|
626
|
+
marginBottom: 10,
|
627
|
+
padding: '5px 10px',
|
628
|
+
borderRadius: 8,
|
629
|
+
alignSelf: 'flex-start',
|
630
|
+
fontSize: '15px',
|
631
|
+
backgroundColor: '#f0f0f0',
|
632
|
+
color: '#000'
|
633
|
+
}
|
585
634
|
}, message.text));
|
586
635
|
}), showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && createElement(PredefinedQuestions, {
|
587
636
|
questions: predefinedQuestions,
|
@@ -596,8 +645,24 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
596
645
|
}), " "), createElement("div", {
|
597
646
|
ref: messageEndRef
|
598
647
|
})), createElement("div", {
|
599
|
-
className: styles["input-area"]
|
648
|
+
className: styles["input-area"],
|
649
|
+
style: {
|
650
|
+
display: 'flex',
|
651
|
+
alignItems: 'center',
|
652
|
+
borderTop: '1px solid #ddd',
|
653
|
+
padding: 10,
|
654
|
+
borderBottomLeftRadius: 8,
|
655
|
+
borderBottomRightRadius: 8
|
656
|
+
}
|
600
657
|
}, createElement("input", {
|
658
|
+
style: {
|
659
|
+
outline: 'none',
|
660
|
+
flexGrow: 1,
|
661
|
+
border: 'none',
|
662
|
+
backgroundColor: 'transparent',
|
663
|
+
padding: '5px 10px',
|
664
|
+
marginRight: 10
|
665
|
+
},
|
601
666
|
autoFocus: true,
|
602
667
|
type: "text",
|
603
668
|
value: userInput,
|
@@ -618,7 +683,14 @@ var ChatBubbleBiBot = function ChatBubbleBiBot(_ref2) {
|
|
618
683
|
onClick: toggleChat,
|
619
684
|
className: styles["chat-toggle"],
|
620
685
|
style: {
|
621
|
-
backgroundColor: (_chatBubbleConfig$col2 = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col2 : '#dedede'
|
686
|
+
backgroundColor: (_chatBubbleConfig$col2 = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) != null ? _chatBubbleConfig$col2 : '#dedede',
|
687
|
+
color: '#fff',
|
688
|
+
borderRadius: '50%',
|
689
|
+
width: '60px',
|
690
|
+
height: '60px',
|
691
|
+
display: 'flex',
|
692
|
+
alignItems: 'center',
|
693
|
+
justifyContent: 'center'
|
622
694
|
}
|
623
695
|
}, chatIsOpen ? createElement(Close, {
|
624
696
|
style: {
|
package/dist/index.modern.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/config/endpointEnums.ts","../src/hooks/usePluginFactory.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/config/appStateEnums.ts","../src/reducers/appReducer.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/sessionManager.tsx","../src/context/AppContext.tsx","../src/services/plugin-api.tsx","../src/hooks/useBiBotChatBot.tsx","../src/component/bibot.tsx","../src/index.tsx"],"sourcesContent":["\nexport const APP_DATA = {\n APP_NAME: 'Bibot'\n}\n\nconst baseUrls = {\n inference: 'https://inference.dev.bibot.thespuka.com/v0',\n}\n\nexport const endpoints = {\n get inference () {\n return baseUrls.inference\n },\n} as const\n\nexport enum domain {\n app = '/app',\n bibot = '/bibot',\n inference = '/inference',\n}\n\nexport enum resources {\n chatBubble = '/chat-bubble-config',\n predefinedQ = '/predefined-q',\n localQ = '/local-q',\n timedOutLocalQ = '/t-local-q',\n q = '/q'\n}\n","import axios from 'axios';\nimport { endpoints } from '../config/endpointEnums';\nconst inferenceBaseURL = endpoints.inference;\n\nexport const createPluginAxiosInstance = (params = {}, headers = {}) => {\n const instance = axios.create({\n baseURL: inferenceBaseURL,\n timeout: 60000, // 1 minute\n headers: {\n 'Content-Type': 'application/json',\n ...headers\n },\n ...params\n });\n\n\n instance.interceptors.response.use(\n (response) => {\n return response\n },\n async (error) => {\n let errMsg = 'An unknown error occurred'\n if (error.response) {\n errMsg = error.response.data.message\n } else if (error.request) {\n errMsg = 'No response received from the server.'\n } else {\n errMsg = `Error setting up the request: ${error.message}`\n }\n return await Promise.reject(new Error(errMsg))\n }\n )\n\n return instance\n}\n\n ","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","export enum appStateEnums {\n BIBOT = 'BIBOT'\n}\n","import { appStateEnums } from '../config/appStateEnums'\nimport type { AppStates, AppAction } from '../types/coreInterfaces'\n\nexport const appReducer = (state: AppStates, action: AppAction): AppStates => {\n console.log('This is the appReducer state', state, action)\n switch (action.type) {\n case appStateEnums.BIBOT:\n return {\n ...state,\n chatIsOpen: action.chatIsOpen\n }\n default:\n return state\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid'\n\nconst SESSION_KEY: string = 'bibotUserSessionId'\n\nconst getSessionId = (): string => {\n const sessionId = localStorage.getItem(SESSION_KEY)\n if (sessionId === null) {\n const newSessionId = uuidv4()\n localStorage.setItem(SESSION_KEY, newSessionId)\n return newSessionId\n }\n return sessionId\n}\n\nexport { getSessionId }\n","import { appStateEnums } from '../config/appStateEnums'\nimport React, { createContext, useReducer, useEffect } from 'react'\nimport { ReactNode } from 'react'\nimport { appReducer } from '../reducers/appReducer'\nimport type { AppContextProps, AppStates } from '../types/coreInterfaces'\nimport { getSessionId } from '../utils/sessionManager'\n\ninterface AppProps {\n children: ReactNode\n}\n\nconst dummyDispatch = () => {} // A no-op function.\n\nconst defaultContextValue: AppContextProps = {\n state: {\n chatIsOpen: false,\n sessionId: getSessionId()\n },\n dispatch: dummyDispatch\n}\n\nconst AppContext = createContext<AppContextProps>(defaultContextValue)\n\nconst AppProvider: React.FC<AppProps> = ({ children }) => {\n const APP_STATE_KEY = 'app_states'\n const initialState: AppStates = {\n chatIsOpen: false,\n sessionId: getSessionId()\n }\n\n const [state, dispatch] = useReducer(appReducer, initialState)\n\n useEffect(() => {\n // Pool the initial states from local storage\n const storedStates = localStorage.getItem(APP_STATE_KEY)\n\n if (storedStates) {\n try {\n const parsedStates = JSON.parse(storedStates)\n\n // Merge stored states with initial states\n const updatedStates = {\n ...initialState,\n ...parsedStates\n }\n console.log(initialState, parsedStates, updatedStates)\n // Dispatch action to update the states\n dispatch({ type: appStateEnums.BIBOT, ...updatedStates })\n } catch (error) {\n console.error('Failed to parse app states from local storage:', error)\n }\n }\n }, [])\n\n useEffect(() => {\n console.log('Changes in state: ', state)\n localStorage.setItem(APP_STATE_KEY, JSON.stringify(state))\n }, [state])\n\n return (\n <AppContext.Provider value={{ state, dispatch }}>\n {children}\n </AppContext.Provider>\n )\n}\n\nexport { AppContext, AppProvider }\n","import { domain, resources } from '../config/endpointEnums'\nimport { createPluginAxiosInstance } from '../hooks/usePluginFactory'\n\nconst pluginAxiosInstance=createPluginAxiosInstance()\n\ninterface Q_DATA_TYPE {\n client_id: string\n q: string\n endSession?: boolean\n session_id: string\n chat_id: string\n tries?: number\n}\n\ninterface RemoteChatBubbleConfigProps {\n bgColor: string,\n chatColor: string,\n title: string,\n userImage: string\n}\n\nasync function askTimedOutBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n // return 'Hello'\n const path=`${domain.bibot}${resources.timedOutLocalQ}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n } catch (error) {\n console.log(error.message)\n return error.message\n }\n}\n\nasync function askBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n const path=`${domain.inference}${resources.q}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n // return 'Hello'\n } catch (error1) {\n console.log(error1.message)\n if (error1.code==='ECONNABORTED'||error1.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 2\n })\n } catch (error2) {\n if (error2.code==='ECONNABORTED'||error2.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 3\n })\n } catch (error3) {\n return error3.message\n }\n } else {\n return error2.message\n }\n }\n } else {\n return error1.message\n }\n }\n}\n// TODO: Emmanuel fix the default returned values, especially the userImage to a default robot image\nasync function getRemoteClientChatBubbleConfig(params: { client_id: string }): Promise<RemoteChatBubbleConfigProps> {\n try {\n // return {\n // bgColor: 'white',\n // chatColor: 'blue',\n // title: 'ChatBot',\n // userImage: 'string'\n // }\n const path=`${domain.inference}${resources.chatBubble}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data\n } catch (error) {\n return {\n bgColor: 'white',\n chatColor: 'blue',\n title: 'ChatBot',\n userImage: 'string'\n }\n }\n}\n\nasync function getRemoteClientChatPredefinedQuestions(params: { client_id: string }): Promise<string[]> {\n try {\n // return ['Hello']\n const path=`${domain.inference}${resources.predefinedQ}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data.predefined_messages\n } catch (error) {\n return ['These are placeholders', 'They will be removed in production', 'This will be empty if there are no predefined questions', 'So hide if there are no predefined questions']\n }\n}\n\nasync function GetPredefinedQuestion (){\n const clientId = '6c74b4bb-0395-4751-a55f-7d065d67c56b'\n try {\n // return [{question: \"q\", answer: \"a\"}]\n const path = `${domain.inference}${resources.predefinedQ}?client_id=${clientId}`\n const response = await pluginAxiosInstance.get(path)\n return response.data\n } catch (error) {\n console.error('Error fetching subscription:', error)\n }\n }\n\nexport {\n askBiBot,\n getRemoteClientChatBubbleConfig,\n getRemoteClientChatPredefinedQuestions,\n GetPredefinedQuestion\n}\n","import { message } from 'antd'\nimport React, { useEffect, useRef, useState, useContext, useCallback } from 'react'\nimport { AppContext } from '../context/AppContext'\n\nimport { v4 as uuidv4 } from 'uuid'\nimport { askBiBot, getRemoteClientChatBubbleConfig, getRemoteClientChatPredefinedQuestions } from '../services/plugin-api'\ninterface UseBiBotChatBotProps {\n clientId: string\n }\n\ninterface ChatBubbleConfigProps {\n bgColor?: string,\n color?: string,\n title?: string,\n logo_url?: string\n}\nconst useBiBotChatBot = ({ clientId }: UseBiBotChatBotProps) => {\n const [predefinedQuestions, setPredefinedQuestions] = useState<string[]>([]) // State to store predefined questions\n const [showPredefinedQuestions, setShowPredefinedQuestions] = useState(true); // State to toggle predefined questions\n const { state } = useContext(AppContext)\n const [ chatIsOpen, setChatIsOpen ] = useState<boolean>(false)\n const [messages, setMessages] = useState<Array<{ sender: 'user' | 'bot', text: string }>>([])\n const [userInput, setUserInput] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const messageEndRef = useRef<HTMLDivElement>(null)\n const [chatBubbleConfig, setChatBubbleConfig] = useState<ChatBubbleConfigProps>()\n\n // Function to handle selecting a predefined question\n const handlePredefinedQuestionSelect = (question: any) => {\n setUserInput(question);\n sendInputInquiry();\n setShowPredefinedQuestions(false); // Hide predefined questions after selection\n }\n \n const getChatBubbleConfig = useCallback(async()=>{\n const remotePredefinedQuestions = await getRemoteClientChatPredefinedQuestions({client_id: clientId})\n if (remotePredefinedQuestions){\n setPredefinedQuestions(remotePredefinedQuestions)\n }\n const remoteChatBubbleConfig = await getRemoteClientChatBubbleConfig({client_id: clientId})\n if (remoteChatBubbleConfig){\n setChatBubbleConfig(remoteChatBubbleConfig)\n }\n },[clientId])\n\n useEffect(()=>{\n void getChatBubbleConfig()\n }, [getChatBubbleConfig])\n \n useEffect(() => {\n if (messageEndRef?.current) { messageEndRef.current.scrollIntoView({ behavior: 'smooth' }) }\n }, [messages])\n\n const toggleChat = () => {\n console.log('This is it', chatIsOpen)\n setChatIsOpen(!chatIsOpen)\n }\n\n const handleUserInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n setUserInput(e.target.value)\n }\n\n async function sendInputInquiry () {\n setIsLoading(true)\n setUserInput('')\n try {\n if (userInput.trim()) {\n // dispatch({ type: appStateEnums.BIBOT, chatIsOpen: true })\n setMessages(messages => [...messages, { sender: 'user', text: userInput }])\n const response = await askBiBot({\n client_id: clientId,\n q: userInput.trim(),\n session_id: state.sessionId,\n chat_id: uuidv4()\n })\n setMessages(messages => [...messages, { sender: 'bot', text: response }])\n }\n } catch (error) {\n void message.error(error?.message ?? 'Failed to get response from server')\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleKeyPress = async (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && !isLoading) {\n await sendInputInquiry()\n }\n }\n return {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n toggleChat,\n sendInputInquiry,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n }\n}\n\nexport { useBiBotChatBot }\n","import { Avatar, Indicator } from '@mantine/core'\nimport { Close, SendRounded } from '@mui/icons-material'\nimport ChatIcon from '@mui/icons-material/Chat'\nimport { Button } from 'antd'\nimport { useBiBotChatBot } from '../hooks'\nimport * as React from 'react'\nimport styles from '../styles.module.css'\n\ninterface bubbleProps {\n clientId: string\n}\n\ninterface PredefinedQuestionsProps {\n onSelect: (question: string) => void\n questions: string[]\n}\n\nconst PredefinedQuestions = ({ questions, onSelect }: PredefinedQuestionsProps) => {\n return (\n <div className={styles['predefined-questions']}>\n {questions.map((question, index) => (\n <div key={index} className={styles['predefined-questions']} onClick={() => onSelect(question)}>\n {question}\n </div>\n ))}\n </div>\n );\n};\n\nconst ChatBubbleBiBot = ({ clientId }: bubbleProps) => {\n const {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n sendInputInquiry,\n toggleChat,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n } = useBiBotChatBot({clientId})\n\n return (\n \n <div className={`chat-bubble ${chatIsOpen ? 'open' : ''}`}>\n {chatIsOpen && (\n <div className={styles[\"chat-window\"]} style={{ backgroundColor: chatBubbleConfig?.bgColor }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede' }}>\n <div style={{ alignItems: 'center', display: 'flex', color: '#fff', fontWeight: 'bold' }}>\n <Indicator inline size={12} offset={7} position=\"bottom-end\" color={ 'green' }>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} alt=\"profile\" />\n </Indicator>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', textAlign: 'left', paddingLeft: '10px', justifyContent: 'flex-start', color: '#fff' }}>\n <span style={{ fontWeight: 'bold' }}>{chatBubbleConfig?.title}</span>\n {}\n {isLoading ? <span style={{ fontSize: '12px', lineHeight: '0.5' }}>Typing...</span> : <span style={{ fontSize: '12px', lineHeight: '0.5' }}>{'Online'}</span>}\n </div>\n </div>\n <div className={styles[\"message-list\"]}>\n {messages.map((message: { sender: 'user' | 'bot', text: string }, index: number) => (\n message.sender === 'user'\n ? <div key={index} className={`message ${message.sender}`}>\n {message.text}\n </div>\n : <div key={index} style={{ display: 'flex' }}>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} size={25} alt=\"profile\" />\n <div className={`message ${message.sender}`}>\n {message.text}\n </div>\n </div>\n ))}\n {showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && (\n <PredefinedQuestions questions={predefinedQuestions} onSelect={handlePredefinedQuestionSelect} />\n )}\n {isLoading && <div style={{marginLeft: '20px'}} className='message'> <div className=\"loader\"></div> </div> }\n <div ref={messageEndRef} />\n </div>\n <div className={styles[\"input-area\"]}>\n <input\n autoFocus={true}\n type=\"text\"\n value={userInput}\n onChange={handleUserInput}\n onKeyDown={handleKeyPress}\n placeholder=\"Ask a question\"\n />\n <Button disabled={isLoading ?? true} style={{ backgroundColor: 'transparent', color: isLoading ? '#dedede' : chatBubbleConfig?.color }} size='middle' icon={<SendRounded />} onClick={sendInputInquiry}/>\n </div>\n </div>\n )}\n <Button type='link' onClick={toggleChat} className={styles[\"chat-toggle\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede' }}>\n {chatIsOpen ? <Close style={{ width: 30, height: 30, color: '#fff' }} /> : <ChatIcon style={{ width: 30, height: 30, color: '#fff' }}/>}\n </Button>\n </div>\n\n )\n}\n\nexport default ChatBubbleBiBot\n","import * as React from 'react'\n\nimport ChatBubbleBiBot from './component/bibot';\nimport { AppProvider } from './context/AppContext';\nimport { MantineProvider } from '@mantine/core'\ninterface Props {\n clientId: string\n}\nexport const BiBot = ({ clientId }: Props) => {\n return (\n <AppProvider>\n <MantineProvider>\n <ChatBubbleBiBot clientId={clientId}/>\n </MantineProvider>\n \n </AppProvider>\n )\n \n}\n"],"names":["baseUrls","inference","endpoints","domain","resources","inferenceBaseURL","createPluginAxiosInstance","params","headers","instance","axios","create","_extends","baseURL","timeout","interceptors","response","use","error","errMsg","data","message","request","Promise","resolve","reject","Error","e","appStateEnums","appReducer","state","action","console","log","type","BIBOT","chatIsOpen","SESSION_KEY","getSessionId","sessionId","localStorage","getItem","newSessionId","uuidv4","setItem","dummyDispatch","defaultContextValue","dispatch","AppContext","createContext","AppProvider","_ref","children","APP_STATE_KEY","initialState","_useReducer","useReducer","useEffect","storedStates","parsedStates","JSON","parse","updatedStates","stringify","React","Provider","value","getRemoteClientChatPredefinedQuestions","path","predefinedQ","pluginAxiosInstance","get","then","predefined_messages","getRemoteClientChatBubbleConfig","chatBubble","bgColor","chatColor","title","userImage","askBiBot","q","post","error1","code","includes","_catch","askTimedOutBiBot","tries","error2","error3","bibot","timedOutLocalQ","useBiBotChatBot","sendInputInquiry","setIsLoading","setUserInput","_finallyRethrows","_temp2","userInput","trim","setMessages","messages","concat","sender","text","client_id","clientId","session_id","chat_id","_error$message","_wasThrown","_result","_useState","useState","predefinedQuestions","setPredefinedQuestions","_useState2","showPredefinedQuestions","setShowPredefinedQuestions","_useContext","useContext","_useState3","setChatIsOpen","_useState4","_useState5","_useState6","isLoading","messageEndRef","useRef","_useState7","chatBubbleConfig","setChatBubbleConfig","handlePredefinedQuestionSelect","question","getChatBubbleConfig","useCallback","remotePredefinedQuestions","remoteChatBubbleConfig","current","scrollIntoView","behavior","toggleChat","handleUserInput","target","handleKeyPress","key","_temp","PredefinedQuestions","questions","onSelect","className","styles","map","index","onClick","ChatBubbleBiBot","_ref2","_useBiBotChatBot","style","backgroundColor","_chatBubbleConfig$col","color","alignItems","display","fontWeight","Indicator","inline","size","offset","position","Avatar","src","logo_url","alt","flexDirection","textAlign","paddingLeft","justifyContent","fontSize","lineHeight","length","marginLeft","ref","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","width","height","ChatIcon","BiBot","MantineProvider"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/config/endpointEnums.ts","../src/hooks/usePluginFactory.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/config/appStateEnums.ts","../src/reducers/appReducer.ts","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/utils/sessionManager.tsx","../src/context/AppContext.tsx","../src/services/plugin-api.tsx","../src/hooks/useBiBotChatBot.tsx","../src/component/bibot.tsx","../src/index.tsx"],"sourcesContent":["\nexport const APP_DATA = {\n APP_NAME: 'Bibot'\n}\n\nconst baseUrls = {\n inference: 'https://inference.dev.bibot.thespuka.com/v0',\n}\n\nexport const endpoints = {\n get inference () {\n return baseUrls.inference\n },\n} as const\n\nexport enum domain {\n app = '/app',\n bibot = '/bibot',\n inference = '/inference',\n}\n\nexport enum resources {\n chatBubble = '/chat-bubble-config',\n predefinedQ = '/predefined-q',\n localQ = '/local-q',\n timedOutLocalQ = '/t-local-q',\n q = '/q'\n}\n","import axios from 'axios';\nimport { endpoints } from '../config/endpointEnums';\nconst inferenceBaseURL = endpoints.inference;\n\nexport const createPluginAxiosInstance = (params = {}, headers = {}) => {\n const instance = axios.create({\n baseURL: inferenceBaseURL,\n timeout: 60000, // 1 minute\n headers: {\n 'Content-Type': 'application/json',\n ...headers\n },\n ...params\n });\n\n\n instance.interceptors.response.use(\n (response) => {\n return response\n },\n async (error) => {\n let errMsg = 'An unknown error occurred'\n if (error.response) {\n errMsg = error.response.data.message\n } else if (error.request) {\n errMsg = 'No response received from the server.'\n } else {\n errMsg = `Error setting up the request: ${error.message}`\n }\n return await Promise.reject(new Error(errMsg))\n }\n )\n\n return instance\n}\n\n ","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","export enum appStateEnums {\n BIBOT = 'BIBOT'\n}\n","import { appStateEnums } from '../config/appStateEnums'\nimport type { AppStates, AppAction } from '../types/coreInterfaces'\n\nexport const appReducer = (state: AppStates, action: AppAction): AppStates => {\n console.log('This is the appReducer state', state, action)\n switch (action.type) {\n case appStateEnums.BIBOT:\n return {\n ...state,\n chatIsOpen: action.chatIsOpen\n }\n default:\n return state\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid'\n\nconst SESSION_KEY: string = 'bibotUserSessionId'\n\nconst getSessionId = (): string => {\n const sessionId = localStorage.getItem(SESSION_KEY)\n if (sessionId === null) {\n const newSessionId = uuidv4()\n localStorage.setItem(SESSION_KEY, newSessionId)\n return newSessionId\n }\n return sessionId\n}\n\nexport { getSessionId }\n","import { appStateEnums } from '../config/appStateEnums'\nimport React, { createContext, useReducer, useEffect } from 'react'\nimport { ReactNode } from 'react'\nimport { appReducer } from '../reducers/appReducer'\nimport type { AppContextProps, AppStates } from '../types/coreInterfaces'\nimport { getSessionId } from '../utils/sessionManager'\n\ninterface AppProps {\n children: ReactNode\n}\n\nconst dummyDispatch = () => {} // A no-op function.\n\nconst defaultContextValue: AppContextProps = {\n state: {\n chatIsOpen: false,\n sessionId: getSessionId()\n },\n dispatch: dummyDispatch\n}\n\nconst AppContext = createContext<AppContextProps>(defaultContextValue)\n\nconst AppProvider: React.FC<AppProps> = ({ children }) => {\n const APP_STATE_KEY = 'app_states'\n const initialState: AppStates = {\n chatIsOpen: false,\n sessionId: getSessionId()\n }\n\n const [state, dispatch] = useReducer(appReducer, initialState)\n\n useEffect(() => {\n // Pool the initial states from local storage\n const storedStates = localStorage.getItem(APP_STATE_KEY)\n\n if (storedStates) {\n try {\n const parsedStates = JSON.parse(storedStates)\n\n // Merge stored states with initial states\n const updatedStates = {\n ...initialState,\n ...parsedStates\n }\n console.log(initialState, parsedStates, updatedStates)\n // Dispatch action to update the states\n dispatch({ type: appStateEnums.BIBOT, ...updatedStates })\n } catch (error) {\n console.error('Failed to parse app states from local storage:', error)\n }\n }\n }, [])\n\n useEffect(() => {\n console.log('Changes in state: ', state)\n localStorage.setItem(APP_STATE_KEY, JSON.stringify(state))\n }, [state])\n\n return (\n <AppContext.Provider value={{ state, dispatch }}>\n {children}\n </AppContext.Provider>\n )\n}\n\nexport { AppContext, AppProvider }\n","import { domain, resources } from '../config/endpointEnums'\nimport { createPluginAxiosInstance } from '../hooks/usePluginFactory'\n\nconst pluginAxiosInstance=createPluginAxiosInstance()\n\ninterface Q_DATA_TYPE {\n client_id: string\n q: string\n endSession?: boolean\n session_id: string\n chat_id: string\n tries?: number\n}\n\ninterface RemoteChatBubbleConfigProps {\n bgColor: string,\n chatColor: string,\n title: string,\n userImage: string\n}\n\nasync function askTimedOutBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n // return 'Hello'\n const path=`${domain.bibot}${resources.timedOutLocalQ}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n } catch (error) {\n console.log(error.message)\n return error.message\n }\n}\n\nasync function askBiBot(data: Q_DATA_TYPE): Promise<string> {\n try {\n const path=`${domain.inference}${resources.q}`\n const response=await pluginAxiosInstance.post<any>(path, data)\n console.log(response)\n return response.data.message\n // return 'Hello'\n } catch (error1) {\n console.log(error1.message)\n if (error1.code==='ECONNABORTED'||error1.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 2\n })\n } catch (error2) {\n if (error2.code==='ECONNABORTED'||error2.message.includes('Endpoint request timed out')) {\n try {\n return await askTimedOutBiBot({\n ...data,\n tries: 3\n })\n } catch (error3) {\n return error3.message\n }\n } else {\n return error2.message\n }\n }\n } else {\n return error1.message\n }\n }\n}\n// TODO: Emmanuel fix the default returned values, especially the userImage to a default robot image\nasync function getRemoteClientChatBubbleConfig(params: { client_id: string }): Promise<RemoteChatBubbleConfigProps> {\n try {\n // return {\n // bgColor: 'white',\n // chatColor: 'blue',\n // title: 'ChatBot',\n // userImage: 'string'\n // }\n const path=`${domain.inference}${resources.chatBubble}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data\n } catch (error) {\n return {\n bgColor: 'white',\n chatColor: 'blue',\n title: 'ChatBot',\n userImage: 'string'\n }\n }\n}\n\nasync function getRemoteClientChatPredefinedQuestions(params: { client_id: string }): Promise<string[]> {\n try {\n // return ['Hello']\n const path=`${domain.inference}${resources.predefinedQ}`\n const response=await pluginAxiosInstance.get<any>(path, { params })\n return response.data.predefined_messages\n } catch (error) {\n return ['These are placeholders', 'They will be removed in production', 'This will be empty if there are no predefined questions', 'So hide if there are no predefined questions']\n }\n}\n\nasync function GetPredefinedQuestion (){\n const clientId = '6c74b4bb-0395-4751-a55f-7d065d67c56b'\n try {\n // return [{question: \"q\", answer: \"a\"}]\n const path = `${domain.inference}${resources.predefinedQ}?client_id=${clientId}`\n const response = await pluginAxiosInstance.get(path)\n return response.data\n } catch (error) {\n console.error('Error fetching subscription:', error)\n }\n }\n\nexport {\n askBiBot,\n getRemoteClientChatBubbleConfig,\n getRemoteClientChatPredefinedQuestions,\n GetPredefinedQuestion\n}\n","import { message } from 'antd'\nimport React, { useEffect, useRef, useState, useContext, useCallback } from 'react'\nimport { AppContext } from '../context/AppContext'\n\nimport { v4 as uuidv4 } from 'uuid'\nimport { askBiBot, getRemoteClientChatBubbleConfig, getRemoteClientChatPredefinedQuestions } from '../services/plugin-api'\ninterface UseBiBotChatBotProps {\n clientId: string\n }\n\ninterface ChatBubbleConfigProps {\n bgColor?: string,\n color?: string,\n title?: string,\n logo_url?: string\n}\nconst useBiBotChatBot = ({ clientId }: UseBiBotChatBotProps) => {\n const [predefinedQuestions, setPredefinedQuestions] = useState<string[]>([]) // State to store predefined questions\n const [showPredefinedQuestions, setShowPredefinedQuestions] = useState(true); // State to toggle predefined questions\n const { state } = useContext(AppContext)\n const [ chatIsOpen, setChatIsOpen ] = useState<boolean>(false)\n const [messages, setMessages] = useState<Array<{ sender: 'user' | 'bot', text: string }>>([])\n const [userInput, setUserInput] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n const messageEndRef = useRef<HTMLDivElement>(null)\n const [chatBubbleConfig, setChatBubbleConfig] = useState<ChatBubbleConfigProps>()\n\n // Function to handle selecting a predefined question\n const handlePredefinedQuestionSelect = (question: any) => {\n setUserInput(question);\n sendInputInquiry();\n setShowPredefinedQuestions(false); // Hide predefined questions after selection\n }\n \n const getChatBubbleConfig = useCallback(async()=>{\n const remotePredefinedQuestions = await getRemoteClientChatPredefinedQuestions({client_id: clientId})\n if (remotePredefinedQuestions){\n setPredefinedQuestions(remotePredefinedQuestions)\n }\n const remoteChatBubbleConfig = await getRemoteClientChatBubbleConfig({client_id: clientId})\n if (remoteChatBubbleConfig){\n setChatBubbleConfig(remoteChatBubbleConfig)\n }\n },[clientId])\n\n useEffect(()=>{\n void getChatBubbleConfig()\n }, [getChatBubbleConfig])\n \n useEffect(() => {\n if (messageEndRef?.current) { messageEndRef.current.scrollIntoView({ behavior: 'smooth' }) }\n }, [messages])\n\n const toggleChat = () => {\n console.log('This is it', chatIsOpen)\n setChatIsOpen(!chatIsOpen)\n }\n\n const handleUserInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n setUserInput(e.target.value)\n }\n\n async function sendInputInquiry () {\n setIsLoading(true)\n setUserInput('')\n try {\n if (userInput.trim()) {\n // dispatch({ type: appStateEnums.BIBOT, chatIsOpen: true })\n setMessages(messages => [...messages, { sender: 'user', text: userInput }])\n const response = await askBiBot({\n client_id: clientId,\n q: userInput.trim(),\n session_id: state.sessionId,\n chat_id: uuidv4()\n })\n setMessages(messages => [...messages, { sender: 'bot', text: response }])\n }\n } catch (error) {\n void message.error(error?.message ?? 'Failed to get response from server')\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleKeyPress = async (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && !isLoading) {\n await sendInputInquiry()\n }\n }\n return {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n toggleChat,\n sendInputInquiry,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n }\n}\n\nexport { useBiBotChatBot }\n","import { Avatar, Indicator } from '@mantine/core'\nimport { Close, SendRounded } from '@mui/icons-material'\nimport ChatIcon from '@mui/icons-material/Chat'\nimport { Button } from 'antd'\nimport { useBiBotChatBot } from '../hooks'\nimport * as React from 'react'\nimport styles from '../styles.module.css'\n\ninterface bubbleProps {\n clientId: string\n}\n\ninterface PredefinedQuestionsProps {\n onSelect: (question: string) => void\n questions: string[]\n}\n\nconst PredefinedQuestions = ({ questions, onSelect }: PredefinedQuestionsProps) => {\n return (\n <div className={styles['predefined-questions']}>\n {questions.map((question, index) => (\n <div key={index} className={styles['predefined-questions']} onClick={() => onSelect(question)}>\n {question}\n </div>\n ))}\n </div>\n );\n};\n\nconst ChatBubbleBiBot = ({ clientId }: bubbleProps) => {\n const {\n chatIsOpen,\n messages,\n isLoading,\n messageEndRef,\n userInput,\n handleUserInput,\n handleKeyPress,\n sendInputInquiry,\n toggleChat,\n chatBubbleConfig,\n showPredefinedQuestions,\n predefinedQuestions,\n handlePredefinedQuestionSelect,\n } = useBiBotChatBot({clientId})\n\n return (\n \n <div className={`chat-bubble ${chatIsOpen ? 'open' : ''}`} style={{ position: 'fixed', bottom: '20px', right: '20px', zIndex: 9999}}>\n {chatIsOpen && (\n <div className={styles[\"chat-window\"]} style={{ backgroundColor: '#fff', position: 'absolute', bottom: '50px', right: '25px', width: 350, height: 500, borderRadius: 10, display: 'flex', flexDirection: 'column', justifyContent: 'space-between' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', borderTopLeftRadius: 8, borderTopRightRadius: 8, display: 'flex', alignItems: 'center', justifyContent: 'flex-start', paddingInline: 15, paddingBlock: 30 }}>\n <div style={{ alignItems: 'center', display: 'flex', color: '#fff', fontWeight: 'bold' }}>\n <Indicator inline size={12} offset={7} position=\"bottom-end\" color={ 'green' }>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} alt=\"profile\" />\n </Indicator>\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', textAlign: 'left', paddingLeft: '10px', justifyContent: 'flex-start', color: '#fff' }}>\n <span style={{ fontWeight: 'bold' }}>{chatBubbleConfig?.title}</span>\n {}\n {isLoading ? <span style={{ fontSize: '12px', lineHeight: '0.5' }}>Typing...</span> : <span style={{ fontSize: '12px', lineHeight: '0.5' }}>{'Online'}</span>}\n </div>\n </div>\n <div className={styles[\"message-list\"]} style={{ height: 'calc(100% - 100px)', overflowY: 'auto', padding: 10, display: 'flex', flexGrow: 1, flexDirection: 'column'}}>\n {messages.map((message: { sender: 'user' | 'bot', text: string }, index: number) => (\n message.sender === 'user'\n ? <div key={index} className={`message ${message.sender}`} style={{ marginBottom: 10, padding: '5px 10px', borderRadius: 8, maxWidth: 70, alignSelf: 'flex-end', fontSize: '15px', backgroundColor: '#b8b8b8c6', color:'#000'}}>\n {message.text}\n </div>\n : <div key={index} style={{ display: 'flex' }}>\n <Avatar color=\"white\" src={chatBubbleConfig?.logo_url} size={25} alt=\"profile\" />\n <div className={`message ${message.sender}`} style={{ marginBottom: 10, padding: '5px 10px', borderRadius: 8, alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000'}}>\n {message.text}\n </div>\n </div>\n ))}\n {showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && (\n <PredefinedQuestions questions={predefinedQuestions} onSelect={handlePredefinedQuestionSelect} />\n )}\n {isLoading && <div style={{marginLeft: '20px'}} className='message'> <div className=\"loader\"></div> </div> }\n <div ref={messageEndRef} />\n </div>\n <div className={styles[\"input-area\"]} style={{ display: 'flex', alignItems: 'center', borderTop: '1px solid #ddd', padding: 10, borderBottomLeftRadius: 8, borderBottomRightRadius: 8}}>\n <input\n style={{ outline: 'none', flexGrow: 1, border: 'none', backgroundColor: 'transparent', padding: '5px 10px', marginRight: 10}}\n autoFocus={true}\n type=\"text\"\n value={userInput}\n onChange={handleUserInput}\n onKeyDown={handleKeyPress}\n placeholder=\"Ask a question\"\n />\n <Button disabled={isLoading ?? true} style={{ backgroundColor: 'transparent', color: isLoading ? '#dedede' : chatBubbleConfig?.color }} size='middle' icon={<SendRounded />} onClick={sendInputInquiry}/>\n </div>\n </div>\n )}\n <Button type='link' onClick={toggleChat} className={styles[\"chat-toggle\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', color: '#fff', borderRadius: '50%', width: '60px', height: '60px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\n {chatIsOpen ? <Close style={{ width: 30, height: 30, color: '#fff' }} /> : <ChatIcon style={{ width: 30, height: 30, color: '#fff' }}/>}\n </Button>\n </div>\n\n )\n}\n\nexport default ChatBubbleBiBot\n","import * as React from 'react'\n\nimport ChatBubbleBiBot from './component/bibot';\nimport { AppProvider } from './context/AppContext';\nimport { MantineProvider } from '@mantine/core'\ninterface Props {\n clientId: string\n}\nexport const BiBot = ({ clientId }: Props) => {\n return (\n <AppProvider>\n <MantineProvider>\n <ChatBubbleBiBot clientId={clientId}/>\n </MantineProvider>\n \n </AppProvider>\n )\n \n}\n"],"names":["baseUrls","inference","endpoints","domain","resources","inferenceBaseURL","createPluginAxiosInstance","params","headers","instance","axios","create","_extends","baseURL","timeout","interceptors","response","use","error","errMsg","data","message","request","Promise","resolve","reject","Error","e","appStateEnums","appReducer","state","action","console","log","type","BIBOT","chatIsOpen","SESSION_KEY","getSessionId","sessionId","localStorage","getItem","newSessionId","uuidv4","setItem","dummyDispatch","defaultContextValue","dispatch","AppContext","createContext","AppProvider","_ref","children","APP_STATE_KEY","initialState","_useReducer","useReducer","useEffect","storedStates","parsedStates","JSON","parse","updatedStates","stringify","React","Provider","value","getRemoteClientChatPredefinedQuestions","path","predefinedQ","pluginAxiosInstance","get","then","predefined_messages","getRemoteClientChatBubbleConfig","chatBubble","bgColor","chatColor","title","userImage","askBiBot","q","post","error1","code","includes","_catch","askTimedOutBiBot","tries","error2","error3","bibot","timedOutLocalQ","useBiBotChatBot","sendInputInquiry","setIsLoading","setUserInput","_finallyRethrows","_temp2","userInput","trim","setMessages","messages","concat","sender","text","client_id","clientId","session_id","chat_id","_error$message","_wasThrown","_result","_useState","useState","predefinedQuestions","setPredefinedQuestions","_useState2","showPredefinedQuestions","setShowPredefinedQuestions","_useContext","useContext","_useState3","setChatIsOpen","_useState4","_useState5","_useState6","isLoading","messageEndRef","useRef","_useState7","chatBubbleConfig","setChatBubbleConfig","handlePredefinedQuestionSelect","question","getChatBubbleConfig","useCallback","remotePredefinedQuestions","remoteChatBubbleConfig","current","scrollIntoView","behavior","toggleChat","handleUserInput","target","handleKeyPress","key","_temp","PredefinedQuestions","questions","onSelect","className","styles","map","index","onClick","ChatBubbleBiBot","_ref2","_useBiBotChatBot","style","position","bottom","right","zIndex","backgroundColor","width","height","borderRadius","display","flexDirection","justifyContent","_chatBubbleConfig$col","color","borderTopLeftRadius","borderTopRightRadius","alignItems","paddingInline","paddingBlock","fontWeight","Indicator","inline","size","offset","Avatar","src","logo_url","alt","textAlign","paddingLeft","fontSize","lineHeight","overflowY","padding","flexGrow","marginBottom","maxWidth","alignSelf","length","marginLeft","ref","borderTop","borderBottomLeftRadius","borderBottomRightRadius","outline","border","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","ChatIcon","BiBot","MantineProvider"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "bibot",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.12",
|
4
4
|
"description": "Made with create-react-library",
|
5
5
|
"author": "chrisdjin",
|
6
6
|
"license": "ISC",
|
@@ -27,6 +27,7 @@
|
|
27
27
|
"react": "^18.2.0"
|
28
28
|
},
|
29
29
|
"devDependencies": {
|
30
|
+
"@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
|
30
31
|
"@testing-library/jest-dom": "^6.4.5",
|
31
32
|
"@testing-library/react": "^15.0.7",
|
32
33
|
"@testing-library/user-event": "^14.5.2",
|
@@ -34,6 +35,7 @@
|
|
34
35
|
"@types/node": "^20.12.11",
|
35
36
|
"@types/react": "^18.2.0",
|
36
37
|
"@types/react-dom": "^18.3.0",
|
38
|
+
"@types/uuid": "^9.0.8",
|
37
39
|
"@typescript-eslint/eslint-plugin": "^7.8.0",
|
38
40
|
"@typescript-eslint/parser": "^7.8.0",
|
39
41
|
"babel-eslint": "^10.0.3",
|
@@ -57,22 +59,23 @@
|
|
57
59
|
"react": "^18.2.0",
|
58
60
|
"react-dom": "^18.2.0",
|
59
61
|
"typescript": "^5.4.5",
|
60
|
-
"uuid": "^9.0.1"
|
61
|
-
"@types/uuid": "^9.0.8"
|
62
|
+
"uuid": "^9.0.1"
|
62
63
|
},
|
63
64
|
"files": [
|
64
65
|
"dist"
|
65
66
|
],
|
66
67
|
"dependencies": {
|
67
|
-
"react-scripts": "^5.0.1",
|
68
68
|
"@emotion/react": "^11.11.4",
|
69
69
|
"@emotion/styled": "^11.11.5",
|
70
|
-
"antd": "^5.9.4",
|
71
|
-
"axios": "^1.6.7",
|
72
70
|
"@mantine/core": "^7.6.1",
|
73
71
|
"@mantine/hooks": "^7.6.1",
|
74
72
|
"@mantine/notifications": "^7.6.1",
|
75
73
|
"@mui/icons-material": "^5.14.13",
|
76
|
-
"@mui/material": "^5.15.9"
|
74
|
+
"@mui/material": "^5.15.9",
|
75
|
+
"antd": "^5.9.4",
|
76
|
+
"axios": "^1.6.7",
|
77
|
+
"postcss": "^8.4.38",
|
78
|
+
"postcss-loader": "^8.1.1",
|
79
|
+
"react-scripts": "^5.0.1"
|
77
80
|
}
|
78
81
|
}
|