1import{a as e,c as t,o as n,u as r}from"./kvCache-DT_mVmoa.js";import{$ as i,Q as a,X as o,Y as s,Z as c,_t as l,at as u,et as d,gt as f,it as p,n as m,nt as h,o as g,r as _,rt as v,st as y,tt as b}from"./vendor-nostr-CmqJCCBF.js";import{w as ee}from"./platform-B5ZMpouf.js";import{G as te,K as ne,r as re}from"./verifyPool-BZMuXr_8.js";import{n as x,t as ie}from"./parseAddr-naOIU0Ja.js";function ae(e){return/^[0-9a-f]{64}$/.test(e)}function oe(e,t){let n=new Set;for(let[t,r]of e.tags)t===`p`&&r&&ae(r)&&n.add(r);if(e.pubkey!==t){if(!ae(e.pubkey))return;let r=new Set(n);return r.add(e.pubkey),r.delete(t),r.size===0?void 0:[...r].sort()}if(n.size===0)return;let r=new Set(n);return r.delete(t),r.size===0?[t]:[...r].sort()}function se(e){return e.join(`,`)}function ce(e){return e.split(`,`).filter(Boolean)}function le(e,t){let n=oe(e,t);return n&&se(n)}var ue=`conv`,de=`convmsg`,fe=`convmine`,pe=[14,15];function me(e,t=ue){return`${t}:${[...e].sort().join(``)}`}function he(e){return e.kind===3310}function ge(e,t){let n=ve(t);if(!n)return[];let r=oe(e,n);if(!r)return[];let i=[me(r)];return pe.includes(e.kind)&&!he(e)&&(i.push(me(r,de)),e.pubkey===n&&i.push(me(r,fe))),i}var _e=`dm17:`;function ve(e){return e.startsWith(`dm17:`)?e.slice(5):void 0}var ye=1740,be=23311,xe=1059,Se=23314,Ce=21059,we=3310,Te=30078,Ee=[5,7,14,15,ye,we],De=Ee.filter(e=>e!==we),Oe=2880*60,ke=65535;function Ae(){return Math.floor(Date.now()/1e3)-Math.floor(Math.random()*Oe)}function S(e){let t=e.find(([e])=>e===`expiration`)?.[1];if(t===void 0)return;let n=Number(t);return Number.isFinite(n)?n:void 0}function C(e,t=Math.floor(Date.now()/1e3)){let n=S(e);return n!==void 0&&n<=t}function je(e,t){return t===void 0?e:[...e,[`expiration`,String(Math.floor(t))]]}function Me(e){let t={kind:e.kind,content:e.content,tags:e.tags,created_at:e.createdAt??Math.floor(Date.now()/1e3),pubkey:e.pubkey};return{...t,id:a(t)}}function Ne(e,t){let n=e.map(e=>[`p`,e]);t?.replyTo&&n.push([`e`,t.replyTo]);for(let e of t?.extraTags??[])n.push(e);return je(n,t?.expiresAt)}function Pe(e,t,n,r,i){return je([...e.map(e=>[`p`,e]),[`e`,t],[`k`,String(n)],...r??[]],i)}function Fe(e,t,n){return[...e.map(e=>[`p`,e]),[`e`,t],[`k`,String(n)]]}function Ie(e,t,n){let r=[...e.map(e=>[`p`,e]),[`i`,t]];return n?.info&&r.push([`info`,n.info]),n?.document&&r.push([`document`,
1n.document]),n?.summary&&r.push([`summary`,n.summary]),je(r,n?.expiresAt)}function Le(e,t,n,r=Math.floor(Date.now()/1e3)){if(e.kind!==14)throw Error(`Only NIP-17 chat messages can be edited`);let i=Math.floor(r);return{replacement:Me({kind:14,content:n,tags:[...e.tags.filter(([e])=>e!==`edited`),[`edited`,String(i)]],pubkey:e.pubkey,createdAt:e.created_at}),deletion:Me({kind:5,content:``,tags:Fe(t,e.id,e.kind),pubkey:e.pubkey,createdAt:i})}}function Re(e,t){return[...e.map(e=>[`p`,e]),[`timer`,String(Math.max(0,Math.floor(t)))]]}function ze(e){return e.map(e=>[`p`,e])}function Be(e){let t=e.tags.find(([e])=>e===`timer`)?.[1];if(t===void 0)return;let n=Number(t);return Number.isFinite(n)&&n>=0?Math.floor(n):void 0}async function Ve(e,t,n){if(!n.nip44)throw Error(`This signer can't send private messages (NIP-44 unsupported).`);let r=JSON.stringify(e);if(new TextEncoder().encode(r).length>ke)throw Error(`Message is too large to encrypt.`);return n.signEvent({kind:13,content:await n.nip44.encrypt(t,r),tags:je([],S(e.tags)),created_at:Ae()})}function He(e,t,n){let r=c(),i=v(r,t),a=[[`p`,t]];return n?.firstContact&&a.push([`k`,`14`]),o({kind:xe,content:h(JSON.stringify(e),i),tags:je(a,n?.expiresAt??S(e.tags)),created_at:Ae()},r)}function Ue(e,t){let n=c();return o({kind:Ce,content:h(JSON.stringify(e),v(n,t)),tags:[[`p`,t]],created_at:Math.floor(Date.now()/1e3)},n)}var We=3600;async function Ge(e,t,n,r){if(e.kind!==(r?.wrapKind??1059)||!t.nip44)return;let i=Math.floor(Date.now()/1e3);if(!C(e.tags,i))try{let o=r?.cache!==!1&&S(e.tags)===void 0,s=JSON.parse(await t.nip44.decrypt(e.pubkey,e.content,{cache:o}));if(s.kind!==13||typeof s.pubkey!=`string`||!Array.isArray(s.tags)||C(s.tags,i))return;let c=o&&S(s.tags)===void 0,l=JSON.parse(await t.nip44.decrypt(s.pubkey,s.content,{cache:c}));if(l.pubkey!==s.pubkey||typeof l.kind!=`number`||typeof l.content!=`string`||!Array.isArray(l.tags)||typeof l.created_at!=`number`||l.created_at>i+We||C(l.tags,i))return;let u=a({kind:l.kind,content:l.content,tags:l.tags,created_at:l.created_at,pubkey:l.pubkey});if(l.id!==void 0&&l.id!==u)return;let d=oe(l,n);return d?{rumorId:u,author:l.pubkey,kind:l.kind,content:l.content,tags:l.tags,createdAt:l.created_at,peers:d,wrapId:e.id}:void 0}catch{return}}var Ke=`migrations:complete`,qe=class extends Error{constructor(e){super(`Migration deferred: ${e}`),this.name=`MigrationDeferredError`}},Je=!1,Ye;async function Xe(){return Je?!0:(Ye??=(async()=>{try{return await n().kv.get(Ke)===!0}catch{return!1}})().then(e=>(Je=e,Ye=void 0,e),()=>(Ye=void 0,!1)),Ye)}async function Ze(e){if(typeof indexedDB>`u`)return!1;if(typeof indexedDB.databases==`function`)try{return(await indexedDB.databases()).some(t=>t.name===e)}catch{return}}async function Qe(e){return await Xe()?!0:await Ze(e)===!1}var $e=`armada-concord-cache`,et=`kv`,tt=`folded:`,nt=`folded:migrated`;function rt(e){return`${tt}${e}`}var it=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`)),at=new Uint8Array(103);for(let e=0;e<10;e++)at[48+e]=e;for(let e=0;e<6;e++)at[97+e]=10+e,at[65+e]=10+e;function ot(e){let t=``;for(let n of e)t+=it[n];return t}function st(e){let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=at[e.charCodeAt(n*2)]<<4|at[e.charCodeAt(n*2+1)];return t}function ct(e,t){return typeof t==`bigint`?{__t:`bigint`,v:t.toString()}:t instanceof Uint8Array?{__t:`u8`,v:ot(t)}:t instanceof Map?{__t:`map`,v:[...t.entries()]}:t instanceof Set?{__t:`set`,v:[...t.values()]}:t}function lt(e){if(typeof e!=`object`||!e)return e;if(Array.isArray(e)){let t=e;for(let e=0;e<t.length;e++){let n=t[e];typeof n==`object`&&n&&(t[e]=lt(n))}return t}let t=e;for(let e of Object.keys(t)){let n=t[e];typeof n==`object`&&n&&(t[e]=lt(n))}let n=t.__t;if(n!==void 0)switch(n){case`bigint`:return BigInt(t.v);case`u8`:return st(t.v);case`map`:return new Map(t.v);case`set`:return new Set(t.v)}return t}function ut(e){return JSON.stringify(e,ct)}function dt(e){try{return lt(JSON.parse(e))}catch{return}}var w=new Map;async function ft(e){try{await bt();let t=await n().kv.get(rt(e));return typeof t==`string`&&w.set(e,t),typeof t==`string`?await r(`fold.decode`,async()=>dt(t),()=>t.length,`chars`):void 0}catch{return}}var pt=new Map;async function mt(e){let t=pt.get(e);if(t&&w.get(e)===t.json)return t.value;let n=ht.get(e);return n||(n=ft(e).then(t=>{let n=w.get(e);return t!==void 0&&n!==void 0&&pt.set(e,{json:n,value:t}),t}),ht.set(e,n),n.finally(()=>{ht.get(e)===n&&ht.delete(e)})),await n}var ht=new Map,gt=new Set;function _t(e){return gt.add(e),()=>{gt.delete(e)}}async function vt(e,t,r){try{let i=r??ut(t);if(w.get(e)===i)return;await bt(),w.set(e,i),t===void 0?pt.delete(e):pt.set(e,{json:i,value:t});try{await n().kv.set(rt(e),i)}catch(t){throw w.get(e)===i&&w.delete(e),t}for(let t of gt)try{t(e)}catch{}}catch{}}var yt;function bt(){return yt??=xt().catch(e=>{throw yt=void 0,e}),yt}
1async function xt(){if(await Xe())return;let e=n();if(await e.kv.get(nt)||typeof indexedDB>`u`||await Qe(`armada-concord-cache`))return;let t=await s($e,1,{upgrade(e){e.objectStoreNames.contains(et)||e.createObjectStore(et)}});try{let[n,r]=await Promise.all([t.getAllKeys(et),t.getAll(et)]);for(let[t,i]of n.entries()){let n=r[t];typeof i==`string`&&typeof n==`string`&&await e.kv.set(rt(i),n)}}finally{t.close()}await e.kv.set(nt,!0)}var St=`concord/channel`,Ct=`concord/control`,wt=`concord/control-signer`,Tt=`concord/rekey-pseudonym`,Et=`concord/base-rekey-pseudonym`,Dt=`concord/recipient-pseudonym`,Ot=`concord/guestbook`,kt=`concord/voice-signer`,At=`concord/voice-media`,jt=`concord/voice-sender`,Mt=`concord/dissolved`,Nt=`concord/grant`,Pt=`concord/banlist`,Ft=`concord/invite-links`,It=`concord/pins`,Lt=`concord/signal`,Rt=`concord/invite-key`,zt=`concord/community`,Bt=`concord/epoch-key-commitment`,Vt=new Uint8Array(32),T=new TextEncoder;function Ht(){return crypto.getRandomValues(new Uint8Array(32))}function E(e){if(!/^[0-9a-f]{64}$/i.test(e))throw Error(`invalid 64-char hex (got ${e.length} chars)`);return y(e.toLowerCase())}function D(e,t){if(t.length!==32)throw Error(`${e} must be 32 bytes, got ${t.length}`)}function O(e){return typeof e==`bigint`?e:BigInt(e)}function Ut(e){let t=new Uint8Array(8);return new DataView(t.buffer).setBigUint64(0,e,!1),t}function k(e,t,n){D(`id`,t);let r=T.encode(e),i=n!==void 0,a=new Uint8Array(r.length+1+32+(i?8:0)),o=0;return a.set(r,o),o+=r.length,a[o]=0,o+=1,a.set(t,o),o+=32,i&&new DataView(a.buffer).setBigUint64(o,n,!1),a}function A(e,t){return g(p,e,new Uint8Array,t,32)}function Wt(e,t){{let n=A(e,t);if(l.utils.isValidSecretKey(n))return n}for(let n=0;n<=255;n++){let r=new Uint8Array(t.length+1);r.set(t,0),r[t.length]=n;let i=A(e,r);if(l.utils.isValidSecretKey(i))return i}throw Error(`scalar rejection 257 times running is impossible`)}var j=new Map,Gt=8192,Kt=new Map,qt;function Jt(){qt?.()}function Yt(e){return u(p(T.encode(e)))}function Xt(e){let t=y(e.sk),n=e.pk,r=e.ck===void 0?void 0:y(e.ck);return{sk:t,pk:n,get convKey(){return r===void 0&&(r=v(t,n),e.ck=u(r),Jt()),r}}}function M(e,t,n,r){let i=`${e}|${u(t)}|${u(n)}|${r??``}`,a=j.get(i);if(a)return a.key;let o=Yt(i),s=Kt.get(o);if(s!==void 0)Kt.delete(o);else{let i=Wt(t,k(e,n,r));s={h:o,sk:u(i),pk:u(f.getPublicKey(i))},Jt()}let c={key:Xt(s),entry:s};return j.size>=Gt&&j.delete(j.keys().next().value),j.set(i,c),c.key}var Zt=/^[0-9a-f]{64}$/;function Qt(e){for(let t of e){if(typeof t!=`object`||!t)continue;let{h:e,sk:n,pk:r,ck:i}=t;typeof e!=`string`||!Zt.test(e)||typeof n!=`string`||!Zt.test(n)||typeof r!=`string`||!Zt.test(r)||i!==void 0&&(typeof i!=`string`||!Zt.test(i))||Kt.set(e,{h:e,sk:n,pk:r,...i===void 0?{}:{ck:i}})}}function $t(e){let t=new Map;for(let e of Kt.values())t.set(e.h,e);for(let{entry:e}of j.values())t.set(e.h,e);let n=[...t.values()];return n.length>e?n.slice(n.length-e):n}function en(e){qt=e}function N(e,t,n){return D(`secret`,e),D(`channelId`,t),M(St,e,t,O(n))}function tn(e,t,n){return D(`communityRoot`,e),D(`communityId`,t),M(Ct,e,t,O(n))}function nn(e,t,n){return D(`controlRoot`,e),D(`communityId`,t),M(wt,e,t,O(n))}function rn(e,t,n){return D(`communityRoot`,e),D(`communityId`,t),M(Ot,e,t,O(n))}function an(e,t,n){return D(`secret`,e),D(`channelId`,t),M(kt,e,t,O(n))}function on(e,t,n){return D(`secret`,e),D(`channelId`,t),A(e,k(At,t,O(n)))}function sn(e,t){return D(`mediaKey`,e),A(e,k(jt,p(T.encode(t))))}function cn(e){return D(`communityId`,e),M(Mt,e,Vt)}
1function ln(e,t,n){return D(`priorRoot`,e),D(`channelId`,t),M(Tt,e,t,O(n))}function un(e,t,n){return D(`priorRoot`,e),D(`communityId`,t),M(Et,e,t,O(n))}function dn(e,t){return D(`communityId`,e),D(`memberXonly`,t),A(e,k(Nt,t))}function fn(e,t){return D(`communityId`,e),D(`channelId`,t),A(e,k(It,t))}function pn(e){return D(`communityId`,e),A(e,k(Pt,Vt))}function mn(e,t){return D(`communityId`,e),D(`creatorXonly`,t),A(e,k(Ft,t))}function hn(e,t){return D(`communityId`,e),A(e,k(Lt,p(T.encode(t))))}function gn(e,t,n,r){D(`rotatorXonly`,e),D(`recipientXonly`,t);let i=new Uint8Array(64);return i.set(e,0),i.set(t,32),A(i,k(Dt,n,O(r)))}function _n(e){return A(e,k(Rt,Vt))}function vn(e,t){D(`ownerXonly`,e),D(`ownerSalt`,t);let n=T.encode(zt),r=new Uint8Array(n.length+64);return r.set(n,0),r.set(e,n.length),r.set(t,n.length+32),p(r)}function yn(e,t,n){try{return u(vn(E(t),E(n)))===e.toLowerCase()}catch{return!1}}function bn(e,t){D(`prevKey`,t);let n=T.encode(Bt),r=new Uint8Array(n.length+8+32);return r.set(n,0),r.set(Ut(O(e)),n.length),r.set(t,n.length+8),p(r)}var xn=9841,Sn=9842,Cn=[xn,Sn,39842],wn=[`success`,`failure`,`neutral`,`cancelled`,`skipped`,`timed_out`,`startup_failure`];function P(e,t){return e.tags.find(([e])=>e===t)?.[1]}function Tn(e){return e&&wn.includes(e)?e:void 0}function En(e){let t=new Set,n=[];for(let r of e.tags){if(r[0]!==`a`||!r[1])continue;let e=Zn(r[1]);!e||t.has(e.coordinate)||(t.add(e.coordinate),n.push(e))}return n}function Dn(e){if(e.kind!==9841)return;let t=P(e,`job`)?.trim();if(t)return{event:e,id:e.id,author:e.pubkey,job:t,name:P(e,`name`)?.trim()||void 0,conclusion:Tn(P(e,`conclusion`)?.trim()),logs:P(e,`logs`)?.trim()||void 0,createdAt:e.created_at}}function On(e){if(e.kind!==9842&&e.kind!==39842)return;let t=En(e);if(t.length===0)return;let n=P(e,`status`)?.trim(),r=e.kind===9842?`concluded`:n===`queued`||n===`concluded`?n:`in_progress`,i=[],a=new Set;for(let t of e.tags){if(t[0]!==`q`||!t[1])continue;let e=t[4]?.trim()||t[1];a.has(e)||(a.add(e),i.push({job:e,eventId:t[1],provider:t[3]?.trim()||void 0}))}return{event:e,id:e.id,author:e.pubkey,repositoryAddresses:t,commit:P(e,`c`)?.trim()||void 0,workflow:P(e,`w`)?.trim()||void 0,trigger:P(e,`o`)?.trim()||void 0,ref:P(e,`r`)?.trim()||void 0,status:r,conclusion:Tn(P(e,`conclusion`)?.trim()),jobs:i,createdAt:e.created_at}}function kn(e){return`${e.author}\u0000${e.commit??``}\u0000${e.workflow??``}`}function An(e){let t=new Map;for(let n of e){let e=Dn(n);e&&t.set(e.id,e)}let n=new Map;for(let t of e){let e=On(t);if(!e)continue;let r=kn(e),i=n.get(r);i&&!jn(e,i)||n.set(r,e)}return[...n.values()].map(e=>({...e,jobs:e.jobs.map(e=>({...e,result:t.get(e.eventId)}))})).sort((e,t)=>t.createdAt-e.createdAt||e.id.localeCompare(t.id))}function jn(e,t){let n=e.event.kind===Sn;return n===(t.event.kind===9842)?e.createdAt>t.createdAt||e.createdAt===t.createdAt&&e.id.localeCompare(t.id)<0:n}function Mn(e,t){return e.repositoryAddresses.find(e=>t.has(e.coordinate))}function Nn(e){return Cn.includes(e)}function Pn(e,t){if(Nn(e.kind))return En(e).find(e=>t.has(e.coordinate))}function Fn(e){let t=e.workflow?.trim();return t&&t.split(`/`).pop()?.replace(/\.ya?ml$/i,``)||`workflow`}function In(e){return e.status===`concluded`?e.conclusion??`neutral`:e.status}var Ln=new Set([`failure`,`timed_out`,`startup_failure`]);function Rn(e){return Ln.has(e)}function zn(e){let t=new Map;for(let n of e){let e=Fn(n),r=t.get(e);r?r.push(n):t.set(e,[n])}return[...t].map(([e,t])=>{let n=[...t].sort((e,t)=>t.createdAt-e.createdAt||e.id.localeCompare(t.id));return{name:e,runs:n,latest:n[0]}}).sort((e,t)=>t.latest.createdAt-e.latest.createdAt||e.name.localeCompare(t.name))}function Bn(e){let t=e.map(e=>In(e.latest));return t.some(Rn)?`failure`:t.some(e=>e===`in_progress`||e===`queued`)?`in_progress`:t.some(e=>e===`success`)?`success`:t[0]??`neutral`}function Vn(e){let t=e.map(e=>In(e.latest)),n={failing:t.filter(Rn).length,running:t.filter(e=>e===`in_progress`||e===`queued`).length,passing:t.filter(e=>e===`success`).length},r=[n.failing>0?`${n.failing} failing`:void 0,n.running>0?`${n.running} running`:void 0,n.passing>0?`${n.passing} passing`:void 0].filter(e=>e!==void 0);return r.length>0?r.join(`, `):`${e.length} workflows`}var Hn=30617,Un=1618,Wn=1621,Gn=1630,Kn=1631,qn=1632,Jn=1633,Yn=1111,Xn=[Gn,Kn,qn,Jn];function Zn(e){let t=ie(e);if(!(!t||t.kind!==30617||!t.identifier||t.pubkey!==t.pubkey.toLowerCase()))return{kind:Hn,owner:t.pubkey,identifier:t.identifier,coordinate:`${Hn}:${t.pubkey}:${t.identifier}`}}function Qn(e){if(e.kind!==30617||!x(e.pubkey))return;let t=F(e,`d`)?.trim();if(!t)return;let n=Zn(`${e.kind}:${e.pubkey}:${t}`);if(n)return{event:e,address:n,owner:e.pubkey,identifier:t,name:F(e,`name`)?.trim()||t,description:F(e,`description`)?.trim()||void 0,relays:Dr(Cr
1(e,`relays`)),maintainers:kr(Cr(e,`maintainers`).filter(t=>x(t)&&t!==e.pubkey)),cloneUrls:Or(Cr(e,`clone`)),webUrls:Or(Cr(e,`web`)),createdAt:e.created_at}}function $n(e,t){return e.repositoryAddresses.find(e=>t.has(e.coordinate))}function er(e){if(!xr(e.kind)||!x(e.pubkey))return;let t=F(e,`branch-name`)?.trim(),n=F(e,`base`)?.trim(),r=F(e,`head`)?.trim(),i=e.kind===1618&&(t||n||r)?{name:t||void 0,base:n||void 0,head:r||void 0}:void 0,a=e.tags.filter(([e])=>e===`a`).map(([,e,t])=>{let n=Zn(e);if(!n)return;let r=ee(t??``);return r?{...n,relayHint:r}:n}).filter(e=>!!e);return{event:e,id:e.id,kind:e.kind,type:e.kind===1621?`issue`:`pull-request`,subject:F(e,`subject`)?.trim()||wr(e.content)||`(no subject)`,content:e.content,labels:kr(Cr(e,`t`).map(e=>e.trim().toLowerCase()).filter(Boolean)),repositoryAddress:a[0],repositoryAddresses:a,branches:i,author:e.pubkey,createdAt:e.created_at}}function tr(e){if(!Sr(e.kind)||!x(e.pubkey))return;let t=Er(e);if(!(!t||!x(t)))return{event:e,kind:e.kind,ticketId:t,author:e.pubkey,createdAt:e.created_at}}function nr(e){if(e.kind!==1111||!x(e.pubkey))return;let t=Tr(e,`E`),n=Number(F(e,`K`));if(!(!t||!x(t)||!xr(n)))return{event:e,id:e.id,ticketId:t,ticketKind:n,content:e.content,author:e.pubkey,createdAt:e.created_at}}function rr(e,t){return e===1632?`closed`:e===1633?`draft`:e===1631?t===1621?`resolved`:`merged`:`open`}function ir(e,t){return new Set([e.author,t.owner,...t.maintainers])}function ar(e,t,n){let r=ir(e,t);return n.map(tr).filter(t=>!!(t&&t.ticketId===e.id&&r.has(t.author))).sort(br)[0]}function or(e,t){return e.attachedAt<=t&&(e.detachedAt===void 0||t<e.detachedAt)}function sr(e){let t=new Set;return e.filter(e=>e.detachedAt===void 0||e.detachedAt>=e.attachedAt).map(e=>({...e,relayHints:Dr(e.relayHints)})).sort((e,t)=>e.attachedAt-t.attachedAt||e.address.coordinate.localeCompare(t.address.coordinate)).filter(e=>{let n=`${e.address.coordinate}\u0000${e.attachedAt}\u0000${e.detachedAt??``}`;return t.has(n)?!1:(t.add(n),!0)})}function cr(e,t,n){return e.map(e=>e.address.coordinate===t.coordinate&&e.detachedAt===void 0?{...e,detachedAt:Math.max(n,e.attachedAt)}:e)}function lr(e,t,n,r){return sr([...e,{address:t,relayHints:Dr(n),attachedAt:r}])}function ur(e,t,n=``,r=[]){return{kind:Yn,content:t,tags:[[`E`,e.id,n,e.author],[`K`,String(e.kind)],[`P`,e.author],[`e`,e.id,n,e.author],[`k`,String(e.kind)],[`p`,e.author],...r.map(e=>[...e])]}}function dr(e,t,n,r=``,i=[],a=[]){let o=[...new Set([e.address.owner,...e.maintainers])].filter(x);return{kind:Wn,content:n,tags:[[`a`,e.address.coordinate,r],[`subject`,t],[`alt`,`git repository issue: ${t}`],...o.map(e=>[`p`,e]),...fr(a).map(e=>[`t`,e]),...i.map(e=>[...e])]}}function fr(e){let t=new Set;for(let n of e){let e=n.trim().toLowerCase().replace(/\s+/g,` `).slice(0,40);if(e&&t.add(e),t.size>=8)break}return[...t]}function pr(e){return{kind:5,content:``,tags:[[`e`,e.id],[`k`,String(e.kind)]]}}function mr(e){let t=new Map;for(let n of e)if(!(n.kind!==5||!x(n.pubkey)))for(let[e,r]of n.tags){if(e!==`e`||!r||!x(r))continue;let i=t.get(r);i?i.add(n.pubkey):t.set(r,new Set([n.pubkey]))}return t}function hr(e,t,n){return e.get(t)?.has(n)??!1}function gr(e,t,n,r=``){let i=[...new Set([e.author,t.address.owner,...t.maintainers])].filter(x);return{kind:n,content:``,tags:[[`e`,e.id,r,`root`],[`a`,t.address.coordinate,r],[`alt`,`git ${e.type===`issue`?`issue`:`pull request`} status`],...i.map(e=>[`p`,e])]}}function _r(e,t,n=[]){let r=new Map;for(let e of t){let t=r.get(e.address.coordinate);t?t.push(e):r.set(e.address.coordinate,[e])}let i=mr(e),a=new Map,o=new Map;for(let t of e){let e=er(t);if(!e||hr(i,e.id,e.author))continue;let n=$n(e,r);n&&(a.set(e.id,e),o.set(e.id,n))}let s=new Map;for(let e of n){let t=s.get(e.address.coordinate);(!t||e.createdAt>t.createdAt)&&s.set(e.address.coordinate,e)}let c=[];for(let e of a.values()){let t=o.get(e.id);r.get(t.coordinate).some(t=>or(t,e.createdAt))&&c.push({type:`ticket-opened`,ticket:e,repository:t,createdAt:e.createdAt})}for(let t of e){let e=nr(t);if(e){if(hr(i,e.id,e.author))continue;let t=a.get(e.ticketId),n=t&&o.get(t.id);t&&n&&r.get(n.coordinate)?.some(t=>or(t,e.createdAt))&&c.push({type:`comment`,comment:e,ticket:t,repository:n,createdAt:e.createdAt});continue}let n=tr(t);if(!n||hr(i,n.event.id,n.author))continue;let l=a.get(n.ticketId),u=l&&o.get(l.id);if(!l||!u||!r.get(u.coordinate)?.some(e=>or(e,n.createdAt)))continue;let d=s.get(u.coordinate);
1new Set([l.author,d?.owner??u.owner,...d?.maintainers??[]]).has(n.author)&&c.push({type:`status-change`,status:n,ticket:l,repository:u,createdAt:n.createdAt})}for(let t of An(e)){let e=Mn(t,r);e&&r.get(e.coordinate)?.some(e=>or(e,t.createdAt))&&c.push({type:`ci-run`,run:t,repository:e,createdAt:t.createdAt})}return vr(c)}function vr(e){let t=new Set;return[...e].sort((e,t)=>t.createdAt-e.createdAt||yr(e).localeCompare(yr(t))).filter(e=>{let n=yr(e);return t.has(n)?!1:(t.add(n),!0)})}function yr(e){switch(e.type){case`ticket-opened`:return e.ticket.id;case`comment`:return e.comment.id;case`ci-run`:return e.run.id;default:return e.status.event.id}}function br(e,t){return t.createdAt-e.createdAt||e.event.id.localeCompare(t.event.id)}function xr(e){return e===1621||e===1618}function Sr(e){return Xn.includes(e)}function F(e,t){return e.tags.find(([e])=>e===t)?.[1]}function Cr(e,t){return e.tags.filter(([e])=>e===t).flatMap(([,...e])=>e.filter(Boolean))}function wr(e){return e.split(` 2`).find(e=>e.trim())?.trim()}function Tr(e,t=`e`){let n=e.tags.filter(([e])=>e===t);return n.length===1?n[0][1]:void 0}function Er(e){let t=e.tags.filter(([e,,,t])=>e===`e`&&(t===`root`||t===void 0));return t.length===1?t[0][1]:void 0}function Dr(e){return kr(e.filter(e=>/^wss?:\/\//i.test(e.trim())).map(ee).filter(e=>!!e))}function Or(e){return kr(e.flatMap(e=>{try{let t=new URL(e);return t.protocol===`https:`?[t.href]:[]}catch{return[]}}))}function kr(e){return[...new Set(e)]}var Ar=1e4,I=`armada.git`;function jr(e,t=5){let n=new Set,r=[];for(let i of e){if(r.length>=t)break;typeof i==`string`&&i&&!n.has(i)&&(n.add(i),r.push(i))}return r}function L(e){return new TextEncoder().encode(e).length}function Mr(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.url==`string`&&typeof t.key==`string`&&typeof t.nonce==`string`&&typeof t.hash==`string`}function R(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function Nr(e){let t=R(e.custom)?e.custom[I]:void 0;if(!R(t)||!Array.isArray(t.repositories))return[];let n=[];for(let e of t.repositories){if(!R(e)||typeof e.address!=`string`||!Array.isArray(e.relayHints))continue;let t=Zn(e.address),r=e.attachedAt,i=e.detachedAt;!t||typeof r!=`number`||!Number.isSafeInteger(r)||r<0||i!==void 0&&(typeof i!=`number`||!Number.isSafeInteger(i)||i<r)||n.push({address:t,relayHints:e.relayHints.filter(e=>typeof e==`string`).slice(0,8),attachedAt:r,...i===void 0?{}:{detachedAt:i}})}return sr(n).map(e=>({...e,relayHints:e.relayHints.slice(0,8)})).slice(0,128)}function Pr(e){if(!R(e.custom))return e;let t=e.custom[I];if(!R(t)){let{[I]:t,...n}=e.custom,{custom:r,...i}=e;return{...i,...Object.keys(n).length?{custom:n}:{}}}let n=Nr(e);return{...e,custom:{...e.custom,[I]:{...t,repositories:n.map(e=>({address:e.address.coordinate,relayHints:e.relayHints,attachedAt:e.attachedAt,...e.detachedAt===void 0?{}:{detachedAt:e.detachedAt}}))}}}}function Fr(e,t){let n=R(e.custom)?e.custom:{},r=R(n[`armada.git`])?n[I]:{},i=sr(t).map(e=>({...e,relayHints:e.relayHints.slice(0,8)})).slice(0,128);return{...e,custom:{...n,[I]:{...r,repositories:i.map(e=>({address:e.address.coordinate,relayHints:e.relayHints,attachedAt:e.attachedAt,...e.detachedAt===void 0?{}:{detachedAt:e.detachedAt}}))}}}}var Ir={entries:[],tombstones:[]};function Lr(e){return Array.isArray(e)?e:[]}var Rr=e=>`concord2-list:${e}`;function z(e){return JSON.stringify(zr(e))}function zr(e){return Array.isArray(e)?e.map(zr):e&&typeof e==`object`?Object.fromEntries(Object.keys(e).sort().map(t=>[t,zr(e[t])])):e}function Br(e,t){return e.root_epoch===t.root_epoch?z(e)<=z(t)?e:t:e.root_epoch>t.root_epoch?e:t}function Vr(e,t){return e.root_epoch===t.root_epoch?z(e)<=z(t)?e:t:e.root_epoch<t.root_epoch?e:t}function Hr(e,t){let n=new Map;for(let r of[...Lr(e),...Lr(t)]){if(!r||typeof r.id!=`string`)continue;let e={...r,id:r.id.toLowerCase()},t=n.get(e.id);if(!t){n.set(e.id,e);continue}if(e.epoch!==t.epoch){let[r,i]=e.epoch>t.epoch?[e,t]:[t,e];n.set(e.id,Ur(r,i));continue}z(e)<z(t)?n.set(e.id,Ur(e,t)):n.set(e.id,Ur(t,e))}return[...n.values()].sort((e,t)=>e.id.localeCompare(t.id))}function Ur(e,t){return Wr(e,[...t.priors??[],{key:t.key,epoch:t.epoch},...e.priors??[]])}function Wr(e,t){let n=new Map,r=[];for(let i of t){if(!i||typeof i.key!=`string`||typeof i.epoch!=`number`||i.epoch>=e.epoch&&i.key===e.key)continue;let t=`${i.epoch}:${i.key}`,a=n.get(t);if(a){a.retired_at===void 0&&typeof i.retired_at==`number`&&(a.retired_at=i.retired_at);continue}let o={...i};n.set(t,o),r.push(o)}return r.sort((e,t)=>
2t.epoch-e.epoch||e.key.localeCompare(t.key)),r.length>0?{...e,priors:r}:e}function Gr(e,t){if(!e?.length&&!t?.length)return;let n=new Map;for(let r of[...e??[],...t??[]]){if(!r||typeof r.id!=`string`||typeof r.epoch!=`number`)continue;let e=r.id.toLowerCase(),t=n.get(e);(t===void 0||r.epoch>t)&&n.set(e,r.epoch)}if(n.size!==0)return[...n.entries()].map(([e,t])=>({id:e,epoch:t})).sort((e,t)=>e.id.localeCompare(t.id))}function Kr(e,t){let n=Lr(e);if(!t?.length)return n;let r=new Map(t.map(e=>[e.id.toLowerCase(),e.epoch]));return n.filter(e=>{let t=r.get(e.id.toLowerCase());return t===void 0||e.epoch>=t})}function qr(e,t){let n=Gr(e.channel_cuts,t.channel_cuts),r={...Br(e.current,t.current),channels:Kr(Hr(e.current.channels,t.current.channels),n)},i=Jr(e.excluded_at_epoch,t.excluded_at_epoch),a={...e,...t,community_id:e.community_id,current:r,seed:Vr(e.seed,t.seed),added_at:Math.max(e.added_at,t.added_at)};return n?a.channel_cuts=n:delete a.channel_cuts,i!==void 0&&i>r.root_epoch?a.excluded_at_epoch=i:delete a.excluded_at_epoch,a}function Jr(e,t){return e===void 0?t:t===void 0?e:Math.max(e,t)}function Yr(e,t){let n=new Map;for(let r of[...e.entries,...t.entries]){if(!r||typeof r.community_id!=`string`)continue;let e=n.get(r.community_id);n.set(r.community_id,e?qr(e,r):r)}let r=new Map;for(let n of[...e.tombstones,...t.tombstones]){if(!n||typeof n.community_id!=`string`)continue;let e=r.get(n.community_id);(!e||n.removed_at>e.removed_at)&&r.set(n.community_id,n)}return{...e,...t,entries:[...n.values()].sort((e,t)=>e.community_id<t.community_id?-1:1),tombstones:[...r.values()].sort((e,t)=>e.community_id<t.community_id?-1:1)}}function Xr(e,t){let n=e.entries.find(e=>e.community_id===t);if(!n)return!1;let r=e.tombstones.find(e=>e.community_id===t);return!r||n.added_at>r.removed_at}function Zr(e){return e.entries.filter(t=>Xr(e,t.community_id))}function Qr(e){return typeof e.excluded_at_epoch==`number`&&e.excluded_at_epoch>e.current.root_epoch}function $r(e,t){return Yr(e,{entries:[t],tombstones:[]})}function ei(e,t,n){return Yr(e,{entries:[],tombstones:[{community_id:t,removed_at:n}]})}function ti(e,t,n){let r=e.entries.findIndex(e=>e.community_id===t);if(r===-1)return e;let i=e.entries.map((e,t)=>{if(t!==r||n<e.current.root_epoch)return e;let i=typeof e.excluded_at_epoch==`number`?e.excluded_at_epoch:-1/0;return{...e,excluded_at_epoch:Math.max(i,n)}});return{...e,entries:i}}function ni(e,t,n=Date.now()){let r=e.entries.findIndex(e=>e.community_id===t.community_id);if(r===-1)return e;let i=e.entries.map((e,i)=>{if(i!==r)return e;let a={...e,current:t,added_at:Math.max(e.added_at,n)};return typeof a.excluded_at_epoch==`number`&&a.excluded_at_epoch<=t.root_epoch&&delete a.excluded_at_epoch,a});return{...e,entries:i}}function ri(e,t,n,r){let i=e.entries.findIndex(e=>e.community_id===t);if(i===-1)return e;let a=e.entries.map((e,t)=>{if(t!==i)return e;let a=Gr(e.channel_cuts,r),o={...e,current:{...e.current,channels:Kr(n,a)}};return a&&(o.channel_cuts=a),o});return{...e,entries:a}}function ii(e,t,n){let r=e.entries.findIndex(e=>e.community_id===t);if(r===-1)return e;let i=e.entries.map((e,t)=>t===r?{...e,current:{...e.current,relays:n}}:e);return{...e,entries:i}}function ai(e,t,n,r){let i=e.entries.findIndex(e=>e.community_id===t);if(i===-1)return e;let a=e.entries.map((e,t)=>t!==i||e.current.root_epoch!==n||typeof e.current.control_pk!=`string`?e:{...e,current:{...e.current,control_root:r}});return{...e,entries:a}}function oi(e,t=[]){let n=e.current;try{if(!yn(n.community_id,n.owner,n.owner_salt))return;let r=E(n.community_id),i=E(n.community_root),a=BigInt(n.root_epoch),o=e=>typeof e==`string`&&/^[0-9a-f]{64}$/i.test(e)?e.toLowerCase():void 0,s=o,c=o(n.refounder),l=s(n.control_pk),u=[{epoch:a,key:i,...c?{refounder:c}:{},...l?{controlPk:l}:{}}];for(let e of n.held_roots??[])try{let t=BigInt(e.epoch);if(t===a)continue;let n=typeof e.retired_at==`number`&&Number.isFinite(e.retired_at)&&e.retired_at>0?Math.floor(e.retired_at):void 0,r=o(e.refounder),i=s(e.control_pk);u.push({epoch:t,key:E(e.key),...n===void 0?{}:{retiredAt:n},...r?{refounder:r}:{},...i?{controlPk:i}:{}})}catch{}let d;if(l&&s(n.control_root)){let e=E(n.control_root);nn(e,r,a).pk===l&&(d=e)}if(e.seed&&e.seed.community_root&&e.seed.root_epoch!==n.root_epoch)try{let t=BigInt(e.seed.root_epoch);
2u.some(e=>e.epoch===t)||u.push({epoch:t,key:E(e.seed.community_root)})}catch{}u.sort((e,t)=>e.epoch>t.epoch?-1:+(e.epoch<t.epoch));let f=[];for(let e of Lr(n.channels))try{let t=[];for(let n of Array.isArray(e.priors)?e.priors:[])try{let e=typeof n.retired_at==`number`&&Number.isFinite(n.retired_at)&&n.retired_at>0?Math.floor(n.retired_at):void 0;t.push({key:E(n.key),epoch:BigInt(n.epoch),...e===void 0?{}:{retiredAt:e}})}catch{}f.push({id:E(e.id),key:E(e.key),epoch:BigInt(e.epoch),name:typeof e.name==`string`?e.name:``,...t.length>0?{priors:t}:{}})}catch{}return{id:r,idHex:n.community_id.toLowerCase(),owner:n.owner.toLowerCase(),ownerSalt:E(n.owner_salt),root:i,rootEpoch:a,...l?{controlPk:l}:{},...d?{controlRoot:d}:{},heldRoots:u,privateChannels:f,relays:jr([...Array.isArray(n.relays)?n.relays:[],...t]),name:typeof n.name==`string`?n.name:``,refounder:typeof n.refounder==`string`&&/^[0-9a-f]{64}$/i.test(n.refounder)?n.refounder.toLowerCase():void 0}}catch{return}}function si(e){return e.map(e=>({id:u(e.id),key:u(e.key),epoch:Number(e.epoch),name:e.name,...e.priors?.length?{priors:e.priors.map(e=>({key:u(e.key),epoch:Number(e.epoch),...e.retiredAt===void 0?{}:{retired_at:e.retiredAt}}))}:{}}))}function ci(e,t,n=0n){let r=t.toLowerCase(),i=n,a=e.find(e=>u(e.id)===r);if(a){a.epoch>i&&(i=a.epoch);for(let e of a.priors??[])e.epoch>i&&(i=e.epoch)}return i+1n}function li(e,t){let n=e.heldRoots.filter(t=>t.epoch!==e.rootEpoch).map(e=>({epoch:Number(e.epoch),key:u(e.key),...e.retiredAt===void 0?{}:{retired_at:e.retiredAt},...e.refounder?{refounder:e.refounder}:{},...e.controlPk?{control_pk:e.controlPk}:{}})),r={...t?.prior??{},community_id:e.idHex,owner:e.owner,owner_salt:u(e.ownerSalt),community_root:u(e.root),root_epoch:Number(e.rootEpoch),channels:si(e.privateChannels),relays:t?.relays??t?.prior?.relays??[],name:e.name,...n.length>0?{held_roots:n}:{},...e.refounder?{refounder:e.refounder}:{}};return e.controlPk?r.control_pk=e.controlPk:delete r.control_pk,e.controlPk&&e.controlRoot?r.control_root=u(e.controlRoot):delete r.control_root,r}var ui=1059,di=21059,fi=20013,pi=20014,mi=1111,hi=3302,gi=1740,_i=9735,vi=8333,yi=1068,bi=1018,xi=31922,Si=31923,Ci=31925,wi=3310,Ti=23311,Ei=23313,Di=3306,Oi=3309,ki=3312,Ai=3313,ji=3308,Mi=3303,Ni=33301,Pi=33302,Fi=13302,Ii=13303,Li=`pause`,Ri={control:{kinds:[ji],sealKind:pi},guestbook:{kinds:[Di,Oi,ki],sealKind:fi},rekey:{kinds:[Mi],sealKind:fi}},zi=new Set(Object.values(Ri).flatMap(e=>e.kinds));function Bi(e){let t=new TextEncoder().encode(e);if(t.length<=500)return e;let n=500;for(;n>0&&(t[n]&192)==128;)n--;return new TextDecoder().decode(t.subarray(0,n))}var B=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`InviteError`}};function Vi(e){if(Array.isArray(e.channels)||(e.channels=[]),e.channels.length>256)throw new B(`bounds`,`bundle carries ${e.channels.length} channels (cap 256)`);return e.relays=jr(Array.isArray(e.relays)?e.relays:[]),e.description!==void 0&&(typeof e.description==`string`?e.description=Bi(e.description):delete e.description),e}function Hi(e){if(Vi(e),!yn(e.community_id,e.owner,e.owner_salt))throw new B(`owner-mismatch`,`bundle's owner does not reproduce its community_id`);return e}function Ui(e,t){let n=[];for(let r of t)try{let t={...e,...r.expires_at?{expires_at:r.expires_at*1e3}:{},...r.label?{label:r.label}:{}};n.push(Wi(t,y(r.token),y(r.signer_sk)))}catch{}return n}function Wi(e,t,n){return o({kind:Ni,content:h(JSON.stringify(e),_n(t)),tags:[[`d`,``],[`vsk`,`6`]],created_at:Math.floor(Date.now()/1e3)},n)}function Gi(e){return o({kind:Ni,content:``,tags:[[`d`,``],[`vsk`,`9`]],created_at:Math.floor(Date.now()/1e3)},e)}function Ki(e,t,n,r){if(e.kind!==33301||e.pubkey!==t||!d(e))throw new B(`bad-bundle`,`not a valid invite bundle event`);let i=e.tags.find(e=>e[0]===`vsk`)?.[1];if(i===`9`)throw new B(`revoked`,`this invite link has been revoked`);if(i!==`6`)throw new B(`bad-bundle`,`unknown bundle marker: ${i}`);let a;try{a=JSON.parse(b(e.content,_n(n)))}catch(e){throw new B(`bad-bundle`,`bundle decrypt: ${e instanceof Error?e.message:e}`)}if(Hi(a),typeof a.expires_at==`number`&&r>a.expires_at)throw new B(`expired`,`this invite link has expired`);return a}var qi=1;function Ji(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function Yi(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.length%4==0?``:`=`.repeat(4-t.length%4),r=atob(t+n),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return i}var Xi=new Map(Object.entries(te).map(([e,t])=>[t,Number(e)]));function Zi(e,t){if(e.length!==16)throw new B(`bad-fragment`,`token must be 16 bytes`);let n=t.length===ne.length&&t.every((e,t)=>e===ne[t]),r=t.slice(0,3),i=[4];if(n)i.push(qi);else{i.push(0,r.length);let e=new TextEncoder;for(let t of r){let n=Xi.get(t);if(n!==void 0)i.push(n);else if(t.startsWith(`wss://`)){let n=e.encode(t.slice(6));if(n.length>255)throw new B(`bad-fragment`,`relay host too long`);i.push(0,n.length,...n)}else{let n=e.encode(t);if(n.length>255)throw new B(`bad-fragment`,`relay URL too long`);i.push(255,n.length,...n)}}}return i.push(...e),Ji(new Uint8Array(i))}function Qi(e){let t;try{t=Yi(e.trim())}catch{throw new B(`bad-fragment`,`fragment is not base64url`)}let n=0,r=e=>{if(n+e>t.length)throw new B(`bad-fragment`,`fragment truncated`)};r(2);let i=t[n++];if(i<4)throw new B(`bad-fragment`,`legacy invite format (version ${i})`);
2if(i>4)throw new B(`bad-fragment`,`invite format ${i} is newer than this client`);let a=t[n++],o=[];if(a&qi)o.push(...ne);else{r(1);let e=t[n++];if(e>3)throw new B(`bad-fragment`,`too many bootstrap relays`);let i=new TextDecoder;for(let a=0;a<e;a++){r(1);let e=t[n++];if(e>=1&&e<=254){let t=te[e];t&&o.push(t)}else{r(1);let a=t[n++];r(a);let s=i.decode(t.slice(n,n+a));n+=a,o.push(e===255?s:`wss://${s}`)}}}r(16);let s=t.slice(n,n+16);if(n+=16,n!==t.length)throw new B(`bad-fragment`,`trailing bytes in fragment`);return{token:s,relays:o}}var $i=`/invite/`;function ea(e){return _({kind:Ni,pubkey:e,identifier:``})}function ta(e,t,n,r){return`${e.replace(/\/$/,``)}${$i}${ea(t)}#${Zi(n,r)}`}function na(e,t){if(/^https?:\/\//i.test(t.trim()))return t;let n=t.indexOf($i);return n<0?t:`${e.replace(/\/$/,``)}${t.slice(n)}`}function ra(e){try{let t=m(e);if(t.type!==`naddr`)return;let n=t.data;return n.kind!==33301||n.identifier!==``?void 0:n.pubkey}catch{return}}function ia(e){let t=e.trim(),n;if(/^naddr1[a-z0-9]+/i.test(t))n=t.split(`#`)[0];else{let e;try{e=new URL(t)}catch{return!1}if(!e.pathname.startsWith(`/invite/`))return!1;n=decodeURIComponent(e.pathname.slice(8)).replace(/\/$/,``)}return!!n&&ra(n)!==void 0}function aa(e){let t=e.trim(),n,r;if(/^naddr1[a-z0-9]+#.+$/i.test(t)){let[e,...i]=t.split(`#`);n=e,r=i.join(`#`)}else{let e;try{e=new URL(t)}catch{return}if(!e.pathname.startsWith(`/invite/`))return;n=decodeURIComponent(e.pathname.slice(8)).replace(/\/$/,``),r=e.hash.replace(/^#/,``)}if(!n||!r)return;let i=ra(n);if(!i)return;let a;try{a=Qi(r)}catch{return}return{linkSigner:i,token:a.token,bootstrapRelays:a.relays,naddr:n}}function oa(e,t){let n=ra(e);if(n)try{let{token:r,relays:i}=Qi(t);return{linkSigner:n,token:r,bootstrapRelays:i,naddr:e}}catch{return}}var sa={entries:[],tombstones:[]};function ca(e,t){let n=new Map;for(let r of[...e.entries,...t.entries])!r||typeof r.token!=`string`||n.has(r.token)||n.set(r.token,r);let r=new Map;for(let n of[...e.tombstones,...t.tombstones])!n||typeof n.token!=`string`||r.has(n.token)||r.set(n.token,n);for(let e of r.keys())n.delete(e);return{...e,...t,entries:[...n.values()].sort((e,t)=>e.token.localeCompare(t.token)),tombstones:[...r.values()].sort((e,t)=>e.token.localeCompare(t.token))}}function la(){let e=c();return{sk:e,pk:i(e)}}function ua(){return crypto.getRandomValues(new Uint8Array(16))}var V=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`StreamError`}},da=`ms`;function fa(e,t){if(new TextEncoder().encode(t).length>65535)throw new V(`oversize`,`plaintext exceeds the NIP-44 65,535-byte cap`);return h(t,e)}function pa(e){let t=[...e.tags??[]],n;if(e.ms===null||e.ms===void 0)n=e.createdAtSecs??Math.floor(Date.now()/1e3);else{if(!Number.isFinite(e.ms)||e.ms<0)throw new V(`bad-ms`,`send time must be a non-negative epoch-ms, got ${e.ms}`);n=Math.floor(e.ms/1e3),t.push([da,(Math.floor(e.ms)%1e3).toString()])}let r={kind:e.kind,content:e.content,tags:t,created_at:n,pubkey:e.pubkey};return{...r,id:a(r)}}async function ma(e,t,n,r){let i=JSON.stringify(e),a=t===20013?fa(n.convKey,i):i;return r.signEvent({kind:t,content:a,tags:[],created_at:e.created_at})}function ha(e,t,n){let r=[[`p`,i(n?.ephemeralSk??c())]];return n?.expiration!==void 0&&r.push([`expiration`,String(Math.floor(n.expiration))]),o({kind:n?.ephemeral?di:ui,content:fa(t.convKey,JSON.stringify(e)),tags:r,created_at:Math.floor(Date.now()/1e3)},t.sk)}var ga=2e3;function _a(e,t){let n=t.find(e=>e[0]===da);if(!n)return e*1e3;let r=n[1];if(r===void 0||!/^(0|[1-9][0-9]{0,2})$/.test(r))throw new V(`bad-ms`,`malformed ms tag: ${r}`);let i=Number(r);if(i>999)throw new V(`bad-ms`,`malformed ms tag: ${r}`);return e*1e3+i}function va(e,t){if(e.kind!==1059&&e.kind!==21059)throw new V(`bad-wrap-kind`,`not a stream wrap: kind ${e.kind}`);if(e.pubkey!==t.pk)throw new V(`author-mismatch`,`wrap author is not this stream's address`);if(t.restricted){let t=e;if(typeof t.sig!=`string`||!re(t))throw new V(`bad-wrap-signature`,`write-restricted wrap signature invalid`)}let n;try{n=JSON.parse(b(e.content,t.convKey))}catch(e){throw new V(`decrypt`,`wrap decrypt: ${e instanceof Error?e.message:e}`)}if(n.kind!==20013&&n.kind!==20014)throw new V(`bad-seal-kind`,`unknown seal kind ${n.kind}`);return{seal:n,finish:()=>{let r;try{let e=n.kind===20013?b(n.content,t.convKey):n.content;
2r=JSON.parse(e)}catch(e){throw new V(n.kind===20013?`decrypt`:`parse`,`rumor recover: ${e instanceof Error?e.message:e}`)}if(r.pubkey!==n.pubkey)throw new V(`author-mismatch`,`rumor author does not match the seal's signer`);let i=a({kind:r.kind,content:r.content,tags:r.tags,created_at:r.created_at,pubkey:r.pubkey});if(r.id!==i)throw new V(`bad-rumor-id`,`rumor id is not its event hash`);return{rumorId:r.id,author:n.pubkey,kind:r.kind,content:r.content,tags:r.tags,ms:_a(r.created_at,r.tags),createdAt:r.created_at,wrapId:e.id,streamPk:e.pubkey,sealKind:n.kind,seal:n}}}}function ya(e,t){let{seal:n,finish:r}=va(e,t);if(!re(n))throw new V(`bad-seal-signature`,`seal signature invalid`);return r()}function ba(e,t){if(e.kind!==20014)throw new V(`bad-seal-kind`,`only plaintext seals survive a re-wrap`);return ha(e,t)}var xa=`channel`,Sa=`epoch`;function Ca(e,t){return[[xa,e],[Sa,t.toString()]]}function wa(e,t){let n;for(let r of e)if(r[0]===t){if(n!==void 0)throw new V(`binding-mismatch`,`duplicate binding tag: ${t}`);n=r[1]}return n}function Ta(e,t,n){if(wa(e.tags,xa)!==t)throw new V(`binding-mismatch`,`channel-binding mismatch (splice)`);if(wa(e.tags,Sa)!==n.toString())throw new V(`binding-mismatch`,`epoch-binding mismatch (splice)`)}var Ea=`vector-community/v1/edition`;function Da(e){let t=new Uint8Array(8);return new DataView(t.buffer).setBigUint64(0,e,!1),t}function Oa(e,t,n,r){let i=new TextEncoder().encode(Ea),a=[Da(BigInt(i.length)),i,e,Da(t),new Uint8Array([+!!n]),n??new Uint8Array(32),Da(BigInt(r.length)),r],o=a.reduce((e,t)=>e+t.length,0),s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.length;return s}function ka(e,t,n,r){return p(Oa(e,t,n,r))}function Aa(e,t){for(let n=0;n<e.length&&n<t.length;n++)if(e[n]!==t[n])return e[n]-t[n];return e.length-t.length}function ja(e,t){return e===void 0||t===void 0?e===t:e.length===t.length&&Aa(e,t)===0}function Ma(e,t,n){let r=new Map;for(let n=0;n<e.length;n++){let i=e[n];if(i.version<t)continue;let a=r.get(i.version);a?a.push(n):r.set(i.version,[n])}for(let t of r.values())t.sort((t,n)=>Aa(e[t].tiebreakId,e[n].tiebreakId));let i=[...r.keys()].sort((e,t)=>e<t?-1:+(e>t));if(i.length===0)return{head:null,gap:!1};let a=r.get(i[0]),o;t===0n?i[0]===1n&&(o=a.find(t=>e[t].prevHash===void 0)):n!==void 0&&i[0]===t?o=a.find(t=>ja(n,e[t].selfHash)):n!==void 0&&i[0]===t+1n&&(o=a.find(t=>ja(e[t].prevHash,n)));let s=o===void 0,c=o??a[0];for(let t=0;t+1<i.length;t++){if(i[t+1]!==i[t]+1n){s=!0;break}let n=r.get(i[t+1]).find(t=>ja(e[t].prevHash,e[c].selfHash));if(n===void 0){s=!0;break}c=n}return{head:c,gap:s}}function Na(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(!(i.version<t))if(n===null)n=r;else{let t=e[n];(i.version>t.version||i.version===t.version&&Aa(i.tiebreakId,t.tiebreakId)<0)&&(n=r)}}return n}var Pa=`vsk`,Fa=`eid`,Ia=`ev`,La=`ep`,Ra=`vac`,za=/^[0-9a-f]{64}$/i,Ba=/^(0|[1-9][0-9]*)$/;function Va(e){return e!==void 0&&Ba.test(e)}function Ha(e){return[Ra,u(e.entityId),e.version.toString(),u(e.editionHash)]}function Ua(e){let t=e.find(e=>e.length>=4&&e[0]===Ra);if(t&&!(!za.test(t[1])||!za.test(t[3])||!Va(t[2])))return{entityId:y(t[1]),version:BigInt(t[2]),editionHash:y(t[3])}}function H(e){let t=[[Pa,e.vsk],[Fa,u(e.entityId)],[Ia,e.version.toString()]];return e.prevHash&&t.push([La,u(e.prevHash)]),e.authority&&t.push(Ha(e.authority)),pa({kind:ji,content:e.content,tags:t,pubkey:e.actorPubkey,ms:null,createdAtSecs:e.createdAtSecs})}var U=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`EditionError`}};function Wa(e,t){if(!e||!za.test(e))throw new U(`bad-field`,t);return y(e.toLowerCase())}function Ga(e){if(e.kind!==3308)throw new U(`bad-field`,`kind`);if(e.sealKind!==void 0&&e.sealKind!==20014)throw new U(`bad-field`,`seal-kind`);for(let t of[Pa,Fa,Ia,La,Ra])if(e.tags.filter(e=>e[0]===t).length>1)throw new U(`bad-field`,`duplicate tag: ${t}`);let t=t=>e.tags.find(e=>e[0]===t)?.[1],n=t(Pa);if(n===void 0)throw new U(`missing-field`,`vsk`);let r=Wa(t(Fa),`eid`),i=t(Ia);if(i===void 0)throw new U(`missing-field`,`ev`);if(!Va(i))throw new U(`bad-field`,`ev`);let a=BigInt(i),o=t(La),s=o===void 0?void 0:Wa(o,`ep`),c=ka(r,a,s,new TextEncoder().encode(e.content));
2return{author:e.author,vsk:n,entityId:r,version:a,prevHash:s,content:e.content,selfHash:c,createdAt:e.createdAt,rumorId:y(e.rumorId),authority:Ua(e.tags),opened:e}}function Ka(e){return{version:e.version,prevHash:e.prevHash,selfHash:e.selfHash,createdAt:e.createdAt,tiebreakId:e.rumorId}}var W={MANAGE_ROLES:1n<<0n,MANAGE_CHANNELS:1n<<1n,MANAGE_METADATA:1n<<2n,KICK:1n<<3n,BAN:1n<<4n,MANAGE_MESSAGES:1n<<5n,CREATE_INVITE:1n<<6n,VIEW_AUDIT_LOG:1n<<8n,MENTION_EVERYONE:1n<<9n,PIN_MESSAGES:1n<<11n},qa=W.MANAGE_ROLES|W.MANAGE_CHANNELS|W.MANAGE_METADATA|W.KICK|W.BAN|W.MANAGE_MESSAGES|W.CREATE_INVITE|W.VIEW_AUDIT_LOG|W.MENTION_EVERYONE|W.PIN_MESSAGES,Ja=qa&~W.MENTION_EVERYONE,Ya=W.MANAGE_ROLES|W.MANAGE_CHANNELS|W.MANAGE_METADATA|W.BAN|W.CREATE_INVITE|W.PIN_MESSAGES;function Xa(e,t){return(e&t)===t}function Za(e){return(e&Ja)!==0n}var Qa=[{bit:W.MANAGE_ROLES,label:`Manage roles`,hint:`Create roles and assign them to members.`},{bit:W.MANAGE_CHANNELS,label:`Manage channels`,hint:`Create, rename, and delete channels.`},{bit:W.MANAGE_METADATA,label:`Manage community`,hint:`Edit name, description, logo, banner.`},{bit:W.KICK,label:`Kick members`,hint:`Remove members (they can rejoin via invite).`},{bit:W.BAN,label:`Ban members`,hint:`Ban members and rotate keys to lock them out.`},{bit:W.MANAGE_MESSAGES,label:`Manage messages`,hint:`Hide other members' messages.`},{bit:W.PIN_MESSAGES,label:`Pin messages`,hint:`Pin messages so everyone sees them, including members who join later.`},{bit:W.CREATE_INVITE,label:`Create invites`,hint:`Mint public invite links.`},{bit:W.MENTION_EVERYONE,label:`Mention everyone`,hint:`Use @everyone.`}];function $a(e,t){return e.position-t.position||e.roleId.localeCompare(t.roleId)}function eo(e){return{roleId:e,name:`Admin`,position:1,permissions:qa,scope:{kind:`server`},color:0}}var to=W.KICK|W.BAN|W.MANAGE_MESSAGES|W.MENTION_EVERYONE;function no(e){return{roleId:e,name:`Moderator`,position:2,permissions:to,scope:{kind:`server`},color:0}}function ro(e){return typeof e!=`number`||!Number.isFinite(e)||e<0||e>4294967295?0:Math.trunc(e)}function io(e){let t=e.scope.kind===`channel`?{kind:`channel`,channel_id:e.scope.channelId}:{kind:`server`},n={role_id:e.roleId,name:e.name,position:e.position,permissions:e.permissions.toString(),scope:t,color:ro(e.color),...e.display===!0?{display:!0}:{}};return JSON.stringify(n)}function ao(e){try{let t=JSON.parse(e);if(typeof t.role_id!=`string`||!/^[0-9a-f]{64}$/i.test(t.role_id))return;let n;if(typeof t.permissions==`string`&&/^\d+$/.test(t.permissions))n=BigInt(t.permissions);else if(typeof t.permissions==`number`&&Number.isFinite(t.permissions))n=BigInt(Math.trunc(t.permissions));else return;if(typeof t.position!=`number`||!Number.isInteger(t.position)||t.position<1)return;let r=typeof t.name==`string`?t.name:``;if(new TextEncoder().encode(r).length>64)return;let i=t.scope?.kind===`channel`&&typeof t.scope.channel_id==`string`?{kind:`channel`,channelId:t.scope.channel_id}:{kind:`server`};return{roleId:t.role_id.toLowerCase(),name:r,position:t.position,permissions:n,scope:i,color:ro(t.color),...t.display===!0?{display:!0}:{}}}catch{return}}function oo(e){if(!Number.isFinite(e))return;let t=Math.trunc(e)&16777215;if(t!==0)return`#${t.toString(16).padStart(6,`0`)}`}function so(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());return t?parseInt(t[1],16):0}function co(e,t){let n=e.map(e=>e.position),r=t.map((e,t)=>({...e,position:n[t]}));return{landing:r,rendered:[...r].sort($a)}}function lo(e,t){let n=e.filter(e=>e.position<t),r=e.slice(0,n.length);if(r.some(e=>e.position>=t)||[...r].sort($a).some((e,t)=>e.roleId!==r[t].roleId))return null;let i=e.slice(n.length);if(i.length===0)return null;let a=Math.min(...i.map(e=>e.position));return[...r,...i.map((e,t)=>({...e,position:a+t}))]}var uo=1024;function fo(e){let t={member:e.member,role_ids:e.roleIds,...e.controlWrap===void 0?{}:{control_wrap:e.controlWrap}};return JSON.stringify(t)}function po(e){try{let t=JSON.parse(e);if(typeof t.member!=`string`||!/^[0-9a-f]{64}$/i.test(t.member))return;let n=Array.isArray(t.role_ids)?t.role_ids.filter(e=>typeof e==`string`).slice(0,64):[],r=typeof t.control_wrap==`string`&&t.control_wrap.length>0&&t.control_wrap.length<=uo?t.control_wrap:void 0;return{member:t.member.toLowerCase(),roleIds:n,...r===void 0?{}:{controlWrap:r}}}catch{return}}function mo(){return{roles:[],grants:[]}}function ho(e,t){return e.roles.find(e=>e.roleId===t)}function go(e,t){let n=[];for(let r of e.grants)if(r.member===t)for(let t of r.roleIds){let r=ho(e,t);r&&n.push(r)}return n}function _o(e,t){return go(e,t).reduce((e,t)=>
2e|t.permissions,0n)}function vo(e,t,n){return go(e,t).reduce((e,t)=>t.scope.kind===`server`||t.scope.channelId===n?e|t.permissions:e,0n)}function yo(e,t,n,r,i){return n===t?!0:Xa(vo(e,t,r),i)}function bo(e,t,n){return Xa(_o(e,t),n)}function xo(e,t,n){return t===n?!0:(_o(e,t)&Ya)!==0n}function So(e,t){return t.some(t=>{let n=ho(e,t);return n!==void 0&&(n.permissions&Ya)!==0n})}function G(e,t){let n=go(e,t).map(e=>e.position);return n.length?Math.min(...n):void 0}function Co(e,t){let n=_o(e,t);if(Xa(n,W.MANAGE_ROLES))return`admin`;if(Za(n))return`moderator`}function K(e,t,n,r){return n===t?!0:bo(e,t,r)}function wo(e,t,n){if(n===t)return 1;if(!e)return;let r=G(e,t);return r===void 0?void 0:r+1}function To(e,t,n){let r=wo(e,t,n);if(r===void 0)return;let i=(e?.roles??[]).reduce((e,t)=>Math.max(e,t.position),0);return Math.max(r,i+1)}function Eo(e,t,n,r){if(n===t)return!0;let i=G(e,t);return i!==void 0&&i<r}function Do(e,t,n,r,i){if(t!==n){if(!Ao(e,t,n,r,W.MANAGE_ROLES))return`You don't outrank this member.`;for(let r of i){let i=ho(e,r);if(!i)return`That role isn't in the synced roster yet.`;if(!ko(e,t,n,i.position,W.MANAGE_ROLES))return`You don't outrank the "${i.name}" role.`}}}function Oo(e,t,n,r){return t===n?!0:r===n?!1:Eo(e,t,n,G(e,r)??2**53-1)}function ko(e,t,n,r,i){return n===t?!0:bo(e,t,i)&&Eo(e,t,n,r)}function Ao(e,t,n,r,i){return n===r?!1:ko(e,t,n,G(e,r)??2**53-1,i)}function jo(e,t,n,r){let i=tn(t,e.id,n);if(!r)return i;let a=e.controlRoot!==void 0&&n===e.rootEpoch?nn(e.controlRoot,e.id,n):void 0;return{pk:r,get convKey(){return i.convKey},restricted:!0,...a&&a.pk===r?{sk:a.sk}:{}}}function Mo(e){return e.heldRoots.map(t=>jo(e,t.key,t.epoch,t.controlPk))}function No(e){return jo(e,e.root,e.rootEpoch,e.controlPk)}function Po(e){let t=No(e),n=t.sk;if(n===void 0)throw Error(`Only community staff hold this community's write key; ask a moderator to re-send it.`);return{sk:n,pk:t.pk,get convKey(){return t.convKey}}}
2async function Fo(e,t,n){return ha(await ma(e,pi,t,n),t)}var q=new Map,Io=2e4;function Lo(e,t){if(!q.has(e)&&q.size>=Io){let e=q.keys().next();e.done||q.delete(e.value)}q.set(e,t)}function Ro(e,t){let n=new Map(t.map(e=>[e.pk,e])),r=[];for(let t of e){let e=q.get(t.id);if(e!==void 0){e&&r.push(e);continue}let i=n.get(t.pubkey);if(!i)continue;let a=null;try{a=Ga(ya(t,i))}catch{a=null}Lo(t.id,a),a&&r.push(a)}return r}function zo(e){let n=performance.now(),r=[];for(let t of e){let e=q.get(t.rumorId);if(e!==void 0){e&&r.push(e);continue}let n=null;try{n=Ga(t)}catch{n=null}Lo(t.rumorId,n),n&&r.push(n)}return t(`fold.openControlEditions`,performance.now()-n,e.length,`editions`),r}function Bo(e,t,n){if(L(t.name)>64)throw Error(`community name exceeds 64 bytes`);if(t.description!==void 0&&L(t.description)>1e4)throw Error(`description exceeds ${Ar} bytes`);return H({vsk:`0`,entityId:e,content:JSON.stringify(t),...n})}function Vo(e,t){if(L(e.name)>64)throw Error(`role name exceeds 64 bytes`);if(!Number.isInteger(e.position)||e.position<1)throw Error(`role position must be an integer of 1 or greater (position 0 is the owner's)`);return H({vsk:`1`,entityId:E(e.roleId),content:io(e),...t})}function Ho(e,t,n){if(L(t.name)>64)throw Error(`channel name exceeds 64 bytes`);return H({vsk:`2`,entityId:e,content:JSON.stringify(t),...n})}function Uo(e,t,n){return H({vsk:`3`,entityId:dn(e,E(t.member)),content:fo(t),...n})}function Wo(e,t,n){return H({vsk:`4`,entityId:pn(e),content:JSON.stringify(t),...n})}function Go(e,t,n,r){return H({vsk:`8`,entityId:mn(e,E(t)),content:JSON.stringify(n),...r})}function Ko(e,t,n,r){return H({vsk:`12`,entityId:hn(e,t),content:JSON.stringify(n),...r})}var qo=e=>`concord2-fold:${e}`;function Jo(e){let t=e;if(!t||!(t.channels instanceof Map)||!(t.heads instanceof Map)||!(t.pinLists instanceof Map)||!(t.signals instanceof Map))return!1;for(let e of t.channels.values())if(!e||typeof e.metadata!=`object`||e.metadata===null)return!1;return!0}async function Yo(e){let t=await mt(qo(e));return Jo(t)?t:void 0}function Xo(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function Zo(e,t,n,r){let i=[],a=new Set,o=!1;if(n){let n=Na(e.map(Ka),t?.version??0n);n===null?t!==void 0&&(o=!0,r?.()):(i.push(e[n]),a.add(u(e[n].rumorId)))}else{let n=Ma(e.map(Ka),t?.version??0n,t?.hash);o=t!==void 0&&(n.gap||n.head===null),o&&r?.(),n.head!==null&&!o&&(i.push(e[n.head]),a.add(u(e[n.head].rumorId)))}let s=e.filter(e=>{let n=u(e.rumorId);return!(a.has(n)||(a.add(n),t!==void 0&&e.version<t.version)||o&&e.version>t.version||o&&!ja(e.selfHash,t.hash))}).sort((e,t)=>e.version===t.version?u(e.rumorId)<u(t.rumorId)?-1:1:e.version>t.version?-1:1);return i.push(...s),i}function J(e,t,n,r,i){let a;for(let t of e)if(r(t)){if(a===void 0){a=t;continue}if(t.version!==a.version)break;i(t.author)<i(a.author)&&(a=t)}if(a!==void 0)return t.set(u(a.entityId),{version:a.version,hash:a.selfHash}),n.set(u(a.entityId),a),a}function Qo(e,t){return e.parsed.version<t.parsed.version?-1:+(e.parsed.version>t.parsed.version)}function $o(e){let t=[];for(let n of[...e].sort(Qo)){let e=t[t.length-1];e&&e[0].parsed.version===n.parsed.version?e.push(n):t.push([n])}return t}function es(e,t,n,r,i,a){let o=mo(),s=new Set,c=new Set,l=[...e.keys()].sort(),d=[...t.keys()].sort(),f=new Map;for(let[e,n]of t)n.length>0&&f.set(n[0].grant.member,e);let p=e=>is({heads:i,ownerHex:r},n,e.author,e.authority),m=!0,h=!1,g=!1,_=e=>{i.set(u(e.entityId),{version:e.version,hash:e.selfHash}),a.set(u(e.entityId),e)},v=(e,t)=>
2{if(e===r)return!1;let n=f.get(e);return n!==void 0&&n!==t&&!c.has(n)},y=(e,t)=>{let n=e=>e===r?-1:G(o,e)??2**53-1,i=n(e.author),a=n(t.author);if(i!==a)return i-a;let s=u(e.parsed.rumorId),c=u(t.parsed.rumorId);return s<c?-1:+(s>c)};for(;m;){m=!1;for(let t of l){if(s.has(t))continue;let n=e.get(t);if(!g&&n.some(e=>v(e.author)))continue;let i=new Set,a;for(let e of $o(n))for(let{role:t,author:n,parsed:s}of[...e].sort(y)){let e=n===r||ko(o,n,r,t.position,W.MANAGE_ROLES),c=n===r||a===void 0||Eo(o,n,r,a);if(!(!e||!c||!p(s))){i.add(s),a=t.position;break}}let c=n.find(e=>i.has(e.parsed));c&&(o.roles.push(c.role),s.add(t),_(c.parsed),m=!0)}for(let n of d){if(c.has(n))continue;let i=t.get(n),a=t=>e.has(t)&&!s.has(t);if(!h&&i.some(e=>e.grant.roleIds.some(a))||!g&&i.some(e=>v(e.author,n)))continue;let l=new Set,u;for(let e of $o(i))for(let{grant:t,author:n,parsed:i}of[...e].sort(y)){let e=t.roleIds.map(e=>o.roles.find(t=>t.roleId===e)?.position).filter(e=>e!==void 0),a=e.length===t.roleIds.length;if(!(!(n===r||a&&bo(o,n,W.MANAGE_ROLES)&&e.every(e=>Eo(o,n,r,e))&&(u===void 0||Eo(o,n,r,u)))||!p(i))){l.add(i),u=e.length?Math.min(...e):void 0;break}}let d=i.find(e=>l.has(e.parsed));d&&(o.grants.push(d.grant),c.add(n),_(d.parsed),m=!0)}!m&&!h?(h=!0,m=!0):!m&&!g&&(g=!0,m=!0)}return o.roles.length>100&&(o.roles.sort((e,t)=>e.roleId<t.roleId?-1:+(e.roleId>t.roleId)),o.roles=o.roles.slice(0,100)),o}var ts=new Map;function ns(e,n,r,i,a){let o=performance.now(),s=u(n),c=`${s}:${r}:${i?[...i.entries()].map(([e,t])=>`${e}@${t.version}`).sort().join(`,`):``}:${a?[...a].sort().join(`,`):``}:${e.map(e=>e.opened.rumorId).sort().join(`,`)}`,l=ts.get(c);if(l)return t(`fold.controlState (memo hit)`,performance.now()-o,e.length,`editions`),l;let d=fs(e,n,r,i,a),f=new Set([...d.banned].filter(e=>e!==r)),p=f.size===d.banned.size?d:{...d,banned:f};f.size>0&&e.some(e=>f.has(e.author))&&(p={...fs(e.filter(e=>!f.has(e.author)),n,r,i,a),banned:f,bannedAt:d.bannedAt,incomplete:d.incomplete});for(let e of ts.keys())e.startsWith(`${s}:`)&&ts.delete(e);return ts.set(c,p),t(`fold.controlState`,performance.now()-o,e.length,`editions`),p}function rs(e,t,n){let r=new Set(typeof n==`string`?[n]:n??[]);for(let[n,i]of e.registriesByCreator)if(!(n===t||r.has(n))&&i.length>0)return!0;return!1}function is(e,t,n,r){if(n===e.ownerHex)return!0;if(!r)return!1;let i=u(dn(t,E(n)));if(u(r.entityId)!==i)return!1;let a=e.heads.get(i);return a?a.version>r.version?!0:a.version===r.version?u(a.hash)===u(r.editionHash):!1:!1}function as(e,t,n,r=!1){return e?r||!rs(e,t,n):!1}var os={[Li]:W.MANAGE_CHANNELS},ss=720*60*60;function cs(e,t,n){let r;try{r=JSON.parse(t)}catch{return!1}if(typeof r!=`object`||!r)return!1;if(e===`pause`){let e=r;return!(typeof e.paused!=`boolean`||e.until!==void 0&&(typeof e.until!=`number`||!Number.isInteger(e.until)||e.until<=0||e.until>n+ss))}return!1}function ls(e,t){if(!e)return;let n=e.content;if(n.paused!==!0)return;let r=typeof n.until==`number`?n.until:void 0;if(!(r!==void 0&&t>=r))return{since:e.at,...r===void 0?{}:{until:r},by:e.author}}function us(e,t){return ls(e?.signals.get(Li),t)}function ds(e){return e?.signals.get(Li)}function fs(e,t,n,r,i){let a=u(t),o=new Map;for(let t of e){let e=o.get(t.vsk);e||o.set(t.vsk,e=new Map),Xo(e,u(t.entityId),t)}let s=new Map,c=new Map,l=new Set,d=e=>{let t=new Map;for(let[n,a]of o.get(e)??new Map){let e=i?a.filter(e=>i.has(u(e.rumorId))):[];t.set(n,Zo(a,r?.get(n),e.length>0?e:void 0,()=>l.add(n)))}return t},f=new Map;for(let[e,t]of d(`1`)){let n=t.map(e=>({role:ao(e.content),author:e.author,parsed:e})).filter(t=>!!(t.role&&u(E(t.role.roleId))===e));n.length>0&&f.set(e,n)}let p=new Map;for(let[e,n]of d(`3`)){let r=n.map(e=>({grant:po(e.content),author:e.author,parsed:e})).filter(n=>!!(n.grant&&u(dn(t,E(n.grant.member)))===e));r.length>0&&p.set(e,r)}let m=es(f,p,t,n,s,c),h=e=>is({heads:s,ownerHex:n},t,e.author,e.authority),g=e=>e===n?-1:G(m,e)??2**53-1,_;{let e=J(d(`0`).get(a)??[],s,c,e=>{if(!K(m,e.author,n,W.MANAGE_METADATA)||!h(e))return!1;try{let t=JSON.parse(e.content);return!(typeof t.name!=`string`||L(t.name)>
264||t.description!==void 0&&(typeof t.description!=`string`||L(t.description)>1e4))}catch{return!1}},g);if(e){let t=JSON.parse(e.content);_={...t,relays:jr(Array.isArray(t.relays)?t.relays:[]),icon:Mr(t.icon)?t.icon:void 0,banner:Mr(t.banner)?t.banner:void 0}}}let v=new Map;for(let[e,t]of d(`2`)){let r=e=>{if(!K(m,e.author,n,W.MANAGE_CHANNELS)||!h(e))return!1;try{let t=JSON.parse(e.content);return typeof t.name==`string`&&t.name.length>0&&L(t.name)<=64}catch{return!1}},i=J(t,s,c,r,g);if(!i)continue;let a=Pr(JSON.parse(i.content)),o=t.some(e=>{if(!r(e))return!1;try{return JSON.parse(e.content).deleted===!0}catch{return!1}});v.set(e,{channelIdHex:e,name:a.name,isPrivate:a.private===!0,deleted:a.deleted===!0||o,metadata:o?{...a,deleted:!0}:a})}let y=new Set,b=new Map;{let e=u(pn(t)),r=d(`4`).get(e)??[],i=e=>{let t;try{t=JSON.parse(e.content)}catch{return}if(Array.isArray(t))return t.filter(e=>typeof e==`string`&&/^[0-9a-f]{64}$/i.test(e)).map(e=>e.toLowerCase())},a=(e,t)=>Ao(m,e,n,t,W.BAN),o=e=>K(m,e.author,n,W.BAN)&&h(e)&&i(e)!==void 0,l=(e,t)=>{let n=g(e.author),r=g(t.author);if(n!==r)return n-r;let i=u(e.rumorId),a=u(t.rumorId);return i<a?-1:+(i>a)},f=new Map,p=new Set,_=new Set;for(let e of $o(r.map(e=>({parsed:e}))))for(let{parsed:t}of[...e].sort((e,t)=>l(e.parsed,t.parsed))){if(!o(t)||_.has(t.author))continue;let e=new Set(i(t).filter(e=>a(t.author,e)));for(let n of _)a(t.author,n)||e.add(n);_=e,f.set(t,e),p.add(t);break}let v=J(r,s,c,e=>p.has(e),g);if(v)for(let e of f.get(v)??[])y.add(e);for(let e of r)if(p.has(e))for(let t of i(e)){if(!a(e.author,t))continue;let n=b.get(t);(n===void 0||e.createdAt>n)&&b.set(t,e.createdAt)}}let ee=new Set,te=new Map;for(let[e,r]of d(`8`)){let i=J(r,s,c,r=>{if(u(mn(t,E(r.author)))!==e||!K(m,r.author,n,W.CREATE_INVITE)||!h(r))return!1;try{return Array.isArray(JSON.parse(r.content))}catch{return!1}},g);if(!i)continue;let a=JSON.parse(i.content).filter(e=>typeof e==`string`&&/^[0-9a-f]{64}$/i.test(e));te.set(i.author,a);for(let e of a)ee.add(e.toLowerCase())}let ne=new Map;for(let[e,t]of d(`11`)){let r=J(t,s,c,e=>K(m,e.author,n,W.PIN_MESSAGES)?h(e):!1,g);r&&ne.set(e,{content:r.content,author:r.author})}let re=new Map,x=d(`12`);for(let[e,r]of Object.entries(os)){let i=J(x.get(u(hn(t,e)))??[],s,c,t=>!K(m,t.author,n,r)||!h(t)?!1:cs(e,t.content,t.createdAt),g);i&&re.set(e,{content:JSON.parse(i.content),author:i.author,at:i.createdAt})}let ie=new Set;for(let e of o.values())for(let t of e.keys())ie.add(t);let ae=[...l];for(let e of r?.keys()??[])!ie.has(e)&&!l.has(e)&&ae.push(e);return{roster:m,ownerHex:n,metadata:_,channels:v,banned:y,bannedAt:b,liveInviteLinks:ee,registriesByCreator:te,pinLists:ne,signals:re,heads:s,headEditions:c,incomplete:ae}}function ps(e,t,n){return pa({kind:3308,content:``,tags:[[`vsk`,`10`],[`eid`,u(t)]],pubkey:e,ms:null,createdAtSecs:n})}async function ms(e,t,n){let r=cn(e);return ha(await ma(ps(t,e),pi,r,n),r)}function hs(e,t,n){if(e.author!==t||e.sealKind!==void 0&&e.sealKind!==20014)return!1;let r=e.tags.find(e=>e[0]===`vsk`)?.[1],i=e.tags.find(e=>e[0]===`eid`)?.[1];return e.kind===3308&&r===`10`&&i===u(n)}var gs=`armada.category`;function _s(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function vs(e){let t=_s(e.custom)?e.custom[gs]:void 0;if(!_s(t)||typeof t.name!=`string`)return;let n=t.name.trim();if(!(!n||L(n)>64))return n}function ys(e,t){let n=_s(e.custom)?{...e.custom}:{},r=t?.trim();r?n[gs]={name:r}:delete n[gs];let i={...e};return Object.keys(n).length>0?i.custom=n:delete i.custom,i}function bs(e){return e.trim().toLowerCase()}function xs(e,t){let n=new Map;for(let r of e){let e=t(r)?.trim();e&&!n.has(bs(e))&&n.set(bs(e),e)}return[...n.values()]}function Ss(e,t){let n=[],r=[],i=new Map;for(let a of e){let e=t(a)?.trim();if(!e){n.push(a);continue}let o=bs(e),s=i.get(o);s||(s={key:o,name:e,channels:[]},i.set(o,s),r.push(s)),s.channels.push(a)}return{uncategorized:n,categories:r}}var Cs=`armada.order`,ws=2**53-1;function Ts(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function Es(e){let t=Ts(e.custom)?e.custom[Cs]:void 0;if(!Ts(t))return;let n=t.position;if(!(typeof n!=`number`||!Number.isSafeInteger(n)||n<0))return n}function Ds(e,t){let n=Ts(e.custom)?{...e.custom}:{};t===void 0?delete n[Cs]:n[Cs]={position:t};let r={...e};return Object.keys(n).length>0?r.custom=n:delete r.custom,r}function Os(e,t){return(e.position??ws)-(t.position??ws)||e.name.localeCompare(t.name)}function ks(e,t,n){if(t===n||t<0||n<0||t>=e.length||n>=e.length)return[];let r=[...e],[i]=r.splice(t,1);r.splice(n,0,i);let a=[];return r.forEach((e,t)=>{e.position!==t&&a.push({idHex:e.idHex,position:t})}),a}function As(e){return e.view===`forum`?`forum`:`chat`}function js(e,t){let n={...e};return t===`chat`?delete n.view:n.view=t,n}
2function Ms(e,t,n){let r=Ht(),i=t.toLowerCase(),a=vn(E(i),r),o=Ht(),s=Ht(),c=nn(s,a,0n).pk,l=Ht();return{community:{id:a,idHex:u(a),owner:i,ownerSalt:r,root:o,rootEpoch:0n,controlPk:c,controlRoot:s,heldRoots:[{epoch:0n,key:o,controlPk:c}],privateChannels:[],relays:jr(n),name:e},generalChannelId:l}}function Ns(e,t){let n=[],r=new Set,i=new Map(e.privateChannels.map(e=>[u(e.id),e])),a=(e,t,n)=>({room:an(e,t,n),mediaKey:on(e,t,n)});for(let o of t?.channels.values()??[]){if(r.add(o.channelIdHex),o.deleted)continue;let t=E(o.channelIdHex),s=e.heldRoots.map(e=>({epoch:e.epoch,group:N(e.key,t,e.epoch),...e.retiredAt===void 0?{}:{retiredAt:e.retiredAt}})),c=i.get(o.channelIdHex),l=c?[{epoch:c.epoch,group:N(c.key,t,c.epoch)},...(c.priors??[]).map(e=>({epoch:e.epoch,group:N(e.key,t,e.epoch),...e.retiredAt===void 0?{}:{retiredAt:e.retiredAt}}))]:[];if(!o.isPrivate){let r;n.push({id:t,idHex:o.channelIdHex,name:o.name,isPrivate:!1,category:vs(o.metadata),position:Es(o.metadata),view:As(o.metadata),get voice(){return r??=a(e.root,t,e.rootEpoch)},streams:[...s,...l],current:s[0]});continue}if(!c)continue;let u;n.push({id:t,idHex:o.channelIdHex,name:o.name,isPrivate:!0,category:vs(o.metadata),position:Es(o.metadata),view:As(o.metadata),get voice(){return u??=a(c.key,t,c.epoch)},streams:l,current:l[0]})}for(let t of e.privateChannels){let e=u(t.id);if(r.has(e))continue;let i={epoch:t.epoch,group:N(t.key,t.id,t.epoch)},o=(t.priors??[]).map(e=>({epoch:e.epoch,group:N(e.key,t.id,e.epoch),...e.retiredAt===void 0?{}:{retiredAt:e.retiredAt}})),s;n.push({id:t.id,idHex:e,name:t.name||e.slice(0,8),isPrivate:!0,get voice(){return s??=a(t.key,t.id,t.epoch)},streams:[i,...o],current:i})}return n.sort(Os),n}function Ps(e){return e?e.algorithm===`aes-gcm`&&Rs(e.key,64)&&Rs(e.nonce):!1}function Fs(e){if(e)return{algorithm:e.algorithm,key:e.key,nonce:e.nonce}}function Is(e){let t=new Map;for(let n of e){if(n[0]!==`imeta`)continue;let e={},r=[];for(let t=1;t<n.length;t++){let i=n[t],a=i.indexOf(` `);if(a===-1)continue;let o=i.slice(0,a),s=i.slice(a+1);o===`fallback`?r.push(s):e[o]=s}if(e.url){let n=Vs(e);t.set(e.url,{url:e.url,thumbnail:e.thumb??e.image,mime:e.m,summary:e.summary,webxdc:e[`webxdc-topic`]??e.webxdc,dim:e.dim,blurhash:e.blurhash,name:e.name,size:e.size,fallbacks:r.length?r:void 0,encryption:n})}}return t}function Ls(e,t){if(!/^https?:\/\//i.test(e))return;let n={},r=[];for(let[e,i]of t)!e||i===void 0||(e===`fallback`?r.push(i):e in n||(n[e]=i));return{url:e,thumbnail:n.thumb??n.image,mime:n[`file-type`]??n.m,dim:n.dim,blurhash:n.blurhash,name:n.name,size:n.size,webxdc:n[`webxdc-topic`]??n.webxdc,fallbacks:r.length?r:void 0,encryption:Vs(n)}}function Rs(e,t){return!e||t!==void 0&&e.length!==t?!1:e.length%2==0&&/^[0-9a-f]+$/i.test(e)}function zs(e){try{let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}catch{return}}function Bs(e){let t=e.trim();if(Rs(t))return t.toLowerCase();let n=zs(t);return n&&n.length>0?u(n):e}function Vs(e){let t=e[`encryption-algorithm`];if(t)return{algorithm:t.toLowerCase(),key:Bs(e[`decryption-key`]??``),nonce:Bs(e[`decryption-nonce`]??``),ox:Rs(e.ox,64)?e.ox.toLowerCase():void 0}}var Hs=`application/vnd.webxdc+zip`,Us=[Hs,`application/x-webxdc`];function Ws(e){return e?Us.includes(e.trim().toLowerCase()):!1}var Gs=`jpg|jpeg|png|gif|webp|svg|avif`,Ks=`mp4|webm|mov|qt|avi|mkv|flv`,qs=`mp3|mpga|wav|ogg|oga|flac|m4a|aac|opus|weba`,Js=`${Gs}|${Ks}|${qs}|xdc`,Ys=RegExp(`https?:\\/\\/[^\\s]+\\.(${Gs})(\\?[^\\s]*)?`,`i`);RegExp(`https?:\\/\\/[^\\s]+\\.(${Ks})(\\?[^\\s]*)?`,`gi`),RegExp(`https?:\\/\\/[^\\s]+\\.(${qs})(\\?[^\\s]*)?`,`gi`);var Xs=RegExp(`https?:\\/\\/[^\\s]+\\.(${Ks}|${qs}|xdc)(\\?[^\\s]*)?`,`i`),Zs=RegExp(`https?:\\/\\/[^\\s]+\\.(${Js})(\\?[^\\s]*)?`,`gi`);new RegExp(Zs.source,`i`);var Qs=/(^|\.)(tenor\.com|giphy\.com)$/i;function $s(e){let t;try{t=new URL(e)}catch{return!1}return Qs.test(t.hostname)?!0:/\.gif\.(mp4|webm)$/i.test(t.pathname)}var ec=/^(avi|flv|wmv|asf|mpg|mpeg|vob|rm|rmvb|divx)$/,tc=/^video\/(x-msvideo|vnd\.avi|avi|msvideo|x-ms-wmv|x-ms-asf|x-flv|flv|mpeg|vnd\.rn-realvideo|divx)$/;function nc(e,t){if(t&&tc.test(t.toLowerCase()))return!0;let n=``;try{let t=new URL(e).pathname.split(`/`).pop()??``,r=t.lastIndexOf(`.`);r>0&&r<t.length-1&&(n=t.slice(r+1).toLowerCase())}catch{}return n?ec.test(n):!1}function rc(e){switch(e){case`jpg`:case`jpeg`:return`image/jpeg`;case`png`:return`image/png`;case`gif`:return`image/gif`;case`webp`:return`image/webp`;case`svg`:return`image/svg+xml`;case`avif`:return`image/avif`;case`mp4`:return`video/mp4`;case`webm`:return`video/webm`;case`mov`:return`video/quicktime`;case`qt`:return`video/quicktime`;case`avi`:return`video/x-msvideo`;case`mkv`:return`video/x-matroska`;case`flv`:return`video/x-flv`;case`mp3`:return`audio/mpeg`;case`mpga`:return`audio/mpeg`;case`wav`:return`audio/wav`;case`ogg`:return`audio/ogg`;case`oga`:return`audio/ogg`;case`flac`:return`audio/flac`;case`m4a`:return`audio/mp4`;case`aac`:return`audio/aac`;case`opus`:return`audio/opus`;case`weba`:return`audio/webm`;case`xdc`:return Hs;default:return`application/octet-stream`}}var ic={query:``,channelIds:[],authors:[],media:`all`};function ac(e){return e.query.trim().length>=2||e.authors.length>0||e.media!==`all`}function oc(e){return+(e.channelIds.length>0)+ +(e.authors.length>0)+(e.media===`all`?0:1)}var sc=RegExp(`https?:\\/\\/[^\\s]+\\.(${Ks})(\\?[^\\s]*)?`,`i`),cc=RegExp(`https?:\\/\\/[^\\s]+\\.(${qs})(\\?[^\\s]*)?`,`i`),lc=/https?:\/\/\S+/i;function uc(e,t){let n=!1,r=!1,i=!1,a=Is(t);for(let e of a.values()){let t=e.mime??``;t.startsWith(`image/`)||Ys.test(e.url)?n=!0:t.startsWith(`video/`)||sc.test(e.url)?r=!0:(t.startsWith(`audio/`)||cc.test(e.url))&&(i=!0)}
2Ys.test(e)&&(n=!0),sc.test(e)&&(r=!0),cc.test(e)&&(i=!0);let o=a.size>0||lc.test(e);return{hasImage:n,hasVideo:r,hasAudio:i,hasUrl:o}}function dc(e,t,n){if(n===`all`)return!0;let r=uc(e,t);switch(n){case`images`:return r.hasImage;case`videos`:return r.hasVideo;case`links`:return r.hasUrl;case`none`:return!r.hasUrl&&!r.hasImage&&!r.hasVideo&&!r.hasAudio;default:return!0}}function fc(e){return`dm-thread:${e}`}var pc=50,mc=new Set,Y=new Set,hc=new Set,gc,_c=!1,vc=new Set;function yc(e){return e===`dm:wrap`||e===`c2inv:wrap`||e.startsWith(`c2park:`)}var bc=(()=>{if(!(typeof BroadcastChannel>`u`))try{let e=new BroadcastChannel(`armada-wire-bus`);return e.onmessage=e=>{let t=Array.isArray(e.data)?e.data.filter(e=>typeof e==`string`):[];if(t.length!==0){for(let e of t)Y.add(e);xc()}},e.unref?.(),e}catch{return}})();function xc(){Y.size>0&&gc===void 0&&(gc=setTimeout(Cc,pc))}function Sc(e){if(e.size!==0)for(let t of mc)try{t(e)}catch{}}function Cc(){if(gc=void 0,Y.size===0)return;let e=Y,t=[...hc].filter(e=>!yc(e));if(Y=new Set,hc=new Set,t.length>0)try{bc?.postMessage(t)}catch{}if(_c){let t=new Set;for(let n of e)yc(n)?t.add(n):vc.add(n);Sc(t);return}Sc(e)}function wc(e){for(let t of e)Y.add(t),hc.add(t);xc()}function Tc(e){return mc.add(e),()=>mc.delete(e)}function Ec(e){if(_c!==e&&(_c=e,!e&&vc.size>0)){let e=vc;vc=new Set,Sc(e)}}var Dc=`channel`;function X(e){return n().tenant(Oc(e))}function Oc(e){return`c2:${e}`}var kc=e=>`c2snap:${e}:`,Ac=(e,t)=>`${kc(e)}${t}`;async function jc(e,t){if(!(!e||!t))try{let r=await n().kv.get(Ac(e,t));return r&&r.length>0?new Set(r):void 0}catch{return}}async function Mc(e,t){let r=new Map;for(let e of t){if(!e.streamPk)continue;let t=r.get(e.streamPk);t?t.push(e.rumorId):r.set(e.streamPk,[e.rumorId])}let i=n().kv;await Promise.all([...r].map(async([t,n])=>{let r=Ac(e,t),a=new Set(await i.get(r)??[]),o=a.size;for(let e of n)a.add(e);a.size!==o&&await i.set(r,[...a])}))}async function Nc(e,t){if(e)try{let r=n().kv,i=new Set(t.map(t=>Ac(e,t))),a=(await r.list({prefix:kc(e)})).map(({key:e})=>e).filter(e=>!i.has(e));await Promise.all(a.map(e=>r.delete(e)))}catch{}}function Pc(e){return{id:e.rumorId,kind:e.kind,content:e.content,tags:e.tags,created_at:e.createdAt,pubkey:e.author}}function Fc(e){return{rumorId:e.id,author:e.pubkey,kind:e.kind,content:e.content,tags:e.tags,ms:_a(e.created_at,e.tags),createdAt:e.created_at}}function Z(e,t){let n=Fc(e),r=n.tags.find(e=>e[0]===`epoch`)?.[1];return{...n,channelIdHex:t,epoch:r?BigInt(r):0n}}var Ic=[9,1068,1111,1740,31922,31923],Lc=[5,7,1018,3302,8333,9735,31925],Rc=[...Ic,...Lc],zc=4,Bc=[9,1068,1111];function Q(e){let t=Math.floor(Date.now()/1e3);return e.filter(e=>!C(e.tags,t))}async function Vc(e,t,n){let r=(e,r)=>{let i={kinds:e,"#channel":[t],limit:r};return n.before!==void 0&&(i.until=n.before-1),i};return Q(await X(e).query([r(Ic,n.limit),r(Lc,n.limit*zc)],{signal:n.signal})).map(e=>Z(e,t))}async function Hc(e,t,n,r){let i=[...new Set(n.filter(Boolean))];return i.length===0?[]:Q(await X(e).query([{ids:i,kinds:Ic,"#channel":[t]}],{signal:r?.signal})).map(e=>Z(e,t))}async function Uc(e,t,n){let r=await X(e).query([{kinds:Bc,"#channel":[t],since:Math.floor(n.sinceMs/1e3),limit:n.limit}],{signal:n.signal}),i=new Map;for(let e of Q(r)){let n=Z(e,t),r=i.get(n.author);(r===void 0||n.ms<r)&&i.set(n.author,n.ms)}return i}var Wc=(e,t)=>`c2fs:${e}:${t}`,Gc=10*6e4,Kc=4e3,qc=new Map;async function Jc(e,t,r){let i=Wc(e,t),a=n().kv,o;try{let e=await a.get(i);e&&e.v===1&&Array.isArray(e.entries)&&typeof e.scannedToMs==`number`&&(o=e)}catch{}let s=new Map(o?.entries??[]),c=o?Math.max(r.sinceMs,o.scannedToMs-Gc):r.sinceMs,l=Date.now(),u=await Uc(e,t,{sinceMs:c,limit:r.limit,signal:r.signal}),d=o===void 0,f=(e,t)=>{let n=s.get(e);(n===void 0||t<n)&&(s.set(e,t),d=!0)};for(let[e,t]of u)f(e,t);let p=qc.get(i);if(p){qc.delete(i);for(let[e,t]of p)f(e,t)}if(d||o&&l-o.scannedToMs>Gc){let e=[...s];e.length>Kc&&(e.sort((e,t)=>e[1]-t[1]),e=e.slice(0,Kc)),a.set(i,{v:1,scannedToMs:l,entries:e}).catch(()=>void 0)}return s}function Yc(e,t){for(let n of t){if(!Bc.includes(n.kind)||!n.channelIdHex)continue;let t=Wc(e,n.channelIdHex),r=qc.get(t);r||(r=new Map,qc.set(t,r));let i=r.get(n.author);(i===void 0||n.ms<i)&&r.set(n.author,n.ms)}}async function Xc(e,t,n){return t.length===0?[]:Q(await X(e).query([{ids:t}],{signal:n?.signal})).map(Fc)}var Zc=2e3;async function Qc(e,t,n){return t?Q(await X(e).query([{kinds:[wi],"#channel":[t],limit:Zc}],{signal:n?.signal})).map(e=>Z(e,t)):[]}async function $c(e,t,n,r){return!t||!n?[]:Q(await X(e).query([{kinds:[wi],"#channel":[t],"#i":[n],limit:1e3}],{signal:r?.signal})).map(e=>Z(e,t))}async function el(e,t,n){let r=new Map;if(t.length===0)return r;let i=await X(e).query(t.flatMap(e=>[{kinds:Ic,"#channel":[e],limit:n.perChannel},{kinds:Lc,"#channel":[e],limit:n.perChannel}]),{signal:n.signal});for(let e of Q(i)){let t=e.tags.find(e=>e[0]===`channel`)?.[1];if(!t)continue;let n=r.get(t);n||r.set(t,n=[]),n.push(Z(e,t))}return r}async function tl(e,t,n,r){if(t.length===0||!n)return[];let i=[{kinds:[9,1111],"#p":[n],"#channel":t,limit:r.limit}];r.everyoneAuthors&&r.everyoneAuthors.length>0&&i.push({kinds:[9,1111],authors:r.everyoneAuthors,"#channel":t,limit:Math.max(r.limit*5,1e3)});let a=await X(e).query(i,{signal:r.signal});return[...new Map(Q(a).map(e=>[e.id,e])).values()].map(e=>Z(e,e.tags.find(e=>e[0]===`channel`)?.[1]??``))}var nl=[9,1068,1111],rl=5e3;async function il(e,t,n){if(t.length===0)return[];let r={kinds:nl,"#channel":t,limit:rl};n.authors&&n.authors.length>0&&(r.authors=n.authors);let i=Q(await X(e).query([r],{signal:n.signal})),a=n.query.trim().toLowerCase(),o=n.media??`all`,s=[];for(let e of i){if(a&&!e.content.toLowerCase().includes(a)||!dc(e.content,e.tags,o))continue;let t=e.tags.find(e=>e[0]===`channel`)?.[1]??``;if(s.push(Z(e,t)),s.length>=n.limit)break}return s}async function al(e,t,n){let r={kinds:Ri[t].kinds};return n?.limit!==void 0&&(r.limit=n.limit),(await X(e).query([r],{signal:n?.signal})).map(Fc)}async function ol(e,t,n){if(t.length===0)return[];let r=[...new Set(t.map(e=>e.scopeIdHex.toLowerCase()))],i=new Set(t.map(e=>`${e.scopeIdHex.toLowerCase()}:${e.newEpoch}`)),a=await X(e).query([{kinds:Ri.rekey.kinds,"#scope":r}],{signal:n?.signal}),o=[];for(let e of a){let t=e.tags.find(e=>e[0]===`scope`)?.[1]?.toLowerCase(),n=e.tags.find(e=>e[0]===`newepoch`)?.[1];if(!t||!n)continue;let r;try{r=BigInt(n)}catch{continue}i.has(`${t}:${r}`)&&o.push(Fc(e))}return o}var sl=new Set([9,mi,hi]),$=new Set,cl=2e4;function ll(e){if($.add(e),$.size>cl){let e=$.values().next().value;e!==void 0&&$.delete(e)}}function ul(e,t){return`c2seal:${e}:${t}`}async function dl(e,t){if(!(!e||!t))try{return await n().kv.get(ul(e,t))}catch{return}}async function fl(e,t,r){await n().kv.set(ul(e,t),r)}function pl(e,t,r,i=!0){if(t.length===0||!e)return Promise.resolve(!0);let a=n(),o=a.tenant(Oc(e)),s=[];for(let n of t)if(s.push(o.event(Pc(n))),n.seal&&(n.sealKind===20014||sl.has(n.kind))){let t=ul(e,n.rumorId);if($.has(t))continue;ll(t),s.push(a.kv.set(t,n.seal).catch(()=>{$.delete(t)}))}return r===`control`&&i&&s.push(Mc(e,t)),Promise.all(s).then(()=>!0).catch(()=>!1)}function ml(e,t,n,r={}){let i=Ri[n];return pl(e,t.filter(e=>i.kinds.includes(e.kind)&&e.sealKind===i.sealKind&&!e.tags.some(e=>e[0]===Dc)),n,r.refounded??!0)}function hl(e,t){let n=Math.floor(Date.now()/1e3),r=t.filter(e=>!zi.has(e.kind)&&!C(e.tags,n));if(r.length===0)return Promise.resolve(!0);let i=new Set(r.map(e=>
2e.channelIdHex).filter(Boolean));return Yc(e,r),pl(e,r).then(e=>(e&&i.size>0&&wc([...i].map(e=>`c2:${e}`)),e))}var gl=1e3,_l=20,vl=6*3600*1e3,yl=new Map;async function bl(e,t={}){if(!e)return 0;let n=yl.get(e);if(n!==void 0&&Date.now()-n<vl)return 0;yl.set(e,Date.now());let r=X(e),i=Math.floor(Date.now()/1e3),a=[...Rc,wi],o,s=0,c=new Set;for(let e=0;e<_l;e++){let e={kinds:a,limit:gl};o!==void 0&&(e.until=o);let n=await r.query([e],{signal:t.signal});if(n.length===0)break;let l=n.filter(e=>C(e.tags,i));if(l.length>0){await r.remove([{ids:l.map(e=>e.id)}],{signal:t.signal}),s+=l.length;for(let e of l){let t=e.tags.find(e=>e[0]===`channel`)?.[1];t&&c.add(t)}}if(n.length<gl)break;let u=Math.min(...n.map(e=>e.created_at));if(o!==void 0&&u-1>=o)break;o=u-1}return c.size>0&&wc([...c].map(e=>`c2:${e}`)),s}var xl=e.c2Park,Sl=`c2parksig:`,Cl=e=>`${Sl}${e}`;async function wl(e){if(e.length===0)return[];let t=new Map;try{let e=await n().kv.list({prefix:Sl});t=new Map(e.map(e=>[e.key.slice(10),e.value]))}catch{}return e.map(e=>({...e,sig:t.get(e.id)??``}))}function Tl(e){if(e.length===0)return;let t=n().kv;Promise.all(e.map(e=>t.delete(Cl(e)))).catch(()=>void 0)}var El=336*3600;function Dl(){return n().tenant(xl)}var Ol,kl=5*6e4,Al=0;function jl(e){if(e.length===0)return;Ol=!1;let t=Dl(),r=n().kv;Promise.all(e.flatMap(({sig:e,...n})=>[t.event(n),...typeof e==`string`&&e.length>0?[r.set(Cl(n.id),e)]:[]])).catch(()=>void 0)}async function Ml(e){if(e.length===0||Ol===!0)return[];let t=Dl();try{if(Ol===void 0){let e=await t.query([{kinds:[1059,21059],limit:1}]);if(Ol===void 0&&(Ol=e.length===0),Ol===!0)return[]}let n=Date.now();if(n-Al>=kl){Al=n;let e=Math.floor(n/1e3)-El;(async()=>{let n={kinds:[1059,21059],until:e},r=await t.query([n]);await t.remove([n]),Tl(r.map(e=>e.id))})().catch(()=>void 0)}return await wl(await t.query([{kinds:[1059,21059],authors:e,limit:1e3}]))}catch{return[]}}function Nl(e){e.length!==0&&(Dl().remove([{ids:e}]).catch(()=>void 0),Tl(e))}var Pl=e=>`concord2-cursor:${e}`;function Fl(e){return mt(Pl(e))}var Il=new Map;function Ll(e,t){let n=(Il.get(e)??Promise.resolve()).then(t,t),r=n.catch(()=>void 0).then(()=>{Il.get(e)===r&&Il.delete(e)});return Il.set(e,r),n}function Rl(e,t){return Ll(e,async()=>{let n=await Fl(e),r={newest:Math.max(n?.newest??0,t.newest??0),oldest:t.oldest===void 0?n?.oldest??0:n?.oldest?Math.min(n.oldest,t.oldest):t.oldest,exhausted:t.exhausted??n?.exhausted??!1};await vt(Pl(e),r)})}function zl(e){return Ll(e,async()=>{let t=await Fl(e);t?.exhausted&&await vt(Pl(e),{...t,exhausted:!1})})}var Bl=Fl,Vl=Rl,Hl=zl;export{Ns as $,Qe as $i,Mi as $n,cr as $r,xo as $t,fl as A,le as Aa,dn as Ai,ca as An,ai as Ar,Ro as At,Xs as B,an as Bi,Si as Bn,Kn as Br,Co as Bt,Fl as C,He as Ca,N as Ci,Wi as Cn,Yr as Cr,No as Ct,Rl as D,fe as Da,cn as Di,Bi as Dn,ii as Dr,Jo as Dt,Vl as E,pe as Ea,nn as Ei,Gi as En,ni as Er,rs as Et,ic as F,en as Fi,oa as Fn,L as Fr,Qa as Ft,rc as G,ut as Gi,hi as Gn,Yn as Gr,mo as Gt,Zs as H,sn as Hi,Pi as Hn,Jn as Hr,Ao as Ht,oc as I,fn as Ii,na as In,Fr as Ir,W as It,Ws as J,ft as Ji,Di as Jn,pr as Jr,bo as Jt,Hs as K,bt as Ki,Ni as Kn,lr as Kr,po as Kt,ac as L,Ht as Li,Hi as Ln,Wn as Lr,Ya as Lt,wc as M,me as Ma,E as Mi,ua as Mn,Ar as Mr,Yo as Mt,Tc as N,oe as Na,Qt as Ni,Ki as Nn,jr as Nr,ms as Nt,ml as O,de as Oa,bn as Oi,Zi as On,oi as Or,hs as Ot,Ec as P,ge as Pa,mn as Pi,aa as Pn,Nr as Pr,Fo as Pt,Is as Q,qe as Qi,bi as Qn,mr as Qr,yo as Qt,Js as R,gn as Ri,xi as Rn,Un as Rr,To as Rt,dl as S,Ve as Sa,un as Si,B as Sn,ti as Sr,Mo as St,bl as T,_e as Ta,tn as Ti,Ui as Tn,ri as Tr,ns as Tt,$s as U,$e as Ui,Fi as Un,Xn as Ur,ko as Ut,Ys as V,on as Vi,mi as Vn,qn as Vr,$a as Vt,nc as W,dt as Wi,Ai as Wn,Gn as Wr,oo as Wt,Ps as X,vt as Xi,vi as Xn,gr as Xr,G as Xt,Fs as Y,mt as Yi,Oi as Yn,dr as Yr,so as Yt,Ls as Z,Ke as Zi,yi as Zn,_r as Zr,K as Zt,Xc as _,ze as _a,Fn as _i,va as _n,Rr as _r,Go as _t,Mc as a,be as aa,nr as ai,So as an,Ei as ar,Ds as at,Bl as b,C as ba,Pn as bi,ha as bn,Xr as br,is as bt,Ml as c,Ce as ca,tr as ci,Ua as cn,di as cr,Ss as ct,Vc as d,Me as da,vr as di,ka as dn,Ri as dr,ls as dt,Ee as ea,rr as ei,no as en,fi as er,Ms as et,Hc as f,Ne as fa,ir as fi,ga as fn,Li as fr,as as ft,el as g,Re as ga,In as gi,ya as gn,si as gr,Bo as gt,ol as h,Be as ha,Vn as hi,Ta as hn,z as hr,Uo as ht,Oc as i,ye as ia,fr as ii,ao as in,Ti as ir,ks as it,fc as j,ce as ja,rn as ji,la as jn,li as jr,ds as jt,hl as k,se as ka,$t as ki,ia as kn,ei as kr,zo as kt,Nc as l,Oe as la,er as li,Ha as ln,_i as lr,ys as lt,al as m,Pe as ma,Bn as mi,Ca as mn,$r as mr,Ho as mt,Nl as n,Se as na,or as ni,Oo as nn,ki as nr,Es as nt,Pc as o,we as oa,Zn as oi,go as on,wi as or,bs as ot,tl as p,Fe as pa,Cn as pi,pa as pn,Ir as pr,Wo as pt,Us as q,_t as qi,Ii as qn,ur as qr,Do as qt,Hl as r,Te as ra,$n as ri,co as rn,gi as rr,Os as rt,jl as s,xe as sa,Qn as si,H as sn,ui as sr,xs as st,Ic as t,De as ta,hr as ti,lo as tn,pi as tr,js as tt,Jc as u,Le as ua,ar as ui,Va as un,zi as ur,us as ut,Qc as v,Ie as va,zn as vi,ba as vn,Lr as vr,Vo as vt,il as w,Ue as wa,ln as wi,ta as wn,ci as wr,Po as wt,jc as x,Ge as xa,pn as xi,sa as xn,Zr as xr,qo as xt,$c as y,S as ya,Nn as yi,ma as yn,Qr as yr,Ko as yt,qs as z,hn as zi,Ci as zn,Hn as zr,eo as zt};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.