@1interface/chat-core 0.20.0 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +23 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@reduxjs/toolkit"),t=require("react-redux"),r=require("react"),n=require("@1interface/shared-core"),s=require("@microsoft/fetch-event-source");var o=Symbol.for("immer-nothing"),a=Symbol.for("immer-draftable"),i=Symbol.for("immer-state"),u="production"!==process.env.NODE_ENV?[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},"This object has been frozen and should not be mutated",function(e){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function(e){return`'original' expects a draft, got: ${e}`}]:[];function c(e,...t){if("production"!==process.env.NODE_ENV){const r=u[e],n=N(r)?r.apply(null,t):r;throw new Error(`[Immer] ${n}`)}throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var d=Object,l=d.getPrototypeOf,p="constructor",f="prototype",g="configurable",h="enumerable",m="writable",y="value",T=e=>!!e&&!!e[i];function S(e){return!!e&&(v(e)||x(e)||!!e[a]||!!e[p]?.[a]||O(e)||C(e))}var _=d[f][p].toString(),E=new WeakMap;function v(e){if(!e||!k(e))return!1;const t=l(e);if(null===t||t===d[f])return!0;const r=d.hasOwnProperty.call(t,p)&&t[p];if(r===Object)return!0;if(!N(r))return!1;let n=E.get(r);return void 0===n&&(n=Function.toString.call(r),E.set(r,n)),n===_}function b(e,t,r=!0){0===A(e)?(r?Reflect.ownKeys(e):d.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function A(e){const t=e[i];return t?t.type_:x(e)?1:O(e)?2:C(e)?3:0}var w=(e,t,r=A(e))=>2===r?e.has(t):d[f].hasOwnProperty.call(e,t),R=(e,t,r=A(e))=>2===r?e.get(t):e[t],I=(e,t,r,n=A(e))=>{2===n?e.set(t,r):3===n?e.add(r):e[t]=r},x=Array.isArray,O=e=>e instanceof Map,C=e=>e instanceof Set,k=e=>"object"==typeof e,N=e=>"function"==typeof e,P=e=>"boolean"==typeof e,M=e=>e.copy_||e.base_,D=e=>e.modified_?e.copy_:e.base_;function q(e,t){if(O(e))return new Map(e);if(C(e))return new Set(e);if(x(e))return Array[f].slice.call(e);const r=v(e);if(!0===t||"class_only"===t&&!r){const t=d.getOwnPropertyDescriptors(e);delete t[i];let r=Reflect.ownKeys(t);for(let n=0;n<r.length;n++){const s=r[n],o=t[s];!1===o[m]&&(o[m]=!0,o[g]=!0),(o.get||o.set)&&(t[s]={[g]:!0,[m]:!0,[h]:o[h],[y]:e[s]})}return d.create(l(e),t)}{const t=l(e);if(null!==t&&r)return{...e};const n=d.create(t);return d.assign(n,e)}}function U(e,t=!1){return F(e)||T(e)||!S(e)||(A(e)>1&&d.defineProperties(e,{set:L,add:L,clear:L,delete:L}),d.freeze(e),t&&b(e,(e,t)=>{U(t,!0)},!1)),e}var L={[y]:function(){c(2)}};function F(e){return null===e||!k(e)||d.isFrozen(e)}var Q="MapSet",j="Patches",$="ArrayMethods",H={};function z(e){const t=H[e];return t||c(0,e),t}var G,K=e=>!!H[e],B=()=>G;function V(e,t){t&&(e.patchPlugin_=z(j),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function W(e){Y(e),e.drafts_.forEach(J),e.drafts_=null}function Y(e){e===G&&(G=e.parent_)}var X=e=>G={drafts_:[],parent_:G,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:K(Q)?z(Q):void 0,arrayMethodsPlugin_:K($)?z($):void 0};function J(e){const t=e[i];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function Z(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(void 0!==e&&e!==r){r[i].modified_&&(W(t),c(4)),S(e)&&(e=ee(t,e));const{patchPlugin_:n}=t;n&&n.generateReplacementPatches_(r[i].base_,e,t)}else e=ee(t,r);return function(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&U(t,r)}(t,e,!0),W(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==o?e:void 0}function ee(e,t){if(F(t))return t;const r=t[i];if(!r)return ae(t,e.handledSet_,e);if(!re(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:t}=r;if(t)for(;t.length>0;)t.pop()(e);oe(r,e)}return r.copy_}function te(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var re=(e,t)=>e.scope_===t,ne=[];function se(e,t,r,n){const s=M(e),o=e.type_;if(void 0!==n&&R(s,n,o)===t)return void I(s,n,r,o);if(!e.draftLocations_){const t=e.draftLocations_=new Map;b(s,(e,r)=>{if(T(r)){const n=t.get(r)||[];n.push(e),t.set(r,n)}})}const a=e.draftLocations_.get(t)??ne;for(const e of a)I(s,e,r,o)}function oe(e,t){if(e.modified_&&!e.finalized_&&(3===e.type_||1===e.type_&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:r}=t;if(r){const n=r.getPath(e);n&&r.generatePatches_(e,n,t)}te(e)}}function ae(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||T(e)||t.has(e)||!S(e)||F(e)||(t.add(e),b(e,(n,s)=>{if(T(s)){const t=s[i];if(re(t,r)){const r=D(t);I(e,n,r,e.type_),te(t)}}else S(s)&&ae(s,t,r)})),e}var ie={get(e,t){if(t===i)return e;let r=e.scope_.arrayMethodsPlugin_;const n=1===e.type_&&"string"==typeof t;if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const s=M(e);if(!w(s,t,e.type_))return function(e,t,r){const n=de(t,r);return n?y in n?n[y]:n.get?.call(e.draft_):void 0}(e,s,t);const o=s[t];if(e.finalized_||!S(o))return o;if(n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&function(e){const t=+e;return Number.isInteger(t)&&String(t)===e}(t))return o;if(o===ce(e.base_,t)){pe(e);const r=1===e.type_?+t:t,n=fe(0,o,e,r);return e.copy_[r]=n}return o},has:(e,t)=>t in M(e),ownKeys:e=>Reflect.ownKeys(M(e)),set(e,t,r){const n=de(M(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const n=ce(M(e),t),a=n?.[i];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(((s=r)===(o=n)?0!==s||1/s==1/o:s!=s&&o!=o)&&(void 0!==r||w(e.base_,t,e.type_)))return!0;pe(e),le(e)}var s,o;return e.copy_[t]===r&&(void 0!==r||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),function(e,t,r){const{scope_:n}=e;if(T(r)){const s=r[i];re(s,n)&&s.callbacks_.push(function(){pe(e);const n=D(s);se(e,r,n,t)})}else S(r)&&e.callbacks_.push(function(){const s=M(e);3===e.type_?s.has(r)&&ae(r,n.handledSet_,n):R(s,t,e.type_)===r&&n.drafts_.length>1&&!0===(e.assigned_.get(t)??!1)&&e.copy_&&ae(R(e.copy_,t,e.type_),n.handledSet_,n)})}(e,t,r)),!0},deleteProperty:(e,t)=>(pe(e),void 0!==ce(e.base_,t)||t in e.base_?(e.assigned_.set(t,!1),le(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const r=M(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{[m]:!0,[g]:1!==e.type_||"length"!==t,[h]:n[h],[y]:r[t]}:n},defineProperty(){c(11)},getPrototypeOf:e=>l(e.base_),setPrototypeOf(){c(12)}},ue={};for(let e in ie){let t=ie[e];ue[e]=function(){const e=arguments;return e[0]=e[0][0],t.apply(this,e)}}function ce(e,t){const r=e[i];return(r?M(r):e)[t]}function de(e,t){if(!(t in e))return;let r=l(e);for(;r;){const e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=l(r)}}function le(e){e.modified_||(e.modified_=!0,e.parent_&&le(e.parent_))}function pe(e){e.copy_||(e.assigned_=new Map,e.copy_=q(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function fe(e,t,r,n){const[s,o]=O(t)?z(Q).proxyMap_(t,r):C(t)?z(Q).proxySet_(t,r):function(e,t){const r=x(e),n={type_:r?1:0,scope_:t?t.scope_:B(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let s=n,o=ie;r&&(s=[n],o=ue);const{revoke:a,proxy:i}=Proxy.revocable(s,o);return n.draft_=i,n.revoke_=a,[i,n]}(t,r);return(r?.scope_??B()).drafts_.push(s),o.callbacks_=r?.callbacks_??[],o.key_=n,r&&void 0!==n?function(e,t,r){e.callbacks_.push(function(n){const s=t;if(!s||!re(s,n))return;n.mapSetPlugin_?.fixSetContents(s);const o=D(s);se(e,s.draft_??s,o,r),oe(s,n)})}(r,o,n):o.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(o);const{patchPlugin_:t}=e;o.modified_&&t&&t.generatePatches_(o,[],e)}),s}function ge(e){return T(e)||c(10,e),he(e)}function he(e){if(!S(e)||F(e))return e;const t=e[i];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=q(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=q(e,!0);return b(r,(e,t)=>{I(r,e,he(t))},n),t&&(t.finalized_=!1),r}ue.deleteProperty=function(e,t){return"production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&c(13),ue.set.call(this,e,t,void 0)},ue.set=function(e,t,r){return"production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&c(14),ie.set.call(this,e[0],t,r,e[0])};var me=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,r)=>{if(N(e)&&!N(t)){const r=t;t=e;const n=this;return function(e=r,...s){return n.produce(e,e=>t.call(this,e,...s))}}let n;if(N(t)||c(6),void 0===r||N(r)||c(7),S(e)){const s=X(this),o=fe(0,e,void 0);let a=!0;try{n=t(o),a=!1}finally{a?W(s):Y(s)}return V(s,r),Z(n,s)}if(!e||!k(e)){if(n=t(e),void 0===n&&(n=e),n===o&&(n=void 0),this.autoFreeze_&&U(n,!0),r){const t=[],s=[];z(j).generateReplacementPatches_(e,n,{patches_:t,inversePatches_:s}),r(t,s)}return n}c(1,e)},this.produceWithPatches=(e,t)=>{if(N(e))return(t,...r)=>this.produceWithPatches(t,t=>e(t,...r));let r,n;return[this.produce(e,t,(e,t)=>{r=e,n=t}),r,n]},P(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),P(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),P(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){S(e)||c(8),T(e)&&(e=ge(e));const t=X(this),r=fe(0,e,void 0);return r[i].isManual_=!0,Y(t),r}finishDraft(e,t){const r=e&&e[i];r&&r.isManual_||c(9);const{scope_:n}=r;return V(n,t),Z(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));const n=z(j).applyPatches_;return T(e)?n(e,t):this.produce(e,e=>n(e,t))}},ye=me.produceWithPatches.bind(me),Te=me.applyPatches.bind(me),Se=class extends Error{issues;constructor(e){super(e[0].message),this.name="SchemaError",this.issues=e}},_e=(e,t,r)=>{if(1===t.length&&t[0]===r){let t=!1;try{const r={};e(r)===r&&(t=!0)}catch{}if(t){let e;try{throw new Error}catch(t){({stack:e}=t)}console.warn("The result function returned its own inputs without modification. e.g\n`createSelector([state => state.todos], todos => todos)`\nThis could lead to inefficient memoization and unnecessary re-renders.\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.",{stack:e})}}},Ee=(e,t,r)=>{const{memoize:n,memoizeOptions:s}=t,{inputSelectorResults:o,inputSelectorResultsCopy:a}=e,i=n(()=>({}),...s);if(i.apply(null,o)!==i.apply(null,a)){let e;try{throw new Error}catch(t){({stack:e}=t)}console.warn("An input selector returned a different result when passed same arguments.\nThis means your output selector will likely run more frequently than intended.\nAvoid returning a new reference inside your input selector, e.g.\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`",{arguments:r,firstInputs:o,secondInputs:a,stack:e})}},ve={inputStabilityCheck:"once",identityFunctionCheck:"once"},be=e=>Array.isArray(e)?e:[e];function Ae(e,t){const r=[],{length:n}=e;for(let s=0;s<n;s++)r.push(e[s].apply(null,t));return r}var we="undefined"!=typeof WeakRef?WeakRef:class{constructor(e){this.value=e}deref(){return this.value}};function Re(){return{s:0,v:void 0,o:null,p:null}}function Ie(e,t={}){let r={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:n}=t;let s,o=0;function a(){let t=r;const{length:a}=arguments;for(let e=0,r=a;e<r;e++){const r=arguments[e];if("function"==typeof r||"object"==typeof r&&null!==r){let e=t.o;null===e&&(t.o=e=new WeakMap);const n=e.get(r);void 0===n?(t=Re(),e.set(r,t)):t=n}else{let e=t.p;null===e&&(t.p=e=new Map);const n=e.get(r);void 0===n?(t=Re(),e.set(r,t)):t=n}}const i=t;let u;if(1===t.s)u=t.v;else if(u=e.apply(null,arguments),o++,n){const e=s?.deref?.()??s;null!=e&&n(e,u)&&(u=e,0!==o&&o--),s="object"==typeof u&&null!==u||"function"==typeof u?new we(u):u}return i.s=1,i.v=u,u}return a.clearCache=()=>{r={s:0,v:void 0,o:null,p:null},a.resetResultsCount()},a.resultsCount=()=>o,a.resetResultsCount=()=>{o=0},a}function xe(e,...t){const r="function"==typeof e?{memoize:e,memoizeOptions:t}:e,n=(...e)=>{let t,n=0,s=0,o={},a=e.pop();"object"==typeof a&&(o=a,a=e.pop()),function(e,t="expected a function, instead received "+typeof e){if("function"!=typeof e)throw new TypeError(t)}(a,`createSelector expects an output function after the inputs, but received: [${typeof a}]`);const i={...r,...o},{memoize:u,memoizeOptions:c=[],argsMemoize:d=Ie,argsMemoizeOptions:l=[],devModeChecks:p={}}=i,f=be(c),g=be(l),h=function(e){const t=Array.isArray(e[0])?e[0]:e;return function(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(e=>"function"==typeof e)){const r=e.map(e=>"function"==typeof e?`function ${e.name||"unnamed"}()`:typeof e).join(", ");throw new TypeError(`${t}[${r}]`)}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}(e),m=u(function(){return n++,a.apply(null,arguments)},...f);let y=!0;const T=d(function(){s++;const e=Ae(h,arguments);if(t=m.apply(null,e),"production"!==process.env.NODE_ENV){const{identityFunctionCheck:r,inputStabilityCheck:n}=((e,t)=>{const{identityFunctionCheck:r,inputStabilityCheck:n}={...ve,...t};return{identityFunctionCheck:{shouldRun:"always"===r||"once"===r&&e,run:_e},inputStabilityCheck:{shouldRun:"always"===n||"once"===n&&e,run:Ee}}})(y,p);if(r.shouldRun&&r.run(a,e,t),n.shouldRun){const t=Ae(h,arguments);n.run({inputSelectorResults:e,inputSelectorResultsCopy:t},{memoize:u,memoizeOptions:f},arguments)}y&&(y=!1)}return t},...g);return Object.assign(T,{resultFunc:a,memoizedResultFunc:m,dependencies:h,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>t,recomputations:()=>n,resetRecomputations:()=>{n=0},memoize:u,argsMemoize:d})};return Object.assign(n,{withTypes:()=>n}),n}var Oe=xe(Ie),Ce=Object.assign((e,t=Oe)=>{!function(e,t="expected an object, instead received "+typeof e){if("object"!=typeof e)throw new TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);const r=Object.keys(e);return t(r.map(t=>e[t]),(...e)=>e.reduce((e,t,n)=>(e[r[n]]=t,e),{}))},{withTypes:()=>Ce}),ke=(e=>(e.uninitialized="uninitialized",e.pending="pending",e.fulfilled="fulfilled",e.rejected="rejected",e))(ke||{}),Ne="uninitialized",Pe="pending",Me="fulfilled",De="rejected";function qe(e){return{status:e,isUninitialized:e===Ne,isLoading:e===Pe,isSuccess:e===Me,isError:e===De}}var Ue=e.isPlainObject;function Le(e,t){if(e===t||!(Ue(e)&&Ue(t)||Array.isArray(e)&&Array.isArray(t)))return t;const r=Object.keys(t),n=Object.keys(e);let s=r.length===n.length;const o=Array.isArray(t)?[]:{};for(const n of r)o[n]=Le(e[n],t[n]),s&&(s=e[n]===o[n]);return s?e:o}function Fe(e,t,r){return e.reduce((e,n,s)=>(t(n,s)&&e.push(r(n,s)),e),[]).flat()}function Qe(e){return null!=e}function je(e){return[...e?.values()??[]].filter(Qe)}function $e(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}var He=()=>new Map,ze=e=>{const t=new AbortController;return setTimeout(()=>{const e="signal timed out",r="TimeoutError";t.abort("undefined"!=typeof DOMException?new DOMException(e,r):Object.assign(new Error(e),{name:r}))},e),t.signal},Ge=(...e)=>{for(const t of e)if(t.aborted)return AbortSignal.abort(t.reason);const t=new AbortController;for(const r of e)r.addEventListener("abort",()=>t.abort(r.reason),{signal:t.signal,once:!0});return t.signal},Ke=(...e)=>fetch(...e),Be=e=>e.status>=200&&e.status<=299,Ve=e=>/ion\/(vnd\.api\+)?json/.test(e.get("content-type")||"");function We(t){if(!e.isPlainObject(t))return t;const r={...t};for(const[e,t]of Object.entries(r))void 0===t&&delete r[e];return r}var Ye=class{constructor(e,t=void 0){this.value=e,this.meta=t}},Xe="__rtkq/",Je="online",Ze="offline",et="focus",tt="focused",rt="visibilitychange",nt=e.createAction(`${Xe}${tt}`),st=e.createAction(`${Xe}un${tt}`),ot=e.createAction(`${Xe}${Je}`),at=e.createAction(`${Xe}${Ze}`),it=!1,ut="query",ct="mutation",dt="infinitequery";function lt(e){return e.type===ut}function pt(e){return e.type===dt}function ft(e){return lt(e)||pt(e)}function gt(e,t,r,n,s,o){const a="function"==typeof e?e(t,r,n,s):e;return a?Fe(a,Qe,e=>o(ht(e))):[]}function ht(e){return"string"==typeof e?{type:e}:e}var mt=(e,t)=>e.endpointDefinitions[t],yt=Symbol("forceQueryFn"),Tt=e=>"function"==typeof e[yt],St=class extends Se{constructor(e,t,r,n){super(e),this.value=t,this.schemaName=r,this._bqMeta=n}},_t=(e,t)=>Array.isArray(e)?e.includes(t):!!e;async function Et(e,t,r,n){const s=await e["~standard"].validate(t);if(s.issues)throw new St(s.issues,t,r,n);return s.value}function vt(e){return e}var bt=(t={})=>({...t,[e.SHOULD_AUTOBATCH]:!0});function At(e,{pages:t,pageParams:r},n){const s=t.length-1;return e.getNextPageParam(t[s],t,r[s],r,n)}function wt(e,{pages:t,pageParams:r},n){return e.getPreviousPageParam?.(t[0],t,r[0],r,n)}function Rt(t,r,n,s){return gt(n[t.meta.arg.endpointName][r],e.isFulfilled(t)?t.payload:void 0,e.isRejectedWithValue(t)?t.payload:void 0,t.meta.arg.originalArgs,"baseQueryMeta"in t.meta?t.meta.baseQueryMeta:void 0,s)}function It(e){return T(e)?ge(e):e}function xt(e,t,r){const n=e[t];n&&r(n)}function Ot(e){return("arg"in e?e.arg.fixedCacheKey:e.fixedCacheKey)??e.requestId}function Ct(e,t,r){const n=e[Ot(t)];n&&r(n)}var kt={},Nt=Symbol.for("RTKQ/skipToken"),Pt={status:Ne},Mt=e.createNextState(Pt,()=>{}),Dt=e.createNextState(Pt,()=>{}),qt=WeakMap?new WeakMap:void 0,Ut=({endpointName:t,queryArgs:r})=>{let n="";const s=qt?.get(r);if("string"==typeof s)n=s;else{const t=JSON.stringify(r,(t,r)=>(r="bigint"==typeof r?{$bigint:r.toString()}:r,r=e.isPlainObject(r)?Object.keys(r).sort().reduce((e,t)=>(e[t]=r[t],e),{}):r));e.isPlainObject(r)&&qt?.set(r,t),n=t}return`${t}(${n})`};function Lt(...t){return function(r){const n=Ie(e=>r.extractRehydrationInfo?.(e,{reducerPath:r.reducerPath??"api"})),s={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...r,extractRehydrationInfo:n,serializeQueryArgs(e){let t=Ut;if("serializeQueryArgs"in e.endpointDefinition){const r=e.endpointDefinition.serializeQueryArgs;t=e=>{const t=r(e);return"string"==typeof t?t:Ut({...e,queryArgs:t})}}else r.serializeQueryArgs&&(t=r.serializeQueryArgs);return t(e)},tagTypes:[...r.tagTypes||[]]},o={endpointDefinitions:{},batch(e){e()},apiUid:e.nanoid(),extractRehydrationInfo:n,hasRehydrationInfo:Ie(e=>null!=n(e))},a={injectEndpoints:function(t){const r=t.endpoints({query:e=>({...e,type:ut}),mutation:e=>({...e,type:ct}),infiniteQuery:e=>({...e,type:dt})});for(const[n,s]of Object.entries(r))if(!0!==t.overrideExisting&&n in o.endpointDefinitions){if("throw"===t.overrideExisting)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(39):`called \`injectEndpoints\` to override already-existing endpointName ${n} without specifying \`overrideExisting: true\``);"undefined"!=typeof process&&"development"===process.env.NODE_ENV&&console.error(`called \`injectEndpoints\` to override already-existing endpointName ${n} without specifying \`overrideExisting: true\``)}else{if("undefined"!=typeof process&&"development"===process.env.NODE_ENV&&pt(s)){const{infiniteQueryOptions:t}=s,{maxPages:r,getPreviousPageParam:o}=t;if("number"==typeof r){if(r<1)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(40):`maxPages for endpoint '${n}' must be a number greater than 0`);if("function"!=typeof o)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(41):`getPreviousPageParam for endpoint '${n}' must be a function if maxPages is used`)}}o.endpointDefinitions[n]=s;for(const e of i)e.injectEndpoint(n,s)}return a},enhanceEndpoints({addTagTypes:e,endpoints:t}){if(e)for(const t of e)s.tagTypes.includes(t)||s.tagTypes.push(t);if(t)for(const[e,r]of Object.entries(t))"function"==typeof r?r(mt(o,e)):Object.assign(mt(o,e)||{},r);return a}},i=t.map(e=>e.init(a,s,o));return a.injectEndpoints({endpoints:r.endpoints})}}function Ft(e,...t){return Object.assign(e,...t)}var Qt=({api:t,queryThunk:r,context:n,internalState:s,selectors:{selectQueryEntry:o,selectConfig:a},getRunningQueryThunk:i})=>{const{removeQueryResult:u,unsubscribeQueryResult:c,cacheEntriesUpserted:d}=t.internalActions,l=e.isAnyOf(c.match,r.fulfilled,r.rejected,d.match);function p(e){const t=s.currentSubscriptions.get(e);return!!t&&t.size>0}const f={};function g(e){for(const t of e.values())t?.abort?.()}function h(e,t,r){const n=t.getState();for(const s of e){const e=o(n,s);e?.endpointName&&m(s,e.endpointName,t,r)}}function m(e,t,r,s){const a=mt(n,t),c=a?.keepUnusedDataFor??s.keepUnusedDataFor;if(c===1/0)return;const d=Math.max(0,Math.min(c,2147482.647));if(!p(e)){const t=f[e];t&&clearTimeout(t),f[e]=setTimeout(()=>{if(!p(e)){const t=o(r.getState(),e);if(t?.endpointName){const e=r.dispatch(i(t.endpointName,t.originalArgs));e?.abort()}r.dispatch(u({queryCacheKey:e}))}delete f[e]},1e3*d)}}return(e,r)=>{const o=r.getState(),i=a(o);if(l(e)){let t;if(d.match(e))t=e.payload.map(e=>e.queryDescription.queryCacheKey);else{const{queryCacheKey:r}=c.match(e)?e.payload:e.meta.arg;t=[r]}h(t,r,i)}if(t.util.resetApiState.match(e)){for(const[e,t]of Object.entries(f))t&&clearTimeout(t),delete f[e];g(s.runningQueries),g(s.runningMutations)}if(n.hasRehydrationInfo(e)){const{queries:t}=n.extractRehydrationInfo(e);h(Object.keys(t),r,i)}}},jt=new Error("Promise never resolved before cacheEntryRemoved."),$t=({api:t,reducerPath:r,context:n,queryThunk:s,mutationThunk:o,selectors:{selectQueryEntry:a}})=>{const i=e.isAsyncThunkAction(s),u=e.isAsyncThunkAction(o),c=e.isFulfilled(s,o),d={},{removeQueryResult:l,removeMutationResult:p,cacheEntriesUpserted:f}=t.internalActions;function g(e,t,r){const n=d[e];n?.valueResolved&&(n.valueResolved({data:t,meta:r}),delete n.valueResolved)}function h(e){const t=d[e];t&&(delete d[e],t.cacheEntryRemoved())}function m(e){const{arg:t,requestId:r}=e.meta,{endpointName:n,originalArgs:s}=t;return[n,s,r]}function y(e,r,s,o,a){const i=mt(n,e),u=i?.onCacheEntryAdded;if(!u)return;const c={},l=new Promise(e=>{c.cacheEntryRemoved=e}),p=Promise.race([new Promise(e=>{c.valueResolved=e}),l.then(()=>{throw jt})]);p.catch(()=>{}),d[s]=c;const f=t.endpoints[e].select(ft(i)?r:s),g=o.dispatch((e,t,r)=>r),h={...o,getCacheEntry:()=>f(o.getState()),requestId:a,extra:g,updateCachedData:ft(i)?n=>o.dispatch(t.util.updateQueryData(e,r,n)):void 0,cacheDataLoaded:p,cacheEntryRemoved:l},m=u(r,h);Promise.resolve(m).catch(e=>{if(e!==jt)throw e})}return(e,n,T)=>{const S=function(e){return i(e)?e.meta.arg.queryCacheKey:u(e)?e.meta.arg.fixedCacheKey??e.meta.requestId:l.match(e)?e.payload.queryCacheKey:p.match(e)?Ot(e.payload):""}(e);function _(e,t,r,s){const o=a(T,t),i=a(n.getState(),t);!o&&i&&y(e,s,t,n,r)}if(s.pending.match(e)){const[t,r,n]=m(e);_(t,S,n,r)}else if(f.match(e))for(const{queryDescription:t,value:r}of e.payload){const{endpointName:n,originalArgs:s,queryCacheKey:o}=t;_(n,o,e.meta.requestId,s),g(o,r,{})}else if(o.pending.match(e)){if(n.getState()[r].mutations[S]){const[t,r,s]=m(e);y(t,r,S,n,s)}}else if(c(e))g(S,e.payload,e.meta.baseQueryMeta);else if(l.match(e)||p.match(e))h(S);else if(t.util.resetApiState.match(e))for(const e of Object.keys(d))h(e)}},Ht=({api:e,context:{apiUid:t},reducerPath:r})=>(n,s)=>{e.util.resetApiState.match(n)&&s.dispatch(e.internalActions.middlewareRegistered(t)),"undefined"!=typeof process&&"development"===process.env.NODE_ENV&&e.internalActions.middlewareRegistered.match(n)&&n.payload===t&&"conflict"===s.getState()[r]?.config?.middlewareRegistered&&console.warn(`There is a mismatch between slice and middleware for the reducerPath "${r}".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${"api"===r?"\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!":""}`)},zt=({reducerPath:t,context:r,context:{endpointDefinitions:n},mutationThunk:s,queryThunk:o,api:a,assertTagType:i,refetchQuery:u,internalState:c})=>{const{removeQueryResult:d}=a.internalActions,l=e.isAnyOf(e.isFulfilled(s),e.isRejectedWithValue(s)),p=e.isAnyOf(e.isFulfilled(o,s),e.isRejected(o,s));let f=[],g=0;function h(e,n){const s=n.getState(),o=s[t];if(f.push(...e),"delayed"===o.config.invalidationBehavior&&g>0)return;const i=f;if(f=[],0===i.length)return;const l=a.util.selectInvalidatedBy(s,i);r.batch(()=>{const e=Array.from(l.values());for(const{queryCacheKey:t}of e){const e=o.queries[t],r=$e(c.currentSubscriptions,t,He);e&&(0===r.size?n.dispatch(d({queryCacheKey:t})):e.status!==Ne&&n.dispatch(u(e)))}})}return(e,t)=>{(o.pending.match(e)||s.pending.match(e))&&g++,p(e)&&(g=Math.max(0,g-1)),l(e)?h(Rt(e,"invalidatesTags",n,i),t):p(e)?h([],t):a.util.invalidateTags.match(e)&&h(gt(e.payload,void 0,void 0,void 0,void 0,i),t)}},Gt=({reducerPath:e,queryThunk:t,api:r,refetchQuery:n,internalState:s})=>{const{currentPolls:o,currentSubscriptions:a}=s,i=new Set;let u=null;function c(e,t){i.add(e),u||(u=setTimeout(()=>{for(const e of i)l({queryCacheKey:e},t);i.clear(),u=null},0))}function d({queryCacheKey:t},r){const s=r.getState()[e],i=s.queries[t],u=a.get(t);if(!i||i.status===Ne)return;const{lowestPollingInterval:c,skipPollingIfUnfocused:l}=f(u);if(!Number.isFinite(c))return;const p=o.get(t);p?.timeout&&(clearTimeout(p.timeout),p.timeout=void 0);const g=Date.now()+c;o.set(t,{nextPollTimestamp:g,pollingInterval:c,timeout:setTimeout(()=>{!s.config.focused&&l||r.dispatch(n(i)),d({queryCacheKey:t},r)},c)})}function l({queryCacheKey:t},r){const n=r.getState()[e].queries[t],s=a.get(t);if(!n||n.status===Ne)return;const{lowestPollingInterval:i}=f(s);if("test"===process.env.NODE_ENV){const e=o.pollUpdateCounters??={};e[t]??=0,e[t]++}if(!Number.isFinite(i))return void p(t);const u=o.get(t),c=Date.now()+i;(!u||c<u.nextPollTimestamp)&&d({queryCacheKey:t},r)}function p(e){const t=o.get(e);t?.timeout&&clearTimeout(t.timeout),o.delete(e)}function f(e=new Map){let t=!1,r=Number.POSITIVE_INFINITY;for(const n of e.values())n.pollingInterval&&(r=Math.min(n.pollingInterval,r),t=n.skipPollingIfUnfocused||t);return{lowestPollingInterval:r,skipPollingIfUnfocused:t}}return(e,n)=>{(r.internalActions.updateSubscriptionOptions.match(e)||r.internalActions.unsubscribeQueryResult.match(e))&&c(e.payload.queryCacheKey,n),(t.pending.match(e)||t.rejected.match(e)&&e.meta.condition)&&c(e.meta.arg.queryCacheKey,n),(t.fulfilled.match(e)||t.rejected.match(e)&&!e.meta.condition)&&d(e.meta.arg,n),r.util.resetApiState.match(e)&&(function(){for(const e of o.keys())p(e)}(),u&&(clearTimeout(u),u=null),i.clear())}},Kt=({api:t,context:r,queryThunk:n,mutationThunk:s})=>{const o=e.isPending(n,s),a=e.isRejected(n,s),i=e.isFulfilled(n,s),u={};return(e,n)=>{if(o(e)){const{requestId:s,arg:{endpointName:o,originalArgs:a}}=e.meta,i=mt(r,o),c=i?.onQueryStarted;if(c){const e={},r=new Promise((t,r)=>{e.resolve=t,e.reject=r});r.catch(()=>{}),u[s]=e;const d=t.endpoints[o].select(ft(i)?a:s),l=n.dispatch((e,t,r)=>r),p={...n,getCacheEntry:()=>d(n.getState()),requestId:s,extra:l,updateCachedData:ft(i)?e=>n.dispatch(t.util.updateQueryData(o,a,e)):void 0,queryFulfilled:r};c(a,p)}}else if(i(e)){const{requestId:t,baseQueryMeta:r}=e.meta;u[t]?.resolve({data:e.payload,meta:r}),delete u[t]}else if(a(e)){const{requestId:t,rejectedWithValue:r,baseQueryMeta:n}=e.meta;u[t]?.reject({error:e.payload??e.error,isUnhandledError:!r,meta:n}),delete u[t]}}};var Bt=Symbol(),Vt=({createSelector:t=e.createSelector}={})=>({name:Bt,init(r,{baseQuery:n,tagTypes:s,reducerPath:d,serializeQueryArgs:g,keepUnusedDataFor:h,refetchOnMountOrArgChange:m,refetchOnFocus:y,refetchOnReconnect:_,invalidationBehavior:E,onSchemaFailure:v,catchSchemaFailure:I,skipSchemaValidation:P},M){!function(){"production"!==process.env.NODE_ENV&&u.push('Sets cannot have "replace" patches.',function(e){return"Unsupported patch operation: "+e},function(e){return"Cannot apply patch, path doesn't resolve: "+e},"Patching reserved attributes like __proto__, prototype and constructor is not allowed");const e="replace",t="add",r="remove";function n(e){if(!S(e))return e;if(x(e))return e.map(n);if(O(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,n(t)]));if(C(e))return new Set(Array.from(e).map(n));const t=Object.create(l(e));for(const r in e)t[r]=n(e[r]);return w(e,a)&&(t[a]=e[a]),t}function s(e){return T(e)?n(e):e}var d;H[d=j]||(H[d]={applyPatches_:function(s,o){return o.forEach(o=>{const{path:a,op:i}=o;let u=s;for(let e=0;e<a.length-1;e++){const t=A(u);let r=a[e];"string"!=typeof r&&"number"!=typeof r&&(r=""+r),0!==t&&1!==t||"__proto__"!==r&&r!==p||c(19),N(u)&&r===f&&c(19),u=R(u,r),k(u)||c(18,a.join("/"))}const d=A(u),l=n(o.value),g=a[a.length-1];switch(i){case e:switch(d){case 2:return u.set(g,l);case 3:c(16);default:return u[g]=l}case t:switch(d){case 1:return"-"===g?u.push(l):u.splice(g,0,l);case 2:return u.set(g,l);case 3:return u.add(l);default:return u[g]=l}case r:switch(d){case 1:return u.splice(g,1);case 2:return u.delete(g);case 3:return u.delete(o.value);default:return delete u[g]}default:c(17,i)}}),s},generatePatches_:function(n,o,a){if(n.scope_.processedForPatches_.has(n))return;n.scope_.processedForPatches_.add(n);const{patches_:u,inversePatches_:c}=a;switch(n.type_){case 0:case 2:return function(n,o,a,i){const{base_:u,copy_:c,type_:d}=n;b(n.assigned_,(n,l)=>{const p=R(u,n,d),f=R(c,n,d),g=l?w(u,n)?e:t:r;if(p===f&&g===e)return;const h=o.concat(n);a.push(g===r?{op:g,path:h}:{op:g,path:h,value:s(f)}),i.push(g===t?{op:r,path:h}:g===r?{op:t,path:h,value:s(p)}:{op:e,path:h,value:s(p)})})}(n,o,u,c);case 1:return function(n,o,a,u){let{base_:c,assigned_:d}=n,l=n.copy_;l.length<c.length&&([c,l]=[l,c],[a,u]=[u,a]);const p=!0===n.allIndicesReassigned_;for(let t=0;t<c.length;t++){const r=l[t],n=c[t];if((p||d?.get(t.toString()))&&r!==n){const c=r?.[i];if(c&&c.modified_)continue;const d=o.concat([t]);a.push({op:e,path:d,value:s(r)}),u.push({op:e,path:d,value:s(n)})}}for(let e=c.length;e<l.length;e++){const r=o.concat([e]);a.push({op:t,path:r,value:s(l[e])})}for(let e=l.length-1;c.length<=e;--e){const t=o.concat([e]);u.push({op:r,path:t})}}(n,o,u,c);case 3:return function(e,n,s,o){let{base_:a,copy_:i}=e,u=0;a.forEach(e=>{if(!i.has(e)){const a=n.concat([u]);s.push({op:r,path:a,value:e}),o.unshift({op:t,path:a,value:e})}u++}),u=0,i.forEach(e=>{if(!a.has(e)){const a=n.concat([u]);s.push({op:t,path:a,value:e}),o.unshift({op:r,path:a,value:e})}u++})}(n,o,u,c)}},generateReplacementPatches_:function(t,r,n){const{patches_:s,inversePatches_:a}=n;s.push({op:e,path:[],value:r===o?void 0:r}),a.push({op:e,path:[],value:t})},getPath:function e(t,r=[]){if(void 0!==t.key_){const e=t.parent_.copy_??t.parent_.base_,s=(n=R(e,t.key_),k(n)?n?.[i]:null),o=R(e,t.key_);if(void 0===o)return null;if(o!==t.draft_&&o!==t.base_&&o!==t.copy_)return null;if(null!=s&&s.base_!==t.base_)return null;const a=3===t.parent_.type_;let u;if(u=a?Array.from(t.parent_.drafts_.keys()).indexOf(t.key_):t.key_,!(a&&e.size>u||w(e,u)))return null;r.push(u)}var n;if(t.parent_)return e(t.parent_,r);r.reverse();try{!function(e,t){let r=e;for(let e=0;e<t.length-1;e++)if(r=R(r,t[e]),!k(r)||null===r)throw new Error(`Cannot resolve path at '${t.join("/")}'`)}(t.copy_,r)}catch(e){return null}return r}})}();const D=e=>("undefined"!=typeof process&&"development"===process.env.NODE_ENV&&(s.includes(e.type)||console.error(`Tag type '${e.type}' was used, but not specified in \`tagTypes\`!`)),e);Object.assign(r,{reducerPath:d,endpoints:{},internalActions:{onOnline:ot,onOffline:at,onFocus:nt,onFocusLost:st},util:{}});const q=function({serializeQueryArgs:e,reducerPath:t,createSelector:r}){const n=e=>Mt,s=e=>Dt;return{buildQuerySelector:function(e,t){return c(e,t,o)},buildInfiniteQuerySelector:function(e,t){const{infiniteQueryOptions:r}=t;return c(e,t,function(e){const t={...e,...qe(e.status)},{isLoading:n,isError:s,direction:o}=t,a="forward"===o,i="backward"===o;return{...t,hasNextPage:(u=r,c=t.data,l=t.originalArgs,!!c&&null!=At(u,c,l)),hasPreviousPage:d(r,t.data,t.originalArgs),isFetchingNextPage:n&&a,isFetchingPreviousPage:n&&i,isFetchNextPageError:s&&a,isFetchPreviousPageError:s&&i};var u,c,l})},buildMutationSelector:function(){return e=>{let t;return t="object"==typeof e?Ot(e)??Nt:e,r(t===Nt?s:e=>a(e)?.mutations?.[t]??Dt,o)}},selectInvalidatedBy:function(e,r){const n=e[t],s=new Set,o=Fe(r,Qe,ht);for(const e of o){const t=n.provided.tags[e.type];if(!t)continue;let r=(void 0!==e.id?t[e.id]:Object.values(t).flat())??[];for(const e of r)s.add(e)}return Array.from(s.values()).flatMap(e=>{const t=n.queries[e];return t?{queryCacheKey:e,endpointName:t.endpointName,originalArgs:t.originalArgs}:[]})},selectCachedArgsForQuery:function(e,t){return Fe(Object.values(i(e)),e=>e?.endpointName===t&&e.status!==Ne,e=>e.originalArgs)},selectApiState:a,selectQueries:i,selectMutations:function(e){return a(e)?.mutations},selectQueryEntry:u,selectConfig:function(e){return a(e)?.config}};function o(e){return{...e,...qe(e.status)}}function a(e){const r=e[t];if("production"!==process.env.NODE_ENV&&!r){if(a.triggered)return r;a.triggered=!0,console.error(`Error: No data found at \`state.${t}\`. Did you forget to add the reducer to the store?`)}return r}function i(e){return a(e)?.queries}function u(e,t){return i(e)?.[t]}function c(t,s,o){return a=>{if(a===Nt)return r(n,o);const i=e({queryArgs:a,endpointDefinition:s,endpointName:t});return r(e=>u(e,i)??Mt,o)}}function d(e,t,r){return!(!t||!e.getPreviousPageParam)&&null!=wt(e,t,r)}}({serializeQueryArgs:g,reducerPath:d,createSelector:t}),{selectInvalidatedBy:U,selectCachedArgsForQuery:L,buildQuerySelector:F,buildInfiniteQuerySelector:Q,buildMutationSelector:$}=q;Ft(r.util,{selectInvalidatedBy:U,selectCachedArgsForQuery:L});const{queryThunk:z,infiniteQueryThunk:G,mutationThunk:K,patchQueryData:B,updateQueryData:V,upsertQueryData:W,prefetch:Y,buildMatchThunkActions:X}=function({reducerPath:t,baseQuery:r,context:{endpointDefinitions:n},serializeQueryArgs:s,api:o,assertTagType:a,selectors:i,onSchemaFailure:u,catchSchemaFailure:c,skipSchemaValidation:d}){function l(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}function p(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}const f=(e,t)=>e.query&&e[t]?e[t]:vt,g=async(e,{signal:t,abort:s,rejectWithValue:o,fulfillWithValue:a,dispatch:g,getState:m,extra:y})=>{const T=n[e.endpointName],{metaSchema:S,skipSchemaValidation:_=d}=T,E=e.type===ut;try{let v=vt;const b={signal:t,abort:s,dispatch:g,getState:m,extra:y,endpoint:e.endpointName,type:e.type,forced:E?h(e,m()):void 0,queryCacheKey:E?e.queryCacheKey:void 0},A=E?e[yt]:void 0;let w;const R=async(t,r,n,s)=>{if(null==r&&t.pages.length)return Promise.resolve({data:t});const o={queryArg:e.originalArgs,pageParam:r},a=await I(o),i=s?l:p;return{data:{pages:i(t.pages,a.data,n),pageParams:i(t.pageParams,r,n)},meta:a.meta}};async function I(t){let n;const{extraOptions:s,argSchema:o,rawResponseSchema:a,responseSchema:i}=T;if(o&&!_t(_,"arg")&&(t=await Et(o,t,"argSchema",{})),A?n=A():T.query?(v=f(T,"transformResponse"),n=await r(T.query(t),b,s)):n=await T.queryFn(t,b,s,e=>r(e,b,s)),"undefined"!=typeof process&&"development"===process.env.NODE_ENV){const t=T.query?"`baseQuery`":"`queryFn`";let r;if(n){if("object"!=typeof n)r=`${t} did not return an object.`;else if(n.error&&n.data)r=`${t} returned an object containing both \`error\` and \`result\`.`;else if(void 0===n.error&&void 0===n.data)r=`${t} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``;else for(const e of Object.keys(n))if("error"!==e&&"data"!==e&&"meta"!==e){r=`The object returned by ${t} has the unknown property ${e}.`;break}}else r=`${t} did not return anything.`;r&&console.error(`Error encountered handling the endpoint ${e.endpointName}.\n ${r}\n It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.\n Object returned was:`,n)}if(n.error)throw new Ye(n.error,n.meta);let{data:u}=n;a&&!_t(_,"rawResponse")&&(u=await Et(a,n.data,"rawResponseSchema",n.meta));let c=await v(u,n.meta,t);return i&&!_t(_,"response")&&(c=await Et(i,c,"responseSchema",n.meta)),{...n,data:c}}if(E&&"infiniteQueryOptions"in T){const{infiniteQueryOptions:x}=T,{maxPages:O=1/0}=x,C=e.refetchCachedPages??x.refetchCachedPages??!0;let k;const N={pages:[],pageParams:[]},P=i.selectQueryEntry(m(),e.queryCacheKey)?.data,M=h(e,m())&&!e.direction||!P?N:P;if("direction"in e&&e.direction&&M.pages.length){const D="backward"===e.direction,q=(D?wt:At)(x,M,e.originalArgs);k=await R(M,q,O,D)}else{const{initialPageParam:U=x.initialPageParam}=e,L=P?.pageParams??[],F=L[0]??U,Q=L.length;if(k=await R(M,F,O),A&&(k={data:k.data.pages[0]}),C)for(let j=1;j<Q;j++){const $=At(x,k.data,e.originalArgs);k=await R(k.data,$,O)}}w=k}else w=await I(e.originalArgs);return S&&!_t(_,"meta")&&w.meta&&(w.meta=await Et(S,w.meta,"metaSchema",w.meta)),a(w.data,bt({fulfilledTimeStamp:Date.now(),baseQueryMeta:w.meta}))}catch(H){let z=H;if(z instanceof Ye){let G=f(T,"transformErrorResponse");const{rawErrorResponseSchema:K,errorResponseSchema:B}=T;let{value:V,meta:W}=z;try{K&&!_t(_,"rawErrorResponse")&&(V=await Et(K,V,"rawErrorResponseSchema",W)),S&&!_t(_,"meta")&&(W=await Et(S,W,"metaSchema",W));let Y=await G(V,W,e.originalArgs);return B&&!_t(_,"errorResponse")&&(Y=await Et(B,Y,"errorResponseSchema",W)),o(Y,bt({baseQueryMeta:W}))}catch(X){z=X}}try{if(z instanceof St){const J={endpoint:e.endpointName,arg:e.originalArgs,type:e.type,queryCacheKey:E?e.queryCacheKey:void 0};T.onSchemaFailure?.(z,J),u?.(z,J);const{catchSchemaFailure:Z=c}=T;if(Z)return o(Z(z,J),bt({baseQueryMeta:z._bqMeta}))}}catch(ee){z=ee}throw"undefined"!=typeof process&&"production"!==process.env.NODE_ENV?console.error(`An unhandled error occurred processing a request for the endpoint "${e.endpointName}".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,z):console.error(z),z}};function h(e,t){const r=i.selectQueryEntry(t,e.queryCacheKey),n=i.selectConfig(t).refetchOnMountOrArgChange,s=r?.fulfilledTimeStamp,o=e.forceRefetch??(e.subscribe&&n);return!!o&&(!0===o||(Number(new Date)-Number(s))/1e3>=o)}const m=()=>e.createAsyncThunk(`${t}/executeQuery`,g,{getPendingMeta({arg:e}){const t=n[e.endpointName];return bt({startedTimeStamp:Date.now(),...pt(t)?{direction:e.direction}:{}})},condition(e,{getState:t}){const r=t(),s=i.selectQueryEntry(r,e.queryCacheKey),o=s?.fulfilledTimeStamp,a=e.originalArgs,u=s?.originalArgs,c=n[e.endpointName],d=e.direction;return!(!Tt(e)&&("pending"===s?.status||!h(e,r)&&(!lt(c)||!c?.forceRefetch?.({currentArg:a,previousArg:u,endpointState:s,state:r}))&&o&&!d))},dispatchConditionRejection:!0}),y=m(),T=m();function _(e){return t=>t?.meta?.arg?.endpointName===e}return{queryThunk:y,mutationThunk:e.createAsyncThunk(`${t}/executeMutation`,g,{getPendingMeta:()=>bt({startedTimeStamp:Date.now()})}),infiniteQueryThunk:T,prefetch:(e,t,r={})=>(n,s)=>{const a=(e=>"force"in e)(r)&&r.force,i=(e=>"ifOlderThan"in e)(r)&&r.ifOlderThan,u=(r=!0)=>o.endpoints[e].initiate(t,{forceRefetch:r,subscribe:!1}),c=o.endpoints[e].select(t)(s());if(a)n(u());else if(i){const e=c?.fulfilledTimeStamp;if(!e)return void n(u());(Number(new Date)-Number(new Date(e)))/1e3>=i&&n(u())}else n(u(!1))},updateQueryData:(e,t,r,n=!0)=>(s,a)=>{const i=o.endpoints[e].select(t)(a()),u={patches:[],inversePatches:[],undo:()=>s(o.util.patchQueryData(e,t,u.inversePatches,n))};if(i.status===Ne)return u;let c;if("data"in i)if(S(i.data)){const[e,t,n]=ye(i.data,r);u.patches.push(...t),u.inversePatches.push(...n),c=e}else c=r(i.data),u.patches.push({op:"replace",path:[],value:c}),u.inversePatches.push({op:"replace",path:[],value:i.data});return 0===u.patches.length||s(o.util.patchQueryData(e,t,u.patches,n)),u},upsertQueryData:(e,t,r)=>n=>n(o.endpoints[e].initiate(t,{subscribe:!1,forceRefetch:!0,[yt]:()=>({data:r})})),patchQueryData:(e,t,r,i)=>(u,c)=>{const d=n[e],l=s({queryArgs:t,endpointDefinition:d,endpointName:e});if(u(o.internalActions.queryResultPatched({queryCacheKey:l,patches:r})),!i)return;const p=o.endpoints[e].select(t)(c()),f=gt(d.providesTags,p.data,void 0,t,{},a);u(o.internalActions.updateProvidedBy([{queryCacheKey:l,providedTags:f}]))},buildMatchThunkActions:function(t,r){return{matchPending:e.isAllOf(e.isPending(t),_(r)),matchFulfilled:e.isAllOf(e.isFulfilled(t),_(r)),matchRejected:e.isAllOf(e.isRejected(t),_(r))}}}}({baseQuery:n,reducerPath:d,context:M,api:r,serializeQueryArgs:g,assertTagType:D,selectors:q,onSchemaFailure:v,catchSchemaFailure:I,skipSchemaValidation:P}),{reducer:J,actions:Z}=function({reducerPath:t,queryThunk:r,mutationThunk:n,serializeQueryArgs:s,context:{endpointDefinitions:o,apiUid:a,extractRehydrationInfo:u,hasRehydrationInfo:d},assertTagType:l,config:p}){const f=e.createAction(`${t}/resetApiState`);function g(e,t,r,n){e[t.queryCacheKey]??={status:Ne,endpointName:t.endpointName},xt(e,t.queryCacheKey,e=>{e.status=Pe,e.requestId=r&&e.requestId?e.requestId:n.requestId,void 0!==t.originalArgs&&(e.originalArgs=t.originalArgs),e.startedTimeStamp=n.startedTimeStamp,pt(o[n.arg.endpointName])&&"direction"in t&&(e.direction=t.direction)})}function h(t,r,n,s){xt(t,r.arg.queryCacheKey,t=>{if(t.requestId!==r.requestId&&!s)return;const{merge:a}=o[r.arg.endpointName];if(t.status=Me,a)if(void 0!==t.data){const{fulfilledTimeStamp:s,arg:o,baseQueryMeta:i,requestId:u}=r;let c=e.createNextState(t.data,e=>a(e,n,{arg:o.originalArgs,baseQueryMeta:i,fulfilledTimeStamp:s,requestId:u}));t.data=c}else t.data=n;else t.data=o[r.arg.endpointName].structuralSharing??1?Le(T(t.data)?(T(u=t.data)||c(15,u),u[i].base_):t.data,n):n;var u;delete t.error,t.fulfilledTimeStamp=r.fulfilledTimeStamp})}const m=e.createSlice({name:`${t}/queries`,initialState:kt,reducers:{removeQueryResult:{reducer(e,{payload:{queryCacheKey:t}}){delete e[t]},prepare:e.prepareAutoBatched()},cacheEntriesUpserted:{reducer(e,t){for(const r of t.payload){const{queryDescription:n,value:s}=r;g(e,n,!0,{arg:n,requestId:t.meta.requestId,startedTimeStamp:t.meta.timestamp}),h(e,{arg:n,requestId:t.meta.requestId,fulfilledTimeStamp:t.meta.timestamp,baseQueryMeta:{}},s,!0)}},prepare:t=>({payload:t.map(e=>{const{endpointName:t,arg:r,value:n}=e;return{queryDescription:{type:ut,endpointName:t,originalArgs:e.arg,queryCacheKey:s({queryArgs:r,endpointDefinition:o[t],endpointName:t})},value:n}}),meta:{[e.SHOULD_AUTOBATCH]:!0,requestId:e.nanoid(),timestamp:Date.now()}})},queryResultPatched:{reducer(e,{payload:{queryCacheKey:t,patches:r}}){xt(e,t,e=>{e.data=Te(e.data,r.concat())})},prepare:e.prepareAutoBatched()}},extraReducers(e){e.addCase(r.pending,(e,{meta:t,meta:{arg:r}})=>{g(e,r,Tt(r),t)}).addCase(r.fulfilled,(e,{meta:t,payload:r})=>{h(e,t,r,Tt(t.arg))}).addCase(r.rejected,(e,{meta:{condition:t,arg:r,requestId:n},error:s,payload:o})=>{xt(e,r.queryCacheKey,e=>{if(t);else{if(e.requestId!==n)return;e.status=De,e.error=o??s}})}).addMatcher(d,(e,t)=>{const{queries:r}=u(t);for(const[t,n]of Object.entries(r))n?.status!==Me&&n?.status!==De||(e[t]=n)})}}),y=e.createSlice({name:`${t}/mutations`,initialState:kt,reducers:{removeMutationResult:{reducer(e,{payload:t}){const r=Ot(t);r in e&&delete e[r]},prepare:e.prepareAutoBatched()}},extraReducers(e){e.addCase(n.pending,(e,{meta:t,meta:{requestId:r,arg:n,startedTimeStamp:s}})=>{n.track&&(e[Ot(t)]={requestId:r,status:Pe,endpointName:n.endpointName,startedTimeStamp:s})}).addCase(n.fulfilled,(e,{payload:t,meta:r})=>{r.arg.track&&Ct(e,r,e=>{e.requestId===r.requestId&&(e.status=Me,e.data=t,e.fulfilledTimeStamp=r.fulfilledTimeStamp)})}).addCase(n.rejected,(e,{payload:t,error:r,meta:n})=>{n.arg.track&&Ct(e,n,e=>{e.requestId===n.requestId&&(e.status=De,e.error=t??r)})}).addMatcher(d,(e,t)=>{const{mutations:r}=u(t);for(const[t,n]of Object.entries(r))n?.status!==Me&&n?.status!==De||t===n?.requestId||(e[t]=n)})}}),S=e.createSlice({name:`${t}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(e,t){for(const{queryCacheKey:r,providedTags:n}of t.payload){_(e,r);for(const{type:t,id:s}of n){const n=(e.tags[t]??={})[s||"__internal_without_id"]??=[];n.includes(r)||n.push(r)}e.keys[r]=n}},prepare:e.prepareAutoBatched()}},extraReducers(t){t.addCase(m.actions.removeQueryResult,(e,{payload:{queryCacheKey:t}})=>{_(e,t)}).addMatcher(d,(e,t)=>{const{provided:r}=u(t);for(const[t,n]of Object.entries(r.tags??{}))for(const[s,o]of Object.entries(n)){const n=(e.tags[t]??={})[s||"__internal_without_id"]??=[];for(const t of o)n.includes(t)||n.push(t),e.keys[t]=r.keys[t]}}).addMatcher(e.isAnyOf(e.isFulfilled(r),e.isRejectedWithValue(r)),(e,t)=>{E(e,[t])}).addMatcher(m.actions.cacheEntriesUpserted.match,(e,t)=>{E(e,t.payload.map(({queryDescription:e,value:t})=>({type:"UNKNOWN",payload:t,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:e}})))})}});function _(e,t){const r=It(e.keys[t]??[]);for(const n of r){const r=n.type,s=n.id??"__internal_without_id",o=e.tags[r]?.[s];o&&(e.tags[r][s]=It(o).filter(e=>e!==t))}delete e.keys[t]}function E(e,t){const r=t.map(e=>{const t=Rt(e,"providesTags",o,l),{queryCacheKey:r}=e.meta.arg;return{queryCacheKey:r,providedTags:t}});S.caseReducers.updateProvidedBy(e,S.actions.updateProvidedBy(r))}const v=e.createSlice({name:`${t}/subscriptions`,initialState:kt,reducers:{updateSubscriptionOptions(e,t){},unsubscribeQueryResult(e,t){},internal_getRTKQSubscriptions(){}}}),b=e.createSlice({name:`${t}/internalSubscriptions`,initialState:kt,reducers:{subscriptionsUpdated:{reducer:(e,t)=>Te(e,t.payload),prepare:e.prepareAutoBatched()}}}),A=e.createSlice({name:`${t}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...p},reducers:{middlewareRegistered(e,{payload:t}){e.middlewareRegistered="conflict"!==e.middlewareRegistered&&a===t||"conflict"}},extraReducers:e=>{e.addCase(ot,e=>{e.online=!0}).addCase(at,e=>{e.online=!1}).addCase(nt,e=>{e.focused=!0}).addCase(st,e=>{e.focused=!1}).addMatcher(d,e=>({...e}))}}),w=e.combineReducers({queries:m.reducer,mutations:y.reducer,provided:S.reducer,subscriptions:b.reducer,config:A.reducer});return{reducer:(e,t)=>w(f.match(t)?void 0:e,t),actions:{...A.actions,...m.actions,...v.actions,...b.actions,...y.actions,...S.actions,resetApiState:f}}}({context:M,queryThunk:z,mutationThunk:K,serializeQueryArgs:g,reducerPath:d,assertTagType:D,config:{refetchOnFocus:y,refetchOnReconnect:_,refetchOnMountOrArgChange:m,keepUnusedDataFor:h,reducerPath:d,invalidationBehavior:E}});Ft(r.util,{patchQueryData:B,updateQueryData:V,upsertQueryData:W,prefetch:Y,resetApiState:Z.resetApiState,upsertQueryEntries:Z.cacheEntriesUpserted}),Ft(r.internalActions,Z);const ee=new WeakMap,te=e=>$e(ee,e,()=>({currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map})),{buildInitiateQuery:re,buildInitiateInfiniteQuery:ne,buildInitiateMutation:se,getRunningMutationThunk:oe,getRunningMutationsThunk:ae,getRunningQueriesThunk:ie,getRunningQueryThunk:ue}=function({serializeQueryArgs:t,queryThunk:r,infiniteQueryThunk:n,mutationThunk:s,api:o,context:a,getInternalState:i}){const u=e=>i(e)?.runningQueries,c=e=>i(e)?.runningMutations,{unsubscribeQueryResult:d,removeMutationResult:l,updateSubscriptionOptions:p}=o.internalActions;return{buildInitiateQuery:function(e,t){return g(e,t)},buildInitiateInfiniteQuery:function(e,t){return g(e,t)},buildInitiateMutation:function(e){return(t,{track:r=!0,fixedCacheKey:n}={})=>(o,a)=>{const i=s({type:"mutation",endpointName:e,originalArgs:t,track:r,fixedCacheKey:n}),u=o(i);f(o);const{requestId:d,abort:p,unwrap:g}=u,h=u.unwrap().then(e=>({data:e})).catch(e=>({error:e})),m=Object.assign(h,{arg:u.arg,requestId:d,abort:p,unwrap:g,reset:()=>{o(l({requestId:d,fixedCacheKey:n}))}}),y=c(o);return y.set(d,m),m.then(()=>{y.delete(d)}),n&&(y.set(n,m),m.then(()=>{y.get(n)===m&&y.delete(n)})),m}},getRunningQueryThunk:function(e,r){return n=>{const s=mt(a,e),o=t({queryArgs:r,endpointDefinition:s,endpointName:e});return u(n)?.get(o)}},getRunningMutationThunk:function(e,t){return e=>c(e)?.get(t)},getRunningQueriesThunk:function(){return e=>je(u(e))},getRunningMutationsThunk:function(){return e=>je(c(e))}};function f(t){if("production"!==process.env.NODE_ENV){if(f.triggered)return;const r=t(o.internalActions.internal_getRTKQSubscriptions());if(f.triggered=!0,"object"!=typeof r||"string"==typeof r?.type)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(34):`Warning: Middleware for RTK-Query API at reducerPath "${o.reducerPath}" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`)}}function g(e,s){const a=(i,{subscribe:c=!0,forceRefetch:l,subscriptionOptions:g,[yt]:h,...m}={})=>(y,T)=>{const S=t({queryArgs:i,endpointDefinition:s,endpointName:e});let _;const E={...m,type:ut,subscribe:c,forceRefetch:l,subscriptionOptions:g,endpointName:e,originalArgs:i,queryCacheKey:S,[yt]:h};if(lt(s))_=r(E);else{const{direction:e,initialPageParam:t,refetchCachedPages:r}=m;_=n({...E,direction:e,initialPageParam:t,refetchCachedPages:r})}const v=o.endpoints[e].select(i),b=y(_),A=v(T());f(y);const{requestId:w,abort:R}=b,I=A.requestId!==w,x=u(y)?.get(S),O=()=>v(T()),C=Object.assign(h?b.then(O):I&&!x?Promise.resolve(A):Promise.all([x,b]).then(O),{arg:i,requestId:w,subscriptionOptions:g,queryCacheKey:S,abort:R,async unwrap(){const e=await C;if(e.isError)throw e.error;return e.data},refetch:e=>y(a(i,{subscribe:!1,forceRefetch:!0,...e})),unsubscribe(){c&&y(d({queryCacheKey:S,requestId:w}))},updateSubscriptionOptions(t){C.subscriptionOptions=t,y(p({endpointName:e,requestId:w,queryCacheKey:S,options:t}))}});if(!x&&!I&&!h){const e=u(y);e.set(S,C),C.then(()=>{e.delete(S)})}return C};return a}}({queryThunk:z,mutationThunk:K,infiniteQueryThunk:G,api:r,serializeQueryArgs:g,context:M,getInternalState:te});Ft(r.util,{getRunningMutationThunk:oe,getRunningMutationsThunk:ae,getRunningQueryThunk:ue,getRunningQueriesThunk:ie});const{middleware:ce,actions:de}=function(t){const{reducerPath:r,api:n,context:s,getInternalState:o}=t,{apiUid:a}=s,i={invalidateTags:e.createAction(`${r}/invalidateTags`)},u=e=>e.type.startsWith(`${r}/`),c=[Ht,Qt,zt,Gt,$t,Kt];return{middleware:i=>{let l=!1;const p=o(i.dispatch),f={...t,internalState:p,refetchQuery:d,isThisApiSliceAction:u,mwApi:i},g=c.map(e=>e(f)),h=(({api:e,queryThunk:t,internalState:r})=>{const n=`${e.reducerPath}/subscriptions`;let s=null,o=null;const{updateSubscriptionOptions:a,unsubscribeQueryResult:i}=e.internalActions,u=()=>r.currentSubscriptions,c={getSubscriptions:u,getSubscriptionCount:e=>{const t=u().get(e);return t?.size??0},isRequestSubscribed:(e,t)=>{const r=u();return!!r?.get(e)?.get(t)}};function d(e){return JSON.parse(JSON.stringify(Object.fromEntries([...e].map(([e,t])=>[e,Object.fromEntries(t)]))))}return(u,l)=>{if(s||(s=d(r.currentSubscriptions)),e.util.resetApiState.match(u))return s={},r.currentSubscriptions.clear(),o=null,[!0,!1];if(e.internalActions.internal_getRTKQSubscriptions.match(u))return[!1,c];const p=((r,n)=>{if(a.match(n)){const{queryCacheKey:e,requestId:t,options:s}=n.payload,o=r.get(e);return o?.has(t)&&o.set(t,s),!0}if(i.match(n)){const{queryCacheKey:e,requestId:t}=n.payload,s=r.get(e);return s&&s.delete(t),!0}if(e.internalActions.removeQueryResult.match(n))return r.delete(n.payload.queryCacheKey),!0;if(t.pending.match(n)){const{meta:{arg:e,requestId:t}}=n,s=$e(r,e.queryCacheKey,He);return e.subscribe&&s.set(t,e.subscriptionOptions??s.get(t)??{}),!0}let s=!1;if(t.rejected.match(n)){const{meta:{condition:e,arg:t,requestId:o}}=n;if(e&&t.subscribe){const e=$e(r,t.queryCacheKey,He);e.set(o,t.subscriptionOptions??e.get(o)??{}),s=!0}}return s})(r.currentSubscriptions,u);let f=!0;if("test"===process.env.NODE_ENV&&"string"==typeof u.type&&u.type===`${e.reducerPath}/getPolling`)return[!1,r.currentPolls];if(p){o||(o=setTimeout(()=>{const t=d(r.currentSubscriptions),[,n]=ye(s,()=>t);l.next(e.internalActions.subscriptionsUpdated(n)),s=t,o=null},500));const a="string"==typeof u.type&&!!u.type.startsWith(n),i=t.rejected.match(u)&&u.meta.condition&&!!u.meta.arg.subscribe;f=!a&&!i}return[f,!1]}})(f),m=(({reducerPath:e,context:t,api:r,refetchQuery:n,internalState:s})=>{const{removeQueryResult:o}=r.internalActions;function a(r,a){const i=r.getState()[e],u=i.queries,c=s.currentSubscriptions;t.batch(()=>{for(const e of c.keys()){const t=u[e],s=c.get(e);if(!s||!t)continue;const d=[...s.values()];(d.some(e=>!0===e[a])||d.every(e=>void 0===e[a])&&i.config[a])&&(0===s.size?r.dispatch(o({queryCacheKey:e})):t.status!==Ne&&r.dispatch(n(t)))}})}return(e,t)=>{nt.match(e)&&a(t,"refetchOnFocus"),ot.match(e)&&a(t,"refetchOnReconnect")}})(f);return t=>o=>{if(!e.isAction(o))return t(o);l||(l=!0,i.dispatch(n.internalActions.middlewareRegistered(a)));const c={...i,next:t},d=i.getState(),[p,f]=h(o,c,d);let y;if(y=p?t(o):f,i.getState()[r]&&(m(o,c,d),u(o)||s.hasRehydrationInfo(o)))for(const e of g)e(o,c,d);return y}},actions:i};function d(e){return t.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}({reducerPath:d,context:M,queryThunk:z,mutationThunk:K,infiniteQueryThunk:G,api:r,assertTagType:D,selectors:q,getRunningQueryThunk:ue,getInternalState:te});return Ft(r.util,de),Ft(r,{reducer:J,middleware:ce}),{name:Bt,injectEndpoint(e,t){const n=r,s=n.endpoints[e]??={};lt(t)&&Ft(s,{name:e,select:F(e,t),initiate:re(e,t)},X(z,e)),t.type===ct&&Ft(s,{name:e,select:$(),initiate:se(e)},X(K,e)),pt(t)&&Ft(s,{name:e,select:Q(e,t),initiate:ne(e,t)},X(z,e))}}}});function Wt(e){return e.replace(e[0],e[0].toUpperCase())}function Yt(e){let t=0;for(const r in e)t++;return t}function Xt(e){return"infinitequery"===e.type}function Jt(e,...t){return Object.assign(e,...t)}Vt();var Zt=Symbol();function er(e){const t=r.useRef(e),n=r.useMemo(()=>Le(t.current,e),[e]);return r.useEffect(()=>{t.current!==n&&(t.current=n)},[n]),n}function tr(e){const n=r.useRef(e);return r.useEffect(()=>{t.shallowEqual(n.current,e)||(n.current=e)},[e]),t.shallowEqual(n.current,e)?n.current:e}var rr=(()=>!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement))(),nr=(()=>"undefined"!=typeof navigator&&"ReactNative"===navigator.product)(),sr=(()=>rr||nr?r.useLayoutEffect:r.useEffect)(),or=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:void 0===e.data,status:ke.pending}:e;function ar(e,...t){const r={};return t.forEach(t=>{r[t]=e[t]}),r}var ir=["data","status","isLoading","isSuccess","isError","error"],ur=Symbol(),cr=Lt(Vt(),(({batch:n=t.batch,hooks:s={useDispatch:t.useDispatch,useSelector:t.useSelector,useStore:t.useStore},createSelector:o=Oe,unstable__sideEffectsInRender:a=!1,...i}={})=>{if("production"!==process.env.NODE_ENV){const t=["useDispatch","useSelector","useStore"];let r=!1;for(const n of t)if(Yt(i)>0&&(i[n]&&(r||(console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`"),r=!0)),s[n]=i[n]),"function"!=typeof s[n])throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(36):`When using custom hooks for context, all ${t.length} hooks need to be provided: ${t.join(", ")}.\nHook ${n} was either not provided or not a function.`)}return{name:ur,init(i,{serializeQueryArgs:u},c){const d=i,{buildQueryHooks:l,buildInfiniteQueryHooks:p,buildMutationHook:f,usePrefetch:g}=function({api:n,moduleOptions:{batch:s,hooks:{useDispatch:o,useSelector:a,useStore:i},unstable__sideEffectsInRender:u,createSelector:c},serializeQueryArgs:d,context:l}){const p=u?e=>e():r.useEffect,f=e=>e.current?.unsubscribe?.(),g=l.endpointDefinitions;return{buildQueryHooks:function(t){const a=(n,s={})=>{const[o]=y(t,n,s);return S(o),r.useMemo(()=>({refetch:()=>function(t){if(!t.current)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(38):"Cannot refetch a query that has not been started yet.");return t.current.refetch()}(o)}),[o])},i=({refetchOnReconnect:e,refetchOnFocus:a,pollingInterval:i=0,skipPollingIfUnfocused:u=!1}={})=>{const{initiate:c}=n.endpoints[t],d=o(),[l,g]=r.useState(Zt),h=r.useRef(void 0),m=tr({refetchOnReconnect:e,refetchOnFocus:a,pollingInterval:i,skipPollingIfUnfocused:u});p(()=>{const e=h.current?.subscriptionOptions;m!==e&&h.current?.updateSubscriptionOptions(m)},[m]);const y=r.useRef(m);p(()=>{y.current=m},[m]);const T=r.useCallback(function(e,t=!1){let r;return s(()=>{f(h),h.current=r=d(c(e,{subscriptionOptions:y.current,forceRefetch:!t})),g(e)}),r},[d,c]),S=r.useCallback(()=>{h.current?.queryCacheKey&&d(n.internalActions.removeQueryResult({queryCacheKey:h.current?.queryCacheKey}))},[d]);return r.useEffect(()=>()=>{f(h)},[]),r.useEffect(()=>{l===Zt||h.current||T(l,!0)},[l,T]),r.useMemo(()=>[T,l,{reset:S}],[T,l,S])},u=T(t,h);return{useQueryState:u,useQuerySubscription:a,useLazyQuerySubscription:i,useLazyQuery(e){const[t,n,{reset:s}]=i(e),o=u(n,{...e,skip:n===Zt}),a=r.useMemo(()=>({lastArg:n}),[n]);return r.useMemo(()=>[t,{...o,reset:s},a],[t,o,s,a])},useQuery(e,t){const n=a(e,t),s=u(e,{selectFromResult:e===Nt||t?.skip?void 0:or,...t}),o=ar(s,...ir);return r.useDebugValue(o),r.useMemo(()=>({...s,...n}),[s,n])}}},buildInfiniteQueryHooks:function(t){const n=(n,o={})=>{const[a,i,u,c]=y(t,n,o),d=r.useRef(c);p(()=>{d.current=c},[c]);const l=tr(o.refetchCachedPages),g=r.useCallback(function(e,t){let r;return s(()=>{f(a),a.current=r=i(u(e,{subscriptionOptions:d.current,direction:t}))}),r},[a,i,u]);S(a);const h=er(o.skip?Nt:n),m=r.useCallback(t=>{if(!a.current)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(38):"Cannot refetch a query that has not been started yet.");return a.current.refetch({refetchCachedPages:t?.refetchCachedPages??l})},[a,l]);return r.useMemo(()=>({trigger:g,refetch:m,fetchNextPage:()=>g(h,"forward"),fetchPreviousPage:()=>g(h,"backward")}),[m,g,h])},o=T(t,m);return{useInfiniteQueryState:o,useInfiniteQuerySubscription:n,useInfiniteQuery(e,t){const{refetch:s,fetchNextPage:a,fetchPreviousPage:i}=n(e,t),u=o(e,{selectFromResult:e===Nt||t?.skip?void 0:or,...t}),c=ar(u,...ir,"hasNextPage","hasPreviousPage");return r.useDebugValue(c),r.useMemo(()=>({...u,fetchNextPage:a,fetchPreviousPage:i,refetch:s}),[u,a,i,s])}}},buildMutationHook:function(e){return({selectFromResult:i,fixedCacheKey:u}={})=>{const{select:d,initiate:l}=n.endpoints[e],p=o(),[f,g]=r.useState();r.useEffect(()=>()=>{f?.arg.fixedCacheKey||f?.reset()},[f]);const h=r.useCallback(function(e){const t=p(l(e,{fixedCacheKey:u}));return g(t),t},[p,l,u]),{requestId:m}=f||{},y=r.useMemo(()=>d({fixedCacheKey:u,requestId:f?.requestId}),[u,f,d]),T=r.useMemo(()=>i?c([y],i):y,[i,y]),S=a(T,t.shallowEqual),_=null==u?f?.arg.originalArgs:void 0,E=r.useCallback(()=>{s(()=>{f&&g(void 0),u&&p(n.internalActions.removeMutationResult({requestId:m,fixedCacheKey:u}))})},[p,u,f,m]),v=ar(S,...ir,"endpointName");r.useDebugValue(v);const b=r.useMemo(()=>({...S,originalArgs:_,reset:E}),[S,_,E]);return r.useMemo(()=>[h,b],[h,b])}},usePrefetch:function(e,t){const s=o(),a=tr(t);return r.useCallback((t,r)=>s(n.util.prefetch(e,t,{...a,...r})),[e,s,a])}};function h(e,t,r){if(t?.endpointName&&e.isUninitialized){const{endpointName:e}=t,n=g[e];r!==Nt&&d({queryArgs:t.originalArgs,endpointDefinition:n,endpointName:e})===d({queryArgs:r,endpointDefinition:n,endpointName:e})&&(t=void 0)}let n=e.isSuccess?e.data:t?.data;void 0===n&&(n=e.data);const s=void 0!==n,o=e.isLoading,a=(!t||t.isLoading||t.isUninitialized)&&!s&&o,i=e.isSuccess||s&&(o&&!t?.isError||e.isUninitialized);return{...e,data:n,currentData:e.data,isFetching:o,isLoading:a,isSuccess:i}}function m(e,t,r){if(t?.endpointName&&e.isUninitialized){const{endpointName:e}=t,n=g[e];r!==Nt&&d({queryArgs:t.originalArgs,endpointDefinition:n,endpointName:e})===d({queryArgs:r,endpointDefinition:n,endpointName:e})&&(t=void 0)}let n=e.isSuccess?e.data:t?.data;void 0===n&&(n=e.data);const s=void 0!==n,o=e.isLoading,a=(!t||t.isLoading||t.isUninitialized)&&!s&&o,i=e.isSuccess||o&&s;return{...e,data:n,currentData:e.data,isFetching:o,isLoading:a,isSuccess:i}}function y(t,s,{refetchOnReconnect:a,refetchOnFocus:i,refetchOnMountOrArgChange:u,skip:c=!1,pollingInterval:d=0,skipPollingIfUnfocused:l=!1,...f}={}){const{initiate:h}=n.endpoints[t],m=o(),y=r.useRef(void 0);if(!y.current){const t=m(n.internalActions.internal_getRTKQSubscriptions());if("production"!==process.env.NODE_ENV&&("object"!=typeof t||"string"==typeof t?.type))throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(37):`Warning: Middleware for RTK-Query API at reducerPath "${n.reducerPath}" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);y.current=t}const T=er(c?Nt:s),S=tr({refetchOnReconnect:a,refetchOnFocus:i,pollingInterval:d,skipPollingIfUnfocused:l}),_=tr(f.initialPageParam),E=tr(f.refetchCachedPages),v=r.useRef(void 0);let{queryCacheKey:b,requestId:A}=v.current||{},w=!1;b&&A&&(w=y.current.isRequestSubscribed(b,A));const R=!w&&void 0!==v.current;return p(()=>{R&&(v.current=void 0)},[R]),p(()=>{const e=v.current;if("undefined"!=typeof process&&process,T===Nt)return e?.unsubscribe(),void(v.current=void 0);const r=v.current?.subscriptionOptions;if(e&&e.arg===T)S!==r&&e.updateSubscriptionOptions(S);else{e?.unsubscribe();const r=m(h(T,{subscriptionOptions:S,forceRefetch:u,...Xt(g[t])?{initialPageParam:_,refetchCachedPages:E}:{}}));v.current=r}},[m,h,u,T,S,R,_,E,t]),[v,m,h,S]}function T(e,s){return(o,{skip:u=!1,selectFromResult:d}={})=>{const{select:l}=n.endpoints[e],p=er(u?Nt:o),f=r.useRef(void 0),g=r.useMemo(()=>c([l(p),(e,t)=>t,e=>p],s,{memoizeOptions:{resultEqualityCheck:t.shallowEqual}}),[l,p]),h=r.useMemo(()=>d?c([g],d,{devModeChecks:{identityFunctionCheck:"never"}}):g,[g,d]),m=a(e=>h(e,f.current),t.shallowEqual),y=i(),T=g(y.getState(),f.current);return sr(()=>{f.current=T},[T]),m}}function S(e){r.useEffect(()=>()=>{f(e),e.current=void 0},[e])}}({api:i,moduleOptions:{batch:n,hooks:s,unstable__sideEffectsInRender:a,createSelector:o},serializeQueryArgs:u,context:c});return Jt(d,{usePrefetch:g}),Jt(c,{batch:n}),{injectEndpoint(e,t){if("query"===t.type){const{useQuery:t,useLazyQuery:r,useLazyQuerySubscription:n,useQueryState:s,useQuerySubscription:o}=l(e);Jt(d.endpoints[e],{useQuery:t,useLazyQuery:r,useLazyQuerySubscription:n,useQueryState:s,useQuerySubscription:o}),i[`use${Wt(e)}Query`]=t,i[`useLazy${Wt(e)}Query`]=r}if("mutation"===t.type){const t=f(e);Jt(d.endpoints[e],{useMutation:t}),i[`use${Wt(e)}Mutation`]=t}else if(Xt(t)){const{useInfiniteQuery:t,useInfiniteQuerySubscription:r,useInfiniteQueryState:n}=p(e);Jt(d.endpoints[e],{useInfiniteQuery:t,useInfiniteQuerySubscription:r,useInfiniteQueryState:n}),i[`use${Wt(e)}InfiniteQuery`]=t}}}}}})());let dr=0;function lr(e){return null!==e&&"object"==typeof e}function pr(e){return lr(e)?"string"==typeof e.error_message?e.error_message:"string"==typeof e.message?e.message:null:null}const fr="Something went wrong. Please try again.";function gr(e){const t=e?.status;return!("number"==typeof t&&t>=400&&t<500)}function hr(e){if(!lr(e))return null;const t=e.data;return lr(t)&&"string"==typeof t.error_message?t.error_message:"string"==typeof e.message?e.message:null}const mr={NETWORK_ERROR:"NETWORK_ERROR",TIMEOUT:"TIMEOUT",PARSE_ERROR:"PARSE_ERROR",TOKEN_EXPIRED:"TOKEN_EXPIRED",TOKEN_REFRESH_FAILED:"TOKEN_REFRESH_FAILED",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",VALIDATION_ERROR:"VALIDATION_ERROR",SERVER_ERROR:"SERVER_ERROR",UNKNOWN:"UNKNOWN"};let yr=null;const Tr=function(e){const{name:t,innerBaseQuery:r,requestInterceptors:n,responseInterceptors:s,defaultOptions:o}=e;return async(e,a,i)=>{let u,c;if("string"==typeof e)u={url:e};else{const{_bridge:t,...r}=e;u=r,c=t}const d={...i,bridge:{...o,...i?.bridge,...c}},l={bridgeName:t,requestId:(p=t,dr+=1,`${p}-${dr}`),startTime:Date.now(),api:a,extraOptions:d};var p;const f=async e=>{let t=e;for(const e of n)t=await e(t,l);return r(t,a,d)};let g=await f(u);for(const e of s)g=await e(g,u,l,f);return g}}({name:"apiBridge",innerBaseQuery:async(t,r,n)=>function({baseUrl:t,prepareHeaders:r=e=>e,fetchFn:n=Ke,paramsSerializer:s,isJsonContentType:o=Ve,jsonContentType:a="application/json",jsonReplacer:i,timeout:u,responseHandler:c,validateStatus:d,...l}={}){return"undefined"==typeof fetch&&n===Ke&&console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments."),async(f,g,h)=>{const{getState:m,extra:y,endpoint:T,forced:S,type:_}=g;let E,{url:v,headers:b=new Headers(l.headers),params:A,responseHandler:w=c??"json",validateStatus:R=d??Be,timeout:I=u,...x}="string"==typeof f?{url:f}:f,O={...l,signal:I?Ge(g.signal,ze(I)):g.signal,...x};b=new Headers(We(b)),O.headers=await r(b,{getState:m,arg:f,extra:y,endpoint:T,forced:S,type:_,extraOptions:h})||b;const C="object"==typeof(k=O.body)&&(e.isPlainObject(k)||Array.isArray(k)||"function"==typeof k.toJSON);var k;if(null==O.body||C||"string"==typeof O.body||O.headers.delete("content-type"),!O.headers.has("content-type")&&C&&O.headers.set("content-type",a),C&&o(O.headers)&&(O.body=JSON.stringify(O.body,i)),O.headers.has("accept")||("json"===w?O.headers.set("accept","application/json"):"text"===w&&O.headers.set("accept","text/plain, text/html, */*")),A){const e=~v.indexOf("?")?"&":"?";v+=e+(s?s(A):new URLSearchParams(We(A)))}v=function(e,t){if(!e)return t;if(!t)return e;if(function(e){return new RegExp("(^|:)//").test(e)}(t))return t;const r=e.endsWith("/")||!t.startsWith("?")?"/":"";return e=(e=>e.replace(/\/$/,""))(e),`${e}${r}${t=(e=>e.replace(/^\//,""))(t)}`}(t,v);const N=new Request(v,O);let P;E={request:new Request(v,O)};try{P=await n(N)}catch(e){return{error:{status:(e instanceof Error||"undefined"!=typeof DOMException&&e instanceof DOMException)&&"TimeoutError"===e.name?"TIMEOUT_ERROR":"FETCH_ERROR",error:String(e)},meta:E}}const M=P.clone();let D;E.response=M;let q="";try{let e;if(await Promise.all([p(P,w).then(e=>D=e,t=>e=t),M.text().then(e=>q=e,()=>{})]),e)throw e}catch(e){return{error:{status:"PARSING_ERROR",originalStatus:P.status,data:q,error:String(e)},meta:E}}return R(P,D)?{data:D,meta:E}:{error:{status:P.status,data:D},meta:E}};async function p(e,t){if("function"==typeof t)return t(e);if("content-type"===t&&(t=o(e.headers)?"json":"text"),"json"===t){const t=await e.text();return t.length?JSON.parse(t):null}return e.text()}}({baseUrl:"",prepareHeaders:e=>(e.has("Content-Type")||e.set("Content-Type","application/json"),e.has("Accept")||e.set("Accept","application/json"),e)})(t,r,n),requestInterceptors:[(e,t)=>{if(t.extraOptions.bridge?.skipAuth)return e;const r=t.api.getState(),n=r.auth?.accessToken;return n?{...e,headers:{...e.headers,Authorization:`Bearer ${n}`}}:e},(e,t)=>{const r=n.getCustomHeaders(),s=t.extraOptions.bridge?.customHeaders,o=Object.keys(r).length>0,a=!!s&&Object.keys(s).length>0;return o||a?{...e,headers:{...e.headers,...r,...s??{}}}:e},(e,t)=>{if(!n.isDevMode()||t.extraOptions.bridge?.skipLogging)return e;const r=(e.method||"GET").toUpperCase(),s=e.url||"";return n.logger.debug({message:`${t.bridgeName} ${r} ${s}`,api_name:t.api.endpoint,request_id:t.requestId,method:r,url:s}),e}],responseInterceptors:[async(e,t,r,s)=>{if(r.extraOptions.bridge?.skipTokenRefresh)return e;if(401!==e.error?.status)return e;const o=r.api.getState();if(!o.auth?.accessToken||!o.auth?.isAuthenticated)return e;if(!n.getTokenRefreshHandler())return r.api.dispatch(n.clearSession()),e;try{const e=await async function(){return yr||(yr=async function(){const e=n.getTokenRefreshHandler();if(!e)return null;try{return await e()}catch{return null}}().finally(()=>{yr=null}),yr)}();if(e){const o=r.api.getState().auth?.accessToken;return o!==e.accessToken&&r.api.dispatch(n.setSession({accessToken:e.accessToken,refreshToken:e.refreshToken,expiresIn:e.expiresIn})),s(t)}n.logger.error({message:"Session cleared: token refresh failed after 401",api_name:"auth-refresh"}),r.api.dispatch(n.clearSession())}catch{n.logger.error({message:"Session cleared: token refresh threw after 401",api_name:"auth-refresh"}),r.api.dispatch(n.clearSession())}return e},async(e,t,r)=>{if(!e.error)return e;const n=(s=e.error,o={url:t.url,method:t.method||"GET",timestamp:r.startTime,duration:Date.now()-r.startTime,requestId:r.requestId,bridgeName:r.bridgeName},s&&"object"==typeof s&&"status"in s?function(e,t){const r="PARSING_ERROR"===e.status,n=r?e.originalStatus:void 0,s="number"==typeof n&&n>=400?n:e.status;let o,a="Request failed",i=mr.UNKNOWN;if("data"in e)if(o=e.data,"string"==typeof e.data)a=e.data;else if(e.data&&"object"==typeof e.data){const t=e.data;a=pr(t)??pr(t.data)??("string"==typeof t.error?t.error:void 0)??("string"==typeof t.detail?t.detail:void 0)??a}return!r&&"error"in e&&"string"==typeof e.error&&(a=e.error),401===s?i=mr.UNAUTHORIZED:403===s?i=mr.FORBIDDEN:404===s?i=mr.NOT_FOUND:422===s?i=mr.VALIDATION_ERROR:"FETCH_ERROR"===s?i=mr.NETWORK_ERROR:"TIMEOUT_ERROR"===s?i=mr.TIMEOUT:"PARSING_ERROR"===s?i=mr.PARSE_ERROR:"number"==typeof s&&s>=500&&(i=mr.SERVER_ERROR),"number"==typeof s&&s>=500&&(a=fr),{status:s,message:a,data:o,code:i,meta:{timestamp:Date.now(),...t}}}(s,o):s instanceof Error?{status:"FETCH_ERROR",message:s.message||"An unexpected error occurred",code:mr.UNKNOWN,meta:{timestamp:Date.now(),...o}}:"string"==typeof s?{status:"CUSTOM_ERROR",message:s,code:mr.UNKNOWN,meta:{timestamp:Date.now(),...o}}:{status:"CUSTOM_ERROR",message:"An unknown error occurred",data:s,code:mr.UNKNOWN,meta:{timestamp:Date.now(),...o}});var s,o;return{...e,error:{...e.error,...n}}},async(e,t,r)=>{if(!e.error||r.extraOptions.bridge?.skipErrorToast)return e;const{status:s}=e.error;return"FETCH_ERROR"===s?(n.showErrorToast("Network error. Please check your connection."),e):"TIMEOUT_ERROR"===s?(n.showErrorToast("Request timed out. Please try again."),e):"number"==typeof s&&s>=500?(n.showErrorToast(fr),e):e},async(e,t,r,n)=>{if(!e.error)return e;const{status:s}=e.error;if("FETCH_ERROR"!==s&&"TIMEOUT_ERROR"!==s)return e;const o=r.extraOptions.bridge?.retry,a=o?.maxRetries??1,i=o?.backoffMs??1e3,u=parseInt(t.headers?.["X-Bridge-Retry-Count"]||"0",10);if(u>=a)return e;const c=i*Math.pow(2,u);return await new Promise(e=>setTimeout(e,c)),n({...t,headers:{...t.headers,"X-Bridge-Retry-Count":String(u+1)}})},async(e,t,r)=>{const s=r.extraOptions.bridge?.skipLogging,o=Date.now()-r.startTime,a=(t.method||"GET").toUpperCase(),i=t.url||"",u=e.meta?.response,c=e.error?e.error.status:u?.status??"OK",d=u?.headers?.get?.("x-request-id")??void 0;return e.error?n.logger.error({message:`${r.bridgeName} ${a} ${i} failed (${c})`,api_name:r.api.endpoint,request_id:d??r.requestId,method:a,url:i,status:c,duration:o,error_data:e.error.data}):n.isDevMode()&&!s&&n.logger.debug({message:`${r.bridgeName} ${a} ${i} ${c} ${o}ms`,api_name:r.api.endpoint,request_id:d??r.requestId,method:a,url:i,status:c,duration:o}),e}]});function Sr(){return n.readAccessToken()}let _r=0;async function Er(e){const{url:t,method:r="GET",body:s,headers:o={},skipAuth:a=!1,skipLogging:i=!1,skipContentType:u=!1,responseHandler:c="json",signal:d,keepalive:l}=e;_r+=1;const p=`fetch-${_r}`,f=Date.now(),g=r.toUpperCase(),h={...o};if(Object.assign(h,n.getCustomHeaders()),!a){const e=Sr();e&&(h.Authorization=`Bearer ${e}`)}let m;u||h["Content-Type"]||(h["Content-Type"]="application/json"),h.Accept||(h.Accept="application/json"),m=null==s?void 0:"string"==typeof s||s instanceof FormData||s instanceof Blob||s instanceof ArrayBuffer?s:JSON.stringify(s),n.isDevMode()&&!i&&n.logger.debug({message:`bridgedFetch ${g} ${t}`,api_name:"bridgedFetch",request_id:p,method:g,url:t});try{const e=await fetch(t,{method:r,headers:h,body:m,signal:d,keepalive:l}),s=Date.now()-f;if(!e.ok){let r;try{r=await e.json()}catch{try{r=await e.text()}catch{r=`HTTP ${e.status}`}}const o=e.headers.get("x-request-id")??void 0;return i||n.logger.error({message:`bridgedFetch ${g} ${t} failed (${e.status})`,api_name:"bridgedFetch",request_id:o??p,method:g,url:t,status:e.status,duration:s,error_data:r}),{error:{status:e.status,data:r},response:e}}let o;if("blob"===c)o=await e.blob();else if("text"===c)o=await e.text();else{const t=await e.text();o=t?JSON.parse(t):void 0}if(n.isDevMode()&&!i){const r=e.headers.get("x-request-id")??void 0;n.logger.debug({message:`bridgedFetch ${g} ${t} ${e.status} ${s}ms`,api_name:"bridgedFetch",request_id:r??p,method:g,url:t,status:e.status,duration:s})}return{data:o,response:e}}catch(e){const r=Date.now()-f;return i||n.logger.error({message:`bridgedFetch ${g} ${t} network error`,api_name:"bridgedFetch",request_id:p,method:g,url:t,status:"FETCH_ERROR",duration:r,error_message:e instanceof Error?e.message:"Network error"}),{error:{status:"FETCH_ERROR",data:e instanceof Error?e.message:"Network error"}}}}const vr=3e5;let br=0;const Ar=cr({reducerPath:"chatApi",baseQuery:Tr,keepUnusedDataFor:0,tagTypes:["chat","toolServers"],endpoints:e=>({getConversationHistory:e.query({query:({skip:e=0,limit:t=20})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}`,method:"GET",params:{skip:e,limit:t}}),transformResponse:e=>e?.data??{conversations:[]},providesTags:["chat"]}),getConversationById:e.query({query:({conversationId:e,skip:t,limit:r})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}/${e}`,method:"GET",params:{...void 0!==t&&{skip:t},...void 0!==r&&{limit:r}}}),transformResponse:e=>e?.data??null,providesTags:["chat"]}),createConversatons:e.mutation({query:e=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}`,method:"POST",body:e.body||{}}),transformResponse:e=>e?.data??[],extraOptions:{bridge:{skipErrorToast:!0}}}),transcribeAudio:e.mutation({queryFn:async({conversationId:e,audioFile:t})=>{const r=new FormData;r.append("file",t);const{data:s,error:o}=await Er({url:n.API_ENDPOINTS.CONVERSATION_TRANSCRIBE(e),method:"POST",body:r,skipContentType:!0});return o?{error:o}:{data:s}}}),uploadDocument:e.mutation({queryFn:async({file:e,filename:t,documentType:r,conversationId:s,onUploadProgress:o,onUploadComplete:a})=>{const i=new FormData;i.append("file",e),t&&i.append("filename",t),r&&i.append("document_type",r),s&&i.append("conversation_id",s);const{data:u,error:c}=await async function(e){const{url:t,method:r="POST",body:s,headers:o={},skipAuth:a=!1,skipLogging:i=!1,onUploadProgress:u,onUploadComplete:c,timeoutMs:d=vr,signal:l}=e;if("undefined"==typeof XMLHttpRequest)return n.isDevMode()&&!i&&n.logger.debug({message:"XMLHttpRequest unavailable; uploading without progress",api_name:"bridgedUpload",url:t}),Er({url:t,method:r,body:s,headers:o,skipAuth:a,skipLogging:i,skipContentType:!0,signal:l});br+=1;const p=`upload-${br}`,f=Date.now(),g=r.toUpperCase(),h={Accept:"application/json",...o,...n.getCustomHeaders()};if(!a){const e=Sr();e&&(h.Authorization=`Bearer ${e}`)}return new Promise(e=>{const o=new XMLHttpRequest;let a=!1;const m=t=>{a||(a=!0,l?.removeEventListener("abort",T),e(t))},y=(e,r)=>{const s=Date.now()-f;i||n.logger.error({message:`bridgedUpload ${g} ${t} ${e.toLowerCase()}`,api_name:"bridgedUpload",request_id:p,method:g,url:t,status:e,duration:s,error_message:r}),m({error:{status:e,data:r}})},T=()=>o.abort();o.open(r,t,!0),o.timeout=d;for(const[e,t]of Object.entries(h))o.setRequestHeader(e,t);if(u&&(o.upload.onprogress=e=>u(e.loaded,e.lengthComputable?e.total:0)),c&&(o.upload.onload=()=>c()),o.onload=()=>{const e=Date.now()-f,r=o.getResponseHeader("x-request-id")??p;let s;try{s=o.responseText?JSON.parse(o.responseText):void 0}catch{s=o.responseText}if(o.status<200||o.status>=300)return i||n.logger.error({message:`bridgedUpload ${g} ${t} failed (${o.status})`,api_name:"bridgedUpload",request_id:r,method:g,url:t,status:o.status,duration:e,error_data:s}),void m({error:{status:o.status,data:s}});m({data:s})},o.onerror=()=>y("FETCH_ERROR","Network error"),o.ontimeout=()=>y("TIMEOUT_ERROR","Request timed out"),o.onabort=()=>y("ABORT_ERROR","Upload cancelled"),l){if(l.aborted)return void y("ABORT_ERROR","Upload cancelled");l.addEventListener("abort",T)}o.send(s)})}({url:n.API_ENDPOINTS.DOCUMENTS(),method:"POST",body:i,onUploadProgress:o,onUploadComplete:a});return c?{error:c}:{data:u}}}),deleteDocument:e.mutation({queryFn:async e=>{const{error:t}=await Er({url:n.API_ENDPOINTS.DOCUMENT(e),method:"DELETE",responseHandler:"text"});return t?{error:t}:{data:{success:!0}}}}),getToolServers:e.query({query:()=>({url:n.API_ENDPOINTS.TOOL_SERVERS,method:"GET"}),transformResponse:e=>e?.data??{tool_servers:[]},providesTags:["toolServers"]}),startToolServerOAuth:e.mutation({query:e=>({url:n.API_ENDPOINTS.TOOL_SERVER_AUTH_START(e),method:"POST"}),transformResponse:e=>e?.data??{authorize_url:""}}),deleteToolServerConnection:e.mutation({query:e=>({url:n.API_ENDPOINTS.TOOL_SERVER_AUTH_CONNECTION(e),method:"DELETE"}),invalidatesTags:["toolServers"]}),exchangeOAuthCode:e.mutation({query:({code:e,state:t})=>({url:n.API_ENDPOINTS.TOOL_SERVERS_SIGN_IN_EXCHANGE,method:"POST",body:{code:e,state:t}}),invalidatesTags:["toolServers"]}),deleteConversation:e.mutation({query:({conversationId:e})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}/${e}`,method:"DELETE"}),extraOptions:{bridge:{skipErrorToast:!0}}})})}),{useCreateConversatonsMutation:wr,useTranscribeAudioMutation:Rr,useUploadDocumentMutation:Ir,useDeleteDocumentMutation:xr,useExchangeOAuthCodeMutation:Or,useGetConversationHistoryQuery:Cr,useLazyGetConversationByIdQuery:kr,useDeleteConversationMutation:Nr,useGetToolServersQuery:Pr,useStartToolServerOAuthMutation:Mr,useDeleteToolServerConnectionMutation:Dr}=Ar,qr={bridge:{skipErrorToast:!0,skipTokenRefresh:!0}},Ur=cr({reducerPath:"brandingApi",baseQuery:Tr,keepUnusedDataFor:0,endpoints:e=>({getBranding:e.query({query:e=>({url:n.API_ENDPOINTS.BRANDING,method:"GET",_bridge:{skipAuth:!e}}),extraOptions:qr})})}),{useGetBrandingQuery:Lr}=Ur,Fr={bridge:{skipErrorToast:!0,skipTokenRefresh:!0,retry:{maxRetries:0}}},Qr=cr({reducerPath:"configApi",baseQuery:Tr,keepUnusedDataFor:1/0,endpoints:e=>({getConfig:e.query({query:()=>({url:n.API_ENDPOINTS.CONFIG,method:"GET",_bridge:{skipAuth:!0},timeout:n.TIMING.CONFIG_TIMEOUT_MS}),extraOptions:Fr})})}),{useGetConfigQuery:jr}=Qr,$r=cr({reducerPath:"profileApi",baseQuery:Tr,keepUnusedDataFor:0,tagTypes:["profile"],endpoints:e=>({getProfile:e.query({query:()=>({url:n.API_ENDPOINTS.PROFILE,method:"GET"}),extraOptions:{bridge:{skipErrorToast:!0}},transformResponse:e=>e?.data??null,providesTags:["profile"]}),updateProfile:e.mutation({query:e=>({url:n.API_ENDPOINTS.PROFILE,method:"PUT",body:e}),async onQueryStarted(e,{dispatch:t,queryFulfilled:r}){try{await r,t($r.util.updateQueryData("getProfile",void 0,t=>{t&&(void 0!==e.name&&(t.name=e.name),void 0!==e.phone&&(t.phone=e.phone))}))}catch{}}}),deleteAccount:e.mutation({query:()=>({url:n.API_ENDPOINTS.AUTH_ME,method:"DELETE"})}),updatePassword:e.mutation({query:e=>({url:n.API_ENDPOINTS.CHANGE_PASSWORD,method:"PUT",body:e}),extraOptions:{bridge:{skipErrorToast:!0,skipTokenRefresh:!0}},transformResponse:e=>e?.data?.message??null})})}),{useGetProfileQuery:Hr,useUpdateProfileMutation:zr,useDeleteAccountMutation:Gr,useUpdatePasswordMutation:Kr}=$r,Br=[Ar,Ur,Qr,$r],Vr={[Ar.reducerPath]:Ar.reducer,[Ur.reducerPath]:Ur.reducer,[Qr.reducerPath]:Qr.reducer,[$r.reducerPath]:$r.reducer},Wr=[Ar.middleware,Ur.middleware,Qr.middleware,$r.middleware],Yr={isAgentWorking:!0,statusText:null,responseStartTime:null,messageQueue:[],pendingTranscriptionIds:[]},Xr=e.createSlice({name:"chat",initialState:Yr,reducers:{setIsAgentWorking(e,t){e.isAgentWorking=t.payload},setStatusText(e,t){e.statusText=t.payload},setResponseStartTime(e,t){e.responseStartTime=t.payload},enqueueMessage(e,t){e.messageQueue.push(t.payload)},dequeueMessage(e){e.messageQueue.shift()},clearMessageQueue(e){e.messageQueue=[]},addPendingTranscriptionId(e,t){e.pendingTranscriptionIds.push(t.payload)},clearPendingTranscriptionIds(e){e.pendingTranscriptionIds=[]},resetChatState:()=>Yr},extraReducers:t=>{t.addMatcher(e.isAnyOf(n.clearSession,n.sessionExpired),()=>Yr)}}),{setIsAgentWorking:Jr,setStatusText:Zr,setResponseStartTime:en,enqueueMessage:tn,dequeueMessage:rn,clearMessageQueue:nn,addPendingTranscriptionId:sn,clearPendingTranscriptionIds:on,resetChatState:an}=Xr.actions,un=Xr.reducer,cn={activeConversationId:null,titles:{}},dn=e.createSlice({name:"conversations",initialState:cn,reducers:{setActiveConversationId(e,t){e.activeConversationId=t.payload},upsertConversationTitle(e,t){const{id:r,title:n}=t.payload;r&&n.trim()&&(e.titles[r]=n)}},extraReducers:t=>{t.addMatcher(e.isAnyOf(n.clearSession,n.sessionExpired),()=>cn)}}),{setActiveConversationId:ln,upsertConversationTitle:pn}=dn.actions,fn=dn.reducer;let gn=null;function hn(e){gn=e}const mn=e.combineReducers({...Vr,auth:n.sessionReducer,chat:un,conversations:fn,indicator:n.indicatorReducer}),yn={ignoredPaths:["chatApi.queries","chatApi.mutations","brandingApi.queries","brandingApi.mutations","configApi.queries","configApi.mutations","profileApi.queries","profileApi.mutations"],ignoredActions:["chatApi/executeQuery/fulfilled","chatApi/executeMutation/fulfilled","brandingApi/executeQuery/rejected","brandingApi/executeQuery/fulfilled","configApi/executeQuery/rejected","configApi/executeQuery/fulfilled","profileApi/executeQuery/rejected","profileApi/executeQuery/fulfilled","profileApi/executeMutation/rejected","profileApi/executeMutation/fulfilled"],ignoredActionPaths:["payload.error","error","meta.baseQueryMeta","meta.arg.originalArgs.audioFile","meta.arg.originalArgs.file","meta.arg.originalArgs.onUploadProgress","meta.arg.originalArgs.onUploadComplete"]},Tn=e.configureStore({reducer:mn,middleware:e=>e({serializableCheck:yn}).prepend(n.sessionListenerMiddleware.middleware).concat(Wr)});var Sn;Sn=Tn.dispatch,function(){const[e,t,r,n]=[nt,st,ot,at].map(e=>()=>Sn(e())),s=()=>{"visible"===window.document.visibilityState?e():t()};if(!it&&"undefined"!=typeof window&&window.addEventListener){let t=function(e){Object.entries(o).forEach(([t,r])=>{e?window.addEventListener(t,r,!1):window.removeEventListener(t,r)})};const o={[et]:e,[rt]:s,[Je]:r,[Ze]:n};t(!0),it=!0}}(),n.setAccessTokenReader(()=>Tn.getState().auth.accessToken),n.setTokenExpiresAtReader(()=>Tn.getState().auth.tokenExpiresAt),hn(()=>Tn.getState());const _n=()=>{const e=jr(),{isError:t,isFetching:n,refetch:s}=e,o=r.useRef(!1);return r.useEffect(()=>{!t||n||o.current||(o.current=!0,s())},[t,n,s]),e},En=r.createContext(void 0),vn=()=>{const e=r.useContext(En);if(!e)throw new Error("useProtocol must be used within a ProtocolProvider");return e};var bn=(e=>(e.START="start",e.TEXT="text",e.WIDGET="widget",e.STATUS_UPDATE="status_update",e.CLEAR_STATUS="clear_status",e.PAYMENT="payment",e.SIGN_IN="sign_in",e.REQUEST_DOCUMENTS="request_documents",e.CONVERSATION_TITLE="conversation_title",e.END="end",e))(bn||{});let An=class extends Error{constructor(e){super(),this.reopen=e}};class wn{type="mtx";config;constructor(e){this.config=e}streamMessage(e){const t=e.debugMode?this.config.getDebugUrl():this.config.getStreamUrl(e.conversationId);return this.createStreamHandle(t,{message:e.message,...e.transcriptionIds?.length?{transcription_ids:e.transcriptionIds}:{},...e.modelContext?.length?{model_context:e.modelContext}:{},...e.body||{}})}streamInitial(e){const t=this.config.getInitialStreamUrl(e.conversationId);return this.createStreamHandle(t,{...e.body||{}})}normalizeEvent(e){const{parsed:t,eventType:r,isStreamEnd:n,requestId:s}=e;if(n)return{type:"stream_end",data:{isEnd:!0},timestamp:Date.now(),requestId:s};const o=(r||"").toLowerCase(),{type:a,data:i}=this.mapSSEEvent(o,t);return{type:a,data:i,timestamp:Date.now(),requestId:s}}mapSSEEvent(e,t){switch(e){case"text":return{type:"text",data:{text:t.token||""}};case"widget":return{type:"widget",data:{widget:t}};case"status_update":return{type:"status_update",data:{statusText:t.text||""}};case"clear_status":return{type:"status_update",data:{statusText:""}};case"payment":return{type:"payment",data:{payment:t}};case"sign_in":return{type:"sign_in",data:{signIn:{authorize_url:t.authorize_url,state:t.state}}};case"request_documents":return{type:"request_documents",data:{requestDocuments:{}}};case"conversation_title":return{type:"conversation_title",data:{conversationTitle:t.text||""}};default:return t.token?{type:"text",data:{text:t.token}}:t.text?{type:"text",data:{text:t.text}}:{type:"text",data:{text:""}}}}createStreamHandle(e,t){let r=new AbortController,o=0,a="",i=!1;const u=[];let c=null,d=!1,l=null;const p=e=>{c?c.onEvent(e):u.push(e)},f=e=>{c?c.onError(e):l=e},g=()=>{d=!0,c&&c.onComplete()},h=async()=>{try{await(this.config.ensureFreshToken?.()),await s.fetchEventSource(e,{method:"POST",headers:{"Content-Type":"application/json",...this.config.getAuthToken()?{Authorization:`Bearer ${this.config.getAuthToken()}`}:{},...this.config.getCustomHeaders()},body:JSON.stringify(t),signal:r.signal,onopen:async e=>{if(401===e.status&&!i){i=!0,n.logger.warn({message:"MTX SSE rejected with 401 — refreshing token",api_name:"mtx-sse"});const e=await(this.config.forceRefreshToken?.());throw e||(n.logger.error({message:"MTX SSE 401 refresh failed — clearing session",api_name:"mtx-sse"}),this.config.onAuthExpired?.()),new An(Boolean(e))}const t=e.headers.get("x-request-id");t&&(a=t)},onmessage:e=>{if("[DONE]"===e.data)return;const t=(e.event||"").toLowerCase(),r=new Set(Object.values(bn));if("status_update"!==t&&"clear_status"!==t||n.logger.debug({message:"MTX SSE status event received",api_name:"mtx-sse",sse_event:t,allowed:r.has(t)}),!t||r.has(t))try{const r=t===bn.END;let n;try{n=JSON.parse(e.data)}catch{return}if(!r&&t!==bn.CLEAR_STATUS&&t!==bn.REQUEST_DOCUMENTS&&n&&"object"==typeof n&&0===Object.keys(n).length)return;const s=this.normalizeEvent({parsed:n,eventType:e.event,isStreamEnd:r,requestId:n.request_id||a||""});p(s),r&&"stream_end"!==s.type&&p({type:"stream_end",data:{isEnd:!0},timestamp:Date.now(),requestId:a})}catch(e){n.logger.error({message:"Failed to parse MTX SSE message",api_name:"mtx-sse",error_message:e instanceof Error?e.message:String(e)})}else n.logger.debug({message:"Ignoring unrecognized MTX SSE event type",api_name:"mtx-sse",sse_event:e.event})},onerror:e=>{if(e instanceof An)throw e;if(o++,o>=5)throw r.abort(),f(e instanceof Error?e:new Error(String(e))),e;throw e},onclose:()=>{g()},openWhenHidden:!0})}catch(e){if(e instanceof An)return e.reopen&&!r.signal.aborted?(r=new AbortController,h()):void(d||g());d||(r.signal.aborted||f(e instanceof Error?e:new Error(String(e))),g())}};return h(),{subscribe(e){c=e;for(const t of u)e.onEvent(t);return u.length=0,l&&(e.onError(l),l=null),d&&e.onComplete(),()=>{c=null}},abort(){r.abort()}}}}function Rn(e){if("string"!=typeof e)return!1;try{return"https:"===new URL(e).protocol}catch{return!1}}class In extends Error{constructor(e){super(),this.reopen=e}}class xn{type="agui";config;constructor(e){this.config=e}streamMessage(e){const t=e.debugMode?this.config.getDebugUrl():this.config.getStreamUrl(e.conversationId);return this.createStreamHandle(t,{message:e.message,...e.transcriptionIds?.length?{transcription_ids:e.transcriptionIds}:{},...e.modelContext?.length?{model_context:e.modelContext}:{},...e.body||{}})}streamInitial(e){const t=this.config.getInitialStreamUrl(e.conversationId);return this.createStreamHandle(t,{...e.body||{}})}normalizeEvent(e){const t=e,{type:r,data:n}=this.mapEventType(t);return{type:r,data:n,timestamp:Date.now(),requestId:t.runId||""}}mapEventType(e){switch((e.type||"").toUpperCase()){case"TEXT_MESSAGE_CONTENT":return{type:"text",data:{text:e.delta||""}};case"TEXT_MESSAGE_END":case"RUN_FINISHED":return{type:"stream_end",data:{isEnd:!0}};case"RUN_ERROR":return{type:"error",data:{error:e.error||"Unknown AG-UI run error"}};case"STATE_SNAPSHOT":return this.mapStateSnapshot(e);case"CUSTOM":return this.mapCustomEvent(e);case"PAYMENT":{const t=e?.value?.data??e.payload;return t?.provider&&t?.config&&n.getPaymentId(t)&&("chargebee"!==t.provider||t.config?.hosted_page_url)&&("atb"!==t.provider||Rn(t.config?.url))?{type:"payment",data:{payment:t}}:{type:"text",data:{text:""}}}case"CONVERSATION_TITLE":{const t=e?.value?.data??e.payload,r=t?.text??t?.title;return{type:"conversation_title",data:{conversationTitle:"string"==typeof r?r:""}}}default:return{type:"text",data:{text:""}}}}mapStateSnapshot(e){return{type:"widget",data:{widget:e.state||e.payload||{}}}}mapCustomEvent(e){const t=e.payload||e?.value?.data||{},r=e.name||"custom";return n.logger.debug({message:"AG-UI mapCustomEvent",api_name:"agui-sse",event_name:r}),"widget"===r?{type:"widget",data:{widget:{eventName:r,...e?.value?.data}}}:Object.keys(t).length>0?{type:"widget",data:{widget:{eventName:e.eventName,...t}}}:{type:"text",data:{text:""}}}createStreamHandle(e,t){let r=new AbortController,o=0,a="",i=!1;const u=[];let c=null,d=!1,l=null;const p=e=>{c?c.onEvent(e):u.push(e)},f=e=>{c?c.onError(e):l=e},g=()=>{d=!0,c&&c.onComplete()},h=async()=>{try{await(this.config.ensureFreshToken?.()),await s.fetchEventSource(e,{method:"POST",headers:{"Content-Type":"application/json",...this.config.getAuthToken()?{Authorization:`Bearer ${this.config.getAuthToken()}`}:{},...this.config.getCustomHeaders()},body:JSON.stringify(t),signal:r.signal,onopen:async e=>{if(401===e.status&&!i){i=!0,n.logger.warn({message:"AG-UI SSE rejected with 401 — refreshing token",api_name:"agui-sse"});const e=await(this.config.forceRefreshToken?.());throw e||(n.logger.error({message:"AG-UI SSE 401 refresh failed — clearing session",api_name:"agui-sse"}),this.config.onAuthExpired?.()),new In(Boolean(e))}const t=e.headers.get("x-request-id");t&&(a=t)},onmessage:e=>{n.logger.debug({message:"AG-UI SSE event",api_name:"agui-sse",sse_event:e.event});const t=(e.event||"").toLowerCase(),r=new Set(Object.values(bn));if(!t||r.has(t))if(t!==bn.END){if("[DONE]"!==e.data)try{let r;try{r=JSON.parse(e.data)}catch(t){return void n.logger.error({message:"AG-UI JSON parse error",api_name:"agui-sse",error_message:t instanceof Error?t.message:String(t),raw_data:e.data})}if(r&&"object"==typeof r&&0===Object.keys(r).length)return;r.runId&&(a=r.runId);const s=t===bn.CONVERSATION_TITLE?{...r,type:"CONVERSATION_TITLE",payload:r,runId:r.runId||a}:{...r,runId:r.runId||a},o=this.normalizeEvent(s);p(o)}catch(e){n.logger.error({message:"Failed to handle AG-UI message",api_name:"agui-sse",error_message:e instanceof Error?e.message:String(e)})}}else p(this.normalizeEvent({type:"RUN_FINISHED",runId:a}));else n.logger.debug({message:"AG-UI ignoring unknown SSE event type",api_name:"agui-sse",sse_event:e.event})},onerror:e=>{if(e instanceof In)throw e;if(o++,o>=5)throw r.abort(),f(e instanceof Error?e:new Error(String(e))),e;throw e},onclose:()=>{g()},openWhenHidden:!0})}catch(e){if(e instanceof In)return e.reopen&&!r.signal.aborted?(r=new AbortController,h()):void(d||g());d||(r.signal.aborted||f(e instanceof Error?e:new Error(String(e))),g())}};return h(),{subscribe(e){c=e;for(const t of u)e.onEvent(t);return u.length=0,l&&(e.onError(l),l=null),d&&e.onComplete(),()=>{c=null}},abort(){r.abort()}}}}class On{segments=[];error="";requestId="";statusText="";streamComplete=!1;startTimestamp=null;processEvent(e){null===this.startTimestamp&&(this.startTimestamp=e.timestamp),e.requestId&&(this.requestId=e.requestId);const{data:t}=e;if(!("isEnd"in t))return"error"in t?(this.error=t.error,void("text"in t&&t.text&&this.appendText(t.text))):void("statusText"in t?this.statusText=t.statusText:"payment"in t||("widget"in t?this.segments.push({type:"widget",id:n.generateUniqueId(),content:t.widget}):"text"in t&&this.appendText(t.text)));this.streamComplete=!0}appendText(e){const t=this.segments[this.segments.length-1];t&&"text"===t.type?t.text+=e:this.segments.push({type:"text",id:n.generateUniqueId(),text:e})}toMessages(){if(0===this.segments.length){const e=n.generateUniqueId();return[{id:e,msg_id:e,sender:"agent",message:"",timestamp:(new Date).toISOString(),tookMs:this.startTimestamp?Date.now()-this.startTimestamp:0,error:this.error||void 0,request_id:this.requestId||void 0}]}const e=(new Date).toISOString(),t=this.segments.map(t=>{const r={id:t.id,msg_id:t.id,sender:"agent",message:"",timestamp:e};switch(t.type){case"text":r.message=t.text;break;case"widget":r.widget=[t.content],r.message_type=["widget"]}return r}),r=t[t.length-1];return r.tookMs=this.startTimestamp?Date.now()-this.startTimestamp:0,r.error=this.error||void 0,r.request_id=this.requestId||void 0,t}getStatusText(){return this.statusText}isStreamComplete(){return this.streamComplete}reset(){this.segments=[],this.error="",this.requestId="",this.statusText="",this.streamComplete=!1,this.startTimestamp=null}}async function Cn(e,t){const{data:r,error:s,response:o}=await Er({url:n.getApiUrl(n.AUTH_PATHS.LOGIN),method:"POST",body:{email:e,password:t},skipAuth:!0});if(s||!o)throw r??s;return{body:r,tokens:n.extractTokens(o)}}async function kn(){const{data:e,error:t,response:r}=await Er({url:n.getApiUrl(n.AUTH_PATHS.GUEST),method:"POST",skipAuth:!0});if(t||!r)throw e??t;return{body:e,tokens:n.extractTokens(r)}}async function Nn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SIGNUP),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return n.isVerificationRequired(t?.data)?{body:t}:{body:t,tokens:n.extractTokens(s)}}async function Pn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.VERIFY_EMAIL),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return s.headers.get(n.AUTH_HEADERS.ACCESS_TOKEN)?{body:t,tokens:n.extractTokens(s)}:{body:t}}async function Mn(e,t){await Er({url:n.getApiUrl(n.AUTH_PATHS.LOGOUT),method:"POST",body:e,keepalive:t?.keepalive})}async function Dn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.REFRESH),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return{body:t,tokens:n.extractTokens(s)}}function qn(e){const s=t.useStore(),[o,a]=r.useState(!1);return{run:r.useCallback(async(...t)=>{a(!0);try{const{body:r,tokens:o}=await e(...t);return r.success&&r.data?(o&&!n.isVerificationRequired(r.data)&&s.dispatch(n.setSession({user:r.data.user,accessToken:o.accessToken,refreshToken:o.refreshToken,expiresIn:r.data.expiry_time})),{success:!0,data:r}):{success:!1,error:r}}catch(e){return{success:!1,error:e}}finally{a(!1)}},[s,e]),isLoading:o}}function Un(){const{run:e,isLoading:t}=qn(kn);return{guestLogin:e,isLoading:t}}function Ln(e,t){let r=0,s=null;return n.createTokenRefresher({performRefresh:async()=>{let o;try{o=await t.getToken()}catch(e){return n.logger.warn({message:"Inherited token request failed",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.NO_TOKEN),null}if(null!==s&&o.accessToken===s)return null;const a=e.getState();if(o.accessToken===(a.auth?.accessToken??null))return n.isTokenExpired(a.auth?.tokenExpiresAt??null)?(r+=1,r>=2?(n.logger.warn({message:"Inherited token unchanged after refresh; treating as rejected",api_name:"auth-refresh"}),s=o.accessToken,t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.TOKEN_REJECTED),null):{accessToken:o.accessToken}):(r=0,{accessToken:o.accessToken});r=0,s=null;const i=null!=o.expiresAt?o.expiresAt/1e3:void 0;return e.dispatch(n.setSession({accessToken:o.accessToken,refreshToken:null,...null!=i?{expiresIn:i}:{}})),{accessToken:o.accessToken,...null!=i?{expiresIn:i}:{}}},isTransient:()=>!1})}const Fn={WEB:"Web",MOBILE:"Mobile"},Qn={GUEST_ONLY:"guest_only",SIGN_IN_ONLY:"sign_in_only",GUEST_AND_SIGN_IN:"guest_and_sign_in",INHERIT:"inherit"},jn=Object.values(Qn);function $n(e,t){const r=e?.data?.auth_mode_config?.[t];return jn.includes(r)?r:Qn.SIGN_IN_ONLY}const Hn={INITIAL:["Working on it","Just a moment","Reviewing your request","Looking into that","One moment, please","Checking"],LATER:["Almost ready","Gathering the details","Finishing up","Getting things in order","Preparing your answer","Wrapping this up"],ROTATION_INTERVAL_MS:5e3,PHASE_SWITCH_MS:4e3},zn={MESSAGE_PAGE_SIZE:25},Gn=1e3;function Kn(e){return!e.widget?.length}function Bn(e){const t=n.generateUniqueId(),r={id:`agent-${t}`,msg_id:t,sender:"agent",message:"",timestamp:e.created_at?String(e.created_at):""};return"widget"===e.type?e.content&&"object"==typeof e.content&&(r.widget=[e.content],r.message_type=["widget"]):e.content&&"string"==typeof e.content&&(r.message=e.content),r}function Vn(e){const t=[];for(const r of e){const e=r.created_at?String(r.created_at):"";if("user"!==r.role)if("system"!==r.role){if("assistant"===r.role){if(r.tool_calls?.length)continue;const e=t[t.length-1];if((!r.type||"text_delta"===r.type)&&"agent"===e?.sender&&Kn(e)){e.message=e.message+(r.content||"");continue}t.push(Bn(r));continue}}else r.content&&t.push({id:`system-${n.generateUniqueId()}`,sender:"system",message:"string"==typeof r.content?r.content:"",timestamp:e});else(r.content||r.documents?.length)&&t.push({id:`user-${n.generateUniqueId()}`,sender:"user",message:"string"==typeof r.content?r.content:"",timestamp:e,...r.documents?.length?{documents:r.documents}:{}})}return t}function Wn(e){return"string"==typeof e&&e.trim()?e:null}const Yn=e=>null==e||"string"==typeof e&&""===e.trim(),Xn=e=>{const t=["widget","error"],r=e=>!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.length||"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length);for(const n of t)if(r(e[n]))return!0;return!1};function Jn(e,t){const r=[];return e?.length&&r.push({type:n.MODEL_CONTEXT_PART_TYPES.DOCUMENTS,document_ids:e.map(e=>e.document_id)}),t&&t.length>Gn?n.logger.warn({message:"modelText exceeds the text-part limit; sending the turn without it",api_name:"chat-send",length:t.length,max_length:Gn}):t&&r.push({type:n.MODEL_CONTEXT_PART_TYPES.TEXT,text:t}),r.length?r:void 0}function Zn(e,t){return{...Object.keys(e).length?{client_metadata:e}:{},...t?{locale:t}:{}}}function es(e,t){if(null==e||!t)return null;const r=e/100,n=t.toUpperCase();try{return new Intl.NumberFormat("en-US",{style:"currency",currency:n}).format(r)}catch{return`${n} ${r.toFixed(2)}`}}function ts(e){if("success"===e.status){const t=es(e.amount,e.currency);return`The payment${t?` of ${t}`:""} is successfully completed.`}return"failure"===e.status?"The payment failed."+(e.paymentId?` The reference ID is ${e.paymentId}.`:""):"Payment cancelled."}const rs={SESSION_INVALID:"session_invalid",LOAD_FAILED:"load_failed"},ns="Verify the payment.",ss={atb:function(e){if("success"===e.status){const t=es(e.amount,e.currency);return{text:`The payment${t?` of ${t}`:""} is completed.`,modelText:ns}}return"failure"===e.status?e.code===rs.SESSION_INVALID?{text:"The payment session has expired or is no longer valid."}:e.code===rs.LOAD_FAILED?{text:"The payment failed."}:{text:"The payment failed.",modelText:ns}:{text:"Payment cancelled.",modelText:ns}}};function os(e){return ss[e.provider]?.(e)??{text:ts(e)}}const as=({sendMessageRef:e})=>{const[t,s]=r.useState(null),o=r.useCallback(e=>{s(e)},[]),a=r.useCallback(()=>s(null),[]),i=r.useCallback(t=>{if("failure"===t.status&&t.message&&"stripe"!==t.provider&&n.showErrorToast(t.message),e.current){const{text:r,modelText:n}=os(t);n?e.current(r,void 0,{modelText:n}):e.current(r)}else n.logger.error({message:"Payment result dropped: sendMessageRef is null",api_name:"payment-result-dispatch",status:t.status});o(null)},[e,o]);return{paymentInit:t,setPaymentInit:o,clearPaymentInit:a,handlePaymentResult:i}};async function is(e){try{const t=await e.getItem(n.STORAGE_KEYS.LOCATION_CACHE);if(!t)return null;const r=JSON.parse(t);return Date.now()-r.timestamp<36e5?r.location:(await e.removeItem(n.STORAGE_KEYS.LOCATION_CACHE),null)}catch{return null}}const us=()=>{const[e,t]=r.useState(!1),[s,o]=r.useState(null),a=n.useStorage(),i=r.useCallback(async()=>{const e=await is(a);if(e)return e;if(!("geolocation"in navigator))return o("Geolocation is not supported by this browser"),null;if("https:"!==window.location.protocol&&"localhost"!==window.location.hostname)return o("Geolocation requires HTTPS"),null;t(!0),o(null);try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=await new Promise((e,t)=>{navigator.geolocation.getCurrentPosition(e,t,{enableHighAccuracy:!1,timeout:8e3,maximumAge:6e5})}),{latitude:r,longitude:s}=t.coords;let o="";try{const e=await fetch(`https://nominatim.openstreetmap.org/reverse?lat=${r}&lon=${s}&format=json`,{headers:{"Accept-Language":"en","User-Agent":"1interface-chat/1.0"}});e.ok&&(o=(await e.json()).display_name??"")}catch(e){n.logger.warn({message:"Reverse geocoding failed",api_name:"user-location",error_message:e instanceof Error?e.message:String(e)})}const i={latitude:r,longitude:s,address:o,timezone:e};return await async function(e,t){try{const r={location:t,timestamp:Date.now()};await e.setItem(n.STORAGE_KEYS.LOCATION_CACHE,JSON.stringify(r))}catch{}}(a,i),i}catch(e){if(e&&"number"==typeof e.code)switch(e.code){case 1:o("Location permission denied");break;case 2:o("Location information unavailable");break;case 3:o("Location request timed out");break;default:o("Failed to retrieve location")}else o("Failed to get location");return null}finally{t(!1)}},[a]);return{getUserLocation:i,isLoading:e,error:s}},cs=e=>{const[t,n]=r.useState(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return r.useEffect(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e),r=e=>{n(e.matches)};return n(t.matches),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),t};function ds({paymentInit:e,onPaymentResult:t,onClearPaymentInit:s}){const o=r.useRef(new Set),a=n.getPaymentId(e);return{handlePaymentResult:r.useCallback(e=>{("success"===e.status||"failure"===e.status)&&a&&o.current.add(a),t?.(e)},[t,a]),handleModalOpenChange:r.useCallback(r=>{!r&&e&&(!!a&&o.current.has(a)||t?.({status:"cancel",provider:e.provider}),s?.())},[e,a,t,s])}}function ls(e){const t=e.trim().split(/\s+/);return 1===t.length?e.charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()}const ps={NORMAL:"normal",RECORDING:"recording",TRANSCRIBING:"transcribing"},fs=e=>{for(let t=e.length-1;t>=0;t--)if("user"===e[t].sender)return t;return-1},gs=e=>{const n=t.useSelector(e=>!!e.voice?.isAgentWorking),s=t.useSelector(e=>e.voice?.statusText??null),o=t.useSelector(e=>e.voice?.responseStartTime??null),a=t.useSelector(e=>e.chat.isAgentWorking),i=t.useSelector(e=>e.chat.statusText??null),u=t.useSelector(e=>e.chat.responseStartTime),c=t.useSelector(e=>e.indicator.lastResponseTime),d=e?n:a,l=e?s:i,p=e?o:u;return r.useMemo(()=>({isAgentWorking:d,statusText:l??void 0,responseStartTime:p,lastResponseTime:c}),[d,l,p,c])},hs=[],ms=r.createContext(null);let ys=0;class Ts{mediaRecorder=null;audioChunks=[];stream=null;audioContext=null;analyser=null;dataArray=null;animationFrameId=null;onAudioLevel;async startRecording(e){try{if(this.onAudioLevel=e,!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new Error("Microphone access requires HTTPS. Please access the app via https:// or localhost.");this.stream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,sampleRate:24e3,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),e&&(this.audioContext=new AudioContext,this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=256,this.audioContext.createMediaStreamSource(this.stream).connect(this.analyser),this.dataArray=new Uint8Array(this.analyser.frequencyBinCount),this.analyzeAudio());const t=this.getSupportedMimeType();this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:t}),this.audioChunks=[],this.mediaRecorder.ondataavailable=e=>{e.data.size>0&&this.audioChunks.push(e.data)},this.mediaRecorder.start()}catch(e){throw this.cleanup(),e}}async stopRecording(){return new Promise((e,t)=>{this.mediaRecorder?(this.mediaRecorder.onstop=()=>{const t=this.mediaRecorder?.mimeType||"audio/webm",r=t.includes("webm")?"webm":"ogg",n=new Blob(this.audioChunks,{type:t}),s=new File([n],`audio.${r}`,{type:t});this.cleanup(),e(s)},this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())):t(new Error("MediaRecorder not initialized"))})}analyzeAudio(){if(!this.analyser||!this.dataArray)return;this.analyser.getByteFrequencyData(this.dataArray);let e=0;for(let t=0;t<this.dataArray.length;t++)e+=this.dataArray[t];const t=Math.min(e/this.dataArray.length/128,1);this.onAudioLevel&&this.onAudioLevel(t),this.animationFrameId=requestAnimationFrame(()=>this.analyzeAudio())}getSupportedMimeType(){const e=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg"];for(const t of e)if(MediaRecorder.isTypeSupported(t))return t;return"audio/webm"}cleanup(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.audioContext&&(this.audioContext.close(),this.audioContext=null),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=null),this.analyser=null,this.dataArray=null,this.mediaRecorder=null,this.audioChunks=[],this.onAudioLevel=void 0}}const Ss={HOLD:"hold",TAP:"tap"},_s="Microphone access is required. Please allow microphone permissions in your browser settings.",Es=async()=>{try{return navigator.permissions?.query?(await navigator.permissions.query({name:"microphone"})).state:"unknown"}catch{return"unknown"}},vs="OAUTH_SUCCESS",bs="OAUTH_ERROR",As=vs,ws=bs,Rs={conversations:{disable_old_widgets:!1,allow_conversation_deletion:!0,show_conversation_history:!0},voice_agent:{enabled:!0,show_customization_modal:!1,assistant_starts_conversation:!0},stt:{enabled:!0},documents:{max_bytes:26214400,max_documents:25,allowed_mime_types:null},features:[n.FEATURE_FLAGS.SSO],backend_version:"",panel_switcher_enabled:!0,auth_mode_config:{[Fn.WEB]:Qn.SIGN_IN_ONLY,[Fn.MOBILE]:Qn.SIGN_IN_ONLY}},Is=r.createContext(void 0),xs=r.createContext({});function Os(e){return Array.isArray(e.message_type)&&e.message_type.includes("widget")}const Cs="moyasar_cb",ks=new Set(["paid","authorized","failed","captured"]);function Ns(e){try{const t=decodeURIComponent(e);return t===e?e:t}catch{return e}}exports.AUTH_CLIENT_TYPES=Fn,exports.AUTH_MODES=Qn,exports.AguiAdapter=xn,exports.AudioRecorder=Ts,exports.BREAKPOINTS={SM:640,MD:768,LG:1024,XL:1280,XXL:1536},exports.CHAT_INPUT_MODES=ps,exports.CONVERSATION_TITLE_REFRESH_DELAYS_MS=[500,1500,3e3],exports.ChatCallbacksContext=xs,exports.ChatSettingsContext=ms,exports.ConfigurationContext=Is,exports.DEFAULT_CONVERSATION_TITLE="New Conversation",exports.DEFAULT_PAYMENT_PROVIDER="stripe",exports.DEFAULT_PROTOCOL="mtx",exports.ERROR_CODES=mr,exports.EventAggregator=On,exports.GENERIC_SERVER_ERROR_MESSAGE=fr,exports.MAX_CONNECTION_RETRIES=5,exports.MODEL_CONTEXT_TEXT_MAX_LENGTH=Gn,exports.MOYASAR_CALLBACK_SENTINEL=Cs,exports.OAUTH_ERROR_TYPE=bs,exports.OAUTH_SUCCESS_TYPE=vs,exports.PAGINATION=zn,exports.PAYMENT_FAILURE_CODES=rs,exports.ProprietaryAdapter=wn,exports.ProtocolContext=En,exports.SSEEventType=bn,exports.STT_GESTURES=Ss,exports.THINKING_MESSAGES=Hn,exports.TYPEWRITER_INTERVAL_MS=28,exports.USER_COLLAPSED_MESSAGE_TYPE="user-collapsed",exports.apiBridge=Tr,exports.apiMiddleware=Wr,exports.apiReducers=Vr,exports.bindChatLogger=hn,exports.brandingApi=Ur,exports.bridgedFetch=Er,exports.buildBrandSkin=function(e,t){const r="dark"===t;return{pageBg:e.bgColor,cardBg:e.widgetBg,text:e.primaryText,heading:e.primaryText,muted:e.secondaryText,divider:e.widgetBorderColor,accent:e.statusDiscovery.solid,accentText:e.statusDiscovery.text,focus:e.statusDiscovery.solid,success:e.statusSuccess.solid,successBg:e.statusSuccess.background,warning:e.statusWarning.solid,warningBg:e.statusWarning.background,danger:e.statusDanger.solid,dangerBg:e.statusDanger.background,pillBg:e.inputBgColor,pillBorder:e.inputBorderColor,pillText:e.secondaryText,cardShadow:r?"0 1px 3px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04)":"0 1px 3px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)",radius:e.borderRadius,fontFamily:e.fontFamily,colorScheme:r?"dark":"light"}},exports.buildCallbackUrl=function(e){const t=new URL(window.location.href),r=new URL(`${t.origin}${n.getBaseUrl()}/moyasar-callback.html`);return r.searchParams.set(Cs,"1"),e&&r.searchParams.set("given_id",e),r.toString()},exports.chatApi=Ar,exports.chatCoreRootReducer=mn,exports.chatLoggerContextProvider=()=>{if(!gn)return{};const e=gn(),t=e.auth.user?.id,r=e.auth.selectedOrgId??void 0,n=e.conversations.activeConversationId??void 0;return{...t?{user_id:t}:{},...r?{org_id:r}:{},...n?{conversation_id:n}:{}}},exports.chatReducer=un,exports.checkOrganizationExistsApi=async function(){const e=new AbortController,t=setTimeout(()=>e.abort(),8e3);try{const{data:t,error:r,response:s}=await Er({url:n.API_ENDPOINTS.ORGANIZATIONS_EXISTS,method:"GET",skipAuth:!0,skipContentType:!0,signal:e.signal});return r?!s||s.status>=500?"error":"not-found":function(e){const t=e?.data?.exists;return"boolean"!=typeof t?"error":t?"exists":"not-found"}(t)}catch{return"error"}finally{clearTimeout(t)}},exports.clearMessageQueue=nn,exports.configApi=Qr,exports.conversationsReducer=fn,exports.createAdapter=function(e,t){switch(e){case"mtx":return new wn(t);case"agui":return new xn(t);default:throw new Error(`Unknown protocol type: "${e}". Supported types: mtx, agui`)}},exports.createDefaultAdapterConfig=function(e={}){return{getAuthToken:()=>Sr(),getCustomHeaders:()=>n.getCustomHeaders(),onAuthExpired:e.onAuthExpired,getStreamUrl:e=>n.API_ENDPOINTS.CONVERSATION_STREAM(e),getInitialStreamUrl:e=>n.API_ENDPOINTS.CONVERSATION_START(e),getDebugUrl:()=>n.API_ENDPOINTS.DEBUG,ensureFreshToken:async()=>{n.isTokenAboutToExpire(n.readTokenExpiresAt())&&await(n.getTokenRefreshHandler()?.())},forceRefreshToken:async()=>Boolean(await(n.getTokenRefreshHandler()?.()))}},exports.createInheritedSessionRefresher=Ln,exports.createSessionRefresher=function(e){return n.createTokenRefresher({performRefresh:async()=>{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(!r||!s)return n.logger.warn({message:"Session refresh skipped: missing stored credentials",api_name:"auth-refresh",has_refresh_token:Boolean(r),has_user_id:Boolean(s)}),null;const{body:o,tokens:a}=await Dn({refresh_token:r,user_id:s});if(o?.success&&o?.data){const t={accessToken:a.accessToken,refreshToken:a.refreshToken,expiresIn:o.data.expiry_time};return n.logger.debug({message:"Session token refreshed",api_name:"auth-refresh",refresh_token_rotated:t.refreshToken!==r}),e.dispatch(n.setSession({accessToken:t.accessToken,refreshToken:t.refreshToken,expiresIn:t.expiresIn})),t}return n.logger.warn({message:"Session refresh rejected by server",api_name:"auth-refresh"}),null}})},exports.dequeueMessage=rn,exports.enqueueMessage=tn,exports.fetchOrganizations=async function(){try{const{data:e}=await Er({url:n.getApiUrl(`${n.AUTH_PATHS.ORGANIZATIONS}?skip=0&limit=100`),skipAuth:!0});if(e?.success&&Array.isArray(e.data?.organizations))return e.data.organizations}catch{}return[]},exports.forgotPasswordApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.FORGOT_PASSWORD),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.formatAmount=es,exports.formatPaymentResult=os,exports.formatResultMessage=ts,exports.getApiErrorMessage=function(e,t){return gr(e)?fr:function(e){if(!lr(e))return null;if("string"==typeof e.message){try{const t=pr(JSON.parse(e.message));if(t)return t}catch{}return e.message}return pr(e.data)??pr(e.data?.data)}(e)??t??"An unexpected error occurred."},exports.getAuthMode=$n,exports.getAuthToken=Sr,exports.getCachedLocation=is,exports.getCodeEntryErrorMessage=function(e,t){if(!lr(e))return t.generic;if(gr(e))return t.generic;const r=function(e){if("string"!=typeof e)return null;try{return hr(JSON.parse(e))}catch{return null}}(e.message);return r||(hr(e.data)||(401===e.status?t.invalidCode:422===e.status?t.validation:t.generic))},exports.getErrorGroup=function(e){if(!lr(e))return null;const t=e.data;if(lr(t)){const e=t.data;if(lr(e)&&"string"==typeof e.error_group)return e.error_group;if("string"==typeof t.error_group)return t.error_group}return null},exports.getLatestRequestId=()=>"",exports.guestLoginApi=kn,exports.hasAnyExtraData=Xn,exports.isApiServerError=gr,exports.isEmptyMessage=Yn,exports.isHttpsUrl=Rn,exports.loginApi=Cn,exports.logoutApi=Mn,exports.parseMoyasarCallbackFromUrl=function(e){if(!e)return null;const t=new URLSearchParams(e);if("1"!==t.get(Cs))return null;const r=t.get("status"),n=t.get("id");if(!r||!n)return null;if(!ks.has(r))return null;const s=t.get("conversation_id")||null,o=(t.get("given_id")||null)??n;if("paid"===r||"authorized"===r||"captured"===r){const e=t.get("amount"),r=e?Number.parseInt(e,10):void 0;return{result:{status:"success",provider:"moyasar",paymentId:o,amount:Number.isFinite(r)?r:void 0,currency:t.get("currency")??void 0},conversationId:s}}return{result:{status:"failure",provider:"moyasar",code:r,message:Ns(t.get("message")??`Payment ${r}`),paymentId:o},conversationId:s}},exports.profileApi=$r,exports.refreshTokenApi=Dn,exports.resendVerificationApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.VERIFY_EMAIL_RESEND),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.resetAllApiState=()=>e=>{Br.forEach(t=>e(t.util.resetApiState()))},exports.resetChatLoggerForTests=function(){gn=null},exports.resetChatState=an,exports.resetPasswordApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.RESET_PASSWORD),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.serializableCheck=yn,exports.setActiveConversationId=ln,exports.setIsAgentWorking=Jr,exports.setResponseStartTime=en,exports.setStatusText=Zr,exports.shouldDisableMessage=function(e,t,r){if(!r)return!1;if(!Os(e))return!1;let n=null;for(let e=t.length-1;e>=0;e--){const r=t[e];if("agent"===r.sender&&Os(r)){n=r;break}}if(!n||n.id!==e.id)return!0;const s=t.findIndex(t=>t.id===e.id);return t.slice(s+1).some(e=>"user"===e.sender)},exports.signupApi=Nn,exports.ssoExchangeApi=async function(e,t){const{data:r,error:s,response:o}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SSO_EXCHANGE),method:"POST",body:{code:e,state:t},skipAuth:!0});if(s||!o)throw r??s;return{body:r,tokens:n.extractTokens(o)}},exports.ssoStartApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SSO_START),method:"POST",body:{idp_hint:e},skipAuth:!0});if(r||!s)throw t??r;return t},exports.store=Tn,exports.toModelContext=Jn,exports.upsertConversationTitle=pn,exports.useActiveConversationTitle=function(){return t.useSelector(e=>{const t=e.conversations.activeConversationId;return t?e.conversations.titles[t]??null:null})},exports.useAuth=()=>{const{user:e,accessToken:r,tokenExpiresAt:s,isAuthenticated:o,isLoading:a}=t.useSelector(e=>e.auth);return{user:e,accessToken:r,isAuthenticated:o,isLoading:a,tokenInfo:{isExpired:!!s&&n.isTokenExpired(s),isAboutToExpire:!!s&&n.isTokenAboutToExpire(s),expiresAt:s,timeUntilExpiry:s?n.getTimeUntilExpiry(s):0,timeUntilExpiryFormatted:s?n.formatTimeRemaining(n.getTimeUntilExpiry(s)):"0s"}}},exports.useChatCallbacks=()=>r.useContext(xs),exports.useChatConnection=({conversationId:e,setMessages:s,enableTts:o=!1,userLocation:a=null,startSession:i,debugMode:u=!1,onPaymentInit:c,onSignInInit:d,onRequestDocuments:l,onConversationTitle:p,initialMessage:f,locale:g})=>{const{adapter:h}=vn(),m=t.useDispatch(),y=t.useStore(),[T,S]=r.useState(""),[_,E]=r.useState(!1),[v,b]=r.useState(!1),A=r.useRef(c);A.current=c;const w=r.useRef(d);w.current=d;const R=r.useRef(l);R.current=l;const I=r.useRef(p);I.current=p;const x=r.useRef(f),O=r.useRef(g);r.useLayoutEffect(()=>{x.current=f,O.current=g},[f,g]);const C=r.useRef(new On),k=r.useRef(null),N=r.useRef(null),P=r.useRef(!1),M=r.useRef(0),D=r.useRef(!1),q=r.useRef(null),U=r.useRef(e);U.current=e;const L=r.useRef(null),F=r.useRef(e);r.useEffect(()=>{const t=F.current;F.current=e,null!==t&&t!==e&&m(on())},[e,m]);const Q=r.useCallback((e=n.INDICATOR_TIMER_ACTIONS.KEEP)=>{if(m(Zr(null)),m(Jr(!1)),e===n.INDICATOR_TIMER_ACTIONS.FINALIZE){const e=y.getState().chat.responseStartTime;e&&m(n.setLastResponseTime(Date.now()-e)),m(en(null))}else e===n.INDICATOR_TIMER_ACTIONS.CANCEL&&m(en(null))},[m,y]),j=r.useCallback(e=>{m(Jr(e)),E(e),e&&b(!1)},[m]),$=r.useCallback(()=>{const e=y.getState().chat.responseStartTime;return e&&m(n.setLastResponseTime(Date.now()-e)),null!==q.current&&clearTimeout(q.current),q.current=setTimeout(()=>{q.current=null,D.current=!1,S(""),E(!1),b(!1),Q(n.INDICATOR_TIMER_ACTIONS.CANCEL)},600),()=>{null!==q.current&&clearTimeout(q.current)}},[m,y,Q]),H=r.useRef({setStatusText:e=>m(Zr(e||null)),setIsAgentWorking:e=>m(Jr(e)),appendStreamText:()=>{},pushWidget:()=>{},onPayment:e=>A.current?.(e),onSignIn:e=>w.current?.(e),onRequestDocuments:e=>R.current?.(e),onError:()=>{}}),z=r.useCallback(e=>{if(L.current!==U.current)return k.current?.abort(),void N.current?.();if("payment"===e.type&&"payment"in e.data)return void n.handleSharedEvent({kind:"payment",payment:e.data.payment},H.current);if("sign_in"===e.type&&"signIn"in e.data)return void n.handleSharedEvent({kind:"sign_in",signIn:e.data.signIn},H.current);if("request_documents"===e.type&&"requestDocuments"in e.data)return void n.handleSharedEvent({kind:"request_documents",requestDocuments:e.data.requestDocuments},H.current);if("conversation_title"===e.type&&"conversationTitle"in e.data){const t=e.data.conversationTitle.trim();return void(t&&I.current?.(t))}const t=C.current;t.processEvent(e),P.current||(P.current=!0,b(!0));const r=function(e){const t=e.data;switch(e.type){case"text":return"text"in t?{kind:"text",text:t.text}:null;case"widget":return"widget"in t?{kind:"widget",widget:t.widget}:null;case"status_update":return"statusText"in t?{kind:"status_update",statusText:t.statusText}:null;case"payment":return"payment"in t?{kind:"payment",payment:t.payment}:null;case"sign_in":return"signIn"in t?{kind:"sign_in",signIn:t.signIn}:null;case"request_documents":return"requestDocuments"in t?{kind:"request_documents",requestDocuments:t.requestDocuments}:null;case"error":return"error"in t?{kind:"error",error:t.error}:null;default:return null}}(e);if(r){const e="status_update"===r.kind?{kind:"status_update",statusText:t.getStatusText()}:r;n.handleSharedEvent(e,H.current)}const o=t.toMessages(),a=M.current;s(e=>[...e.slice(0,e.length-a),...o]),M.current=o.length,o.some(e=>Xn(e)||!Yn(e.message))&&m(Jr(!1)),t.isStreamComplete()&&$()},[m,s,$]),G=r.useCallback(e=>{n.showErrorToast("Stream connection error. Please try again."),$()},[$]),K=r.useCallback(()=>{k.current?.abort(),N.current?.(),k.current=null,N.current=null,L.current=null,C.current.reset(),M.current=0,S(""),E(!1),b(!1),Q(n.INDICATOR_TIMER_ACTIONS.CANCEL),m(n.clearLastResponseTime()),m(nn()),D.current=!1},[m,Q]),B=r.useCallback((e,t)=>{k.current?.abort(),N.current?.(),C.current.reset(),M.current=0,P.current=!1,L.current=t,U.current=t,k.current=e;const r=e.subscribe({onEvent:z,onError:G,onComplete:()=>{$()}});N.current=r},[z,G,$]),V=r.useCallback(()=>{m(Jr(!0)),E(!0),b(!1),m(Zr(null)),m(en(Date.now())),m(n.clearLastResponseTime())},[m]),W=r.useCallback((e,t)=>{V();const r=h.streamMessage({conversationId:e,message:t.message,enableTts:o,debugMode:u,transcriptionIds:t.transcriptionIds??[],...t.modelContext?.length?{modelContext:t.modelContext}:{},body:Zn(t.clientMetadata,O.current)});B(r,e)},[h,o,u,B,V]),Y=r.useCallback(async(t="",r=[],o={})=>{D.current=!0;try{let a=e;if(!a){if(!i)return D.current=!1,void n.showErrorToast("Conversation is not ready yet. Please wait a moment.");const e=await i();if(!e)return D.current=!1,void n.showErrorToast("Failed to start conversation. Please try again.");a=e}const u=t.trim();window.dispatchEvent(new CustomEvent("stopAudioPlayback")),s(e=>[...e,{id:`user-${n.generateUniqueId()}`,sender:"user",message:u,timestamp:(new Date).toISOString(),...o.messageType?.length?{message_type:o.messageType}:{},...o.documents?.length?{documents:o.documents}:{}}]);const c=n.readDeviceToken();W(a,{message:u,transcriptionIds:r,modelContext:Jn(o.documents,o.modelText),clientMetadata:c?{device_token:c}:{}})}catch(e){n.logger.error({message:"Failed to send message",api_name:"chat-send",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to send conversations message. Please try again."),D.current=!1,Q(n.INDICATOR_TIMER_ACTIONS.CANCEL)}},[e,i,s,W,Q]),X=r.useRef(Y);X.current=Y;const J=r.useCallback(async(e="",t=[],r={})=>{const s=(e??"").trim();if(!s&&!r.documents?.length)return void(r.modelText&&n.logger.warn({message:"modelText sent without text or documents; dropped",api_name:"chat-send"}));const o=y.getState().chat.pendingTranscriptionIds,a=o.length?[...o,...t]:t;o.length&&m(on()),D.current?m(tn({id:n.generateUniqueId(),text:s,queuedAt:(new Date).toISOString(),...a.length?{transcriptionIds:a}:{},...r.messageType?.length?{messageType:r.messageType}:{},...r.documents?.length?{documents:r.documents}:{},...r.modelText?{modelText:r.modelText}:{}})):await Y(s,a,r)},[m,y,Y]);r.useEffect(()=>{if(_||D.current)return;const e=y.getState().chat.messageQueue;if(0===e.length)return;const t=1===e.length?e[0].text:e.map(e=>e.text).filter(e=>e.length>0).map(e=>`- ${e}`).join("\n"),r=e.flatMap(e=>e.transcriptionIds??[]),n=e.flatMap(e=>e.documents??[]),s=e.map(e=>e.modelText).filter(Boolean).join("\n\n"),o={...1===e.length&&e[0].messageType?.length?{messageType:e[0].messageType}:{},...n.length?{documents:n}:{},...s?{modelText:s}:{}};m(nn()),X.current(t,r,o)},[_,m,y]);const Z=r.useCallback(async(e,t)=>{D.current=!0;const r=void 0!==t?t:a,s={};r&&(s.user_location=r);const i=n.readDeviceToken();i&&(s.device_token=i);const u=x.current?.trim()??"",c=u.length>Gn;if(c&&n.logger.warn({message:"initialMessage exceeds the text-part limit; opening with /start instead",api_name:"chat-start",conversation_id:e,length:u.length,max_length:Gn}),u&&!c)return void W(e,{message:"",modelContext:[{type:n.MODEL_CONTEXT_PART_TYPES.TEXT,text:u}],clientMetadata:s});V();const d=h.streamInitial({conversationId:e,body:Zn(s,O.current),enableTts:o});B(d,e)},[h,o,a,B,W,V]);return r.useEffect(()=>()=>{k.current?.abort(),N.current?.()},[]),{sendMessage:J,startInitialStream:Z,setThinkingState:j,abortStream:K,toolCallStatus:T,isProcessThinkingState:_,hasReceivedResponse:v}},exports.useChatHistory=function({activeConversationId:e,onSelectConversation:s,onClearChat:o}){const[a,i]=r.useState([]),u=t.useSelector(e=>e.conversations.titles),[c,d]=r.useState(!0),[l,p]=r.useState(!1),[f,g]=r.useState(!0),[h,m]=r.useState(""),y=r.useRef(0),T=r.useRef(!1),S=r.useRef(f);S.current=f;const _=r.useRef(a);_.current=a;const[E]=Ar.useLazyGetConversationHistoryQuery(),v=r.useRef(E);v.current=E;const[b,{isLoading:A}]=Ar.useDeleteConversationMutation(),w=r.useCallback(async e=>{const t="append"===e?y.current:0;if("append"===e){if(T.current||!S.current)return;T.current=!0,p(!0)}else"replace"===e&&0===_.current.length&&d(!0);try{const r=await v.current({skip:t,limit:20}).unwrap(),n=r?.conversations??[];"append"===e?(i(e=>{const t=new Set(e.map(e=>e.id));return[...e,...n.filter(e=>!t.has(e.id))]}),y.current+=20):"replace"===e?(i(n),y.current=20):i(e=>function(e,t){if(0===t.length)return e;const r=new Set(e.map(e=>e.id)),n=new Map(t.map(e=>[e.id,e])),s=t.filter(e=>!r.has(e.id));let o=s.length>0;const a=e.map(e=>{const t=n.get(e.id);return t?(r=e).id===(s=t).id&&r.title===s.title&&r.created_at===s.created_at&&r.updated_at===s.updated_at?e:(o=!0,t):e;var r,s});return o?[...s,...a]:e}(e,n)),"silent"!==e&&g(n.length>=20)}catch(e){n.logger.error({message:"Failed to load conversations",api_name:"chat-conversation-list",error_message:e instanceof Error?e.message:String(e)})}finally{"append"===e?(T.current=!1,p(!1)):"replace"===e&&d(!1)}},[]);r.useEffect(()=>{w("replace")},[w]);const R=r.useRef(null),I=r.useRef(new Set);r.useEffect(()=>{if(c||!e)return;if(I.current.has(e))return;if(a.some(t=>t.id===e))return void(R.current=null);const t=`${e}:${u[e]??""}`;R.current!==t&&(R.current=t,w("silent"))},[e,a,u,c,w]);const x=r.useCallback(async t=>{const r=e===t,u=r?function(e,t){const r=e.findIndex(e=>e.id===t);return-1===r?null:r+1<e.length?e[r+1].id:r-1>=0?e[r-1].id:null}(h.trim()?a.filter(e=>e?.title?.toLowerCase().includes(h.toLowerCase())):a,t):null,c=await b({conversationId:t});if(c.error)return n.logger.error({message:"Failed to delete conversation",api_name:"chat-conversation-delete",conversation_id:t,error_message:JSON.stringify(c.error)}),void n.showErrorToast("Failed to delete the conversation. Please try again.");n.showSuccessToast("Conversation deleted successfully"),I.current.add(t);const d=_.current.some(e=>e.id===t);if(i(e=>e.filter(e=>e.id!==t)),d&&(y.current=Math.max(0,y.current-1)),r)if(u){const e=a.find(e=>e.id===u)??null;s(u,e?.title??null)}else o?.()},[e,a,h,b,s,o]),O=r.useMemo(()=>a.map(e=>u[e.id]?{...e,title:u[e.id]}:e),[a,u]);return{conversations:h.trim()?O.filter(e=>e?.title?.toLowerCase().includes(h.toLowerCase())):O,isLoading:c,isLoadingMore:l,hasMore:f,isDeleting:A,searchQuery:h,setSearchQuery:m,loadConversations:w,deleteConversation:x,isLoadingMoreRef:T}},exports.useChatInput=({onSend:e,disabled:t=!1,hasAttachments:n=!1,transcribedText:s,onTranscribedTextUsed:o,isRecording:a=!1,isTranscribing:i=!1})=>{const[u,c]=r.useState("");r.useEffect(()=>{if(!s)return;let e=!1;return queueMicrotask(()=>{e||(c(e=>0===e.trim().length?s:`${e.trimEnd()} ${s}`),o?.())}),()=>{e=!0}},[s,o]);const d=(u.trim().length>0||n)&&!t,l=r.useCallback(()=>{d&&(e(u.trim()),c(""))},[u,d,e]),p=a?ps.RECORDING:i?ps.TRANSCRIBING:ps.NORMAL;return r.useMemo(()=>({value:u,setValue:c,send:l,canSend:d,mode:p}),[u,l,d,p])},exports.useChatSettings=()=>{const e=r.useContext(ms);if(!e)throw new Error("useChatSettings must be used within a <SettingsProvider>");return e},exports.useConfiguration=()=>{const e=r.useContext(Is);if(!e)throw new Error("useConfiguration must be used within a ConfigurationProvider");return e},exports.useConfigurationValue=()=>{const{data:e,isLoading:t,error:n}=_n(),s=e?.success?e.data:null,o=r.useMemo(()=>{return(e=s)?{conversations:{...Rs.conversations,...e.conversations},voice_agent:{...Rs.voice_agent,...e.voice_agent},stt:{...Rs.stt,...e.stt},documents:{...Rs.documents,...e.documents},features:e.features??Rs.features,backend_version:e.backend_version??Rs.backend_version,panel_switcher_enabled:e.panel_switcher_enabled??Rs.panel_switcher_enabled,auth_mode_config:{...Rs.auth_mode_config,...e.auth_mode_config}}:Rs;var e},[s]);return r.useMemo(()=>({clientConfig:o,isLoading:t,error:n?new Error("Failed to fetch client configuration"):null}),[o,t,n])},exports.useConnectors=function(){const{themeStyles:e}=n.useBranding(),{data:t,isLoading:s}=Pr(void 0),[o]=Dr(),a=r.useMemo(()=>(t?.tool_servers??[]).map(t=>({id:t.id,name:t.name,description:t.description??"",initials:ls(t.name),accentTextColor:e.statusPrimary.solid,logoUrl:t.logo_url??void 0,connected:t.connected})),[t?.tool_servers,e.statusPrimary.solid]);return{connectors:a,isLoading:s,disconnect:async function(e){const t=a.find(t=>t.id===e)?.name??"App";"error"in await o(e)?n.showErrorToast(`Failed to disconnect ${t}. Please try again.`):n.showSuccessToast(`${t} disconnected`)}}},exports.useContainerQuery=e=>{const t=r.useRef(null),[n,s]=r.useState(!1);return r.useEffect(()=>{const r=t.current;if(!r)return;const n=new ResizeObserver(t=>{for(const r of t)s(r.contentRect.width>=e)});n.observe(r);const o=r.getBoundingClientRect().width;return s(o>=e),()=>{n.disconnect()}},[e]),{containerRef:t,isDesktop:n}},exports.useConversation=()=>{const e=t.useDispatch(),[s,o]=r.useState(null),[a,i]=r.useState([]),u=r.useRef(s),c=t.useSelector(e=>s?e.conversations.titles[s]??null:null),d=r.useCallback(t=>{s&&t&&e(pn({id:s,title:t}))},[s,e]);r.useEffect(()=>{u.current=s,e(ln(s))},[s,e]);const[l,p]=r.useState(!1),[f,g]=r.useState(0),[h,m]=r.useState(!1),[y,T]=r.useState(!1),S=r.useRef(!1),{protocolType:_}=vn(),[E]=wr(),[v]=kr(),b=r.useCallback(async()=>{try{p(!0);const t=await E({protocol:_,body:{}}).unwrap(),r=t?.id;if(r){o(r);const n=Wn(t?.title);return n&&e(pn({id:r,title:n})),r}return n.showErrorToast(t?.error||"Failed to create conversations. Please try again."),null}catch(e){return n.showErrorToast(e?.data?.message||e?.message||"Failed to create conversations. Please try again."),null}finally{p(!1)}},[E,_,e]),A=r.useCallback(async(t,r)=>{try{const n=Wn(r);n&&e(pn({id:t,title:n}));const s=await v({conversationId:t,skip:0,limit:zn.MESSAGE_PAGE_SIZE}).unwrap();if(s){o(t);const r=Wn(s.title)??n;r&&e(pn({id:t,title:r}));const a=s.messages??[],u=Array.isArray(a)?Vn(a):[];return i(u),g(a.length),m(a.length>=zn.MESSAGE_PAGE_SIZE),!0}return!1}catch(e){return"AbortError"===e?.name||"AbortError"===e?.error?.name||"ABORTED"===e?.status||(n.logger.error({message:"Failed to load conversation",api_name:"chat-conversation-load",conversation_id:t,error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to load conversation. Please try again.")),!1}},[v,e]),w=r.useCallback(async(t=s)=>{if(!t)return null;try{const r=await v({conversationId:t,skip:0,limit:1}).unwrap(),n=Wn(r?.title);return n&&e(pn({id:t,title:n})),n}catch(e){return n.logger.error({message:"Failed to refresh conversation title",api_name:"chat-conversation-title-refresh",conversation_id:t,error_message:e instanceof Error?e.message:String(e)}),null}},[s,v,e]),R=r.useCallback(async()=>{if(S.current||!s||!h)return;const e=s;T(!0),S.current=!0;try{const t=await v({conversationId:s,skip:f,limit:zn.MESSAGE_PAGE_SIZE}).unwrap();if(u.current!==e)return;if(t?.messages&&Array.isArray(t.messages)){const e=Vn(t.messages);g(e=>e+t.messages.length),m(t.messages.length>=zn.MESSAGE_PAGE_SIZE),i(t=>{const r=new Set(t.map(e=>e.timestamp).filter(Boolean));return[...e.filter(e=>!e.timestamp||!r.has(e.timestamp)),...t]})}}catch(e){n.logger.error({message:"Failed to load more messages",api_name:"chat-conversation-load-more",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to load older messages.")}finally{T(!1),S.current=!1}},[s,f,h,v]),I=r.useCallback(()=>{i([]),o(null),g(0),m(!1)},[]);return{conversationId:s,setConversationId:o,conversationTitle:c,setConversationTitle:d,messages:a,setMessages:i,isLoadingCreateConversation:l,hasMoreMessages:h,isLoadingMoreMessages:y,startSession:b,loadConversation:A,loadConversationTitle:w,loadMoreMessages:R,resetConversation:I}},exports.useCreateConversatonsMutation=wr,exports.useDeleteAccountMutation=Gr,exports.useDeleteConversationMutation=Nr,exports.useDeleteDocumentMutation=xr,exports.useDeleteToolServerConnectionMutation=Dr,exports.useElapsedSeconds=e=>{const[t,n]=r.useState(()=>null===e?0:Math.floor((Date.now()-e)/1e3));return r.useEffect(()=>{if(null===e)return void n(0);n(Math.floor((Date.now()-e)/1e3));const t=setInterval(()=>{n(Math.floor((Date.now()-e)/1e3))},1e3);return()=>clearInterval(t)},[e]),t},exports.useEventEmitter=function(e,t,s){const o=r.useRef(s);r.useEffect(()=>{o.current=s},[s]),r.useEffect(()=>{const r=n.eventEmitter.on(e,t,e=>{o.current(e)});return()=>{r()}},[e,t])},exports.useExchangeOAuthCodeMutation=Or,exports.useGetBrandingQuery=Lr,exports.useGetConfigQuery=_n,exports.useGetConversationHistoryQuery=Cr,exports.useGetProfileQuery=Hr,exports.useGetToolServersQuery=Pr,exports.useGuestBoot=function({clientType:e}){const{data:n,isLoading:s,refetch:o}=_n(),a=$n(n,e),i=Boolean(n?.data?.auth_mode_config),[u,c]=r.useState(a);i&&a!==u&&c(a);const d=i?a:u,l=t.useSelector(e=>Boolean(e.auth?.isAuthenticated)),{guestLogin:p}=Un(),f=r.useRef(!1),[g,h]=r.useState(!1),[m,y]=r.useState(0),T=r.useRef(0),S=r.useRef(0);r.useEffect(()=>{if(d!==Qn.GUEST_ONLY)return;if(l)return void(f.current=!1);if(s)return;if(f.current)return;const e=Date.now();T.current=e-S.current<1e4?T.current+1:0,S.current=e,T.current>=3?h(!0):(f.current=!0,h(!1),p().then(e=>{e.success||(f.current=!1,h(!0))}))},[d,l,s,p,m]);const _=r.useCallback(()=>{T.current=0,S.current=0,h(!1),o(),y(e=>e+1)},[o]);return{mode:d,isGuestBootPending:s||d===Qn.GUEST_ONLY&&!l&&!g,guestBootFailed:!l&&!s&&void 0===n||d===Qn.GUEST_ONLY&&!l&&g,retryGuestBoot:_}},exports.useGuestLogin=Un,exports.useInfiniteScroll=function({hasMore:e,isLoadingRef:t,scrollAreaRef:n,onLoadMore:s,itemCount:o}){const a=r.useRef(null),i=r.useCallback(r=>{if(a.current&&a.current.disconnect(),!r||!e)return;const o=function(e,t){const r=t?.querySelector("[data-radix-scroll-area-viewport]");if(r)return r;if(t&&t.scrollHeight>t.clientHeight)return t;let n=e.parentElement;for(;n&&n!==document.body;){if(n.scrollHeight>n.clientHeight)return n;n=n.parentElement}return null}(r,n.current);o&&(a.current=new IntersectionObserver(e=>{e[0].isIntersecting&&!t.current&&s()},{root:o,rootMargin:"0px",threshold:.1}),a.current.observe(r))},[e,t,n,s]);return r.useEffect(()=>{if(!e||t.current)return;const r=n.current;if(!r)return;const o=r.querySelector("[data-radix-scroll-area-viewport]")??r;o.clientHeight>0&&o.scrollHeight<=o.clientHeight&&s()},[e,n,s,t,o]),i},exports.useInheritedAuthBoot=function({adapter:e,enabled:s}){const o=t.useStore(),a=t.useSelector(e=>Boolean(e.auth?.isAuthenticated)),i=r.useMemo(()=>e?Ln(o,e):null,[o,e]);r.useEffect(()=>{if(s&&i)return n.setTokenRefreshHandler(i),()=>n.setTokenRefreshHandler(null)},[s,i]);const u=r.useRef(!1),[c,d]=r.useState(!1),[l,p]=r.useState(0);r.useEffect(()=>{s&&i&&(a?u.current=!1:u.current||(u.current=!0,d(!1),i().then(e=>{e||(u.current=!1,d(!0))})))},[s,i,a,l]);const f=r.useCallback(()=>{d(!1),p(e=>e+1)},[]);return{isInheritedBootPending:s&&!a&&!c,inheritedAuthFailed:s&&c,retryInheritedAuth:f}},exports.useIsDesktop=()=>cs("(min-width: 1024px)"),exports.useLazyGetConversationByIdQuery=kr,exports.useLocationInit=()=>{const[e,t]=r.useState(!1),{getUserLocation:s}=us(),o=n.useStorage(),a=r.useRef(!1);return r.useEffect(()=>{if(a.current)return;a.current=!0;let e=null;const r=()=>{null!==e&&clearTimeout(e),t(!0)};return(async()=>{if("false"===await o.getItem(n.STORAGE_KEYS.LOCATION_ENABLED))return void r();const t=await is(o);t&&0!==t.latitude&&0!==t.longitude?r():(e=setTimeout(r,5e3),s().finally(r))})(),()=>{null!==e&&clearTimeout(e)}},[s,o]),e},exports.useLogin=function(){const e=r.useCallback(e=>Cn(e.email,e.password),[]),{run:t,isLoading:n}=qn(e);return{login:t,isLoading:n}},exports.useLogout=function(){const e=t.useStore();return{logout:r.useCallback(async()=>{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(r&&s)try{await Mn({refresh_token:r,user_id:s})}catch{}else n.logger.warn({message:"skipping server-side logout revocation — credentials missing",api_name:"auth-logout",has_refresh_token:Boolean(r),has_user_id:Boolean(s)});e.dispatch(n.clearSession())},[e])}},exports.useMediaQuery=cs,exports.useMessageList=({messages:e,voiceStreamingMessages:t=hs,voiceActive:s})=>{const o=r.useMemo(()=>{if(0===t.length)return e;const r=new Set(t.map(e=>e.id));return e.filter(e=>!r.has(e.id))},[e,t]),a=r.useMemo(()=>fs(o),[o]),i=gs(s),u=r.useRef(e.length),c=r.useCallback(()=>{const t=u.current;return u.current=e.length,((e,t)=>{const r=t.length-1,s=fs(t);if(t.length<=e)return{hasNew:!1,newMessages:[],firstNewIndex:e,lastIndex:r,hasNewUserMessage:!1,hasNewWidget:!1,lastUserMessageIndex:s};const o=t.slice(e);return{hasNew:!0,newMessages:o,firstNewIndex:e,lastIndex:r,hasNewUserMessage:o.some(e=>"user"===e.sender),hasNewWidget:o.some(n.hasWidgets),lastUserMessageIndex:s}})(t,e)},[e]);return{visibleMessages:o,lastUserMessageIndex:a,indicator:i,classifyArrival:c}},exports.useOAuthPopup=function({signInInit:e,sendMessageRef:t,clearSignInInit:s,sendResumeMessage:o=!0}){const[a]=Or();r.useEffect(()=>{if(!e)return;const r=function(e){try{const t=(new URL(e).searchParams.get("scope")??"").match(/\/auth\/([^./]+)/);if(t?.[1])return t[1].charAt(0).toUpperCase()+t[1].slice(1)}catch{}return"Service"}(e.authorize_url),i=window.open(e.authorize_url,"oauth_popup",`width=500,height=650,left=${Math.round(screen.width/2-250)},top=${Math.round(screen.height/2-325)}`);if(!i)return n.showErrorToast("Please allow popups for this site to sign in to external services."),void s();let u=!1;const c=e=>{u||(u=!0,window.removeEventListener("message",d),clearInterval(l),e?.(),s())},d=async e=>{if(e.origin!==window.location.origin)return;if(u)return;if(e.data?.type===ws)return void c(()=>n.showErrorToast(`Failed to sign in to ${r}. Please try again.`));if(e.data?.type!==As)return;u=!0,window.removeEventListener("message",d),clearInterval(l);const{code:p,state:f}=e.data;"error"in await a({code:p,state:f})?n.showErrorToast(`Failed to sign in to ${r}. Please try again.`):(n.showSuccessToast(`${r} connected successfully`),o&&t.current?.(`${r} is now signed in, please continue`)),s(),i?.close()},l=setInterval(()=>{i.closed&&c()},500);return window.addEventListener("message",d),()=>{window.removeEventListener("message",d),clearInterval(l),u||i.close()}},[e,t,s,a,o])},exports.usePayment=function({sendMessageRef:e}){const{paymentInit:t,setPaymentInit:r,clearPaymentInit:n,handlePaymentResult:s}=as({sendMessageRef:e}),{handlePaymentResult:o,handleModalOpenChange:a}=ds({paymentInit:t,onPaymentResult:s,onClearPaymentInit:n});return{paymentInit:t,setPaymentInit:r,isOpen:!!t,onOpenChange:a,onResult:o,clearPaymentInit:n}},exports.usePaymentFlow=as,exports.usePaymentResultDedup=ds,exports.useProtocol=vn,exports.useRefreshToken=function(){const e=t.useStore(),[s,o]=r.useState(!1);return{refresh:r.useCallback(async()=>{o(!0);try{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(!r||!s)return{success:!1,error:new Error("No refresh token or user available")};const{body:o,tokens:a}=await Dn({refresh_token:r,user_id:s});return o?.success&&o?.data?(e.dispatch(n.setSession({accessToken:a.accessToken,refreshToken:a.refreshToken,expiresIn:o.data.expiry_time})),{success:!0,data:o}):{success:!1,error:o}}catch(e){return{success:!1,error:e}}finally{o(!1)}},[e]),isLoading:s}},exports.useResolvedChatIndicators=gs,exports.useSTTRecording=({onTranscriptionComplete:e,onTranscriptionPopulate:s,ensureConversation:o,autoSendVoice:a=!0,gesture:i=Ss.HOLD}={})=>{const[u,c]=r.useState(!1),[d,l]=r.useState(!1),[p,f]=r.useState(0),g=r.useRef(null),h=r.useRef(null),m=r.useRef(!1),y=r.useRef(!1),T=r.useRef(!1),S=r.useRef(null),_=t.useDispatch(),[E]=Rr(),v=r.useCallback(async()=>{if(i===Ss.TAP){if(m.current||T.current)return;T.current=!0;try{g.current||(g.current=new Ts),await g.current.startRecording(e=>{f(e)}),h.current=Date.now(),m.current=!0,c(!0)}catch(e){n.logger.error({message:"Failed to start STT recording",api_name:"stt-record",error_message:e instanceof Error?e.message:String(e)}),m.current=!1,n.showErrorToast(_s)}finally{T.current=!1}return}y.current=!1;const e=()=>{t(),m.current?S.current?.():y.current=!0},t=()=>{document.removeEventListener("mouseup",e),document.removeEventListener("touchend",e),document.removeEventListener("pointerup",e)};document.addEventListener("mouseup",e),document.addEventListener("touchend",e),document.addEventListener("pointerup",e);const r=await Es();if("denied"===r)return t(),void n.showErrorToast(_s);if("prompt"!==r){if(y.current)return t(),void(y.current=!1);try{g.current||(g.current=new Ts),await g.current.startRecording(e=>{f(e)}),h.current=Date.now(),m.current=!0,c(!0),y.current&&(y.current=!1,await(S.current?.()))}catch(e){t(),n.logger.error({message:"Failed to start STT recording",api_name:"stt-record",error_message:e instanceof Error?e.message:String(e)}),m.current=!1,n.showErrorToast(_s)}}else{t(),y.current=!1;try{(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach(e=>e.stop())}catch{"denied"===await Es()&&n.showErrorToast(_s)}}},[i]),b=r.useCallback(()=>{m.current&&(g.current?.cleanup(),m.current=!1,h.current=null,c(!1),f(0))},[]),A=r.useCallback(async()=>{try{if(!g.current||!m.current)return;const t=h.current?Date.now()-h.current:0;if(c(!1),f(0),t<500)return g.current?.cleanup(),void(h.current=null);l(!0);const r=await g.current.stopRecording(),i=await(o?.())??null;if(!i)return void n.showErrorToast("Failed to transcribe audio");const u=await E({conversationId:i,audioFile:r}).unwrap();u.success?u.data.text&&(_(sn(u.data.transcription_id)),a&&e?await e(u.data.text):!a&&s&&s(u.data.text)):n.showErrorToast("Transcription failed")}catch(e){n.logger.error({message:"STT transcription failed",api_name:"stt-transcribe",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to transcribe audio")}finally{l(!1),m.current=!1,g.current?.cleanup(),h.current=null}},[a,_,o,e,s,E]);return r.useEffect(()=>{S.current=A},[A]),r.useEffect(()=>()=>{g.current?.cleanup()},[]),{isRecording:u,isTranscribing:d,audioLevel:p,startRecording:v,stopRecording:A,cancelRecording:i===Ss.TAP?b:null}},exports.useSignup=function(){const{run:e,isLoading:t}=qn(Nn);return{signup:e,isLoading:t}},exports.useStartToolServerOAuthMutation=Mr,exports.useThinkingMessage=(e={})=>{const{enabled:t=!0}=e,[n,s]=r.useState(Hn.INITIAL),[o,a]=r.useState(0),[i,u]=r.useState(!0),c=r.useRef(null),d=r.useRef(null),l=r.useRef(null);return r.useEffect(()=>{if(!t)return s(Hn.INITIAL),a(0),void u(!0);s(Hn.INITIAL),a(0),u(!0);let e=Hn.INITIAL;const r=()=>{c.current=setTimeout(()=>{u(!1),l.current=setTimeout(()=>{a(t=>(t+1)%e.length),u(!0),l.current=null},500),r()},Hn.ROTATION_INTERVAL_MS)};return r(),d.current=setTimeout(()=>{e=Hn.LATER,c.current&&clearTimeout(c.current),l.current&&clearTimeout(l.current),s(Hn.LATER),a(0),u(!1),l.current=setTimeout(()=>{u(!0),l.current=null},500),r()},Hn.PHASE_SWITCH_MS),()=>{c.current&&clearTimeout(c.current),d.current&&clearTimeout(d.current),l.current&&clearTimeout(l.current),c.current=null,d.current=null,l.current=null}},[t]),{message:n[o],isVisible:i}},exports.useTokenRefresh=function({refreshSession:e,checkIntervalMs:s=6e4}){const o=t.useStore(),a=t.useSelector(e=>e.auth),i=a?.accessToken??null,u=Boolean(a?.isAuthenticated),c=a?.tokenExpiresAt??null,d=r.useRef(null),l=r.useRef(null),p=r.useCallback(()=>{o.dispatch(n.clearSession())},[o]),f=r.useCallback(async(t=!1)=>{if(t||!(Date.now()-ys<3e5))try{await e()?ys=Date.now():(n.logger.error({message:"Session cleared: proactive token refresh failed",api_name:"auth-refresh"}),p())}catch(e){n.logger.error({message:"Token refresh failed",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),p()}},[e,p]),g=r.useCallback(()=>{u&&(n.isTokenExpired(c)?f(!0):n.isTokenAboutToExpire(c)&&f())},[u,c,f]);return r.useEffect(()=>{i&&n.isTokenExpired(c)&&f(!0)},[]),r.useEffect(()=>{if(u&&i){if(n.isTokenExpired(c))return void f(!0);const e=n.getTimeUntilRefresh(c);return e>0?l.current=setTimeout(()=>{f()},e):n.isTokenAboutToExpire(c)&&f(),d.current=setInterval(()=>{n.isTokenExpired(c)?f(!0):n.isTokenAboutToExpire(c)&&f()},s),()=>{d.current&&clearInterval(d.current),l.current&&clearTimeout(l.current)}}ys=0,d.current&&(clearInterval(d.current),d.current=null),l.current&&(clearTimeout(l.current),l.current=null)},[u,i,c,s,f]),{checkNow:g}},exports.useTranscribeAudioMutation=Rr,exports.useTypewriter=function(e,t=28){const[n,s]=r.useState(e),o=r.useRef(e),a=r.useCallback(e=>{o.current=e,s(e)},[]);return r.useEffect(()=>{if(o.current===e)return;const r=function(e,t){const r=Math.min(e.length,t.length);let n=0;for(;n<r&&e[n]===t[n];)n+=1;return n}(o.current,e);a(e.slice(0,r));let n=r;const s=globalThis.setInterval(()=>{n+=1,a(e.slice(0,n)),n>=e.length&&globalThis.clearInterval(s)},t);return()=>globalThis.clearInterval(s)},[e,t,a]),n},exports.useUpdatePasswordMutation=Kr,exports.useUpdateProfileMutation=zr,exports.useUploadDocumentMutation=Ir,exports.useUserLocation=us,exports.useVerifyEmail=function(){const{run:e,isLoading:t}=qn(Pn);return{verify:e,isLoading:t}},exports.verifyEmailApi=Pn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@reduxjs/toolkit"),t=require("react-redux"),r=require("react"),n=require("@1interface/shared-core"),s=require("@microsoft/fetch-event-source");var a=Symbol.for("immer-nothing"),o=Symbol.for("immer-draftable"),i=Symbol.for("immer-state"),u="production"!==process.env.NODE_ENV?[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},"This object has been frozen and should not be mutated",function(e){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.","Immer forbids circular references","The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},"Object.defineProperty() cannot be used on an Immer draft","Object.setPrototypeOf() cannot be used on an Immer draft","Immer only supports deleting array indices","Immer only supports setting array indices and the 'length' property",function(e){return`'original' expects a draft, got: ${e}`}]:[];function c(e,...t){if("production"!==process.env.NODE_ENV){const r=u[e],n=N(r)?r.apply(null,t):r;throw new Error(`[Immer] ${n}`)}throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var d=Object,l=d.getPrototypeOf,p="constructor",f="prototype",g="configurable",h="enumerable",m="writable",y="value",T=e=>!!e&&!!e[i];function S(e){return!!e&&(v(e)||x(e)||!!e[o]||!!e[p]?.[o]||O(e)||k(e))}var _=d[f][p].toString(),E=new WeakMap;function v(e){if(!e||!C(e))return!1;const t=l(e);if(null===t||t===d[f])return!0;const r=d.hasOwnProperty.call(t,p)&&t[p];if(r===Object)return!0;if(!N(r))return!1;let n=E.get(r);return void 0===n&&(n=Function.toString.call(r),E.set(r,n)),n===_}function b(e,t,r=!0){0===A(e)?(r?Reflect.ownKeys(e):d.keys(e)).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function A(e){const t=e[i];return t?t.type_:x(e)?1:O(e)?2:k(e)?3:0}var w=(e,t,r=A(e))=>2===r?e.has(t):d[f].hasOwnProperty.call(e,t),R=(e,t,r=A(e))=>2===r?e.get(t):e[t],I=(e,t,r,n=A(e))=>{2===n?e.set(t,r):3===n?e.add(r):e[t]=r},x=Array.isArray,O=e=>e instanceof Map,k=e=>e instanceof Set,C=e=>"object"==typeof e,N=e=>"function"==typeof e,P=e=>"boolean"==typeof e,M=e=>e.copy_||e.base_,D=e=>e.modified_?e.copy_:e.base_;function q(e,t){if(O(e))return new Map(e);if(k(e))return new Set(e);if(x(e))return Array[f].slice.call(e);const r=v(e);if(!0===t||"class_only"===t&&!r){const t=d.getOwnPropertyDescriptors(e);delete t[i];let r=Reflect.ownKeys(t);for(let n=0;n<r.length;n++){const s=r[n],a=t[s];!1===a[m]&&(a[m]=!0,a[g]=!0),(a.get||a.set)&&(t[s]={[g]:!0,[m]:!0,[h]:a[h],[y]:e[s]})}return d.create(l(e),t)}{const t=l(e);if(null!==t&&r)return{...e};const n=d.create(t);return d.assign(n,e)}}function U(e,t=!1){return F(e)||T(e)||!S(e)||(A(e)>1&&d.defineProperties(e,{set:L,add:L,clear:L,delete:L}),d.freeze(e),t&&b(e,(e,t)=>{U(t,!0)},!1)),e}var L={[y]:function(){c(2)}};function F(e){return null===e||!C(e)||d.isFrozen(e)}var Q="MapSet",j="Patches",H="ArrayMethods",$={};function z(e){const t=$[e];return t||c(0,e),t}var K,G=e=>!!$[e],B=()=>K;function V(e,t){t&&(e.patchPlugin_=z(j),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function W(e){Y(e),e.drafts_.forEach(J),e.drafts_=null}function Y(e){e===K&&(K=e.parent_)}var X=e=>K={drafts_:[],parent_:K,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:G(Q)?z(Q):void 0,arrayMethodsPlugin_:G(H)?z(H):void 0};function J(e){const t=e[i];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function Z(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(void 0!==e&&e!==r){r[i].modified_&&(W(t),c(4)),S(e)&&(e=ee(t,e));const{patchPlugin_:n}=t;n&&n.generateReplacementPatches_(r[i].base_,e,t)}else e=ee(t,r);return function(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&U(t,r)}(t,e,!0),W(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==a?e:void 0}function ee(e,t){if(F(t))return t;const r=t[i];if(!r)return oe(t,e.handledSet_,e);if(!re(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:t}=r;if(t)for(;t.length>0;)t.pop()(e);ae(r,e)}return r.copy_}function te(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var re=(e,t)=>e.scope_===t,ne=[];function se(e,t,r,n){const s=M(e),a=e.type_;if(void 0!==n&&R(s,n,a)===t)return void I(s,n,r,a);if(!e.draftLocations_){const t=e.draftLocations_=new Map;b(s,(e,r)=>{if(T(r)){const n=t.get(r)||[];n.push(e),t.set(r,n)}})}const o=e.draftLocations_.get(t)??ne;for(const e of o)I(s,e,r,a)}function ae(e,t){if(e.modified_&&!e.finalized_&&(3===e.type_||1===e.type_&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:r}=t;if(r){const n=r.getPath(e);n&&r.generatePatches_(e,n,t)}te(e)}}function oe(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||T(e)||t.has(e)||!S(e)||F(e)||(t.add(e),b(e,(n,s)=>{if(T(s)){const t=s[i];if(re(t,r)){const r=D(t);I(e,n,r,e.type_),te(t)}}else S(s)&&oe(s,t,r)})),e}var ie={get(e,t){if(t===i)return e;let r=e.scope_.arrayMethodsPlugin_;const n=1===e.type_&&"string"==typeof t;if(n&&r?.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const s=M(e);if(!w(s,t,e.type_))return function(e,t,r){const n=de(t,r);return n?y in n?n[y]:n.get?.call(e.draft_):void 0}(e,s,t);const a=s[t];if(e.finalized_||!S(a))return a;if(n&&e.operationMethod&&r?.isMutatingArrayMethod(e.operationMethod)&&function(e){const t=+e;return Number.isInteger(t)&&String(t)===e}(t))return a;if(a===ce(e.base_,t)){pe(e);const r=1===e.type_?+t:t,n=fe(0,a,e,r);return e.copy_[r]=n}return a},has:(e,t)=>t in M(e),ownKeys:e=>Reflect.ownKeys(M(e)),set(e,t,r){const n=de(M(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const n=ce(M(e),t),o=n?.[i];if(o&&o.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(((s=r)===(a=n)?0!==s||1/s==1/a:s!=s&&a!=a)&&(void 0!==r||w(e.base_,t,e.type_)))return!0;pe(e),le(e)}var s,a;return e.copy_[t]===r&&(void 0!==r||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),function(e,t,r){const{scope_:n}=e;if(T(r)){const s=r[i];re(s,n)&&s.callbacks_.push(function(){pe(e);const n=D(s);se(e,r,n,t)})}else S(r)&&e.callbacks_.push(function(){const s=M(e);3===e.type_?s.has(r)&&oe(r,n.handledSet_,n):R(s,t,e.type_)===r&&n.drafts_.length>1&&!0===(e.assigned_.get(t)??!1)&&e.copy_&&oe(R(e.copy_,t,e.type_),n.handledSet_,n)})}(e,t,r)),!0},deleteProperty:(e,t)=>(pe(e),void 0!==ce(e.base_,t)||t in e.base_?(e.assigned_.set(t,!1),le(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const r=M(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{[m]:!0,[g]:1!==e.type_||"length"!==t,[h]:n[h],[y]:r[t]}:n},defineProperty(){c(11)},getPrototypeOf:e=>l(e.base_),setPrototypeOf(){c(12)}},ue={};for(let e in ie){let t=ie[e];ue[e]=function(){const e=arguments;return e[0]=e[0][0],t.apply(this,e)}}function ce(e,t){const r=e[i];return(r?M(r):e)[t]}function de(e,t){if(!(t in e))return;let r=l(e);for(;r;){const e=Object.getOwnPropertyDescriptor(r,t);if(e)return e;r=l(r)}}function le(e){e.modified_||(e.modified_=!0,e.parent_&&le(e.parent_))}function pe(e){e.copy_||(e.assigned_=new Map,e.copy_=q(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function fe(e,t,r,n){const[s,a]=O(t)?z(Q).proxyMap_(t,r):k(t)?z(Q).proxySet_(t,r):function(e,t){const r=x(e),n={type_:r?1:0,scope_:t?t.scope_:B(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let s=n,a=ie;r&&(s=[n],a=ue);const{revoke:o,proxy:i}=Proxy.revocable(s,a);return n.draft_=i,n.revoke_=o,[i,n]}(t,r);return(r?.scope_??B()).drafts_.push(s),a.callbacks_=r?.callbacks_??[],a.key_=n,r&&void 0!==n?function(e,t,r){e.callbacks_.push(function(n){const s=t;if(!s||!re(s,n))return;n.mapSetPlugin_?.fixSetContents(s);const a=D(s);se(e,s.draft_??s,a,r),ae(s,n)})}(r,a,n):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);const{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),s}function ge(e){return T(e)||c(10,e),he(e)}function he(e){if(!S(e)||F(e))return e;const t=e[i];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=q(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=q(e,!0);return b(r,(e,t)=>{I(r,e,he(t))},n),t&&(t.finalized_=!1),r}ue.deleteProperty=function(e,t){return"production"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&c(13),ue.set.call(this,e,t,void 0)},ue.set=function(e,t,r){return"production"!==process.env.NODE_ENV&&"length"!==t&&isNaN(parseInt(t))&&c(14),ie.set.call(this,e[0],t,r,e[0])};var me=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,r)=>{if(N(e)&&!N(t)){const r=t;t=e;const n=this;return function(e=r,...s){return n.produce(e,e=>t.call(this,e,...s))}}let n;if(N(t)||c(6),void 0===r||N(r)||c(7),S(e)){const s=X(this),a=fe(0,e,void 0);let o=!0;try{n=t(a),o=!1}finally{o?W(s):Y(s)}return V(s,r),Z(n,s)}if(!e||!C(e)){if(n=t(e),void 0===n&&(n=e),n===a&&(n=void 0),this.autoFreeze_&&U(n,!0),r){const t=[],s=[];z(j).generateReplacementPatches_(e,n,{patches_:t,inversePatches_:s}),r(t,s)}return n}c(1,e)},this.produceWithPatches=(e,t)=>{if(N(e))return(t,...r)=>this.produceWithPatches(t,t=>e(t,...r));let r,n;return[this.produce(e,t,(e,t)=>{r=e,n=t}),r,n]},P(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),P(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),P(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){S(e)||c(8),T(e)&&(e=ge(e));const t=X(this),r=fe(0,e,void 0);return r[i].isManual_=!0,Y(t),r}finishDraft(e,t){const r=e&&e[i];r&&r.isManual_||c(9);const{scope_:n}=r;return V(n,t),Z(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const n=t[r];if(0===n.path.length&&"replace"===n.op){e=n.value;break}}r>-1&&(t=t.slice(r+1));const n=z(j).applyPatches_;return T(e)?n(e,t):this.produce(e,e=>n(e,t))}},ye=me.produceWithPatches.bind(me),Te=me.applyPatches.bind(me),Se=class extends Error{issues;constructor(e){super(e[0].message),this.name="SchemaError",this.issues=e}},_e=(e,t,r)=>{if(1===t.length&&t[0]===r){let t=!1;try{const r={};e(r)===r&&(t=!0)}catch{}if(t){let e;try{throw new Error}catch(t){({stack:e}=t)}console.warn("The result function returned its own inputs without modification. e.g\n`createSelector([state => state.todos], todos => todos)`\nThis could lead to inefficient memoization and unnecessary re-renders.\nEnsure transformation logic is in the result function, and extraction logic is in the input selectors.",{stack:e})}}},Ee=(e,t,r)=>{const{memoize:n,memoizeOptions:s}=t,{inputSelectorResults:a,inputSelectorResultsCopy:o}=e,i=n(()=>({}),...s);if(i.apply(null,a)!==i.apply(null,o)){let e;try{throw new Error}catch(t){({stack:e}=t)}console.warn("An input selector returned a different result when passed same arguments.\nThis means your output selector will likely run more frequently than intended.\nAvoid returning a new reference inside your input selector, e.g.\n`createSelector([state => state.todos.map(todo => todo.id)], todoIds => todoIds.length)`",{arguments:r,firstInputs:a,secondInputs:o,stack:e})}},ve={inputStabilityCheck:"once",identityFunctionCheck:"once"},be=e=>Array.isArray(e)?e:[e];function Ae(e,t){const r=[],{length:n}=e;for(let s=0;s<n;s++)r.push(e[s].apply(null,t));return r}var we="undefined"!=typeof WeakRef?WeakRef:class{constructor(e){this.value=e}deref(){return this.value}};function Re(){return{s:0,v:void 0,o:null,p:null}}function Ie(e,t={}){let r={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:n}=t;let s,a=0;function o(){let t=r;const{length:o}=arguments;for(let e=0,r=o;e<r;e++){const r=arguments[e];if("function"==typeof r||"object"==typeof r&&null!==r){let e=t.o;null===e&&(t.o=e=new WeakMap);const n=e.get(r);void 0===n?(t=Re(),e.set(r,t)):t=n}else{let e=t.p;null===e&&(t.p=e=new Map);const n=e.get(r);void 0===n?(t=Re(),e.set(r,t)):t=n}}const i=t;let u;if(1===t.s)u=t.v;else if(u=e.apply(null,arguments),a++,n){const e=s?.deref?.()??s;null!=e&&n(e,u)&&(u=e,0!==a&&a--),s="object"==typeof u&&null!==u||"function"==typeof u?new we(u):u}return i.s=1,i.v=u,u}return o.clearCache=()=>{r={s:0,v:void 0,o:null,p:null},o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function xe(e,...t){const r="function"==typeof e?{memoize:e,memoizeOptions:t}:e,n=(...e)=>{let t,n=0,s=0,a={},o=e.pop();"object"==typeof o&&(a=o,o=e.pop()),function(e,t="expected a function, instead received "+typeof e){if("function"!=typeof e)throw new TypeError(t)}(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);const i={...r,...a},{memoize:u,memoizeOptions:c=[],argsMemoize:d=Ie,argsMemoizeOptions:l=[],devModeChecks:p={}}=i,f=be(c),g=be(l),h=function(e){const t=Array.isArray(e[0])?e[0]:e;return function(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(e=>"function"==typeof e)){const r=e.map(e=>"function"==typeof e?`function ${e.name||"unnamed"}()`:typeof e).join(", ");throw new TypeError(`${t}[${r}]`)}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}(e),m=u(function(){return n++,o.apply(null,arguments)},...f);let y=!0;const T=d(function(){s++;const e=Ae(h,arguments);if(t=m.apply(null,e),"production"!==process.env.NODE_ENV){const{identityFunctionCheck:r,inputStabilityCheck:n}=((e,t)=>{const{identityFunctionCheck:r,inputStabilityCheck:n}={...ve,...t};return{identityFunctionCheck:{shouldRun:"always"===r||"once"===r&&e,run:_e},inputStabilityCheck:{shouldRun:"always"===n||"once"===n&&e,run:Ee}}})(y,p);if(r.shouldRun&&r.run(o,e,t),n.shouldRun){const t=Ae(h,arguments);n.run({inputSelectorResults:e,inputSelectorResultsCopy:t},{memoize:u,memoizeOptions:f},arguments)}y&&(y=!1)}return t},...g);return Object.assign(T,{resultFunc:o,memoizedResultFunc:m,dependencies:h,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>t,recomputations:()=>n,resetRecomputations:()=>{n=0},memoize:u,argsMemoize:d})};return Object.assign(n,{withTypes:()=>n}),n}var Oe=xe(Ie),ke=Object.assign((e,t=Oe)=>{!function(e,t="expected an object, instead received "+typeof e){if("object"!=typeof e)throw new TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);const r=Object.keys(e);return t(r.map(t=>e[t]),(...e)=>e.reduce((e,t,n)=>(e[r[n]]=t,e),{}))},{withTypes:()=>ke}),Ce=(e=>(e.uninitialized="uninitialized",e.pending="pending",e.fulfilled="fulfilled",e.rejected="rejected",e))(Ce||{}),Ne="uninitialized",Pe="pending",Me="fulfilled",De="rejected";function qe(e){return{status:e,isUninitialized:e===Ne,isLoading:e===Pe,isSuccess:e===Me,isError:e===De}}var Ue=e.isPlainObject;function Le(e,t){if(e===t||!(Ue(e)&&Ue(t)||Array.isArray(e)&&Array.isArray(t)))return t;const r=Object.keys(t),n=Object.keys(e);let s=r.length===n.length;const a=Array.isArray(t)?[]:{};for(const n of r)a[n]=Le(e[n],t[n]),s&&(s=e[n]===a[n]);return s?e:a}function Fe(e,t,r){return e.reduce((e,n,s)=>(t(n,s)&&e.push(r(n,s)),e),[]).flat()}function Qe(e){return null!=e}function je(e){return[...e?.values()??[]].filter(Qe)}function He(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}var $e=()=>new Map,ze=e=>{const t=new AbortController;return setTimeout(()=>{const e="signal timed out",r="TimeoutError";t.abort("undefined"!=typeof DOMException?new DOMException(e,r):Object.assign(new Error(e),{name:r}))},e),t.signal},Ke=(...e)=>{for(const t of e)if(t.aborted)return AbortSignal.abort(t.reason);const t=new AbortController;for(const r of e)r.addEventListener("abort",()=>t.abort(r.reason),{signal:t.signal,once:!0});return t.signal},Ge=(...e)=>fetch(...e),Be=e=>e.status>=200&&e.status<=299,Ve=e=>/ion\/(vnd\.api\+)?json/.test(e.get("content-type")||"");function We(t){if(!e.isPlainObject(t))return t;const r={...t};for(const[e,t]of Object.entries(r))void 0===t&&delete r[e];return r}var Ye=class{constructor(e,t=void 0){this.value=e,this.meta=t}},Xe="__rtkq/",Je="online",Ze="offline",et="focus",tt="focused",rt="visibilitychange",nt=e.createAction(`${Xe}${tt}`),st=e.createAction(`${Xe}un${tt}`),at=e.createAction(`${Xe}${Je}`),ot=e.createAction(`${Xe}${Ze}`),it=!1,ut="query",ct="mutation",dt="infinitequery";function lt(e){return e.type===ut}function pt(e){return e.type===dt}function ft(e){return lt(e)||pt(e)}function gt(e,t,r,n,s,a){const o="function"==typeof e?e(t,r,n,s):e;return o?Fe(o,Qe,e=>a(ht(e))):[]}function ht(e){return"string"==typeof e?{type:e}:e}var mt=(e,t)=>e.endpointDefinitions[t],yt=Symbol("forceQueryFn"),Tt=e=>"function"==typeof e[yt],St=class extends Se{constructor(e,t,r,n){super(e),this.value=t,this.schemaName=r,this._bqMeta=n}},_t=(e,t)=>Array.isArray(e)?e.includes(t):!!e;async function Et(e,t,r,n){const s=await e["~standard"].validate(t);if(s.issues)throw new St(s.issues,t,r,n);return s.value}function vt(e){return e}var bt=(t={})=>({...t,[e.SHOULD_AUTOBATCH]:!0});function At(e,{pages:t,pageParams:r},n){const s=t.length-1;return e.getNextPageParam(t[s],t,r[s],r,n)}function wt(e,{pages:t,pageParams:r},n){return e.getPreviousPageParam?.(t[0],t,r[0],r,n)}function Rt(t,r,n,s){return gt(n[t.meta.arg.endpointName][r],e.isFulfilled(t)?t.payload:void 0,e.isRejectedWithValue(t)?t.payload:void 0,t.meta.arg.originalArgs,"baseQueryMeta"in t.meta?t.meta.baseQueryMeta:void 0,s)}function It(e){return T(e)?ge(e):e}function xt(e,t,r){const n=e[t];n&&r(n)}function Ot(e){return("arg"in e?e.arg.fixedCacheKey:e.fixedCacheKey)??e.requestId}function kt(e,t,r){const n=e[Ot(t)];n&&r(n)}var Ct={},Nt=Symbol.for("RTKQ/skipToken"),Pt={status:Ne},Mt=e.createNextState(Pt,()=>{}),Dt=e.createNextState(Pt,()=>{}),qt=WeakMap?new WeakMap:void 0,Ut=({endpointName:t,queryArgs:r})=>{let n="";const s=qt?.get(r);if("string"==typeof s)n=s;else{const t=JSON.stringify(r,(t,r)=>(r="bigint"==typeof r?{$bigint:r.toString()}:r,r=e.isPlainObject(r)?Object.keys(r).sort().reduce((e,t)=>(e[t]=r[t],e),{}):r));e.isPlainObject(r)&&qt?.set(r,t),n=t}return`${t}(${n})`};function Lt(...t){return function(r){const n=Ie(e=>r.extractRehydrationInfo?.(e,{reducerPath:r.reducerPath??"api"})),s={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...r,extractRehydrationInfo:n,serializeQueryArgs(e){let t=Ut;if("serializeQueryArgs"in e.endpointDefinition){const r=e.endpointDefinition.serializeQueryArgs;t=e=>{const t=r(e);return"string"==typeof t?t:Ut({...e,queryArgs:t})}}else r.serializeQueryArgs&&(t=r.serializeQueryArgs);return t(e)},tagTypes:[...r.tagTypes||[]]},a={endpointDefinitions:{},batch(e){e()},apiUid:e.nanoid(),extractRehydrationInfo:n,hasRehydrationInfo:Ie(e=>null!=n(e))},o={injectEndpoints:function(t){const r=t.endpoints({query:e=>({...e,type:ut}),mutation:e=>({...e,type:ct}),infiniteQuery:e=>({...e,type:dt})});for(const[n,s]of Object.entries(r))if(!0!==t.overrideExisting&&n in a.endpointDefinitions){if("throw"===t.overrideExisting)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(39):`called \`injectEndpoints\` to override already-existing endpointName ${n} without specifying \`overrideExisting: true\``);"undefined"!=typeof process&&"development"===process.env.NODE_ENV&&console.error(`called \`injectEndpoints\` to override already-existing endpointName ${n} without specifying \`overrideExisting: true\``)}else{if("undefined"!=typeof process&&"development"===process.env.NODE_ENV&&pt(s)){const{infiniteQueryOptions:t}=s,{maxPages:r,getPreviousPageParam:a}=t;if("number"==typeof r){if(r<1)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(40):`maxPages for endpoint '${n}' must be a number greater than 0`);if("function"!=typeof a)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(41):`getPreviousPageParam for endpoint '${n}' must be a function if maxPages is used`)}}a.endpointDefinitions[n]=s;for(const e of i)e.injectEndpoint(n,s)}return o},enhanceEndpoints({addTagTypes:e,endpoints:t}){if(e)for(const t of e)s.tagTypes.includes(t)||s.tagTypes.push(t);if(t)for(const[e,r]of Object.entries(t))"function"==typeof r?r(mt(a,e)):Object.assign(mt(a,e)||{},r);return o}},i=t.map(e=>e.init(o,s,a));return o.injectEndpoints({endpoints:r.endpoints})}}function Ft(e,...t){return Object.assign(e,...t)}var Qt=({api:t,queryThunk:r,context:n,internalState:s,selectors:{selectQueryEntry:a,selectConfig:o},getRunningQueryThunk:i})=>{const{removeQueryResult:u,unsubscribeQueryResult:c,cacheEntriesUpserted:d}=t.internalActions,l=e.isAnyOf(c.match,r.fulfilled,r.rejected,d.match);function p(e){const t=s.currentSubscriptions.get(e);return!!t&&t.size>0}const f={};function g(e){for(const t of e.values())t?.abort?.()}function h(e,t,r){const n=t.getState();for(const s of e){const e=a(n,s);e?.endpointName&&m(s,e.endpointName,t,r)}}function m(e,t,r,s){const o=mt(n,t),c=o?.keepUnusedDataFor??s.keepUnusedDataFor;if(c===1/0)return;const d=Math.max(0,Math.min(c,2147482.647));if(!p(e)){const t=f[e];t&&clearTimeout(t),f[e]=setTimeout(()=>{if(!p(e)){const t=a(r.getState(),e);if(t?.endpointName){const e=r.dispatch(i(t.endpointName,t.originalArgs));e?.abort()}r.dispatch(u({queryCacheKey:e}))}delete f[e]},1e3*d)}}return(e,r)=>{const a=r.getState(),i=o(a);if(l(e)){let t;if(d.match(e))t=e.payload.map(e=>e.queryDescription.queryCacheKey);else{const{queryCacheKey:r}=c.match(e)?e.payload:e.meta.arg;t=[r]}h(t,r,i)}if(t.util.resetApiState.match(e)){for(const[e,t]of Object.entries(f))t&&clearTimeout(t),delete f[e];g(s.runningQueries),g(s.runningMutations)}if(n.hasRehydrationInfo(e)){const{queries:t}=n.extractRehydrationInfo(e);h(Object.keys(t),r,i)}}},jt=new Error("Promise never resolved before cacheEntryRemoved."),Ht=({api:t,reducerPath:r,context:n,queryThunk:s,mutationThunk:a,selectors:{selectQueryEntry:o}})=>{const i=e.isAsyncThunkAction(s),u=e.isAsyncThunkAction(a),c=e.isFulfilled(s,a),d={},{removeQueryResult:l,removeMutationResult:p,cacheEntriesUpserted:f}=t.internalActions;function g(e,t,r){const n=d[e];n?.valueResolved&&(n.valueResolved({data:t,meta:r}),delete n.valueResolved)}function h(e){const t=d[e];t&&(delete d[e],t.cacheEntryRemoved())}function m(e){const{arg:t,requestId:r}=e.meta,{endpointName:n,originalArgs:s}=t;return[n,s,r]}function y(e,r,s,a,o){const i=mt(n,e),u=i?.onCacheEntryAdded;if(!u)return;const c={},l=new Promise(e=>{c.cacheEntryRemoved=e}),p=Promise.race([new Promise(e=>{c.valueResolved=e}),l.then(()=>{throw jt})]);p.catch(()=>{}),d[s]=c;const f=t.endpoints[e].select(ft(i)?r:s),g=a.dispatch((e,t,r)=>r),h={...a,getCacheEntry:()=>f(a.getState()),requestId:o,extra:g,updateCachedData:ft(i)?n=>a.dispatch(t.util.updateQueryData(e,r,n)):void 0,cacheDataLoaded:p,cacheEntryRemoved:l},m=u(r,h);Promise.resolve(m).catch(e=>{if(e!==jt)throw e})}return(e,n,T)=>{const S=function(e){return i(e)?e.meta.arg.queryCacheKey:u(e)?e.meta.arg.fixedCacheKey??e.meta.requestId:l.match(e)?e.payload.queryCacheKey:p.match(e)?Ot(e.payload):""}(e);function _(e,t,r,s){const a=o(T,t),i=o(n.getState(),t);!a&&i&&y(e,s,t,n,r)}if(s.pending.match(e)){const[t,r,n]=m(e);_(t,S,n,r)}else if(f.match(e))for(const{queryDescription:t,value:r}of e.payload){const{endpointName:n,originalArgs:s,queryCacheKey:a}=t;_(n,a,e.meta.requestId,s),g(a,r,{})}else if(a.pending.match(e)){if(n.getState()[r].mutations[S]){const[t,r,s]=m(e);y(t,r,S,n,s)}}else if(c(e))g(S,e.payload,e.meta.baseQueryMeta);else if(l.match(e)||p.match(e))h(S);else if(t.util.resetApiState.match(e))for(const e of Object.keys(d))h(e)}},$t=({api:e,context:{apiUid:t},reducerPath:r})=>(n,s)=>{e.util.resetApiState.match(n)&&s.dispatch(e.internalActions.middlewareRegistered(t)),"undefined"!=typeof process&&"development"===process.env.NODE_ENV&&e.internalActions.middlewareRegistered.match(n)&&n.payload===t&&"conflict"===s.getState()[r]?.config?.middlewareRegistered&&console.warn(`There is a mismatch between slice and middleware for the reducerPath "${r}".\nYou can only have one api per reducer path, this will lead to crashes in various situations!${"api"===r?"\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!":""}`)},zt=({reducerPath:t,context:r,context:{endpointDefinitions:n},mutationThunk:s,queryThunk:a,api:o,assertTagType:i,refetchQuery:u,internalState:c})=>{const{removeQueryResult:d}=o.internalActions,l=e.isAnyOf(e.isFulfilled(s),e.isRejectedWithValue(s)),p=e.isAnyOf(e.isFulfilled(a,s),e.isRejected(a,s));let f=[],g=0;function h(e,n){const s=n.getState(),a=s[t];if(f.push(...e),"delayed"===a.config.invalidationBehavior&&g>0)return;const i=f;if(f=[],0===i.length)return;const l=o.util.selectInvalidatedBy(s,i);r.batch(()=>{const e=Array.from(l.values());for(const{queryCacheKey:t}of e){const e=a.queries[t],r=He(c.currentSubscriptions,t,$e);e&&(0===r.size?n.dispatch(d({queryCacheKey:t})):e.status!==Ne&&n.dispatch(u(e)))}})}return(e,t)=>{(a.pending.match(e)||s.pending.match(e))&&g++,p(e)&&(g=Math.max(0,g-1)),l(e)?h(Rt(e,"invalidatesTags",n,i),t):p(e)?h([],t):o.util.invalidateTags.match(e)&&h(gt(e.payload,void 0,void 0,void 0,void 0,i),t)}},Kt=({reducerPath:e,queryThunk:t,api:r,refetchQuery:n,internalState:s})=>{const{currentPolls:a,currentSubscriptions:o}=s,i=new Set;let u=null;function c(e,t){i.add(e),u||(u=setTimeout(()=>{for(const e of i)l({queryCacheKey:e},t);i.clear(),u=null},0))}function d({queryCacheKey:t},r){const s=r.getState()[e],i=s.queries[t],u=o.get(t);if(!i||i.status===Ne)return;const{lowestPollingInterval:c,skipPollingIfUnfocused:l}=f(u);if(!Number.isFinite(c))return;const p=a.get(t);p?.timeout&&(clearTimeout(p.timeout),p.timeout=void 0);const g=Date.now()+c;a.set(t,{nextPollTimestamp:g,pollingInterval:c,timeout:setTimeout(()=>{!s.config.focused&&l||r.dispatch(n(i)),d({queryCacheKey:t},r)},c)})}function l({queryCacheKey:t},r){const n=r.getState()[e].queries[t],s=o.get(t);if(!n||n.status===Ne)return;const{lowestPollingInterval:i}=f(s);if("test"===process.env.NODE_ENV){const e=a.pollUpdateCounters??={};e[t]??=0,e[t]++}if(!Number.isFinite(i))return void p(t);const u=a.get(t),c=Date.now()+i;(!u||c<u.nextPollTimestamp)&&d({queryCacheKey:t},r)}function p(e){const t=a.get(e);t?.timeout&&clearTimeout(t.timeout),a.delete(e)}function f(e=new Map){let t=!1,r=Number.POSITIVE_INFINITY;for(const n of e.values())n.pollingInterval&&(r=Math.min(n.pollingInterval,r),t=n.skipPollingIfUnfocused||t);return{lowestPollingInterval:r,skipPollingIfUnfocused:t}}return(e,n)=>{(r.internalActions.updateSubscriptionOptions.match(e)||r.internalActions.unsubscribeQueryResult.match(e))&&c(e.payload.queryCacheKey,n),(t.pending.match(e)||t.rejected.match(e)&&e.meta.condition)&&c(e.meta.arg.queryCacheKey,n),(t.fulfilled.match(e)||t.rejected.match(e)&&!e.meta.condition)&&d(e.meta.arg,n),r.util.resetApiState.match(e)&&(function(){for(const e of a.keys())p(e)}(),u&&(clearTimeout(u),u=null),i.clear())}},Gt=({api:t,context:r,queryThunk:n,mutationThunk:s})=>{const a=e.isPending(n,s),o=e.isRejected(n,s),i=e.isFulfilled(n,s),u={};return(e,n)=>{if(a(e)){const{requestId:s,arg:{endpointName:a,originalArgs:o}}=e.meta,i=mt(r,a),c=i?.onQueryStarted;if(c){const e={},r=new Promise((t,r)=>{e.resolve=t,e.reject=r});r.catch(()=>{}),u[s]=e;const d=t.endpoints[a].select(ft(i)?o:s),l=n.dispatch((e,t,r)=>r),p={...n,getCacheEntry:()=>d(n.getState()),requestId:s,extra:l,updateCachedData:ft(i)?e=>n.dispatch(t.util.updateQueryData(a,o,e)):void 0,queryFulfilled:r};c(o,p)}}else if(i(e)){const{requestId:t,baseQueryMeta:r}=e.meta;u[t]?.resolve({data:e.payload,meta:r}),delete u[t]}else if(o(e)){const{requestId:t,rejectedWithValue:r,baseQueryMeta:n}=e.meta;u[t]?.reject({error:e.payload??e.error,isUnhandledError:!r,meta:n}),delete u[t]}}};var Bt=Symbol(),Vt=({createSelector:t=e.createSelector}={})=>({name:Bt,init(r,{baseQuery:n,tagTypes:s,reducerPath:d,serializeQueryArgs:g,keepUnusedDataFor:h,refetchOnMountOrArgChange:m,refetchOnFocus:y,refetchOnReconnect:_,invalidationBehavior:E,onSchemaFailure:v,catchSchemaFailure:I,skipSchemaValidation:P},M){!function(){"production"!==process.env.NODE_ENV&&u.push('Sets cannot have "replace" patches.',function(e){return"Unsupported patch operation: "+e},function(e){return"Cannot apply patch, path doesn't resolve: "+e},"Patching reserved attributes like __proto__, prototype and constructor is not allowed");const e="replace",t="add",r="remove";function n(e){if(!S(e))return e;if(x(e))return e.map(n);if(O(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,n(t)]));if(k(e))return new Set(Array.from(e).map(n));const t=Object.create(l(e));for(const r in e)t[r]=n(e[r]);return w(e,o)&&(t[o]=e[o]),t}function s(e){return T(e)?n(e):e}var d;$[d=j]||($[d]={applyPatches_:function(s,a){return a.forEach(a=>{const{path:o,op:i}=a;let u=s;for(let e=0;e<o.length-1;e++){const t=A(u);let r=o[e];"string"!=typeof r&&"number"!=typeof r&&(r=""+r),0!==t&&1!==t||"__proto__"!==r&&r!==p||c(19),N(u)&&r===f&&c(19),u=R(u,r),C(u)||c(18,o.join("/"))}const d=A(u),l=n(a.value),g=o[o.length-1];switch(i){case e:switch(d){case 2:return u.set(g,l);case 3:c(16);default:return u[g]=l}case t:switch(d){case 1:return"-"===g?u.push(l):u.splice(g,0,l);case 2:return u.set(g,l);case 3:return u.add(l);default:return u[g]=l}case r:switch(d){case 1:return u.splice(g,1);case 2:return u.delete(g);case 3:return u.delete(a.value);default:return delete u[g]}default:c(17,i)}}),s},generatePatches_:function(n,a,o){if(n.scope_.processedForPatches_.has(n))return;n.scope_.processedForPatches_.add(n);const{patches_:u,inversePatches_:c}=o;switch(n.type_){case 0:case 2:return function(n,a,o,i){const{base_:u,copy_:c,type_:d}=n;b(n.assigned_,(n,l)=>{const p=R(u,n,d),f=R(c,n,d),g=l?w(u,n)?e:t:r;if(p===f&&g===e)return;const h=a.concat(n);o.push(g===r?{op:g,path:h}:{op:g,path:h,value:s(f)}),i.push(g===t?{op:r,path:h}:g===r?{op:t,path:h,value:s(p)}:{op:e,path:h,value:s(p)})})}(n,a,u,c);case 1:return function(n,a,o,u){let{base_:c,assigned_:d}=n,l=n.copy_;l.length<c.length&&([c,l]=[l,c],[o,u]=[u,o]);const p=!0===n.allIndicesReassigned_;for(let t=0;t<c.length;t++){const r=l[t],n=c[t];if((p||d?.get(t.toString()))&&r!==n){const c=r?.[i];if(c&&c.modified_)continue;const d=a.concat([t]);o.push({op:e,path:d,value:s(r)}),u.push({op:e,path:d,value:s(n)})}}for(let e=c.length;e<l.length;e++){const r=a.concat([e]);o.push({op:t,path:r,value:s(l[e])})}for(let e=l.length-1;c.length<=e;--e){const t=a.concat([e]);u.push({op:r,path:t})}}(n,a,u,c);case 3:return function(e,n,s,a){let{base_:o,copy_:i}=e,u=0;o.forEach(e=>{if(!i.has(e)){const o=n.concat([u]);s.push({op:r,path:o,value:e}),a.unshift({op:t,path:o,value:e})}u++}),u=0,i.forEach(e=>{if(!o.has(e)){const o=n.concat([u]);s.push({op:t,path:o,value:e}),a.unshift({op:r,path:o,value:e})}u++})}(n,a,u,c)}},generateReplacementPatches_:function(t,r,n){const{patches_:s,inversePatches_:o}=n;s.push({op:e,path:[],value:r===a?void 0:r}),o.push({op:e,path:[],value:t})},getPath:function e(t,r=[]){if(void 0!==t.key_){const e=t.parent_.copy_??t.parent_.base_,s=(n=R(e,t.key_),C(n)?n?.[i]:null),a=R(e,t.key_);if(void 0===a)return null;if(a!==t.draft_&&a!==t.base_&&a!==t.copy_)return null;if(null!=s&&s.base_!==t.base_)return null;const o=3===t.parent_.type_;let u;if(u=o?Array.from(t.parent_.drafts_.keys()).indexOf(t.key_):t.key_,!(o&&e.size>u||w(e,u)))return null;r.push(u)}var n;if(t.parent_)return e(t.parent_,r);r.reverse();try{!function(e,t){let r=e;for(let e=0;e<t.length-1;e++)if(r=R(r,t[e]),!C(r)||null===r)throw new Error(`Cannot resolve path at '${t.join("/")}'`)}(t.copy_,r)}catch(e){return null}return r}})}();const D=e=>("undefined"!=typeof process&&"development"===process.env.NODE_ENV&&(s.includes(e.type)||console.error(`Tag type '${e.type}' was used, but not specified in \`tagTypes\`!`)),e);Object.assign(r,{reducerPath:d,endpoints:{},internalActions:{onOnline:at,onOffline:ot,onFocus:nt,onFocusLost:st},util:{}});const q=function({serializeQueryArgs:e,reducerPath:t,createSelector:r}){const n=e=>Mt,s=e=>Dt;return{buildQuerySelector:function(e,t){return c(e,t,a)},buildInfiniteQuerySelector:function(e,t){const{infiniteQueryOptions:r}=t;return c(e,t,function(e){const t={...e,...qe(e.status)},{isLoading:n,isError:s,direction:a}=t,o="forward"===a,i="backward"===a;return{...t,hasNextPage:(u=r,c=t.data,l=t.originalArgs,!!c&&null!=At(u,c,l)),hasPreviousPage:d(r,t.data,t.originalArgs),isFetchingNextPage:n&&o,isFetchingPreviousPage:n&&i,isFetchNextPageError:s&&o,isFetchPreviousPageError:s&&i};var u,c,l})},buildMutationSelector:function(){return e=>{let t;return t="object"==typeof e?Ot(e)??Nt:e,r(t===Nt?s:e=>o(e)?.mutations?.[t]??Dt,a)}},selectInvalidatedBy:function(e,r){const n=e[t],s=new Set,a=Fe(r,Qe,ht);for(const e of a){const t=n.provided.tags[e.type];if(!t)continue;let r=(void 0!==e.id?t[e.id]:Object.values(t).flat())??[];for(const e of r)s.add(e)}return Array.from(s.values()).flatMap(e=>{const t=n.queries[e];return t?{queryCacheKey:e,endpointName:t.endpointName,originalArgs:t.originalArgs}:[]})},selectCachedArgsForQuery:function(e,t){return Fe(Object.values(i(e)),e=>e?.endpointName===t&&e.status!==Ne,e=>e.originalArgs)},selectApiState:o,selectQueries:i,selectMutations:function(e){return o(e)?.mutations},selectQueryEntry:u,selectConfig:function(e){return o(e)?.config}};function a(e){return{...e,...qe(e.status)}}function o(e){const r=e[t];if("production"!==process.env.NODE_ENV&&!r){if(o.triggered)return r;o.triggered=!0,console.error(`Error: No data found at \`state.${t}\`. Did you forget to add the reducer to the store?`)}return r}function i(e){return o(e)?.queries}function u(e,t){return i(e)?.[t]}function c(t,s,a){return o=>{if(o===Nt)return r(n,a);const i=e({queryArgs:o,endpointDefinition:s,endpointName:t});return r(e=>u(e,i)??Mt,a)}}function d(e,t,r){return!(!t||!e.getPreviousPageParam)&&null!=wt(e,t,r)}}({serializeQueryArgs:g,reducerPath:d,createSelector:t}),{selectInvalidatedBy:U,selectCachedArgsForQuery:L,buildQuerySelector:F,buildInfiniteQuerySelector:Q,buildMutationSelector:H}=q;Ft(r.util,{selectInvalidatedBy:U,selectCachedArgsForQuery:L});const{queryThunk:z,infiniteQueryThunk:K,mutationThunk:G,patchQueryData:B,updateQueryData:V,upsertQueryData:W,prefetch:Y,buildMatchThunkActions:X}=function({reducerPath:t,baseQuery:r,context:{endpointDefinitions:n},serializeQueryArgs:s,api:a,assertTagType:o,selectors:i,onSchemaFailure:u,catchSchemaFailure:c,skipSchemaValidation:d}){function l(e,t,r=0){const n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}function p(e,t,r=0){const n=[...e,t];return r&&n.length>r?n.slice(1):n}const f=(e,t)=>e.query&&e[t]?e[t]:vt,g=async(e,{signal:t,abort:s,rejectWithValue:a,fulfillWithValue:o,dispatch:g,getState:m,extra:y})=>{const T=n[e.endpointName],{metaSchema:S,skipSchemaValidation:_=d}=T,E=e.type===ut;try{let v=vt;const b={signal:t,abort:s,dispatch:g,getState:m,extra:y,endpoint:e.endpointName,type:e.type,forced:E?h(e,m()):void 0,queryCacheKey:E?e.queryCacheKey:void 0},A=E?e[yt]:void 0;let w;const R=async(t,r,n,s)=>{if(null==r&&t.pages.length)return Promise.resolve({data:t});const a={queryArg:e.originalArgs,pageParam:r},o=await I(a),i=s?l:p;return{data:{pages:i(t.pages,o.data,n),pageParams:i(t.pageParams,r,n)},meta:o.meta}};async function I(t){let n;const{extraOptions:s,argSchema:a,rawResponseSchema:o,responseSchema:i}=T;if(a&&!_t(_,"arg")&&(t=await Et(a,t,"argSchema",{})),A?n=A():T.query?(v=f(T,"transformResponse"),n=await r(T.query(t),b,s)):n=await T.queryFn(t,b,s,e=>r(e,b,s)),"undefined"!=typeof process&&"development"===process.env.NODE_ENV){const t=T.query?"`baseQuery`":"`queryFn`";let r;if(n){if("object"!=typeof n)r=`${t} did not return an object.`;else if(n.error&&n.data)r=`${t} returned an object containing both \`error\` and \`result\`.`;else if(void 0===n.error&&void 0===n.data)r=`${t} returned an object containing neither a valid \`error\` and \`result\`. At least one of them should not be \`undefined\``;else for(const e of Object.keys(n))if("error"!==e&&"data"!==e&&"meta"!==e){r=`The object returned by ${t} has the unknown property ${e}.`;break}}else r=`${t} did not return anything.`;r&&console.error(`Error encountered handling the endpoint ${e.endpointName}.\n ${r}\n It needs to return an object with either the shape \`{ data: <value> }\` or \`{ error: <value> }\` that may contain an optional \`meta\` property.\n Object returned was:`,n)}if(n.error)throw new Ye(n.error,n.meta);let{data:u}=n;o&&!_t(_,"rawResponse")&&(u=await Et(o,n.data,"rawResponseSchema",n.meta));let c=await v(u,n.meta,t);return i&&!_t(_,"response")&&(c=await Et(i,c,"responseSchema",n.meta)),{...n,data:c}}if(E&&"infiniteQueryOptions"in T){const{infiniteQueryOptions:x}=T,{maxPages:O=1/0}=x,k=e.refetchCachedPages??x.refetchCachedPages??!0;let C;const N={pages:[],pageParams:[]},P=i.selectQueryEntry(m(),e.queryCacheKey)?.data,M=h(e,m())&&!e.direction||!P?N:P;if("direction"in e&&e.direction&&M.pages.length){const D="backward"===e.direction,q=(D?wt:At)(x,M,e.originalArgs);C=await R(M,q,O,D)}else{const{initialPageParam:U=x.initialPageParam}=e,L=P?.pageParams??[],F=L[0]??U,Q=L.length;if(C=await R(M,F,O),A&&(C={data:C.data.pages[0]}),k)for(let j=1;j<Q;j++){const H=At(x,C.data,e.originalArgs);C=await R(C.data,H,O)}}w=C}else w=await I(e.originalArgs);return S&&!_t(_,"meta")&&w.meta&&(w.meta=await Et(S,w.meta,"metaSchema",w.meta)),o(w.data,bt({fulfilledTimeStamp:Date.now(),baseQueryMeta:w.meta}))}catch($){let z=$;if(z instanceof Ye){let K=f(T,"transformErrorResponse");const{rawErrorResponseSchema:G,errorResponseSchema:B}=T;let{value:V,meta:W}=z;try{G&&!_t(_,"rawErrorResponse")&&(V=await Et(G,V,"rawErrorResponseSchema",W)),S&&!_t(_,"meta")&&(W=await Et(S,W,"metaSchema",W));let Y=await K(V,W,e.originalArgs);return B&&!_t(_,"errorResponse")&&(Y=await Et(B,Y,"errorResponseSchema",W)),a(Y,bt({baseQueryMeta:W}))}catch(X){z=X}}try{if(z instanceof St){const J={endpoint:e.endpointName,arg:e.originalArgs,type:e.type,queryCacheKey:E?e.queryCacheKey:void 0};T.onSchemaFailure?.(z,J),u?.(z,J);const{catchSchemaFailure:Z=c}=T;if(Z)return a(Z(z,J),bt({baseQueryMeta:z._bqMeta}))}}catch(ee){z=ee}throw"undefined"!=typeof process&&"production"!==process.env.NODE_ENV?console.error(`An unhandled error occurred processing a request for the endpoint "${e.endpointName}".\nIn the case of an unhandled error, no tags will be "provided" or "invalidated".`,z):console.error(z),z}};function h(e,t){const r=i.selectQueryEntry(t,e.queryCacheKey),n=i.selectConfig(t).refetchOnMountOrArgChange,s=r?.fulfilledTimeStamp,a=e.forceRefetch??(e.subscribe&&n);return!!a&&(!0===a||(Number(new Date)-Number(s))/1e3>=a)}const m=()=>e.createAsyncThunk(`${t}/executeQuery`,g,{getPendingMeta({arg:e}){const t=n[e.endpointName];return bt({startedTimeStamp:Date.now(),...pt(t)?{direction:e.direction}:{}})},condition(e,{getState:t}){const r=t(),s=i.selectQueryEntry(r,e.queryCacheKey),a=s?.fulfilledTimeStamp,o=e.originalArgs,u=s?.originalArgs,c=n[e.endpointName],d=e.direction;return!(!Tt(e)&&("pending"===s?.status||!h(e,r)&&(!lt(c)||!c?.forceRefetch?.({currentArg:o,previousArg:u,endpointState:s,state:r}))&&a&&!d))},dispatchConditionRejection:!0}),y=m(),T=m();function _(e){return t=>t?.meta?.arg?.endpointName===e}return{queryThunk:y,mutationThunk:e.createAsyncThunk(`${t}/executeMutation`,g,{getPendingMeta:()=>bt({startedTimeStamp:Date.now()})}),infiniteQueryThunk:T,prefetch:(e,t,r={})=>(n,s)=>{const o=(e=>"force"in e)(r)&&r.force,i=(e=>"ifOlderThan"in e)(r)&&r.ifOlderThan,u=(r=!0)=>a.endpoints[e].initiate(t,{forceRefetch:r,subscribe:!1}),c=a.endpoints[e].select(t)(s());if(o)n(u());else if(i){const e=c?.fulfilledTimeStamp;if(!e)return void n(u());(Number(new Date)-Number(new Date(e)))/1e3>=i&&n(u())}else n(u(!1))},updateQueryData:(e,t,r,n=!0)=>(s,o)=>{const i=a.endpoints[e].select(t)(o()),u={patches:[],inversePatches:[],undo:()=>s(a.util.patchQueryData(e,t,u.inversePatches,n))};if(i.status===Ne)return u;let c;if("data"in i)if(S(i.data)){const[e,t,n]=ye(i.data,r);u.patches.push(...t),u.inversePatches.push(...n),c=e}else c=r(i.data),u.patches.push({op:"replace",path:[],value:c}),u.inversePatches.push({op:"replace",path:[],value:i.data});return 0===u.patches.length||s(a.util.patchQueryData(e,t,u.patches,n)),u},upsertQueryData:(e,t,r)=>n=>n(a.endpoints[e].initiate(t,{subscribe:!1,forceRefetch:!0,[yt]:()=>({data:r})})),patchQueryData:(e,t,r,i)=>(u,c)=>{const d=n[e],l=s({queryArgs:t,endpointDefinition:d,endpointName:e});if(u(a.internalActions.queryResultPatched({queryCacheKey:l,patches:r})),!i)return;const p=a.endpoints[e].select(t)(c()),f=gt(d.providesTags,p.data,void 0,t,{},o);u(a.internalActions.updateProvidedBy([{queryCacheKey:l,providedTags:f}]))},buildMatchThunkActions:function(t,r){return{matchPending:e.isAllOf(e.isPending(t),_(r)),matchFulfilled:e.isAllOf(e.isFulfilled(t),_(r)),matchRejected:e.isAllOf(e.isRejected(t),_(r))}}}}({baseQuery:n,reducerPath:d,context:M,api:r,serializeQueryArgs:g,assertTagType:D,selectors:q,onSchemaFailure:v,catchSchemaFailure:I,skipSchemaValidation:P}),{reducer:J,actions:Z}=function({reducerPath:t,queryThunk:r,mutationThunk:n,serializeQueryArgs:s,context:{endpointDefinitions:a,apiUid:o,extractRehydrationInfo:u,hasRehydrationInfo:d},assertTagType:l,config:p}){const f=e.createAction(`${t}/resetApiState`);function g(e,t,r,n){e[t.queryCacheKey]??={status:Ne,endpointName:t.endpointName},xt(e,t.queryCacheKey,e=>{e.status=Pe,e.requestId=r&&e.requestId?e.requestId:n.requestId,void 0!==t.originalArgs&&(e.originalArgs=t.originalArgs),e.startedTimeStamp=n.startedTimeStamp,pt(a[n.arg.endpointName])&&"direction"in t&&(e.direction=t.direction)})}function h(t,r,n,s){xt(t,r.arg.queryCacheKey,t=>{if(t.requestId!==r.requestId&&!s)return;const{merge:o}=a[r.arg.endpointName];if(t.status=Me,o)if(void 0!==t.data){const{fulfilledTimeStamp:s,arg:a,baseQueryMeta:i,requestId:u}=r;let c=e.createNextState(t.data,e=>o(e,n,{arg:a.originalArgs,baseQueryMeta:i,fulfilledTimeStamp:s,requestId:u}));t.data=c}else t.data=n;else t.data=a[r.arg.endpointName].structuralSharing??1?Le(T(t.data)?(T(u=t.data)||c(15,u),u[i].base_):t.data,n):n;var u;delete t.error,t.fulfilledTimeStamp=r.fulfilledTimeStamp})}const m=e.createSlice({name:`${t}/queries`,initialState:Ct,reducers:{removeQueryResult:{reducer(e,{payload:{queryCacheKey:t}}){delete e[t]},prepare:e.prepareAutoBatched()},cacheEntriesUpserted:{reducer(e,t){for(const r of t.payload){const{queryDescription:n,value:s}=r;g(e,n,!0,{arg:n,requestId:t.meta.requestId,startedTimeStamp:t.meta.timestamp}),h(e,{arg:n,requestId:t.meta.requestId,fulfilledTimeStamp:t.meta.timestamp,baseQueryMeta:{}},s,!0)}},prepare:t=>({payload:t.map(e=>{const{endpointName:t,arg:r,value:n}=e;return{queryDescription:{type:ut,endpointName:t,originalArgs:e.arg,queryCacheKey:s({queryArgs:r,endpointDefinition:a[t],endpointName:t})},value:n}}),meta:{[e.SHOULD_AUTOBATCH]:!0,requestId:e.nanoid(),timestamp:Date.now()}})},queryResultPatched:{reducer(e,{payload:{queryCacheKey:t,patches:r}}){xt(e,t,e=>{e.data=Te(e.data,r.concat())})},prepare:e.prepareAutoBatched()}},extraReducers(e){e.addCase(r.pending,(e,{meta:t,meta:{arg:r}})=>{g(e,r,Tt(r),t)}).addCase(r.fulfilled,(e,{meta:t,payload:r})=>{h(e,t,r,Tt(t.arg))}).addCase(r.rejected,(e,{meta:{condition:t,arg:r,requestId:n},error:s,payload:a})=>{xt(e,r.queryCacheKey,e=>{if(t);else{if(e.requestId!==n)return;e.status=De,e.error=a??s}})}).addMatcher(d,(e,t)=>{const{queries:r}=u(t);for(const[t,n]of Object.entries(r))n?.status!==Me&&n?.status!==De||(e[t]=n)})}}),y=e.createSlice({name:`${t}/mutations`,initialState:Ct,reducers:{removeMutationResult:{reducer(e,{payload:t}){const r=Ot(t);r in e&&delete e[r]},prepare:e.prepareAutoBatched()}},extraReducers(e){e.addCase(n.pending,(e,{meta:t,meta:{requestId:r,arg:n,startedTimeStamp:s}})=>{n.track&&(e[Ot(t)]={requestId:r,status:Pe,endpointName:n.endpointName,startedTimeStamp:s})}).addCase(n.fulfilled,(e,{payload:t,meta:r})=>{r.arg.track&&kt(e,r,e=>{e.requestId===r.requestId&&(e.status=Me,e.data=t,e.fulfilledTimeStamp=r.fulfilledTimeStamp)})}).addCase(n.rejected,(e,{payload:t,error:r,meta:n})=>{n.arg.track&&kt(e,n,e=>{e.requestId===n.requestId&&(e.status=De,e.error=t??r)})}).addMatcher(d,(e,t)=>{const{mutations:r}=u(t);for(const[t,n]of Object.entries(r))n?.status!==Me&&n?.status!==De||t===n?.requestId||(e[t]=n)})}}),S=e.createSlice({name:`${t}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(e,t){for(const{queryCacheKey:r,providedTags:n}of t.payload){_(e,r);for(const{type:t,id:s}of n){const n=(e.tags[t]??={})[s||"__internal_without_id"]??=[];n.includes(r)||n.push(r)}e.keys[r]=n}},prepare:e.prepareAutoBatched()}},extraReducers(t){t.addCase(m.actions.removeQueryResult,(e,{payload:{queryCacheKey:t}})=>{_(e,t)}).addMatcher(d,(e,t)=>{const{provided:r}=u(t);for(const[t,n]of Object.entries(r.tags??{}))for(const[s,a]of Object.entries(n)){const n=(e.tags[t]??={})[s||"__internal_without_id"]??=[];for(const t of a)n.includes(t)||n.push(t),e.keys[t]=r.keys[t]}}).addMatcher(e.isAnyOf(e.isFulfilled(r),e.isRejectedWithValue(r)),(e,t)=>{E(e,[t])}).addMatcher(m.actions.cacheEntriesUpserted.match,(e,t)=>{E(e,t.payload.map(({queryDescription:e,value:t})=>({type:"UNKNOWN",payload:t,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:e}})))})}});function _(e,t){const r=It(e.keys[t]??[]);for(const n of r){const r=n.type,s=n.id??"__internal_without_id",a=e.tags[r]?.[s];a&&(e.tags[r][s]=It(a).filter(e=>e!==t))}delete e.keys[t]}function E(e,t){const r=t.map(e=>{const t=Rt(e,"providesTags",a,l),{queryCacheKey:r}=e.meta.arg;return{queryCacheKey:r,providedTags:t}});S.caseReducers.updateProvidedBy(e,S.actions.updateProvidedBy(r))}const v=e.createSlice({name:`${t}/subscriptions`,initialState:Ct,reducers:{updateSubscriptionOptions(e,t){},unsubscribeQueryResult(e,t){},internal_getRTKQSubscriptions(){}}}),b=e.createSlice({name:`${t}/internalSubscriptions`,initialState:Ct,reducers:{subscriptionsUpdated:{reducer:(e,t)=>Te(e,t.payload),prepare:e.prepareAutoBatched()}}}),A=e.createSlice({name:`${t}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...p},reducers:{middlewareRegistered(e,{payload:t}){e.middlewareRegistered="conflict"!==e.middlewareRegistered&&o===t||"conflict"}},extraReducers:e=>{e.addCase(at,e=>{e.online=!0}).addCase(ot,e=>{e.online=!1}).addCase(nt,e=>{e.focused=!0}).addCase(st,e=>{e.focused=!1}).addMatcher(d,e=>({...e}))}}),w=e.combineReducers({queries:m.reducer,mutations:y.reducer,provided:S.reducer,subscriptions:b.reducer,config:A.reducer});return{reducer:(e,t)=>w(f.match(t)?void 0:e,t),actions:{...A.actions,...m.actions,...v.actions,...b.actions,...y.actions,...S.actions,resetApiState:f}}}({context:M,queryThunk:z,mutationThunk:G,serializeQueryArgs:g,reducerPath:d,assertTagType:D,config:{refetchOnFocus:y,refetchOnReconnect:_,refetchOnMountOrArgChange:m,keepUnusedDataFor:h,reducerPath:d,invalidationBehavior:E}});Ft(r.util,{patchQueryData:B,updateQueryData:V,upsertQueryData:W,prefetch:Y,resetApiState:Z.resetApiState,upsertQueryEntries:Z.cacheEntriesUpserted}),Ft(r.internalActions,Z);const ee=new WeakMap,te=e=>He(ee,e,()=>({currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map})),{buildInitiateQuery:re,buildInitiateInfiniteQuery:ne,buildInitiateMutation:se,getRunningMutationThunk:ae,getRunningMutationsThunk:oe,getRunningQueriesThunk:ie,getRunningQueryThunk:ue}=function({serializeQueryArgs:t,queryThunk:r,infiniteQueryThunk:n,mutationThunk:s,api:a,context:o,getInternalState:i}){const u=e=>i(e)?.runningQueries,c=e=>i(e)?.runningMutations,{unsubscribeQueryResult:d,removeMutationResult:l,updateSubscriptionOptions:p}=a.internalActions;return{buildInitiateQuery:function(e,t){return g(e,t)},buildInitiateInfiniteQuery:function(e,t){return g(e,t)},buildInitiateMutation:function(e){return(t,{track:r=!0,fixedCacheKey:n}={})=>(a,o)=>{const i=s({type:"mutation",endpointName:e,originalArgs:t,track:r,fixedCacheKey:n}),u=a(i);f(a);const{requestId:d,abort:p,unwrap:g}=u,h=u.unwrap().then(e=>({data:e})).catch(e=>({error:e})),m=Object.assign(h,{arg:u.arg,requestId:d,abort:p,unwrap:g,reset:()=>{a(l({requestId:d,fixedCacheKey:n}))}}),y=c(a);return y.set(d,m),m.then(()=>{y.delete(d)}),n&&(y.set(n,m),m.then(()=>{y.get(n)===m&&y.delete(n)})),m}},getRunningQueryThunk:function(e,r){return n=>{const s=mt(o,e),a=t({queryArgs:r,endpointDefinition:s,endpointName:e});return u(n)?.get(a)}},getRunningMutationThunk:function(e,t){return e=>c(e)?.get(t)},getRunningQueriesThunk:function(){return e=>je(u(e))},getRunningMutationsThunk:function(){return e=>je(c(e))}};function f(t){if("production"!==process.env.NODE_ENV){if(f.triggered)return;const r=t(a.internalActions.internal_getRTKQSubscriptions());if(f.triggered=!0,"object"!=typeof r||"string"==typeof r?.type)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(34):`Warning: Middleware for RTK-Query API at reducerPath "${a.reducerPath}" has not been added to the store.\nYou must add the middleware for RTK-Query to function correctly!`)}}function g(e,s){const o=(i,{subscribe:c=!0,forceRefetch:l,subscriptionOptions:g,[yt]:h,...m}={})=>(y,T)=>{const S=t({queryArgs:i,endpointDefinition:s,endpointName:e});let _;const E={...m,type:ut,subscribe:c,forceRefetch:l,subscriptionOptions:g,endpointName:e,originalArgs:i,queryCacheKey:S,[yt]:h};if(lt(s))_=r(E);else{const{direction:e,initialPageParam:t,refetchCachedPages:r}=m;_=n({...E,direction:e,initialPageParam:t,refetchCachedPages:r})}const v=a.endpoints[e].select(i),b=y(_),A=v(T());f(y);const{requestId:w,abort:R}=b,I=A.requestId!==w,x=u(y)?.get(S),O=()=>v(T()),k=Object.assign(h?b.then(O):I&&!x?Promise.resolve(A):Promise.all([x,b]).then(O),{arg:i,requestId:w,subscriptionOptions:g,queryCacheKey:S,abort:R,async unwrap(){const e=await k;if(e.isError)throw e.error;return e.data},refetch:e=>y(o(i,{subscribe:!1,forceRefetch:!0,...e})),unsubscribe(){c&&y(d({queryCacheKey:S,requestId:w}))},updateSubscriptionOptions(t){k.subscriptionOptions=t,y(p({endpointName:e,requestId:w,queryCacheKey:S,options:t}))}});if(!x&&!I&&!h){const e=u(y);e.set(S,k),k.then(()=>{e.delete(S)})}return k};return o}}({queryThunk:z,mutationThunk:G,infiniteQueryThunk:K,api:r,serializeQueryArgs:g,context:M,getInternalState:te});Ft(r.util,{getRunningMutationThunk:ae,getRunningMutationsThunk:oe,getRunningQueryThunk:ue,getRunningQueriesThunk:ie});const{middleware:ce,actions:de}=function(t){const{reducerPath:r,api:n,context:s,getInternalState:a}=t,{apiUid:o}=s,i={invalidateTags:e.createAction(`${r}/invalidateTags`)},u=e=>e.type.startsWith(`${r}/`),c=[$t,Qt,zt,Kt,Ht,Gt];return{middleware:i=>{let l=!1;const p=a(i.dispatch),f={...t,internalState:p,refetchQuery:d,isThisApiSliceAction:u,mwApi:i},g=c.map(e=>e(f)),h=(({api:e,queryThunk:t,internalState:r})=>{const n=`${e.reducerPath}/subscriptions`;let s=null,a=null;const{updateSubscriptionOptions:o,unsubscribeQueryResult:i}=e.internalActions,u=()=>r.currentSubscriptions,c={getSubscriptions:u,getSubscriptionCount:e=>{const t=u().get(e);return t?.size??0},isRequestSubscribed:(e,t)=>{const r=u();return!!r?.get(e)?.get(t)}};function d(e){return JSON.parse(JSON.stringify(Object.fromEntries([...e].map(([e,t])=>[e,Object.fromEntries(t)]))))}return(u,l)=>{if(s||(s=d(r.currentSubscriptions)),e.util.resetApiState.match(u))return s={},r.currentSubscriptions.clear(),a=null,[!0,!1];if(e.internalActions.internal_getRTKQSubscriptions.match(u))return[!1,c];const p=((r,n)=>{if(o.match(n)){const{queryCacheKey:e,requestId:t,options:s}=n.payload,a=r.get(e);return a?.has(t)&&a.set(t,s),!0}if(i.match(n)){const{queryCacheKey:e,requestId:t}=n.payload,s=r.get(e);return s&&s.delete(t),!0}if(e.internalActions.removeQueryResult.match(n))return r.delete(n.payload.queryCacheKey),!0;if(t.pending.match(n)){const{meta:{arg:e,requestId:t}}=n,s=He(r,e.queryCacheKey,$e);return e.subscribe&&s.set(t,e.subscriptionOptions??s.get(t)??{}),!0}let s=!1;if(t.rejected.match(n)){const{meta:{condition:e,arg:t,requestId:a}}=n;if(e&&t.subscribe){const e=He(r,t.queryCacheKey,$e);e.set(a,t.subscriptionOptions??e.get(a)??{}),s=!0}}return s})(r.currentSubscriptions,u);let f=!0;if("test"===process.env.NODE_ENV&&"string"==typeof u.type&&u.type===`${e.reducerPath}/getPolling`)return[!1,r.currentPolls];if(p){a||(a=setTimeout(()=>{const t=d(r.currentSubscriptions),[,n]=ye(s,()=>t);l.next(e.internalActions.subscriptionsUpdated(n)),s=t,a=null},500));const o="string"==typeof u.type&&!!u.type.startsWith(n),i=t.rejected.match(u)&&u.meta.condition&&!!u.meta.arg.subscribe;f=!o&&!i}return[f,!1]}})(f),m=(({reducerPath:e,context:t,api:r,refetchQuery:n,internalState:s})=>{const{removeQueryResult:a}=r.internalActions;function o(r,o){const i=r.getState()[e],u=i.queries,c=s.currentSubscriptions;t.batch(()=>{for(const e of c.keys()){const t=u[e],s=c.get(e);if(!s||!t)continue;const d=[...s.values()];(d.some(e=>!0===e[o])||d.every(e=>void 0===e[o])&&i.config[o])&&(0===s.size?r.dispatch(a({queryCacheKey:e})):t.status!==Ne&&r.dispatch(n(t)))}})}return(e,t)=>{nt.match(e)&&o(t,"refetchOnFocus"),at.match(e)&&o(t,"refetchOnReconnect")}})(f);return t=>a=>{if(!e.isAction(a))return t(a);l||(l=!0,i.dispatch(n.internalActions.middlewareRegistered(o)));const c={...i,next:t},d=i.getState(),[p,f]=h(a,c,d);let y;if(y=p?t(a):f,i.getState()[r]&&(m(a,c,d),u(a)||s.hasRehydrationInfo(a)))for(const e of g)e(a,c,d);return y}},actions:i};function d(e){return t.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}({reducerPath:d,context:M,queryThunk:z,mutationThunk:G,infiniteQueryThunk:K,api:r,assertTagType:D,selectors:q,getRunningQueryThunk:ue,getInternalState:te});return Ft(r.util,de),Ft(r,{reducer:J,middleware:ce}),{name:Bt,injectEndpoint(e,t){const n=r,s=n.endpoints[e]??={};lt(t)&&Ft(s,{name:e,select:F(e,t),initiate:re(e,t)},X(z,e)),t.type===ct&&Ft(s,{name:e,select:H(),initiate:se(e)},X(G,e)),pt(t)&&Ft(s,{name:e,select:Q(e,t),initiate:ne(e,t)},X(z,e))}}}});function Wt(e){return e.replace(e[0],e[0].toUpperCase())}function Yt(e){let t=0;for(const r in e)t++;return t}function Xt(e){return"infinitequery"===e.type}function Jt(e,...t){return Object.assign(e,...t)}Vt();var Zt=Symbol();function er(e){const t=r.useRef(e),n=r.useMemo(()=>Le(t.current,e),[e]);return r.useEffect(()=>{t.current!==n&&(t.current=n)},[n]),n}function tr(e){const n=r.useRef(e);return r.useEffect(()=>{t.shallowEqual(n.current,e)||(n.current=e)},[e]),t.shallowEqual(n.current,e)?n.current:e}var rr=(()=>!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement))(),nr=(()=>"undefined"!=typeof navigator&&"ReactNative"===navigator.product)(),sr=(()=>rr||nr?r.useLayoutEffect:r.useEffect)(),ar=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:void 0===e.data,status:Ce.pending}:e;function or(e,...t){const r={};return t.forEach(t=>{r[t]=e[t]}),r}var ir=["data","status","isLoading","isSuccess","isError","error"],ur=Symbol(),cr=Lt(Vt(),(({batch:n=t.batch,hooks:s={useDispatch:t.useDispatch,useSelector:t.useSelector,useStore:t.useStore},createSelector:a=Oe,unstable__sideEffectsInRender:o=!1,...i}={})=>{if("production"!==process.env.NODE_ENV){const t=["useDispatch","useSelector","useStore"];let r=!1;for(const n of t)if(Yt(i)>0&&(i[n]&&(r||(console.warn("As of RTK 2.0, the hooks now need to be specified as one object, provided under a `hooks` key:\n`reactHooksModule({ hooks: { useDispatch, useSelector, useStore } })`"),r=!0)),s[n]=i[n]),"function"!=typeof s[n])throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(36):`When using custom hooks for context, all ${t.length} hooks need to be provided: ${t.join(", ")}.\nHook ${n} was either not provided or not a function.`)}return{name:ur,init(i,{serializeQueryArgs:u},c){const d=i,{buildQueryHooks:l,buildInfiniteQueryHooks:p,buildMutationHook:f,usePrefetch:g}=function({api:n,moduleOptions:{batch:s,hooks:{useDispatch:a,useSelector:o,useStore:i},unstable__sideEffectsInRender:u,createSelector:c},serializeQueryArgs:d,context:l}){const p=u?e=>e():r.useEffect,f=e=>e.current?.unsubscribe?.(),g=l.endpointDefinitions;return{buildQueryHooks:function(t){const o=(n,s={})=>{const[a]=y(t,n,s);return S(a),r.useMemo(()=>({refetch:()=>function(t){if(!t.current)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(38):"Cannot refetch a query that has not been started yet.");return t.current.refetch()}(a)}),[a])},i=({refetchOnReconnect:e,refetchOnFocus:o,pollingInterval:i=0,skipPollingIfUnfocused:u=!1}={})=>{const{initiate:c}=n.endpoints[t],d=a(),[l,g]=r.useState(Zt),h=r.useRef(void 0),m=tr({refetchOnReconnect:e,refetchOnFocus:o,pollingInterval:i,skipPollingIfUnfocused:u});p(()=>{const e=h.current?.subscriptionOptions;m!==e&&h.current?.updateSubscriptionOptions(m)},[m]);const y=r.useRef(m);p(()=>{y.current=m},[m]);const T=r.useCallback(function(e,t=!1){let r;return s(()=>{f(h),h.current=r=d(c(e,{subscriptionOptions:y.current,forceRefetch:!t})),g(e)}),r},[d,c]),S=r.useCallback(()=>{h.current?.queryCacheKey&&d(n.internalActions.removeQueryResult({queryCacheKey:h.current?.queryCacheKey}))},[d]);return r.useEffect(()=>()=>{f(h)},[]),r.useEffect(()=>{l===Zt||h.current||T(l,!0)},[l,T]),r.useMemo(()=>[T,l,{reset:S}],[T,l,S])},u=T(t,h);return{useQueryState:u,useQuerySubscription:o,useLazyQuerySubscription:i,useLazyQuery(e){const[t,n,{reset:s}]=i(e),a=u(n,{...e,skip:n===Zt}),o=r.useMemo(()=>({lastArg:n}),[n]);return r.useMemo(()=>[t,{...a,reset:s},o],[t,a,s,o])},useQuery(e,t){const n=o(e,t),s=u(e,{selectFromResult:e===Nt||t?.skip?void 0:ar,...t}),a=or(s,...ir);return r.useDebugValue(a),r.useMemo(()=>({...s,...n}),[s,n])}}},buildInfiniteQueryHooks:function(t){const n=(n,a={})=>{const[o,i,u,c]=y(t,n,a),d=r.useRef(c);p(()=>{d.current=c},[c]);const l=tr(a.refetchCachedPages),g=r.useCallback(function(e,t){let r;return s(()=>{f(o),o.current=r=i(u(e,{subscriptionOptions:d.current,direction:t}))}),r},[o,i,u]);S(o);const h=er(a.skip?Nt:n),m=r.useCallback(t=>{if(!o.current)throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(38):"Cannot refetch a query that has not been started yet.");return o.current.refetch({refetchCachedPages:t?.refetchCachedPages??l})},[o,l]);return r.useMemo(()=>({trigger:g,refetch:m,fetchNextPage:()=>g(h,"forward"),fetchPreviousPage:()=>g(h,"backward")}),[m,g,h])},a=T(t,m);return{useInfiniteQueryState:a,useInfiniteQuerySubscription:n,useInfiniteQuery(e,t){const{refetch:s,fetchNextPage:o,fetchPreviousPage:i}=n(e,t),u=a(e,{selectFromResult:e===Nt||t?.skip?void 0:ar,...t}),c=or(u,...ir,"hasNextPage","hasPreviousPage");return r.useDebugValue(c),r.useMemo(()=>({...u,fetchNextPage:o,fetchPreviousPage:i,refetch:s}),[u,o,i,s])}}},buildMutationHook:function(e){return({selectFromResult:i,fixedCacheKey:u}={})=>{const{select:d,initiate:l}=n.endpoints[e],p=a(),[f,g]=r.useState();r.useEffect(()=>()=>{f?.arg.fixedCacheKey||f?.reset()},[f]);const h=r.useCallback(function(e){const t=p(l(e,{fixedCacheKey:u}));return g(t),t},[p,l,u]),{requestId:m}=f||{},y=r.useMemo(()=>d({fixedCacheKey:u,requestId:f?.requestId}),[u,f,d]),T=r.useMemo(()=>i?c([y],i):y,[i,y]),S=o(T,t.shallowEqual),_=null==u?f?.arg.originalArgs:void 0,E=r.useCallback(()=>{s(()=>{f&&g(void 0),u&&p(n.internalActions.removeMutationResult({requestId:m,fixedCacheKey:u}))})},[p,u,f,m]),v=or(S,...ir,"endpointName");r.useDebugValue(v);const b=r.useMemo(()=>({...S,originalArgs:_,reset:E}),[S,_,E]);return r.useMemo(()=>[h,b],[h,b])}},usePrefetch:function(e,t){const s=a(),o=tr(t);return r.useCallback((t,r)=>s(n.util.prefetch(e,t,{...o,...r})),[e,s,o])}};function h(e,t,r){if(t?.endpointName&&e.isUninitialized){const{endpointName:e}=t,n=g[e];r!==Nt&&d({queryArgs:t.originalArgs,endpointDefinition:n,endpointName:e})===d({queryArgs:r,endpointDefinition:n,endpointName:e})&&(t=void 0)}let n=e.isSuccess?e.data:t?.data;void 0===n&&(n=e.data);const s=void 0!==n,a=e.isLoading,o=(!t||t.isLoading||t.isUninitialized)&&!s&&a,i=e.isSuccess||s&&(a&&!t?.isError||e.isUninitialized);return{...e,data:n,currentData:e.data,isFetching:a,isLoading:o,isSuccess:i}}function m(e,t,r){if(t?.endpointName&&e.isUninitialized){const{endpointName:e}=t,n=g[e];r!==Nt&&d({queryArgs:t.originalArgs,endpointDefinition:n,endpointName:e})===d({queryArgs:r,endpointDefinition:n,endpointName:e})&&(t=void 0)}let n=e.isSuccess?e.data:t?.data;void 0===n&&(n=e.data);const s=void 0!==n,a=e.isLoading,o=(!t||t.isLoading||t.isUninitialized)&&!s&&a,i=e.isSuccess||a&&s;return{...e,data:n,currentData:e.data,isFetching:a,isLoading:o,isSuccess:i}}function y(t,s,{refetchOnReconnect:o,refetchOnFocus:i,refetchOnMountOrArgChange:u,skip:c=!1,pollingInterval:d=0,skipPollingIfUnfocused:l=!1,...f}={}){const{initiate:h}=n.endpoints[t],m=a(),y=r.useRef(void 0);if(!y.current){const t=m(n.internalActions.internal_getRTKQSubscriptions());if("production"!==process.env.NODE_ENV&&("object"!=typeof t||"string"==typeof t?.type))throw new Error("production"===process.env.NODE_ENV?e.formatProdErrorMessage(37):`Warning: Middleware for RTK-Query API at reducerPath "${n.reducerPath}" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!`);y.current=t}const T=er(c?Nt:s),S=tr({refetchOnReconnect:o,refetchOnFocus:i,pollingInterval:d,skipPollingIfUnfocused:l}),_=tr(f.initialPageParam),E=tr(f.refetchCachedPages),v=r.useRef(void 0);let{queryCacheKey:b,requestId:A}=v.current||{},w=!1;b&&A&&(w=y.current.isRequestSubscribed(b,A));const R=!w&&void 0!==v.current;return p(()=>{R&&(v.current=void 0)},[R]),p(()=>{const e=v.current;if("undefined"!=typeof process&&process,T===Nt)return e?.unsubscribe(),void(v.current=void 0);const r=v.current?.subscriptionOptions;if(e&&e.arg===T)S!==r&&e.updateSubscriptionOptions(S);else{e?.unsubscribe();const r=m(h(T,{subscriptionOptions:S,forceRefetch:u,...Xt(g[t])?{initialPageParam:_,refetchCachedPages:E}:{}}));v.current=r}},[m,h,u,T,S,R,_,E,t]),[v,m,h,S]}function T(e,s){return(a,{skip:u=!1,selectFromResult:d}={})=>{const{select:l}=n.endpoints[e],p=er(u?Nt:a),f=r.useRef(void 0),g=r.useMemo(()=>c([l(p),(e,t)=>t,e=>p],s,{memoizeOptions:{resultEqualityCheck:t.shallowEqual}}),[l,p]),h=r.useMemo(()=>d?c([g],d,{devModeChecks:{identityFunctionCheck:"never"}}):g,[g,d]),m=o(e=>h(e,f.current),t.shallowEqual),y=i(),T=g(y.getState(),f.current);return sr(()=>{f.current=T},[T]),m}}function S(e){r.useEffect(()=>()=>{f(e),e.current=void 0},[e])}}({api:i,moduleOptions:{batch:n,hooks:s,unstable__sideEffectsInRender:o,createSelector:a},serializeQueryArgs:u,context:c});return Jt(d,{usePrefetch:g}),Jt(c,{batch:n}),{injectEndpoint(e,t){if("query"===t.type){const{useQuery:t,useLazyQuery:r,useLazyQuerySubscription:n,useQueryState:s,useQuerySubscription:a}=l(e);Jt(d.endpoints[e],{useQuery:t,useLazyQuery:r,useLazyQuerySubscription:n,useQueryState:s,useQuerySubscription:a}),i[`use${Wt(e)}Query`]=t,i[`useLazy${Wt(e)}Query`]=r}if("mutation"===t.type){const t=f(e);Jt(d.endpoints[e],{useMutation:t}),i[`use${Wt(e)}Mutation`]=t}else if(Xt(t)){const{useInfiniteQuery:t,useInfiniteQuerySubscription:r,useInfiniteQueryState:n}=p(e);Jt(d.endpoints[e],{useInfiniteQuery:t,useInfiniteQuerySubscription:r,useInfiniteQueryState:n}),i[`use${Wt(e)}InfiniteQuery`]=t}}}}}})());let dr=0;function lr(e){return null!==e&&"object"==typeof e}function pr(e){return lr(e)?"string"==typeof e.error_message?e.error_message:"string"==typeof e.message?e.message:null:null}const fr="Something went wrong. Please try again.";function gr(e){const t=e?.status;return!("number"==typeof t&&t>=400&&t<500)}function hr(e){if(!lr(e))return null;const t=e.data;return lr(t)&&"string"==typeof t.error_message?t.error_message:"string"==typeof e.message?e.message:null}const mr={NETWORK_ERROR:"NETWORK_ERROR",TIMEOUT:"TIMEOUT",PARSE_ERROR:"PARSE_ERROR",TOKEN_EXPIRED:"TOKEN_EXPIRED",TOKEN_REFRESH_FAILED:"TOKEN_REFRESH_FAILED",UNAUTHORIZED:"UNAUTHORIZED",FORBIDDEN:"FORBIDDEN",NOT_FOUND:"NOT_FOUND",VALIDATION_ERROR:"VALIDATION_ERROR",SERVER_ERROR:"SERVER_ERROR",UNKNOWN:"UNKNOWN"};let yr=null;const Tr=function(e){const{name:t,innerBaseQuery:r,requestInterceptors:n,responseInterceptors:s,defaultOptions:a}=e;return async(e,o,i)=>{let u,c;if("string"==typeof e)u={url:e};else{const{_bridge:t,...r}=e;u=r,c=t}const d={...i,bridge:{...a,...i?.bridge,...c}},l={bridgeName:t,requestId:(p=t,dr+=1,`${p}-${dr}`),startTime:Date.now(),api:o,extraOptions:d};var p;const f=async e=>{let t=e;for(const e of n)t=await e(t,l);return r(t,o,d)};let g=await f(u);for(const e of s)g=await e(g,u,l,f);return g}}({name:"apiBridge",innerBaseQuery:async(t,r,n)=>function({baseUrl:t,prepareHeaders:r=e=>e,fetchFn:n=Ge,paramsSerializer:s,isJsonContentType:a=Ve,jsonContentType:o="application/json",jsonReplacer:i,timeout:u,responseHandler:c,validateStatus:d,...l}={}){return"undefined"==typeof fetch&&n===Ge&&console.warn("Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments."),async(f,g,h)=>{const{getState:m,extra:y,endpoint:T,forced:S,type:_}=g;let E,{url:v,headers:b=new Headers(l.headers),params:A,responseHandler:w=c??"json",validateStatus:R=d??Be,timeout:I=u,...x}="string"==typeof f?{url:f}:f,O={...l,signal:I?Ke(g.signal,ze(I)):g.signal,...x};b=new Headers(We(b)),O.headers=await r(b,{getState:m,arg:f,extra:y,endpoint:T,forced:S,type:_,extraOptions:h})||b;const k="object"==typeof(C=O.body)&&(e.isPlainObject(C)||Array.isArray(C)||"function"==typeof C.toJSON);var C;if(null==O.body||k||"string"==typeof O.body||O.headers.delete("content-type"),!O.headers.has("content-type")&&k&&O.headers.set("content-type",o),k&&a(O.headers)&&(O.body=JSON.stringify(O.body,i)),O.headers.has("accept")||("json"===w?O.headers.set("accept","application/json"):"text"===w&&O.headers.set("accept","text/plain, text/html, */*")),A){const e=~v.indexOf("?")?"&":"?";v+=e+(s?s(A):new URLSearchParams(We(A)))}v=function(e,t){if(!e)return t;if(!t)return e;if(function(e){return new RegExp("(^|:)//").test(e)}(t))return t;const r=e.endsWith("/")||!t.startsWith("?")?"/":"";return e=(e=>e.replace(/\/$/,""))(e),`${e}${r}${t=(e=>e.replace(/^\//,""))(t)}`}(t,v);const N=new Request(v,O);let P;E={request:new Request(v,O)};try{P=await n(N)}catch(e){return{error:{status:(e instanceof Error||"undefined"!=typeof DOMException&&e instanceof DOMException)&&"TimeoutError"===e.name?"TIMEOUT_ERROR":"FETCH_ERROR",error:String(e)},meta:E}}const M=P.clone();let D;E.response=M;let q="";try{let e;if(await Promise.all([p(P,w).then(e=>D=e,t=>e=t),M.text().then(e=>q=e,()=>{})]),e)throw e}catch(e){return{error:{status:"PARSING_ERROR",originalStatus:P.status,data:q,error:String(e)},meta:E}}return R(P,D)?{data:D,meta:E}:{error:{status:P.status,data:D},meta:E}};async function p(e,t){if("function"==typeof t)return t(e);if("content-type"===t&&(t=a(e.headers)?"json":"text"),"json"===t){const t=await e.text();return t.length?JSON.parse(t):null}return e.text()}}({baseUrl:"",prepareHeaders:e=>(e.has("Content-Type")||e.set("Content-Type","application/json"),e.has("Accept")||e.set("Accept","application/json"),e)})(t,r,n),requestInterceptors:[(e,t)=>{if(t.extraOptions.bridge?.skipAuth)return e;const r=t.api.getState(),n=r.auth?.accessToken;return n?{...e,headers:{...e.headers,Authorization:`Bearer ${n}`}}:e},(e,t)=>{const r=n.getCustomHeaders(),s=t.extraOptions.bridge?.customHeaders,a=Object.keys(r).length>0,o=!!s&&Object.keys(s).length>0;return a||o?{...e,headers:{...e.headers,...r,...s??{}}}:e},(e,t)=>{if(!n.isDevMode()||t.extraOptions.bridge?.skipLogging)return e;const r=(e.method||"GET").toUpperCase(),s=e.url||"";return n.logger.debug({message:`${t.bridgeName} ${r} ${s}`,api_name:t.api.endpoint,request_id:t.requestId,method:r,url:s}),e}],responseInterceptors:[async(e,t,r,s)=>{if(r.extraOptions.bridge?.skipTokenRefresh)return e;if(401!==e.error?.status)return e;const a=r.api.getState();if(!a.auth?.accessToken||!a.auth?.isAuthenticated)return e;if(!n.getTokenRefreshHandler())return r.api.dispatch(n.clearSession()),e;try{const e=await async function(){return yr||(yr=async function(){const e=n.getTokenRefreshHandler();if(!e)return null;try{return await e()}catch{return null}}().finally(()=>{yr=null}),yr)}();if(e){const a=r.api.getState().auth?.accessToken;return a!==e.accessToken&&r.api.dispatch(n.setSession({accessToken:e.accessToken,refreshToken:e.refreshToken,expiresIn:e.expiresIn})),s(t)}n.logger.error({message:"Session cleared: token refresh failed after 401",api_name:"auth-refresh"}),r.api.dispatch(n.clearSession())}catch{n.logger.error({message:"Session cleared: token refresh threw after 401",api_name:"auth-refresh"}),r.api.dispatch(n.clearSession())}return e},async(e,t,r)=>{if(!e.error)return e;const n=(s=e.error,a={url:t.url,method:t.method||"GET",timestamp:r.startTime,duration:Date.now()-r.startTime,requestId:r.requestId,bridgeName:r.bridgeName},s&&"object"==typeof s&&"status"in s?function(e,t){const r="PARSING_ERROR"===e.status,n=r?e.originalStatus:void 0,s="number"==typeof n&&n>=400?n:e.status;let a,o="Request failed",i=mr.UNKNOWN;if("data"in e)if(a=e.data,"string"==typeof e.data)o=e.data;else if(e.data&&"object"==typeof e.data){const t=e.data;o=pr(t)??pr(t.data)??("string"==typeof t.error?t.error:void 0)??("string"==typeof t.detail?t.detail:void 0)??o}return!r&&"error"in e&&"string"==typeof e.error&&(o=e.error),401===s?i=mr.UNAUTHORIZED:403===s?i=mr.FORBIDDEN:404===s?i=mr.NOT_FOUND:422===s?i=mr.VALIDATION_ERROR:"FETCH_ERROR"===s?i=mr.NETWORK_ERROR:"TIMEOUT_ERROR"===s?i=mr.TIMEOUT:"PARSING_ERROR"===s?i=mr.PARSE_ERROR:"number"==typeof s&&s>=500&&(i=mr.SERVER_ERROR),"number"==typeof s&&s>=500&&(o=fr),{status:s,message:o,data:a,code:i,meta:{timestamp:Date.now(),...t}}}(s,a):s instanceof Error?{status:"FETCH_ERROR",message:s.message||"An unexpected error occurred",code:mr.UNKNOWN,meta:{timestamp:Date.now(),...a}}:"string"==typeof s?{status:"CUSTOM_ERROR",message:s,code:mr.UNKNOWN,meta:{timestamp:Date.now(),...a}}:{status:"CUSTOM_ERROR",message:"An unknown error occurred",data:s,code:mr.UNKNOWN,meta:{timestamp:Date.now(),...a}});var s,a;return{...e,error:{...e.error,...n}}},async(e,t,r)=>{if(!e.error||r.extraOptions.bridge?.skipErrorToast)return e;const{status:s}=e.error;return"FETCH_ERROR"===s?(n.showErrorToast("Network error. Please check your connection."),e):"TIMEOUT_ERROR"===s?(n.showErrorToast("Request timed out. Please try again."),e):"number"==typeof s&&s>=500?(n.showErrorToast(fr),e):e},async(e,t,r,n)=>{if(!e.error)return e;const{status:s}=e.error;if("FETCH_ERROR"!==s&&"TIMEOUT_ERROR"!==s)return e;const a=r.extraOptions.bridge?.retry,o=a?.maxRetries??1,i=a?.backoffMs??1e3,u=parseInt(t.headers?.["X-Bridge-Retry-Count"]||"0",10);if(u>=o)return e;const c=i*Math.pow(2,u);return await new Promise(e=>setTimeout(e,c)),n({...t,headers:{...t.headers,"X-Bridge-Retry-Count":String(u+1)}})},async(e,t,r)=>{const s=r.extraOptions.bridge?.skipLogging,a=Date.now()-r.startTime,o=(t.method||"GET").toUpperCase(),i=t.url||"",u=e.meta?.response,c=e.error?e.error.status:u?.status??"OK",d=u?.headers?.get?.("x-request-id")??void 0;return e.error?n.logger.error({message:`${r.bridgeName} ${o} ${i} failed (${c})`,api_name:r.api.endpoint,request_id:d??r.requestId,method:o,url:i,status:c,duration:a,error_data:e.error.data}):n.isDevMode()&&!s&&n.logger.debug({message:`${r.bridgeName} ${o} ${i} ${c} ${a}ms`,api_name:r.api.endpoint,request_id:d??r.requestId,method:o,url:i,status:c,duration:a}),e}]});function Sr(){return n.readAccessToken()}let _r=0;async function Er(e){const{url:t,method:r="GET",body:s,headers:a={},skipAuth:o=!1,skipLogging:i=!1,skipContentType:u=!1,responseHandler:c="json",signal:d,keepalive:l}=e;_r+=1;const p=`fetch-${_r}`,f=Date.now(),g=r.toUpperCase(),h={...a};if(Object.assign(h,n.getCustomHeaders()),!o){const e=Sr();e&&(h.Authorization=`Bearer ${e}`)}let m;u||h["Content-Type"]||(h["Content-Type"]="application/json"),h.Accept||(h.Accept="application/json"),m=null==s?void 0:"string"==typeof s||s instanceof FormData||s instanceof Blob||s instanceof ArrayBuffer?s:JSON.stringify(s),n.isDevMode()&&!i&&n.logger.debug({message:`bridgedFetch ${g} ${t}`,api_name:"bridgedFetch",request_id:p,method:g,url:t});try{const e=await fetch(t,{method:r,headers:h,body:m,signal:d,keepalive:l}),s=Date.now()-f;if(!e.ok){let r;try{r=await e.json()}catch{try{r=await e.text()}catch{r=`HTTP ${e.status}`}}const a=e.headers.get("x-request-id")??void 0;return i||n.logger.error({message:`bridgedFetch ${g} ${t} failed (${e.status})`,api_name:"bridgedFetch",request_id:a??p,method:g,url:t,status:e.status,duration:s,error_data:r}),{error:{status:e.status,data:r},response:e}}let a;if("blob"===c)a=await e.blob();else if("text"===c)a=await e.text();else{const t=await e.text();a=t?JSON.parse(t):void 0}if(n.isDevMode()&&!i){const r=e.headers.get("x-request-id")??void 0;n.logger.debug({message:`bridgedFetch ${g} ${t} ${e.status} ${s}ms`,api_name:"bridgedFetch",request_id:r??p,method:g,url:t,status:e.status,duration:s})}return{data:a,response:e}}catch(e){const r=Date.now()-f;return i||n.logger.error({message:`bridgedFetch ${g} ${t} network error`,api_name:"bridgedFetch",request_id:p,method:g,url:t,status:"FETCH_ERROR",duration:r,error_message:e instanceof Error?e.message:"Network error"}),{error:{status:"FETCH_ERROR",data:e instanceof Error?e.message:"Network error"}}}}const vr=3e5;let br=0;const Ar=cr({reducerPath:"chatApi",baseQuery:Tr,keepUnusedDataFor:0,tagTypes:["chat","toolServers"],endpoints:e=>({getConversationHistory:e.query({query:({skip:e=0,limit:t=20})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}`,method:"GET",params:{skip:e,limit:t}}),transformResponse:e=>e?.data??{conversations:[]},providesTags:["chat"]}),getConversationById:e.query({query:({conversationId:e,skip:t,limit:r})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}/${e}`,method:"GET",params:{...void 0!==t&&{skip:t},...void 0!==r&&{limit:r}}}),transformResponse:e=>e?.data??null,providesTags:["chat"]}),createConversatons:e.mutation({query:e=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}`,method:"POST",body:e.body||{}}),transformResponse:e=>e?.data??[],extraOptions:{bridge:{skipErrorToast:!0}}}),transcribeAudio:e.mutation({queryFn:async({conversationId:e,audioFile:t})=>{const r=new FormData;r.append("file",t);const{data:s,error:a}=await Er({url:n.API_ENDPOINTS.CONVERSATION_TRANSCRIBE(e),method:"POST",body:r,skipContentType:!0});return a?{error:a}:{data:s}}}),uploadDocument:e.mutation({queryFn:async({file:e,filename:t,documentType:r,conversationId:s,onUploadProgress:a,onUploadComplete:o})=>{const i=new FormData;i.append("file",e),t&&i.append("filename",t),r&&i.append("document_type",r),s&&i.append("conversation_id",s);const{data:u,error:c}=await async function(e){const{url:t,method:r="POST",body:s,headers:a={},skipAuth:o=!1,skipLogging:i=!1,onUploadProgress:u,onUploadComplete:c,timeoutMs:d=vr,signal:l}=e;if("undefined"==typeof XMLHttpRequest)return n.isDevMode()&&!i&&n.logger.debug({message:"XMLHttpRequest unavailable; uploading without progress",api_name:"bridgedUpload",url:t}),Er({url:t,method:r,body:s,headers:a,skipAuth:o,skipLogging:i,skipContentType:!0,signal:l});br+=1;const p=`upload-${br}`,f=Date.now(),g=r.toUpperCase(),h={Accept:"application/json",...a,...n.getCustomHeaders()};if(!o){const e=Sr();e&&(h.Authorization=`Bearer ${e}`)}return new Promise(e=>{const a=new XMLHttpRequest;let o=!1;const m=t=>{o||(o=!0,l?.removeEventListener("abort",T),e(t))},y=(e,r)=>{const s=Date.now()-f;i||n.logger.error({message:`bridgedUpload ${g} ${t} ${e.toLowerCase()}`,api_name:"bridgedUpload",request_id:p,method:g,url:t,status:e,duration:s,error_message:r}),m({error:{status:e,data:r}})},T=()=>a.abort();a.open(r,t,!0),a.timeout=d;for(const[e,t]of Object.entries(h))a.setRequestHeader(e,t);if(u&&(a.upload.onprogress=e=>u(e.loaded,e.lengthComputable?e.total:0)),c&&(a.upload.onload=()=>c()),a.onload=()=>{const e=Date.now()-f,r=a.getResponseHeader("x-request-id")??p;let s;try{s=a.responseText?JSON.parse(a.responseText):void 0}catch{s=a.responseText}if(a.status<200||a.status>=300)return i||n.logger.error({message:`bridgedUpload ${g} ${t} failed (${a.status})`,api_name:"bridgedUpload",request_id:r,method:g,url:t,status:a.status,duration:e,error_data:s}),void m({error:{status:a.status,data:s}});m({data:s})},a.onerror=()=>y("FETCH_ERROR","Network error"),a.ontimeout=()=>y("TIMEOUT_ERROR","Request timed out"),a.onabort=()=>y("ABORT_ERROR","Upload cancelled"),l){if(l.aborted)return void y("ABORT_ERROR","Upload cancelled");l.addEventListener("abort",T)}a.send(s)})}({url:n.API_ENDPOINTS.DOCUMENTS(),method:"POST",body:i,onUploadProgress:a,onUploadComplete:o});return c?{error:c}:{data:u}}}),deleteDocument:e.mutation({queryFn:async e=>{const{error:t}=await Er({url:n.API_ENDPOINTS.DOCUMENT(e),method:"DELETE",responseHandler:"text"});return t?{error:t}:{data:{success:!0}}}}),getToolServers:e.query({query:()=>({url:n.API_ENDPOINTS.TOOL_SERVERS,method:"GET"}),transformResponse:e=>e?.data??{tool_servers:[]},providesTags:["toolServers"]}),startToolServerOAuth:e.mutation({query:e=>({url:n.API_ENDPOINTS.TOOL_SERVER_AUTH_START(e),method:"POST"}),transformResponse:e=>e?.data??{authorize_url:""}}),deleteToolServerConnection:e.mutation({query:e=>({url:n.API_ENDPOINTS.TOOL_SERVER_AUTH_CONNECTION(e),method:"DELETE"}),invalidatesTags:["toolServers"]}),exchangeOAuthCode:e.mutation({query:({code:e,state:t})=>({url:n.API_ENDPOINTS.TOOL_SERVERS_SIGN_IN_EXCHANGE,method:"POST",body:{code:e,state:t}}),invalidatesTags:["toolServers"]}),deleteConversation:e.mutation({query:({conversationId:e})=>({url:`${n.API_ENDPOINTS.CONVERSATIONS()}/${e}`,method:"DELETE"}),extraOptions:{bridge:{skipErrorToast:!0}}})})}),{useCreateConversatonsMutation:wr,useTranscribeAudioMutation:Rr,useUploadDocumentMutation:Ir,useDeleteDocumentMutation:xr,useExchangeOAuthCodeMutation:Or,useGetConversationHistoryQuery:kr,useLazyGetConversationByIdQuery:Cr,useDeleteConversationMutation:Nr,useGetToolServersQuery:Pr,useStartToolServerOAuthMutation:Mr,useDeleteToolServerConnectionMutation:Dr}=Ar,qr={bridge:{skipErrorToast:!0,skipTokenRefresh:!0}},Ur=cr({reducerPath:"brandingApi",baseQuery:Tr,keepUnusedDataFor:0,endpoints:e=>({getBranding:e.query({query:e=>({url:n.API_ENDPOINTS.BRANDING,method:"GET",_bridge:{skipAuth:!e}}),extraOptions:qr})})}),{useGetBrandingQuery:Lr}=Ur,Fr={bridge:{skipErrorToast:!0,skipTokenRefresh:!0,retry:{maxRetries:0}}},Qr=cr({reducerPath:"configApi",baseQuery:Tr,keepUnusedDataFor:1/0,endpoints:e=>({getConfig:e.query({query:()=>({url:n.API_ENDPOINTS.CONFIG,method:"GET",_bridge:{skipAuth:!0},timeout:n.TIMING.CONFIG_TIMEOUT_MS}),extraOptions:Fr})})}),{useGetConfigQuery:jr}=Qr,Hr=cr({reducerPath:"profileApi",baseQuery:Tr,keepUnusedDataFor:0,tagTypes:["profile"],endpoints:e=>({getProfile:e.query({query:()=>({url:n.API_ENDPOINTS.PROFILE,method:"GET"}),extraOptions:{bridge:{skipErrorToast:!0}},transformResponse:e=>e?.data??null,providesTags:["profile"]}),updateProfile:e.mutation({query:e=>({url:n.API_ENDPOINTS.PROFILE,method:"PUT",body:e}),async onQueryStarted(e,{dispatch:t,queryFulfilled:r}){try{await r,t(Hr.util.updateQueryData("getProfile",void 0,t=>{t&&(void 0!==e.name&&(t.name=e.name),void 0!==e.phone&&(t.phone=e.phone))}))}catch{}}}),deleteAccount:e.mutation({query:()=>({url:n.API_ENDPOINTS.AUTH_ME,method:"DELETE"})}),updatePassword:e.mutation({query:e=>({url:n.API_ENDPOINTS.CHANGE_PASSWORD,method:"PUT",body:e}),extraOptions:{bridge:{skipErrorToast:!0,skipTokenRefresh:!0}},transformResponse:e=>e?.data?.message??null}),resolveIdentity:e.mutation({query:e=>({url:n.API_ENDPOINTS.PROFILE,method:"GET",headers:{Authorization:`Bearer ${e}`},_bridge:{skipAuth:!0,skipTokenRefresh:!0,skipErrorToast:!0,retry:{maxRetries:0}}}),transformResponse:e=>e?.data?.email?.trim().toLowerCase()||null})})}),{useGetProfileQuery:$r,useUpdateProfileMutation:zr,useDeleteAccountMutation:Kr,useUpdatePasswordMutation:Gr}=Hr,Br=[Ar,Ur,Qr,Hr],Vr={[Ar.reducerPath]:Ar.reducer,[Ur.reducerPath]:Ur.reducer,[Qr.reducerPath]:Qr.reducer,[Hr.reducerPath]:Hr.reducer},Wr=[Ar.middleware,Ur.middleware,Qr.middleware,Hr.middleware],Yr={isAgentWorking:!0,statusText:null,responseStartTime:null,messageQueue:[],pendingTranscriptionIds:[]},Xr=e.createSlice({name:"chat",initialState:Yr,reducers:{setIsAgentWorking(e,t){e.isAgentWorking=t.payload},setStatusText(e,t){e.statusText=t.payload},setResponseStartTime(e,t){e.responseStartTime=t.payload},enqueueMessage(e,t){e.messageQueue.push(t.payload)},dequeueMessage(e){e.messageQueue.shift()},clearMessageQueue(e){e.messageQueue=[]},addPendingTranscriptionId(e,t){e.pendingTranscriptionIds.push(t.payload)},clearPendingTranscriptionIds(e){e.pendingTranscriptionIds=[]},resetChatState:()=>Yr},extraReducers:t=>{t.addMatcher(e.isAnyOf(n.clearSession,n.sessionExpired),()=>Yr)}}),{setIsAgentWorking:Jr,setStatusText:Zr,setResponseStartTime:en,enqueueMessage:tn,dequeueMessage:rn,clearMessageQueue:nn,addPendingTranscriptionId:sn,clearPendingTranscriptionIds:an,resetChatState:on}=Xr.actions,un=Xr.reducer,cn={activeConversationId:null,titles:{}},dn=e.createSlice({name:"conversations",initialState:cn,reducers:{setActiveConversationId(e,t){e.activeConversationId=t.payload},upsertConversationTitle(e,t){const{id:r,title:n}=t.payload;r&&n.trim()&&(e.titles[r]=n)}},extraReducers:t=>{t.addMatcher(e.isAnyOf(n.clearSession,n.sessionExpired),()=>cn)}}),{setActiveConversationId:ln,upsertConversationTitle:pn}=dn.actions,fn=dn.reducer;let gn=null;function hn(e){gn=e}const mn=e.combineReducers({...Vr,auth:n.sessionReducer,chat:un,conversations:fn,indicator:n.indicatorReducer}),yn={ignoredPaths:["chatApi.queries","chatApi.mutations","brandingApi.queries","brandingApi.mutations","configApi.queries","configApi.mutations","profileApi.queries","profileApi.mutations"],ignoredActions:["chatApi/executeQuery/fulfilled","chatApi/executeMutation/fulfilled","brandingApi/executeQuery/rejected","brandingApi/executeQuery/fulfilled","configApi/executeQuery/rejected","configApi/executeQuery/fulfilled","profileApi/executeQuery/rejected","profileApi/executeQuery/fulfilled","profileApi/executeMutation/rejected","profileApi/executeMutation/fulfilled"],ignoredActionPaths:["payload.error","error","meta.baseQueryMeta","meta.arg.originalArgs.audioFile","meta.arg.originalArgs.file","meta.arg.originalArgs.onUploadProgress","meta.arg.originalArgs.onUploadComplete"]},Tn=e.configureStore({reducer:mn,middleware:e=>e({serializableCheck:yn}).prepend(n.sessionListenerMiddleware.middleware).concat(Wr)});var Sn;Sn=Tn.dispatch,function(){const[e,t,r,n]=[nt,st,at,ot].map(e=>()=>Sn(e())),s=()=>{"visible"===window.document.visibilityState?e():t()};if(!it&&"undefined"!=typeof window&&window.addEventListener){let t=function(e){Object.entries(a).forEach(([t,r])=>{e?window.addEventListener(t,r,!1):window.removeEventListener(t,r)})};const a={[et]:e,[rt]:s,[Je]:r,[Ze]:n};t(!0),it=!0}}(),n.setAccessTokenReader(()=>Tn.getState().auth.accessToken),n.setTokenExpiresAtReader(()=>Tn.getState().auth.tokenExpiresAt),hn(()=>Tn.getState());const _n=()=>{const e=jr(),{isError:t,isFetching:n,refetch:s}=e,a=r.useRef(!1);return r.useEffect(()=>{!t||n||a.current||(a.current=!0,s())},[t,n,s]),e},En=r.createContext(void 0),vn=()=>{const e=r.useContext(En);if(!e)throw new Error("useProtocol must be used within a ProtocolProvider");return e};var bn=(e=>(e.START="start",e.TEXT="text",e.WIDGET="widget",e.STATUS_UPDATE="status_update",e.CLEAR_STATUS="clear_status",e.PAYMENT="payment",e.SIGN_IN="sign_in",e.REQUEST_DOCUMENTS="request_documents",e.CONVERSATION_TITLE="conversation_title",e.END="end",e))(bn||{});let An=class extends Error{constructor(e){super(),this.reopen=e}};class wn{type="mtx";config;constructor(e){this.config=e}streamMessage(e){const t=e.debugMode?this.config.getDebugUrl():this.config.getStreamUrl(e.conversationId);return this.createStreamHandle(t,{message:e.message,...e.transcriptionIds?.length?{transcription_ids:e.transcriptionIds}:{},...e.modelContext?.length?{model_context:e.modelContext}:{},...e.body||{}})}streamInitial(e){const t=this.config.getInitialStreamUrl(e.conversationId);return this.createStreamHandle(t,{...e.body||{}})}normalizeEvent(e){const{parsed:t,eventType:r,isStreamEnd:n,requestId:s}=e;if(n)return{type:"stream_end",data:{isEnd:!0},timestamp:Date.now(),requestId:s};const a=(r||"").toLowerCase(),{type:o,data:i}=this.mapSSEEvent(a,t);return{type:o,data:i,timestamp:Date.now(),requestId:s}}mapSSEEvent(e,t){switch(e){case"text":return{type:"text",data:{text:t.token||""}};case"widget":return{type:"widget",data:{widget:t}};case"status_update":return{type:"status_update",data:{statusText:t.text||""}};case"clear_status":return{type:"status_update",data:{statusText:""}};case"payment":return{type:"payment",data:{payment:t}};case"sign_in":return{type:"sign_in",data:{signIn:{authorize_url:t.authorize_url,state:t.state}}};case"request_documents":return{type:"request_documents",data:{requestDocuments:{}}};case"conversation_title":return{type:"conversation_title",data:{conversationTitle:t.text||""}};default:return t.token?{type:"text",data:{text:t.token}}:t.text?{type:"text",data:{text:t.text}}:{type:"text",data:{text:""}}}}createStreamHandle(e,t){let r=new AbortController,a=0,o="",i=!1;const u=[];let c=null,d=!1,l=null;const p=e=>{c?c.onEvent(e):u.push(e)},f=e=>{c?c.onError(e):l=e},g=()=>{d=!0,c&&c.onComplete()},h=async()=>{try{await(this.config.ensureFreshToken?.()),await s.fetchEventSource(e,{method:"POST",headers:{"Content-Type":"application/json",...this.config.getAuthToken()?{Authorization:`Bearer ${this.config.getAuthToken()}`}:{},...this.config.getCustomHeaders()},body:JSON.stringify(t),signal:r.signal,onopen:async e=>{if(401===e.status&&!i){i=!0,n.logger.warn({message:"MTX SSE rejected with 401 — refreshing token",api_name:"mtx-sse"});const e=await(this.config.forceRefreshToken?.());throw e||(n.logger.error({message:"MTX SSE 401 refresh failed — clearing session",api_name:"mtx-sse"}),this.config.onAuthExpired?.()),new An(Boolean(e))}const t=e.headers.get("x-request-id");t&&(o=t)},onmessage:e=>{if("[DONE]"===e.data)return;const t=(e.event||"").toLowerCase(),r=new Set(Object.values(bn));if("status_update"!==t&&"clear_status"!==t||n.logger.debug({message:"MTX SSE status event received",api_name:"mtx-sse",sse_event:t,allowed:r.has(t)}),!t||r.has(t))try{const r=t===bn.END;let n;try{n=JSON.parse(e.data)}catch{return}if(!r&&t!==bn.CLEAR_STATUS&&t!==bn.REQUEST_DOCUMENTS&&n&&"object"==typeof n&&0===Object.keys(n).length)return;const s=this.normalizeEvent({parsed:n,eventType:e.event,isStreamEnd:r,requestId:n.request_id||o||""});p(s),r&&"stream_end"!==s.type&&p({type:"stream_end",data:{isEnd:!0},timestamp:Date.now(),requestId:o})}catch(e){n.logger.error({message:"Failed to parse MTX SSE message",api_name:"mtx-sse",error_message:e instanceof Error?e.message:String(e)})}else n.logger.debug({message:"Ignoring unrecognized MTX SSE event type",api_name:"mtx-sse",sse_event:e.event})},onerror:e=>{if(e instanceof An)throw e;if(a++,a>=5)throw r.abort(),f(e instanceof Error?e:new Error(String(e))),e;throw e},onclose:()=>{g()},openWhenHidden:!0})}catch(e){if(e instanceof An)return e.reopen&&!r.signal.aborted?(r=new AbortController,h()):void(d||g());d||(r.signal.aborted||f(e instanceof Error?e:new Error(String(e))),g())}};return h(),{subscribe(e){c=e;for(const t of u)e.onEvent(t);return u.length=0,l&&(e.onError(l),l=null),d&&e.onComplete(),()=>{c=null}},abort(){r.abort()}}}}function Rn(e){if("string"!=typeof e)return!1;try{return"https:"===new URL(e).protocol}catch{return!1}}class In extends Error{constructor(e){super(),this.reopen=e}}class xn{type="agui";config;constructor(e){this.config=e}streamMessage(e){const t=e.debugMode?this.config.getDebugUrl():this.config.getStreamUrl(e.conversationId);return this.createStreamHandle(t,{message:e.message,...e.transcriptionIds?.length?{transcription_ids:e.transcriptionIds}:{},...e.modelContext?.length?{model_context:e.modelContext}:{},...e.body||{}})}streamInitial(e){const t=this.config.getInitialStreamUrl(e.conversationId);return this.createStreamHandle(t,{...e.body||{}})}normalizeEvent(e){const t=e,{type:r,data:n}=this.mapEventType(t);return{type:r,data:n,timestamp:Date.now(),requestId:t.runId||""}}mapEventType(e){switch((e.type||"").toUpperCase()){case"TEXT_MESSAGE_CONTENT":return{type:"text",data:{text:e.delta||""}};case"TEXT_MESSAGE_END":case"RUN_FINISHED":return{type:"stream_end",data:{isEnd:!0}};case"RUN_ERROR":return{type:"error",data:{error:e.error||"Unknown AG-UI run error"}};case"STATE_SNAPSHOT":return this.mapStateSnapshot(e);case"CUSTOM":return this.mapCustomEvent(e);case"PAYMENT":{const t=e?.value?.data??e.payload;return t?.provider&&t?.config&&n.getPaymentId(t)&&("chargebee"!==t.provider||t.config?.hosted_page_url)&&("atb"!==t.provider||Rn(t.config?.url))?{type:"payment",data:{payment:t}}:{type:"text",data:{text:""}}}case"CONVERSATION_TITLE":{const t=e?.value?.data??e.payload,r=t?.text??t?.title;return{type:"conversation_title",data:{conversationTitle:"string"==typeof r?r:""}}}default:return{type:"text",data:{text:""}}}}mapStateSnapshot(e){return{type:"widget",data:{widget:e.state||e.payload||{}}}}mapCustomEvent(e){const t=e.payload||e?.value?.data||{},r=e.name||"custom";return n.logger.debug({message:"AG-UI mapCustomEvent",api_name:"agui-sse",event_name:r}),"widget"===r?{type:"widget",data:{widget:{eventName:r,...e?.value?.data}}}:Object.keys(t).length>0?{type:"widget",data:{widget:{eventName:e.eventName,...t}}}:{type:"text",data:{text:""}}}createStreamHandle(e,t){let r=new AbortController,a=0,o="",i=!1;const u=[];let c=null,d=!1,l=null;const p=e=>{c?c.onEvent(e):u.push(e)},f=e=>{c?c.onError(e):l=e},g=()=>{d=!0,c&&c.onComplete()},h=async()=>{try{await(this.config.ensureFreshToken?.()),await s.fetchEventSource(e,{method:"POST",headers:{"Content-Type":"application/json",...this.config.getAuthToken()?{Authorization:`Bearer ${this.config.getAuthToken()}`}:{},...this.config.getCustomHeaders()},body:JSON.stringify(t),signal:r.signal,onopen:async e=>{if(401===e.status&&!i){i=!0,n.logger.warn({message:"AG-UI SSE rejected with 401 — refreshing token",api_name:"agui-sse"});const e=await(this.config.forceRefreshToken?.());throw e||(n.logger.error({message:"AG-UI SSE 401 refresh failed — clearing session",api_name:"agui-sse"}),this.config.onAuthExpired?.()),new In(Boolean(e))}const t=e.headers.get("x-request-id");t&&(o=t)},onmessage:e=>{n.logger.debug({message:"AG-UI SSE event",api_name:"agui-sse",sse_event:e.event});const t=(e.event||"").toLowerCase(),r=new Set(Object.values(bn));if(!t||r.has(t))if(t!==bn.END){if("[DONE]"!==e.data)try{let r;try{r=JSON.parse(e.data)}catch(t){return void n.logger.error({message:"AG-UI JSON parse error",api_name:"agui-sse",error_message:t instanceof Error?t.message:String(t),raw_data:e.data})}if(r&&"object"==typeof r&&0===Object.keys(r).length)return;r.runId&&(o=r.runId);const s=t===bn.CONVERSATION_TITLE?{...r,type:"CONVERSATION_TITLE",payload:r,runId:r.runId||o}:{...r,runId:r.runId||o},a=this.normalizeEvent(s);p(a)}catch(e){n.logger.error({message:"Failed to handle AG-UI message",api_name:"agui-sse",error_message:e instanceof Error?e.message:String(e)})}}else p(this.normalizeEvent({type:"RUN_FINISHED",runId:o}));else n.logger.debug({message:"AG-UI ignoring unknown SSE event type",api_name:"agui-sse",sse_event:e.event})},onerror:e=>{if(e instanceof In)throw e;if(a++,a>=5)throw r.abort(),f(e instanceof Error?e:new Error(String(e))),e;throw e},onclose:()=>{g()},openWhenHidden:!0})}catch(e){if(e instanceof In)return e.reopen&&!r.signal.aborted?(r=new AbortController,h()):void(d||g());d||(r.signal.aborted||f(e instanceof Error?e:new Error(String(e))),g())}};return h(),{subscribe(e){c=e;for(const t of u)e.onEvent(t);return u.length=0,l&&(e.onError(l),l=null),d&&e.onComplete(),()=>{c=null}},abort(){r.abort()}}}}class On{segments=[];error="";requestId="";statusText="";streamComplete=!1;startTimestamp=null;processEvent(e){null===this.startTimestamp&&(this.startTimestamp=e.timestamp),e.requestId&&(this.requestId=e.requestId);const{data:t}=e;if(!("isEnd"in t))return"error"in t?(this.error=t.error,void("text"in t&&t.text&&this.appendText(t.text))):void("statusText"in t?this.statusText=t.statusText:"payment"in t||("widget"in t?this.segments.push({type:"widget",id:n.generateUniqueId(),content:t.widget}):"text"in t&&this.appendText(t.text)));this.streamComplete=!0}appendText(e){const t=this.segments[this.segments.length-1];t&&"text"===t.type?t.text+=e:this.segments.push({type:"text",id:n.generateUniqueId(),text:e})}toMessages(){if(0===this.segments.length){const e=n.generateUniqueId();return[{id:e,msg_id:e,sender:"agent",message:"",timestamp:(new Date).toISOString(),tookMs:this.startTimestamp?Date.now()-this.startTimestamp:0,error:this.error||void 0,request_id:this.requestId||void 0}]}const e=(new Date).toISOString(),t=this.segments.map(t=>{const r={id:t.id,msg_id:t.id,sender:"agent",message:"",timestamp:e};switch(t.type){case"text":r.message=t.text;break;case"widget":r.widget=[t.content],r.message_type=["widget"]}return r}),r=t[t.length-1];return r.tookMs=this.startTimestamp?Date.now()-this.startTimestamp:0,r.error=this.error||void 0,r.request_id=this.requestId||void 0,t}getStatusText(){return this.statusText}isStreamComplete(){return this.streamComplete}reset(){this.segments=[],this.error="",this.requestId="",this.statusText="",this.streamComplete=!1,this.startTimestamp=null}}async function kn(e,t){const{data:r,error:s,response:a}=await Er({url:n.getApiUrl(n.AUTH_PATHS.LOGIN),method:"POST",body:{email:e,password:t},skipAuth:!0});if(s||!a)throw r??s;return{body:r,tokens:n.extractTokens(a)}}async function Cn(){const{data:e,error:t,response:r}=await Er({url:n.getApiUrl(n.AUTH_PATHS.GUEST),method:"POST",skipAuth:!0});if(t||!r)throw e??t;return{body:e,tokens:n.extractTokens(r)}}async function Nn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SIGNUP),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return n.isVerificationRequired(t?.data)?{body:t}:{body:t,tokens:n.extractTokens(s)}}async function Pn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.VERIFY_EMAIL),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return s.headers.get(n.AUTH_HEADERS.ACCESS_TOKEN)?{body:t,tokens:n.extractTokens(s)}:{body:t}}async function Mn(e,t){await Er({url:n.getApiUrl(n.AUTH_PATHS.LOGOUT),method:"POST",body:e,keepalive:t?.keepalive})}async function Dn(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.REFRESH),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return{body:t,tokens:n.extractTokens(s)}}function qn(e){const s=t.useStore(),[a,o]=r.useState(!1);return{run:r.useCallback(async(...t)=>{o(!0);try{const{body:r,tokens:a}=await e(...t);return r.success&&r.data?(a&&!n.isVerificationRequired(r.data)&&s.dispatch(n.setSession({user:r.data.user,accessToken:a.accessToken,refreshToken:a.refreshToken,expiresIn:r.data.expiry_time})),{success:!0,data:r}):{success:!1,error:r}}catch(e){return{success:!1,error:e}}finally{o(!1)}},[s,e]),isLoading:a}}function Un(){const{run:e,isLoading:t}=qn(Cn);return{guestLogin:e,isLoading:t}}const Ln="1interface_inherit_identity_reload_at",Fn="1interface_inherit_identity_unverified",Qn=[250,750],jn=e=>new Promise(t=>setTimeout(t,e)),Hn=e=>"FETCH_ERROR"===e||"TIMEOUT_ERROR"===e||"number"==typeof e&&e>=500,$n="rejected",zn="unknown";function Kn(e,t){let r=0,s=null,a=null;const o=()=>e.getState().auth?.accessToken??null,i=async t=>{for(let r=0;;r++){const n=e.dispatch(Hr.endpoints.resolveIdentity.initiate(t));try{const e=await n.unwrap();return e?{email:e}:zn}catch(e){const t=e?.status;if(401===t)return $n;if(!Hn(t)||r>=Qn.length)return zn}finally{n.reset()}await jn(Qn[r])}};let u=null;const c=()=>{const r=o();if(!t.onUserChanged||!r)return;u?.unsubscribe();const n=e.dispatch(Hr.endpoints.getProfile.initiate(void 0,{forceRefetch:!0}));u=n,n.unwrap().then(e=>{const t=e?.email?.trim().toLowerCase();t&&o()===r&&null===a&&(a=t)},()=>{})},d=async(e=!1)=>{const r=n.getStorageRef();return e&&await(r?.setItem(Fn,"1")),await(r?.setItem(Ln,String(Date.now()))),await(r?.removeItem(n.STORAGE_KEYS.ACTIVE_CONVERSATION_ID)),t.onUserChanged?.(),await jn(1e4),t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.TOKEN_REJECTED),null},l=async(u=!1)=>{let p;try{p=await t.getToken()}catch(e){return n.logger.warn({message:"Inherited token request failed",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.NO_TOKEN),null}if(null!==s&&p.accessToken===s)return null;const f=e.getState(),g=f.auth?.accessToken??null;if(p.accessToken===g)return n.isTokenExpired(f.auth?.tokenExpiresAt??null)?(r+=1,r>=2?(n.logger.warn({message:"Inherited token unchanged after refresh; treating as rejected",api_name:"auth-refresh"}),s=p.accessToken,t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.TOKEN_REJECTED),null):{accessToken:p.accessToken}):(r=0,{accessToken:p.accessToken});r=0,s=null;const h=null!=p.expiresAt?p.expiresAt/1e3:void 0,m=()=>(e.dispatch(n.setSession({accessToken:p.accessToken,refreshToken:null,...null!=h?{expiresIn:h}:{}})),{accessToken:p.accessToken,...null!=h?{expiresIn:h}:{}});if(null===g){a=null;const e=m();return c(),e}if(!t.onUserChanged)return m();const y=await i(p.accessToken);if(o()!==g)return u?null:l(!0);if(y===$n)return s=p.accessToken,t.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.TOKEN_REJECTED),null;if(y===zn)return d(!0);if(null===a){const e=await i(g);if(o()!==g)return u?null:l(!0);if(e===$n)return d();if(e===zn)return d(!0);a=e.email}return y.email===a?m():await(async()=>{const e=Number(await(n.getStorageRef()?.getItem(Ln)));return Number.isFinite(e)&&Date.now()-e<6e4})()?(n.logger.warn({message:"Inherited token belongs to another user; failing closed: switched again within 60 s",api_name:"auth-refresh"}),d(!0)):d()},p=n.createTokenRefresher({performRefresh:()=>l(),isTransient:()=>!1});return Object.assign(p,{captureBaseline:c})}const Gn={WEB:"Web",MOBILE:"Mobile"},Bn={GUEST_ONLY:"guest_only",SIGN_IN_ONLY:"sign_in_only",GUEST_AND_SIGN_IN:"guest_and_sign_in",INHERIT:"inherit"},Vn=Object.values(Bn);function Wn(e,t){const r=e?.data?.auth_mode_config?.[t];return Vn.includes(r)?r:Bn.SIGN_IN_ONLY}const Yn={INITIAL:["Working on it","Just a moment","Reviewing your request","Looking into that","One moment, please","Checking"],LATER:["Almost ready","Gathering the details","Finishing up","Getting things in order","Preparing your answer","Wrapping this up"],ROTATION_INTERVAL_MS:5e3,PHASE_SWITCH_MS:4e3},Xn={MESSAGE_PAGE_SIZE:25},Jn=1e3;function Zn(e){return!e.widget?.length}function es(e){const t=n.generateUniqueId(),r={id:`agent-${t}`,msg_id:t,sender:"agent",message:"",timestamp:e.created_at?String(e.created_at):""};return"widget"===e.type?e.content&&"object"==typeof e.content&&(r.widget=[e.content],r.message_type=["widget"]):e.content&&"string"==typeof e.content&&(r.message=e.content),r}function ts(e){const t=[];for(const r of e){const e=r.created_at?String(r.created_at):"";if("user"!==r.role)if("system"!==r.role){if("assistant"===r.role){if(r.tool_calls?.length)continue;const e=t[t.length-1];if((!r.type||"text_delta"===r.type)&&"agent"===e?.sender&&Zn(e)){e.message=e.message+(r.content||"");continue}t.push(es(r));continue}}else r.content&&t.push({id:`system-${n.generateUniqueId()}`,sender:"system",message:"string"==typeof r.content?r.content:"",timestamp:e});else(r.content||r.documents?.length)&&t.push({id:`user-${n.generateUniqueId()}`,sender:"user",message:"string"==typeof r.content?r.content:"",timestamp:e,...r.documents?.length?{documents:r.documents}:{}})}return t}function rs(e){return"string"==typeof e&&e.trim()?e:null}const ns=e=>null==e||"string"==typeof e&&""===e.trim(),ss=e=>{const t=["widget","error"],r=e=>!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.length||"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length);for(const n of t)if(r(e[n]))return!0;return!1};function as(e,t){const r=[];return e?.length&&r.push({type:n.MODEL_CONTEXT_PART_TYPES.DOCUMENTS,document_ids:e.map(e=>e.document_id)}),t&&t.length>Jn?n.logger.warn({message:"modelText exceeds the text-part limit; sending the turn without it",api_name:"chat-send",length:t.length,max_length:Jn}):t&&r.push({type:n.MODEL_CONTEXT_PART_TYPES.TEXT,text:t}),r.length?r:void 0}function os(e,t){return{...Object.keys(e).length?{client_metadata:e}:{},...t?{locale:t}:{}}}function is(e,t){if(null==e||!t)return null;const r=e/100,n=t.toUpperCase();try{return new Intl.NumberFormat("en-US",{style:"currency",currency:n}).format(r)}catch{return`${n} ${r.toFixed(2)}`}}function us(e){if("success"===e.status){const t=is(e.amount,e.currency);return`The payment${t?` of ${t}`:""} is successfully completed.`}return"failure"===e.status?"The payment failed."+(e.paymentId?` The reference ID is ${e.paymentId}.`:""):"Payment cancelled."}const cs={SESSION_INVALID:"session_invalid",LOAD_FAILED:"load_failed"},ds="Verify the payment.",ls={atb:function(e){if("success"===e.status){const t=is(e.amount,e.currency);return{text:`The payment${t?` of ${t}`:""} is completed.`,modelText:ds}}return"failure"===e.status?e.code===cs.SESSION_INVALID?{text:"The payment session has expired or is no longer valid."}:e.code===cs.LOAD_FAILED?{text:"The payment failed."}:{text:"The payment failed.",modelText:ds}:{text:"Payment cancelled.",modelText:ds}}};function ps(e){return ls[e.provider]?.(e)??{text:us(e)}}const fs=({sendMessageRef:e})=>{const[t,s]=r.useState(null),a=r.useCallback(e=>{s(e)},[]),o=r.useCallback(()=>s(null),[]),i=r.useCallback(t=>{if("failure"===t.status&&t.message&&"stripe"!==t.provider&&n.showErrorToast(t.message),e.current){const{text:r,modelText:n}=ps(t);n?e.current(r,void 0,{modelText:n}):e.current(r)}else n.logger.error({message:"Payment result dropped: sendMessageRef is null",api_name:"payment-result-dispatch",status:t.status});a(null)},[e,a]);return{paymentInit:t,setPaymentInit:a,clearPaymentInit:o,handlePaymentResult:i}};async function gs(e){try{const t=await e.getItem(n.STORAGE_KEYS.LOCATION_CACHE);if(!t)return null;const r=JSON.parse(t);return Date.now()-r.timestamp<36e5?r.location:(await e.removeItem(n.STORAGE_KEYS.LOCATION_CACHE),null)}catch{return null}}const hs=()=>{const[e,t]=r.useState(!1),[s,a]=r.useState(null),o=n.useStorage(),i=r.useCallback(async()=>{const e=await gs(o);if(e)return e;if(!("geolocation"in navigator))return a("Geolocation is not supported by this browser"),null;if("https:"!==window.location.protocol&&"localhost"!==window.location.hostname)return a("Geolocation requires HTTPS"),null;t(!0),a(null);try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=await new Promise((e,t)=>{navigator.geolocation.getCurrentPosition(e,t,{enableHighAccuracy:!1,timeout:8e3,maximumAge:6e5})}),{latitude:r,longitude:s}=t.coords;let a="";try{const e=await fetch(`https://nominatim.openstreetmap.org/reverse?lat=${r}&lon=${s}&format=json`,{headers:{"Accept-Language":"en","User-Agent":"1interface-chat/1.0"}});e.ok&&(a=(await e.json()).display_name??"")}catch(e){n.logger.warn({message:"Reverse geocoding failed",api_name:"user-location",error_message:e instanceof Error?e.message:String(e)})}const i={latitude:r,longitude:s,address:a,timezone:e};return await async function(e,t){try{const r={location:t,timestamp:Date.now()};await e.setItem(n.STORAGE_KEYS.LOCATION_CACHE,JSON.stringify(r))}catch{}}(o,i),i}catch(e){if(e&&"number"==typeof e.code)switch(e.code){case 1:a("Location permission denied");break;case 2:a("Location information unavailable");break;case 3:a("Location request timed out");break;default:a("Failed to retrieve location")}else a("Failed to get location");return null}finally{t(!1)}},[o]);return{getUserLocation:i,isLoading:e,error:s}},ms=e=>{const[t,n]=r.useState(()=>"undefined"!=typeof window&&window.matchMedia(e).matches);return r.useEffect(()=>{if("undefined"==typeof window)return;const t=window.matchMedia(e),r=e=>{n(e.matches)};return n(t.matches),t.addEventListener("change",r),()=>{t.removeEventListener("change",r)}},[e]),t};function ys({paymentInit:e,onPaymentResult:t,onClearPaymentInit:s}){const a=r.useRef(new Set),o=n.getPaymentId(e);return{handlePaymentResult:r.useCallback(e=>{("success"===e.status||"failure"===e.status)&&o&&a.current.add(o),t?.(e)},[t,o]),handleModalOpenChange:r.useCallback(r=>{!r&&e&&(!!o&&a.current.has(o)||t?.({status:"cancel",provider:e.provider}),s?.())},[e,o,t,s])}}function Ts(e){const t=e.trim().split(/\s+/);return 1===t.length?e.charAt(0).toUpperCase():(t[0].charAt(0)+t[1].charAt(0)).toUpperCase()}const Ss={NORMAL:"normal",RECORDING:"recording",TRANSCRIBING:"transcribing"},_s=e=>{for(let t=e.length-1;t>=0;t--)if("user"===e[t].sender)return t;return-1},Es=e=>{const n=t.useSelector(e=>!!e.voice?.isAgentWorking),s=t.useSelector(e=>e.voice?.statusText??null),a=t.useSelector(e=>e.voice?.responseStartTime??null),o=t.useSelector(e=>e.chat.isAgentWorking),i=t.useSelector(e=>e.chat.statusText??null),u=t.useSelector(e=>e.chat.responseStartTime),c=t.useSelector(e=>e.indicator.lastResponseTime),d=e?n:o,l=e?s:i,p=e?a:u;return r.useMemo(()=>({isAgentWorking:d,statusText:l??void 0,responseStartTime:p,lastResponseTime:c}),[d,l,p,c])},vs=[],bs=r.createContext(null);let As=0;class ws{mediaRecorder=null;audioChunks=[];stream=null;audioContext=null;analyser=null;dataArray=null;animationFrameId=null;onAudioLevel;async startRecording(e){try{if(this.onAudioLevel=e,!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new Error("Microphone access requires HTTPS. Please access the app via https:// or localhost.");this.stream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,sampleRate:24e3,echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),e&&(this.audioContext=new AudioContext,this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=256,this.audioContext.createMediaStreamSource(this.stream).connect(this.analyser),this.dataArray=new Uint8Array(this.analyser.frequencyBinCount),this.analyzeAudio());const t=this.getSupportedMimeType();this.mediaRecorder=new MediaRecorder(this.stream,{mimeType:t}),this.audioChunks=[],this.mediaRecorder.ondataavailable=e=>{e.data.size>0&&this.audioChunks.push(e.data)},this.mediaRecorder.start()}catch(e){throw this.cleanup(),e}}async stopRecording(){return new Promise((e,t)=>{this.mediaRecorder?(this.mediaRecorder.onstop=()=>{const t=this.mediaRecorder?.mimeType||"audio/webm",r=t.includes("webm")?"webm":"ogg",n=new Blob(this.audioChunks,{type:t}),s=new File([n],`audio.${r}`,{type:t});this.cleanup(),e(s)},this.mediaRecorder.stop(),this.stream&&this.stream.getTracks().forEach(e=>e.stop())):t(new Error("MediaRecorder not initialized"))})}analyzeAudio(){if(!this.analyser||!this.dataArray)return;this.analyser.getByteFrequencyData(this.dataArray);let e=0;for(let t=0;t<this.dataArray.length;t++)e+=this.dataArray[t];const t=Math.min(e/this.dataArray.length/128,1);this.onAudioLevel&&this.onAudioLevel(t),this.animationFrameId=requestAnimationFrame(()=>this.analyzeAudio())}getSupportedMimeType(){const e=["audio/webm;codecs=opus","audio/webm","audio/ogg;codecs=opus","audio/ogg"];for(const t of e)if(MediaRecorder.isTypeSupported(t))return t;return"audio/webm"}cleanup(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.audioContext&&(this.audioContext.close(),this.audioContext=null),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=null),this.analyser=null,this.dataArray=null,this.mediaRecorder=null,this.audioChunks=[],this.onAudioLevel=void 0}}const Rs={HOLD:"hold",TAP:"tap"},Is="Microphone access is required. Please allow microphone permissions in your browser settings.",xs=async()=>{try{return navigator.permissions?.query?(await navigator.permissions.query({name:"microphone"})).state:"unknown"}catch{return"unknown"}},Os="OAUTH_SUCCESS",ks="OAUTH_ERROR",Cs=Os,Ns=ks,Ps={conversations:{disable_old_widgets:!1,allow_conversation_deletion:!0,show_conversation_history:!0},voice_agent:{enabled:!0,show_customization_modal:!1,assistant_starts_conversation:!0},stt:{enabled:!0},documents:{max_bytes:26214400,max_documents:25,allowed_mime_types:null},features:[n.FEATURE_FLAGS.SSO],backend_version:"",panel_switcher_enabled:!0,auth_mode_config:{[Gn.WEB]:Bn.SIGN_IN_ONLY,[Gn.MOBILE]:Bn.SIGN_IN_ONLY}},Ms=r.createContext(void 0),Ds=r.createContext({});function qs(e){return Array.isArray(e.message_type)&&e.message_type.includes("widget")}const Us="moyasar_cb",Ls=new Set(["paid","authorized","failed","captured"]);function Fs(e){try{const t=decodeURIComponent(e);return t===e?e:t}catch{return e}}exports.AUTH_CLIENT_TYPES=Gn,exports.AUTH_MODES=Bn,exports.AguiAdapter=xn,exports.AudioRecorder=ws,exports.BREAKPOINTS={SM:640,MD:768,LG:1024,XL:1280,XXL:1536},exports.CHAT_INPUT_MODES=Ss,exports.CONVERSATION_TITLE_REFRESH_DELAYS_MS=[500,1500,3e3],exports.ChatCallbacksContext=Ds,exports.ChatSettingsContext=bs,exports.ConfigurationContext=Ms,exports.DEFAULT_CONVERSATION_TITLE="New Conversation",exports.DEFAULT_PAYMENT_PROVIDER="stripe",exports.DEFAULT_PROTOCOL="mtx",exports.ERROR_CODES=mr,exports.EventAggregator=On,exports.GENERIC_SERVER_ERROR_MESSAGE=fr,exports.MAX_CONNECTION_RETRIES=5,exports.MODEL_CONTEXT_TEXT_MAX_LENGTH=Jn,exports.MOYASAR_CALLBACK_SENTINEL=Us,exports.OAUTH_ERROR_TYPE=ks,exports.OAUTH_SUCCESS_TYPE=Os,exports.PAGINATION=Xn,exports.PAYMENT_FAILURE_CODES=cs,exports.ProprietaryAdapter=wn,exports.ProtocolContext=En,exports.SSEEventType=bn,exports.STT_GESTURES=Rs,exports.THINKING_MESSAGES=Yn,exports.TYPEWRITER_INTERVAL_MS=28,exports.USER_COLLAPSED_MESSAGE_TYPE="user-collapsed",exports.apiBridge=Tr,exports.apiMiddleware=Wr,exports.apiReducers=Vr,exports.bindChatLogger=hn,exports.brandingApi=Ur,exports.bridgedFetch=Er,exports.buildBrandSkin=function(e,t){const r="dark"===t;return{pageBg:e.bgColor,cardBg:e.widgetBg,text:e.primaryText,heading:e.primaryText,muted:e.secondaryText,divider:e.widgetBorderColor,accent:e.statusDiscovery.solid,accentText:e.statusDiscovery.text,focus:e.statusDiscovery.solid,success:e.statusSuccess.solid,successBg:e.statusSuccess.background,warning:e.statusWarning.solid,warningBg:e.statusWarning.background,danger:e.statusDanger.solid,dangerBg:e.statusDanger.background,pillBg:e.inputBgColor,pillBorder:e.inputBorderColor,pillText:e.secondaryText,cardShadow:r?"0 1px 3px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04)":"0 1px 3px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)",radius:e.borderRadius,fontFamily:e.fontFamily,colorScheme:r?"dark":"light"}},exports.buildCallbackUrl=function(e){const t=new URL(window.location.href),r=new URL(`${t.origin}${n.getBaseUrl()}/moyasar-callback.html`);return r.searchParams.set(Us,"1"),e&&r.searchParams.set("given_id",e),r.toString()},exports.chatApi=Ar,exports.chatCoreRootReducer=mn,exports.chatLoggerContextProvider=()=>{if(!gn)return{};const e=gn(),t=e.auth.user?.id,r=e.auth.selectedOrgId??void 0,n=e.conversations.activeConversationId??void 0;return{...t?{user_id:t}:{},...r?{org_id:r}:{},...n?{conversation_id:n}:{}}},exports.chatReducer=un,exports.checkOrganizationExistsApi=async function(){const e=new AbortController,t=setTimeout(()=>e.abort(),8e3);try{const{data:t,error:r,response:s}=await Er({url:n.API_ENDPOINTS.ORGANIZATIONS_EXISTS,method:"GET",skipAuth:!0,skipContentType:!0,signal:e.signal});return r?!s||s.status>=500?"error":"not-found":function(e){const t=e?.data?.exists;return"boolean"!=typeof t?"error":t?"exists":"not-found"}(t)}catch{return"error"}finally{clearTimeout(t)}},exports.clearMessageQueue=nn,exports.configApi=Qr,exports.conversationsReducer=fn,exports.createAdapter=function(e,t){switch(e){case"mtx":return new wn(t);case"agui":return new xn(t);default:throw new Error(`Unknown protocol type: "${e}". Supported types: mtx, agui`)}},exports.createDefaultAdapterConfig=function(e={}){return{getAuthToken:()=>Sr(),getCustomHeaders:()=>n.getCustomHeaders(),onAuthExpired:e.onAuthExpired,getStreamUrl:e=>n.API_ENDPOINTS.CONVERSATION_STREAM(e),getInitialStreamUrl:e=>n.API_ENDPOINTS.CONVERSATION_START(e),getDebugUrl:()=>n.API_ENDPOINTS.DEBUG,ensureFreshToken:async()=>{n.isTokenAboutToExpire(n.readTokenExpiresAt())&&await(n.getTokenRefreshHandler()?.())},forceRefreshToken:async()=>Boolean(await(n.getTokenRefreshHandler()?.()))}},exports.createInheritedSessionRefresher=Kn,exports.createSessionRefresher=function(e){return n.createTokenRefresher({performRefresh:async()=>{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(!r||!s)return n.logger.warn({message:"Session refresh skipped: missing stored credentials",api_name:"auth-refresh",has_refresh_token:Boolean(r),has_user_id:Boolean(s)}),null;const{body:a,tokens:o}=await Dn({refresh_token:r,user_id:s});if(a?.success&&a?.data){const t={accessToken:o.accessToken,refreshToken:o.refreshToken,expiresIn:a.data.expiry_time};return n.logger.debug({message:"Session token refreshed",api_name:"auth-refresh",refresh_token_rotated:t.refreshToken!==r}),e.dispatch(n.setSession({accessToken:t.accessToken,refreshToken:t.refreshToken,expiresIn:t.expiresIn})),t}return n.logger.warn({message:"Session refresh rejected by server",api_name:"auth-refresh"}),null}})},exports.dequeueMessage=rn,exports.enqueueMessage=tn,exports.fetchOrganizations=async function(){try{const{data:e}=await Er({url:n.getApiUrl(`${n.AUTH_PATHS.ORGANIZATIONS}?skip=0&limit=100`),skipAuth:!0});if(e?.success&&Array.isArray(e.data?.organizations))return e.data.organizations}catch{}return[]},exports.forgotPasswordApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.FORGOT_PASSWORD),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.formatAmount=is,exports.formatPaymentResult=ps,exports.formatResultMessage=us,exports.getApiErrorMessage=function(e,t){return gr(e)?fr:function(e){if(!lr(e))return null;if("string"==typeof e.message){try{const t=pr(JSON.parse(e.message));if(t)return t}catch{}return e.message}return pr(e.data)??pr(e.data?.data)}(e)??t??"An unexpected error occurred."},exports.getAuthMode=Wn,exports.getAuthToken=Sr,exports.getCachedLocation=gs,exports.getCodeEntryErrorMessage=function(e,t){if(!lr(e))return t.generic;if(gr(e))return t.generic;const r=function(e){if("string"!=typeof e)return null;try{return hr(JSON.parse(e))}catch{return null}}(e.message);return r||(hr(e.data)||(401===e.status?t.invalidCode:422===e.status?t.validation:t.generic))},exports.getErrorGroup=function(e){if(!lr(e))return null;const t=e.data;if(lr(t)){const e=t.data;if(lr(e)&&"string"==typeof e.error_group)return e.error_group;if("string"==typeof t.error_group)return t.error_group}return null},exports.getLatestRequestId=()=>"",exports.guestLoginApi=Cn,exports.hasAnyExtraData=ss,exports.isApiServerError=gr,exports.isEmptyMessage=ns,exports.isHttpsUrl=Rn,exports.loginApi=kn,exports.logoutApi=Mn,exports.parseMoyasarCallbackFromUrl=function(e){if(!e)return null;const t=new URLSearchParams(e);if("1"!==t.get(Us))return null;const r=t.get("status"),n=t.get("id");if(!r||!n)return null;if(!Ls.has(r))return null;const s=t.get("conversation_id")||null,a=(t.get("given_id")||null)??n;if("paid"===r||"authorized"===r||"captured"===r){const e=t.get("amount"),r=e?Number.parseInt(e,10):void 0;return{result:{status:"success",provider:"moyasar",paymentId:a,amount:Number.isFinite(r)?r:void 0,currency:t.get("currency")??void 0},conversationId:s}}return{result:{status:"failure",provider:"moyasar",code:r,message:Fs(t.get("message")??`Payment ${r}`),paymentId:a},conversationId:s}},exports.profileApi=Hr,exports.refreshTokenApi=Dn,exports.resendVerificationApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.VERIFY_EMAIL_RESEND),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.resetAllApiState=()=>e=>{Br.forEach(t=>e(t.util.resetApiState()))},exports.resetChatLoggerForTests=function(){gn=null},exports.resetChatState=on,exports.resetPasswordApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.RESET_PASSWORD),method:"POST",body:e,skipAuth:!0});if(r||!s)throw t??r;return t?.data?.message},exports.serializableCheck=yn,exports.setActiveConversationId=ln,exports.setIsAgentWorking=Jr,exports.setResponseStartTime=en,exports.setStatusText=Zr,exports.shouldDisableMessage=function(e,t,r){if(!r)return!1;if(!qs(e))return!1;let n=null;for(let e=t.length-1;e>=0;e--){const r=t[e];if("agent"===r.sender&&qs(r)){n=r;break}}if(!n||n.id!==e.id)return!0;const s=t.findIndex(t=>t.id===e.id);return t.slice(s+1).some(e=>"user"===e.sender)},exports.signupApi=Nn,exports.ssoExchangeApi=async function(e,t){const{data:r,error:s,response:a}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SSO_EXCHANGE),method:"POST",body:{code:e,state:t},skipAuth:!0});if(s||!a)throw r??s;return{body:r,tokens:n.extractTokens(a)}},exports.ssoStartApi=async function(e){const{data:t,error:r,response:s}=await Er({url:n.getApiUrl(n.AUTH_PATHS.SSO_START),method:"POST",body:{idp_hint:e},skipAuth:!0});if(r||!s)throw t??r;return t},exports.store=Tn,exports.toModelContext=as,exports.upsertConversationTitle=pn,exports.useActiveConversationTitle=function(){return t.useSelector(e=>{const t=e.conversations.activeConversationId;return t?e.conversations.titles[t]??null:null})},exports.useAuth=()=>{const{user:e,accessToken:r,tokenExpiresAt:s,isAuthenticated:a,isLoading:o}=t.useSelector(e=>e.auth);return{user:e,accessToken:r,isAuthenticated:a,isLoading:o,tokenInfo:{isExpired:!!s&&n.isTokenExpired(s),isAboutToExpire:!!s&&n.isTokenAboutToExpire(s),expiresAt:s,timeUntilExpiry:s?n.getTimeUntilExpiry(s):0,timeUntilExpiryFormatted:s?n.formatTimeRemaining(n.getTimeUntilExpiry(s)):"0s"}}},exports.useChatCallbacks=()=>r.useContext(Ds),exports.useChatConnection=({conversationId:e,setMessages:s,enableTts:a=!1,userLocation:o=null,startSession:i,debugMode:u=!1,onPaymentInit:c,onSignInInit:d,onRequestDocuments:l,onConversationTitle:p,initialMessage:f,locale:g})=>{const{adapter:h}=vn(),m=t.useDispatch(),y=t.useStore(),[T,S]=r.useState(""),[_,E]=r.useState(!1),[v,b]=r.useState(!1),A=r.useRef(c);A.current=c;const w=r.useRef(d);w.current=d;const R=r.useRef(l);R.current=l;const I=r.useRef(p);I.current=p;const x=r.useRef(f),O=r.useRef(g);r.useLayoutEffect(()=>{x.current=f,O.current=g},[f,g]);const k=r.useRef(new On),C=r.useRef(null),N=r.useRef(null),P=r.useRef(!1),M=r.useRef(0),D=r.useRef(!1),q=r.useRef(null),U=r.useRef(e);U.current=e;const L=r.useRef(null),F=r.useRef(e);r.useEffect(()=>{const t=F.current;F.current=e,null!==t&&t!==e&&m(an())},[e,m]);const Q=r.useCallback((e=n.INDICATOR_TIMER_ACTIONS.KEEP)=>{if(m(Zr(null)),m(Jr(!1)),e===n.INDICATOR_TIMER_ACTIONS.FINALIZE){const e=y.getState().chat.responseStartTime;e&&m(n.setLastResponseTime(Date.now()-e)),m(en(null))}else e===n.INDICATOR_TIMER_ACTIONS.CANCEL&&m(en(null))},[m,y]),j=r.useCallback(e=>{m(Jr(e)),E(e),e&&b(!1)},[m]),H=r.useCallback(()=>{const e=y.getState().chat.responseStartTime;return e&&m(n.setLastResponseTime(Date.now()-e)),null!==q.current&&clearTimeout(q.current),q.current=setTimeout(()=>{q.current=null,D.current=!1,S(""),E(!1),b(!1),Q(n.INDICATOR_TIMER_ACTIONS.CANCEL)},600),()=>{null!==q.current&&clearTimeout(q.current)}},[m,y,Q]),$=r.useRef({setStatusText:e=>m(Zr(e||null)),setIsAgentWorking:e=>m(Jr(e)),appendStreamText:()=>{},pushWidget:()=>{},onPayment:e=>A.current?.(e),onSignIn:e=>w.current?.(e),onRequestDocuments:e=>R.current?.(e),onError:()=>{}}),z=r.useCallback(e=>{if(L.current!==U.current)return C.current?.abort(),void N.current?.();if("payment"===e.type&&"payment"in e.data)return void n.handleSharedEvent({kind:"payment",payment:e.data.payment},$.current);if("sign_in"===e.type&&"signIn"in e.data)return void n.handleSharedEvent({kind:"sign_in",signIn:e.data.signIn},$.current);if("request_documents"===e.type&&"requestDocuments"in e.data)return void n.handleSharedEvent({kind:"request_documents",requestDocuments:e.data.requestDocuments},$.current);if("conversation_title"===e.type&&"conversationTitle"in e.data){const t=e.data.conversationTitle.trim();return void(t&&I.current?.(t))}const t=k.current;t.processEvent(e),P.current||(P.current=!0,b(!0));const r=function(e){const t=e.data;switch(e.type){case"text":return"text"in t?{kind:"text",text:t.text}:null;case"widget":return"widget"in t?{kind:"widget",widget:t.widget}:null;case"status_update":return"statusText"in t?{kind:"status_update",statusText:t.statusText}:null;case"payment":return"payment"in t?{kind:"payment",payment:t.payment}:null;case"sign_in":return"signIn"in t?{kind:"sign_in",signIn:t.signIn}:null;case"request_documents":return"requestDocuments"in t?{kind:"request_documents",requestDocuments:t.requestDocuments}:null;case"error":return"error"in t?{kind:"error",error:t.error}:null;default:return null}}(e);if(r){const e="status_update"===r.kind?{kind:"status_update",statusText:t.getStatusText()}:r;n.handleSharedEvent(e,$.current)}const a=t.toMessages(),o=M.current;s(e=>[...e.slice(0,e.length-o),...a]),M.current=a.length,a.some(e=>ss(e)||!ns(e.message))&&m(Jr(!1)),t.isStreamComplete()&&H()},[m,s,H]),K=r.useCallback(e=>{n.showErrorToast("Stream connection error. Please try again."),H()},[H]),G=r.useCallback(()=>{C.current?.abort(),N.current?.(),C.current=null,N.current=null,L.current=null,k.current.reset(),M.current=0,S(""),E(!1),b(!1),Q(n.INDICATOR_TIMER_ACTIONS.CANCEL),m(n.clearLastResponseTime()),m(nn()),D.current=!1},[m,Q]),B=r.useCallback((e,t)=>{C.current?.abort(),N.current?.(),k.current.reset(),M.current=0,P.current=!1,L.current=t,U.current=t,C.current=e;const r=e.subscribe({onEvent:z,onError:K,onComplete:()=>{H()}});N.current=r},[z,K,H]),V=r.useCallback(()=>{m(Jr(!0)),E(!0),b(!1),m(Zr(null)),m(en(Date.now())),m(n.clearLastResponseTime())},[m]),W=r.useCallback((e,t)=>{V();const r=h.streamMessage({conversationId:e,message:t.message,enableTts:a,debugMode:u,transcriptionIds:t.transcriptionIds??[],...t.modelContext?.length?{modelContext:t.modelContext}:{},body:os(t.clientMetadata,O.current)});B(r,e)},[h,a,u,B,V]),Y=r.useCallback(async(t="",r=[],a={})=>{D.current=!0;try{let o=e;if(!o){if(!i)return D.current=!1,void n.showErrorToast("Conversation is not ready yet. Please wait a moment.");const e=await i();if(!e)return D.current=!1,void n.showErrorToast("Failed to start conversation. Please try again.");o=e}const u=t.trim();window.dispatchEvent(new CustomEvent("stopAudioPlayback")),s(e=>[...e,{id:`user-${n.generateUniqueId()}`,sender:"user",message:u,timestamp:(new Date).toISOString(),...a.messageType?.length?{message_type:a.messageType}:{},...a.documents?.length?{documents:a.documents}:{}}]);const c=n.readDeviceToken();W(o,{message:u,transcriptionIds:r,modelContext:as(a.documents,a.modelText),clientMetadata:c?{device_token:c}:{}})}catch(e){n.logger.error({message:"Failed to send message",api_name:"chat-send",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to send conversations message. Please try again."),D.current=!1,Q(n.INDICATOR_TIMER_ACTIONS.CANCEL)}},[e,i,s,W,Q]),X=r.useRef(Y);X.current=Y;const J=r.useCallback(async(e="",t=[],r={})=>{const s=(e??"").trim();if(!s&&!r.documents?.length)return void(r.modelText&&n.logger.warn({message:"modelText sent without text or documents; dropped",api_name:"chat-send"}));const a=y.getState().chat.pendingTranscriptionIds,o=a.length?[...a,...t]:t;a.length&&m(an()),D.current?m(tn({id:n.generateUniqueId(),text:s,queuedAt:(new Date).toISOString(),...o.length?{transcriptionIds:o}:{},...r.messageType?.length?{messageType:r.messageType}:{},...r.documents?.length?{documents:r.documents}:{},...r.modelText?{modelText:r.modelText}:{}})):await Y(s,o,r)},[m,y,Y]);r.useEffect(()=>{if(_||D.current)return;const e=y.getState().chat.messageQueue;if(0===e.length)return;const t=1===e.length?e[0].text:e.map(e=>e.text).filter(e=>e.length>0).map(e=>`- ${e}`).join("\n"),r=e.flatMap(e=>e.transcriptionIds??[]),n=e.flatMap(e=>e.documents??[]),s=e.map(e=>e.modelText).filter(Boolean).join("\n\n"),a={...1===e.length&&e[0].messageType?.length?{messageType:e[0].messageType}:{},...n.length?{documents:n}:{},...s?{modelText:s}:{}};m(nn()),X.current(t,r,a)},[_,m,y]);const Z=r.useCallback(async(e,t)=>{D.current=!0;const r=void 0!==t?t:o,s={};r&&(s.user_location=r);const i=n.readDeviceToken();i&&(s.device_token=i);const u=x.current?.trim()??"",c=u.length>Jn;if(c&&n.logger.warn({message:"initialMessage exceeds the text-part limit; opening with /start instead",api_name:"chat-start",conversation_id:e,length:u.length,max_length:Jn}),u&&!c)return void W(e,{message:"",modelContext:[{type:n.MODEL_CONTEXT_PART_TYPES.TEXT,text:u}],clientMetadata:s});V();const d=h.streamInitial({conversationId:e,body:os(s,O.current),enableTts:a});B(d,e)},[h,a,o,B,W,V]);return r.useEffect(()=>()=>{C.current?.abort(),N.current?.()},[]),{sendMessage:J,startInitialStream:Z,setThinkingState:j,abortStream:G,toolCallStatus:T,isProcessThinkingState:_,hasReceivedResponse:v}},exports.useChatHistory=function({activeConversationId:e,onSelectConversation:s,onClearChat:a}){const[o,i]=r.useState([]),u=t.useSelector(e=>e.conversations.titles),[c,d]=r.useState(!0),[l,p]=r.useState(!1),[f,g]=r.useState(!0),[h,m]=r.useState(""),y=r.useRef(0),T=r.useRef(!1),S=r.useRef(f);S.current=f;const _=r.useRef(o);_.current=o;const[E]=Ar.useLazyGetConversationHistoryQuery(),v=r.useRef(E);v.current=E;const[b,{isLoading:A}]=Ar.useDeleteConversationMutation(),w=r.useCallback(async e=>{const t="append"===e?y.current:0;if("append"===e){if(T.current||!S.current)return;T.current=!0,p(!0)}else"replace"===e&&0===_.current.length&&d(!0);try{const r=await v.current({skip:t,limit:20}).unwrap(),n=r?.conversations??[];"append"===e?(i(e=>{const t=new Set(e.map(e=>e.id));return[...e,...n.filter(e=>!t.has(e.id))]}),y.current+=20):"replace"===e?(i(n),y.current=20):i(e=>function(e,t){if(0===t.length)return e;const r=new Set(e.map(e=>e.id)),n=new Map(t.map(e=>[e.id,e])),s=t.filter(e=>!r.has(e.id));let a=s.length>0;const o=e.map(e=>{const t=n.get(e.id);return t?(r=e).id===(s=t).id&&r.title===s.title&&r.created_at===s.created_at&&r.updated_at===s.updated_at?e:(a=!0,t):e;var r,s});return a?[...s,...o]:e}(e,n)),"silent"!==e&&g(n.length>=20)}catch(e){n.logger.error({message:"Failed to load conversations",api_name:"chat-conversation-list",error_message:e instanceof Error?e.message:String(e)})}finally{"append"===e?(T.current=!1,p(!1)):"replace"===e&&d(!1)}},[]);r.useEffect(()=>{w("replace")},[w]);const R=r.useRef(null),I=r.useRef(new Set);r.useEffect(()=>{if(c||!e)return;if(I.current.has(e))return;if(o.some(t=>t.id===e))return void(R.current=null);const t=`${e}:${u[e]??""}`;R.current!==t&&(R.current=t,w("silent"))},[e,o,u,c,w]);const x=r.useCallback(async t=>{const r=e===t,u=r?function(e,t){const r=e.findIndex(e=>e.id===t);return-1===r?null:r+1<e.length?e[r+1].id:r-1>=0?e[r-1].id:null}(h.trim()?o.filter(e=>e?.title?.toLowerCase().includes(h.toLowerCase())):o,t):null,c=await b({conversationId:t});if(c.error)return n.logger.error({message:"Failed to delete conversation",api_name:"chat-conversation-delete",conversation_id:t,error_message:JSON.stringify(c.error)}),void n.showErrorToast("Failed to delete the conversation. Please try again.");n.showSuccessToast("Conversation deleted successfully"),I.current.add(t);const d=_.current.some(e=>e.id===t);if(i(e=>e.filter(e=>e.id!==t)),d&&(y.current=Math.max(0,y.current-1)),r)if(u){const e=o.find(e=>e.id===u)??null;s(u,e?.title??null)}else a?.()},[e,o,h,b,s,a]),O=r.useMemo(()=>o.map(e=>u[e.id]?{...e,title:u[e.id]}:e),[o,u]);return{conversations:h.trim()?O.filter(e=>e?.title?.toLowerCase().includes(h.toLowerCase())):O,isLoading:c,isLoadingMore:l,hasMore:f,isDeleting:A,searchQuery:h,setSearchQuery:m,loadConversations:w,deleteConversation:x,isLoadingMoreRef:T}},exports.useChatInput=({onSend:e,disabled:t=!1,hasAttachments:n=!1,transcribedText:s,onTranscribedTextUsed:a,isRecording:o=!1,isTranscribing:i=!1})=>{const[u,c]=r.useState("");r.useEffect(()=>{if(!s)return;let e=!1;return queueMicrotask(()=>{e||(c(e=>0===e.trim().length?s:`${e.trimEnd()} ${s}`),a?.())}),()=>{e=!0}},[s,a]);const d=(u.trim().length>0||n)&&!t,l=r.useCallback(()=>{d&&(e(u.trim()),c(""))},[u,d,e]),p=o?Ss.RECORDING:i?Ss.TRANSCRIBING:Ss.NORMAL;return r.useMemo(()=>({value:u,setValue:c,send:l,canSend:d,mode:p}),[u,l,d,p])},exports.useChatSettings=()=>{const e=r.useContext(bs);if(!e)throw new Error("useChatSettings must be used within a <SettingsProvider>");return e},exports.useConfiguration=()=>{const e=r.useContext(Ms);if(!e)throw new Error("useConfiguration must be used within a ConfigurationProvider");return e},exports.useConfigurationValue=()=>{const{data:e,isLoading:t,error:n}=_n(),s=e?.success?e.data:null,a=r.useMemo(()=>{return(e=s)?{conversations:{...Ps.conversations,...e.conversations},voice_agent:{...Ps.voice_agent,...e.voice_agent},stt:{...Ps.stt,...e.stt},documents:{...Ps.documents,...e.documents},features:e.features??Ps.features,backend_version:e.backend_version??Ps.backend_version,panel_switcher_enabled:e.panel_switcher_enabled??Ps.panel_switcher_enabled,auth_mode_config:{...Ps.auth_mode_config,...e.auth_mode_config}}:Ps;var e},[s]);return r.useMemo(()=>({clientConfig:a,isLoading:t,error:n?new Error("Failed to fetch client configuration"):null}),[a,t,n])},exports.useConnectors=function(){const{themeStyles:e}=n.useBranding(),{data:t,isLoading:s}=Pr(void 0),[a]=Dr(),o=r.useMemo(()=>(t?.tool_servers??[]).map(t=>({id:t.id,name:t.name,description:t.description??"",initials:Ts(t.name),accentTextColor:e.statusPrimary.solid,logoUrl:t.logo_url??void 0,connected:t.connected})),[t?.tool_servers,e.statusPrimary.solid]);return{connectors:o,isLoading:s,disconnect:async function(e){const t=o.find(t=>t.id===e)?.name??"App";"error"in await a(e)?n.showErrorToast(`Failed to disconnect ${t}. Please try again.`):n.showSuccessToast(`${t} disconnected`)}}},exports.useContainerQuery=e=>{const t=r.useRef(null),[n,s]=r.useState(!1);return r.useEffect(()=>{const r=t.current;if(!r)return;const n=new ResizeObserver(t=>{for(const r of t)s(r.contentRect.width>=e)});n.observe(r);const a=r.getBoundingClientRect().width;return s(a>=e),()=>{n.disconnect()}},[e]),{containerRef:t,isDesktop:n}},exports.useConversation=()=>{const e=t.useDispatch(),[s,a]=r.useState(null),[o,i]=r.useState([]),u=r.useRef(s),c=t.useSelector(e=>s?e.conversations.titles[s]??null:null),d=r.useCallback(t=>{s&&t&&e(pn({id:s,title:t}))},[s,e]);r.useEffect(()=>{u.current=s,e(ln(s))},[s,e]);const[l,p]=r.useState(!1),[f,g]=r.useState(0),[h,m]=r.useState(!1),[y,T]=r.useState(!1),S=r.useRef(!1),{protocolType:_}=vn(),[E]=wr(),[v]=Cr(),b=r.useCallback(async()=>{try{p(!0);const t=await E({protocol:_,body:{}}).unwrap(),r=t?.id;if(r){a(r);const n=rs(t?.title);return n&&e(pn({id:r,title:n})),r}return n.showErrorToast(t?.error||"Failed to create conversations. Please try again."),null}catch(e){return n.showErrorToast(e?.data?.message||e?.message||"Failed to create conversations. Please try again."),null}finally{p(!1)}},[E,_,e]),A=r.useCallback(async(t,r,s)=>{try{const n=rs(r);n&&e(pn({id:t,title:n}));const s=await v({conversationId:t,skip:0,limit:Xn.MESSAGE_PAGE_SIZE}).unwrap();if(s){a(t);const r=rs(s.title)??n;r&&e(pn({id:t,title:r}));const o=s.messages??[],u=Array.isArray(o)?ts(o):[];return i(u),g(o.length),m(o.length>=Xn.MESSAGE_PAGE_SIZE),!0}return!1}catch(e){return"AbortError"===e?.name||"AbortError"===e?.error?.name||"ABORTED"===e?.status||(n.logger.error({message:"Failed to load conversation",api_name:"chat-conversation-load",conversation_id:t,error_message:e instanceof Error?e.message:String(e)}),s?.quiet||n.showErrorToast("Failed to load conversation. Please try again.")),!1}},[v,e]),w=r.useCallback(async(t=s)=>{if(!t)return null;try{const r=await v({conversationId:t,skip:0,limit:1}).unwrap(),n=rs(r?.title);return n&&e(pn({id:t,title:n})),n}catch(e){return n.logger.error({message:"Failed to refresh conversation title",api_name:"chat-conversation-title-refresh",conversation_id:t,error_message:e instanceof Error?e.message:String(e)}),null}},[s,v,e]),R=r.useCallback(async()=>{if(S.current||!s||!h)return;const e=s;T(!0),S.current=!0;try{const t=await v({conversationId:s,skip:f,limit:Xn.MESSAGE_PAGE_SIZE}).unwrap();if(u.current!==e)return;if(t?.messages&&Array.isArray(t.messages)){const e=ts(t.messages);g(e=>e+t.messages.length),m(t.messages.length>=Xn.MESSAGE_PAGE_SIZE),i(t=>{const r=new Set(t.map(e=>e.timestamp).filter(Boolean));return[...e.filter(e=>!e.timestamp||!r.has(e.timestamp)),...t]})}}catch(e){n.logger.error({message:"Failed to load more messages",api_name:"chat-conversation-load-more",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to load older messages.")}finally{T(!1),S.current=!1}},[s,f,h,v]),I=r.useCallback(()=>{i([]),a(null),g(0),m(!1)},[]);return{conversationId:s,setConversationId:a,conversationTitle:c,setConversationTitle:d,messages:o,setMessages:i,isLoadingCreateConversation:l,hasMoreMessages:h,isLoadingMoreMessages:y,startSession:b,loadConversation:A,loadConversationTitle:w,loadMoreMessages:R,resetConversation:I}},exports.useCreateConversatonsMutation=wr,exports.useDeleteAccountMutation=Kr,exports.useDeleteConversationMutation=Nr,exports.useDeleteDocumentMutation=xr,exports.useDeleteToolServerConnectionMutation=Dr,exports.useElapsedSeconds=e=>{const[t,n]=r.useState(()=>null===e?0:Math.floor((Date.now()-e)/1e3));return r.useEffect(()=>{if(null===e)return void n(0);n(Math.floor((Date.now()-e)/1e3));const t=setInterval(()=>{n(Math.floor((Date.now()-e)/1e3))},1e3);return()=>clearInterval(t)},[e]),t},exports.useEventEmitter=function(e,t,s){const a=r.useRef(s);r.useEffect(()=>{a.current=s},[s]),r.useEffect(()=>{const r=n.eventEmitter.on(e,t,e=>{a.current(e)});return()=>{r()}},[e,t])},exports.useExchangeOAuthCodeMutation=Or,exports.useGetBrandingQuery=Lr,exports.useGetConfigQuery=_n,exports.useGetConversationHistoryQuery=kr,exports.useGetProfileQuery=$r,exports.useGetToolServersQuery=Pr,exports.useGuestBoot=function({clientType:e}){const{data:n,isLoading:s,refetch:a}=_n(),o=Wn(n,e),i=Boolean(n?.data?.auth_mode_config),[u,c]=r.useState(o);i&&o!==u&&c(o);const d=i?o:u,l=t.useSelector(e=>Boolean(e.auth?.isAuthenticated)),{guestLogin:p}=Un(),f=r.useRef(!1),[g,h]=r.useState(!1),[m,y]=r.useState(0),T=r.useRef(0),S=r.useRef(0);r.useEffect(()=>{if(d!==Bn.GUEST_ONLY)return;if(l)return void(f.current=!1);if(s)return;if(f.current)return;const e=Date.now();T.current=e-S.current<1e4?T.current+1:0,S.current=e,T.current>=3?h(!0):(f.current=!0,h(!1),p().then(e=>{e.success||(f.current=!1,h(!0))}))},[d,l,s,p,m]);const _=r.useCallback(()=>{T.current=0,S.current=0,h(!1),a(),y(e=>e+1)},[a]);return{mode:d,isGuestBootPending:s||d===Bn.GUEST_ONLY&&!l&&!g,guestBootFailed:!l&&!s&&void 0===n||d===Bn.GUEST_ONLY&&!l&&g,retryGuestBoot:_}},exports.useGuestLogin=Un,exports.useInfiniteScroll=function({hasMore:e,isLoadingRef:t,scrollAreaRef:n,onLoadMore:s,itemCount:a}){const o=r.useRef(null),i=r.useCallback(r=>{if(o.current&&o.current.disconnect(),!r||!e)return;const a=function(e,t){const r=t?.querySelector("[data-radix-scroll-area-viewport]");if(r)return r;if(t&&t.scrollHeight>t.clientHeight)return t;let n=e.parentElement;for(;n&&n!==document.body;){if(n.scrollHeight>n.clientHeight)return n;n=n.parentElement}return null}(r,n.current);a&&(o.current=new IntersectionObserver(e=>{e[0].isIntersecting&&!t.current&&s()},{root:a,rootMargin:"0px",threshold:.1}),o.current.observe(r))},[e,t,n,s]);return r.useEffect(()=>{if(!e||t.current)return;const r=n.current;if(!r)return;const a=r.querySelector("[data-radix-scroll-area-viewport]")??r;a.clientHeight>0&&a.scrollHeight<=a.clientHeight&&s()},[e,n,s,t,a]),i},exports.useInheritedAuthBoot=function({adapter:e,enabled:s}){const a=t.useStore(),o=t.useSelector(e=>Boolean(e.auth?.isAuthenticated)),i=r.useMemo(()=>e?Kn(a,e):null,[a,e]);r.useEffect(()=>{if(s&&i)return n.setTokenRefreshHandler(i),()=>n.setTokenRefreshHandler(null)},[s,i]);const u=r.useRef(!1),[c,d]=r.useState(!1),[l,p]=r.useState(!1),[f,g]=r.useState(0),[h,m]=r.useState(!1);r.useEffect(()=>{if(!s||!e||h)return;const t=n.getStorageRef();(t?t.getItem(Fn):Promise.resolve(null)).then(async r=>{r&&(await(t?.removeItem(Fn)),a.dispatch(n.clearSession()),e.onAuthError?.(n.INHERITED_AUTH_ERROR_REASONS.TOKEN_REJECTED),p(!0)),m(!0)})},[s,e,a,h]),r.useEffect(()=>{if(!s||!i||l||!h)return;if(o&&c)return void(u.current=!1);if(u.current)return;u.current=!0;const t=()=>{i().then(e=>{e?d(!0):(u.current=!1,p(!0))})};if(!o||!e)return void t();const r=a.getState().auth?.accessToken;e.getToken().then(e=>e.accessToken===r,()=>!1).then(e=>{if(e)return d(!0),void i.captureBaseline();a.dispatch(n.clearSession()),t()})},[s,i,e,a,o,c,l,f,h]);const y=r.useCallback(()=>{p(!1),g(e=>e+1)},[]),T=s&&!(o&&c)&&!l,S=s&&l,_=s&&o&&c&&!l,E=r.useRef({canRecheck:_,adapter:e,refresher:i});r.useEffect(()=>{E.current={canRecheck:_,adapter:e,refresher:i}},[_,e,i]);const v=r.useRef(!1);return{isInheritedBootPending:T,inheritedAuthFailed:S,retryInheritedAuth:y,recheckInheritedAuth:r.useCallback(()=>{const e=E.current;if(!e.canRecheck||!e.adapter||!e.refresher)return;if(v.current)return;v.current=!0;const{adapter:t,refresher:r}=e,n=a.getState().auth?.accessToken;t.getToken().then(e=>e.accessToken===n?void 0:r(),()=>{}).finally(()=>{v.current=!1})},[a])}},exports.useIsDesktop=()=>ms("(min-width: 1024px)"),exports.useLazyGetConversationByIdQuery=Cr,exports.useLocationInit=()=>{const[e,t]=r.useState(!1),{getUserLocation:s}=hs(),a=n.useStorage(),o=r.useRef(!1);return r.useEffect(()=>{if(o.current)return;o.current=!0;let e=null;const r=()=>{null!==e&&clearTimeout(e),t(!0)};return(async()=>{if("false"===await a.getItem(n.STORAGE_KEYS.LOCATION_ENABLED))return void r();const t=await gs(a);t&&0!==t.latitude&&0!==t.longitude?r():(e=setTimeout(r,5e3),s().finally(r))})(),()=>{null!==e&&clearTimeout(e)}},[s,a]),e},exports.useLogin=function(){const e=r.useCallback(e=>kn(e.email,e.password),[]),{run:t,isLoading:n}=qn(e);return{login:t,isLoading:n}},exports.useLogout=function(){const e=t.useStore();return{logout:r.useCallback(async()=>{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(r&&s)try{await Mn({refresh_token:r,user_id:s})}catch{}else n.logger.warn({message:"skipping server-side logout revocation — credentials missing",api_name:"auth-logout",has_refresh_token:Boolean(r),has_user_id:Boolean(s)});e.dispatch(n.clearSession())},[e])}},exports.useMediaQuery=ms,exports.useMessageList=({messages:e,voiceStreamingMessages:t=vs,voiceActive:s})=>{const a=r.useMemo(()=>{if(0===t.length)return e;const r=new Set(t.map(e=>e.id));return e.filter(e=>!r.has(e.id))},[e,t]),o=r.useMemo(()=>_s(a),[a]),i=Es(s),u=r.useRef(e.length),c=r.useCallback(()=>{const t=u.current;return u.current=e.length,((e,t)=>{const r=t.length-1,s=_s(t);if(t.length<=e)return{hasNew:!1,newMessages:[],firstNewIndex:e,lastIndex:r,hasNewUserMessage:!1,hasNewWidget:!1,lastUserMessageIndex:s};const a=t.slice(e);return{hasNew:!0,newMessages:a,firstNewIndex:e,lastIndex:r,hasNewUserMessage:a.some(e=>"user"===e.sender),hasNewWidget:a.some(n.hasWidgets),lastUserMessageIndex:s}})(t,e)},[e]);return{visibleMessages:a,lastUserMessageIndex:o,indicator:i,classifyArrival:c}},exports.useOAuthPopup=function({signInInit:e,sendMessageRef:t,clearSignInInit:s,sendResumeMessage:a=!0}){const[o]=Or();r.useEffect(()=>{if(!e)return;const r=function(e){try{const t=(new URL(e).searchParams.get("scope")??"").match(/\/auth\/([^./]+)/);if(t?.[1])return t[1].charAt(0).toUpperCase()+t[1].slice(1)}catch{}return"Service"}(e.authorize_url),i=window.open(e.authorize_url,"oauth_popup",`width=500,height=650,left=${Math.round(screen.width/2-250)},top=${Math.round(screen.height/2-325)}`);if(!i)return n.showErrorToast("Please allow popups for this site to sign in to external services."),void s();let u=!1;const c=e=>{u||(u=!0,window.removeEventListener("message",d),clearInterval(l),e?.(),s())},d=async e=>{if(e.origin!==window.location.origin)return;if(u)return;if(e.data?.type===Ns)return void c(()=>n.showErrorToast(`Failed to sign in to ${r}. Please try again.`));if(e.data?.type!==Cs)return;u=!0,window.removeEventListener("message",d),clearInterval(l);const{code:p,state:f}=e.data;"error"in await o({code:p,state:f})?n.showErrorToast(`Failed to sign in to ${r}. Please try again.`):(n.showSuccessToast(`${r} connected successfully`),a&&t.current?.(`${r} is now signed in, please continue`)),s(),i?.close()},l=setInterval(()=>{i.closed&&c()},500);return window.addEventListener("message",d),()=>{window.removeEventListener("message",d),clearInterval(l),u||i.close()}},[e,t,s,o,a])},exports.usePayment=function({sendMessageRef:e}){const{paymentInit:t,setPaymentInit:r,clearPaymentInit:n,handlePaymentResult:s}=fs({sendMessageRef:e}),{handlePaymentResult:a,handleModalOpenChange:o}=ys({paymentInit:t,onPaymentResult:s,onClearPaymentInit:n});return{paymentInit:t,setPaymentInit:r,isOpen:!!t,onOpenChange:o,onResult:a,clearPaymentInit:n}},exports.usePaymentFlow=fs,exports.usePaymentResultDedup=ys,exports.useProtocol=vn,exports.useRefreshToken=function(){const e=t.useStore(),[s,a]=r.useState(!1);return{refresh:r.useCallback(async()=>{a(!0);try{const t=e.getState(),r=t.auth?.refreshToken,s=t.auth?.user?.email;if(!r||!s)return{success:!1,error:new Error("No refresh token or user available")};const{body:a,tokens:o}=await Dn({refresh_token:r,user_id:s});return a?.success&&a?.data?(e.dispatch(n.setSession({accessToken:o.accessToken,refreshToken:o.refreshToken,expiresIn:a.data.expiry_time})),{success:!0,data:a}):{success:!1,error:a}}catch(e){return{success:!1,error:e}}finally{a(!1)}},[e]),isLoading:s}},exports.useResolvedChatIndicators=Es,exports.useSTTRecording=({onTranscriptionComplete:e,onTranscriptionPopulate:s,ensureConversation:a,autoSendVoice:o=!0,gesture:i=Rs.HOLD}={})=>{const[u,c]=r.useState(!1),[d,l]=r.useState(!1),[p,f]=r.useState(0),g=r.useRef(null),h=r.useRef(null),m=r.useRef(!1),y=r.useRef(!1),T=r.useRef(!1),S=r.useRef(null),_=t.useDispatch(),[E]=Rr(),v=r.useCallback(async()=>{if(i===Rs.TAP){if(m.current||T.current)return;T.current=!0;try{g.current||(g.current=new ws),await g.current.startRecording(e=>{f(e)}),h.current=Date.now(),m.current=!0,c(!0)}catch(e){n.logger.error({message:"Failed to start STT recording",api_name:"stt-record",error_message:e instanceof Error?e.message:String(e)}),m.current=!1,n.showErrorToast(Is)}finally{T.current=!1}return}y.current=!1;const e=()=>{t(),m.current?S.current?.():y.current=!0},t=()=>{document.removeEventListener("mouseup",e),document.removeEventListener("touchend",e),document.removeEventListener("pointerup",e)};document.addEventListener("mouseup",e),document.addEventListener("touchend",e),document.addEventListener("pointerup",e);const r=await xs();if("denied"===r)return t(),void n.showErrorToast(Is);if("prompt"!==r){if(y.current)return t(),void(y.current=!1);try{g.current||(g.current=new ws),await g.current.startRecording(e=>{f(e)}),h.current=Date.now(),m.current=!0,c(!0),y.current&&(y.current=!1,await(S.current?.()))}catch(e){t(),n.logger.error({message:"Failed to start STT recording",api_name:"stt-record",error_message:e instanceof Error?e.message:String(e)}),m.current=!1,n.showErrorToast(Is)}}else{t(),y.current=!1;try{(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach(e=>e.stop())}catch{"denied"===await xs()&&n.showErrorToast(Is)}}},[i]),b=r.useCallback(()=>{m.current&&(g.current?.cleanup(),m.current=!1,h.current=null,c(!1),f(0))},[]),A=r.useCallback(async()=>{try{if(!g.current||!m.current)return;const t=h.current?Date.now()-h.current:0;if(c(!1),f(0),t<500)return g.current?.cleanup(),void(h.current=null);l(!0);const r=await g.current.stopRecording(),i=await(a?.())??null;if(!i)return void n.showErrorToast("Failed to transcribe audio");const u=await E({conversationId:i,audioFile:r}).unwrap();u.success?u.data.text&&(_(sn(u.data.transcription_id)),o&&e?await e(u.data.text):!o&&s&&s(u.data.text)):n.showErrorToast("Transcription failed")}catch(e){n.logger.error({message:"STT transcription failed",api_name:"stt-transcribe",error_message:e instanceof Error?e.message:String(e)}),n.showErrorToast("Failed to transcribe audio")}finally{l(!1),m.current=!1,g.current?.cleanup(),h.current=null}},[o,_,a,e,s,E]);return r.useEffect(()=>{S.current=A},[A]),r.useEffect(()=>()=>{g.current?.cleanup()},[]),{isRecording:u,isTranscribing:d,audioLevel:p,startRecording:v,stopRecording:A,cancelRecording:i===Rs.TAP?b:null}},exports.useSignup=function(){const{run:e,isLoading:t}=qn(Nn);return{signup:e,isLoading:t}},exports.useStartToolServerOAuthMutation=Mr,exports.useThinkingMessage=(e={})=>{const{enabled:t=!0}=e,[n,s]=r.useState(Yn.INITIAL),[a,o]=r.useState(0),[i,u]=r.useState(!0),c=r.useRef(null),d=r.useRef(null),l=r.useRef(null);return r.useEffect(()=>{if(!t)return s(Yn.INITIAL),o(0),void u(!0);s(Yn.INITIAL),o(0),u(!0);let e=Yn.INITIAL;const r=()=>{c.current=setTimeout(()=>{u(!1),l.current=setTimeout(()=>{o(t=>(t+1)%e.length),u(!0),l.current=null},500),r()},Yn.ROTATION_INTERVAL_MS)};return r(),d.current=setTimeout(()=>{e=Yn.LATER,c.current&&clearTimeout(c.current),l.current&&clearTimeout(l.current),s(Yn.LATER),o(0),u(!1),l.current=setTimeout(()=>{u(!0),l.current=null},500),r()},Yn.PHASE_SWITCH_MS),()=>{c.current&&clearTimeout(c.current),d.current&&clearTimeout(d.current),l.current&&clearTimeout(l.current),c.current=null,d.current=null,l.current=null}},[t]),{message:n[a],isVisible:i}},exports.useTokenRefresh=function({refreshSession:e,checkIntervalMs:s=6e4}){const a=t.useStore(),o=t.useSelector(e=>e.auth),i=o?.accessToken??null,u=Boolean(o?.isAuthenticated),c=o?.tokenExpiresAt??null,d=r.useRef(null),l=r.useRef(null),p=r.useCallback(()=>{a.dispatch(n.clearSession())},[a]),f=r.useCallback(async(t=!1)=>{if(t||!(Date.now()-As<3e5))try{await e()?As=Date.now():(n.logger.error({message:"Session cleared: proactive token refresh failed",api_name:"auth-refresh"}),p())}catch(e){n.logger.error({message:"Token refresh failed",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),p()}},[e,p]),g=r.useCallback(()=>{u&&(n.isTokenExpired(c)?f(!0):n.isTokenAboutToExpire(c)&&f())},[u,c,f]);return r.useEffect(()=>{i&&n.isTokenExpired(c)&&f(!0)},[]),r.useEffect(()=>{if(u&&i){if(n.isTokenExpired(c))return void f(!0);const e=n.getTimeUntilRefresh(c);return e>0?l.current=setTimeout(()=>{f()},e):n.isTokenAboutToExpire(c)&&f(),d.current=setInterval(()=>{n.isTokenExpired(c)?f(!0):n.isTokenAboutToExpire(c)&&f()},s),()=>{d.current&&clearInterval(d.current),l.current&&clearTimeout(l.current)}}As=0,d.current&&(clearInterval(d.current),d.current=null),l.current&&(clearTimeout(l.current),l.current=null)},[u,i,c,s,f]),{checkNow:g}},exports.useTranscribeAudioMutation=Rr,exports.useTypewriter=function(e,t=28){const[n,s]=r.useState(e),a=r.useRef(e),o=r.useCallback(e=>{a.current=e,s(e)},[]);return r.useEffect(()=>{if(a.current===e)return;const r=function(e,t){const r=Math.min(e.length,t.length);let n=0;for(;n<r&&e[n]===t[n];)n+=1;return n}(a.current,e);o(e.slice(0,r));let n=r;const s=globalThis.setInterval(()=>{n+=1,o(e.slice(0,n)),n>=e.length&&globalThis.clearInterval(s)},t);return()=>globalThis.clearInterval(s)},[e,t,o]),n},exports.useUpdatePasswordMutation=Gr,exports.useUpdateProfileMutation=zr,exports.useUploadDocumentMutation=Ir,exports.useUserLocation=hs,exports.useVerifyEmail=function(){const{run:e,isLoading:t}=qn(Pn);return{verify:e,isLoading:t}},exports.verifyEmailApi=Pn;
|