@wellesley/ws 1.0.87 → 1.0.91

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,4 +1,4 @@
1
- import J,{useEffect as w,useState as k,useRef as V}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{useSelector as S,useDispatch as C}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{createSelector as R,createSlice as I}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{rootReducer as H}from"https://cdn.jsdelivr.net/npm/@wellesley/store@1.0.138";import{userSlice as z,useCurrentUser as Y}from"https://cdn.jsdelivr.net/npm/@wellesley/user@1.0.114";import{api as K,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 l}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{notificationsSlice as x,isUndoNotification as X,notify as Z,NotificationBody as ee}from"https://cdn.jsdelivr.net/npm/@wellesley/notifications@1.0.9";import{useProfileSettings as te,UserKeysSettings as se}from"https://cdn.jsdelivr.net/npm/@wellesley/settings@1.0.59";import{logErrorToSentry as re}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@1.0.9";import{authSlice as ne}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@1.0.168";const oe=(e,t)=>Object.keys(t).reduce(((e,s)=>e.replace(`$${s}`,t[s])),e),F={messages:[],subscribers:[],unsubscribers:[]},L=e=>e,ie=R(L,(e=>e.subscribers)),ae=R(L,(e=>e.unsubscribers)),ce=R(L,(e=>e.messages)),ue=R([L,(e,t)=>t],((e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>e===t))})),_=I({name:"ws",initialState:F,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)]},cleanMessages:e=>{e.messages=F.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:ce,selectSubscribers:ie,selectUnSubscribers:ae,selectLastUpdateFor:ue}}).injectInto(H),le=e=>`@${e.username}${e.domain?`@${e.domain}`:""}`,M={data:null,isError:!1,isPending:!1,isSuccess:!1},v=I({name:"user",initialState:M,reducers:{reset:e=>{Object.assign(e,M)},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)}}}),de={data:null,isPending:!1,isSuccess:!1},U=I({name:"userNoHTML",initialState:de,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}}),fe=K.enhanceEndpoints({endpoints:{deleteApiV1UsersByUserIdDelete:{async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1AccountsProfile:{providesTags:["Secure","Account"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){t(v.actions.setPending(!0));try{const e=await p(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 p(t,"User updated succesfully")}},getApiV1Users:{providesTags:["Secure","UserNoHtml"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){const r=!e.htmlContent;try{r&&t(U.actions.setPending(!0));const e=await p(s);r&&e&&(t(U.actions.setUser(e.data)),t(U.actions.setSuccess(!0)),t(U.actions.setPending(!1)))}catch(e){r&&(t(U.actions.setSuccess(!1)),t(U.actions.setError(e)),t(U.actions.setPending(!1))),l.error(m(e))}}},postApiV1Users:{invalidatesTags:["Account"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success("User created successfully")}catch(e){const t=e;l.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,l.success(`Accepted follow request from ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernameReject:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`Rejected follow request from ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsername:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`Follow request sent to ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernameUndo:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`You unfollowed ${e.username}`)}catch(e){l.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),l.success(`User ${e.userId} state changed to ${e.userState}`)}catch(e){l.error(m(e))}}},putApiV1Notes:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success("Note has been updated")}catch(e){l.error(m(e))}}},deleteApiV1NotesByUserId:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success("Note has been removed")}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernamePend:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success(`${e.username} has been removed from followers`)}catch(e){l.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:Ge,usePostApiV1UsersMutation:qe,useDeleteApiV1AccountsDeleteMutation:Je,useGetApiV1AccountsProfileQuery:He,usePutApiV1UsersByUserIdMutation:ze,useGetApiV1UsersQuery:Ye,useDeleteApiV1UsersByUserIdDeleteMutation:Ke,usePostApiV1MuteByUserIdMutation:Xe,useDeleteApiV1MuteByUserIdMutation:Ze,useGetApiV1MuteQuery:et,usePutApiV1UsersByUserIdStateMutation:tt,useGetApiV1UsersRelationshipsQuery:pe,usePutApiV1NotesMutation:st,useDeleteApiV1NotesByUserIdMutation:rt,useLazyGetApiV1UsersRelationshipsQuery:he,useLazyGetApiV1GeoQuery:nt,useGetApiV1UsersFollowersQuery:ot,useGetApiV1UsersByUserIdFollowersQuery:it,usePostApiV1UsersFollowByUsernameMutation:at,usePostApiV1UsersFollowByUsernameUndoMutation:ct,usePostApiV1UsersFollowByUsernameRejectMutation:ut,usePostApiV1UsersFollowByUsernameAcceptMutation:lt}=fe,D=["following","followed","blocked","muted","note","blocked_by"],B=({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}},ye=({userId:e})=>{const t=S(v.selectors.selectCurrentUser),s=null==t?void 0:t.id,{canFetch:r,isSingleUser:n,safeTargets:o}=B({userId:e,currentUserId:s}),{data:i,isLoading:a}=pe({targets:o,filter:D},{skip:!r}),[c]=he();return{relationship:(n?null==i?void 0:i[e]:i)||{},isLoading:a,updateRelations:({userId:e})=>{const{canFetch:t,safeTargets:r}=B({userId:e,currentUserId:s});t&&c({targets:r,filter:D})}}},dt=({user:e,onUpdate:t})=>{const s=C(),{updateRelations:r}=ye({}),n=S(z.selectors.selectCurrentUser),o=(null==n?void 0:n.username)===(null==e?void 0:e.username),i=oe("user:$username",{username:e?le(e).slice(1):""}),a=S((e=>_.selectors.selectLastUpdateFor(e,i)));w((()=>{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]),w((()=>{const e=null==a?void 0:a.data;e&&"string"!=typeof e&&(!o&&r({userId:e.id}),t(e))}),[null==a?void 0:a.data,o])};var Q,j,N={exports:{}},T={};
1
+ import J,{useEffect as w,useState as k,useRef as V}from"https://cdn.jsdelivr.net/npm/react@18.2.0/+esm";import{useSelector as S,useDispatch as C}from"https://cdn.jsdelivr.net/npm/react-redux@9.1.0/+esm";import{createSelector as R,createSlice as I}from"https://cdn.jsdelivr.net/npm/@reduxjs/toolkit@2.2.1/+esm";import{rootReducer as H}from"https://cdn.jsdelivr.net/npm/@wellesley/store@1.0.142";import{userSlice as z,useCurrentUser as Y}from"https://cdn.jsdelivr.net/npm/@wellesley/user@1.0.118";import{api as K,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 l}from"https://cdn.jsdelivr.net/npm/react-toastify@10.0.5/+esm";import{notificationsSlice as x,isUndoNotification as X,notify as Z,NotificationBody as ee}from"https://cdn.jsdelivr.net/npm/@wellesley/notifications@1.0.18";import{useProfileSettings as te,UserKeysSettings as se}from"https://cdn.jsdelivr.net/npm/@wellesley/settings@1.0.59";import{logErrorToSentry as re}from"https://cdn.jsdelivr.net/npm/@wellesley/sentry@1.0.9";import{authSlice as ne}from"https://cdn.jsdelivr.net/npm/@wellesley/auth@1.0.178";const oe=(e,t)=>Object.keys(t).reduce(((e,s)=>e.replace(`$${s}`,t[s])),e),F={messages:[],subscribers:[],unsubscribers:[]},L=e=>e,ie=R(L,(e=>e.subscribers)),ae=R(L,(e=>e.unsubscribers)),ce=R(L,(e=>e.messages)),ue=R([L,(e,t)=>t],((e,t)=>{var s;return null==(s=e.messages)?void 0:s.find((({topic:e})=>e===t))})),_=I({name:"ws",initialState:F,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)]},cleanMessages:e=>{e.messages=F.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:ce,selectSubscribers:ie,selectUnSubscribers:ae,selectLastUpdateFor:ue}}).injectInto(H),le=e=>`@${e.username}${e.domain?`@${e.domain}`:""}`,M={data:null,isError:!1,isPending:!1,isSuccess:!1},v=I({name:"user",initialState:M,reducers:{reset:e=>{Object.assign(e,M)},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)}}}),de={data:null,isPending:!1,isSuccess:!1},U=I({name:"userNoHTML",initialState:de,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}}),fe=K.enhanceEndpoints({endpoints:{deleteApiV1UsersByUserIdDelete:{async onQueryStarted(e,{queryFulfilled:t}){await p(t)}},getApiV1AccountsProfile:{providesTags:["Secure","Account"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){t(v.actions.setPending(!0));try{const e=await p(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 p(t,"User updated succesfully")}},getApiV1Users:{providesTags:["Secure","UserNoHtml"],async onQueryStarted(e,{dispatch:t,queryFulfilled:s}){const r=!e.htmlContent;try{r&&t(U.actions.setPending(!0));const e=await p(s);r&&e&&(t(U.actions.setUser(e.data)),t(U.actions.setSuccess(!0)),t(U.actions.setPending(!1)))}catch(e){r&&(t(U.actions.setSuccess(!1)),t(U.actions.setError(e)),t(U.actions.setPending(!1))),l.error(m(e))}}},postApiV1Users:{invalidatesTags:["Account"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success("User created successfully")}catch(e){const t=e;l.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,l.success(`Accepted follow request from ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernameReject:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`Rejected follow request from ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsername:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`Follow request sent to ${e.username}`)}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernameUndo:{invalidatesTags:["Follow","Secure","Relationship"],async onQueryStarted(e,{queryFulfilled:t}){try{await t,l.success(`You unfollowed ${e.username}`)}catch(e){l.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),l.success(`User ${e.userId} state changed to ${e.userState}`)}catch(e){l.error(m(e))}}},putApiV1Notes:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success("Note has been updated")}catch(e){l.error(m(e))}}},deleteApiV1NotesByUserId:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success("Note has been removed")}catch(e){l.error(m(e))}}},postApiV1UsersFollowByUsernamePend:{async onQueryStarted(e,{queryFulfilled:t}){try{await p(t),l.success(`${e.username} has been removed from followers`)}catch(e){l.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:Ge,usePostApiV1UsersMutation:qe,useDeleteApiV1AccountsDeleteMutation:Je,useGetApiV1AccountsProfileQuery:He,usePutApiV1UsersByUserIdMutation:ze,useGetApiV1UsersQuery:Ye,useDeleteApiV1UsersByUserIdDeleteMutation:Ke,usePostApiV1MuteByUserIdMutation:Xe,useDeleteApiV1MuteByUserIdMutation:Ze,useGetApiV1MuteQuery:et,usePutApiV1UsersByUserIdStateMutation:tt,useGetApiV1UsersRelationshipsQuery:pe,usePutApiV1NotesMutation:st,useDeleteApiV1NotesByUserIdMutation:rt,useLazyGetApiV1UsersRelationshipsQuery:he,useLazyGetApiV1GeoQuery:nt,useGetApiV1UsersFollowersQuery:ot,useGetApiV1UsersByUserIdFollowersQuery:it,usePostApiV1UsersFollowByUsernameMutation:at,usePostApiV1UsersFollowByUsernameUndoMutation:ct,usePostApiV1UsersFollowByUsernameRejectMutation:ut,usePostApiV1UsersFollowByUsernameAcceptMutation:lt}=fe,D=["following","followed","blocked","muted","note","blocked_by"],B=({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}},ye=({userId:e})=>{const t=S(v.selectors.selectCurrentUser),s=null==t?void 0:t.id,{canFetch:r,isSingleUser:n,safeTargets:o}=B({userId:e,currentUserId:s}),{data:i,isLoading:a}=pe({targets:o,filter:D},{skip:!r}),[c]=he();return{relationship:(n?null==i?void 0:i[e]:i)||{},isLoading:a,updateRelations:({userId:e})=>{const{canFetch:t,safeTargets:r}=B({userId:e,currentUserId:s});t&&c({targets:r,filter:D})}}},dt=({user:e,onUpdate:t})=>{const s=C(),{updateRelations:r}=ye({}),n=S(z.selectors.selectCurrentUser),o=(null==n?void 0:n.username)===(null==e?void 0:e.username),i=oe("user:$username",{username:e?le(e).slice(1):""}),a=S((e=>_.selectors.selectLastUpdateFor(e,i)));w((()=>{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]),w((()=>{const e=null==a?void 0:a.data;e&&"string"!=typeof e&&(!o&&r({userId:e.id}),t(e))}),[null==a?void 0:a.data,o])};var Q,j,N={exports:{}},T={};
2
2
  /**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.min.js
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.87",
2
+ "version": "1.0.91",
3
3
  "name": "@wellesley/ws",
4
4
  "license": "UNLICENSED",
5
5
  "main": "index.mjs",