@1interface/shared-core 0.4.0 → 0.5.0
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 +52 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -52,6 +52,11 @@ export declare interface AppResponse<T> {
|
|
|
52
52
|
message?: string;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
export declare interface AppSettingConfig {
|
|
56
|
+
web?: PlatformScreens;
|
|
57
|
+
mobile?: PlatformScreens;
|
|
58
|
+
}
|
|
59
|
+
|
|
55
60
|
export declare const AUTH_HEADERS: {
|
|
56
61
|
readonly ACCESS_TOKEN: "x-access-token";
|
|
57
62
|
readonly REFRESH_TOKEN: "x-refresh-token";
|
|
@@ -117,6 +122,8 @@ export declare interface BrandingTheme {
|
|
|
117
122
|
surface?: SurfaceColors;
|
|
118
123
|
text?: TextColors;
|
|
119
124
|
status?: StatusColors;
|
|
125
|
+
orbVideo?: OrbVideoConfig;
|
|
126
|
+
appSetting?: AppSettingConfig;
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
export declare interface BrandingThemes {
|
|
@@ -126,6 +133,13 @@ export declare interface BrandingThemes {
|
|
|
126
133
|
|
|
127
134
|
export declare function brandingToThemeStyles(branding: BrandingConfig | null, theme: BrandingTheme | null, resolvedTheme?: ResolvedTheme): ChatThemeStyles;
|
|
128
135
|
|
|
136
|
+
export declare interface BrandLogo {
|
|
137
|
+
url?: string;
|
|
138
|
+
width?: number;
|
|
139
|
+
height?: number;
|
|
140
|
+
alignment?: LogoAlignment;
|
|
141
|
+
}
|
|
142
|
+
|
|
129
143
|
export declare const BRIDGE_TOAST_EVENT_NAME = "bridge-toast";
|
|
130
144
|
|
|
131
145
|
export declare type BridgeToastDetail = ToastOptions;
|
|
@@ -193,6 +207,7 @@ export declare interface ChatThemeStyles {
|
|
|
193
207
|
sideMenuText: string;
|
|
194
208
|
sideMenuIcon: string;
|
|
195
209
|
sideMenuProfile: string;
|
|
210
|
+
screenMaskingColor: string;
|
|
196
211
|
statusPrimary: StatusThemeVariant;
|
|
197
212
|
statusSecondary: StatusThemeVariant;
|
|
198
213
|
statusSuccess: StatusThemeVariant;
|
|
@@ -434,6 +449,20 @@ export declare type LogInput = LogAttrs & {
|
|
|
434
449
|
|
|
435
450
|
export declare type LogLevel = (typeof LOG_LEVELS)[keyof typeof LOG_LEVELS];
|
|
436
451
|
|
|
452
|
+
export declare const LOGO_ALIGNMENTS: {
|
|
453
|
+
readonly TOP_LEADING: "topLeading";
|
|
454
|
+
readonly TOP: "top";
|
|
455
|
+
readonly TOP_TRAILING: "topTrailing";
|
|
456
|
+
readonly LEADING: "leading";
|
|
457
|
+
readonly CENTER: "center";
|
|
458
|
+
readonly TRAILING: "trailing";
|
|
459
|
+
readonly BOTTOM_LEADING: "bottomLeading";
|
|
460
|
+
readonly BOTTOM: "bottom";
|
|
461
|
+
readonly BOTTOM_TRAILING: "bottomTrailing";
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
export declare type LogoAlignment = (typeof LOGO_ALIGNMENTS)[keyof typeof LOGO_ALIGNMENTS];
|
|
465
|
+
|
|
437
466
|
export declare const logout: ActionCreatorWithoutPayload<"auth/clearSession">;
|
|
438
467
|
|
|
439
468
|
export declare interface LogoutRequest {
|
|
@@ -523,6 +552,16 @@ export declare const ORB_POSITIONS: {
|
|
|
523
552
|
|
|
524
553
|
export declare type OrbPosition = (typeof ORB_POSITIONS)[keyof typeof ORB_POSITIONS];
|
|
525
554
|
|
|
555
|
+
export declare interface OrbVideoConfig {
|
|
556
|
+
background?: string;
|
|
557
|
+
video?: {
|
|
558
|
+
url?: string;
|
|
559
|
+
width?: number;
|
|
560
|
+
height?: number;
|
|
561
|
+
posterUrl?: string;
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
|
|
526
565
|
export declare const ORG_MOUNT_SUFFIX = "chat";
|
|
527
566
|
|
|
528
567
|
export declare interface Organization {
|
|
@@ -551,6 +590,12 @@ export declare type PaymentInitPayload = StripePaymentInit | MoyasarPaymentInit
|
|
|
551
590
|
|
|
552
591
|
export declare type PaymentProviderType = "stripe" | "moyasar" | "chargebee";
|
|
553
592
|
|
|
593
|
+
export declare interface PlatformScreens {
|
|
594
|
+
splash?: ScreenConfig;
|
|
595
|
+
landing?: ScreenConfig;
|
|
596
|
+
login?: ScreenConfig;
|
|
597
|
+
}
|
|
598
|
+
|
|
554
599
|
export declare const PROFILE_LIMITS: {
|
|
555
600
|
readonly NAME_MAX_LENGTH: 64;
|
|
556
601
|
readonly PHONE_MIN_LENGTH: 8;
|
|
@@ -595,6 +640,12 @@ export declare type ResolvedTheme = Exclude<AppearanceMode, typeof APPEARANCE_MO
|
|
|
595
640
|
|
|
596
641
|
export declare const sanitizeExpiryDate: (value: string) => string;
|
|
597
642
|
|
|
643
|
+
export declare interface ScreenConfig {
|
|
644
|
+
background?: string;
|
|
645
|
+
logo?: BrandLogo;
|
|
646
|
+
image?: BrandLogo;
|
|
647
|
+
}
|
|
648
|
+
|
|
598
649
|
export declare interface SessionCreateRequest {
|
|
599
650
|
email: string;
|
|
600
651
|
password: string;
|
|
@@ -804,6 +855,7 @@ export declare interface SurfaceColors {
|
|
|
804
855
|
userMessage?: UserMessageColors;
|
|
805
856
|
sideMenu?: SideMenuColors;
|
|
806
857
|
settings?: SettingsColors;
|
|
858
|
+
screenMasking?: string;
|
|
807
859
|
}
|
|
808
860
|
|
|
809
861
|
export declare interface SyncKeyValueStorage {
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("@reduxjs/toolkit"),r=require("react"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,i=o.getMonth()+1;return!(s<n||s===n&&r<i||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let i=null,a=null;const u=[];function c(e){if(i=e,u.length>0){const t=u.splice(0,u.length);for(const r of t)e.emit(r)}}function l(e){a=e}function d(e,t){const r=a?function(e){try{return e()??{}}catch{return{}}}(a):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};i?i.emit(n):(u.length>=200&&u.shift(),u.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>i?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const m={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function T(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function F(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=T(s));return t}let S=!1,x=null,f=!0;function h(e){f=e}function _(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),c(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new n.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:m[t],severityText:t,body:JSON.stringify(e),attributes:F(o),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){f&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&x?.())}const O=Object.freeze(Object.defineProperty({__proto__:null,initLogger:_,registerPlatformFlushAttacher:function(e){x=e},resetInitLoggerStateForTests:function(){S=!1,x=null,f=!0},setNetworkLoggingEnabled:h},Symbol.toStringTag,{value:"Module"}));let A,I="",y={},R=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const v=()=>R,B=()=>D(),k=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${I}/api${t}`},b="chat",w={CONVERSATIONS:()=>k("/conversations"),CONVERSATION_STREAM:e=>k(`/conversations/${e}`),CONVERSATION_START:e=>k(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>k(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>k(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>k(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return k("/transcribe")},get BRANDING(){return k("/branding")},get CONFIG(){return k("/config")},get PROFILE(){return k("/profile")},get AUTH_ME(){return k("/auth/me")},get CHANGE_PASSWORD(){return k("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return k("/organizations/exists")},get DEBUG(){return k("/debug")},get TOOL_SERVERS(){return k("/tool-servers")},TOOL_SERVER_AUTH_START:e=>k(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>k(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return k("/tool-servers/auth/exchange")},get LOG(){return k("/log")}},P={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},L={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},U={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let G=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function V(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const j=W,X={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-P.TOKEN_CLOCK_SKEW_MS,Y=e=>!e||Date.now()>=e-P.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}class Z{static instance;events={};constructor(){}static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const Q=Z.getInstance(),ee={LIGHT:"light",DARK:"dark",SYSTEM:"system"},te=[ee.LIGHT,ee.DARK,ee.SYSTEM],re={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},se={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."},oe={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."};function ne(e){return e===ee.LIGHT?oe:se}const ie=se;function ae(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ue(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ce(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function le(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function de(e){switch(e){case"pill":return re.PILL;case"none":return re.SHARP;default:return 0===parseInt(e??"",10)?re.SHARP:re.ROUNDED}}const pe=r.createContext(void 0),ge=r.createContext(null);let Ee=null;const me=()=>Ee,Te=r.createContext(null),Fe={isConnected:!0,isInternetReachable:!0},Se=t.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+P.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:xe,updateUser:fe,clearSession:he,sessionExpired:_e,setSelectedOrgId:Oe}=Se.actions,Ae=xe,Ie=he,ye=t.createListenerMiddleware();ye.startListening({matcher:t.isAnyOf(xe,fe,he,_e),effect:async(e,t)=>{const r=me();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(L.ACCESS_TOKEN,s.accessToken):r.removeItem(L.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(L.REFRESH_TOKEN,s.refreshToken):r.removeItem(L.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(L.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(L.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(L.USER,JSON.stringify(s.user)):r.removeItem(L.USER)),(he.match(e)||_e.match(e))&&o.push(r.removeItem(L.LOCATION_CACHE),r.removeItem(L.DEBUG_MODE),r.removeItem(L.APPEARANCE_MODE_KEY),r.removeItem(L.LOCATION_ENABLED),r.removeItem(L.STT_AUTO_SEND),r.removeItem(L.STT_IMPLEMENTATION),r.removeItem(L.SEND_DIAGNOSTICS),r.removeItem(L.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const Re=Se.reducer,Ne={lastResponseTime:null},Ce=t.createSlice({name:"indicator",initialState:Ne,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(t.isAnyOf(he,_e),()=>Ne)}}),{setLastResponseTime:De,clearLastResponseTime:Me}=Ce.actions,ve=Ce.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=w,exports.APPEARANCE_MODES=ee,exports.APPEARANCE_MODE_VALUES=te,exports.AUTH_HEADERS=U,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=j,exports.BrandingContext=pe,exports.CORNER_RADIUS_MODES=re,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Z,exports.FEATURE_FLAGS={SSO:"sso"},exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LOG_LEVELS=n,exports.NetworkContext=Te,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=b,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.STORAGE_KEYS=L,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=ge,exports.TIMING=P,exports.USER_TYPES=X,exports.brandingToThemeStyles=function(e,t,r=ee.DARK){const s=ne(r);if(!e||!t)return s;const o=t.surface?.chatInput?.border||t.surface?.input?.border,n=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?ae(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ae(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:n?.style||s.userMsgBorderStyle,userMsgBorderColor:n?.color?ae(n.color,n.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:n?.width||s.userMsgBorderWidth,userMsgBorderOpacity:n?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ue(e.typography?.fontFamily,s),fontFamilyMono:ce(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:le(e.cornerRadius,s),cornerRadiusMode:de(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}},exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=Me,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)}catch{}}(e),function(e){try{e.removeItem(L.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=he,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=ie,exports.defaultDarkThemeStyles=se,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=oe,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(L.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(L.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.ensureFreshToken=async()=>Y(B())?await(v()?.())??null:null,exports.eventEmitter=Q,exports.extractTokens=function(e){const t=e.headers.get(U.ACCESS_TOKEN),r=e.headers.get(U.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${U.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${U.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),i=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=k,exports.getAppearanceModeStorageKey=e=>e?`${L.APPEARANCE_MODE_KEY}:${e}`:L.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>I,exports.getCustomHeaders=()=>y,exports.getDefaultThemeStyles=ne,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>A,exports.getSendDiagnostics=()=>G,exports.getStorageRef=me,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-P.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=v,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(i*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(L.SEND_DIAGNOSTICS);G=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(L.ACCESS_TOKEN),e.getItem(L.REFRESH_TOKEN),e.getItem(L.TOKEN_EXPIRES_AT),e.getItem(L.USER)]),i=o?parseInt(o,10):null;if((!r||!i||z(i))&&!s)return void(r&&await Promise.all([e.removeItem(L.ACCESS_TOKEN),e.removeItem(L.REFRESH_TOKEN),e.removeItem(L.TOKEN_EXPIRES_AT),e.removeItem(L.USER)]));let a=null;if(n)try{a=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(xe({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},exports.indicatorReducer=ve,exports.initLogger=_,exports.initializeChatConfig=e=>{I=e.baseUrl,y=e.customHeaders||{},A=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===X.GUEST_USER},exports.isTokenAboutToExpire=Y,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${b}`:`${e}/${b}`,exports.logger=p,exports.logout=Ie,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=B,exports.registerEventListener=function(e,t){return Q.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=c,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){i=null,a=null,u.length=0,(await Promise.resolve().then(()=>O)).resetInitLoggerStateForTests()},exports.sanitizeExpiryDate=o,exports.sessionExpired=_e,exports.sessionListenerMiddleware=ye,exports.sessionReducer=Re,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Ae,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=De,exports.setModuleStorage=function(e){Ee=e},exports.setNetworkLoggingEnabled=h,exports.setSelectedOrgId=Oe,exports.setSession=xe,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{R=e},exports.showErrorToast=(e="Please try again")=>V({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>V({title:"Success",description:e,variant:"default"}),exports.showToast=e=>V(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=fe,exports.useBranding=function(){const e=r.useContext(pe);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e},exports.useNetworkState=()=>{const e=r.useContext(Te),t=r.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=r.useCallback(()=>e?e.getState():Fe,[e]);return r.useSyncExternalStore(t,s,s)},exports.useStorage=()=>{const e=r.useContext(ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.writeOrgToStorage=function(e,t){try{t.setItem(L.SELECTED_ORG_ID,e),t.setItem(L.SELECTED_ORG_NAME,e)}catch{}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./textDirection-Dmwjhp8G.cjs"),t=require("@reduxjs/toolkit"),r=require("react"),s=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const o=new Date,n=o.getFullYear()%100,i=o.getMonth()+1;return!(s<n||s===n&&r<i||r>12)},o=e=>{if(!e)return"";if(!s(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,o=s.getFullYear()%100,n=s.getMonth()+1;if(r<o||r===o&&e<n||e>12)return""}}return e},n={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let i=null,a=null;const u=[];function c(e){if(i=e,u.length>0){const t=u.splice(0,u.length);for(const r of t)e.emit(r)}}function l(e){a=e}function d(e,t){const r=a?function(e){try{return e()??{}}catch{return{}}}(a):{},{message:s,...o}=t,n={...r,...o,level:e,message:s,timestamp:(new Date).toISOString()};i?i.emit(n):(u.length>=200&&u.shift(),u.push(n))}const p={debug(e){d(n.DEBUG,e)},info(e){d(n.INFO,e)},warn(e){d(n.WARN,e)},error(e){d(n.ERROR,e)},flush:()=>i?.flush?.()},g={[n.DEBUG]:0,[n.INFO]:1,[n.WARN]:2,[n.ERROR]:3};function E(e={}){const t=g[e.minLevel??n.DEBUG];return{emit(e){g[e.level]<t||(e.level===n.ERROR?console.error:e.level===n.WARN?console.warn:e.level===n.DEBUG?console.debug:console.info)(e)}}}const T={[n.DEBUG]:5,[n.INFO]:9,[n.WARN]:13,[n.ERROR]:17};function m(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function F(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=m(s));return t}let S=!1,x=null,f=!0;function h(e){f=e}function O(e){S||(S=!0,l(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),c(function(e){const t=[E({minLevel:e.consoleMinLevel??(e.isDev?n.DEBUG:n.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const o=[];function n(){s||(s=async function(){const[t,s,n,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new n.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...o}=e;l.emit({severityNumber:T[t],severityText:t,body:JSON.stringify(e),attributes:F(o),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},o.length>0){const e=o.splice(0,o.length);for(const t of e)r.emit(t)}}().catch(()=>{o.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(n(),o.length>=200&&o.shift(),o.push(e)))},async flush(){(s||r)&&(n(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,o=e.wrapBatch??(e=>e),n=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===n.length||0===(t=n.splice(0,n.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){n.length>=s&&n.shift(),n.push(e),n.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){f&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&x?.())}const _=Object.freeze(Object.defineProperty({__proto__:null,initLogger:O,registerPlatformFlushAttacher:function(e){x=e},resetInitLoggerStateForTests:function(){S=!1,x=null,f=!0},setNetworkLoggingEnabled:h},Symbol.toStringTag,{value:"Module"}));let I,A="",R={},y=null,N=()=>null,C=()=>null,D=()=>null,M=!1;const v=()=>y,B=()=>D(),k=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${A}/api${t}`},b="chat",w={CONVERSATIONS:()=>k("/conversations"),CONVERSATION_STREAM:e=>k(`/conversations/${e}`),CONVERSATION_START:e=>k(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>k(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>k(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>k(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return k("/transcribe")},get BRANDING(){return k("/branding")},get CONFIG(){return k("/config")},get PROFILE(){return k("/profile")},get AUTH_ME(){return k("/auth/me")},get CHANGE_PASSWORD(){return k("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return k("/organizations/exists")},get DEBUG(){return k("/debug")},get TOOL_SERVERS(){return k("/tool-servers")},TOOL_SERVER_AUTH_START:e=>k(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>k(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return k("/tool-servers/auth/exchange")},get LOG(){return k("/log")}},L={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},P={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},U={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"};let G=!0;const H=3,K=500,$=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(p.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))},W="bridge-toast";function V(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(W,{detail:e}))}const j=W,X={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},z=e=>!!e&&Date.now()>=e-L.TOKEN_CLOCK_SKEW_MS,Y=e=>!e||Date.now()>=e-L.TOKEN_REFRESH_THRESHOLD_MS;function J(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),o=JSON.parse(s);return o&&"object"==typeof o&&!Array.isArray(o)?o:null}catch{return null}}function q(e){const t=J(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}class Z{static instance;events={};constructor(){}static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){p.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const Q=Z.getInstance(),ee={LIGHT:"light",DARK:"dark",SYSTEM:"system"},te=[ee.LIGHT,ee.DARK,ee.SYSTEM],re={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},se={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."},oe={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:re.PILL,chatInputPlaceholder:"Type anything..."};function ne(e){return e===ee.LIGHT?oe:se}const ie=se;function ae(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const o=Math.max(0,Math.min(100,t));return`#${s}${Math.round(o/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ue(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ce(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function le(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function de(e){switch(e){case"pill":return re.PILL;case"none":return re.SHARP;default:return 0===parseInt(e??"",10)?re.SHARP:re.ROUNDED}}const pe=r.createContext(void 0),ge=r.createContext(null);let Ee=null;const Te=()=>Ee,me=r.createContext(null),Fe={isConnected:!0,isInternetReachable:!0},Se=t.createSlice({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:o,expiresIn:n}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==o&&(e.refreshToken=o),void 0!==n?e.tokenExpiresAt=null===n?null:1e3*n:s&&(e.tokenExpiresAt=Date.now()+L.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:xe,updateUser:fe,clearSession:he,sessionExpired:Oe,setSelectedOrgId:_e}=Se.actions,Ie=xe,Ae=he,Re=t.createListenerMiddleware();Re.startListening({matcher:t.isAnyOf(xe,fe,he,Oe),effect:async(e,t)=>{const r=Te();if(!r)return;const{auth:s}=t.getState(),o=[];o.push(s.accessToken?r.setItem(P.ACCESS_TOKEN,s.accessToken):r.removeItem(P.ACCESS_TOKEN)),o.push(s.refreshToken?r.setItem(P.REFRESH_TOKEN,s.refreshToken):r.removeItem(P.REFRESH_TOKEN)),o.push(null!=s.tokenExpiresAt?r.setItem(P.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(P.TOKEN_EXPIRES_AT)),o.push(s.user?r.setItem(P.USER,JSON.stringify(s.user)):r.removeItem(P.USER)),(he.match(e)||Oe.match(e))&&o.push(r.removeItem(P.LOCATION_CACHE),r.removeItem(P.DEBUG_MODE),r.removeItem(P.APPEARANCE_MODE_KEY),r.removeItem(P.LOCATION_ENABLED),r.removeItem(P.STT_AUTO_SEND),r.removeItem(P.STT_IMPLEMENTATION),r.removeItem(P.SEND_DIAGNOSTICS),r.removeItem(P.ACTIVE_CONVERSATION_ID)),await Promise.all(o)}});const ye=Se.reducer,Ne={lastResponseTime:null},Ce=t.createSlice({name:"indicator",initialState:Ne,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(t.isAnyOf(he,Oe),()=>Ne)}}),{setLastResponseTime:De,clearLastResponseTime:Me}=Ce.actions,ve=Ce.reducer;exports.DIRECTION_VECTORS=e.DIRECTION_VECTORS,exports.TEXT_DIRECTION=e.TEXT_DIRECTION,exports.detectTextDirection=e.detectTextDirection,exports.resolveDirectionFromLang=e.resolveDirectionFromLang,exports.useMessageDirection=e.useMessageDirection,exports.useMessageDirections=e.useMessageDirections,exports.API_ENDPOINTS=w,exports.APPEARANCE_MODES=ee,exports.APPEARANCE_MODE_VALUES=te,exports.AUTH_HEADERS=U,exports.AUTH_PATHS={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},exports.BRIDGE_TOAST_EVENT_NAME=j,exports.BrandingContext=pe,exports.CORNER_RADIUS_MODES=re,exports.DEVICE_TOKEN_HEADER="x-device-token",exports.EventEmitter=Z,exports.FEATURE_FLAGS={SSO:"sso"},exports.IDP_HINTS={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"},exports.INDICATOR_TIMER_ACTIONS={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"},exports.LOGO_ALIGNMENTS={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},exports.LOG_LEVELS=n,exports.NetworkContext=me,exports.ORB_POSITIONS={FOREGROUND:"foreground",BACKGROUND:"background"},exports.ORG_MOUNT_SUFFIX=b,exports.PASSWORD_LIMITS={MIN_LENGTH:8,MAX_LENGTH:128},exports.PATTERNS={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},exports.PROFILE_LIMITS={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},exports.STORAGE_KEYS=P,exports.STT_IMPLEMENTATIONS={ONLINE:"online",DEVICE:"device"},exports.StorageContext=ge,exports.TIMING=L,exports.USER_TYPES=X,exports.brandingToThemeStyles=function(e,t,r=ee.DARK){const s=ne(r);if(!e||!t)return s;const o=t.surface?.chatInput?.border||t.surface?.input?.border,n=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:o?.style||s.inputBorderStyle,inputBorderColor:o?.color?ae(o.color,o.opacity||100):s.inputBorderColor,inputBorderWidth:o?.width||s.inputBorderWidth,inputBorderOpacity:o?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ae(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:n?.style||s.userMsgBorderStyle,userMsgBorderColor:n?.color?ae(n.color,n.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:n?.width||s.userMsgBorderWidth,userMsgBorderOpacity:n?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ue(e.typography?.fontFamily,s),fontFamilyMono:ce(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:le(e.cornerRadius,s),cornerRadiusMode:de(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}},exports.capitalizeFirst=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",exports.clearLastResponseTime=Me,exports.clearPreviousTenant=function(e){!function(e){try{e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)}catch{}}(e),function(e){try{e.removeItem(P.ACTIVE_CONVERSATION_ID)}catch{}}(e)},exports.clearSession=he,exports.createTokenRefresher=function(e){const{performRefresh:t,isTransient:r=$,maxAttempts:s=H,backoffBaseMs:o=K}=e;let n=null;return function(){return n||(n=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const n=o*2**e+250*Math.random();await new Promise(e=>setTimeout(e,n))}return null})().finally(()=>{n=null}),n)}},exports.defaultChatThemeStyles=ie,exports.defaultDarkThemeStyles=se,exports.defaultIsTransient=$,exports.defaultLightThemeStyles=oe,exports.detectOrgSwitch=function(e,t){try{const r=t.getItem(P.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=q(t.getItem(P.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}},exports.ensureFreshToken=async()=>Y(B())?await(v()?.())??null:null,exports.eventEmitter=Q,exports.extractTokens=function(e){const t=e.headers.get(U.ACCESS_TOKEN),r=e.headers.get(U.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${U.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${U.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}},exports.formatCVC=e=>e.replace(/\D/g,"").slice(0,4),exports.formatCamelCaseToTitle=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",exports.formatCardNumber=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),exports.formatExpiryDate=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return o(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},exports.formatTimeRemaining=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`},exports.formatTimestamp=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),o=Math.floor(s/6e4),n=Math.floor(s/36e5),i=Math.floor(s/864e5);return o<1?"Just now":o<60?`${o}m ago`:n<24?`${n}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},exports.generateUniqueId=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),exports.getApiUrl=k,exports.getAppearanceModeStorageKey=e=>e?`${P.APPEARANCE_MODE_KEY}:${e}`:P.APPEARANCE_MODE_KEY,exports.getArrayOfObjects=function(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e},exports.getBaseUrl=()=>A,exports.getCustomHeaders=()=>R,exports.getDefaultThemeStyles=ne,exports.getErrorMessage=function(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t},exports.getInitials=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},exports.getPaymentId=function(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id},exports.getPaymentProviderHint=()=>I,exports.getSendDiagnostics=()=>G,exports.getStorageRef=Te,exports.getTimeUntilExpiry=e=>e?Math.max(0,e-Date.now()):0,exports.getTimeUntilRefresh=e=>e?Math.max(0,e-L.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,exports.getTokenRefreshHandler=v,exports.handleSharedEvent=function(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}},exports.hasWidgets=e=>Array.isArray(e.widget)&&e.widget.length>0,exports.hexToRgba=function(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),n=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${o}, ${n}, ${Math.round(i*t*1e3)/1e3})`},exports.hydrateAppBoot=async e=>{const t=await e.getItem(P.SEND_DIAGNOSTICS);G=null===t||"true"===t},exports.hydrateSession=e=>async t=>{const[r,s,o,n]=await Promise.all([e.getItem(P.ACCESS_TOKEN),e.getItem(P.REFRESH_TOKEN),e.getItem(P.TOKEN_EXPIRES_AT),e.getItem(P.USER)]),i=o?parseInt(o,10):null;if((!r||!i||z(i))&&!s)return void(r&&await Promise.all([e.removeItem(P.ACCESS_TOKEN),e.removeItem(P.REFRESH_TOKEN),e.removeItem(P.TOKEN_EXPIRES_AT),e.removeItem(P.USER)]));let a=null;if(n)try{a=JSON.parse(n)}catch(e){p.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(xe({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},exports.indicatorReducer=ve,exports.initLogger=O,exports.initializeChatConfig=e=>{A=e.baseUrl,R=e.customHeaders||{},I=e.paymentProvider},exports.isDevMode=()=>M,exports.isGuest=function(e){return e?.type===X.GUEST_USER},exports.isTokenAboutToExpire=Y,exports.isTokenExpired=z,exports.joinOrgMountBase=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${b}`:`${e}/${b}`,exports.logger=p,exports.logout=Ae,exports.parseJwtPayload=J,exports.parseOrgFromJwt=q,exports.readAccessToken=()=>N(),exports.readDeviceToken=()=>C(),exports.readTokenExpiresAt=B,exports.registerEventListener=function(e,t){return Q.on(e,t)},exports.registerLoggerContextProvider=l,exports.registerLoggerSink=c,exports.removeSpecialCharsAndSpaces=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",exports.resetLoggerForTests=async function(){i=null,a=null,u.length=0,(await Promise.resolve().then(()=>_)).resetInitLoggerStateForTests()},exports.sanitizeExpiryDate=o,exports.sessionExpired=Oe,exports.sessionListenerMiddleware=Re,exports.sessionReducer=ye,exports.setAccessTokenReader=e=>{N=e},exports.setCredentials=Ie,exports.setDeviceTokenReader=e=>{C=e},exports.setIsDev=e=>{M=e},exports.setLastResponseTime=De,exports.setModuleStorage=function(e){Ee=e},exports.setNetworkLoggingEnabled=h,exports.setSelectedOrgId=_e,exports.setSession=xe,exports.setTokenExpiresAtReader=e=>{D=e},exports.setTokenRefreshHandler=e=>{y=e},exports.showErrorToast=(e="Please try again")=>V({title:"Error",description:e,variant:"destructive"}),exports.showSuccessToast=(e="Successfully")=>V({title:"Success",description:e,variant:"default"}),exports.showToast=e=>V(e),exports.truncateWordLimit=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},exports.updateUser=fe,exports.useBranding=function(){const e=r.useContext(pe);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e},exports.useNetworkState=()=>{const e=r.useContext(me),t=r.useCallback(t=>e?e.subscribe(t):()=>{},[e]),s=r.useCallback(()=>e?e.getState():Fe,[e]);return r.useSyncExternalStore(t,s,s)},exports.useStorage=()=>{const e=r.useContext(ge);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e},exports.validateExpiryDate=s,exports.writeOrgToStorage=function(e,t){try{t.setItem(P.SELECTED_ORG_ID,e),t.setItem(P.SELECTED_ORG_NAME,e)}catch{}};
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createSlice as i,createListenerMiddleware as a,isAnyOf as u}from"@reduxjs/toolkit";import{createContext as c,useContext as l,useCallback as d,useSyncExternalStore as g}from"react";const E=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},p=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),F=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},m=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",f=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",h=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",S=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),T=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,i=n.getMonth()+1;return!(s<o||s===o&&r<i||r>12)},_=e=>{if(!e)return"";if(!T(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},y=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return _(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},O=e=>e.replace(/\D/g,"").slice(0,4);function I(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const A=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},R=e=>Array.isArray(e.widget)&&e.widget.length>0;function N(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const C={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let x=null,M=null;const D=[];function B(e){if(x=e,D.length>0){const t=D.splice(0,D.length);for(const r of t)e.emit(r)}}function v(e){M=e}async function b(){x=null,M=null,D.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function w(e,t){const r=M?function(e){try{return e()??{}}catch{return{}}}(M):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};x?x.emit(o):(D.length>=200&&D.shift(),D.push(o))}const k={debug(e){w(C.DEBUG,e)},info(e){w(C.INFO,e)},warn(e){w(C.WARN,e)},error(e){w(C.ERROR,e)},flush:()=>x?.flush?.()},P={[C.DEBUG]:0,[C.INFO]:1,[C.WARN]:2,[C.ERROR]:3};function L(e={}){const t=P[e.minLevel??C.DEBUG];return{emit(e){P[e.level]<t||(e.level===C.ERROR?console.error:e.level===C.WARN?console.warn:e.level===C.DEBUG?console.debug:console.info)(e)}}}const U={[C.DEBUG]:5,[C.INFO]:9,[C.WARN]:13,[C.ERROR]:17};function G(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function H(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=G(s));return t}let K=!1,$=null,W=!0;function V(e){W=e}function j(e){K||(K=!0,v(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),B(function(e){const t=[L({minLevel:e.consoleMinLevel??(e.isDev?C.DEBUG:C.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new o.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:U[t],severityText:t,body:JSON.stringify(e),attributes:H(n),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){W&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&$?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:j,registerPlatformFlushAttacher:function(e){$=e},resetInitLoggerStateForTests:function(){K=!1,$=null,W=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,Y="",J={},Z=null,q=()=>null,Q=()=>null,ee=()=>null,te=!1;const re=e=>{Y=e.baseUrl,J=e.customHeaders||{},z=e.paymentProvider},se=()=>Y,ne=()=>z,oe=()=>J,ie=e=>{Z=e},ae=()=>Z,ue=e=>{q=e},ce=()=>q(),le=e=>{Q=e},de=()=>Q(),ge=e=>{ee=e},Ee=()=>ee(),pe=e=>{te=e},Fe=()=>te,me=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${Y}/api${t}`},fe="chat",he=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${fe}`:`${e}/${fe}`,Se={CONVERSATIONS:()=>me("/conversations"),CONVERSATION_STREAM:e=>me(`/conversations/${e}`),CONVERSATION_START:e=>me(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>me(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>me(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>me(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return me("/transcribe")},get BRANDING(){return me("/branding")},get CONFIG(){return me("/config")},get PROFILE(){return me("/profile")},get AUTH_ME(){return me("/auth/me")},get CHANGE_PASSWORD(){return me("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return me("/organizations/exists")},get DEBUG(){return me("/debug")},get TOOL_SERVERS(){return me("/tool-servers")},TOOL_SERVER_AUTH_START:e=>me(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>me(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return me("/tool-servers/auth/exchange")},get LOG(){return me("/log")}},Te={SSO:"sso"},_e={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},ye={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},Oe={ONLINE:"online",DEVICE:"device"},Ie=e=>e?`${ye.APPEARANCE_MODE_KEY}:${e}`:ye.APPEARANCE_MODE_KEY,Ae={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Re="x-device-token",Ne={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},Ce={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},xe={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},Me={MIN_LENGTH:8,MAX_LENGTH:128};let De=!0;const Be=async e=>{const t=await e.getItem(ye.SEND_DIAGNOSTICS);De=null===t||"true"===t},ve=()=>De,be=3,we=500,ke=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(k.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Pe(e){const{performRefresh:t,isTransient:r=ke,maxAttempts:s=be,backoffBaseMs:n=we}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Le="bridge-toast";function Ue(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Le,{detail:e}))}const Ge=e=>Ue(e),He=(e="Please try again")=>Ue({title:"Error",description:e,variant:"destructive"}),Ke=(e="Successfully")=>Ue({title:"Success",description:e,variant:"default"}),$e=Le,We={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function je(e){return e?.type===We.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-_e.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-_e.TOKEN_REFRESH_THRESHOLD_MS,Ye=async()=>ze(Ee())?await(ae()?.())??null:null,Je=e=>e?Math.max(0,e-Date.now()):0,Ze=e=>e?Math.max(0,e-_e.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function Qe(e){const t=e.headers.get(Ae.ACCESS_TOKEN),r=e.headers.get(Ae.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ae.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ae.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function et(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function tt(e){const t=et(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function rt(e,t){try{const r=t.getItem(ye.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=tt(t.getItem(ye.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function st(e){!function(e){try{e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)}catch{}}(e),function(e){try{e.removeItem(ye.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function nt(e,t){try{t.setItem(ye.SELECTED_ORG_ID,e),t.setItem(ye.SELECTED_ORG_NAME,e)}catch{}}class ot{static instance;events={};constructor(){}static getInstance(){return ot.instance||(ot.instance=new ot),ot.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){k.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const it=ot.getInstance();function at(e,t){return it.on(e,t)}const ut={LIGHT:"light",DARK:"dark",SYSTEM:"system"},ct=[ut.LIGHT,ut.DARK,ut.SYSTEM],lt={FOREGROUND:"foreground",BACKGROUND:"background"},dt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},gt={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:dt.PILL,chatInputPlaceholder:"Type anything..."},Et={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:dt.PILL,chatInputPlaceholder:"Type anything..."};function pt(e){return e===ut.LIGHT?Et:gt}const Ft=gt;function mt(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ft(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function ht(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function St(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function Tt(e){switch(e){case"pill":return dt.PILL;case"none":return dt.SHARP;default:return 0===parseInt(e??"",10)?dt.SHARP:dt.ROUNDED}}function _t(e,t,r=ut.DARK){const s=pt(r);if(!e||!t)return s;const n=t.surface?.chatInput?.border||t.surface?.input?.border,o=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?mt(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?mt(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:o?.style||s.userMsgBorderStyle,userMsgBorderColor:o?.color?mt(o.color,o.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:o?.width||s.userMsgBorderWidth,userMsgBorderOpacity:o?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ft(e.typography?.fontFamily,s),fontFamilyMono:ht(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:St(e.cornerRadius,s),cornerRadiusMode:Tt(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}}function yt(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(i*t*1e3)/1e3})`}const Ot=c(void 0);function It(){const e=l(Ot);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}const At=c(null),Rt=()=>{const e=l(At);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let Nt=null;function Ct(e){Nt=e}const xt=()=>Nt,Mt=c(null),Dt={isConnected:!0,isInternetReachable:!0},Bt=()=>{const e=l(Mt),t=d(t=>e?e.subscribe(t):()=>{},[e]),r=d(()=>e?e.getState():Dt,[e]);return g(t,r,r)},vt=i({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+_e.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:bt,updateUser:wt,clearSession:kt,sessionExpired:Pt,setSelectedOrgId:Lt}=vt.actions,Ut=bt,Gt=kt,Ht=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(ye.ACCESS_TOKEN),e.getItem(ye.REFRESH_TOKEN),e.getItem(ye.TOKEN_EXPIRES_AT),e.getItem(ye.USER)]),i=n?parseInt(n,10):null;if((!r||!i||Xe(i))&&!s)return void(r&&await Promise.all([e.removeItem(ye.ACCESS_TOKEN),e.removeItem(ye.REFRESH_TOKEN),e.removeItem(ye.TOKEN_EXPIRES_AT),e.removeItem(ye.USER)]));let a=null;if(o)try{a=JSON.parse(o)}catch(e){k.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(bt({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},Kt=a();Kt.startListening({matcher:u(bt,wt,kt,Pt),effect:async(e,t)=>{const r=xt();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(ye.ACCESS_TOKEN,s.accessToken):r.removeItem(ye.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(ye.REFRESH_TOKEN,s.refreshToken):r.removeItem(ye.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(ye.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(ye.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(ye.USER,JSON.stringify(s.user)):r.removeItem(ye.USER)),(kt.match(e)||Pt.match(e))&&n.push(r.removeItem(ye.LOCATION_CACHE),r.removeItem(ye.DEBUG_MODE),r.removeItem(ye.APPEARANCE_MODE_KEY),r.removeItem(ye.LOCATION_ENABLED),r.removeItem(ye.STT_AUTO_SEND),r.removeItem(ye.STT_IMPLEMENTATION),r.removeItem(ye.SEND_DIAGNOSTICS),r.removeItem(ye.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const $t=vt.reducer,Wt={lastResponseTime:null},Vt=i({name:"indicator",initialState:Wt,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(u(kt,Pt),()=>Wt)}}),{setLastResponseTime:jt,clearLastResponseTime:Xt}=Vt.actions,zt=Vt.reducer;function Yt(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const Jt={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function Zt(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Se as API_ENDPOINTS,ut as APPEARANCE_MODES,ct as APPEARANCE_MODE_VALUES,Ae as AUTH_HEADERS,Ne as AUTH_PATHS,$e as BRIDGE_TOAST_EVENT_NAME,Ot as BrandingContext,dt as CORNER_RADIUS_MODES,Re as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,ot as EventEmitter,Te as FEATURE_FLAGS,Ve as IDP_HINTS,Jt as INDICATOR_TIMER_ACTIONS,C as LOG_LEVELS,Mt as NetworkContext,lt as ORB_POSITIONS,fe as ORG_MOUNT_SUFFIX,Me as PASSWORD_LIMITS,Ce as PATTERNS,xe as PROFILE_LIMITS,ye as STORAGE_KEYS,Oe as STT_IMPLEMENTATIONS,At as StorageContext,t as TEXT_DIRECTION,_e as TIMING,We as USER_TYPES,_t as brandingToThemeStyles,m as capitalizeFirst,Xt as clearLastResponseTime,st as clearPreviousTenant,kt as clearSession,Pe as createTokenRefresher,Ft as defaultChatThemeStyles,gt as defaultDarkThemeStyles,ke as defaultIsTransient,Et as defaultLightThemeStyles,rt as detectOrgSwitch,r as detectTextDirection,Ye as ensureFreshToken,it as eventEmitter,Qe as extractTokens,O as formatCVC,f as formatCamelCaseToTitle,S as formatCardNumber,y as formatExpiryDate,qe as formatTimeRemaining,F as formatTimestamp,p as generateUniqueId,me as getApiUrl,Ie as getAppearanceModeStorageKey,I as getArrayOfObjects,se as getBaseUrl,oe as getCustomHeaders,pt as getDefaultThemeStyles,N as getErrorMessage,A as getInitials,Zt as getPaymentId,ne as getPaymentProviderHint,ve as getSendDiagnostics,xt as getStorageRef,Je as getTimeUntilExpiry,Ze as getTimeUntilRefresh,ae as getTokenRefreshHandler,Yt as handleSharedEvent,R as hasWidgets,yt as hexToRgba,Be as hydrateAppBoot,Ht as hydrateSession,zt as indicatorReducer,j as initLogger,re as initializeChatConfig,Fe as isDevMode,je as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,he as joinOrgMountBase,k as logger,Gt as logout,et as parseJwtPayload,tt as parseOrgFromJwt,ce as readAccessToken,de as readDeviceToken,Ee as readTokenExpiresAt,at as registerEventListener,v as registerLoggerContextProvider,B as registerLoggerSink,h as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,_ as sanitizeExpiryDate,Pt as sessionExpired,Kt as sessionListenerMiddleware,$t as sessionReducer,ue as setAccessTokenReader,Ut as setCredentials,le as setDeviceTokenReader,pe as setIsDev,jt as setLastResponseTime,Ct as setModuleStorage,V as setNetworkLoggingEnabled,Lt as setSelectedOrgId,bt as setSession,ge as setTokenExpiresAtReader,ie as setTokenRefreshHandler,He as showErrorToast,Ke as showSuccessToast,Ge as showToast,E as truncateWordLimit,wt as updateUser,It as useBranding,n as useMessageDirection,o as useMessageDirections,Bt as useNetworkState,Rt as useStorage,T as validateExpiryDate,nt as writeOrgToStorage};
|
|
1
|
+
import{D as e,T as t,d as r,r as s,u as n,a as o}from"./textDirection-CmyE93hC.js";import{createSlice as i,createListenerMiddleware as a,isAnyOf as u}from"@reduxjs/toolkit";import{createContext as c,useContext as l,useCallback as d,useSyncExternalStore as g}from"react";const E=(e,t)=>{if(!e)return"";const r=e.split(" ");return r.length>t?r.slice(0,t).join(" "):e},p=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),F=(e,t=new Date)=>{if(!e)return"";const r=new Date(e);if(isNaN(r.getTime()))return"";const s=t.getTime()-r.getTime(),n=Math.floor(s/6e4),o=Math.floor(s/36e5),i=Math.floor(s/864e5);return n<1?"Just now":n<60?`${n}m ago`:o<24?`${o}h ago`:i<7?`${i}d ago`:new Intl.DateTimeFormat("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1}).format(r)},m=e=>e?e.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):"",f=e=>e?e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/^(.)/,e=>e.toUpperCase()).split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim():"",h=e=>e?e.toLowerCase().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"").trim():"",T=e=>e.replace(/\D/g,"").slice(0,16).replace(/(.{4})/g,"$1 ").trim(),S=e=>{const t=e.match(/^(\d{2})\/(\d{2})$/);if(!t)return!1;const r=Number(t[1]),s=Number(t[2]);if(r<1||r>12)return!1;const n=new Date,o=n.getFullYear()%100,i=n.getMonth()+1;return!(s<o||s===o&&r<i||r>12)},_=e=>{if(!e)return"";if(!S(e)){const t=e.match(/^(\d{2})\/(\d{2})$/);if(t){const e=Number(t[1]),r=Number(t[2]),s=new Date,n=s.getFullYear()%100,o=s.getMonth()+1;if(r<n||r===n&&e<o||e>12)return""}}return e},O=e=>{const t=e.replace(/\D/g,"").slice(0,4);if(4===t.length){const e=t.slice(0,2)+"/"+t.slice(2);return _(e)}return t.length>=3?`${t.slice(0,2)}/${t.slice(2)}`:t.length>=1?t:""},y=e=>e.replace(/\D/g,"").slice(0,4);function I(e){return Array.isArray(e)&&Array.isArray(e[0])?e.flat():e}const A=(e,t)=>{if(e&&e.trim()){const t=e.trim().split(/\s+/);return t.length>=2?(t[0][0]+t[t.length-1][0]).toUpperCase():e.trim().slice(0,2).toUpperCase()}return t&&t.trim()?t.trim().slice(0,2).toUpperCase():"U"},R=e=>Array.isArray(e.widget)&&e.widget.length>0;function N(e,t="An unexpected error occurred."){if(e&&"object"==typeof e){if("message"in e&&"string"==typeof e.message)return e.message;if("data"in e){const t=e.data;if(t&&"object"==typeof t&&"message"in t&&"string"==typeof t.message)return t.message}}return t}const C={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR"};let x=null,M=null;const D=[];function B(e){if(x=e,D.length>0){const t=D.splice(0,D.length);for(const r of t)e.emit(r)}}function v(e){M=e}async function b(){x=null,M=null,D.length=0,(await Promise.resolve().then(()=>X)).resetInitLoggerStateForTests()}function k(e,t){const r=M?function(e){try{return e()??{}}catch{return{}}}(M):{},{message:s,...n}=t,o={...r,...n,level:e,message:s,timestamp:(new Date).toISOString()};x?x.emit(o):(D.length>=200&&D.shift(),D.push(o))}const w={debug(e){k(C.DEBUG,e)},info(e){k(C.INFO,e)},warn(e){k(C.WARN,e)},error(e){k(C.ERROR,e)},flush:()=>x?.flush?.()},L={[C.DEBUG]:0,[C.INFO]:1,[C.WARN]:2,[C.ERROR]:3};function P(e={}){const t=L[e.minLevel??C.DEBUG];return{emit(e){L[e.level]<t||(e.level===C.ERROR?console.error:e.level===C.WARN?console.warn:e.level===C.DEBUG?console.debug:console.info)(e)}}}const G={[C.DEBUG]:5,[C.INFO]:9,[C.WARN]:13,[C.ERROR]:17};function U(e){if(null===e)return"null";const t=typeof e;if("string"===t||"number"===t||"boolean"===t)return e;if(e instanceof Error)return JSON.stringify({name:e.name,message:e.message,stack:e.stack});try{return JSON.stringify(e)}catch{return String(e)}}function H(e){const t={};for(const[r,s]of Object.entries(e))void 0!==s&&(t[r]=U(s));return t}let K=!1,$=null,W=!0;function V(e){W=e}function j(e){K||(K=!0,v(function(e){const t={app_name:e.appName,app_version:e.appVersion,environment:e.environment};return()=>({...t,...e.getContext()})}(e)),B(function(e){const t=[P({minLevel:e.consoleMinLevel??(e.isDev?C.DEBUG:C.WARN)})];if(e.otlpEndpoint&&!e.isDev){const r="otel"===(e.logTransport??"otel")?function(e){let t=!1,r=null,s=null;const n=[];function o(){s||(s=async function(){const[t,s,o,i]=await Promise.all([import("@opentelemetry/api-logs"),import("@opentelemetry/sdk-logs"),import("@opentelemetry/exporter-logs-otlp-http"),import("@opentelemetry/resources")]),a=i.resourceFromAttributes(e.resourceAttrs),u=new o.OTLPLogExporter({url:e.endpoint}),c=new s.LoggerProvider({resource:a,processors:[new s.BatchLogRecordProcessor(u)]});t.logs.setGlobalLoggerProvider(c);const l=t.logs.getLogger(e.resourceAttrs["service.name"]??"app");if(r={emit(e){const{level:t,message:r,timestamp:s,...n}=e;l.emit({severityNumber:G[t],severityText:t,body:JSON.stringify(e),attributes:H(n),timestamp:new Date(s)})},async flush(){await c.forceFlush()}},n.length>0){const e=n.splice(0,n.length);for(const t of e)r.emit(t)}}().catch(()=>{n.length=0,r=null,t=!0}))}return{emit(e){t||(r?r.emit(e):(o(),n.length>=200&&n.shift(),n.push(e)))},async flush(){(s||r)&&(o(),await s,r&&await r.flush())}}}({endpoint:e.otlpEndpoint,resourceAttrs:{"service.name":e.appName,"service.version":e.appVersion,"deployment.environment":e.environment}}):function(e){const t=e.maxBatchSize??50,r=e.scheduledDelayMs??5e3,s=e.maxQueueSize??2048,n=e.wrapBatch??(e=>e),o=[];let i=null;function a(){return null!==i&&(clearTimeout(i),i=null),0===o.length||0===(t=o.splice(0,o.length)).length?Promise.resolve():fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n(t)),keepalive:!0}).then(()=>{}).catch(()=>{});var t}return{emit(e){o.length>=s&&o.shift(),o.push(e),o.length>=t?a():null===i&&(i=setTimeout(()=>{i=null,a()},r))},async flush(){await a()}}}({endpoint:e.otlpEndpoint});t.push({emit(e){W&&r.emit(e)},flush:r.flush.bind(r)})}return e.extraSinks?.length&&t.push(...e.extraSinks),1===t.length?t[0]:function(e){return{emit(t){for(const r of e)try{r.emit(t)}catch{}},async flush(){await Promise.all(e.map(e=>e.flush?Promise.resolve(e.flush()).catch(()=>{}):Promise.resolve()))}}}(t)}(e)),!1!==e.flushOnAppHide&&$?.())}const X=Object.freeze(Object.defineProperty({__proto__:null,initLogger:j,registerPlatformFlushAttacher:function(e){$=e},resetInitLoggerStateForTests:function(){K=!1,$=null,W=!0},setNetworkLoggingEnabled:V},Symbol.toStringTag,{value:"Module"}));let z,Y="",J={},Z=null,q=()=>null,Q=()=>null,ee=()=>null,te=!1;const re=e=>{Y=e.baseUrl,J=e.customHeaders||{},z=e.paymentProvider},se=()=>Y,ne=()=>z,oe=()=>J,ie=e=>{Z=e},ae=()=>Z,ue=e=>{q=e},ce=()=>q(),le=e=>{Q=e},de=()=>Q(),ge=e=>{ee=e},Ee=()=>ee(),pe=e=>{te=e},Fe=()=>te,me=e=>{const t=e.startsWith("/")?e:`/${e}`;return`${Y}/api${t}`},fe="chat",he=(e,t)=>t?`${e}/${encodeURIComponent(t)}/${fe}`:`${e}/${fe}`,Te={CONVERSATIONS:()=>me("/conversations"),CONVERSATION_STREAM:e=>me(`/conversations/${e}`),CONVERSATION_START:e=>me(`/conversations/${e}/start`),CONVERSATION_TRANSCRIBE:e=>me(`/conversations/${e}/transcribe`),WEBRTC_OFFER:e=>me(`/conversations/${e}/webrtc/offer`),WEBRTC_ICE:e=>me(`/conversations/${e}/webrtc/ice`),get TRANSCRIBE(){return me("/transcribe")},get BRANDING(){return me("/branding")},get CONFIG(){return me("/config")},get PROFILE(){return me("/profile")},get AUTH_ME(){return me("/auth/me")},get CHANGE_PASSWORD(){return me("/auth/change-password")},get ORGANIZATIONS_EXISTS(){return me("/organizations/exists")},get DEBUG(){return me("/debug")},get TOOL_SERVERS(){return me("/tool-servers")},TOOL_SERVER_AUTH_START:e=>me(`/tool-servers/${e}/auth/start`),TOOL_SERVER_AUTH_CONNECTION:e=>me(`/tool-servers/${e}/auth/connection`),get TOOL_SERVERS_SIGN_IN_EXCHANGE(){return me("/tool-servers/auth/exchange")},get LOG(){return me("/log")}},Se={SSO:"sso"},_e={TOKEN_REFRESH_THRESHOLD_MS:6e5,TOKEN_CLOCK_SKEW_MS:3e4,TOKEN_DEFAULT_EXPIRY_MS:36e5,THINKING_STATE_TIMEOUT_MS:600,MESSAGE_WARNING_TIMEOUT_MS:1e4,TOAST_DURATION_MS:5e3,TOAST_ERROR_DURATION_MS:7e3,INPUT_DEBOUNCE_MS:300,SEARCH_DEBOUNCE_MS:500,CONFIG_TIMEOUT_MS:5e3},Oe={ACCESS_TOKEN:"accessToken",REFRESH_TOKEN:"refreshToken",TOKEN_EXPIRES_AT:"tokenExpiresAt",USER:"user",SELECTED_ORG_ID:"selectedOrgId",SELECTED_ORG_NAME:"selectedOrgName",APPEARANCE_MODE_KEY:"1interface_appearance_mode",LOCATION_ENABLED:"1interface_location_enabled",LOCATION_CACHE:"1interface_cached_location",DEBUG_MODE:"1interface_debug_mode",STT_AUTO_SEND:"1interface_stt_auto_send",STT_IMPLEMENTATION:"1interface_stt_implementation",SEND_DIAGNOSTICS:"1interface_send_diagnostics",ACTIVE_CONVERSATION_ID:"1interface_active_conversation_id"},ye={ONLINE:"online",DEVICE:"device"},Ie=e=>e?`${Oe.APPEARANCE_MODE_KEY}:${e}`:Oe.APPEARANCE_MODE_KEY,Ae={ACCESS_TOKEN:"x-access-token",REFRESH_TOKEN:"x-refresh-token"},Re="x-device-token",Ne={LOGIN:"/auth/login",SIGNUP:"/auth/signup",GUEST:"/auth/guest",LOGOUT:"/auth/logout",REFRESH:"/auth/refresh",FORGOT_PASSWORD:"/auth/forgot-password",RESET_PASSWORD:"/auth/reset-password",SSO_START:"/auth/sso/start",SSO_EXCHANGE:"/auth/sso/exchange",ORGANIZATIONS:"/organizations"},Ce={EMAIL:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,NON_DIGIT:/\D/g,PHONE_E164:/^\+[1-9]\d{1,14}$/},xe={NAME_MAX_LENGTH:64,PHONE_MIN_LENGTH:8,PHONE_MAX_LENGTH:16},Me={MIN_LENGTH:8,MAX_LENGTH:128};let De=!0;const Be=async e=>{const t=await e.getItem(Oe.SEND_DIAGNOSTICS);De=null===t||"true"===t},ve=()=>De,be=3,ke=500,we=e=>{const t=e?.status;return"FETCH_ERROR"===t||"TIMEOUT_ERROR"===t||("number"==typeof t?t>=500:(w.warn({message:"unknown error shape; treating as transient",api_name:"auth-refresh",error_message:e instanceof Error?e.message:String(e)}),!0))};function Le(e){const{performRefresh:t,isTransient:r=we,maxAttempts:s=be,backoffBaseMs:n=ke}=e;let o=null;return function(){return o||(o=(async()=>{for(let e=0;e<s;e++)try{return await t()}catch(t){if(!r(t))return null;if(e===s-1)break;const o=n*2**e+250*Math.random();await new Promise(e=>setTimeout(e,o))}return null})().finally(()=>{o=null}),o)}}const Pe="bridge-toast";function Ge(e){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(Pe,{detail:e}))}const Ue=e=>Ge(e),He=(e="Please try again")=>Ge({title:"Error",description:e,variant:"destructive"}),Ke=(e="Successfully")=>Ge({title:"Success",description:e,variant:"default"}),$e=Pe,We={ADMIN:"admin",AUTHENTICATED_USER:"authenticated_user",GUEST_USER:"guest_user"},Ve={GOOGLE:"google",APPLE:"apple",MICROSOFT:"microsoft"};function je(e){return e?.type===We.GUEST_USER}const Xe=e=>!!e&&Date.now()>=e-_e.TOKEN_CLOCK_SKEW_MS,ze=e=>!e||Date.now()>=e-_e.TOKEN_REFRESH_THRESHOLD_MS,Ye=async()=>ze(Ee())?await(ae()?.())??null:null,Je=e=>e?Math.max(0,e-Date.now()):0,Ze=e=>e?Math.max(0,e-_e.TOKEN_REFRESH_THRESHOLD_MS-Date.now()):0,qe=e=>{const t=Math.floor(e/6e4),r=Math.floor(e%6e4/1e3);return t>0?`${t}m ${r}s`:`${r}s`};function Qe(e){const t=e.headers.get(Ae.ACCESS_TOKEN),r=e.headers.get(Ae.REFRESH_TOKEN);if(!t)throw new Error(`Missing ${Ae.ACCESS_TOKEN} header in response`);if(!r)throw new Error(`Missing ${Ae.REFRESH_TOKEN} header in response`);return{accessToken:t,refreshToken:r}}function et(e){if(!e)return null;const t=e.split(".");if(3!==t.length)return null;try{const e=t[1].replace(/-/g,"+").replace(/_/g,"/"),r=e+"=".repeat((4-e.length%4)%4),s=atob(r),n=JSON.parse(s);return n&&"object"==typeof n&&!Array.isArray(n)?n:null}catch{return null}}function tt(e){const t=et(e),r=t?.org_id;return"string"==typeof r&&r.length>0?r:null}function rt(e,t){try{const r=t.getItem(Oe.SELECTED_ORG_ID);if(r&&r!==e)return"storage";const s=tt(t.getItem(Oe.ACCESS_TOKEN));return s&&s!==e?"jwt":null}catch{return null}}function st(e){!function(e){try{e.removeItem(Oe.ACCESS_TOKEN),e.removeItem(Oe.REFRESH_TOKEN),e.removeItem(Oe.TOKEN_EXPIRES_AT),e.removeItem(Oe.USER)}catch{}}(e),function(e){try{e.removeItem(Oe.ACTIVE_CONVERSATION_ID)}catch{}}(e)}function nt(e,t){try{t.setItem(Oe.SELECTED_ORG_ID,e),t.setItem(Oe.SELECTED_ORG_NAME,e)}catch{}}class ot{static instance;events={};constructor(){}static getInstance(){return ot.instance||(ot.instance=new ot),ot.instance}on(e,t,r){const s="function"==typeof t?t:r;return this.events[e]||(this.events[e]=[]),this.events[e].push(s),()=>{this.off(e,s)}}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter(e=>e!==t))}emit(e,t){this.events[e]&&this.events[e].forEach(r=>{try{r(t)}catch(t){w.error({message:`Error in event handler for "${e}"`,api_name:"event-emitter",event:e,error_message:t instanceof Error?t.message:String(t)})}})}clear(e){e?delete this.events[e]:this.events={}}}const it=ot.getInstance();function at(e,t){return it.on(e,t)}const ut={TOP_LEADING:"topLeading",TOP:"top",TOP_TRAILING:"topTrailing",LEADING:"leading",CENTER:"center",TRAILING:"trailing",BOTTOM_LEADING:"bottomLeading",BOTTOM:"bottom",BOTTOM_TRAILING:"bottomTrailing"},ct={LIGHT:"light",DARK:"dark",SYSTEM:"system"},lt=[ct.LIGHT,ct.DARK,ct.SYSTEM],dt={FOREGROUND:"foreground",BACKGROUND:"background"},gt={PILL:"pill",ROUNDED:"rounded",SHARP:"sharp"},Et={bgColor:"linear-gradient(281.8deg, #061522 6.7%, #101F2F 59.64%, #3C3B4F 76.85%, #5D4C63 88.46%, #755770 99.24%)",inputBgColor:"#222D34",sidebarBg:"#0F1419",sidebarBorderColor:"#8F8F8F",widgetBg:"#222D34",settingsGroupBg:"#272626",inputBorderStyle:"solid",inputBorderColor:"#FFFFFF80",inputBorderWidth:"1px",inputBorderOpacity:50,widgetBorderStyle:"solid",widgetBorderColor:"#FFFFFF1A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#8F8F8F",primaryText:"#FFFFFF",secondaryText:"#AFAFAF",tertiaryText:"#8F8F8F",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#FFFFFFFF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#FFFFFF",sideMenuText:"#AFAFAF",sideMenuIcon:"#8F8F8F",sideMenuProfile:"#FFFFFF",screenMaskingColor:"#000000",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#222D34",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:gt.PILL,chatInputPlaceholder:"Type anything..."},pt={bgColor:"linear-gradient(281.8deg, #EEF2FF 6.7%, #E2E8FD 59.64%, #E8DFF4 76.85%, #F4DBE6 88.46%, #FFE1D0 99.24%)",inputBgColor:"#F4F4F5",sidebarBg:"#FFFFFF",sidebarBorderColor:"#9B9B9B",widgetBg:"#FFFFFF",settingsGroupBg:"#1A1A1A10",inputBorderStyle:"solid",inputBorderColor:"#0000001A",inputBorderWidth:"1px",inputBorderOpacity:10,widgetBorderStyle:"solid",widgetBorderColor:"#0000001A",widgetBorderWidth:"1px",widgetBorderOpacity:10,placeholderColor:"#9B9B9B",primaryText:"#1A1A1A",secondaryText:"#6B6B6B",tertiaryText:"#9B9B9B",userMsgBg:"#90629F",userMsgText:"#FFFFFF",userMsgBorderStyle:"none",userMsgBorderColor:"#000000FF",userMsgBorderWidth:"1px",userMsgBorderOpacity:100,sideMenuHeadings:"#1A1A1A",sideMenuText:"#6B6B6B",sideMenuIcon:"#9B9B9B",sideMenuProfile:"#1A1A1A",screenMaskingColor:"#FFFFFF",statusPrimary:{solid:"#90629F",background:"#90629F",text:"#FFFFFF"},statusSecondary:{solid:"#5D5D5D",background:"#F3F3F3",text:"#0D0D0D"},statusSuccess:{solid:"#00A240",background:"#D9F4E4",text:"#FFFFFF"},statusDanger:{solid:"#E02E2A",background:"#FFD9D9",text:"#FFFFFF"},statusWarning:{solid:"#E25507",background:"#FFE7D9",text:"#FFFFFF"},statusInfo:{solid:"#0285FF",background:"#E5F3FF",text:"#FFFFFF"},statusDiscovery:{solid:"#924FF7",background:"#EFE5FE",text:"#FFFFFF"},switchCheckedColor:"#90629F",switchUncheckedColor:"#F4F4F5",fontFamily:"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif",fontFamilyMono:'"SF Mono", ui-monospace, monospace',fontSize:14,borderRadius:16,cornerRadiusMode:gt.PILL,chatInputPlaceholder:"Type anything..."};function Ft(e){return e===ct.LIGHT?pt:Et}const mt=Et;function ft(e,t){const r=e.replace("#","");let s;s=3===r.length?r.split("").map(e=>e+e).join(""):6===r.length?r:"000000";const n=Math.max(0,Math.min(100,t));return`#${s}${Math.round(n/100*255).toString(16).padStart(2,"0")}`.toUpperCase()}function ht(e,t){if(!e)return t.fontFamily;switch(e){case"Inter":return"'Inter', sans-serif";case"System":return"system-ui, -apple-system, sans-serif";default:return"'SF Pro Display', -apple-system, BlinkMacSystemFont, sans-serif"}}function Tt(e,t){return e?`"${e}", ui-monospace, monospace`:t.fontFamilyMono}function St(e,t){if(!e)return t.borderRadius;switch(e){case"none":return 0;case"sm":return 8;case"md":return 12;case"pill":return 16;default:const r=parseInt(e,10);return isNaN(r)?t.borderRadius:r}}function _t(e){switch(e){case"pill":return gt.PILL;case"none":return gt.SHARP;default:return 0===parseInt(e??"",10)?gt.SHARP:gt.ROUNDED}}function Ot(e,t,r=ct.DARK){const s=Ft(r);if(!e||!t)return s;const n=t.surface?.chatInput?.border||t.surface?.input?.border,o=t.surface?.userMessage?.border,i=t.surface?.widget?.border;return{bgColor:t.surface?.chat?.background||s.bgColor,inputBgColor:t.surface?.chatInput?.background||t.surface?.input?.background||s.inputBgColor,sidebarBg:t.surface?.sideMenu?.background||s.sidebarBg,sidebarBorderColor:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sidebarBorderColor,widgetBg:t.surface?.widget?.background||s.widgetBg,settingsGroupBg:t.surface?.settings?.groupBackground||s.settingsGroupBg,screenMaskingColor:t.surface?.screenMasking||s.screenMaskingColor,inputBorderStyle:n?.style||s.inputBorderStyle,inputBorderColor:n?.color?ft(n.color,n.opacity||100):s.inputBorderColor,inputBorderWidth:n?.width||s.inputBorderWidth,inputBorderOpacity:n?.opacity||100,widgetBorderStyle:i?.style||s.widgetBorderStyle,widgetBorderColor:i?.color?ft(i.color,i.opacity||100):s.widgetBorderColor,widgetBorderWidth:i?.width||s.widgetBorderWidth,widgetBorderOpacity:i?.opacity??s.widgetBorderOpacity,placeholderColor:t.surface?.chatInput?.placeholderColor||t.surface?.input?.placeholderColor||s.placeholderColor,primaryText:t.text?.primary||s.primaryText,secondaryText:t.text?.secondary||s.secondaryText,tertiaryText:t.text?.tertiary||s.tertiaryText,userMsgBg:t.surface?.userMessage?.background||s.userMsgBg,userMsgText:t.surface?.userMessage?.textColor||s.userMsgText,userMsgBorderStyle:o?.style||s.userMsgBorderStyle,userMsgBorderColor:o?.color?ft(o.color,o.opacity||100):s.userMsgBorderColor,userMsgBorderWidth:o?.width||s.userMsgBorderWidth,userMsgBorderOpacity:o?.opacity||0,sideMenuHeadings:t.surface?.sideMenu?.headingsColor||t.surface?.sideMenu?.headings||s.sideMenuHeadings,sideMenuText:t.surface?.sideMenu?.textContentColor||t.surface?.sideMenu?.textContent||s.sideMenuText,sideMenuIcon:t.surface?.sideMenu?.iconColor||t.surface?.sideMenu?.icons||s.sideMenuIcon,sideMenuProfile:t.surface?.sideMenu?.profileTextColor||t.surface?.sideMenu?.textProfile||s.sideMenuProfile,statusPrimary:{solid:t.status?.primary?.solid||s.statusPrimary.solid,background:t.status?.primary?.background||s.statusPrimary.background,text:t.status?.primary?.text||s.statusPrimary.text},statusSecondary:{solid:t.status?.secondary?.solid||s.statusSecondary.solid,background:t.status?.secondary?.background||s.statusSecondary.background,text:t.status?.secondary?.text||s.statusSecondary.text},statusSuccess:{solid:t.status?.success?.solid||s.statusSuccess.solid,background:t.status?.success?.background||s.statusSuccess.background,text:t.status?.success?.text||s.statusSuccess.text},statusDanger:{solid:t.status?.danger?.solid||s.statusDanger.solid,background:t.status?.danger?.background||s.statusDanger.background,text:t.status?.danger?.text||s.statusDanger.text},statusWarning:{solid:t.status?.warning?.solid||s.statusWarning.solid,background:t.status?.warning?.background||s.statusWarning.background,text:t.status?.warning?.text||s.statusWarning.text},statusInfo:{solid:t.status?.info?.solid||s.statusInfo.solid,background:t.status?.info?.background||s.statusInfo.background,text:t.status?.info?.text||s.statusInfo.text},statusDiscovery:{solid:t.status?.discovery?.solid||s.statusDiscovery.solid,background:t.status?.discovery?.background||s.statusDiscovery.background,text:t.status?.discovery?.text||s.statusDiscovery.text},switchCheckedColor:t.status?.primary?.solid||s.switchCheckedColor,switchUncheckedColor:t.surface?.chatInput?.background||s.switchUncheckedColor,fontFamily:ht(e.typography?.fontFamily,s),fontFamilyMono:Tt(e.typography?.fontFamilyMono,s),fontSize:14,borderRadius:St(e.cornerRadius,s),cornerRadiusMode:_t(e.cornerRadius),chatInputPlaceholder:e.startScreen.inputPlaceholder}}function yt(e,t){let r=e.trim().replace(/^#/,"");if(3!==r.length&&4!==r.length||(r=r.split("").map(e=>e+e).join("")),!/^[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(r))return e;const s=parseInt(r.slice(0,2),16),n=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),i=8===r.length?parseInt(r.slice(6,8),16)/255:1;return`rgba(${s}, ${n}, ${o}, ${Math.round(i*t*1e3)/1e3})`}const It=c(void 0);function At(){const e=l(It);if(!e)throw new Error("useBranding must be used within a BrandingProvider");return e}const Rt=c(null),Nt=()=>{const e=l(Rt);if(!e)throw new Error("useStorage must be called inside a <StorageProvider>. Wrap your app's root with <StorageProvider value={browserLocalStorageAdapter}> (or an RN equivalent).");return e};let Ct=null;function xt(e){Ct=e}const Mt=()=>Ct,Dt=c(null),Bt={isConnected:!0,isInternetReachable:!0},vt=()=>{const e=l(Dt),t=d(t=>e?e.subscribe(t):()=>{},[e]),r=d(()=>e?e.getState():Bt,[e]);return g(t,r,r)},bt=i({name:"auth",initialState:{user:null,accessToken:null,refreshToken:null,tokenExpiresAt:null,selectedOrgId:null,isAuthenticated:!1,isLoading:!1},reducers:{setSession:(e,t)=>{const{user:r,accessToken:s,refreshToken:n,expiresIn:o}=t.payload;void 0!==r&&(e.user=r),void 0!==s&&(e.accessToken=s),void 0!==n&&(e.refreshToken=n),void 0!==o?e.tokenExpiresAt=null===o?null:1e3*o:s&&(e.tokenExpiresAt=Date.now()+_e.TOKEN_DEFAULT_EXPIRY_MS),e.isAuthenticated=Boolean(e.accessToken),e.isLoading=!1},updateUser:(e,t)=>{e.user={...e.user||{},...t.payload}},clearSession:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},sessionExpired:e=>{e.user=null,e.accessToken=null,e.refreshToken=null,e.tokenExpiresAt=null,e.isAuthenticated=!1,e.isLoading=!1},setSelectedOrgId:(e,t)=>{e.selectedOrgId=t.payload??null}}}),{setSession:kt,updateUser:wt,clearSession:Lt,sessionExpired:Pt,setSelectedOrgId:Gt}=bt.actions,Ut=kt,Ht=Lt,Kt=e=>async t=>{const[r,s,n,o]=await Promise.all([e.getItem(Oe.ACCESS_TOKEN),e.getItem(Oe.REFRESH_TOKEN),e.getItem(Oe.TOKEN_EXPIRES_AT),e.getItem(Oe.USER)]),i=n?parseInt(n,10):null;if((!r||!i||Xe(i))&&!s)return void(r&&await Promise.all([e.removeItem(Oe.ACCESS_TOKEN),e.removeItem(Oe.REFRESH_TOKEN),e.removeItem(Oe.TOKEN_EXPIRES_AT),e.removeItem(Oe.USER)]));let a=null;if(o)try{a=JSON.parse(o)}catch(e){w.error({message:"Failed to parse stored user during session hydration",component:"sessionSlice",error_message:e instanceof Error?e.message:String(e)})}t(kt({user:a,accessToken:r,refreshToken:s,expiresIn:null!=i?i/1e3:null}))},$t=a();$t.startListening({matcher:u(kt,wt,Lt,Pt),effect:async(e,t)=>{const r=Mt();if(!r)return;const{auth:s}=t.getState(),n=[];n.push(s.accessToken?r.setItem(Oe.ACCESS_TOKEN,s.accessToken):r.removeItem(Oe.ACCESS_TOKEN)),n.push(s.refreshToken?r.setItem(Oe.REFRESH_TOKEN,s.refreshToken):r.removeItem(Oe.REFRESH_TOKEN)),n.push(null!=s.tokenExpiresAt?r.setItem(Oe.TOKEN_EXPIRES_AT,String(s.tokenExpiresAt)):r.removeItem(Oe.TOKEN_EXPIRES_AT)),n.push(s.user?r.setItem(Oe.USER,JSON.stringify(s.user)):r.removeItem(Oe.USER)),(Lt.match(e)||Pt.match(e))&&n.push(r.removeItem(Oe.LOCATION_CACHE),r.removeItem(Oe.DEBUG_MODE),r.removeItem(Oe.APPEARANCE_MODE_KEY),r.removeItem(Oe.LOCATION_ENABLED),r.removeItem(Oe.STT_AUTO_SEND),r.removeItem(Oe.STT_IMPLEMENTATION),r.removeItem(Oe.SEND_DIAGNOSTICS),r.removeItem(Oe.ACTIVE_CONVERSATION_ID)),await Promise.all(n)}});const Wt=bt.reducer,Vt={lastResponseTime:null},jt=i({name:"indicator",initialState:Vt,reducers:{setLastResponseTime(e,t){e.lastResponseTime=t.payload},clearLastResponseTime(e){e.lastResponseTime=null}},extraReducers:e=>{e.addMatcher(u(Lt,Pt),()=>Vt)}}),{setLastResponseTime:Xt,clearLastResponseTime:zt}=jt.actions,Yt=jt.reducer;function Jt(e,t){switch(e.kind){case"status_update":return t.setStatusText(e.statusText),t.setIsAgentWorking(!0),void t.onStatusActive?.(e.statusText);case"widget":return void t.pushWidget(e.widget,e.messageId);case"payment":return void t.onPayment(e.payment);case"sign_in":return void t.onSignIn?.(e.signIn);case"error":return void t.onError(e.error);case"text":return void t.appendStreamText(e.text,e.messageId);case"conversation_title":return void t.onConversationTitle?.(e.title);default:return}}const Zt={KEEP:"keep",FINALIZE:"finalize",CANCEL:"cancel"};function qt(e){if(e)return"moyasar"===e.provider?e.config?.given_id:e.payment_id}export{Te as API_ENDPOINTS,ct as APPEARANCE_MODES,lt as APPEARANCE_MODE_VALUES,Ae as AUTH_HEADERS,Ne as AUTH_PATHS,$e as BRIDGE_TOAST_EVENT_NAME,It as BrandingContext,gt as CORNER_RADIUS_MODES,Re as DEVICE_TOKEN_HEADER,e as DIRECTION_VECTORS,ot as EventEmitter,Se as FEATURE_FLAGS,Ve as IDP_HINTS,Zt as INDICATOR_TIMER_ACTIONS,ut as LOGO_ALIGNMENTS,C as LOG_LEVELS,Dt as NetworkContext,dt as ORB_POSITIONS,fe as ORG_MOUNT_SUFFIX,Me as PASSWORD_LIMITS,Ce as PATTERNS,xe as PROFILE_LIMITS,Oe as STORAGE_KEYS,ye as STT_IMPLEMENTATIONS,Rt as StorageContext,t as TEXT_DIRECTION,_e as TIMING,We as USER_TYPES,Ot as brandingToThemeStyles,m as capitalizeFirst,zt as clearLastResponseTime,st as clearPreviousTenant,Lt as clearSession,Le as createTokenRefresher,mt as defaultChatThemeStyles,Et as defaultDarkThemeStyles,we as defaultIsTransient,pt as defaultLightThemeStyles,rt as detectOrgSwitch,r as detectTextDirection,Ye as ensureFreshToken,it as eventEmitter,Qe as extractTokens,y as formatCVC,f as formatCamelCaseToTitle,T as formatCardNumber,O as formatExpiryDate,qe as formatTimeRemaining,F as formatTimestamp,p as generateUniqueId,me as getApiUrl,Ie as getAppearanceModeStorageKey,I as getArrayOfObjects,se as getBaseUrl,oe as getCustomHeaders,Ft as getDefaultThemeStyles,N as getErrorMessage,A as getInitials,qt as getPaymentId,ne as getPaymentProviderHint,ve as getSendDiagnostics,Mt as getStorageRef,Je as getTimeUntilExpiry,Ze as getTimeUntilRefresh,ae as getTokenRefreshHandler,Jt as handleSharedEvent,R as hasWidgets,yt as hexToRgba,Be as hydrateAppBoot,Kt as hydrateSession,Yt as indicatorReducer,j as initLogger,re as initializeChatConfig,Fe as isDevMode,je as isGuest,ze as isTokenAboutToExpire,Xe as isTokenExpired,he as joinOrgMountBase,w as logger,Ht as logout,et as parseJwtPayload,tt as parseOrgFromJwt,ce as readAccessToken,de as readDeviceToken,Ee as readTokenExpiresAt,at as registerEventListener,v as registerLoggerContextProvider,B as registerLoggerSink,h as removeSpecialCharsAndSpaces,b as resetLoggerForTests,s as resolveDirectionFromLang,_ as sanitizeExpiryDate,Pt as sessionExpired,$t as sessionListenerMiddleware,Wt as sessionReducer,ue as setAccessTokenReader,Ut as setCredentials,le as setDeviceTokenReader,pe as setIsDev,Xt as setLastResponseTime,xt as setModuleStorage,V as setNetworkLoggingEnabled,Gt as setSelectedOrgId,kt as setSession,ge as setTokenExpiresAtReader,ie as setTokenRefreshHandler,He as showErrorToast,Ke as showSuccessToast,Ue as showToast,E as truncateWordLimit,wt as updateUser,At as useBranding,n as useMessageDirection,o as useMessageDirections,vt as useNetworkState,Nt as useStorage,S as validateExpiryDate,nt as writeOrgToStorage};
|