Build 533169stable
Module 734057
10,199 characters · in no known chunkDependencies
Required by (725)
547119338615658808894489842105891244613433220072317925287275483010831717322943260333135331643335835177372054140245494465334767148686488625814958262617146191662112623506284963995647496644266535687386940769945724327274274399748477991181435814378200582057821498256687203880659080490924918689253492911929609305593474943509555096440967829754898919101392103629105253107632107795108197108959112389112753112758119593121127121806121914122032122802123393123677123973128490131494131677133134134725137365139286140539141862142120143154143239143991145567145885146359147036150129157550158160158956162493167132168675171076174279174768176360177068177686178418180662180720181622182014183903185657187508190930194045197043197654197808198525199226200042200463202195203355205761207133207777207963210082212371217549218152218670218785219065222823222870223863224868225142226884228006229374232492234355236884237496237749239705240525240591240935241499242182242874242907243258244625246943246993248465249477250719251632251766252726256265256415256587256667259374260821264140264322264540265869266620268829272444273867274541275687276373279061280157281362282108282625283012284306285188288254288539288989289770291247294363294809296064297460302487302959304232305637306680307600308368308528309010309777309818310323312006312625313961313998315206315317316541316862320165320501320697323073323350323443323484324584324785325909327325328650329482331969332396333179333782333893334086334738341645343328344731346734348802349112349435349963350701351488352018352123353202354583355205361618361926365701367232367513369790371741372919374084375492376708376943378570380335381222382289383497384059387755390248390395392449393172393309394412394953397036401124401539401843406595406704407195407580409200413528415586416092416850417360418208418448419615420659422258422361424798427080429521430452435084435183435470436283437242437331438407439147443228444261447010447031447215448290448515448613450149450827451556451909451919453178454058456874458294458664462245464035468389470710471993473503473529474399477427479207480680480720480890484724485296485394485724486524487401487626488358488926489683490040492498493507497302500496502128503509506792508654509282512835513272513480513752516311517092519057519222520165520761524085525828527678528153529942530209530804530912535421535820538899539446539895542664542675543465544101546183547463547945549001549527550151552258552618555957556300557042561321561965562153563218564253565846566331566396568598569475570314571044572044572448572957574660575293575530576622576705581381582095584569584777589935591552592182593284594262594831595244596854600260602582602902607407607508607567609190610358613306613491614170615284615390616356619921624265625846627950628691630457632441635443636922637248638075639245639823641703645959648427649247649963650724651178651649652364658128659195660176663111663535663912666388667587668446669953670861672834675171676002676978679804683110683213683484684339685374689025691611692026692986693806695311696451698126699970700331703552704456706752707378708197708202709544709747712209712838713842714114716965717115717125717612721592722855723765727353728963730253731383732077732755735547737613739174739455742984744086748319750770753738753806755029755588759735761640762370763375763685763754766219767065767581768953769022769765771650774300775427776384776781776971778983780376782091785823793322795816795982796071796175798286801285801796802061802116802246802341802958806677808728811024814340815213816662817636820431820453820512822382823162823901824774825453825894827343827785828100829861830541835369835835837924841811842012842241843472843626845211845618846293847816853145853742855344857500859524860371862544862804863005863036863598863922866842866897867402867455870748871751872243873614875731876717878317879658880527882991883344885041885437885918886393887092887560888288889186889460889806890687891046900482901057903369903790904854906141907745909401910463910492910692911269911315912878914905916768921955924985925159925948928636928764931260933762933958936388937767938557939846942528943472943577944052944775945886946132951727954540955454956549956703956793959278960755961022961973962156963307965162966833969508969632970061970278972937973854976639983161984624986880987877987957990474996522997248997877
Lazily required by (0)none
Requires (20)
Lazily requires (0)none
Source Raw
function(e,t,n){"use strict";n.d(t,{A:()=>eb,D:()=>H}),n(205816);var r=n(735438),i=n.n(r),s=n(61090),a=n(311907),o=n(73153),l=n(723176),u=n(154049),c=n(531743),d=n(453001),_=n(736400),f=n(311016),p=n(626584),h=n(181079),m=n(95701),E=n(403362),g=n(661191),A=n(961350),I=n(71393),T=n(287809),S=n(652215);let y=new p.A("ChannelStore"),v={},N={},C={},R={},O=null,b={},D={},L={},w=0,M={},P={},x=new Set,k={},U=0,G={},F=0,V=0,B=!1;class H{static loadAllMissingChannels(){let e=I.A.getGuildIds().filter(e=>!x.has(e));return this.loadGuildIds(e)}static loadGuildFromChannelId(e){return null==e?null:H.loadGuildIds([K(e)?.guild_id])}static loadGuildIds(e){let t=e.filter(E.Vq);if(0===t.length)return null;let n=l.A.database();if(null==n||!t.some(e=>!x.has(e)))return null;let r=U;return(0,u.ES)("loadChannels",async()=>{let e=t.map(e=>{if(x.has(e))return null;if(null!=k[e])return y.fileOnly(`Skipping loading ${e} because a load is pending`),null;let t=c.A.getAsync(n,e).then(t=>(y.fileOnly(`Lazy loaded channels for ${e} #:${t.length}`),{guildId:e,channels:t}));return k[e]=t,{guildId:e,promise:t}}).filter(E.Vq),i=e.map(e=>e.promise);try{let t=await Promise.all(i);if(U!==r)return y.fileOnly("lastResetTime has changed, skipping loads for "+e.map(e=>e.guildId)),null;let n=t.filter(e=>!x.has(e.guildId));await o.h.dispatch({type:"LOAD_CHANNELS",channels:n})}catch(t){for(let n of(y.error("Failed to load channels from disk for "+e.map(e=>e.guildId),t),e))delete k[n.guildId];throw t}return null})}}function j(e,t,n){if(null==e||"null"===e||x.has(e)||0===t&&d.A.hasGuild(e))return;let r=l.A.database();if(null==r)return;y.verbose(`hydrating guild (guild: ${e}, trace: ${n})`);let i=(0,u.Ek)(`ensureGuildLoaded(${e})`,()=>c.A.getSync(r,e),"ensureGuildLoaded");if(null==i){x.add(e),d.A.restored(e),y.log(`load returned null; early returning (guild: ${e}, database: ${r})`);return}let[a,o]=i;for(let n of((0,_.Ay)(a),0!==t&&(V+=1),x.add(e),d.A.restored(e),s.A.mark("❗",`loaded guild channels (guild: ${e})`,o),a))Object.hasOwn(N,n.id)||X((0,m.oh)(n));y.verbose(`hydration complete (guild: ${e}, channels: ${a.length}, guilds_loaded: ${V})`)}function Y(e,t,n){if(!Object.hasOwn(N,e)&&!Object.hasOwn(R,e)&&!Object.hasOwn(b,e)&&!Object.hasOwn(P,e)&&1===t){let r=d.A.getBasicChannel(e);r?.guild_id!=null&&j(r.guild_id,t,n)}}function W(e){if(y.fileOnly(`Deleting guild channels for ${e}`),null!=C[e]){for(let t of g.default.keys(C[e]))delete N[t];delete C[e]}null!=D[e]&&delete D[e]}function K(e){return Y(e,0,"getBasicChannel"),N[e]??R[e]??b[e]??P[e]??d.A.getBasicChannel(e)}function $(e){return Y(e,1,"getChannel"),N[e]??R[e]??b[e]??P[e]??G[e]}function z(e){e.isPrivate()?(delete G[e.id],q(e)):e.isThread()?Z(e):m.uL.has(e.type)&&X(e)}function q(e){if(null!=e.recipients.find(e=>(0,f.A)(e)))return!1;R[e.id]=e,e.type===S.rbe.DM&&(L[e.getRecipientId()]=e.id),w+=1}function Z(e){let t=N[e.parent_id];b[e.id]=e.merge({nsfw:t?.nsfw===!0,parentChannelThreadType:t?.type}),e.isScheduledForDeletion()&&o.h.dispatch({type:"THREAD_DELETE",channel:e})}function X(e){let{id:t,guild_id:n}=e;N[t]=e,C[n]=C[n]??{},C[n][t]=e,M[n]=(M[n]??0)+1,null!=e.linkedLobby?(D[n]=D[n]??{},D[n][t]=e):delete D[n]?.[t]}function Q(e){null==e.guild_id||m.Le.has(e.type)?(0,m.Gw)(e.type)&&(w+=1):M[e.guild_id]=(M[e.guild_id]??0)+1}function J(e){let t=C;for(let n of(L={},N={},C={},D={},b={},M={},G={},k={},U=Date.now(),O=e.initialPrivateChannels,e.initialPrivateChannels.forEach(q),e.guilds))"partial"===n.dataMode&&(i().forEach(t[n.id],X),y.fileOnly(`Restoring guild channels for ${n.id} #:${eO(n.id)}`)),ee(n);eN()}function ee(e){let{id:t,channels:n,threads:r}=e;switch(n.op){case"full_sync":for(let e of(y.fileOnly(`ConnectionOpen contained full channels for ${t} #:${n.items.length}`),W(t),x.add(t),d.A.restored(t),n.items))X(e);break;case"update":for(let e of((n.writes.length>0||n.deletes.length>0)&&d.A.invalidate(t),n.deletes))em(N[e]);for(let e of n.writes)X(e)}if(null!=r)for(let e of r)Z(e)}function et(e){let{lazyPrivateChannels:t}=e;null!=O&&(R={},O.forEach(q)),t.forEach(q)}function en(e){let{guilds:t}=e,n=C;N={},C={},M={},D={},t.forEach(e=>{if("unavailable"===e.data_mode)y.fileOnly(`Restoring guild channels b/c unavailable in bg sync, for ${e.id} #:${eO(e.id)}`),i().forEach(n[e.id],X);else if("partial"===e.data_mode){y.fileOnly(`Restoring guild channels b/c partial in bg sync, for ${e.id} #:${eO(e.id)}`),i().forEach(n[e.id],X);let t=e.partial_updates.deleted_channel_ids??[];t.length>0&&(j(e.id,1,"handleBackgroundSync"),t.forEach(e=>em(N[e]))),e.partial_updates.channels?.forEach(t=>X((0,m.UE)(t,e.id)))}else y.fileOnly(`BG sync contained full channels for ${e.id} #:${e.channels.length}`),W(e.id),x.add(e.id),d.A.restored(e.id),e.channels.forEach(t=>X((0,m.UE)(t,e.id)))})}function er(e){for(let{guildId:t,channels:n}of e.channels)for(let e of(y.fileOnly(`Lazy loaded guild channels for ${t}`),(0,_.Ay)(n),x.add(t),d.A.restored(t),n))Object.hasOwn(N,e.id)||X((0,m.oh)(e));return!1}function ei(){y.fileOnly("initializeClear()"),L={},N={},C={},M={},D={},R={},G={},b={},x=new Set,k={},U=Date.now()}function es(e){F=Math.max(F,e.guilds.length);let{privateChannels:t,initialGuildChannels:n}=e;for(let e of[t,n])for(let t of e)z((0,_.n2)((0,m.oh)(t)));let r=n[0]?.guild_id;null!=r&&(y.fileOnly(`Early cache contained full guild channels for ${r}`),x.add(r))}function ea(e){for(let t of e.channels)z((0,_.n2)((0,m.oh)(t)))}function eo(e){for(let[t,n]of(F=Math.max(F,e.guilds.length),B=!0,e.guildChannels))for(let e of(y.fileOnly(`Lazy cache contained full guild channels for ${t} #:${n.length}`),x.add(t),n))z((0,m.oh)(e))}function el(e){z(e.channel)}function eu(e){if(!m.A_.has(e.channel.type))return!1;let t=$(e.channel.id);z(t=null==t?e.channel:t.merge({...e.channel.toJS(),bitrate:e.channel.bitrate??t.bitrate}))}function ec(e){let{channelId:t,overwrite:n}=e,r=$(t);if(null==r)return!1;z(r.set("permissionOverwrites",{...r.permissionOverwrites,[n.id]:n}))}function ed(e){let{channelId:t,overwriteId:n}=e,r=$(t);if(null==r)return!1;let i={...r.permissionOverwrites};delete i[n],z(r.set("permissionOverwrites",i))}function e_(e){let t=e.channels.some(e=>{let t=e,n=$(e.id);return t.nsfw!==n?.nsfw||t.type!==n?.type});for(let t of e.channels)z(t);t&&Object.values(b).forEach(e=>z(e))}function ef(e){let{threads:t}=e;t.forEach(e=>{m.A_.has(e.type)&&z(e)})}function ep(e){let{threads:t}=e;t.forEach(e=>{m.A_.has(e.type)&&z((0,m.UE)(e))})}function eh(e){if("basicPermissions"in e||e.type!==S.rbe.DM)return;let t=e.getRecipientId();L[t]===e.id&&delete L[t]}function em(e){if(null==e)return;let t=e.guild_id;e.id in R&&delete R[e.id],e.id in N&&delete N[e.id],e.id in b&&delete b[e.id],null!=t&&(null!=C[t]&&e.id in C[t]&&delete C[t][e.id],null!=D[t]&&e.id in D[t]&&delete D[t][e.id]),Q(e)}function eE(e){let{channel:t}=e,n=N[t.id]??R[t.id]??b[t.id];if(null==n)return!1;em(n),eh(n)}function eg(e){ee(e.guild)}function eA(e){y.fileOnly(`GuildDelete of ${e.guild.id}`),W(e.guild.id),x.delete(e.guild.id),d.A.invalidate(e.guild.id)}function eI(e){let t=$(e.channelId),n=A.default.getId();return!!t?.isPrivate()&&(z(t.addRecipient(e.user.id,e.nick,n)),!0)}function eT(e){let t=$(e.channelId);return!!t?.isPrivate()&&(z(t.removeRecipient(e.user.id)),!0)}function eS(e){let{messages:t}=e;for(let e of t)null!=e.thread&&!(e.thread.id in b)&&m.A_.has(e.thread.type)&&Z((0,m.UE)(e.thread))}function ey(e){let{data:t}=e;t.forEach(e=>{let{messages:t,threads:n,channels:r}=e;t.forEach(e=>{e.forEach(e=>{ev(e.thread)})}),n.forEach(ev),r.forEach(e=>{let t=(0,m.UE)(e),n=null!=$(e.id),r=null!=G[e.id];t.isPrivate()&&(!n||r)?G[t.id]=t:n||z(t)})})}function ev(e){null!=e&&!(e.id in b)&&m.A_.has(e.type)&&Z((0,m.UE)(e))}function eN(){for(let e in P={},h.A.getFavoriteChannels()){let t=h.A.getCategoryRecord(e);null!=t&&(P[e]=t)}}function eC(){ei()}class eR extends a.Ay.Store{static displayName="ChannelStore";initialize(){this.waitFor(A.default,d.A,h.A,I.A,T.default),this.syncWith([h.A],eN)}hasChannel(e){return null!=K(e)}getBasicChannel(e){if(null!=e)return K(e)}getChannel(e){if(null!=e)return $(e)}loadAllGuildAndPrivateChannelsFromDisk(){for(let e of I.A.getGuildIds())j(e,1,"loadAllGuildAndPrivateChannelsFromDisk");return{...N,...R}}getChannelIds(e){return(j(e,0,"getChannelIds"),null==e)?g.default.keys(R):g.default.keys(d.A.getGuildBasicChannels(e)??C[e]??v)}getMutablePrivateChannels(){return R}getMutableBasicGuildChannelsForGuild(e){return j(e,0,"getMutableBasicGuildChannelsForGuild"),d.A.getGuildBasicChannels(e)??C[e]??v}getMutableGuildChannelsForGuild(e){return j(e,1,"getMutableGuildChannelsForGuild"),C[e]??v}getSortedLinkedChannelsForGuild(e){return i().values(D[e]??v).sort((e,t)=>g.default.compare(e.id,t.id))}getSortedPrivateChannels(){return i()(R).values().sort((e,t)=>g.default.compare(e.lastMessageId,t.lastMessageId)).reverse().value()}getDMFromUserId(e){if(null!=e)return L[e]}getDMChannelFromUserId(e){if(null!=e)return this.getChannel(L[e])}getMutableDMsByUserIds(){return L}getDMUserIds(){return g.default.keys(L)}getPrivateChannelsVersion(){return w}getGuildChannelsVersion(e){return M[e]??0}getAllThreadsForParent(e){return i().values(b).filter(t=>t.parent_id===e)}getAllThreadsForGuild(e){return i().values(b).filter(t=>t.guild_id===e)}getInitialOverlayState(){return{...N,...R,...b}}getDebugInfo(){return{loadedGuildIds:Array.from(x).sort(g.default.compare),pendingGuildLoads:Object.keys(k).sort(g.default.compare),guildSizes:Object.keys(C).sort(g.default.compare).map(e=>`${e}: ${eO(e)}`)}}}function eO(e){return null==C[e]?null:Object.keys(C[e]).length}let eb=new eR(o.h,{BACKGROUND_SYNC:en,CACHE_LOADED_LAZY:eo,CACHE_LOADED:es,CHANNEL_CREATE:el,CHANNEL_DELETE:eE,CHANNEL_RECIPIENT_ADD:eI,CHANNEL_RECIPIENT_REMOVE:eT,CHANNEL_UPDATES:e_,CONNECTION_OPEN_SUPPLEMENTAL:et,CONNECTION_OPEN:J,CHANNEL_PERMISSIONS_PUT_OVERWRITE_SUCCESS:ec,CHANNEL_PERMISSIONS_DELETE_OVERWRITE_SUCCESS:ed,GUILD_CREATE:eg,GUILD_DELETE:eA,LOAD_ARCHIVED_THREADS_SUCCESS:ep,LOAD_CHANNELS:er,LOAD_MESSAGES_AROUND_SUCCESS:eS,LOAD_MESSAGES_SUCCESS:eS,LOAD_THREADS_SUCCESS:ep,LOGOUT:eC,OVERLAY_INITIALIZE:ea,SEARCH_MESSAGES_SUCCESS:ey,MOD_VIEW_SEARCH_MESSAGES_SUCCESS:ey,THREAD_CREATE:eu,THREAD_DELETE:eE,THREAD_LIST_SYNC:ef,THREAD_UPDATE:eu})}