@wellesley/ws 1.0.65 → 1.0.74

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 +4 -4
  2. package/package.json +1 -1
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import G,{useEffect as b,useState as k,useRef as I}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{useSelector as w,useDispatch as x}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{createSelector as N,createSlice as C}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{rootReducer as q}from"https://cdn.jsdelivr.net/npm/@wellesley/store@1.0.137";import{userSlice as J,useCurrentUser as H}from"https://cdn.jsdelivr.net/npm/@wellesley/user@1.0.102";import{api as z,handleBasicResponse as h}from"https://cdn.jsdelivr.net/npm/@wellesley/openapi@1.0.136";import{getErrorMsg as m}from"https://cdn.jsdelivr.net/npm/@wellesley/error-kit@1.0.2";import{toast as f}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{notificationsSlice as A,isUndoNotification as Y,notify as K,NotificationBody as X}from"https://cdn.jsdelivr.net/npm/@wellesley/notifications@1.0.7";import{useProfileSettings as Z,UserKeysSettings as ee}from"https://cdn.jsdelivr.net/npm/@wellesley/settings@1.0.59";import{logErrorToSentry as te}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@1.0.9";import{authSlice as se}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@1.0.168";const ne=(e,t)=>Object.keys(t).reduce(((e,s)=>e.replace(`$${s}`,t[s])),e),re={messages:[],subscribers:[],unsubscribers:[]},P=e=>e,oe=N(P,(e=>e.subscribers)),ie=N(P,(e=>e.unsubscribers)),ae=N([P,(e,t)=>t],((e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>e===t))})),g=C({name:"ws",initialState:re,reducers:{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)]},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:{selectSubscribers:oe,selectUnSubscribers:ie,selectLastUpdateFor:ae}}).injectInto(q),ce=e=>`@${e.username}${e.domain?`@${e.domain}`:""}`,D={data:null,isError:!1,isPending:!1,isSuccess:!1},v=C({name:"user",initialState:D,reducers:{reset:e=>{Object.assign(e,D)},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},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)}}}),ue={data:null,isPending:!1,isSuccess:!1},S=C({name:"userNoHTML",initialState:ue,reducers:{setUser:(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:{selectUser:e=>e.data,selectPending:e=>e.isPending,selectError:e=>e.error,selectSuccess:e=>e.isSuccess}}),le=z.enhanceEndpoints({endpoints:{deleteApiV1UsersByUserIdDelete:{async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},getApiV1AccountsProfile:{providesTags:["Secure","Account"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){t(v.actions.setPending(!0));try{const e=await h(s);e&&t(v.actions.setData(e.data)),t(v.actions.setSuccess(!0))}catch(e){t(v.actions.setSuccess(!1)),t(v.actions.setIsError(!0)),t(v.actions.setError(e))}finally{t(v.actions.setPending(!1))}}},putApiV1UsersByUserId:{async onQueryStarted(e,{queryFulfilled:t}){await h(t,"User updated succesfully")}},getApiV1Users:{providesTags:["Secure","UserNoHtml"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){const r=!e.htmlContent;try{r&&t(S.actions.setPending(!0));const e=await h(s);r&&e&&(t(S.actions.setUser(e.data)),t(S.actions.setSuccess(!0)),t(S.actions.setPending(!1)))}catch(e){r&&(t(S.actions.setSuccess(!1)),t(S.actions.setError(e)),t(S.actions.setPending(!1))),f.error(m(e))}}},postApiV1Users:{invalidatesTags:["Account"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,f.success("User created successfully")}catch(e){const t=e;f.error(409===(null==t?void 0:t.status)?"Username already exists":m(t))}}},getApiV1UsersFollowers:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},getApiV1UsersFollowees:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},getApiV1UsersByUserIdFollowing:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},postApiV1UsersFollowByUsernameAccept:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,f.success(`Accepted follow request from ${e.username}`)}catch(e){f.error(m(e))}}},postApiV1UsersFollowByUsernameReject:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,f.success(`Rejected follow request from ${e.username}`)}catch(e){f.error(m(e))}}},postApiV1UsersFollowByUsername:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,f.success(`Follow request sent to ${e.username}`)}catch(e){f.error(m(e))}}},postApiV1UsersFollowByUsernameUndo:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,f.success(`You unfollowed ${e.username}`)}catch(e){f.error(m(e))}}},getApiV1Block:{providesTags:["Follow"]},postApiV1BlockByUserId:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},deleteApiV1BlockByUserId:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},deleteApiV1AccountsDelete:{},postApiV1MuteByUserId:{invalidatesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},deleteApiV1MuteByUserId:{invalidatesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},getApiV1Mute:{async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},getApiV1UsersRelationships:{providesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await h(t)}},putApiV1UsersByUserIdState:{invalidatesTags:["Secure"],async onQueryStarted(e,{queryFulfilled:t}){try{await h(t),f.success(`User ${e.userId} state changed to ${e.userState}`)}catch(e){f.error(m(e))}}},putApiV1Notes:{async onQueryStarted(e,{queryFulfilled:t}){try{await h(t),f.success("Note has been updated")}catch(e){f.error(m(e))}}},deleteApiV1NotesByUserId:{async onQueryStarted(e,{queryFulfilled:t}){try{await h(t),f.success("Note has been removed")}catch(e){f.error(m(e))}}}}}).injectEndpoints({endpoints:e=>({getInteractionUrl:e.query({query:e=>({url:e,headers:{Accept:"application/activity+json"}}),transformResponse:e=>"string"==typeof e?JSON.parse(e):e})})}),{useGetInteractionUrlQuery:Be,usePostApiV1UsersMutation:$e,useDeleteApiV1AccountsDeleteMutation:We,useGetApiV1AccountsProfileQuery:Ge,usePutApiV1UsersByUserIdMutation:qe,useGetApiV1UsersQuery:Je,useDeleteApiV1UsersByUserIdDeleteMutation:He,usePostApiV1MuteByUserIdMutation:ze,useDeleteApiV1MuteByUserIdMutation:Ye,useGetApiV1MuteQuery:Ke,usePutApiV1UsersByUserIdStateMutation:Xe,useGetApiV1UsersRelationshipsQuery:de,usePutApiV1NotesMutation:Ze,useDeleteApiV1NotesByUserIdMutation:et,useLazyGetApiV1UsersRelationshipsQuery:fe,useLazyGetApiV1GeoQuery:tt}=le,V=["following","followed","blocked","muted","note","blocked_by"],M=({userId:e,currentUserId:t})=>{const s="string"==typeof e,r=s?[e]:(null==e?void 0:e.filter((e=>e!==t)))||[],n=e===t;return{isSingleUser:s,canFetch:!(!r.length||n||!t),safeTargets:r}},pe=({userId:e})=>{const t=w(v.selectors.selectCurrentUser),s=null==t?void 0:t.id,{canFetch:r,isSingleUser:n,safeTargets:o}=M({userId:e,currentUserId:s}),{data:i,isLoading:a}=de({targets:o,filter:V},{skip:!r}),[c]=fe();return{relationship:(n?null==i?void 0:i[e]:i)||{},isLoading:a,updateRelations:({userId:e})=>{const{canFetch:t,safeTargets:r}=M({userId:e,currentUserId:s});t&&c({targets:r,filter:V})}}},st=({user:e,onUpdate:t})=>{const s=x(),{updateRelations:r}=pe({}),n=w(J.selectors.selectCurrentUser),o=(null==n?void 0:n.username)===(null==e?void 0:e.username),i=ne("user:$username",{username:e?ce(e).slice(1):""}),a=w((e=>g.selectors.selectLastUpdateFor(e,i)));b((()=>{if(null==e||!e.username)return;const t=!o;return s(g.actions.subscribe({id:i,topics:[i]})),t?()=>{s(g.actions.unsubscribe(i))}:void 0}),[null==e?void 0:e.username,o]),b((()=>{const e=null==a?void 0:a.data;e&&(!o&&r({userId:e.id}),t(e))}),[null==a?void 0:a.data,o])};var Q,F,L={exports:{}},U={};
1
+ import G,{useEffect as b,useState as I,useRef as k}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{useSelector as v,useDispatch as P}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{createSelector as A,createSlice as C}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{rootReducer as q}from"https://cdn.jsdelivr.net/npm/@wellesley/store@1.0.137";import{userSlice as J,useCurrentUser as H}from"https://cdn.jsdelivr.net/npm/@wellesley/user@1.0.109";import{api as z,handleBasicResponse as p}from"https://cdn.jsdelivr.net/npm/@wellesley/openapi@1.0.136";import{getErrorMsg as m}from"https://cdn.jsdelivr.net/npm/@wellesley/error-kit@1.0.2";import{toast as d}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{notificationsSlice as O,isUndoNotification as Y,notify as K,NotificationBody as X}from"https://cdn.jsdelivr.net/npm/@wellesley/notifications@1.0.9";import{useProfileSettings as Z,UserKeysSettings as ee}from"https://cdn.jsdelivr.net/npm/@wellesley/settings@1.0.59";import{logErrorToSentry as te}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@1.0.9";import{authSlice as se}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@1.0.168";const re=(e,t)=>Object.keys(t).reduce(((e,s)=>e.replace(`$${s}`,t[s])),e),ne={messages:[],subscribers:[],unsubscribers:[]},R=e=>e,oe=A(R,(e=>e.subscribers)),ie=A(R,(e=>e.unsubscribers)),ae=A(R,(e=>e.messages)),ce=A([R,(e,t)=>t],((e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>e===t))})),_=C({name:"ws",initialState:ne,reducers:{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)]},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:ae,selectSubscribers:oe,selectUnSubscribers:ie,selectLastUpdateFor:ce}}).injectInto(q),ue=e=>`@${e.username}${e.domain?`@${e.domain}`:""}`,V={data:null,isError:!1,isPending:!1,isSuccess:!1},w=C({name:"user",initialState:V,reducers:{reset:e=>{Object.assign(e,V)},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},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)}}}),le={data:null,isPending:!1,isSuccess:!1},S=C({name:"userNoHTML",initialState:le,reducers:{setUser:(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:{selectUser:e=>e.data,selectPending:e=>e.isPending,selectError:e=>e.error,selectSuccess:e=>e.isSuccess}}),de=z.enhanceEndpoints({endpoints:{deleteApiV1UsersByUserIdDelete:{async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1AccountsProfile:{providesTags:["Secure","Account"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){t(w.actions.setPending(!0));try{const e=await p(s);e&&t(w.actions.setData(e.data)),t(w.actions.setSuccess(!0))}catch(e){t(w.actions.setSuccess(!1)),t(w.actions.setIsError(!0)),t(w.actions.setError(e))}finally{t(w.actions.setPending(!1))}}},putApiV1UsersByUserId:{async onQueryStarted(e,{queryFulfilled:t}){await p(t,"User updated succesfully")}},getApiV1Users:{providesTags:["Secure","UserNoHtml"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){const r=!e.htmlContent;try{r&&t(S.actions.setPending(!0));const e=await p(s);r&&e&&(t(S.actions.setUser(e.data)),t(S.actions.setSuccess(!0)),t(S.actions.setPending(!1)))}catch(e){r&&(t(S.actions.setSuccess(!1)),t(S.actions.setError(e)),t(S.actions.setPending(!1))),d.error(m(e))}}},postApiV1Users:{invalidatesTags:["Account"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,d.success("User created successfully")}catch(e){const t=e;d.error(409===(null==t?void 0:t.status)?"Username already exists":m(t))}}},getApiV1UsersFollowers:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1UsersByUserIdFollowers:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1UsersFollowees:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1UsersByUserIdFollowing:{providesTags:["Follow"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},postApiV1UsersFollowByUsernameAccept:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,d.success(`Accepted follow request from ${e.username}`)}catch(e){d.error(m(e))}}},postApiV1UsersFollowByUsernameReject:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,d.success(`Rejected follow request from ${e.username}`)}catch(e){d.error(m(e))}}},postApiV1UsersFollowByUsername:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,d.success(`Follow request sent to ${e.username}`)}catch(e){d.error(m(e))}}},postApiV1UsersFollowByUsernameUndo:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,d.success(`You unfollowed ${e.username}`)}catch(e){d.error(m(e))}}},getApiV1Block:{providesTags:["Follow"]},postApiV1BlockByUserId:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},deleteApiV1BlockByUserId:{invalidatesTags:["Follow","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},deleteApiV1AccountsDelete:{},postApiV1MuteByUserId:{invalidatesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},deleteApiV1MuteByUserId:{invalidatesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1Mute:{async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1UsersRelationships:{providesTags:["Relationship"],async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},putApiV1UsersByUserIdState:{invalidatesTags:["Secure"],async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),d.success(`User ${e.userId} state changed to ${e.userState}`)}catch(e){d.error(m(e))}}},putApiV1Notes:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),d.success("Note has been updated")}catch(e){d.error(m(e))}}},deleteApiV1NotesByUserId:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),d.success("Note has been removed")}catch(e){d.error(m(e))}}},postApiV1UsersFollowByUsernamePend:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),d.success(`${e.username} has been removed from followers`)}catch(e){d.error(m(e))}}}}}).injectEndpoints({endpoints:e=>({getInteractionUrl:e.query({query:e=>({url:e,headers:{Accept:"application/activity+json"}}),transformResponse:e=>"string"==typeof e?JSON.parse(e):e})})}),{useGetInteractionUrlQuery:We,usePostApiV1UsersMutation:Ge,useDeleteApiV1AccountsDeleteMutation:qe,useGetApiV1AccountsProfileQuery:Je,usePutApiV1UsersByUserIdMutation:He,useGetApiV1UsersQuery:ze,useDeleteApiV1UsersByUserIdDeleteMutation:Ye,usePostApiV1MuteByUserIdMutation:Ke,useDeleteApiV1MuteByUserIdMutation:Xe,useGetApiV1MuteQuery:Ze,usePutApiV1UsersByUserIdStateMutation:et,useGetApiV1UsersRelationshipsQuery:fe,usePutApiV1NotesMutation:tt,useDeleteApiV1NotesByUserIdMutation:st,useLazyGetApiV1UsersRelationshipsQuery:pe,useLazyGetApiV1GeoQuery:rt,useGetApiV1UsersFollowersQuery:nt,useGetApiV1UsersByUserIdFollowersQuery:ot,usePostApiV1UsersFollowByUsernameMutation:it,usePostApiV1UsersFollowByUsernameUndoMutation:at,usePostApiV1UsersFollowByUsernameRejectMutation:ct,usePostApiV1UsersFollowByUsernameAcceptMutation:ut}=de,F=["following","followed","blocked","muted","note","blocked_by"],D=({userId:e,currentUserId:t})=>{const s="string"==typeof e,r=s?[e]:(null==e?void 0:e.filter((e=>e!==t)))||[],n=e===t;return{isSingleUser:s,canFetch:!(!r.length||n||!t),safeTargets:r}},he=({userId:e})=>{const t=v(w.selectors.selectCurrentUser),s=null==t?void 0:t.id,{canFetch:r,isSingleUser:n,safeTargets:o}=D({userId:e,currentUserId:s}),{data:i,isLoading:a}=fe({targets:o,filter:F},{skip:!r}),[c]=pe();return{relationship:(n?null==i?void 0:i[e]:i)||{},isLoading:a,updateRelations:({userId:e})=>{const{canFetch:t,safeTargets:r}=D({userId:e,currentUserId:s});t&&c({targets:r,filter:F})}}},lt=({user:e,onUpdate:t})=>{const s=P(),{updateRelations:r}=he({}),n=v(J.selectors.selectCurrentUser),o=(null==n?void 0:n.username)===(null==e?void 0:e.username),i=re("user:$username",{username:e?ue(e).slice(1):""}),a=v((e=>_.selectors.selectLastUpdateFor(e,i)));b((()=>{if(null==e||!e.username)return;const t=!o;return s(_.actions.subscribe({id:i,topics:[i]})),t?()=>{s(_.actions.unsubscribe(i))}:void 0}),[null==e?void 0:e.username,o]),b((()=>{const e=null==a?void 0:a.data;e&&(!o&&r({userId:e.id}),t(e))}),[null==a?void 0:a.data,o])};var M,B,x={exports:{}},E={};
2
2
  /**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.min.js
@@ -7,7 +7,7 @@ import G,{useEffect as b,useState as k,useRef as I}from"https://cdn.jsdelivr.net
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */function he(){if(Q)return U;Q=1;var e=G,t=Symbol.for("react.element"),s=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function i(e,s,i){var a,c={},u=null,l=null;for(a in void 0!==i&&(u=""+i),void 0!==s.key&&(u=""+s.key),void 0!==s.ref&&(l=s.ref),s)r.call(s,a)&&!o.hasOwnProperty(a)&&(c[a]=s[a]);if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===c[a]&&(c[a]=s[a]);return{$$typeof:t,type:e,key:u,ref:l,props:c,_owner:n.current}}return U.Fragment=s,U.jsx=i,U.jsxs=i,U}function ye(){return F||(F=1,L.exports=he()),L.exports}var _e=ye();const j="notification",ge=e=>"true"===e,nt=()=>{const e=x(),t=Z(),s=ge(null==t?void 0:t.notifications.stranger[ee.notificationsShowPopup].value),r=w(A.selectors.selectNotifications),{user:n}=H(),o=`${j}:${null==n?void 0:n.id}`,i=w((e=>g.selectors.selectLastUpdateFor(e,o)));b((()=>{if(null!=n&&n.id)return e(g.actions.subscribe({id:o,topics:[j]})),()=>{e(g.actions.unsubscribe(o))}}),[null==n?void 0:n.id]),b((()=>{null!=i&&i.data&&(Y(i)?e(A.actions.undoNotitication(i.data)):"LIKE"===(null==i?void 0:i.data.type)&&null!=r&&r.find((e=>{var t,s;return e.activityId===(null==i?void 0:i.data.activityId)&&(null==(t=e.fromUser)?void 0:t.id)===(null==(s=i.data.fromUser)?void 0:s.id)}))||null!=r&&r.find((e=>e.id===i.data.id))||(e(A.actions.addNotification(i.data)),s&&K(_e.jsx(X,{notification:i.data,isPopup:!0}),{})))}),[null==i?void 0:i.data,s])},me=()=>"object"!=typeof window,B=["debug","info","warn","error"],be=(e,t)=>{const s=B.indexOf(e);return B.indexOf(t)>=s},T=(e,t,s,...r)=>{be(t,e)&&console.log(`[${e}] ${s}`,...r)},ve=(e=!me()&&(null==window?void 0:window.localStorage.getItem("logger_lvl"))||"warn")=>{let t=e;return{debug:(e,...s)=>T("debug",t,e,...s),info:(e,...s)=>T("info",t,e,...s),warn:(e,...s)=>T("warn",t,e,...s),error:(e,...s)=>(te(e,...s),T("error",t,e,...s)),setLevel:e=>{t=e},getLevel:()=>t}},_=ve(),we=e=>{switch(e.code){case 1e3:return"Normal closure, meaning that the purpose for which the connection was established has been fulfilled.";case 1001:return"An endpoint is 'going away', such as a server going down or a browser having navigated away from a page.";case 1002:return"An endpoint is terminating the connection due to a protocol error.";case 1003:return"An endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).";case 1004:return"Reserved. The specific meaning might be defined in the future.";case 1005:return"No status code was actually present.";case 1006:return"The connection was closed abnormally, e.g., without sending or receiving a Close control frame.";case 1007:return"An endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 data within a text message).";case 1008:return"An endpoint is terminating the connection because it has received a message that 'violates its policy'. This reason is given either if there is no other suitable reason, or if there is a need to hide specific details about the policy.";case 1009:return"An endpoint is terminating the connection because it has received a message that is too big for it to process.";case 1010:return`An endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. Specifically, the extensions that are needed are: ${e.reason}`;case 1011:return"A server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.";case 1015:return"The connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).";default:return"Unknown reason."}};
10
+ */function ye(){if(M)return E;M=1;var e=G,t=Symbol.for("react.element"),s=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function i(e,s,i){var a,c={},u=null,l=null;for(a in void 0!==i&&(u=""+i),void 0!==s.key&&(u=""+s.key),void 0!==s.ref&&(l=s.ref),s)r.call(s,a)&&!o.hasOwnProperty(a)&&(c[a]=s[a]);if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===c[a]&&(c[a]=s[a]);return{$$typeof:t,type:e,key:u,ref:l,props:c,_owner:n.current}}return E.Fragment=s,E.jsx=i,E.jsxs=i,E}function ge(){return B||(B=1,x.exports=ye()),x.exports}var me=ge();const Q="notification",_e=e=>"true"===e,dt=()=>{const e=P(),t=Z(),s=_e(null==t?void 0:t.notifications.stranger[ee.notificationsShowPopup].value),r=v(O.selectors.selectNotifications),{user:n}=H(),o=`${Q}:${null==n?void 0:n.id}`,i=v((e=>_.selectors.selectLastUpdateFor(e,o)));b((()=>{if(null!=n&&n.id)return e(_.actions.subscribe({id:o,topics:[Q]})),()=>{e(_.actions.unsubscribe(o))}}),[null==n?void 0:n.id]),b((()=>{null!=i&&i.data&&(Y(i)?e(O.actions.undoNotitication(i.data)):"LIKE"===(null==i?void 0:i.data.type)&&null!=r&&r.find((e=>{var t,s;return e.activityId===(null==i?void 0:i.data.activityId)&&(null==(t=e.fromUser)?void 0:t.id)===(null==(s=i.data.fromUser)?void 0:s.id)}))||null!=r&&r.find((e=>e.id===i.data.id))||(e(O.actions.addNotification(i.data)),s&&K(me.jsx(X,{notification:i.data,isPopup:!0}),{})))}),[null==i?void 0:i.data,s])},be=()=>"object"!=typeof window,j=["debug","info","warn","error"],we=(e,t)=>{const s=j.indexOf(e);return j.indexOf(t)>=s},T=(e,t,s,...r)=>{we(t,e)&&console.log(`[${e}] ${s}`,...r)},ve=()=>null==window?void 0:window.localStorage.getItem("logger_lvl"),Se=(e=!be()&&ve()||"warn")=>{let t=e;return{debug:(e,...s)=>T("debug",t,e,...s),info:(e,...s)=>T("info",t,e,...s),warn:(e,...s)=>T("warn",t,e,...s),error:(e,...s)=>(te(e,...s),T("error",t,e,...s)),setLevel:e=>{t=e},getLevel:()=>t}},g=Se(),Ue=e=>{switch(e.code){case 1e3:return"Normal closure, meaning that the purpose for which the connection was established has been fulfilled.";case 1001:return"An endpoint is 'going away', such as a server going down or a browser having navigated away from a page.";case 1002:return"An endpoint is terminating the connection due to a protocol error.";case 1003:return"An endpoint is terminating the connection because it has received a type of data it cannot accept (e.g., an endpoint that understands only text data MAY send this if it receives a binary message).";case 1004:return"Reserved. The specific meaning might be defined in the future.";case 1005:return"No status code was actually present.";case 1006:return"The connection was closed abnormally, e.g., without sending or receiving a Close control frame.";case 1007:return"An endpoint is terminating the connection because it has received data within a message that was not consistent with the type of the message (e.g., non-UTF-8 data within a text message).";case 1008:return"An endpoint is terminating the connection because it has received a message that 'violates its policy'. This reason is given either if there is no other suitable reason, or if there is a need to hide specific details about the policy.";case 1009:return"An endpoint is terminating the connection because it has received a message that is too big for it to process.";case 1010:return`An endpoint (client) is terminating the connection because it has expected the server to negotiate one or more extension, but the server didn't return them in the response message of the WebSocket handshake. Specifically, the extensions that are needed are: ${e.reason}`;case 1011:return"A server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.";case 1015:return"The connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).";default:return"Unknown reason."}};
11
11
  /*! *****************************************************************************
12
12
  Copyright (c) Microsoft Corporation. All rights reserved.
13
13
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -21,10 +21,10 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
21
21
 
22
22
  See the Apache Version 2.0 License for specific language governing permissions
23
23
  and limitations under the License.
24
- ***************************************************************************** */var O=function(e,t){return(O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var s in t)t.hasOwnProperty(s)&&(e[s]=t[s])})(e,t)};function $(e,t){function s(){this.constructor=e}O(e,t),e.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}function Se(e){var t="function"==typeof Symbol&&e[Symbol.iterator],s=0;return t?t.call(e):{next:function(){return e&&s>=e.length&&(e=void 0),{value:e&&e[s++],done:!e}}}}function Ee(e,t){var s="function"==typeof Symbol&&e[Symbol.iterator];if(!s)return e;var r,n,o=s.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(s=o.return)&&s.call(o)}finally{if(n)throw n.error}}return i}function Ue(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Ee(arguments[t]));return e}var W=function(){return function(e,t){this.target=t,this.type=e}}(),Te=function(e){function t(t,s){var r=e.call(this,"error",s)||this;return r.message=t.message,r.error=t,r}return $(t,e),t}(W),Re=function(e){function t(t,s,r){void 0===t&&(t=1e3),void 0===s&&(s="");var n=e.call(this,"close",r)||this;return n.wasClean=!0,n.code=t,n.reason=s,n}return $(t,e),t}(W),Ae=function(){if(typeof WebSocket<"u")return WebSocket},Le=function(e){return typeof e<"u"&&!!e&&2===e.CLOSING},E={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+4e3*Math.random(),minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0,startClosed:!1,debug:!1},Oe=function(){function e(e,t,s){var r=this;void 0===s&&(s={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(e){r._debug("open event");var t=r._options.minUptime,s=void 0===t?E.minUptime:t;clearTimeout(r._connectTimeout),r._uptimeTimeout=setTimeout((function(){return r._acceptOpen()}),s),r._ws.binaryType=r._binaryType,r._messageQueue.forEach((function(e){return r._ws.send(e)})),r._messageQueue=[],r.onopen&&r.onopen(e),r._listeners.open.forEach((function(t){return r._callEventListener(e,t)}))},this._handleMessage=function(e){r._debug("message event"),r.onmessage&&r.onmessage(e),r._listeners.message.forEach((function(t){return r._callEventListener(e,t)}))},this._handleError=function(e){r._debug("error event",e.message),r._disconnect(void 0,"TIMEOUT"===e.message?"timeout":void 0),r.onerror&&r.onerror(e),r._debug("exec error listeners"),r._listeners.error.forEach((function(t){return r._callEventListener(e,t)})),r._connect()},this._handleClose=function(e){r._debug("close event"),r._clearTimeouts(),r._shouldReconnect&&r._connect(),r.onclose&&r.onclose(e),r._listeners.close.forEach((function(t){return r._callEventListener(e,t)}))},this._url=e,this._protocols=t,this._options=s,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(e,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CONNECTING",{get:function(){return e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"OPEN",{get:function(){return e.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSING",{get:function(){return e.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSED",{get:function(){return e.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferedAmount",{get:function(){return this._messageQueue.reduce((function(e,t){return"string"==typeof t?e+=t.length:t instanceof Blob?e+=t.size:e+=t.byteLength,e}),0)+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?e.CLOSED:e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),e.prototype.close=function(e,t){void 0===e&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),this._ws?this._ws.readyState!==this.CLOSED?this._ws.close(e,t):this._debug("close: already closed"):this._debug("close enqueued: no ws instance")},e.prototype.reconnect=function(e,t){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,this._ws&&this._ws.readyState!==this.CLOSED?(this._disconnect(e,t),this._connect()):this._connect()},e.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var t=this._options.maxEnqueuedMessages,s=void 0===t?E.maxEnqueuedMessages:t;this._messageQueue.length<s&&(this._debug("enqueue",e),this._messageQueue.push(e))}},e.prototype.addEventListener=function(e,t){this._listeners[e]&&this._listeners[e].push(t)},e.prototype.dispatchEvent=function(e){var t,s,r=this._listeners[e.type];if(r)try{for(var n=Se(r),o=n.next();!o.done;o=n.next()){var i=o.value;this._callEventListener(e,i)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(s=n.return)&&s.call(n)}finally{if(t)throw t.error}}return!0},e.prototype.removeEventListener=function(e,t){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter((function(e){return e!==t})))},e.prototype._debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._options.debug&&console.log.apply(console,Ue(["RWS>"],e))},e.prototype._getNextDelay=function(){var e=this._options,t=e.reconnectionDelayGrowFactor,s=void 0===t?E.reconnectionDelayGrowFactor:t,r=e.minReconnectionDelay,n=void 0===r?E.minReconnectionDelay:r,o=e.maxReconnectionDelay,i=void 0===o?E.maxReconnectionDelay:o,a=0;return this._retryCount>0&&((a=n*Math.pow(s,this._retryCount-1))>i&&(a=i)),this._debug("next delay",a),a},e.prototype._wait=function(){var e=this;return new Promise((function(t){setTimeout(t,e._getNextDelay())}))},e.prototype._getNextUrl=function(e){if("string"==typeof e)return Promise.resolve(e);if("function"==typeof e){var t=e();if("string"==typeof t)return Promise.resolve(t);if(t.then)return t}throw Error("Invalid URL")},e.prototype._connect=function(){var e=this;if(!this._connectLock&&this._shouldReconnect){this._connectLock=!0;var t=this._options,s=t.maxRetries,r=void 0===s?E.maxRetries:s,n=t.connectionTimeout,o=void 0===n?E.connectionTimeout:n,i=t.WebSocket,a=void 0===i?Ae():i;if(this._retryCount>=r)return void this._debug("max retries reached",this._retryCount,">=",r);if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),!Le(a))throw Error("No valid WebSocket class provided");this._wait().then((function(){return e._getNextUrl(e._url)})).then((function(t){e._closeCalled||(e._debug("connect",{url:t,protocols:e._protocols}),e._ws=e._protocols?new a(t,e._protocols):new a(t),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout((function(){return e._handleTimeout()}),o))}))}},e.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new Te(Error("TIMEOUT"),this))},e.prototype._disconnect=function(e,t){if(void 0===e&&(e=1e3),this._clearTimeouts(),this._ws){this._removeListeners();try{this._ws.close(e,t),this._handleClose(new Re(e,t,this))}catch{}}},e.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},e.prototype._callEventListener=function(e,t){"handleEvent"in t?t.handleEvent(e):t(e)},e.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},e.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},e.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},e}();
24
+ ***************************************************************************** */var N=function(e,t){return(N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var s in t)t.hasOwnProperty(s)&&(e[s]=t[s])})(e,t)};function $(e,t){function s(){this.constructor=e}N(e,t),e.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}function Ee(e){var t="function"==typeof Symbol&&e[Symbol.iterator],s=0;return t?t.call(e):{next:function(){return e&&s>=e.length&&(e=void 0),{value:e&&e[s++],done:!e}}}}function Te(e,t){var s="function"==typeof Symbol&&e[Symbol.iterator];if(!s)return e;var r,n,o=s.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(s=o.return)&&s.call(o)}finally{if(n)throw n.error}}return i}function Ae(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Te(arguments[t]));return e}var W=function(){return function(e,t){this.target=t,this.type=e}}(),Re=function(e){function t(t,s){var r=e.call(this,"error",s)||this;return r.message=t.message,r.error=t,r}return $(t,e),t}(W),Le=function(e){function t(t,s,r){void 0===t&&(t=1e3),void 0===s&&(s="");var n=e.call(this,"close",r)||this;return n.wasClean=!0,n.code=t,n.reason=s,n}return $(t,e),t}(W),Oe=function(){if(typeof WebSocket<"u")return WebSocket},xe=function(e){return typeof e<"u"&&!!e&&2===e.CLOSING},U={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+4e3*Math.random(),minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0,startClosed:!1,debug:!1},Ne=function(){function e(e,t,s){var r=this;void 0===s&&(s={}),this._listeners={error:[],message:[],open:[],close:[]},this._retryCount=-1,this._shouldReconnect=!0,this._connectLock=!1,this._binaryType="blob",this._closeCalled=!1,this._messageQueue=[],this.onclose=null,this.onerror=null,this.onmessage=null,this.onopen=null,this._handleOpen=function(e){r._debug("open event");var t=r._options.minUptime,s=void 0===t?U.minUptime:t;clearTimeout(r._connectTimeout),r._uptimeTimeout=setTimeout((function(){return r._acceptOpen()}),s),r._ws.binaryType=r._binaryType,r._messageQueue.forEach((function(e){return r._ws.send(e)})),r._messageQueue=[],r.onopen&&r.onopen(e),r._listeners.open.forEach((function(t){return r._callEventListener(e,t)}))},this._handleMessage=function(e){r._debug("message event"),r.onmessage&&r.onmessage(e),r._listeners.message.forEach((function(t){return r._callEventListener(e,t)}))},this._handleError=function(e){r._debug("error event",e.message),r._disconnect(void 0,"TIMEOUT"===e.message?"timeout":void 0),r.onerror&&r.onerror(e),r._debug("exec error listeners"),r._listeners.error.forEach((function(t){return r._callEventListener(e,t)})),r._connect()},this._handleClose=function(e){r._debug("close event"),r._clearTimeouts(),r._shouldReconnect&&r._connect(),r.onclose&&r.onclose(e),r._listeners.close.forEach((function(t){return r._callEventListener(e,t)}))},this._url=e,this._protocols=t,this._options=s,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}return Object.defineProperty(e,"CONNECTING",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e,"OPEN",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSING",{get:function(){return 2},enumerable:!0,configurable:!0}),Object.defineProperty(e,"CLOSED",{get:function(){return 3},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CONNECTING",{get:function(){return e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"OPEN",{get:function(){return e.OPEN},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSING",{get:function(){return e.CLOSING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"CLOSED",{get:function(){return e.CLOSED},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryType",{get:function(){return this._ws?this._ws.binaryType:this._binaryType},set:function(e){this._binaryType=e,this._ws&&(this._ws.binaryType=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"retryCount",{get:function(){return Math.max(this._retryCount,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bufferedAmount",{get:function(){return this._messageQueue.reduce((function(e,t){return"string"==typeof t?e+=t.length:t instanceof Blob?e+=t.size:e+=t.byteLength,e}),0)+(this._ws?this._ws.bufferedAmount:0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"extensions",{get:function(){return this._ws?this._ws.extensions:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"protocol",{get:function(){return this._ws?this._ws.protocol:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readyState",{get:function(){return this._ws?this._ws.readyState:this._options.startClosed?e.CLOSED:e.CONNECTING},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._ws?this._ws.url:""},enumerable:!0,configurable:!0}),e.prototype.close=function(e,t){void 0===e&&(e=1e3),this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),this._ws?this._ws.readyState!==this.CLOSED?this._ws.close(e,t):this._debug("close: already closed"):this._debug("close enqueued: no ws instance")},e.prototype.reconnect=function(e,t){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,this._ws&&this._ws.readyState!==this.CLOSED?(this._disconnect(e,t),this._connect()):this._connect()},e.prototype.send=function(e){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",e),this._ws.send(e);else{var t=this._options.maxEnqueuedMessages,s=void 0===t?U.maxEnqueuedMessages:t;this._messageQueue.length<s&&(this._debug("enqueue",e),this._messageQueue.push(e))}},e.prototype.addEventListener=function(e,t){this._listeners[e]&&this._listeners[e].push(t)},e.prototype.dispatchEvent=function(e){var t,s,r=this._listeners[e.type];if(r)try{for(var n=Ee(r),o=n.next();!o.done;o=n.next()){var i=o.value;this._callEventListener(e,i)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(s=n.return)&&s.call(n)}finally{if(t)throw t.error}}return!0},e.prototype.removeEventListener=function(e,t){this._listeners[e]&&(this._listeners[e]=this._listeners[e].filter((function(e){return e!==t})))},e.prototype._debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._options.debug&&console.log.apply(console,Ae(["RWS>"],e))},e.prototype._getNextDelay=function(){var e=this._options,t=e.reconnectionDelayGrowFactor,s=void 0===t?U.reconnectionDelayGrowFactor:t,r=e.minReconnectionDelay,n=void 0===r?U.minReconnectionDelay:r,o=e.maxReconnectionDelay,i=void 0===o?U.maxReconnectionDelay:o,a=0;return this._retryCount>0&&((a=n*Math.pow(s,this._retryCount-1))>i&&(a=i)),this._debug("next delay",a),a},e.prototype._wait=function(){var e=this;return new Promise((function(t){setTimeout(t,e._getNextDelay())}))},e.prototype._getNextUrl=function(e){if("string"==typeof e)return Promise.resolve(e);if("function"==typeof e){var t=e();if("string"==typeof t)return Promise.resolve(t);if(t.then)return t}throw Error("Invalid URL")},e.prototype._connect=function(){var e=this;if(!this._connectLock&&this._shouldReconnect){this._connectLock=!0;var t=this._options,s=t.maxRetries,r=void 0===s?U.maxRetries:s,n=t.connectionTimeout,o=void 0===n?U.connectionTimeout:n,i=t.WebSocket,a=void 0===i?Oe():i;if(this._retryCount>=r)return void this._debug("max retries reached",this._retryCount,">=",r);if(this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),!xe(a))throw Error("No valid WebSocket class provided");this._wait().then((function(){return e._getNextUrl(e._url)})).then((function(t){e._closeCalled||(e._debug("connect",{url:t,protocols:e._protocols}),e._ws=e._protocols?new a(t,e._protocols):new a(t),e._ws.binaryType=e._binaryType,e._connectLock=!1,e._addListeners(),e._connectTimeout=setTimeout((function(){return e._handleTimeout()}),o))}))}},e.prototype._handleTimeout=function(){this._debug("timeout event"),this._handleError(new Re(Error("TIMEOUT"),this))},e.prototype._disconnect=function(e,t){if(void 0===e&&(e=1e3),this._clearTimeouts(),this._ws){this._removeListeners();try{this._ws.close(e,t),this._handleClose(new Le(e,t,this))}catch{}}},e.prototype._acceptOpen=function(){this._debug("accept open"),this._retryCount=0},e.prototype._callEventListener=function(e,t){"handleEvent"in t?t.handleEvent(e):t(e)},e.prototype._removeListeners=function(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))},e.prototype._addListeners=function(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))},e.prototype._clearTimeouts=function(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)},e}();
25
25
  /*!
26
26
  * Reconnecting WebSocket
27
27
  * by Pedro Ladaria <pedro.ladaria@gmail.com>
28
28
  * https://github.com/pladaria/reconnecting-websocket
29
29
  * License MIT
30
- */const rt=()=>{const e=x(),t=w(se.selectors.selectToken),s=w(g.selectors.selectSubscribers),r=w(g.selectors.selectUnSubscribers),[n,o]=k(null),[i,a]=k(!1),c=I(null);c.current=n;const u=I([]);b((()=>{(()=>{const e=location.hostname,s=new Oe(`wss://${e}/api/v1/streaming${t?`?access_token=${t}`:""}`);o(s)})()}),[t]),b((()=>{n&&(n.onopen=()=>{a(!0),_.info("Connected to WebSocket server")},n.onmessage=t=>{_.debug("WebSocket receive message: ",JSON.parse(t.data));try{e(g.actions.onMessage(JSON.parse(t.data)))}catch(e){_.error("WebSocket:onmessage:parse: ",e)}},n.onclose=e=>{a(!1),_.info("Disconnected from WebSocket server:",we(e))},n.onerror=e=>{a(!1),_.error("WebSocket error:",e)})}),[n]),b((()=>()=>{var e,t,s;if((null==(e=c.current)?void 0:e.readyState)===(null==(t=c.current)?void 0:t.OPEN))try{null==(s=c.current)||s.close()}catch(e){_.error("WebSocket error when close: ",e)}}),[]),b((()=>{if(i){const e=s.filter((e=>!u.current.includes(e)));_.debug("WebSocket subscribers list: ",s),e.forEach((e=>{var t;try{null==(t=c.current)||t.send(JSON.stringify({type:"SUBSCRIBE",topics:e.topics})),_.debug("WebSocket subscibed to: ",e),u.current.push(e)}catch(e){_.error("WebSocket error when send: ",e)}}))}}),[i,s,u.current]),b((()=>{r.forEach((t=>{var s;try{null==(s=c.current)||s.send(JSON.stringify({type:"UNSUBSCRIBE",topics:t.topics})),_.debug("WebSocket unsubscribed from: ",t),e(g.actions.onUnsubscribe(t.id))}catch(e){_.error("WebSocket error when send: ",e)}}))}),[r])};export{ne as fillTopic,nt as useNotifications,st as useUserUpdate,rt as useWebSocket,g as wsSlice};
30
+ */const ft=()=>{const e=P(),t=v(se.selectors.selectToken),s=v(_.selectors.selectSubscribers),r=v(_.selectors.selectUnSubscribers),[n,o]=I(null),[i,a]=I(!1),c=k(null);c.current=n;const u=k([]);b((()=>{(()=>{const e=location.hostname,s=new Ne(`wss://${e}/api/v1/streaming${t?`?access_token=${t}`:""}`);o(s)})()}),[t]),b((()=>{n&&(n.onopen=()=>{a(!0),g.info("Connected to WebSocket server")},n.onmessage=t=>{g.debug("WebSocket receive message: ",JSON.parse(t.data));try{e(_.actions.onMessage({...JSON.parse(t.data),date:new Date}))}catch(e){g.error("WebSocket:onmessage:parse: ",e)}},n.onclose=e=>{a(!1),g.info("Disconnected from WebSocket server:",Ue(e))},n.onerror=e=>{a(!1),g.error("WebSocket error:",e)})}),[n]),b((()=>()=>{var e,t,s;if((null==(e=c.current)?void 0:e.readyState)===(null==(t=c.current)?void 0:t.OPEN))try{null==(s=c.current)||s.close()}catch(e){g.error("WebSocket error when close: ",e)}}),[]),b((()=>{if(i){const e=s.filter((e=>!u.current.includes(e)));g.debug("WebSocket subscribers list: ",s),e.forEach((e=>{var t;try{null==(t=c.current)||t.send(JSON.stringify({type:"SUBSCRIBE",topics:e.topics})),g.debug("WebSocket subscibed to: ",e),u.current.push(e)}catch(e){g.error("WebSocket error when send: ",e)}}))}}),[i,s,u.current]),b((()=>{r.forEach((t=>{var s;try{null==(s=c.current)||s.send(JSON.stringify({type:"UNSUBSCRIBE",topics:t.topics})),g.debug("WebSocket unsubscribed from: ",t),e(_.actions.onUnsubscribe(t.id))}catch(e){g.error("WebSocket error when send: ",e)}}))}),[r])};export{re as fillTopic,dt as useNotifications,lt as useUserUpdate,ft as useWebSocket,_ as wsSlice};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.65",
2
+ "version": "1.0.74",
3
3
  "name": "@wellesley/ws",
4
4
  "license": "UNLICENSED",
5
5
  "main": "index.mjs",