bibot 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -290,8 +290,35 @@ var askBiBot = function askBiBot(data) {
290
290
  return Promise.resolve(_catch(function () {
291
291
  var path = "" + domain.inference + resources.q;
292
292
  return Promise.resolve(pluginAxiosInstance.post(path, data)).then(function (response) {
293
- console.log(response);
294
- return response.data.message;
293
+ if (response.data.message === defaultSlacker) {
294
+ return _catch(function () {
295
+ return Promise.resolve(new Promise(function (resolve) {
296
+ return setTimeout(resolve, 6000);
297
+ })).then(function () {
298
+ return Promise.resolve(askTimedOutBiBot(_extends({}, data, {
299
+ tries: 2
300
+ })));
301
+ });
302
+ }, function (error2) {
303
+ if (error2.code === 'ECONNABORTED' || error2.message.includes('Endpoint request timed out')) {
304
+ return _catch(function () {
305
+ return Promise.resolve(new Promise(function (resolve) {
306
+ return setTimeout(resolve, 6000);
307
+ })).then(function () {
308
+ return Promise.resolve(askTimedOutBiBot(_extends({}, data, {
309
+ tries: 3
310
+ })));
311
+ });
312
+ }, function (error3) {
313
+ return error3.message;
314
+ });
315
+ } else {
316
+ return error2.message;
317
+ }
318
+ });
319
+ } else {
320
+ return response.data.message;
321
+ }
295
322
  });
296
323
  }, function (error1) {
297
324
  console.log(error1.message);
@@ -337,6 +364,7 @@ var askTimedOutBiBot = function askTimedOutBiBot(data) {
337
364
  return Promise.reject(e);
338
365
  }
339
366
  };
367
+ var defaultSlacker = "Unfortunately I could not find any information that reasonably answers that question. I just forwarded your inquiry to support, they will respond ASAP.";
340
368
  var pluginAxiosInstance = createPluginAxiosInstance();
341
369
 
342
370
  var useBiBotChatBot = function useBiBotChatBot(_ref) {
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' : ''}`} 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', border: '2px solid #dedede' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', height: '50px', 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', textAlign: 'left'}}>\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, maxWidth: '70%', alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000', textAlign: 'left' }}>\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","border","_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","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","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'\nconst defaultSlacker = \"Unfortunately I could not find any information that reasonably answers that question. I just forwarded your inquiry to support, they will respond ASAP.\"\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 if (response.data.message === defaultSlacker) {\n try {\n // TODO: Let's improve this for dynamic effect\n await new Promise(resolve => setTimeout(resolve, 6000))\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 await new Promise(resolve => setTimeout(resolve, 6000))\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 \n } else {\n return response.data.message\n }\n \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\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', border: '2px solid #dedede' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', height: '50px', 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', textAlign: 'left'}}>\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, maxWidth: '70%', alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000', textAlign: 'left' }}>\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","defaultSlacker","_catch","setTimeout","askTimedOutBiBot","tries","error2","code","includes","error3","error1","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","border","_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","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","ChatIcon","BiBot","MantineProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,QAAQ,GAAG;EACfC,SAAS,EAAE;CACZ;AAEM,IAAMC,SAAS,GAAG;EACvB,IAAID,SAASA;IACX,OAAOD,QAAQ,CAACC,SAAS;;CAEnB;AAEV,IAAYE,MAIX;AAJD,WAAYA,MAAM;EAChBA,sBAAY;EACZA,0BAAgB;EAChBA,kCAAwB;AAC1B,CAAC,EAJWA,MAAM,KAANA,MAAM;AAMlB,IAAYC,SAMX;AAND,WAAYA,SAAS;EACnBA,+CAAkC;EAClCA,0CAA6B;EAC7BA,gCAAmB;EACnBA,0CAA6B;EAC7BA,qBAAQ;AACV,CAAC,EANWA,SAAS,KAATA,SAAS;;ACnBrB,IAAMC,gBAAgB,GAAGH,SAAS,CAACD,SAAS;AAE5C,AAAO,IAAMK,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,MAAM,EAAOC,OAAO;MAApBD,MAAM;IAANA,MAAM,GAAG,EAAE;;EAAA,IAAEC,OAAO;IAAPA,OAAO,GAAG,EAAE;;EACjE,IAAMC,QAAQ,GAAGC,KAAK,CAACC,MAAM,CAAAC,QAAA;IAC3BC,OAAO,EAAER,gBAAgB;IACzBS,OAAO,EAAE,KAAK;IACdN,OAAO,EAAAI,QAAA;MACL,cAAc,EAAE;OACbJ,OAAO;KAETD,MAAM,CACV,CAAC;EAGFE,QAAQ,CAACM,YAAY,CAACC,QAAQ,CAACC,GAAG,CAChC,UAACD,QAAQ;IACP,OAAOA,QAAQ;GAChB,YACME,KAAK;IAAA;MACV,IAAIC,MAAM,GAAG,2BAA2B;MACxC,IAAID,KAAK,CAACF,QAAQ,EAAE;QAClBG,MAAM,GAAGD,KAAK,CAACF,QAAQ,CAACI,IAAI,CAACC,OAAO;OACrC,MAAM,IAAIH,KAAK,CAACI,OAAO,EAAE;QACxBH,MAAM,GAAG,uCAAuC;OACjD,MAAM;QACLA,MAAM,sCAAoCD,KAAK,CAACG,OAAS;;MAC1D,OAAAE,OAAA,CAAAC,OAAA,CACYD,OAAO,CAACE,MAAM,CAAC,IAAIC,KAAK,CAACP,MAAM,CAAC,CAAC;KAC/C,QAAAQ,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;IACF;EAED,OAAOlB,QAAQ;AACjB,CAAC;;AClCD;AACA,AAkKA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA;AACA,AAAO,SAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE;AAClD,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5B,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,EAAE;AACF,CAAC,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;;ACzkBD,IAAYmB,aAEX;AAFD,WAAYA,aAAa;EACvBA,gCAAe;AACjB,CAAC,EAFWA,aAAa,KAAbA,aAAa;;ACGlB,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAgB,EAAEC,MAAiB;EAC5DC,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEH,KAAK,EAAEC,MAAM,CAAC;EAC1D,QAAQA,MAAM,CAACG,IAAI;IACjB,KAAKN,aAAa,CAACO,KAAK;MACtB,OAAAvB,QAAA,KACKkB,KAAK;QACRM,UAAU,EAAEL,MAAM,CAACK;;IAEvB;MACE,OAAON,KAAK;;AAElB,CAAC;;ACdD;AACA;AACA;AACA,IAAI,eAAe,CAAC;AACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC,AAAe,SAAS,GAAG,GAAG;AAC9B;AACA,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB;AACA,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrH;AACA,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,MAAM,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;AAClI,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC;;CAAC,DChBD;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB;AACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA,AAAO,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD;AACA;AACA,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACrf,CAAC;;AChBD,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxG,aAAe;AACf,EAAE,UAAU;AACZ,CAAC;;EAAC,FCCF,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAClC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AACxD;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC;AACA,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;AACzB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;;ACxBD,IAAMO,WAAW,GAAW,oBAAoB;AAEhD,IAAMC,YAAY,GAAG,SAAfA,YAAYA;EAChB,IAAMC,SAAS,GAAGC,YAAY,CAACC,OAAO,CAACJ,WAAW,CAAC;EACnD,IAAIE,SAAS,KAAK,IAAI,EAAE;IACtB,IAAMG,YAAY,GAAGC,EAAM,EAAE;IAC7BH,YAAY,CAACI,OAAO,CAACP,WAAW,EAAEK,YAAY,CAAC;IAC/C,OAAOA,YAAY;;EAErB,OAAOH,SAAS;AAClB,CAAC;;ACDD,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,KAAW;AAE9B,IAAMC,mBAAmB,GAAoB;EAC3ChB,KAAK,EAAE;IACLM,UAAU,EAAE,KAAK;IACjBG,SAAS,EAAED,YAAY;GACxB;EACDS,QAAQ,EAAEF;CACX;AAED,IAAMG,UAAU,GAAGC,mBAAa,CAAkBH,mBAAmB,CAAC;AAEtE,IAAMI,WAAW,GAAuB,SAAlCA,WAAWA,CAAAC,IAAA;MAA0BC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACjD,IAAMC,aAAa,GAAG,YAAY;EAClC,IAAMC,YAAY,GAAc;IAC9BlB,UAAU,EAAE,KAAK;IACjBG,SAAS,EAAED,YAAY;GACxB;EAED,IAAAiB,WAAA,GAA0BC,gBAAU,CAAC3B,UAAU,EAAEyB,YAAY,CAAC;IAAvDxB,KAAK,GAAAyB,WAAA;IAAER,QAAQ,GAAAQ,WAAA;EAEtBE,eAAS,CAAC;IAER,IAAMC,YAAY,GAAGlB,YAAY,CAACC,OAAO,CAACY,aAAa,CAAC;IAExD,IAAIK,YAAY,EAAE;MAChB,IAAI;QACF,IAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACH,YAAY,CAAC;QAG7C,IAAMI,aAAa,GAAAlD,QAAA,KACd0C,YAAY,EACZK,YAAY,CAChB;QACD3B,OAAO,CAACC,GAAG,CAACqB,YAAY,EAAEK,YAAY,EAAEG,aAAa,CAAC;QAEtDf,QAAQ,CAAAnC,QAAA;UAAGsB,IAAI,EAAEN,aAAa,CAACO;WAAU2B,aAAa,CAAE,CAAC;OAC1D,CAAC,OAAO5C,KAAK,EAAE;QACdc,OAAO,CAACd,KAAK,CAAC,gDAAgD,EAAEA,KAAK,CAAC;;;GAG3E,EAAE,EAAE,CAAC;EAENuC,eAAS,CAAC;IACRzB,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEH,KAAK,CAAC;IACxCU,YAAY,CAACI,OAAO,CAACS,aAAa,EAAEO,IAAI,CAACG,SAAS,CAACjC,KAAK,CAAC,CAAC;GAC3D,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OACEkC,6BAAChB,UAAU,CAACiB,QAAQ;IAACC,KAAK,EAAE;MAAEpC,KAAK,EAALA,KAAK;MAAEiB,QAAQ,EAARA;;KAClCK,QAAQ,CACW;AAE1B,CAAC;;ACyEE,IArBYe,sCAAsC,YAAtCA,sCAAsCA,CAAC5D,MAA6B;4CAC3E;IAEA,IAAM6D,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAACiE,WAAa;IAAA,OAAA9C,OAAA,CAAAC,OAAA,CACnC8C,mBAAmB,CAACC,GAAG,CAAMH,IAAI,EAAE;MAAE7D,MAAM,EAANA;KAAQ,CAAC,EAAAiE,IAAA,WAA7DxD,QAAQ;MACd,OAAOA,QAAQ,CAACI,IAAI,CAACqD,mBAAmB;;GAC3C,cAAe;IACZ,OAAO,CAAC,wBAAwB,EAAE,oCAAoC,EAAE,yDAAyD,EAAE,8CAA8C,CAAC;GACrL;AACL,CAAC;AAAA,IA9BcC,+BAA+B,YAA/BA,+BAA+BA,CAACnE,MAA6B;EAAA;8CACpE;MAOA,IAAM6D,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAACuE,UAAY;MAAA,OAAApD,OAAA,CAAAC,OAAA,CAClC8C,mBAAmB,CAACC,GAAG,CAAMH,IAAI,EAAE;QAAE7D,MAAM,EAANA;OAAQ,CAAC,EAAAiE,IAAA,WAA7DxD,QAAQ;QACd,OAAOA,QAAQ,CAACI,IAAI;;KACvB,cAAe;MACZ,OAAO;QACHwD,OAAO,EAAE,OAAO;QAChBC,SAAS,EAAE,MAAM;QACjBC,KAAK,EAAE,SAAS;QAChBC,SAAS,EAAE;OACd;KACJ;GACJ,QAAApD,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AAAA,IAhFcqD,QAAQ,YAARA,QAAQA,CAAC5D,IAAiB;EAAA;8CACjC;MACA,IAAMgD,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAAC6E,CAAG;MAAA,OAAA1D,OAAA,CAAAC,OAAA,CACzB8C,mBAAmB,CAACY,IAAI,CAAMd,IAAI,EAAEhD,IAAI,CAAC,EAAAoD,IAAA,WAAxDxD,QAAQ;QAAA,IACVA,QAAQ,CAACI,IAAI,CAACC,OAAO,KAAK8D,cAAc;UAAA,OAAAC,MAAA,aACpC;YAAA,OAAA7D,OAAA,CAAAC,OAAA,CAEM,IAAID,OAAO,CAAC,UAAAC,OAAO;cAAA,OAAI6D,UAAU,CAAC7D,OAAO,EAAE,IAAI,CAAC;cAAC,EAAAgD,IAAA;cAAA,OAAAjD,OAAA,CAAAC,OAAA,CAC1C8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;gBACPmE,KAAK,EAAE;gBACV,CAAC;;WACL,YAAQC,MAAM,EAAE;YAAA,IACTA,MAAM,CAACC,IAAI,KAAK,cAAc,IAAID,MAAM,CAACnE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;cAAA,OAAAN,MAAA,aACnF;gBAAA,OAAA7D,OAAA,CAAAC,OAAA,CACM,IAAID,OAAO,CAAC,UAAAC,OAAO;kBAAA,OAAI6D,UAAU,CAAC7D,OAAO,EAAE,IAAI,CAAC;kBAAC,EAAAgD,IAAA;kBAAA,OAAAjD,OAAA,CAAAC,OAAA,CAC1C8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;oBACPmE,KAAK,EAAE;oBACV,CAAC;;eACL,YAAQI,MAAM,EAAE;gBACb,OAAOA,MAAM,CAACtE,OAAO;eACxB;;cAED,OAAOmE,MAAM,CAACnE,OAAO;;WAE5B;;UAGD,OAAOL,QAAQ,CAACI,IAAI,CAACC,OAAO;;;KAGnC,YAAQuE,MAAM,EAAE;MACb5D,OAAO,CAACC,GAAG,CAAC2D,MAAM,CAACvE,OAAO,CAAC;MAAA,IACvBuE,MAAM,CAACH,IAAI,KAAG,cAAc,IAAEG,MAAM,CAACvE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;QAAA,OAAAN,MAAA,aAC/E;UAAA,OAAA7D,OAAA,CAAAC,OAAA,CACa8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;YACPmE,KAAK,EAAE;YACV,CAAC;SACL,YAAQC,MAAM,EAAE;UAAA,IACTA,MAAM,CAACC,IAAI,KAAG,cAAc,IAAED,MAAM,CAACnE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;YAAA,OAAAN,MAAA,aAC/E;cAAA,OAAA7D,OAAA,CAAAC,OAAA,CACa8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;gBACPmE,KAAK,EAAE;gBACV,CAAC;aACL,YAAQI,MAAM,EAAE;cACb,OAAOA,MAAM,CAACtE,OAAO;aACxB;;YAED,OAAOmE,MAAM,CAACnE,OAAO;;SAE5B;;QAED,OAAOuE,MAAM,CAACvE,OAAO;;KAE5B;GACJ,QAAAM,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AAAA,IAvEc2D,gBAAgB,YAAhBA,gBAAgBA,CAAClE,IAAiB;EAAA;8CACzC;MAEA,IAAMgD,IAAI,QAAIjE,MAAM,CAAC0F,KAAK,GAAGzF,SAAS,CAAC0F,cAAgB;MAAA,OAAAvE,OAAA,CAAAC,OAAA,CAClC8C,mBAAmB,CAACY,IAAI,CAAMd,IAAI,EAAEhD,IAAI,CAAC,EAAAoD,IAAA,WAAxDxD,QAAQ;QACdgB,OAAO,CAACC,GAAG,CAACjB,QAAQ,CAAC;QACrB,OAAOA,QAAQ,CAACI,IAAI,CAACC,OAAO;;KAC/B,YAAQH,KAAK,EAAE;MACZc,OAAO,CAACC,GAAG,CAACf,KAAK,CAACG,OAAO,CAAC;MAC1B,OAAOH,KAAK,CAACG,OAAO;KACvB;GACJ,QAAAM,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AA9BD,IAAMwD,cAAc,GAAG,yJAAyJ;AAChL,IAAMb,mBAAmB,GAAChE,yBAAyB,EAAE;;ACarD,IAAMyF,eAAe,GAAG,SAAlBA,eAAeA,CAAA5C,IAAA;MA8CJ6C,gBAAgB,YAAhBA,gBAAgBA;IAAA;MAC7BC,YAAY,CAAC,IAAI,CAAC;MAClBC,YAAY,CAAC,EAAE,CAAC;MAAA,OAAA3E,OAAA,CAAAC,OAAA,CAAA2E,gBAAA;QAAA,OAAAf,MAAA,aACZ;UAAA,IAAAgB,MAAA;YAAA,IACEC,SAAS,CAACC,IAAI,EAAE;cAElBC,WAAW,CAAC,UAAAC,QAAQ;gBAAA,UAAAC,MAAA,CAAQD,QAAQ,GAAE;kBAAEE,MAAM,EAAE,MAAM;kBAAEC,IAAI,EAAEN;iBAAW;eAAC,CAAC;cAAA,OAAA9E,OAAA,CAAAC,OAAA,CACpDwD,QAAQ,CAAC;gBAC9B4B,SAAS,EAAEC,QAAQ;gBACnB5B,CAAC,EAAEoB,SAAS,CAACC,IAAI,EAAE;gBACnBQ,UAAU,EAAEhF,KAAK,CAACS,SAAS;gBAC3BwE,OAAO,EAAEpE,EAAM;eAChB,CAAC,EAAA6B,IAAA,WALIxD,QAAQ;gBAMduF,WAAW,CAAC,UAAAC,QAAQ;kBAAA,UAAAC,MAAA,CAAQD,QAAQ,GAAE;oBAAEE,MAAM,EAAE,KAAK;oBAAEC,IAAI,EAAE3F;mBAAU;iBAAC,CAAC;;;;UAAA,IAAAoF,MAAA,IAAAA,MAAA,CAAA5B,IAAA,SAAA4B,MAAA,CAAA5B,IAAA;SAE5E,YAAQtD,KAAK,EAAE;UAAA,IAAA8F,cAAA;UACd,KAAK3F,YAAO,CAACH,KAAK,EAAA8F,cAAA,GAAC9F,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,OAAO,YAAA2F,cAAA,GAAI,oCAAoC,CAAC;SAC3E;mBAAAC,UAAA,EAAAC,OAAA;QACCjB,YAAY,CAAC,KAAK,CAAC;QAAA,IAAAgB,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;KAEtB,QAAAvF,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;;EAAA,IAlEwBkF,QAAQ,GAAA1D,IAAA,CAAR0D,QAAQ;EACjC,IAAAM,SAAA,GAAsDC,cAAQ,CAAW,EAAE,CAAC;IAArEC,mBAAmB,GAAAF,SAAA;IAAEG,sBAAsB,GAAAH,SAAA;EAClD,IAAAI,UAAA,GAA8DH,cAAQ,CAAC,IAAI,CAAC;IAArEI,uBAAuB,GAAAD,UAAA;IAAEE,0BAA0B,GAAAF,UAAA;EAC1D,IAAAG,WAAA,GAAkBC,gBAAU,CAAC3E,UAAU,CAAC;IAAhClB,KAAK,GAAA4F,WAAA,CAAL5F,KAAK;EACb,IAAA8F,UAAA,GAAsCR,cAAQ,CAAU,KAAK,CAAC;IAAtDhF,UAAU,GAAAwF,UAAA;IAAEC,aAAa,GAAAD,UAAA;EACjC,IAAAE,UAAA,GAAgCV,cAAQ,CAAkD,EAAE,CAAC;IAAtFZ,QAAQ,GAAAsB,UAAA;IAAEvB,WAAW,GAAAuB,UAAA;EAC5B,IAAAC,UAAA,GAAkCX,cAAQ,CAAC,EAAE,CAAC;IAAvCf,SAAS,GAAA0B,UAAA;IAAE7B,YAAY,GAAA6B,UAAA;EAC9B,IAAAC,UAAA,GAAkCZ,cAAQ,CAAC,KAAK,CAAC;IAA1Ca,SAAS,GAAAD,UAAA;IAAE/B,YAAY,GAAA+B,UAAA;EAC9B,IAAME,aAAa,GAAGC,YAAM,CAAiB,IAAI,CAAC;EAClD,IAAAC,UAAA,GAAgDhB,cAAQ,EAAyB;IAA1EiB,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAGxC,IAAMG,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAIC,QAAa;IACnDtC,YAAY,CAACsC,QAAQ,CAAC;IACtBxC,gBAAgB,EAAE;IAClByB,0BAA0B,CAAC,KAAK,CAAC;GAClC;EAEL,IAAMgB,mBAAmB,GAAGC,iBAAW;IAAA;6BACGvE,sCAAsC,CAAC;QAACyC,SAAS,EAAEC;OAAS,CAAC,EAAArC,IAAA,WAA/FmE,yBAAyB;QAC/B,IAAIA,yBAAyB,EAAC;UAC1BrB,sBAAsB,CAACqB,yBAAyB,CAAC;;QACpD,OAAApH,OAAA,CAAAC,OAAA,CACoCkD,+BAA+B,CAAC;UAACkC,SAAS,EAAEC;SAAS,CAAC,EAAArC,IAAA,WAArFoE,sBAAsB;UAAA,IACxBA,sBAAsB;YACtBN,mBAAmB,CAACM,sBAAsB,CAAC;;;;KAEhD,QAAAjH,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;KAAC,CAACkF,QAAQ,CAAC,CAAC;EAEbpD,eAAS,CAAC;IACR,KAAKgF,mBAAmB,EAAE;GAC3B,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzBhF,eAAS,CAAC;IACR,IAAIyE,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEW,OAAO,EAAE;MAAEX,aAAa,CAACW,OAAO,CAACC,cAAc,CAAC;QAAEC,QAAQ,EAAE;OAAU,CAAC;;GAC3F,EAAE,CAACvC,QAAQ,CAAC,CAAC;EAEd,IAAMwC,UAAU,GAAG,SAAbA,UAAUA;IACdhH,OAAO,CAACC,GAAG,CAAC,YAAY,EAAEG,UAAU,CAAC;IACrCyF,aAAa,CAAC,CAACzF,UAAU,CAAC;GAC3B;EAED,IAAM6G,eAAe,GAAG,SAAlBA,eAAeA,CAAItH,CAAsC;IAC7DuE,YAAY,CAACvE,CAAC,CAACuH,MAAM,CAAChF,KAAK,CAAC;GAC7B;EAwBD,IAAMiF,cAAc,YAAdA,cAAcA,CAAUxH,CAAwC;IAAA;;YAChEA,CAAC,CAACyH,GAAG,KAAK,OAAO,IAAI,CAACnB,SAAS;UAAA,OAAA1G,OAAA,CAAAC,OAAA,CAC3BwE,gBAAgB,EAAE,EAAAxB,IAAA;;;MAAA,OAAAjD,OAAA,CAAAC,OAAA,CAAA6H,KAAA,IAAAA,KAAA,CAAA7E,IAAA,GAAA6E,KAAA,CAAA7E,IAAA;KAE3B,QAAA7C,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;;EACD,OAAO;IACLS,UAAU,EAAVA,UAAU;IACVoE,QAAQ,EAARA,QAAQ;IACRyB,SAAS,EAATA,SAAS;IACTC,aAAa,EAAbA,aAAa;IACb7B,SAAS,EAATA,SAAS;IACT4C,eAAe,EAAfA,eAAe;IACfE,cAAc,EAAdA,cAAc;IACdH,UAAU,EAAVA,UAAU;IACVhD,gBAAgB,EAAhBA,gBAAgB;IAChBqC,gBAAgB,EAAhBA,gBAAgB;IAChBb,uBAAuB,EAAvBA,uBAAuB;IACvBH,mBAAmB,EAAnBA,mBAAmB;IACnBkB,8BAA8B,EAA9BA;GACD;AACH,CAAC;;;;ACvFD,IAAMe,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAnG,IAAA;MAAMoG,SAAS,GAAApG,IAAA,CAAToG,SAAS;IAAEC,QAAQ,GAAArG,IAAA,CAARqG,QAAQ;EAChD,OACExF;IAAKyF,SAAS,EAAEC,MAAM,CAAC,sBAAsB;KAC1CH,SAAS,CAACI,GAAG,CAAC,UAACnB,QAAQ,EAAEoB,KAAK;IAAA,OAC7B5F;MAAKoF,GAAG,EAAEQ,KAAK;MAAEH,SAAS,EAAEC,MAAM,CAAC,sBAAsB,CAAC;MAAEG,OAAO,EAAE,SAAAA;QAAA,OAAML,QAAQ,CAAChB,QAAQ,CAAC;;OAC1FA,QAAQ,CACL;GACP,CAAC,CACE;AAEV,CAAC;AAED,IAAMsB,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA;;MAAMlD,QAAQ,GAAAkD,KAAA,CAARlD,QAAQ;EACjC,IAAAmD,gBAAA,GAcIjE,eAAe,CAAC;MAACc,QAAQ,EAARA;KAAS,CAAC;IAb7BzE,UAAU,GAAA4H,gBAAA,CAAV5H,UAAU;IACVoE,QAAQ,GAAAwD,gBAAA,CAARxD,QAAQ;IACRyB,SAAS,GAAA+B,gBAAA,CAAT/B,SAAS;IACTC,aAAa,GAAA8B,gBAAA,CAAb9B,aAAa;IACb7B,SAAS,GAAA2D,gBAAA,CAAT3D,SAAS;IACT4C,eAAe,GAAAe,gBAAA,CAAff,eAAe;IACfE,cAAc,GAAAa,gBAAA,CAAdb,cAAc;IACdnD,gBAAgB,GAAAgE,gBAAA,CAAhBhE,gBAAgB;IAChBgD,UAAU,GAAAgB,gBAAA,CAAVhB,UAAU;IACVX,gBAAgB,GAAA2B,gBAAA,CAAhB3B,gBAAgB;IAChBb,uBAAuB,GAAAwC,gBAAA,CAAvBxC,uBAAuB;IACvBH,mBAAmB,GAAA2C,gBAAA,CAAnB3C,mBAAmB;IACnBkB,8BAA8B,GAAAyB,gBAAA,CAA9BzB,8BAA8B;EAGhC,OAEEvE;IAAKyF,SAAS,oBAAiBrH,UAAU,GAAG,MAAM,GAAG,EAAE,CAAE;IAAE6H,KAAK,EAAE;MAAEC,QAAQ,EAAE,OAAO;MAAEC,MAAM,EAAE,MAAM;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;;KAC3HjI,UAAU,IACT4B;IAAKyF,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,EAAE,MAAM;MAAEJ,QAAQ,EAAE,UAAU;MAAEC,MAAM,EAAE,MAAM;MAAEC,KAAK,EAAE,MAAM;MAAEG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,GAAG;MAAEC,YAAY,EAAE,EAAE;MAAEC,OAAO,EAAE,MAAM;MAAEC,aAAa,EAAE,QAAQ;MAAEC,cAAc,EAAE,eAAe;MAAEC,MAAM,EAAE;;KAC1P7G;IAAKyF,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,GAAAQ,qBAAA,GAAEzC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C,KAAK,YAAAD,qBAAA,GAAI,SAAS;MAAEN,MAAM,EAAE,MAAM;MAAEQ,mBAAmB,EAAE,CAAC;MAAEC,oBAAoB,EAAE,CAAC;MAAEP,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEN,cAAc,EAAE,YAAY;MAAEO,aAAa,EAAE,EAAE;MAAEC,YAAY,EAAE;;KAC5QpH;IAAKiG,KAAK,EAAE;MAAEiB,UAAU,EAAE,QAAQ;MAAER,OAAO,EAAE,MAAM;MAAEK,KAAK,EAAE,MAAM;MAAEM,UAAU,EAAE;;KAChFrH,oBAACsH,cAAS;IAACC,MAAM;IAACC,IAAI,EAAE,EAAE;IAAEC,MAAM,EAAE,CAAC;IAAEvB,QAAQ,EAAC,YAAY;IAACa,KAAK,EAAG;KACrE/G,oBAAC0H,WAAM;IAACX,KAAK,EAAC,OAAO;IAACY,GAAG,EAAEtD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEuD,QAAQ;IAAEC,GAAG,EAAC;IAAY,CACzD,CACL,EACN7H;IAAKiG,KAAK,EAAE;MAAES,OAAO,EAAE,MAAM;MAAEC,aAAa,EAAE,QAAQ;MAAEmB,SAAS,EAAE,MAAM;MAAEC,WAAW,EAAE,MAAM;MAAEnB,cAAc,EAAE,YAAY;MAAEG,KAAK,EAAE;;KAClI/G;IAAMiG,KAAK,EAAE;MAAEoB,UAAU,EAAE;;KAAWhD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEvD,KAAK,CAAQ,EAExEmD,SAAS,GAAGjE;IAAMiG,KAAK,EAAE;MAAE+B,QAAQ,EAAE,MAAM;MAAEC,UAAU,EAAE;;iBAAyB,GAAGjI;IAAMiG,KAAK,EAAE;MAAE+B,QAAQ,EAAE,MAAM;MAAEC,UAAU,EAAE;;KAAU,QAAQ,CAAQ,CACrJ,CACJ,EACRjI;IAAKyF,SAAS,EAAEC,MAAM,CAAC,cAAc,CAAC;IAAEO,KAAK,EAAE;MAAEO,MAAM,EAAE,oBAAoB;MAAE0B,SAAS,EAAE,MAAM;MAAEC,OAAO,EAAE,EAAE;MAAEzB,OAAO,EAAE,MAAM;MAAE0B,QAAQ,EAAE,CAAC;MAAEzB,aAAa,EAAE;;KACzJnE,QAAQ,CAACmD,GAAG,CAAC,UAACtI,OAAiD,EAAEuI,KAAa;IAAA,OAC7EvI,OAAO,CAACqF,MAAM,KAAK,MAAM,GACrB1C;MAAKoF,GAAG,EAAEQ,KAAK;MAAEH,SAAS,eAAapI,OAAO,CAACqF,MAAQ;MAAEuD,KAAK,EAAE;QAAEoC,YAAY,EAAE,EAAE;QAAEF,OAAO,EAAE,UAAU;QAAE1B,YAAY,EAAE,CAAC;QAAE6B,QAAQ,EAAE,KAAK;QAAEC,SAAS,EAAE,UAAU;QAAEP,QAAQ,EAAE,MAAM;QAAE1B,eAAe,EAAE,WAAW;QAAES,KAAK,EAAC,MAAM;QAAEe,SAAS,EAAE;;OAC5OzK,OAAO,CAACsF,IAAI,CACT,GACF3C;MAAKoF,GAAG,EAAEQ,KAAK;MAAEK,KAAK,EAAE;QAAES,OAAO,EAAE;;OACvC1G,oBAAC0H,WAAM;MAACX,KAAK,EAAC,OAAO;MAACY,GAAG,EAAEtD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEuD,QAAQ;MAAEJ,IAAI,EAAE,EAAE;MAAEK,GAAG,EAAC;MAAY,EACjF7H;MAAKyF,SAAS,eAAapI,OAAO,CAACqF,MAAQ;MAAEuD,KAAK,EAAE;QAAEoC,YAAY,EAAE,EAAE;QAAEF,OAAO,EAAE,UAAU;QAAE1B,YAAY,EAAE,CAAC;QAAE6B,QAAQ,EAAE,KAAK;QAAEC,SAAS,EAAE,YAAY;QAAEP,QAAQ,EAAE,MAAM;QAAG1B,eAAe,EAAE,SAAS;QAAGS,KAAK,EAAC,MAAM;QAAEe,SAAS,EAAE;;OAChOzK,OAAO,CAACsF,IAAI,CACP,CACA;GACP,CAAC,EACUa,uBAAuB,IAAIH,mBAAmB,IAAIA,mBAAmB,CAACmF,MAAM,GAAG,CAAC,IAC1FxI,oBAACsF,mBAAmB;IAACC,SAAS,EAAElC,mBAAmB;IAAEmC,QAAQ,EAAEjB;IAChE,EACAN,SAAS,IAAKjE;IAAKiG,KAAK,EAAE;MAACwC,UAAU,EAAE;KAAO;IAAEhD,SAAS,EAAC;UAAWzF;IAAKyF,SAAS,EAAC;IAAe,OAAQ,EAC5GzF;IAAK0I,GAAG,EAAExE;IAAiB,CACvB,EACNlE;IAAKyF,SAAS,EAAEC,MAAM,CAAC,YAAY,CAAC;IAAEO,KAAK,EAAE;MAAES,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEyB,SAAS,EAAE,gBAAgB;MAAER,OAAO,EAAE,EAAE;MAAES,sBAAsB,EAAE,CAAC;MAAEC,uBAAuB,EAAE;;KAClL7I;IACAiG,KAAK,EAAE;MAAE6C,OAAO,EAAE,MAAM;MAAEV,QAAQ,EAAE,CAAC;MAAEvB,MAAM,EAAE,MAAM;MAAEP,eAAe,EAAE,aAAa;MAAE6B,OAAO,EAAE,UAAU;MAAEY,WAAW,EAAE;KAAG;IAC1HC,SAAS,EAAE,IAAI;IACf9K,IAAI,EAAC,MAAM;IACXgC,KAAK,EAAEmC,SAAS;IAChB4G,QAAQ,EAAEhE,eAAe;IACzBiE,SAAS,EAAE/D,cAAc;IACzBgE,WAAW,EAAC;IACZ,EACFnJ,oBAACoJ,WAAM;IAACC,QAAQ,EAAEpF,SAAS,WAATA,SAAS,GAAI,IAAI;IAAEgC,KAAK,EAAE;MAAEK,eAAe,EAAE,aAAa;MAAES,KAAK,EAAE9C,SAAS,GAAG,SAAS,GAAGI,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C;KAAO;IAAES,IAAI,EAAC,QAAQ;IAAC8B,IAAI,EAAEtJ,oBAACuJ,yBAAW,OAAG;IAAE1D,OAAO,EAAE7D;IAAmB,CACrM,CAET,EACDhC,oBAACoJ,WAAM;IAAClL,IAAI,EAAC,MAAM;IAAC2H,OAAO,EAAEb,UAAU;IAAES,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,GAAAkD,sBAAA,GAAEnF,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C,KAAK,YAAAyC,sBAAA,GAAI,SAAS;MAAEzC,KAAK,EAAE,MAAM;MAAEN,YAAY,EAAE,KAAK;MAAEF,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE,MAAM;MAAEE,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEN,cAAc,EAAE;;KAClQxI,UAAU,GAAG4B,oBAACyJ,mBAAK;IAACxD,KAAK,EAAE;MAAEM,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEO,KAAK,EAAE;;IAAY,GAAG/G,oBAAC0J,QAAQ;IAACzD,KAAK,EAAE;MAAEM,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEO,KAAK,EAAE;;IAAW,CAChI,CACL;AAGV,CAAC;;IC9FY4C,KAAK,GAAG,SAARA,KAAKA,CAAAxK,IAAA;MAAM0D,QAAQ,GAAA1D,IAAA,CAAR0D,QAAQ;EAC9B,OACA7C,oBAACd,WAAW,QACVc,oBAAC4J,oBAAe,QAChB5J,oBAAC8F,eAAe;IAACjD,QAAQ,EAAEA;IAAW,CACpB,CAEN;AAGhB,CAAC;;;;"}
@@ -287,8 +287,35 @@ var askBiBot = function askBiBot(data) {
287
287
  return Promise.resolve(_catch(function () {
288
288
  var path = "" + domain.inference + resources.q;
289
289
  return Promise.resolve(pluginAxiosInstance.post(path, data)).then(function (response) {
290
- console.log(response);
291
- return response.data.message;
290
+ if (response.data.message === defaultSlacker) {
291
+ return _catch(function () {
292
+ return Promise.resolve(new Promise(function (resolve) {
293
+ return setTimeout(resolve, 6000);
294
+ })).then(function () {
295
+ return Promise.resolve(askTimedOutBiBot(_extends({}, data, {
296
+ tries: 2
297
+ })));
298
+ });
299
+ }, function (error2) {
300
+ if (error2.code === 'ECONNABORTED' || error2.message.includes('Endpoint request timed out')) {
301
+ return _catch(function () {
302
+ return Promise.resolve(new Promise(function (resolve) {
303
+ return setTimeout(resolve, 6000);
304
+ })).then(function () {
305
+ return Promise.resolve(askTimedOutBiBot(_extends({}, data, {
306
+ tries: 3
307
+ })));
308
+ });
309
+ }, function (error3) {
310
+ return error3.message;
311
+ });
312
+ } else {
313
+ return error2.message;
314
+ }
315
+ });
316
+ } else {
317
+ return response.data.message;
318
+ }
292
319
  });
293
320
  }, function (error1) {
294
321
  console.log(error1.message);
@@ -334,6 +361,7 @@ var askTimedOutBiBot = function askTimedOutBiBot(data) {
334
361
  return Promise.reject(e);
335
362
  }
336
363
  };
364
+ var defaultSlacker = "Unfortunately I could not find any information that reasonably answers that question. I just forwarded your inquiry to support, they will respond ASAP.";
337
365
  var pluginAxiosInstance = createPluginAxiosInstance();
338
366
 
339
367
  var useBiBotChatBot = function useBiBotChatBot(_ref) {
@@ -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' : ''}`} 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', border: '2px solid #dedede' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', height: '50px', 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', textAlign: 'left'}}>\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, maxWidth: '70%', alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000', textAlign: 'left' }}>\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","border","_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","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","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'\nconst defaultSlacker = \"Unfortunately I could not find any information that reasonably answers that question. I just forwarded your inquiry to support, they will respond ASAP.\"\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 if (response.data.message === defaultSlacker) {\n try {\n // TODO: Let's improve this for dynamic effect\n await new Promise(resolve => setTimeout(resolve, 6000))\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 await new Promise(resolve => setTimeout(resolve, 6000))\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 \n } else {\n return response.data.message\n }\n \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\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', border: '2px solid #dedede' }}>\n <div className={styles[\"chat-header\"]} style={{ backgroundColor: chatBubbleConfig?.color ?? '#dedede', height: '50px', 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', textAlign: 'left'}}>\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, maxWidth: '70%', alignSelf: 'flex-start', fontSize: '15px', backgroundColor: '#f0f0f0', color:'#000', textAlign: 'left' }}>\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","defaultSlacker","_catch","setTimeout","askTimedOutBiBot","tries","error2","code","includes","error3","error1","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","border","_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","marginRight","autoFocus","onChange","onKeyDown","placeholder","Button","disabled","icon","SendRounded","_chatBubbleConfig$col2","Close","ChatIcon","BiBot","MantineProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,QAAQ,GAAG;EACfC,SAAS,EAAE;CACZ;AAEM,IAAMC,SAAS,GAAG;EACvB,IAAID,SAASA;IACX,OAAOD,QAAQ,CAACC,SAAS;;CAEnB;AAEV,IAAYE,MAIX;AAJD,WAAYA,MAAM;EAChBA,sBAAY;EACZA,0BAAgB;EAChBA,kCAAwB;AAC1B,CAAC,EAJWA,MAAM,KAANA,MAAM;AAMlB,IAAYC,SAMX;AAND,WAAYA,SAAS;EACnBA,+CAAkC;EAClCA,0CAA6B;EAC7BA,gCAAmB;EACnBA,0CAA6B;EAC7BA,qBAAQ;AACV,CAAC,EANWA,SAAS,KAATA,SAAS;;ACnBrB,IAAMC,gBAAgB,GAAGH,SAAS,CAACD,SAAS;AAE5C,AAAO,IAAMK,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,MAAM,EAAOC,OAAO;MAApBD,MAAM;IAANA,MAAM,GAAG,EAAE;;EAAA,IAAEC,OAAO;IAAPA,OAAO,GAAG,EAAE;;EACjE,IAAMC,QAAQ,GAAGC,KAAK,CAACC,MAAM,CAAAC,QAAA;IAC3BC,OAAO,EAAER,gBAAgB;IACzBS,OAAO,EAAE,KAAK;IACdN,OAAO,EAAAI,QAAA;MACL,cAAc,EAAE;OACbJ,OAAO;KAETD,MAAM,CACV,CAAC;EAGFE,QAAQ,CAACM,YAAY,CAACC,QAAQ,CAACC,GAAG,CAChC,UAACD,QAAQ;IACP,OAAOA,QAAQ;GAChB,YACME,KAAK;IAAA;MACV,IAAIC,MAAM,GAAG,2BAA2B;MACxC,IAAID,KAAK,CAACF,QAAQ,EAAE;QAClBG,MAAM,GAAGD,KAAK,CAACF,QAAQ,CAACI,IAAI,CAACC,OAAO;OACrC,MAAM,IAAIH,KAAK,CAACI,OAAO,EAAE;QACxBH,MAAM,GAAG,uCAAuC;OACjD,MAAM;QACLA,MAAM,sCAAoCD,KAAK,CAACG,OAAS;;MAC1D,OAAAE,OAAA,CAAAC,OAAA,CACYD,OAAO,CAACE,MAAM,CAAC,IAAIC,KAAK,CAACP,MAAM,CAAC,CAAC;KAC/C,QAAAQ,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;IACF;EAED,OAAOlB,QAAQ;AACjB,CAAC;;AClCD;AACA,AAkKA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA;AACA,AAAO,SAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE;AAClD,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5B,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,EAAE;AACF,CAAC,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;;ACzkBD,IAAYmB,aAEX;AAFD,WAAYA,aAAa;EACvBA,gCAAe;AACjB,CAAC,EAFWA,aAAa,KAAbA,aAAa;;ACGlB,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAgB,EAAEC,MAAiB;EAC5DC,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEH,KAAK,EAAEC,MAAM,CAAC;EAC1D,QAAQA,MAAM,CAACG,IAAI;IACjB,KAAKN,aAAa,CAACO,KAAK;MACtB,OAAAvB,QAAA,KACKkB,KAAK;QACRM,UAAU,EAAEL,MAAM,CAACK;;IAEvB;MACE,OAAON,KAAK;;AAElB,CAAC;;ACdD;AACA;AACA;AACA,IAAI,eAAe,CAAC;AACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACjC,AAAe,SAAS,GAAG,GAAG;AAC9B;AACA,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB;AACA,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrH;AACA,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,MAAM,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;AAClI,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC;;CAAC,DChBD;AACA;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB;AACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD;AACA,AAAO,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD;AACA;AACA,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACrf,CAAC;;AChBD,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxG,aAAe;AACf,EAAE,UAAU;AACZ,CAAC;;EAAC,FCCF,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAClC,EAAE,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AAC7C,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AACxD;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC;AACA,EAAE,IAAI,GAAG,EAAE;AACX,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC;AACzB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;AACA,EAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;;ACxBD,IAAMO,WAAW,GAAW,oBAAoB;AAEhD,IAAMC,YAAY,GAAG,SAAfA,YAAYA;EAChB,IAAMC,SAAS,GAAGC,YAAY,CAACC,OAAO,CAACJ,WAAW,CAAC;EACnD,IAAIE,SAAS,KAAK,IAAI,EAAE;IACtB,IAAMG,YAAY,GAAGC,EAAM,EAAE;IAC7BH,YAAY,CAACI,OAAO,CAACP,WAAW,EAAEK,YAAY,CAAC;IAC/C,OAAOA,YAAY;;EAErB,OAAOH,SAAS;AAClB,CAAC;;ACDD,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,KAAW;AAE9B,IAAMC,mBAAmB,GAAoB;EAC3ChB,KAAK,EAAE;IACLM,UAAU,EAAE,KAAK;IACjBG,SAAS,EAAED,YAAY;GACxB;EACDS,QAAQ,EAAEF;CACX;AAED,IAAMG,UAAU,GAAGC,aAAa,CAAkBH,mBAAmB,CAAC;AAEtE,IAAMI,WAAW,GAAuB,SAAlCA,WAAWA,CAAAC,IAAA;MAA0BC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACjD,IAAMC,aAAa,GAAG,YAAY;EAClC,IAAMC,YAAY,GAAc;IAC9BlB,UAAU,EAAE,KAAK;IACjBG,SAAS,EAAED,YAAY;GACxB;EAED,IAAAiB,WAAA,GAA0BC,UAAU,CAAC3B,UAAU,EAAEyB,YAAY,CAAC;IAAvDxB,KAAK,GAAAyB,WAAA;IAAER,QAAQ,GAAAQ,WAAA;EAEtBE,SAAS,CAAC;IAER,IAAMC,YAAY,GAAGlB,YAAY,CAACC,OAAO,CAACY,aAAa,CAAC;IAExD,IAAIK,YAAY,EAAE;MAChB,IAAI;QACF,IAAMC,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACH,YAAY,CAAC;QAG7C,IAAMI,aAAa,GAAAlD,QAAA,KACd0C,YAAY,EACZK,YAAY,CAChB;QACD3B,OAAO,CAACC,GAAG,CAACqB,YAAY,EAAEK,YAAY,EAAEG,aAAa,CAAC;QAEtDf,QAAQ,CAAAnC,QAAA;UAAGsB,IAAI,EAAEN,aAAa,CAACO;WAAU2B,aAAa,CAAE,CAAC;OAC1D,CAAC,OAAO5C,KAAK,EAAE;QACdc,OAAO,CAACd,KAAK,CAAC,gDAAgD,EAAEA,KAAK,CAAC;;;GAG3E,EAAE,EAAE,CAAC;EAENuC,SAAS,CAAC;IACRzB,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEH,KAAK,CAAC;IACxCU,YAAY,CAACI,OAAO,CAACS,aAAa,EAAEO,IAAI,CAACG,SAAS,CAACjC,KAAK,CAAC,CAAC;GAC3D,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OACEkC,6BAAChB,UAAU,CAACiB,QAAQ;IAACC,KAAK,EAAE;MAAEpC,KAAK,EAALA,KAAK;MAAEiB,QAAQ,EAARA;;KAClCK,QAAQ,CACW;AAE1B,CAAC;;ACyEE,IArBYe,sCAAsC,YAAtCA,sCAAsCA,CAAC5D,MAA6B;4CAC3E;IAEA,IAAM6D,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAACiE,WAAa;IAAA,OAAA9C,OAAA,CAAAC,OAAA,CACnC8C,mBAAmB,CAACC,GAAG,CAAMH,IAAI,EAAE;MAAE7D,MAAM,EAANA;KAAQ,CAAC,EAAAiE,IAAA,WAA7DxD,QAAQ;MACd,OAAOA,QAAQ,CAACI,IAAI,CAACqD,mBAAmB;;GAC3C,cAAe;IACZ,OAAO,CAAC,wBAAwB,EAAE,oCAAoC,EAAE,yDAAyD,EAAE,8CAA8C,CAAC;GACrL;AACL,CAAC;AAAA,IA9BcC,+BAA+B,YAA/BA,+BAA+BA,CAACnE,MAA6B;EAAA;8CACpE;MAOA,IAAM6D,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAACuE,UAAY;MAAA,OAAApD,OAAA,CAAAC,OAAA,CAClC8C,mBAAmB,CAACC,GAAG,CAAMH,IAAI,EAAE;QAAE7D,MAAM,EAANA;OAAQ,CAAC,EAAAiE,IAAA,WAA7DxD,QAAQ;QACd,OAAOA,QAAQ,CAACI,IAAI;;KACvB,cAAe;MACZ,OAAO;QACHwD,OAAO,EAAE,OAAO;QAChBC,SAAS,EAAE,MAAM;QACjBC,KAAK,EAAE,SAAS;QAChBC,SAAS,EAAE;OACd;KACJ;GACJ,QAAApD,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AAAA,IAhFcqD,QAAQ,YAARA,QAAQA,CAAC5D,IAAiB;EAAA;8CACjC;MACA,IAAMgD,IAAI,QAAIjE,MAAM,CAACF,SAAS,GAAGG,SAAS,CAAC6E,CAAG;MAAA,OAAA1D,OAAA,CAAAC,OAAA,CACzB8C,mBAAmB,CAACY,IAAI,CAAMd,IAAI,EAAEhD,IAAI,CAAC,EAAAoD,IAAA,WAAxDxD,QAAQ;QAAA,IACVA,QAAQ,CAACI,IAAI,CAACC,OAAO,KAAK8D,cAAc;UAAA,OAAAC,MAAA,aACpC;YAAA,OAAA7D,OAAA,CAAAC,OAAA,CAEM,IAAID,OAAO,CAAC,UAAAC,OAAO;cAAA,OAAI6D,UAAU,CAAC7D,OAAO,EAAE,IAAI,CAAC;cAAC,EAAAgD,IAAA;cAAA,OAAAjD,OAAA,CAAAC,OAAA,CAC1C8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;gBACPmE,KAAK,EAAE;gBACV,CAAC;;WACL,YAAQC,MAAM,EAAE;YAAA,IACTA,MAAM,CAACC,IAAI,KAAK,cAAc,IAAID,MAAM,CAACnE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;cAAA,OAAAN,MAAA,aACnF;gBAAA,OAAA7D,OAAA,CAAAC,OAAA,CACM,IAAID,OAAO,CAAC,UAAAC,OAAO;kBAAA,OAAI6D,UAAU,CAAC7D,OAAO,EAAE,IAAI,CAAC;kBAAC,EAAAgD,IAAA;kBAAA,OAAAjD,OAAA,CAAAC,OAAA,CAC1C8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;oBACPmE,KAAK,EAAE;oBACV,CAAC;;eACL,YAAQI,MAAM,EAAE;gBACb,OAAOA,MAAM,CAACtE,OAAO;eACxB;;cAED,OAAOmE,MAAM,CAACnE,OAAO;;WAE5B;;UAGD,OAAOL,QAAQ,CAACI,IAAI,CAACC,OAAO;;;KAGnC,YAAQuE,MAAM,EAAE;MACb5D,OAAO,CAACC,GAAG,CAAC2D,MAAM,CAACvE,OAAO,CAAC;MAAA,IACvBuE,MAAM,CAACH,IAAI,KAAG,cAAc,IAAEG,MAAM,CAACvE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;QAAA,OAAAN,MAAA,aAC/E;UAAA,OAAA7D,OAAA,CAAAC,OAAA,CACa8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;YACPmE,KAAK,EAAE;YACV,CAAC;SACL,YAAQC,MAAM,EAAE;UAAA,IACTA,MAAM,CAACC,IAAI,KAAG,cAAc,IAAED,MAAM,CAACnE,OAAO,CAACqE,QAAQ,CAAC,4BAA4B,CAAC;YAAA,OAAAN,MAAA,aAC/E;cAAA,OAAA7D,OAAA,CAAAC,OAAA,CACa8D,gBAAgB,CAAA1E,QAAA,KACtBQ,IAAI;gBACPmE,KAAK,EAAE;gBACV,CAAC;aACL,YAAQI,MAAM,EAAE;cACb,OAAOA,MAAM,CAACtE,OAAO;aACxB;;YAED,OAAOmE,MAAM,CAACnE,OAAO;;SAE5B;;QAED,OAAOuE,MAAM,CAACvE,OAAO;;KAE5B;GACJ,QAAAM,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AAAA,IAvEc2D,gBAAgB,YAAhBA,gBAAgBA,CAAClE,IAAiB;EAAA;8CACzC;MAEA,IAAMgD,IAAI,QAAIjE,MAAM,CAAC0F,KAAK,GAAGzF,SAAS,CAAC0F,cAAgB;MAAA,OAAAvE,OAAA,CAAAC,OAAA,CAClC8C,mBAAmB,CAACY,IAAI,CAAMd,IAAI,EAAEhD,IAAI,CAAC,EAAAoD,IAAA,WAAxDxD,QAAQ;QACdgB,OAAO,CAACC,GAAG,CAACjB,QAAQ,CAAC;QACrB,OAAOA,QAAQ,CAACI,IAAI,CAACC,OAAO;;KAC/B,YAAQH,KAAK,EAAE;MACZc,OAAO,CAACC,GAAG,CAACf,KAAK,CAACG,OAAO,CAAC;MAC1B,OAAOH,KAAK,CAACG,OAAO;KACvB;GACJ,QAAAM,CAAA;IAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;AAAA;AA9BD,IAAMwD,cAAc,GAAG,yJAAyJ;AAChL,IAAMb,mBAAmB,GAAChE,yBAAyB,EAAE;;ACarD,IAAMyF,eAAe,GAAG,SAAlBA,eAAeA,CAAA5C,IAAA;MA8CJ6C,gBAAgB,YAAhBA,gBAAgBA;IAAA;MAC7BC,YAAY,CAAC,IAAI,CAAC;MAClBC,YAAY,CAAC,EAAE,CAAC;MAAA,OAAA3E,OAAA,CAAAC,OAAA,CAAA2E,gBAAA;QAAA,OAAAf,MAAA,aACZ;UAAA,IAAAgB,MAAA;YAAA,IACEC,SAAS,CAACC,IAAI,EAAE;cAElBC,WAAW,CAAC,UAAAC,QAAQ;gBAAA,UAAAC,MAAA,CAAQD,QAAQ,GAAE;kBAAEE,MAAM,EAAE,MAAM;kBAAEC,IAAI,EAAEN;iBAAW;eAAC,CAAC;cAAA,OAAA9E,OAAA,CAAAC,OAAA,CACpDwD,QAAQ,CAAC;gBAC9B4B,SAAS,EAAEC,QAAQ;gBACnB5B,CAAC,EAAEoB,SAAS,CAACC,IAAI,EAAE;gBACnBQ,UAAU,EAAEhF,KAAK,CAACS,SAAS;gBAC3BwE,OAAO,EAAEpE,EAAM;eAChB,CAAC,EAAA6B,IAAA,WALIxD,QAAQ;gBAMduF,WAAW,CAAC,UAAAC,QAAQ;kBAAA,UAAAC,MAAA,CAAQD,QAAQ,GAAE;oBAAEE,MAAM,EAAE,KAAK;oBAAEC,IAAI,EAAE3F;mBAAU;iBAAC,CAAC;;;;UAAA,IAAAoF,MAAA,IAAAA,MAAA,CAAA5B,IAAA,SAAA4B,MAAA,CAAA5B,IAAA;SAE5E,YAAQtD,KAAK,EAAE;UAAA,IAAA8F,cAAA;UACd,KAAK3F,OAAO,CAACH,KAAK,EAAA8F,cAAA,GAAC9F,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,OAAO,YAAA2F,cAAA,GAAI,oCAAoC,CAAC;SAC3E;mBAAAC,UAAA,EAAAC,OAAA;QACCjB,YAAY,CAAC,KAAK,CAAC;QAAA,IAAAgB,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;KAEtB,QAAAvF,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;;EAAA,IAlEwBkF,QAAQ,GAAA1D,IAAA,CAAR0D,QAAQ;EACjC,IAAAM,SAAA,GAAsDC,QAAQ,CAAW,EAAE,CAAC;IAArEC,mBAAmB,GAAAF,SAAA;IAAEG,sBAAsB,GAAAH,SAAA;EAClD,IAAAI,UAAA,GAA8DH,QAAQ,CAAC,IAAI,CAAC;IAArEI,uBAAuB,GAAAD,UAAA;IAAEE,0BAA0B,GAAAF,UAAA;EAC1D,IAAAG,WAAA,GAAkBC,UAAU,CAAC3E,UAAU,CAAC;IAAhClB,KAAK,GAAA4F,WAAA,CAAL5F,KAAK;EACb,IAAA8F,UAAA,GAAsCR,QAAQ,CAAU,KAAK,CAAC;IAAtDhF,UAAU,GAAAwF,UAAA;IAAEC,aAAa,GAAAD,UAAA;EACjC,IAAAE,UAAA,GAAgCV,QAAQ,CAAkD,EAAE,CAAC;IAAtFZ,QAAQ,GAAAsB,UAAA;IAAEvB,WAAW,GAAAuB,UAAA;EAC5B,IAAAC,UAAA,GAAkCX,QAAQ,CAAC,EAAE,CAAC;IAAvCf,SAAS,GAAA0B,UAAA;IAAE7B,YAAY,GAAA6B,UAAA;EAC9B,IAAAC,UAAA,GAAkCZ,QAAQ,CAAC,KAAK,CAAC;IAA1Ca,SAAS,GAAAD,UAAA;IAAE/B,YAAY,GAAA+B,UAAA;EAC9B,IAAME,aAAa,GAAGC,MAAM,CAAiB,IAAI,CAAC;EAClD,IAAAC,UAAA,GAAgDhB,QAAQ,EAAyB;IAA1EiB,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAGxC,IAAMG,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAIC,QAAa;IACnDtC,YAAY,CAACsC,QAAQ,CAAC;IACtBxC,gBAAgB,EAAE;IAClByB,0BAA0B,CAAC,KAAK,CAAC;GAClC;EAEL,IAAMgB,mBAAmB,GAAGC,WAAW;IAAA;6BACGvE,sCAAsC,CAAC;QAACyC,SAAS,EAAEC;OAAS,CAAC,EAAArC,IAAA,WAA/FmE,yBAAyB;QAC/B,IAAIA,yBAAyB,EAAC;UAC1BrB,sBAAsB,CAACqB,yBAAyB,CAAC;;QACpD,OAAApH,OAAA,CAAAC,OAAA,CACoCkD,+BAA+B,CAAC;UAACkC,SAAS,EAAEC;SAAS,CAAC,EAAArC,IAAA,WAArFoE,sBAAsB;UAAA,IACxBA,sBAAsB;YACtBN,mBAAmB,CAACM,sBAAsB,CAAC;;;;KAEhD,QAAAjH,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;KAAC,CAACkF,QAAQ,CAAC,CAAC;EAEbpD,SAAS,CAAC;IACR,KAAKgF,mBAAmB,EAAE;GAC3B,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzBhF,SAAS,CAAC;IACR,IAAIyE,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEW,OAAO,EAAE;MAAEX,aAAa,CAACW,OAAO,CAACC,cAAc,CAAC;QAAEC,QAAQ,EAAE;OAAU,CAAC;;GAC3F,EAAE,CAACvC,QAAQ,CAAC,CAAC;EAEd,IAAMwC,UAAU,GAAG,SAAbA,UAAUA;IACdhH,OAAO,CAACC,GAAG,CAAC,YAAY,EAAEG,UAAU,CAAC;IACrCyF,aAAa,CAAC,CAACzF,UAAU,CAAC;GAC3B;EAED,IAAM6G,eAAe,GAAG,SAAlBA,eAAeA,CAAItH,CAAsC;IAC7DuE,YAAY,CAACvE,CAAC,CAACuH,MAAM,CAAChF,KAAK,CAAC;GAC7B;EAwBD,IAAMiF,cAAc,YAAdA,cAAcA,CAAUxH,CAAwC;IAAA;;YAChEA,CAAC,CAACyH,GAAG,KAAK,OAAO,IAAI,CAACnB,SAAS;UAAA,OAAA1G,OAAA,CAAAC,OAAA,CAC3BwE,gBAAgB,EAAE,EAAAxB,IAAA;;;MAAA,OAAAjD,OAAA,CAAAC,OAAA,CAAA6H,KAAA,IAAAA,KAAA,CAAA7E,IAAA,GAAA6E,KAAA,CAAA7E,IAAA;KAE3B,QAAA7C,CAAA;MAAA,OAAAJ,OAAA,CAAAE,MAAA,CAAAE,CAAA;;;EACD,OAAO;IACLS,UAAU,EAAVA,UAAU;IACVoE,QAAQ,EAARA,QAAQ;IACRyB,SAAS,EAATA,SAAS;IACTC,aAAa,EAAbA,aAAa;IACb7B,SAAS,EAATA,SAAS;IACT4C,eAAe,EAAfA,eAAe;IACfE,cAAc,EAAdA,cAAc;IACdH,UAAU,EAAVA,UAAU;IACVhD,gBAAgB,EAAhBA,gBAAgB;IAChBqC,gBAAgB,EAAhBA,gBAAgB;IAChBb,uBAAuB,EAAvBA,uBAAuB;IACvBH,mBAAmB,EAAnBA,mBAAmB;IACnBkB,8BAA8B,EAA9BA;GACD;AACH,CAAC;;;;ACvFD,IAAMe,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAnG,IAAA;MAAMoG,SAAS,GAAApG,IAAA,CAAToG,SAAS;IAAEC,QAAQ,GAAArG,IAAA,CAARqG,QAAQ;EAChD,OACExF;IAAKyF,SAAS,EAAEC,MAAM,CAAC,sBAAsB;KAC1CH,SAAS,CAACI,GAAG,CAAC,UAACnB,QAAQ,EAAEoB,KAAK;IAAA,OAC7B5F;MAAKoF,GAAG,EAAEQ,KAAK;MAAEH,SAAS,EAAEC,MAAM,CAAC,sBAAsB,CAAC;MAAEG,OAAO,EAAE,SAAAA;QAAA,OAAML,QAAQ,CAAChB,QAAQ,CAAC;;OAC1FA,QAAQ,CACL;GACP,CAAC,CACE;AAEV,CAAC;AAED,IAAMsB,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA;;MAAMlD,QAAQ,GAAAkD,KAAA,CAARlD,QAAQ;EACjC,IAAAmD,gBAAA,GAcIjE,eAAe,CAAC;MAACc,QAAQ,EAARA;KAAS,CAAC;IAb7BzE,UAAU,GAAA4H,gBAAA,CAAV5H,UAAU;IACVoE,QAAQ,GAAAwD,gBAAA,CAARxD,QAAQ;IACRyB,SAAS,GAAA+B,gBAAA,CAAT/B,SAAS;IACTC,aAAa,GAAA8B,gBAAA,CAAb9B,aAAa;IACb7B,SAAS,GAAA2D,gBAAA,CAAT3D,SAAS;IACT4C,eAAe,GAAAe,gBAAA,CAAff,eAAe;IACfE,cAAc,GAAAa,gBAAA,CAAdb,cAAc;IACdnD,gBAAgB,GAAAgE,gBAAA,CAAhBhE,gBAAgB;IAChBgD,UAAU,GAAAgB,gBAAA,CAAVhB,UAAU;IACVX,gBAAgB,GAAA2B,gBAAA,CAAhB3B,gBAAgB;IAChBb,uBAAuB,GAAAwC,gBAAA,CAAvBxC,uBAAuB;IACvBH,mBAAmB,GAAA2C,gBAAA,CAAnB3C,mBAAmB;IACnBkB,8BAA8B,GAAAyB,gBAAA,CAA9BzB,8BAA8B;EAGhC,OAEEvE;IAAKyF,SAAS,oBAAiBrH,UAAU,GAAG,MAAM,GAAG,EAAE,CAAE;IAAE6H,KAAK,EAAE;MAAEC,QAAQ,EAAE,OAAO;MAAEC,MAAM,EAAE,MAAM;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;;KAC3HjI,UAAU,IACT4B;IAAKyF,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,EAAE,MAAM;MAAEJ,QAAQ,EAAE,UAAU;MAAEC,MAAM,EAAE,MAAM;MAAEC,KAAK,EAAE,MAAM;MAAEG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,GAAG;MAAEC,YAAY,EAAE,EAAE;MAAEC,OAAO,EAAE,MAAM;MAAEC,aAAa,EAAE,QAAQ;MAAEC,cAAc,EAAE,eAAe;MAAEC,MAAM,EAAE;;KAC1P7G;IAAKyF,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,GAAAQ,qBAAA,GAAEzC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C,KAAK,YAAAD,qBAAA,GAAI,SAAS;MAAEN,MAAM,EAAE,MAAM;MAAEQ,mBAAmB,EAAE,CAAC;MAAEC,oBAAoB,EAAE,CAAC;MAAEP,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEN,cAAc,EAAE,YAAY;MAAEO,aAAa,EAAE,EAAE;MAAEC,YAAY,EAAE;;KAC5QpH;IAAKiG,KAAK,EAAE;MAAEiB,UAAU,EAAE,QAAQ;MAAER,OAAO,EAAE,MAAM;MAAEK,KAAK,EAAE,MAAM;MAAEM,UAAU,EAAE;;KAChFrH,cAACsH,SAAS;IAACC,MAAM;IAACC,IAAI,EAAE,EAAE;IAAEC,MAAM,EAAE,CAAC;IAAEvB,QAAQ,EAAC,YAAY;IAACa,KAAK,EAAG;KACrE/G,cAAC0H,MAAM;IAACX,KAAK,EAAC,OAAO;IAACY,GAAG,EAAEtD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEuD,QAAQ;IAAEC,GAAG,EAAC;IAAY,CACzD,CACL,EACN7H;IAAKiG,KAAK,EAAE;MAAES,OAAO,EAAE,MAAM;MAAEC,aAAa,EAAE,QAAQ;MAAEmB,SAAS,EAAE,MAAM;MAAEC,WAAW,EAAE,MAAM;MAAEnB,cAAc,EAAE,YAAY;MAAEG,KAAK,EAAE;;KAClI/G;IAAMiG,KAAK,EAAE;MAAEoB,UAAU,EAAE;;KAAWhD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEvD,KAAK,CAAQ,EAExEmD,SAAS,GAAGjE;IAAMiG,KAAK,EAAE;MAAE+B,QAAQ,EAAE,MAAM;MAAEC,UAAU,EAAE;;iBAAyB,GAAGjI;IAAMiG,KAAK,EAAE;MAAE+B,QAAQ,EAAE,MAAM;MAAEC,UAAU,EAAE;;KAAU,QAAQ,CAAQ,CACrJ,CACJ,EACRjI;IAAKyF,SAAS,EAAEC,MAAM,CAAC,cAAc,CAAC;IAAEO,KAAK,EAAE;MAAEO,MAAM,EAAE,oBAAoB;MAAE0B,SAAS,EAAE,MAAM;MAAEC,OAAO,EAAE,EAAE;MAAEzB,OAAO,EAAE,MAAM;MAAE0B,QAAQ,EAAE,CAAC;MAAEzB,aAAa,EAAE;;KACzJnE,QAAQ,CAACmD,GAAG,CAAC,UAACtI,OAAiD,EAAEuI,KAAa;IAAA,OAC7EvI,OAAO,CAACqF,MAAM,KAAK,MAAM,GACrB1C;MAAKoF,GAAG,EAAEQ,KAAK;MAAEH,SAAS,eAAapI,OAAO,CAACqF,MAAQ;MAAEuD,KAAK,EAAE;QAAEoC,YAAY,EAAE,EAAE;QAAEF,OAAO,EAAE,UAAU;QAAE1B,YAAY,EAAE,CAAC;QAAE6B,QAAQ,EAAE,KAAK;QAAEC,SAAS,EAAE,UAAU;QAAEP,QAAQ,EAAE,MAAM;QAAE1B,eAAe,EAAE,WAAW;QAAES,KAAK,EAAC,MAAM;QAAEe,SAAS,EAAE;;OAC5OzK,OAAO,CAACsF,IAAI,CACT,GACF3C;MAAKoF,GAAG,EAAEQ,KAAK;MAAEK,KAAK,EAAE;QAAES,OAAO,EAAE;;OACvC1G,cAAC0H,MAAM;MAACX,KAAK,EAAC,OAAO;MAACY,GAAG,EAAEtD,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEuD,QAAQ;MAAEJ,IAAI,EAAE,EAAE;MAAEK,GAAG,EAAC;MAAY,EACjF7H;MAAKyF,SAAS,eAAapI,OAAO,CAACqF,MAAQ;MAAEuD,KAAK,EAAE;QAAEoC,YAAY,EAAE,EAAE;QAAEF,OAAO,EAAE,UAAU;QAAE1B,YAAY,EAAE,CAAC;QAAE6B,QAAQ,EAAE,KAAK;QAAEC,SAAS,EAAE,YAAY;QAAEP,QAAQ,EAAE,MAAM;QAAG1B,eAAe,EAAE,SAAS;QAAGS,KAAK,EAAC,MAAM;QAAEe,SAAS,EAAE;;OAChOzK,OAAO,CAACsF,IAAI,CACP,CACA;GACP,CAAC,EACUa,uBAAuB,IAAIH,mBAAmB,IAAIA,mBAAmB,CAACmF,MAAM,GAAG,CAAC,IAC1FxI,cAACsF,mBAAmB;IAACC,SAAS,EAAElC,mBAAmB;IAAEmC,QAAQ,EAAEjB;IAChE,EACAN,SAAS,IAAKjE;IAAKiG,KAAK,EAAE;MAACwC,UAAU,EAAE;KAAO;IAAEhD,SAAS,EAAC;UAAWzF;IAAKyF,SAAS,EAAC;IAAe,OAAQ,EAC5GzF;IAAK0I,GAAG,EAAExE;IAAiB,CACvB,EACNlE;IAAKyF,SAAS,EAAEC,MAAM,CAAC,YAAY,CAAC;IAAEO,KAAK,EAAE;MAAES,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEyB,SAAS,EAAE,gBAAgB;MAAER,OAAO,EAAE,EAAE;MAAES,sBAAsB,EAAE,CAAC;MAAEC,uBAAuB,EAAE;;KAClL7I;IACAiG,KAAK,EAAE;MAAE6C,OAAO,EAAE,MAAM;MAAEV,QAAQ,EAAE,CAAC;MAAEvB,MAAM,EAAE,MAAM;MAAEP,eAAe,EAAE,aAAa;MAAE6B,OAAO,EAAE,UAAU;MAAEY,WAAW,EAAE;KAAG;IAC1HC,SAAS,EAAE,IAAI;IACf9K,IAAI,EAAC,MAAM;IACXgC,KAAK,EAAEmC,SAAS;IAChB4G,QAAQ,EAAEhE,eAAe;IACzBiE,SAAS,EAAE/D,cAAc;IACzBgE,WAAW,EAAC;IACZ,EACFnJ,cAACoJ,MAAM;IAACC,QAAQ,EAAEpF,SAAS,WAATA,SAAS,GAAI,IAAI;IAAEgC,KAAK,EAAE;MAAEK,eAAe,EAAE,aAAa;MAAES,KAAK,EAAE9C,SAAS,GAAG,SAAS,GAAGI,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C;KAAO;IAAES,IAAI,EAAC,QAAQ;IAAC8B,IAAI,EAAEtJ,cAACuJ,WAAW,OAAG;IAAE1D,OAAO,EAAE7D;IAAmB,CACrM,CAET,EACDhC,cAACoJ,MAAM;IAAClL,IAAI,EAAC,MAAM;IAAC2H,OAAO,EAAEb,UAAU;IAAES,SAAS,EAAEC,MAAM,CAAC,aAAa,CAAC;IAAEO,KAAK,EAAE;MAAEK,eAAe,GAAAkD,sBAAA,GAAEnF,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE0C,KAAK,YAAAyC,sBAAA,GAAI,SAAS;MAAEzC,KAAK,EAAE,MAAM;MAAEN,YAAY,EAAE,KAAK;MAAEF,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE,MAAM;MAAEE,OAAO,EAAE,MAAM;MAAEQ,UAAU,EAAE,QAAQ;MAAEN,cAAc,EAAE;;KAClQxI,UAAU,GAAG4B,cAACyJ,KAAK;IAACxD,KAAK,EAAE;MAAEM,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEO,KAAK,EAAE;;IAAY,GAAG/G,cAAC0J,QAAQ;IAACzD,KAAK,EAAE;MAAEM,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEO,KAAK,EAAE;;IAAW,CAChI,CACL;AAGV,CAAC;;IC9FY4C,KAAK,GAAG,SAARA,KAAKA,CAAAxK,IAAA;MAAM0D,QAAQ,GAAA1D,IAAA,CAAR0D,QAAQ;EAC9B,OACA7C,cAACd,WAAW,QACVc,cAAC4J,eAAe,QAChB5J,cAAC8F,eAAe;IAACjD,QAAQ,EAAEA;IAAW,CACpB,CAEN;AAGhB,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bibot",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Made with create-react-library",
5
5
  "author": "chrisdjin",
6
6
  "license": "ISC",