PageSourceSearch

https://armada.buzz/assets/useCurrentUser-D4QnF4TO.js

js armada.buzz collected 2026-10-02 00:26:47 UTC 15,612 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/bitcoin-signers-impl-DiaEf2l8.js","assets/vendor-nostr-B8luZNPL.js","assets/rolldown-runtime-QTnfLwEv.js","assets/lucide-icons-GmG7O7nz.js","assets/bitcoin-B1FKumh-.js","assets/silentPaymentsCore-BQkvFdYF.js","assets/esplora-D4PiXX4N.js"])))=>i.map(i=>d[i]);
2import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./dist-BcvA-GRa.js";import{C as n,S as r,_ as i,a,b as o,d as s,f as c,m as l,o as u,r as d,s as f,t as p,u as m,y as h}from"./kvCache-DmzGwgBm.js";import{C as g,R as _,V as ee,gt as v,ht as te,lt as ne,ot as re,w as y,x as ie}from"./vendor-nostr-B8luZNPL.js";import{O as ae}from"./platform-CX72QBWD.js";import{m as oe}from"./vendor-react-Cj-tKOwh.js";import{$r as se,$t as ce}from"./lucide-icons-GmG7O7nz.js";import{i as le,s as ue}from"./vendor-tanstack-CZLUN3pe.js";import{t as de}from"./useToast-BaojZlzQ.js";var b=e(se(),1),fe=512,pe=2048;function me(e){return typeof e.signPsbt==`function`}var he=class extends _{#e;constructor(e){super(e),this.#e=new Uint8Array(e)}nip44={encrypt:async(e,t)=>v.v2.encrypt(t,this.#r(e)),decrypt:async(e,t)=>v.v2.decrypt(t,this.#r(e))};#t=new Map;#n=new Set;#r(e){let t=this.#t.get(e);if(t)return this.#t.delete(e),this.#t.set(e,t),t;let n=v.v2.utils.getConversationKey(this.#e,e);if(this.#n.delete(e)){if(this.#t.set(e,n),this.#t.size>fe){let e=this.#t.keys().next();e.done||this.#t.delete(e.value)}}else if(this.#n.add(e),this.#n.size>pe){let e=this.#n.values().next();e.done||this.#n.delete(e.value)}return n}async signPsbt(e){let{signNsecPsbt:t}=await oe(async()=>{let{signNsecPsbt:e}=await import(`./bitcoin-signers-impl-DiaEf2l8.js`);return{signNsecPsbt:e}},__vite__mapDeps([0,1,2,3,4,5,6]));return t(e,this.#e)}},ge=class extends re{constructor(e){super(e)}async signPsbt(e){let t=await this.awaitNostr();if(typeof t.signPsbt!=`function`)throw Error(`Your browser extension doesn't support sending Bitcoin. Try a different extension, or log in with your secret key.`);let n=t.signPsbt;return n(e)}},x=ne();function _e({description:e,android:t,relayOk:n,onCancel:r}){return(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`span`,{className:`block text-sm opacity-80`,children:e}),t&&n?(0,x.jsx)(ve,{onCancel:r}):(0,x.jsx)(`span`,{className:`block mt-1.5`,children:(0,x.jsx)(ye,{onClick:r})})]})}function ve({onCancel:e}){let[t,n]=(0,b.useState)(!1);return(0,x.jsxs)(`span`,{className:`flex items-center gap-3 mt-2`,children:[t?(0,x.jsxs)(`span`,{className:`text-sm opacity-80 inline-flex items-center gap-1.5`,children:[(0,x.jsx)(ce,{className:`size-4 animate-spin`}),`Waiting for signer...`]}):(0,x.jsx)(`a`,{href:`nostrsigner:`,className:`text-sm font-semibold border border-current rounded px-3 py-1.5 no-underline inline-flex items-center gap-1.5 min-h-[44px]`,onClick:()=>{n(!0)},children:`Approve in signer`}),t?(0,x.jsx)(`button`,{type:`button`,onClick:e,className:`text-sm font-semibold border border-current rounded px-3 py-1.5 min-h-[44px]`,children:`Cancel`}):(0,x.jsx)(ye,{onClick:e})]})}function ye({onClick:e}){return(0,x.jsx)(`button`,{type:`button`,onClick:e,className:`text-sm bg-transparent border-none p-0 cursor-pointer opacity-80 underline underline-offset-2 min-h-[44px] inline-flex items-center`,children:`Skip`})}var be=4e3,xe=65e3,Se=8e3;function Ce(){return typeof navigator<`u`&&/Android/i.test(navigator.userAgent)}var we={0:`profile update`,1:`post`,3:`contact list update`,7:`reaction`,9:`message`,1059:`direct message`,9734:`zap request`,9735:`zap`,10009:`server list update`,24242:`file upload auth`,30078:`app settings`};function Te(e,t){return e!==void 0&&we[e]?we[e]:t===`encrypt`?`encryption`:t===`decrypt`?`decryption`:`signing`}var Ee=Symbol(`cancel`),De=Symbol(`timeout`),Oe=0;function ke(e){let{kind:t,opType:n,isBunkerConnected:r,onCancel:i}=e,a=Ce(),o=r?r():!0,s=Te(t,n),c=Date.now();if(c-Oe<Se)return{dismiss:()=>{}};Oe=c;let l,u;o?a?(l=`Approve ${s}`,u=`Set to auto-approve for a smoother experience.`):(l=`Approve ${s}`,u=`Approve the request in your signer app.`):(l=`Signer relay unreachable`,u=`Check your connection and try again.`);let d={fn:void 0},f=(0,b.createElement)(_e,{description:u,android:a,relayOk:o,onCancel:()=>{d.fn?.(),i()}}),{dismiss:p}=de({title:l,description:f,duration:12e4});return d.fn=p,{dismiss:p}}function Ae(e){de({title:`${e===`encrypt`?`Encryption`:e===`decrypt`?`Decryption`:`Signing`} approved`,duration:3e3,variant:`success`})}function S(){let e;return{promise:new Promise(t=>{e=t}),resolve:e}}async function je(e,t){let{kind:n,opType:r,isBunkerConnected:i}=t,a=!1,o=S(),s=S(),c,l=setTimeout(()=>{a=!0,c=ke({kind:n,opType:r,isBunkerConnected:i,onCancel:()=>o.resolve(Ee)}
2).dismiss},be),u=setTimeout(()=>s.resolve(De),xe);function d(){clearTimeout(l),clearTimeout(u),c?.()}let f=e().then(e=>({tag:`value`,value:e}),e=>({tag:`error`,error:e})),p=Promise.race([o.promise,s.promise]).then(e=>({tag:`signal`,signal:e})),m=await Promise.race([f,p]);if(d(),m.tag===`value`)return a&&Ae(r),m.value;if(m.tag===`error`)throw m.error;switch(m.signal){case Ee:throw Error(`Signing cancelled by user`);case De:throw Error(`Signer timed out`)}}function Me(e,t){function n(e,n,r){return je(e,{kind:n,opType:r,isBunkerConnected:t})}let r={getPublicKey:()=>n(()=>e.getPublicKey(),void 0,`sign`),signEvent:t=>n(()=>e.signEvent(t),t.kind,`sign`)};if(e.getRelays){let t=e.getRelays.bind(e);r.getRelays=()=>n(()=>t(),void 0,`sign`)}if(e.nip04&&(r.nip04=e.nip04),e.nip44&&(r.nip44=e.nip44),me(e)){let t=e;r.signPsbt=e=>n(()=>t.signPsbt(e),void 0,`sign`)}let i=e;return typeof i.isDecryptCached==`function`&&(r.isDecryptCached=i.isDecryptCached.bind(e)),r}var C=(0,b.createContext)(null);function Ne(e){let t=(0,b.useContext)(C);return!!(t&&e&&t.media(e))}function Pe(e){let t=(0,b.useContext)(C);return!!(t&&e&&t.avatar(e))}function Fe(e){let t=(0,b.useContext)(C);return(0,b.useMemo)(()=>!t||!e?Ie:t.media(e)?Le:n=>t.host(e,n),[t,e])}var Ie=()=>!1,Le=()=>!0,Re=new Set([13534,39e3,39001,39002,39003,39004,39005]);function w(e){return Re.has(e.kind)?!0:e.tags.some(e=>e[0]===`h`&&typeof e[1]==`string`&&e[1]!==``)}function T(e){let t=ae(e);return t?`nip29:${t}`:void 0}function ze(e,t,n){return w(e)?t?T(t):void 0:n}var Be=class{tenant(e){return o().tenant(e)}scoped(e){if(!e?.relay)return this.tenant(h.main);let t=T(e.relay);return t?this.tenant(t):void 0}event(e,t){if(ee.ephemeral(e.kind))return Promise.resolve();let n=ze(e,t?.relay,h.main);if(!n)return Promise.resolve();let{sig:r,...i}=e;return this.tenant(n).event(i,t)}query(e,t){return this.scoped(t)?.query(e,t)??Promise.resolve([])}count(e,t){return this.scoped(t)?.count(e,t)??Promise.resolve({count:0,approximate:!1})}remove(e,t){return this.scoped(t)?.remove(e,t)??Promise.resolve()}close(){return Promise.resolve()}},Ve;function He(){return Ve??=new Be,Promise.resolve(Ve)}var E=new Set,Ue=!1;function We(e){return!Ue&&t.isNativePlatform()&&(Ue=!0,r.addListener(`appStateChange`,({isActive:e})=>{for(let t of[...E])t(e)})),E.add(e),()=>{E.delete(e)}}var Ge=15e3,D=!1,Ke=!1,O,qe=!1,k=new Set,A=new Set;function j(e){if(D!==e){D=e;for(let e of[...k])try{e()}catch{}}}function Je(){if(A.size>0)return!0;if(typeof document>`u`)return!1;for(let e of document.querySelectorAll(`audio, video`))if(!e.paused&&!e.ended)return!0;return!1}function Ye(){qe||(qe=!0,We(e=>{if(O!==void 0&&clearTimeout(O),O=void 0,e){j(!1);return}O=setTimeout(()=>{O=void 0,Ke&&!Je()&&j(!0)},Ge)}),typeof document<`u`&&document.addEventListener(`play`,()=>j(!1),!0))}function Xe(){return D}function Ze(e){return Ye(),k.add(e),()=>{k.delete(e)}}function Qe(e){Ke=e,Ye(),e||j(!1)}function $e(e){return A.add(e),j(!1),()=>{A.delete(e)}}var et=5e3,M=!1,N=new Set;function tt(){for(let e of[...N])e()}function nt(){M||(M=!0,tt())}function rt(){return M}function it(e){if(M)return e(),()=>void 0;let t=()=>{N.delete(t),e()};return N.add(t),()=>{N.delete(t)}}function at(){return(0,b.useSyncExternalStore)(e=>(N.add(e),()=>{N.delete(e)}),()=>M,()=>M)}setTimeout(nt,et);var ot=3,st=1,ct=5*6e4,lt=50,P={visible:2,background:1,prefetch:0},ut=Object.freeze({status:`idle`}),dt=new Map,F=new Map,I=new p({prefix:`sync-fresh:`}),ft=!1,pt=!1,L,R=1/0,z=!1;function B(){z||(z=!0,queueMicrotask(()=>{z=!1,wt()}))}function mt(e,t){dt.set(e,t),B()}function ht(e,t=`visible`,n){bt();let r=vt(e),i={priority:t};return r.wants.add(i),n?.force&&(r.forced=!0),r.run&&P[t]>P[r.run.priority]&&(r.run.priority=t),r.state.status===`idle`&&yt(e)!==void 0&&H(e,r,`pending`),B(),()=>{r.wants.delete(i)&&(r.wants.size===0&&(r.run?r.run.controller.abort():r.state.status===`pending`&&H(e,r,I.get(e)===void 0?`idle`:`settled`),r.forced=!1),B())}}function V(e){let t=F.get(e);t&&(t.forced=!0,B())}function gt(e){return F.get(e)?.state??ut}function _t(e,t){let n=vt(e);return n.listeners.add(t),()=>{n.listeners.delete(t)}}function vt(e){let t=F.get(e);if(!t){let n=I.get(e);t={wants:new Set,nextEligibleAt:0,failures:0,forced:!1,state:n===void 0?ut:{status:`idle`,lastSyncedAt:n},listeners:new Set},F.set(e,t)}return t}function H(e,t,n){let r=I.get(e);if(!(t.state.status===n&&t.state.lastSyncedAt===r)){t.state=r===void 0?{status:n}:{status:n,lastSyncedAt:r};for(let e of[...t.listeners])try{e()}catch{}}}function yt(e){let t,n=-1;for(let[r,i]of dt)r.length>n&&e.startsWith(r)&&(t=i,n=r.length);return t}function bt(){pt||(pt=!0,I.ready().finally(()=>{ft=!0,B()}),I.subscribe(()=>{for(let[e,t]of F)H(e,t,t.state.status);B()}),it(B),Ze(B),typeof document<`u`&&document.addEventListener(`visibilitychange`,B),typeof window<`u`&&(window.addEventListener(`focus`,B),window.addEventListener(`online`,B)))}
2function xt(){return!!(!rt()||!ft||typeof document<`u`&&document.visibilityState===`hidden`||Xe())}function St(e){let t=`prefetch`;for(let n of e.wants)P[n.priority]>P[t]&&(t=n.priority);return t}function Ct(e,t,n){if(t.forced)return t.nextEligibleAt;let r=I.get(e)??0;return Math.max(t.nextEligibleAt,r+n.staleAfterMs)}function wt(){if(xt())return;let e=Date.now(),t=0,n=0;for(let e of F.values())e.run&&(e.run.priority===`visible`?t++:n++);let r=[];for(let[e,t]of F){if(t.wants.size===0||t.run)continue;let n=yt(e);n&&r.push({topic:e,rt:t,policy:n,priority:St(t),at:Ct(e,t,n)})}r.sort((e,t)=>P[t.priority]-P[e.priority]||e.at-t.at);let i=1/0;for(let a of r){if(a.at>e){i=Math.min(i,a.at),(a.rt.state.status===`idle`||a.rt.state.status===`pending`)&&I.get(a.topic)!==void 0&&H(a.topic,a.rt,`settled`);continue}let r=a.priority===`visible`;if(r?t>=ot:n>=st){H(a.topic,a.rt,`pending`);continue}r?t++:n++,Tt(a.topic,a.rt,a.policy,a.priority)}if(i<1/0){let t=e+Math.max(lt,i-e);t<R&&(clearTimeout(L),R=t,L=setTimeout(()=>{L=void 0,R=1/0,wt()},t-e))}}function Tt(e,t,n,r){let i=new AbortController;t.run={controller:i,priority:r},t.forced=!1,H(e,t,`pending`),n.handler({topic:e,signal:i.signal}).then(()=>Et(e,t,n,!0),r=>Et(e,t,n,!1,r))}function Et(e,t,n,r,i){let a=t.run?.controller.signal.aborted??!1;t.run=void 0,a?H(e,t,I.get(e)===void 0?`idle`:`settled`):r?(t.failures=0,t.nextEligibleAt=Date.now()+n.minIntervalMs,I.set(e,Date.now()),H(e,t,`settled`)):(t.failures++,c(`sync`,`topic ${e} failed (attempt ${t.failures}): ${i instanceof Error?i.message:String(i)}`,i),t.nextEligibleAt=Date.now()+Math.min(1e3*2**t.failures,ct),H(e,t,`error`)),B()}var U=`profiles`,Dt=15*6e4,Ot=6e4,kt=30*6e4,W=new Map,At=6,jt=50,Mt=50,G=new Map,K,q=0,J=new Set,Y=new Map,X=0,Z=new Map,Nt,Q=new p({prefix:`profile-fresh:`});function Pt(e,t){Nt=t;let n=[...new Set(e)].filter(Boolean);if(n.length===0)return()=>void 0;for(let e of n)G.set(e,(G.get(e)??0)+1);q++,K??=ht(U,`visible`),n.some(Lt)&&V(U);let r=!1;return()=>{if(!r){r=!0;for(let e of n){let t=G.get(e);t!==void 0&&(t<=1?G.delete(e):G.set(e,t-1))}q--,q===0&&(K?.(),K=void 0)}}}function Ft(e){return Math.min(Ot*2**(Math.max(1,e)-1),kt)}function It(e){return Ft(W.get(e)??1)}function Lt(e){let t=Q.get(e);if(t===void 0)return!0;let n=J.has(e);return Date.now()-t>(n?Dt:It(e))?!0:!n&&Z.get(e)!==X}function Rt(e){let t=[...new Set(e)].filter(Boolean);if(t.length===0)return()=>void 0;let n=!1;for(let e of t){let t=Y.get(e)??0;t===0&&(n=!0),Y.set(e,t+1)}n&&(X++,V(U));let r=!1;return()=>{if(!r){r=!0;for(let e of t){let t=Y.get(e);t!==void 0&&(t<=1?Y.delete(e):Y.set(e,t-1))}}}}async function zt(e){let t=Nt;if(!t||G.size===0||(await Q.ready(),await new Promise(e=>setTimeout(e,Mt)),e.aborted))return;let r=[...G.keys()],i=await He(),a=await i.query([{kinds:[0],authors:r}]),o=new Set;for(let e of a)o.add(e.pubkey),J.add(e.pubkey),u(t.queryClient,e.pubkey,e);let s=Date.now(),c=r.filter(e=>{let t=Q.get(e);return t===void 0||s-t>(o.has(e)?Dt:Ot)?!0:!o.has(e)&&Z.get(e)!==X});if(c.length===0)return;let l=AbortSignal.any([e,AbortSignal.timeout(15e3)]),d=Promise.all(c.map(async e=>{try{let[n]=await t.nostr.query([{kinds:[0],authors:[e],limit:1}],{signal:l});return n}catch{return}})),f=[...Y.keys()].slice(0,At),p=Promise.all(f.map(async e=>{let n=[];for(let r=0;r<c.length;r+=jt){let i=c.slice(r,r+jt);try{n.push(...await t.nostr.relay(e).query([{kinds:[0],authors:i,limit:i.length}],{signal:l}))}catch{}}return n})),[m,h]=await Promise.all([d,p]);n(e.aborted?`profiles.run (torn down)`:`profiles.run`,0,c.length,`pubkeys`);let g=new Map;for(let e of[...m,...h.flat()]){if(!e||e.kind!==0)continue;let t=g.get(e.pubkey);(!t||e.created_at>t.created_at)&&g.set(e.pubkey,e)}await Promise.all([...g.values()].map(e=>i.event(e).catch(()=>void 0)));let _=Date.now();for(let[e,n]of g)Q.set(e,_),Z.set(e,X),J.add(e),W.delete(e),u(t.queryClient,e,n);if(!e.aborted)for(let e of c)g.has(e)||(Q.set(e,_),Z.set(e,X),W.set(e,(W.get(e)??0)+1))}mt(U,{minIntervalMs:5e3,staleAfterMs:6e4,handler:({signal:e})=>zt(e)});function $(e,t,n){return{queryKey:d(n??``),queryFn:async()=>
2{if(!n)return{};let[r]=await(await t).query([{kinds:[0],authors:[n]}]),i=e.getQueryData(d(n));return i?.event&&(!r||i.event.created_at>=r.created_at)?i:r?a(r):{}},enabled:!!n,staleTime:1/0,gcTime:600*1e3,refetchOnWindowFocus:!1,retry:!1}}function Bt(e){if(!e.metadata?.picture&&!e.metadata?.banner)return e;let{picture:t,banner:n,...r}=e.metadata;return{...e,metadata:r}}function Vt(e){let{nostr:t}=ie(),n=ue(),r=f();(0,b.useEffect)(()=>{if(e)return Pt([e],{nostr:t,queryClient:n})},[e,t,n]);let i=Pe(e);return le({...$(n,r,e),...i?{select:Bt}:{}})}var Ht=new WeakMap;function Ut(){let{nostr:e}=ie(),{logins:t}=g(),n=(0,b.useCallback)((e,t)=>new y(e.method,e.pubkey,Me(new l(e.signer,e.pubkey),t)),[]),r=(0,b.useCallback)(t=>{let r=Ht.get(e);r||(r=new Map,Ht.set(e,r));let a=r.get(t.id);if(a)return a;let o=(()=>{switch(t.type){case`nsec`:{let e=te.decode(t.data.nsec);return n(new y(t.type,t.pubkey,new he(e.data)))}case`bunker`:{let e=new _(te.decode(t.data.clientNsec).data),r=t.data.relays,i=m(t.data.bunkerPubkey,r);return c(`nip46`,`building the app-wide bunker signer (login ${t.id.slice(0,8)})`),n(new y(t.type,t.pubkey,new s({transport:i,bunkerPubkey:t.data.bunkerPubkey,clientSigner:e})),()=>i.isConnected())}case`extension`:return n(new y(t.type,t.pubkey,new ge));case`x-android-signer`:{let{packageName:e}=t.data;return n(new y(t.type,t.pubkey,new i(e,t.pubkey)))}default:throw Error(`Unsupported login type: ${t.type}`)}})();return r.set(t.id,o),o},[e,n]),a=(0,b.useMemo)(()=>{let e=[];for(let n of t)try{e.push(r(n))}catch(e){console.warn(`Skipped invalid login`,n.id,e)}return e},[t,r]);return{user:a[0],users:a}}function Wt(){let{user:e,users:t}=Ut(),n=Vt(e?.pubkey);return{user:e,users:t,...n.data,isLoading:n.isLoading}}export{Fe as C,Ne as S,Qe as _,Rt as a,w as b,_t as c,ht as d,nt as f,Ze as g,Xe as h,Vt as i,mt as l,$e as m,Wt as n,Pt as o,at as p,$ as r,V as s,Ut as t,gt as u,We as v,me as w,C as x,He as y};

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.