@wellesley/host-remote 1.0.130 → 1.0.132

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.
Files changed (2) hide show
  1. package/index.mjs +1 -1
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -1 +1 @@
1
- import{useRef as f,useEffect as m,memo as $,useCallback as k,useState as le}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{useSelector as y,useDispatch as Q}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{routerSlice as l}from"https://cdn.jsdelivr.net/npm/@wellesley/router@next";import{useNavigate as z,useLocation as B}from"https://cdn.jsdelivr.net/npm/react-router-dom@6.22.2/+esm";import{logErrorToSentry as Te}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@next";import{subscribeAfter as te}from"https://cdn.jsdelivr.net/npm/@wellesley/redux-subscribe-action@next";import{getStore as b,rootReducer as j,createStore as Le}from"https://cdn.jsdelivr.net/npm/@wellesley/store@next";import{api as Ce,handleBasicResponse as c}from"https://cdn.jsdelivr.net/npm/@wellesley/openapi@next";import{createSlice as d,createAction as h,createSelector as r}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{toast as de}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{getErrorMsg as xe}from"https://cdn.jsdelivr.net/npm/@wellesley/error-kit@next";import{handleLogin as Ne,handleLogout as Ue}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@next";const _e=()=>{const e=z(),t=f(""),s=y(l.selectors.selectPath);m((()=>{s!==t.current&&(t.current=s,s&&e(s))}),[s])},Fe=()=>{const e=Q(),t=B(),s=y(l.selectors.selectPath);m((()=>{s!==t.pathname&&e(l.actions.setPath(t.pathname))}),[e,t.pathname])},Oe=$((()=>(_e(),Fe(),null)));Oe.displayName="RouteObserver";const De=()=>"object"!=typeof window,se=["debug","info","warn","error"],Me=(e,t)=>{const s=se.indexOf(e);return se.indexOf(t)>=s},A=(e,t,s,...a)=>{Me(t,e)&&console.log(`[${e}] ${s}`,...a)},Ve=()=>null==window?void 0:window.localStorage.getItem("logger_lvl"),$e=(e=!De()&&Ve()||"warn")=>{let t=e;return{debug:(e,...s)=>A("debug",t,e,...s),info:(e,...s)=>A("info",t,e,...s),warn:(e,...s)=>A("warn",t,e,...s),error:(e,...s)=>(Te(e,...s),A("error",t,e,...s)),setLevel:e=>{t=e},getLevel:()=>t}},C=$e(),x="staticState",R={path:"",baseUrl:"",search:""},Qe=e=>{if(!e)return R;try{return JSON.parse(decodeURIComponent(e))||R}catch(e){return C.error("Error parsing static state",e),R}},ue=()=>new URLSearchParams(window.location.search).get(x),ze=({path:e,baseUrl:t,search:s}={})=>{const{pathname:a,origin:n,search:o}=window.location;return`${x}=${encodeURIComponent(JSON.stringify({path:e||a,baseUrl:t||n,search:s||o}))}`},Be=()=>{const e=ue();return e&&localStorage.setItem(x,e),pe()},pe=()=>{try{const e=localStorage.getItem(x)||ue();return Qe(e)}catch(e){return C.error("Error parsing static state",e),R}},je={create:ze,init:Be,get:pe},q=({onMessage:e,whitelist:t})=>{const s=s=>{const a=s.origin!==window.location.origin,n=s.data&&"object"==typeof s.data&&"type"in s.data,o=t.some((({type:e})=>e===s.data.type||"*"===e));a&&n&&o&&e(s.data)};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},qe=e=>{try{const{type:t,payload:s}=e,a={type:t};return void 0!==s&&(a.payload=JSON.parse(JSON.stringify(s))),a}catch(t){return C.warn(`Could not serialize action type: ${e.type}`,t),{type:e.type,payload:`[Non-serializable payload for action: ${e.type}]`}}},H=({action:e,windowElement:t,whitelist:s})=>{if(t)try{const{type:a}=e;if(!s.some((({type:e})=>e===a||"*"===e)))return;const n=qe(e);t.postMessage(n,"*")}catch(e){C.error("Failed to process or send message:",e)}},W="auth_token",Se=()=>localStorage.getItem(W)||void 0,He=e=>localStorage.setItem(W,e),We=()=>localStorage.removeItem(W),Ke=()=>!!Se(),v={getToken:Se,setToken:He,removeToken:We,hasToken:Ke},ae={forgotPasswordStep:"request",forgotPasswordFields:null,signupStep:"rules",signupFields:null,token:null,newEmail:null,isAuthBlockVisible:!0,isPending:!!v.getToken(),isAuthenticated:!1},O=d({name:"auth",initialState:ae,reducers:{login:(e,t)=>{e.isAuthenticated=!0,e.token=t.payload||null,e.isPending=!1},logout:()=>({...ae,isPending:!1}),setNewEmail:(e,t)=>{e.newEmail=t.payload},setForgotPasswordStep:(e,t)=>{e.forgotPasswordStep=t.payload},updateForgotPasswordFields:(e,t)=>{e.forgotPasswordFields={...e.forgotPasswordFields,...t.payload}},resetForgotPasswordFields:e=>{e.forgotPasswordFields=null},setSignupStep:(e,t)=>{e.signupStep=t.payload},updateSignupFields:(e,t)=>{e.signupFields={...e.signupFields,...t.payload}},resetSignupFields:e=>{e.signupFields=null},setPending:(e,t)=>{e.isPending=t.payload},showAuthBlock:(e,t)=>{e.isAuthBlockVisible=t.payload}},selectors:{selectToken:e=>e.token,selectNewEmail:e=>e.newEmail,selectForgotPasswordStep:e=>e.forgotPasswordStep,selectForgotPasswordFields:e=>e.forgotPasswordFields,selectSignupStep:e=>e.signupStep,selectSignupFields:e=>e.signupFields,selectPending:e=>e.isPending,selectAuthBlockVisible:e=>e.isAuthBlockVisible,selectIsAuthenticated:e=>e.isAuthenticated}}),oe={data:null,isError:!1,isPending:!1,isSuccess:!1},S=d({name:"user",initialState:oe,reducers:{reset:e=>{Object.assign(e,oe)},setData:(e,{payload:t})=>{e.data=t},updateData:(e,{payload:t})=>{e.data&&Object.assign(e.data,t)},setSuccess:(e,{payload:t})=>{e.isSuccess=t},setPending:(e,{payload:t})=>{e.isPending=t},setIsError:(e,{payload:t})=>{e.isError=t},setError:(e,{payload:t})=>{e.error=t},updateUser:(e,{payload:t})=>{var s;null!=(s=e.data)&&s.users&&(e.data.users=e.data.users.map((e=>t.id===e.id?t:e)))}},selectors:{selectIsError:e=>e.isError,selectError:e=>e.error,selectPending:e=>e.isPending,selectData:e=>e.data,selectAccount:e=>{var t;return null==(t=e.data)?void 0:t.account},selectAccountId:e=>{var t;return null==(t=e.data)?void 0:t.account.id},selectUsers:e=>{var t;return null==(t=e.data)?void 0:t.users},selectUserById:(e,t)=>{var s;return null==(s=e.data)?void 0:s.users.find((({id:e})=>e===t))},selectCurrentUser:e=>{var t;return null==(t=e.data)?void 0:t.users.find((({id:t})=>{var s;return t===(null==(s=e.data)?void 0:s.selectedUserId)}))},selectSelectedUserId:e=>{var t;return null==(t=e.data)?void 0:t.selectedUserId},selectSuccess:e=>e.isSuccess,selectIsAdmin:e=>{var t;return"ADMIN"===(null==(t=e.data)?void 0:t.account.role)}}}),T="remote-ready",me=h("reselectUser"),K=h("requestLogin"),ye=h("requestLogout"),L="host-store-connect",he=h("remoteLogin"),fe=h("remoteLogout");h("requestMicroFrontendFetch"),h("sendMicroFrontendFetchResponse");const N=async(e,t,s)=>{try{e(O.actions.setPending(!0));const{data:a}=await t,n="sessionKey"in a?a.sessionKey:a.token.sessionKey;return v.setToken(n),e(K(n)),null==s||s(),t}catch(t){e(O.actions.setPending(!1)),de.error(xe(t))}},Ge=Ce.enhanceEndpoints({endpoints:{getApiV1Rules:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsPasswordRecover:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsPasswordRecoverCheckCode:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsPasswordRecoverChange:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsPasswordChangeConfirm:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},putApiV1AccountsPasswordChangeResendCode:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsPasswordChangeRequest:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},putApiV1AccountsEmailChangeResendCode:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},putApiV1AccountsResendEmailByHash:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsEmailChangeRequest:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsEmailChangeConfirm:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsConfirmEmail:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsCheckCaptcha:{async onQueryStarted(e,{queryFulfilled:t}){await c(t)}},postApiV1AccountsFinishCreating:{async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){await N(t,s,(()=>{de.success("User registered successfully")}))}},postApiV1AccountsAuthenticateEmail:{invalidatesTags:["Secure"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){await N(t,s)}},postApiV1AccountsSignup:{invalidatesTags:["Secure"]},postApiV1AccountsUserReselectUser:{async onQueryStarted({userId:e},{dispatch:t,queryFulfilled:s}){await N(t,s),e&&t(S.actions.updateData({selectedUserId:e}))}}}}),ge={[me.type]:e=>b().dispatch(Ge.endpoints.postApiV1AccountsUserReselectUser.initiate(e)),[K.type]:e=>v.setToken(e),[ye.type]:()=>v.removeToken()},Je=e=>Object.keys(ge).includes(e.type),we=e=>Je(e)?ge[e.type](e.payload):null,Pe=({sendWhitelist:e,receiveWhitelist:t,onMessage:s})=>{const a=f((()=>{})),n=f((()=>{}));return k((o=>{o&&(a.current(),n.current(),a.current=te((t=>{we(t),H({action:t,windowElement:o,whitelist:e})})),n.current=q({onMessage:e=>{s?s(e):b().dispatch(e)},whitelist:t}))}),[e,t,s,te])},G=e=>e,be=r(G,(e=>e.data)),Ye=r(G,(e=>e.error)),Xe=r(G,(e=>e.isPending)),Ze=r(be,(e=>null==e?void 0:e.rules)),et={data:null,isPending:!1},U=d({name:"instanceInfo",initialState:et,reducers:{setInfo:(e,t)=>{e.data=t.payload},setError:(e,t)=>{e.error=t.payload},setPending:(e,t)=>{e.isPending=t.payload}},selectors:{selectInstanceInfo:be,selectInstanceInfoError:Ye,selectInstanceInfoPending:Xe,selectPlatformRules:Ze,selectRegistrations:e=>{var t;return null==(t=e.data)?void 0:t.configuration.registrations}}}),tt={sms:"wellesley.admin.sms",auth:"wellesley.admin.auth",openai:"wellesley.admin.openai",uploads:"wellesley.admin.uploads",captcha:"wellesley.admin.captcha",language:"wellesley.admin.language",mediacache:"wellesley.admin.mediacache",translation:"wellesley.admin.translation"},st={posts:"wellesley.posts",registration:"wellesley.registration",confirmationCode:"wellesley.confirmationCode",uploadsPolicyDoc:"wellesley.uploads.policy.doc",uploadsPolicyAudio:"wellesley.uploads.policy.audio",uploadsPolicyImage:"wellesley.uploads.policy.image",uploadsPolicyVideo:"wellesley.uploads.policy.video",captcha:"wellesley.captcha"},at={data:null,isPending:!1},{posts:_,uploadsPolicyDoc:ne,uploadsPolicyAudio:F,uploadsPolicyImage:E,uploadsPolicyVideo:w,registration:ot,captcha:nt}=st,{captcha:it,language:rt,translation:ct,openai:lt}=tt,g=e=>e.data,dt=r(g,(e=>{var t,s,a;return{max_characters:(null==(t=null==e?void 0:e[_])?void 0:t.max_characters)||0,max_media_attachments:(null==(s=null==e?void 0:e[_])?void 0:s.max_media_attachments)||0,max_pins:(null==(a=null==e?void 0:e[_])?void 0:a.max_pins)||0}})),Ae=r(g,(e=>{var t,s,a;return{...null==e?void 0:e[E],maxSize:(null==(t=null==e?void 0:e[E])?void 0:t.maxSize)||0,maxMatrix:(null==(s=null==e?void 0:e[E])?void 0:s.maxMatrix)||0,maxResolution:(null==(a=null==e?void 0:e[E])?void 0:a.maxResolution)||0}})),Ee=r(g,(e=>{var t,s,a,n;return{...null==e?void 0:e[w],maxSize:(null==(t=null==e?void 0:e[w])?void 0:t.maxSize)||0,maxMatrix:(null==(s=null==e?void 0:e[w])?void 0:s.maxMatrix)||0,maxDuration:(null==(a=null==e?void 0:e[w])?void 0:a.maxDuration)||0,maxResolution:(null==(n=null==e?void 0:e[w])?void 0:n.maxResolution)||0}})),Ie=r(g,(e=>{var t,s;return{...null==e?void 0:e[F],maxSize:null==(t=null==e?void 0:e[F])?void 0:t.maxSize,keepOriginal:(null==(s=null==e?void 0:e[F])?void 0:s.keepOriginal)||0}})),Re=r(g,(e=>{var t;return{...null==e?void 0:e[ne],maxSize:(null==(t=null==e?void 0:e[ne])?void 0:t.maxSize)||0}})),ke=r([Ae,Ee,Ie,Re],((e,t,s,a)=>({IMAGE:null==e?void 0:e.extensions,VIDEO:null==t?void 0:t.extensions,AUDIO:null==s?void 0:s.extensions,DOCUMENT:null==a?void 0:a.extensions}))),ut=r(ke,(e=>Object.keys(e).reduce(((t,s)=>[...t,...e[s]||[]]),[]))),pt=d({name:"platformSettings",initialState:at,reducers:{setSettings:(e,t)=>{e.data={...e.data,...t.payload}},setError:(e,t)=>{e.error=t.payload},setPending:(e,t)=>{e.isPending=t.payload}},selectors:{selectSettings:g,selectPostConfig:dt,selectDocPolicy:Re,selectImagePolicy:Ae,selectVideoPolicy:Ee,selectAudioPolicy:Ie,selectSupportedExtensions:ke,selectFullExtensionsList:ut,selectRegistration:e=>{var t;return null==(t=e.data)?void 0:t[ot]},selectLanguageDetection:e=>{var t;return null==(t=e.data)?void 0:t[rt]},selectLanguageTranslation:e=>{var t;return null==(t=e.data)?void 0:t[ct]},selectOpenai:e=>{var t;return null==(t=e.data)?void 0:t[lt]},selectCaptcha:e=>{var t;return null==(t=e.data)?void 0:t[nt]},selectAdminCaptcha:e=>{var t;return null==(t=e.data)?void 0:t[it]}}}),ie={data:{userId:"",list:[]},count:{},isPending:!1},St=e=>e,mt=e=>e.error,yt=e=>e.isPending,ht=e=>{var t;return null==(t=e.count)?void 0:t.total},ft=e=>{var t;return null==(t=e.count)?void 0:t.unread},gt=e=>e.data.userId,J=r(St,(e=>e.data.list)),wt=r(J,(e=>null==e?void 0:e.filter((e=>"UNREAD"===e.status)))),Pt=r(J,(e=>null==e?void 0:e.at(-1))),p=d({name:"notifications",initialState:ie,reducers:{setPending:(e,t)=>{e.isPending=t.payload},setError:(e,t)=>{e.error=t.payload},setNotifications:(e,t)=>{const s=t.payload.userId,a=t.payload.list;e.data={userId:s,list:[...e.data.list||[],...a.filter((t=>{var s;return!(null!=(s=e.data.list)&&s.some((e=>e.id===t.id)))}))]}},addNotification:(e,t)=>{e.count.unread=(e.count.unread||0)+1,e.data.list&&(e.data.list=[t.payload,...e.data.list||[]])},markNotification:(e,t)=>{e.data.list&&(e.data.list=e.data.list.map((e=>e.id===t.payload.id?{...e,status:t.payload.status}:e)))},updateNotification:(e,t)=>{var s;if(!e.data.list)return;const a=t.payload;e.data.list=null==(s=e.data.list)?void 0:s.map((e=>e.id===a.id?{...e,...a}:e))},setTotalCount:(e,t)=>{e.count.total=t.payload},setUnreadCount:(e,t)=>{e.count.unread=t.payload},readAll:e=>{var t;e.data.list&&(e.data.list=null==(t=e.data.list)?void 0:t.map((e=>({...e,status:"READ"}))))},resetState:()=>ie,undoNotitication:(e,t)=>{var s,a,n;const o=t.payload;"UNREAD"===(null==(a=null==(s=e.data.list)?void 0:s.find((e=>e.id===o)))?void 0:a.status)&&e.count.unread&&(e.count.unread-=1),e.data.list=(null==(n=e.data.list)?void 0:n.filter((e=>e.id!==o)))||[]}},selectors:{selectError:mt,selectIsPending:yt,selectTotalCount:ht,selectUnreadCount:ft,selectNotifications:J,selectUnreadNotifications:wt,selectLastNotification:Pt,selectNotificationsOwner:gt}}),bt=()=>{const e=window.innerWidth;return e<768?"mobile":e<1024?"tablet":"desktop"},At={deviceType:bt()},Et=d({name:"ui",initialState:At,reducers:{setDeviceType:(e,{payload:t})=>{e.deviceType=t}},selectors:{selectDeviceType:e=>e.deviceType,selectIsMobile:e=>"mobile"===e.deviceType,selectIsTablet:e=>"tablet"===e.deviceType,selectIsDesktop:e=>"desktop"===e.deviceType}}),P={messages:[],subscribers:[],unsubscribers:[]},D=d({name:"ws",initialState:P,reducers:{reset:e=>{e.messages=P.messages,e.subscribers=P.subscribers,e.unsubscribers=P.unsubscribers},subscribe:(e,{payload:t})=>{!e.subscribers.find((e=>e.id===t.id))&&e.subscribers.push(t)},onMessage:(e,{payload:t})=>{e.messages=[t,...e.messages.slice(0,100)]},cleanMessages:e=>{e.messages=P.messages},unsubscribe:(e,{payload:t})=>{const s=e.subscribers.find((e=>e.id===t));s&&e.unsubscribers.push(s)},onUnsubscribe:(e,{payload:t})=>{e.subscribers=e.subscribers.filter((e=>e.id!==t)),e.unsubscribers=e.unsubscribers.filter((e=>e.id!==t))}},selectors:{selectMessages:e=>e.messages,selectSubscribers:e=>e.subscribers,selectUnSubscribers:e=>e.unsubscribers,selectLastUpdateFor:(e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>t.startsWith("feed:my")?e.startsWith(t):e===t))}}}).injectInto(j),It={path:"",transitionPath:""},ve=d({name:"router",initialState:It,reducers:{setPath:(e,{payload:t})=>{t!==e.path&&(e.path=t)},requestChangePath:(e,{payload:t})=>{t!==e.transitionPath&&(e.transitionPath=t)}},selectors:{selectPath:e=>e.path,selectTransitionPath:e=>e.transitionPath}}).injectInto(j),Rt={data:null,isPending:!1,isSuccess:!1},kt=d({name:"profileSettings",initialState:Rt,reducers:{setSettings:(e,t)=>{e.data=t.payload},setPending:(e,t)=>{e.isPending=t.payload},setSuccess:(e,{payload:t})=>{e.isSuccess=t},setError:(e,{payload:t})=>{e.error=t}},selectors:{selectProfileSettings:e=>e.data,selectPending:e=>e.isPending,selectError:e=>e.error,selectSuccess:e=>e.isSuccess}}),re={data:{},ui:{showInfo:!1},localState:{description:"",rules:null,links:null,locations:null}},ce={data:null,loading:!1,ui:{showInfo:!1}},I=d({name:"group",initialState:re,reducers:{reset:()=>re,setData:(e,{payload:t})=>{const[s,a]=t;e.data[s]||(e.data[s]={...ce}),e.data[s].data=a},setLoading:(e,{payload:t})=>{const[s,a]=t;e.data[s]||(e.data[s]={...ce}),e.data[s].loading=a},setShowBasicInfo:(e,{payload:t})=>{e.ui.showInfo=t},setDescription:(e,{payload:t})=>{e.localState.description=t},setRules:(e,{payload:t})=>{e.localState.rules=t},addRule:(e,{payload:t})=>{e.localState.rules=[...e.localState.rules||[],t]},updateRule:(e,{payload:t})=>{e.localState.rules=(e.localState.rules||[]).map((e=>e.id===t.id?t:e))},removeRule:(e,{payload:t})=>{e.localState.rules=(e.localState.rules||[]).filter((e=>e.id!==t))},reorderRules:(e,{payload:t})=>{e.localState.rules=t},setLinks:(e,{payload:t})=>{e.localState.links=t},addLink:(e,{payload:t})=>{e.localState.links=[...e.localState.links||[],t]},updateLink:(e,{payload:t})=>{e.localState.links=(e.localState.links||[]).map((e=>e.id===t.id?t:e))},removeLink:(e,{payload:t})=>{e.localState.links=(e.localState.links||[]).filter((e=>e.id!==t))},setLocations:(e,{payload:t})=>{e.localState.locations=t},removeLocation:(e,{payload:t})=>{e.localState.locations=(e.localState.locations||[]).filter((e=>e!==t))}},selectors:{group:(e,t)=>{var s;return null==(s=e.data[t])?void 0:s.data},isLoading:(e,t)=>{var s;return null==(s=e.data[t])?void 0:s.loading},showBasicInfo:e=>e.ui.showInfo,selectDescription:e=>e.localState.description,selectRules:e=>e.localState.rules,selectLinks:e=>e.localState.links,selectLocations:e=>e.localState.locations}}).injectInto(j),Y=[ve.actions.requestChangePath,D.actions.subscribe,D.actions.unsubscribe,O.actions.showAuthBlock,{type:T},me,K,ye],X=[{type:L},ve.actions.setPath,Et.actions.setDeviceType,D.actions.onMessage,he,fe,S.actions.setError,S.actions.setIsError,S.actions.setPending,S.actions.setSuccess,S.actions.setData,S.actions.updateData,S.actions.updateUser,p.actions.addNotification,p.actions.markNotification,p.actions.setError,p.actions.setNotifications,p.actions.setPending,p.actions.setTotalCount,p.actions.setUnreadCount,p.actions.resetState,p.actions.undoNotitication,U.actions.setInfo,U.actions.setPending,U.actions.setError,pt.actions.setSettings,kt.actions.setSettings,I.actions.setData,I.actions.setLoading,I.actions.reset,I.actions.setShowBasicInfo];if(X.find((e=>Y.find((t=>(null==t?void 0:t.type)===(null==e?void 0:e.type))))))throw new Error("Output action is duplicated with input action");const vt=()=>{const e=b().getState();return e.openapi&&(e.openapi=void 0),e.auth&&(e.auth={...e.auth,token:null}),e},Gt=e=>{const t=Pe({sendWhitelist:X,receiveWhitelist:Y,onMessage:e=>{we(e)||b().dispatch(e)}}),s=k((()=>{var t;const s={type:L,payload:vt()};H({action:s,windowElement:(null==(t=e.current)?void 0:t.contentWindow)??null,whitelist:[s]})}),[e]),a=k((()=>{var a;t((null==(a=e.current)?void 0:a.contentWindow)??null),s()}),[t,e,s]);m((()=>{const e=q({onMessage:e=>{e.type===T&&a()},whitelist:[{type:T}]});return()=>e()}),[a])},Z=()=>{const e=B();return e.pathname+e.search},Tt=({lastLocationPathRef:e})=>{const t=Q(),s=Z(),a=y(l.selectors.selectPath),n=y(l.selectors.selectTransitionPath);m((()=>{s!==e.current&&(e.current=s,s!==a&&s!==n&&t(l.actions.requestChangePath(s)))}),[a,n,s])},Lt=()=>{const e=z(),t=B(),s=Q(),a=f(""),n=Z(),o=y(l.selectors.selectPath),i=y(l.selectors.selectTransitionPath);Tt({lastLocationPathRef:a}),m((()=>{i&&n===i&&o!==i&&s(l.actions.setPath(i))}),[t,o,i,s]),m((()=>{i&&i!==a.current&&(a.current=i,e(i,{replace:!1}))}),[i,e])},Ct=$((()=>(Lt(),null)));Ct.displayName="HostRouteObserver";const xt=e=>{const t=f(e),[s,a]=le(null);return m((()=>{const e=q({onMessage:e=>{var s;if(e.type===L){const n=Le(e.payload);a(n),null==(s=t.current)||s.call(t,n)}},whitelist:[{type:L}]}),s={type:T};return H({action:s,windowElement:window.parent,whitelist:[s]}),()=>e()}),[]),{store:s}},M={[he.type]:()=>Ne(),[fe.type]:()=>Ue()},Nt=e=>Object.keys(M).includes(e.type),Ut=e=>Nt(e)&&e.type in M?M[e.type]():null,{path:V,search:_t}=je.init();V&&window.history.replaceState({},"",`${V}${_t||""}`);const Jt=()=>{const[e,t]=le(null),s=Pe({sendWhitelist:Y,receiveWhitelist:X,onMessage:e=>{Ut(e)||b().dispatch(e)}}),a=k((e=>{t(e),s(window.parent)}),[s]);return xt(a),{store:e,path:V}},Ft=()=>{const e=z(),t=f(""),s=Z(),a=y(l.selectors.selectPath);m((()=>{a&&a!==t.current&&(t.current=a,s!==a&&e(a,{replace:!0}))}),[a,e,s])},Ot=$((()=>(Ft(),null)));Ot.displayName="RemoteRouteObserver";export{Ct as HostRouteObserver,Ot as RemoteRouteObserver,Oe as RouteObserver,we as callHostApiAction,Ut as callRemoteApiAction,q as listenMessage,vt as prepareState,H as sendMessage,je as staticState,Gt as useHostStoreConnect,_e as useNavigateToPath,xt as usePreloadedStore,Jt as useRemoteStoreConnect,Fe as useSetPath};
1
+ import{logErrorToSentry as Re}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@next";import{subscribeAfter as Z}from"https://cdn.jsdelivr.net/npm/@wellesley/redux-subscribe-action@next";import{useRef as w,useCallback as v,useEffect as y,memo as ie,useState as ce}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{getStore as b,rootReducer as B,createStore as Te}from"https://cdn.jsdelivr.net/npm/@wellesley/store@next";import{api as xe,handleBasicResponse as l}from"https://cdn.jsdelivr.net/npm/@wellesley/openapi@next";import{createSlice as u,createAction as h,createSelector as c}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{toast as le}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{getErrorMsg as Ue}from"https://cdn.jsdelivr.net/npm/@wellesley/error-kit@next";import{useDispatch as x,useSelector as S}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{routerSlice as d}from"https://cdn.jsdelivr.net/npm/@wellesley/router@next";import{useLocation as de,useBlocker as Ne,useNavigate as ue}from"https://cdn.jsdelivr.net/npm/react-router-dom@6.22.2/+esm";import{handleLogin as _e,handleLogout as Fe}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@next";const De=()=>"object"!=typeof window,ee=["debug","info","warn","error"],Oe=(e,t)=>{const s=ee.indexOf(e);return ee.indexOf(t)>=s},E=(e,t,s,...a)=>{Oe(t,e)&&console.log(`[${e}] ${s}`,...a)},Me=()=>null==window?void 0:window.localStorage.getItem("logger_lvl"),Ve=(e=!De()&&Me()||"warn")=>{let t=e;return{debug:(e,...s)=>E("debug",t,e,...s),info:(e,...s)=>E("info",t,e,...s),warn:(e,...s)=>E("warn",t,e,...s),error:(e,...s)=>(Re(e,...s),E("error",t,e,...s)),setLevel:e=>{t=e},getLevel:()=>t}},U=Ve(),N="staticState",L={path:"",baseUrl:"",search:""},$e=e=>{if(!e)return L;try{return JSON.parse(decodeURIComponent(e))||L}catch(e){return U.error("Error parsing static state",e),L}},pe=()=>new URLSearchParams(window.location.search).get(N),Qe=({path:e,baseUrl:t,search:s}={})=>{const{pathname:a,origin:o,search:n}=window.location;return`${N}=${encodeURIComponent(JSON.stringify({path:e||a,baseUrl:t||o,search:s||n}))}`},Be=()=>{const e=pe();return e&&localStorage.setItem(N,e),me()},me=()=>{try{const e=localStorage.getItem(N)||pe();return $e(e)}catch(e){return U.error("Error parsing static state",e),L}},ze={create:Qe,init:Be,get:me},z=({onMessage:e,whitelist:t})=>{const s=s=>{const a=s.origin!==window.location.origin,o=s.data&&"object"==typeof s.data&&"type"in s.data,n=t.some((({type:e})=>e===s.data.type||"*"===e));a&&o&&n&&e(s.data)};return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},qe=e=>{try{const{type:t,payload:s}=e,a={type:t};return void 0!==s&&(a.payload=JSON.parse(JSON.stringify(s))),a}catch(t){return U.warn(`Could not serialize action type: ${e.type}`,t),{type:e.type,payload:`[Non-serializable payload for action: ${e.type}]`}}},q=({action:e,windowElement:t,whitelist:s})=>{if(t)try{const{type:a}=e;if(!s.some((({type:e})=>e===a||"*"===e)))return;const o=qe(e);t.postMessage(o,"*")}catch(e){U.error("Failed to process or send message:",e)}},j="auth_token",Se=()=>localStorage.getItem(j)||void 0,je=e=>localStorage.setItem(j,e),He=()=>localStorage.removeItem(j),We=()=>!!Se(),C={getToken:Se,setToken:je,removeToken:He,hasToken:We},te={forgotPasswordStep:"request",forgotPasswordFields:null,signupStep:"rules",signupFields:null,token:null,newEmail:null,isAuthBlockVisible:!0,isPending:!!C.getToken(),isAuthenticated:!1},M=u({name:"auth",initialState:te,reducers:{login:(e,t)=>{e.isAuthenticated=!0,e.token=t.payload||null,e.isPending=!1},logout:()=>({...te,isPending:!1}),setNewEmail:(e,t)=>{e.newEmail=t.payload},setForgotPasswordStep:(e,t)=>{e.forgotPasswordStep=t.payload},updateForgotPasswordFields:(e,t)=>{e.forgotPasswordFields={...e.forgotPasswordFields,...t.payload}},resetForgotPasswordFields:e=>{e.forgotPasswordFields=null},setSignupStep:(e,t)=>{e.signupStep=t.payload},updateSignupFields:(e,t)=>{e.signupFields={...e.signupFields,...t.payload}},resetSignupFields:e=>{e.signupFields=null},setPending:(e,t)=>{e.isPending=t.payload},showAuthBlock:(e,t)=>{e.isAuthBlockVisible=t.payload}},selectors:{selectToken:e=>e.token,selectNewEmail:e=>e.newEmail,selectForgotPasswordStep:e=>e.forgotPasswordStep,selectForgotPasswordFields:e=>e.forgotPasswordFields,selectSignupStep:e=>e.signupStep,selectSignupFields:e=>e.signupFields,selectPending:e=>e.isPending,selectAuthBlockVisible:e=>e.isAuthBlockVisible,selectIsAuthenticated:e=>e.isAuthenticated}}),se={data:null,isError:!1,isPending:!1,isSuccess:!1},m=u({name:"user",initialState:se,reducers:{reset:e=>{Object.assign(e,se)},setData:(e,{payload:t})=>{e.data=t},updateData:(e,{payload:t})=>{e.data&&Object.assign(e.data,t)},setSuccess:(e,{payload:t})=>{e.isSuccess=t},setPending:(e,{payload:t})=>{e.isPending=t},setIsError:(e,{payload:t})=>{e.isError=t},setError:(e,{payload:t})=>{e.error=t},updateUser:(e,{payload:t})=>{var s;null!=(s=e.data)&&s.users&&(e.data.users=e.data.users.map((e=>t.id===e.id?t:e)))}},selectors:{selectIsError:e=>e.isError,selectError:e=>e.error,selectPending:e=>e.isPending,selectData:e=>e.data,selectAccount:e=>{var t;return null==(t=e.data)?void 0:t.account},selectAccountId:e=>{var t;return null==(t=e.data)?void 0:t.account.id},selectUsers:e=>{var t;return null==(t=e.data)?void 0:t.users},selectUserById:(e,t)=>{var s;return null==(s=e.data)?void 0:s.users.find((({id:e})=>e===t))},selectCurrentUser:e=>{var t;return null==(t=e.data)?void 0:t.users.find((({id:t})=>{var s;return t===(null==(s=e.data)?void 0:s.selectedUserId)}))},selectSelectedUserId:e=>{var t;return null==(t=e.data)?void 0:t.selectedUserId},selectSuccess:e=>e.isSuccess,selectIsAdmin:e=>{var t;return"ADMIN"===(null==(t=e.data)?void 0:t.account.role)}}}),R="remote-ready",ye=h("reselectUser"),H=h("requestLogin"),he=h("requestLogout"),W=h("setConfirmLeavePage"),T="host-store-connect",fe=h("remoteLogin"),ge=h("remoteLogout");h("requestMicroFrontendFetch"),h("sendMicroFrontendFetchResponse");const _=async(e,t,s)=>{try{e(M.actions.setPending(!0));const{data:a}=await t,o="sessionKey"in a?a.sessionKey:a.token.sessionKey;return C.setToken(o),e(H(o)),null==s||s(),t}catch(t){e(M.actions.setPending(!1)),le.error(Ue(t))}},Ke=xe.enhanceEndpoints({endpoints:{getApiV1Rules:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsPasswordRecover:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsPasswordRecoverCheckCode:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsPasswordRecoverChange:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsPasswordChangeConfirm:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},putApiV1AccountsPasswordChangeResendCode:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsPasswordChangeRequest:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},putApiV1AccountsEmailChangeResendCode:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},putApiV1AccountsResendEmailByHash:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsEmailChangeRequest:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsEmailChangeConfirm:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsConfirmEmail:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsCheckCaptcha:{async onQueryStarted(e,{queryFulfilled:t}){await l(t)}},postApiV1AccountsFinishCreating:{async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){await _(t,s,(()=>{le.success("User registered successfully")}))}},postApiV1AccountsAuthenticateEmail:{invalidatesTags:["Secure"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){await _(t,s)}},postApiV1AccountsSignup:{invalidatesTags:["Secure"]},postApiV1AccountsUserReselectUser:{async onQueryStarted({userId:e},{dispatch:t,queryFulfilled:s}){await _(t,s),e&&t(m.actions.updateData({selectedUserId:e}))}}}}),Pe={[ye.type]:e=>b().dispatch(Ke.endpoints.postApiV1AccountsUserReselectUser.initiate(e)),[H.type]:e=>C.setToken(e),[he.type]:()=>C.removeToken()},Ge=e=>Object.keys(Pe).includes(e.type),we=e=>Ge(e)?Pe[e.type](e.payload):null,be=({sendWhitelist:e,receiveWhitelist:t,onMessage:s})=>{const a=w((()=>{})),o=w((()=>{}));return v((n=>{n&&(a.current(),o.current(),a.current=Z((t=>{we(t),q({action:t,windowElement:n,whitelist:e})})),o.current=z({onMessage:e=>{s?s(e):b().dispatch(e)},whitelist:t}))}),[e,t,s,Z])},K=e=>e,Ae=c(K,(e=>e.data)),Je=c(K,(e=>e.error)),Ye=c(K,(e=>e.isPending)),Xe=c(Ae,(e=>null==e?void 0:e.rules)),Ze={data:null,isPending:!1},F=u({name:"instanceInfo",initialState:Ze,reducers:{setInfo:(e,t)=>{e.data=t.payload},setError:(e,t)=>{e.error=t.payload},setPending:(e,t)=>{e.isPending=t.payload}},selectors:{selectInstanceInfo:Ae,selectInstanceInfoError:Je,selectInstanceInfoPending:Ye,selectPlatformRules:Xe,selectRegistrations:e=>{var t;return null==(t=e.data)?void 0:t.configuration.registrations}}}),et={sms:"wellesley.admin.sms",auth:"wellesley.admin.auth",openai:"wellesley.admin.openai",uploads:"wellesley.admin.uploads",captcha:"wellesley.admin.captcha",language:"wellesley.admin.language",mediacache:"wellesley.admin.mediacache",translation:"wellesley.admin.translation"},tt={posts:"wellesley.posts",registration:"wellesley.registration",confirmationCode:"wellesley.confirmationCode",uploadsPolicyDoc:"wellesley.uploads.policy.doc",uploadsPolicyAudio:"wellesley.uploads.policy.audio",uploadsPolicyImage:"wellesley.uploads.policy.image",uploadsPolicyVideo:"wellesley.uploads.policy.video",captcha:"wellesley.captcha"},st={data:null,isPending:!1},{posts:D,uploadsPolicyDoc:ae,uploadsPolicyAudio:O,uploadsPolicyImage:I,uploadsPolicyVideo:g,registration:at,captcha:ot}=tt,{captcha:nt,language:rt,translation:it,openai:ct}=et,f=e=>e.data,lt=c(f,(e=>{var t,s,a;return{max_characters:(null==(t=null==e?void 0:e[D])?void 0:t.max_characters)||0,max_media_attachments:(null==(s=null==e?void 0:e[D])?void 0:s.max_media_attachments)||0,max_pins:(null==(a=null==e?void 0:e[D])?void 0:a.max_pins)||0}})),Ee=c(f,(e=>{var t,s,a;return{...null==e?void 0:e[I],maxSize:(null==(t=null==e?void 0:e[I])?void 0:t.maxSize)||0,maxMatrix:(null==(s=null==e?void 0:e[I])?void 0:s.maxMatrix)||0,maxResolution:(null==(a=null==e?void 0:e[I])?void 0:a.maxResolution)||0}})),Ie=c(f,(e=>{var t,s,a,o;return{...null==e?void 0:e[g],maxSize:(null==(t=null==e?void 0:e[g])?void 0:t.maxSize)||0,maxMatrix:(null==(s=null==e?void 0:e[g])?void 0:s.maxMatrix)||0,maxDuration:(null==(a=null==e?void 0:e[g])?void 0:a.maxDuration)||0,maxResolution:(null==(o=null==e?void 0:e[g])?void 0:o.maxResolution)||0}})),ke=c(f,(e=>{var t,s;return{...null==e?void 0:e[O],maxSize:null==(t=null==e?void 0:e[O])?void 0:t.maxSize,keepOriginal:(null==(s=null==e?void 0:e[O])?void 0:s.keepOriginal)||0}})),Le=c(f,(e=>{var t;return{...null==e?void 0:e[ae],maxSize:(null==(t=null==e?void 0:e[ae])?void 0:t.maxSize)||0}})),ve=c([Ee,Ie,ke,Le],((e,t,s,a)=>({IMAGE:null==e?void 0:e.extensions,VIDEO:null==t?void 0:t.extensions,AUDIO:null==s?void 0:s.extensions,DOCUMENT:null==a?void 0:a.extensions}))),dt=c(ve,(e=>Object.keys(e).reduce(((t,s)=>[...t,...e[s]||[]]),[]))),ut=u({name:"platformSettings",initialState:st,reducers:{setSettings:(e,t)=>{e.data={...e.data,...t.payload}},setError:(e,t)=>{e.error=t.payload},setPending:(e,t)=>{e.isPending=t.payload}},selectors:{selectSettings:f,selectPostConfig:lt,selectDocPolicy:Le,selectImagePolicy:Ee,selectVideoPolicy:Ie,selectAudioPolicy:ke,selectSupportedExtensions:ve,selectFullExtensionsList:dt,selectRegistration:e=>{var t;return null==(t=e.data)?void 0:t[at]},selectLanguageDetection:e=>{var t;return null==(t=e.data)?void 0:t[rt]},selectLanguageTranslation:e=>{var t;return null==(t=e.data)?void 0:t[it]},selectOpenai:e=>{var t;return null==(t=e.data)?void 0:t[ct]},selectCaptcha:e=>{var t;return null==(t=e.data)?void 0:t[ot]},selectAdminCaptcha:e=>{var t;return null==(t=e.data)?void 0:t[nt]}}}),oe={data:{userId:"",list:[]},count:{},isPending:!1},pt=e=>e,mt=e=>e.error,St=e=>e.isPending,yt=e=>{var t;return null==(t=e.count)?void 0:t.total},ht=e=>{var t;return null==(t=e.count)?void 0:t.unread},ft=e=>e.data.userId,G=c(pt,(e=>e.data.list)),gt=c(G,(e=>null==e?void 0:e.filter((e=>"UNREAD"===e.status)))),Pt=c(G,(e=>null==e?void 0:e.at(-1))),p=u({name:"notifications",initialState:oe,reducers:{setPending:(e,t)=>{e.isPending=t.payload},setError:(e,t)=>{e.error=t.payload},setNotifications:(e,t)=>{const s=t.payload.userId,a=t.payload.list;e.data={userId:s,list:[...e.data.list||[],...a.filter((t=>{var s;return!(null!=(s=e.data.list)&&s.some((e=>e.id===t.id)))}))]}},addNotification:(e,t)=>{e.count.unread=(e.count.unread||0)+1,e.data.list&&(e.data.list=[t.payload,...e.data.list||[]])},markNotification:(e,t)=>{e.data.list&&(e.data.list=e.data.list.map((e=>e.id===t.payload.id?{...e,status:t.payload.status}:e)))},updateNotification:(e,t)=>{var s;if(!e.data.list)return;const a=t.payload;e.data.list=null==(s=e.data.list)?void 0:s.map((e=>e.id===a.id?{...e,...a}:e))},setTotalCount:(e,t)=>{e.count.total=t.payload},setUnreadCount:(e,t)=>{e.count.unread=t.payload},readAll:e=>{var t;e.data.list&&(e.data.list=null==(t=e.data.list)?void 0:t.map((e=>({...e,status:"READ"}))))},resetState:()=>oe,undoNotitication:(e,t)=>{var s,a,o;const n=t.payload;"UNREAD"===(null==(a=null==(s=e.data.list)?void 0:s.find((e=>e.id===n)))?void 0:a.status)&&e.count.unread&&(e.count.unread-=1),e.data.list=(null==(o=e.data.list)?void 0:o.filter((e=>e.id!==n)))||[]}},selectors:{selectError:mt,selectIsPending:St,selectTotalCount:yt,selectUnreadCount:ht,selectNotifications:G,selectUnreadNotifications:gt,selectLastNotification:Pt,selectNotificationsOwner:ft}}),wt=()=>{const e=window.innerWidth;return e<768?"mobile":e<1024?"tablet":"desktop"},bt={deviceType:wt()},At=u({name:"ui",initialState:bt,reducers:{setDeviceType:(e,{payload:t})=>{e.deviceType=t}},selectors:{selectDeviceType:e=>e.deviceType,selectIsMobile:e=>"mobile"===e.deviceType,selectIsTablet:e=>"tablet"===e.deviceType,selectIsDesktop:e=>"desktop"===e.deviceType}}),P={messages:[],subscribers:[],unsubscribers:[]},V=u({name:"ws",initialState:P,reducers:{reset:e=>{e.messages=P.messages,e.subscribers=P.subscribers,e.unsubscribers=P.unsubscribers},subscribe:(e,{payload:t})=>{!e.subscribers.find((e=>e.id===t.id))&&e.subscribers.push(t)},onMessage:(e,{payload:t})=>{e.messages=[t,...e.messages.slice(0,100)]},cleanMessages:e=>{e.messages=P.messages},unsubscribe:(e,{payload:t})=>{const s=e.subscribers.find((e=>e.id===t));s&&e.unsubscribers.push(s)},onUnsubscribe:(e,{payload:t})=>{e.subscribers=e.subscribers.filter((e=>e.id!==t)),e.unsubscribers=e.unsubscribers.filter((e=>e.id!==t))}},selectors:{selectMessages:e=>e.messages,selectSubscribers:e=>e.subscribers,selectUnSubscribers:e=>e.unsubscribers,selectLastUpdateFor:(e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>t.startsWith("feed:my")?e.startsWith(t):e===t))}}}).injectInto(B),Et={path:"",transitionPath:"",confirmLeavePage:null},Ce=u({name:"router",initialState:Et,reducers:{setPath:(e,{payload:t})=>{t!==e.path&&(e.path=t)},requestChangePath:(e,{payload:t})=>{t!==e.transitionPath&&(e.transitionPath=t)}},extraReducers:e=>{e.addCase(W,((e,{payload:t})=>{e.confirmLeavePage=t}))},selectors:{selectPath:e=>e.path,selectTransitionPath:e=>e.transitionPath,selectConfirmLeavePage:e=>e.confirmLeavePage}}).injectInto(B),It={data:null,isPending:!1,isSuccess:!1},kt=u({name:"profileSettings",initialState:It,reducers:{setSettings:(e,t)=>{e.data=t.payload},setPending:(e,t)=>{e.isPending=t.payload},setSuccess:(e,{payload:t})=>{e.isSuccess=t},setError:(e,{payload:t})=>{e.error=t}},selectors:{selectProfileSettings:e=>e.data,selectPending:e=>e.isPending,selectError:e=>e.error,selectSuccess:e=>e.isSuccess}}),ne={data:{},ui:{showInfo:!1},localState:{description:"",rules:null,links:null,locations:null}},re={data:null,loading:!1,ui:{showInfo:!1}},k=u({name:"group",initialState:ne,reducers:{reset:()=>ne,setData:(e,{payload:t})=>{const[s,a]=t;e.data[s]||(e.data[s]={...re}),e.data[s].data=a},setLoading:(e,{payload:t})=>{const[s,a]=t;e.data[s]||(e.data[s]={...re}),e.data[s].loading=a},setShowBasicInfo:(e,{payload:t})=>{e.ui.showInfo=t},setDescription:(e,{payload:t})=>{e.localState.description=t},setRules:(e,{payload:t})=>{e.localState.rules=t},addRule:(e,{payload:t})=>{e.localState.rules=[...e.localState.rules||[],t]},updateRule:(e,{payload:t})=>{e.localState.rules=(e.localState.rules||[]).map((e=>e.id===t.id?t:e))},removeRule:(e,{payload:t})=>{e.localState.rules=(e.localState.rules||[]).filter((e=>e.id!==t))},reorderRules:(e,{payload:t})=>{e.localState.rules=t},setLinks:(e,{payload:t})=>{e.localState.links=t},addLink:(e,{payload:t})=>{e.localState.links=[...e.localState.links||[],t]},updateLink:(e,{payload:t})=>{e.localState.links=(e.localState.links||[]).map((e=>e.id===t.id?t:e))},removeLink:(e,{payload:t})=>{e.localState.links=(e.localState.links||[]).filter((e=>e.id!==t))},setLocations:(e,{payload:t})=>{e.localState.locations=t},removeLocation:(e,{payload:t})=>{e.localState.locations=(e.localState.locations||[]).filter((e=>e!==t))}},selectors:{group:(e,t)=>{var s;return null==(s=e.data[t])?void 0:s.data},isLoading:(e,t)=>{var s;return null==(s=e.data[t])?void 0:s.loading},showBasicInfo:e=>e.ui.showInfo,selectDescription:e=>e.localState.description,selectRules:e=>e.localState.rules,selectLinks:e=>e.localState.links,selectLocations:e=>e.localState.locations}}).injectInto(B),J=[Ce.actions.requestChangePath,W,V.actions.subscribe,V.actions.unsubscribe,M.actions.showAuthBlock,{type:R},ye,H,he],Y=[{type:T},Ce.actions.setPath,At.actions.setDeviceType,V.actions.onMessage,fe,ge,m.actions.setError,m.actions.setIsError,m.actions.setPending,m.actions.setSuccess,m.actions.setData,m.actions.updateData,m.actions.updateUser,p.actions.addNotification,p.actions.markNotification,p.actions.setError,p.actions.setNotifications,p.actions.setPending,p.actions.setTotalCount,p.actions.setUnreadCount,p.actions.resetState,p.actions.undoNotitication,F.actions.setInfo,F.actions.setPending,F.actions.setError,ut.actions.setSettings,kt.actions.setSettings,k.actions.setData,k.actions.setLoading,k.actions.reset,k.actions.setShowBasicInfo];if(Y.find((e=>J.find((t=>(null==t?void 0:t.type)===(null==e?void 0:e.type))))))throw new Error("Output action is duplicated with input action");const Lt=()=>{const e=b().getState();return e.openapi&&(e.openapi=void 0),e.auth&&(e.auth={...e.auth,token:null}),e},Jt=e=>{const t=be({sendWhitelist:Y,receiveWhitelist:J,onMessage:e=>{we(e)||b().dispatch(e)}}),s=v((()=>{var t;const s={type:T,payload:Lt()};q({action:s,windowElement:(null==(t=e.current)?void 0:t.contentWindow)??null,whitelist:[s]})}),[e]),a=v((()=>{var a;t((null==(a=e.current)?void 0:a.contentWindow)??null),s()}),[t,e,s]);y((()=>{const e=z({onMessage:e=>{e.type===R&&a()},whitelist:[{type:R}]});return()=>e()}),[a])},X=()=>{const e=de();return e.pathname+e.search},vt=({lastLocationPathRef:e})=>{const t=x(),s=X(),a=S(d.selectors.selectPath),o=S(d.selectors.selectTransitionPath);y((()=>{s!==e.current&&(e.current=s,s!==a&&s!==o&&t(d.actions.requestChangePath(s)))}),[a,o,s])},Ct=({canShowMessage:e,message:t="Are you sure you want to leave?"})=>{const s=x(),a=S(d.selectors.selectPath),o=e=>(e.preventDefault(),e.returnValue=t,t);y((()=>(window.onbeforeunload=e?o:null,()=>{window.onbeforeunload=null})),[e,t]);const n=Ne(e),i="blocked"===n.state;y((()=>{i&&(confirm(t)?(n.proceed(),s(W(null))):(n.reset(),s(d.actions.requestChangePath(a))))}),[i])},Rt=()=>{const e=x(),t=S(d.selectors.selectPath),s=X();return{setPath:({transitionPath:a})=>{a&&s===a&&t!==a&&e(d.actions.setPath(a))}}},Tt=()=>{const e=ue(),t=de(),s=x(),a=w(""),o=S(d.selectors.selectPath),n=S(d.selectors.selectTransitionPath),{setPath:i}=Rt(),{shouldBlock:l,message:r}=S(d.selectors.selectConfirmLeavePage)||{};Ct({canShowMessage:!!l,message:r}),vt({lastLocationPathRef:a}),y((()=>{i({transitionPath:n})}),[t,o,n,s]),y((()=>{n&&n!==a.current&&(a.current=n,e(n,{replace:!1}))}),[n,e])},xt=ie((()=>(Tt(),null)));xt.displayName="HostRouteObserver";const Ut=e=>{const t=w(e),[s,a]=ce(null);return y((()=>{const e=z({onMessage:e=>{var s;if(e.type===T){const o=Te(e.payload);a(o),null==(s=t.current)||s.call(t,o)}},whitelist:[{type:T}]}),s={type:R};return q({action:s,windowElement:window.parent,whitelist:[s]}),()=>e()}),[]),{store:s}},$={[fe.type]:()=>_e(),[ge.type]:()=>Fe()},Nt=e=>Object.keys($).includes(e.type),_t=e=>Nt(e)&&e.type in $?$[e.type]():null,{path:Q,search:Ft}=ze.init();Q&&window.history.replaceState({},"",`${Q}${Ft||""}`);const Yt=()=>{const[e,t]=ce(null),s=be({sendWhitelist:J,receiveWhitelist:Y,onMessage:e=>{_t(e)||b().dispatch(e)}}),a=v((e=>{t(e),s(window.parent)}),[s]);return Ut(a),{store:e,path:Q}},Dt=()=>{const e=ue(),t=w(""),s=X(),a=S(d.selectors.selectPath);y((()=>{a&&a!==t.current&&(t.current=a,s!==a&&e(a,{replace:!0}))}),[a,e,s])},Ot=ie((()=>(Dt(),null)));Ot.displayName="RemoteRouteObserver";export{xt as HostRouteObserver,Ot as RemoteRouteObserver,we as callHostApiAction,_t as callRemoteApiAction,z as listenMessage,Lt as prepareState,q as sendMessage,ze as staticState,Jt as useHostStoreConnect,Ut as usePreloadedStore,Yt as useRemoteStoreConnect};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wellesley/host-remote",
3
- "version": "1.0.130",
3
+ "version": "1.0.132",
4
4
  "license": "UNLICENSED",
5
5
  "main": "index.mjs",
6
6
  "files": [