23 lines
344 KiB
JavaScript
23 lines
344 KiB
JavaScript
var app=function(){"use strict";function e(){}function t(e){return e()}function n(){return Object.create(null)}function r(e){e.forEach(t)}function o(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let s;function a(e,t){return s||(s=document.createElement("a")),s.href=t,e===s.href}const l="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function c(e,t){e.appendChild(t)}function u(e,t,n){e.insertBefore(t,n||null)}function d(e){e.parentNode&&e.parentNode.removeChild(e)}function f(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}function h(e){return document.createElement(e)}function p(e){return document.createTextNode(e)}function g(){return p(" ")}function y(){return p("")}function v(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function m(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function w(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function b(e){return""===e?null:+e}function E(e,t){t=""+t,e.data!==t&&(e.data=t)}function k(e,t){e.value=null==t?"":t}function x(e,t,n){for(let n=0;n<e.options.length;n+=1){const r=e.options[n];if(r.__value===t)return void(r.selected=!0)}n&&void 0===t||(e.selectedIndex=-1)}function S(e,t,n){e.classList[n?"add":"remove"](t)}let C;function A(e){C=e}function $(){if(!C)throw new Error("Function called outside component initialization");return C}function T(){const e=$();return(t,n,{cancelable:r=!1}={})=>{const o=e.$$.callbacks[t];if(o){const i=function(e,t,{bubbles:n=!1,cancelable:r=!1}={}){const o=document.createEvent("CustomEvent");return o.initCustomEvent(e,n,r,t),o}(t,n,{cancelable:r});return o.slice().forEach(t=>{t.call(e,i)}),!i.defaultPrevented}return!0}}function I(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e.call(this,t))}const R=[],_=[];let L=[];const P=[],O=Promise.resolve();let B=!1;function j(e){L.push(e)}function N(e){P.push(e)}const M=new Set;let U=0;function F(){if(0!==U)return;const e=C;do{try{for(;U<R.length;){const e=R[U];U++,A(e),D(e.$$)}}catch(e){throw R.length=0,U=0,e}for(A(null),R.length=0,U=0;_.length;)_.pop()();for(let e=0;e<L.length;e+=1){const t=L[e];M.has(t)||(M.add(t),t())}L.length=0}while(R.length);for(;P.length;)P.pop()();B=!1,M.clear(),A(e)}function D(e){if(null!==e.fragment){e.update(),r(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(j)}}const q=new Set;let H;function z(){H={r:0,c:[],p:H}}function K(){H.r||r(H.c),H=H.p}function W(e,t){e&&e.i&&(q.delete(e),e.i(t))}function V(e,t,n,r){if(e&&e.o){if(q.has(e))return;q.add(e),H.c.push(()=>{q.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}else r&&r()}function J(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function Z(e){e&&e.c()}function G(e,n,i,s){const{fragment:a,after_update:l}=e.$$;a&&a.m(n,i),s||j(()=>{const n=e.$$.on_mount.map(t).filter(o);e.$$.on_destroy?e.$$.on_destroy.push(...n):r(n),e.$$.on_mount=[]}),l.forEach(j)}function Q(e,t){const n=e.$$;null!==n.fragment&&(!function(e){const t=[],n=[];L.forEach(r=>-1===e.indexOf(r)?t.push(r):n.push(r)),n.forEach(e=>e()),L=t}(n.after_update),r(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Y(e,t){-1===e.$$.dirty[0]&&(R.push(e),B||(B=!0,O.then(F)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function X(t,o,i,s,a,l,c,u=[-1]){const f=C;A(t);const h=t.$$={fragment:null,ctx:[],props:l,update:e,not_equal:a,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(o.context||(f?f.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:o.target||f.$$.root};c&&c(h.root);let p=!1;if(h.ctx=i?i(t,o.props||{},(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&a(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),p&&Y(t,e)),n}):[],h.update(),p=!0,r(h.before_update),h.fragment=!!s&&s(h.ctx),o.target){if(o.hydrate){const e=function(e){return Array.from(e.childNodes)}(o.target);h.fragment&&h.fragment.l(e),e.forEach(d)}else h.fragment&&h.fragment.c();o.intro&&W(t.$$.fragment),G(t,o.target,o.anchor,o.customElement),F()}A(f)}class ee{$destroy(){Q(this,1),this.$destroy=e}$on(t,n){if(!o(n))return e;const r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(n),()=>{const e=r.indexOf(n);-1!==e&&r.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function te(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function ne(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function re(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const oe="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,ie=e=>e instanceof Uint8Array,se=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ae=(e,t)=>e<<32-t|e>>>t;
|
||
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function le(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!ie(e))throw new Error("expected Uint8Array, got "+typeof e);return e}let ce=class{clone(){return this._cloneInto()}};function ue(e){const t=t=>e().update(le(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function de(e=32){if(oe&&"function"==typeof oe.getRandomValues)return oe.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}let fe=class extends ce{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=se(this.buffer)}update(e){re(this);const{view:t,buffer:n,blockLen:r}=this,o=(e=le(e)).length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){const t=se(e);for(;r<=o-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){re(this),function(e,t){ne(e);const n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:o}=this;let{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),l=r?4:0,c=r?0:4;e.setUint32(t+l,s,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),o),this.process(n,0);const s=se(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)s.setUint32(4*e,c[e],o)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:s}=this;return e.length=r,e.pos=s,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}};const he=(e,t,n)=>e&t^~e&n,pe=(e,t,n)=>e&t^e&n^t&n,ge=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ye=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=new Uint32Array(64);let me=class extends fe{constructor(){super(64,32,8,!1),this.A=0|ye[0],this.B=0|ye[1],this.C=0|ye[2],this.D=0|ye[3],this.E=0|ye[4],this.F=0|ye[5],this.G=0|ye[6],this.H=0|ye[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:s,H:a}=this;return[e,t,n,r,o,i,s,a]}set(e,t,n,r,o,i,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)ve[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ve[e-15],n=ve[e-2],r=ae(t,7)^ae(t,18)^t>>>3,o=ae(n,17)^ae(n,19)^n>>>10;ve[e]=o+ve[e-7]+r+ve[e-16]|0}let{A:n,B:r,C:o,D:i,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(ae(s,6)^ae(s,11)^ae(s,25))+he(s,a,l)+ge[e]+ve[e]|0,u=(ae(n,2)^ae(n,13)^ae(n,22))+pe(n,r,o)|0;c=l,l=a,a=s,s=i+t|0,i=o,o=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,o=o+this.C|0,i=i+this.D|0,s=s+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,o,i,s,a,l,c)}roundClean(){ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const we=ue(()=>new me),be=BigInt(0),Ee=BigInt(1),ke=BigInt(2),xe=e=>e instanceof Uint8Array,Se=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ce(e){if(!xe(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=Se[e[n]];return t}function Ae(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function $e(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return BigInt(""===e?"0":`0x${e}`)}function Te(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(t/2);for(let t=0;t<n.length;t++){const r=2*t,o=e.slice(r,r+2),i=Number.parseInt(o,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[t]=i}return n}function Ie(e){return $e(Ce(e))}function Re(e){if(!xe(e))throw new Error("Uint8Array expected");return $e(Ce(Uint8Array.from(e).reverse()))}function _e(e,t){return Te(e.toString(16).padStart(2*t,"0"))}function Le(e,t){return _e(e,t).reverse()}function Pe(e,t,n){let r;if("string"==typeof t)try{r=Te(t)}catch(n){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${n}`)}else{if(!xe(t))throw new Error(`${e} must be hex string or Uint8Array`);r=Uint8Array.from(t)}const o=r.length;if("number"==typeof n&&o!==n)throw new Error(`${e} expected ${n} bytes, got ${o}`);return r}function Oe(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!xe(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}const Be=e=>(ke<<BigInt(e-1))-Ee,je=e=>new Uint8Array(e),Ne=e=>Uint8Array.from(e);function Me(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=je(e),o=je(e),i=0;const s=()=>{r.fill(1),o.fill(0),i=0},a=(...e)=>n(o,r,...e),l=(e=je())=>{o=a(Ne([0]),e),r=a(),0!==e.length&&(o=a(Ne([1]),e),r=a())},c=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){r=a();const t=r.slice();n.push(t),e+=r.length}return Oe(...n)};return(e,t)=>{let n;for(s(),l(e);!(n=t(c()));)l();return s(),n}}const Ue={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Fe(e,t,n={}){const r=(t,n,r)=>{const o=Ue[n];if("function"!=typeof o)throw new Error(`Invalid validator "${n}", expected function`);const i=e[t];if(!(r&&void 0===i||o(i,e)))throw new Error(`Invalid param ${String(t)}=${i} (${typeof i}), expected ${n}`)};for(const[e,n]of Object.entries(t))r(e,n,!1);for(const[e,t]of Object.entries(n))r(e,t,!0);return e}var De=Object.freeze({__proto__:null,bitGet:function(e,t){return e>>BigInt(t)&Ee},bitLen:function(e){let t;for(t=0;e>be;e>>=Ee,t+=1);return t},bitMask:Be,bitSet:(e,t,n)=>e|(n?Ee:be)<<BigInt(t),bytesToHex:Ce,bytesToNumberBE:Ie,bytesToNumberLE:Re,concatBytes:Oe,createHmacDrbg:Me,ensureBytes:Pe,equalBytes:function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},hexToBytes:Te,hexToNumber:$e,numberToBytesBE:_e,numberToBytesLE:Le,numberToHexUnpadded:Ae,numberToVarBytesBE:function(e){return Te(Ae(e))},utf8ToBytes:function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))},validateObject:Fe});
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const qe=BigInt(0),He=BigInt(1),ze=BigInt(2),Ke=BigInt(3),We=BigInt(4),Ve=BigInt(5),Je=BigInt(8);function Ze(e,t){const n=e%t;return n>=qe?n:t+n}function Ge(e,t,n){if(n<=qe||t<qe)throw new Error("Expected power/modulo > 0");if(n===He)return qe;let r=He;for(;t>qe;)t&He&&(r=r*e%n),e=e*e%n,t>>=He;return r}function Qe(e,t,n){let r=e;for(;t-- >qe;)r*=r,r%=n;return r}function Ye(e,t){if(e===qe||t<=qe)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=Ze(e,t),r=t,o=qe,i=He;for(;n!==qe;){const e=r%n,t=o-i*(r/n);r=n,n=e,o=i,i=t}if(r!==He)throw new Error("invert: does not exist");return Ze(o,t)}function Xe(e){if(e%We===Ke){const t=(e+He)/We;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}if(e%Je===Ve){const t=(e-Ve)/Je;return function(e,n){const r=e.mul(n,ze),o=e.pow(r,t),i=e.mul(n,o),s=e.mul(e.mul(i,ze),o),a=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-He)/ze;let n,r,o;for(n=e-He,r=0;n%ze===qe;n/=ze,r++);for(o=ze;o<e&&Ge(o,t,e)!==e-He;o++);if(1===r){const t=(e+He)/We;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}const i=(n+He)/ze;return function(e,s){if(e.pow(s,t)===e.neg(e.ONE))throw new Error("Cannot find square root");let a=r,l=e.pow(e.mul(e.ONE,o),n),c=e.pow(s,i),u=e.pow(s,n);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<a&&!e.eql(n,e.ONE);t++)n=e.sqr(n);const n=e.pow(l,He<<BigInt(a-t-1));l=e.sqr(n),c=e.mul(c,n),u=e.mul(u,l),a=t}return c}}(e)}BigInt(9),BigInt(16);const et=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function tt(e,t){const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function nt(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function rt(e){const t=nt(e);return t+Math.ceil(t/2)}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const ot=BigInt(0),it=BigInt(1);function st(e){return function(e){const t=et.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});Fe(e,t)}(e.Fp),Fe(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...tt(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:at,hexToBytes:lt}=De,ct={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=ct;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(128&r[0])throw new t("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:at(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=ct,n="string"==typeof e?lt(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:o,l:i}=ct._parseInt(n.subarray(2)),{d:s,l:a}=ct._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:o,s:s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,n=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},r=t(n(e.s)),o=t(n(e.r)),i=r.length/2,s=o.length/2,a=n(i),l=n(s);return`30${n(s+i+4)}02${l}${o}02${a}${r}`}},ut=BigInt(0),dt=BigInt(1);BigInt(2);const ft=BigInt(3);function ht(e){const t=function(e){const t=st(e);Fe(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:o}=t;if(n){if(!r.eql(o,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,r=t.toBytes||((e,t,r)=>{const o=t.toAffine();return Oe(Uint8Array.from([4]),n.toBytes(o.x),n.toBytes(o.y))}),o=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function i(e){const{a:r,b:o}=t,i=n.sqr(e),s=n.mul(i,e);return n.add(n.add(s,n.mul(e,r)),o)}if(!n.eql(n.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&ut<e&&e<t.n}function a(e){if(!s(e))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function l(e){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:o,n:i}=t;if(n&&"bigint"!=typeof e){if(e instanceof Uint8Array&&(e=Ce(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("Invalid key");e=e.padStart(2*r,"0")}let s;try{s="bigint"==typeof e?e:Ie(Pe("private key",e,r))}catch(t){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof e}`)}return o&&(s=Ze(s,i)),a(s),s}const c=new Map;function u(e){if(!(e instanceof d))throw new Error("ProjectivePoint expected")}class d{constructor(e,t,r){if(this.px=e,this.py=t,this.pz=r,null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required")}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof d)throw new Error("projective point not allowed");const o=e=>n.eql(e,n.ZERO);return o(t)&&o(r)?d.ZERO:new d(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(d.fromAffine)}static fromHex(e){const t=d.fromAffine(o(Pe("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return d.BASE.multiply(l(e))}_setWindowSize(e){this._WINDOW_SIZE=e,c.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:r}=this.toAffine();if(!n.isValid(e)||!n.isValid(r))throw new Error("bad point: x or y not FE");const o=n.sqr(r),s=i(e);if(!n.eql(o,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:r,pz:o}=this,{px:i,py:s,pz:a}=e,l=n.eql(n.mul(t,a),n.mul(i,o)),c=n.eql(n.mul(r,a),n.mul(s,o));return l&&c}negate(){return new d(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,o=n.mul(r,ft),{px:i,py:s,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,f=n.mul(i,i),h=n.mul(s,s),p=n.mul(a,a),g=n.mul(i,s);return g=n.add(g,g),u=n.mul(i,a),u=n.add(u,u),l=n.mul(e,u),c=n.mul(o,p),c=n.add(l,c),l=n.sub(h,c),c=n.add(h,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(o,u),p=n.mul(e,p),g=n.sub(f,p),g=n.mul(e,g),g=n.add(g,u),u=n.add(f,f),f=n.add(u,f),f=n.add(f,p),f=n.mul(f,g),c=n.add(c,f),p=n.mul(s,a),p=n.add(p,p),f=n.mul(p,g),l=n.sub(l,f),u=n.mul(p,h),u=n.add(u,u),u=n.add(u,u),new d(l,c,u)}add(e){u(e);const{px:r,py:o,pz:i}=this,{px:s,py:a,pz:l}=e;let c=n.ZERO,f=n.ZERO,h=n.ZERO;const p=t.a,g=n.mul(t.b,ft);let y=n.mul(r,s),v=n.mul(o,a),m=n.mul(i,l),w=n.add(r,o),b=n.add(s,a);w=n.mul(w,b),b=n.add(y,v),w=n.sub(w,b),b=n.add(r,i);let E=n.add(s,l);return b=n.mul(b,E),E=n.add(y,m),b=n.sub(b,E),E=n.add(o,i),c=n.add(a,l),E=n.mul(E,c),c=n.add(v,m),E=n.sub(E,c),h=n.mul(p,b),c=n.mul(g,m),h=n.add(c,h),c=n.sub(v,h),h=n.add(v,h),f=n.mul(c,h),v=n.add(y,y),v=n.add(v,y),m=n.mul(p,m),b=n.mul(g,b),v=n.add(v,m),m=n.sub(y,m),m=n.mul(p,m),b=n.add(b,m),y=n.mul(v,b),f=n.add(f,y),y=n.mul(E,b),c=n.mul(w,c),c=n.sub(c,y),y=n.mul(w,v),h=n.mul(E,h),h=n.add(h,y),new d(c,f,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(d.ZERO)}wNAF(e){return h.wNAFCached(this,c,e,e=>{const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(d.fromAffine)})}multiplyUnsafe(e){const r=d.ZERO;if(e===ut)return r;if(a(e),e===dt)return this;const{endo:o}=t;if(!o)return h.unsafeLadder(this,e);let{k1neg:i,k1:s,k2neg:l,k2:c}=o.splitScalar(e),u=r,f=r,p=this;for(;s>ut||c>ut;)s&dt&&(u=u.add(p)),c&dt&&(f=f.add(p)),p=p.double(),s>>=dt,c>>=dt;return i&&(u=u.negate()),l&&(f=f.negate()),f=new d(n.mul(f.px,o.beta),f.py,f.pz),u.add(f)}multiply(e){a(e);let r,o,i=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:a,k2:l}=s.splitScalar(i);let{p:c,f:u}=this.wNAF(t),{p:f,f:p}=this.wNAF(l);c=h.constTimeNegate(e,c),f=h.constTimeNegate(a,f),f=new d(n.mul(f.px,s.beta),f.py,f.pz),r=c.add(f),o=u.add(p)}else{const{p:e,f:t}=this.wNAF(i);r=e,o=t}return d.normalizeZ([r,o])[0]}multiplyAndAddUnsafe(e,t,n){const r=d.BASE,o=(e,t)=>t!==ut&&t!==dt&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),i=o(this,t).add(o(e,n));return i.is0()?void 0:i}toAffine(e){const{px:t,py:r,pz:o}=this,i=this.is0();null==e&&(e=i?n.ONE:n.inv(o));const s=n.mul(t,e),a=n.mul(r,e),l=n.mul(o,e);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:s,y:a}}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===dt)return!0;if(n)return n(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===dt?this:n?n(d,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(d,this,e)}toHex(e=!0){return Ce(this.toRawBytes(e))}}d.BASE=new d(t.Gx,t.Gy,n.ONE),d.ZERO=new d(n.ZERO,n.ONE,n.ZERO);const f=t.nBitLength,h=function(e,t){const n=(e,t)=>{const n=t.negate();return e?n:t},r=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:n,unsafeLadder(t,n){let r=e.ZERO,o=t;for(;n>ot;)n&it&&(r=r.add(o)),o=o.double(),n>>=it;return r},precomputeWindow(e,t){const{windows:n,windowSize:o}=r(t),i=[];let s=e,a=s;for(let e=0;e<n;e++){a=s,i.push(a);for(let e=1;e<o;e++)a=a.add(s),i.push(a);s=a.double()}return i},wNAF(t,o,i){const{windows:s,windowSize:a}=r(t);let l=e.ZERO,c=e.BASE;const u=BigInt(2**t-1),d=2**t,f=BigInt(t);for(let e=0;e<s;e++){const t=e*a;let r=Number(i&u);i>>=f,r>a&&(r-=d,i+=it);const s=t,h=t+Math.abs(r)-1,p=e%2!=0,g=r<0;0===r?c=c.add(n(p,o[s])):l=l.add(n(g,o[h]))}return{p:l,f:c}},wNAFCached(e,t,n,r){const o=e._WINDOW_SIZE||1;let i=t.get(e);return i||(i=this.precomputeWindow(e,o),1!==o&&t.set(e,r(i))),this.wNAF(o,i,n)}}}(d,t.endo?Math.ceil(f/2):f);return{CURVE:t,ProjectivePoint:d,normPrivateKeyToScalar:l,weierstrassEquation:i,isWithinCurveOrder:s}}function pt(e){const t=function(e){const t=st(e);return Fe(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:r}=t,o=n.BYTES+1,i=2*n.BYTES+1;function s(e){return Ze(e,r)}function a(e){return Ye(e,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:d}=ht({...t,toBytes(e,t,r){const o=t.toAffine(),i=n.toBytes(o.x),s=Oe;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,n.toBytes(o.y))},fromBytes(e){const t=e.length,r=e[0],s=e.subarray(1);if(t!==o||2!==r&&3!==r){if(t===i&&4===r){return{x:n.fromBytes(s.subarray(0,n.BYTES)),y:n.fromBytes(s.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${t} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}{const e=Ie(s);if(!(ut<(a=e)&&a<n.ORDER))throw new Error("Point is not on curve");const t=u(e);let o=n.sqrt(t);return!(1&~r)!==((o&dt)===dt)&&(o=n.neg(o)),{x:e,y:o}}var a}}),f=e=>Ce(_e(e,t.nByteLength));function h(e){return e>r>>dt}const p=(e,t,n)=>Ie(e.slice(t,n));class g{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){const n=t.nByteLength;return e=Pe("compactSignature",e,2*n),new g(p(e,0,n),p(e,n,2*n))}static fromDER(e){const{r:t,s:n}=ct.toSig(Pe("DER",e));return new g(t,n)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:r,s:o,recovery:i}=this,c=w(Pe("msgHash",e));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const u=2===i||3===i?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const d=1&i?"03":"02",h=l.fromHex(d+f(u)),p=a(u),g=s(-c*p),y=s(o*p),v=l.BASE.multiplyAndAddUnsafe(h,g,y);if(!v)throw new Error("point at infinify");return v.assertValidity(),v}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Te(this.toDERHex())}toDERHex(){return ct.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Te(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const y={isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=rt(t.n);return function(e,t,n=!1){const r=e.length,o=nt(t),i=rt(t);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const s=Ze(n?Ie(e):Re(e),t-He)+He;return n?Le(s,o):_e(s,o)}(t.randomBytes(e),t.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function v(e){const t=e instanceof Uint8Array,n="string"==typeof e,r=(t||n)&&e.length;return t?r===o||r===i:n?r===2*o||r===2*i:e instanceof l}const m=t.bits2int||function(e){const n=Ie(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},w=t.bits2int_modN||function(e){return s(m(e))},b=Be(t.nBitLength);function E(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(ut<=e&&e<b))throw new Error(`bigint expected < 2^${t.nBitLength}`);return _e(e,t.nByteLength)}function k(e,r,o=x){if(["recovered","canonical"].some(e=>e in o))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:u}=t;let{lowS:f,prehash:p,extraEntropy:y}=o;null==f&&(f=!0),e=Pe("msgHash",e),p&&(e=Pe("prehashed msgHash",i(e)));const v=w(e),b=c(r),k=[E(b),E(v)];if(null!=y){const e=!0===y?u(n.BYTES):y;k.push(Pe("extraEntropy",e))}const S=Oe(...k),C=v;return{seed:S,k2sig:function(e){const t=m(e);if(!d(t))return;const n=a(t),r=l.BASE.multiply(t).toAffine(),o=s(r.x);if(o===ut)return;const i=s(n*s(C+o*b));if(i===ut)return;let c=(r.x===o?0:2)|Number(r.y&dt),u=i;return f&&h(i)&&(u=function(e){return h(e)?s(-e):e}(i),c^=1),new g(o,u,c)}}}const x={lowS:t.lowS,prehash:!1},S={lowS:t.lowS,prehash:!1};return l.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return l.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(v(e))throw new Error("first arg must be private key");if(!v(t))throw new Error("second arg must be public key");return l.fromHex(t).multiply(c(e)).toRawBytes(n)},sign:function(e,n,r=x){const{seed:o,k2sig:i}=k(e,n,r),s=t;return Me(s.hash.outputLen,s.nByteLength,s.hmac)(o,i)},verify:function(e,n,r,o=S){const i=e;if(n=Pe("msgHash",n),r=Pe("publicKey",r),"strict"in o)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=o;let d,f;try{if("string"==typeof i||i instanceof Uint8Array)try{d=g.fromDER(i)}catch(e){if(!(e instanceof ct.Err))throw e;d=g.fromCompact(i)}else{if("object"!=typeof i||"bigint"!=typeof i.r||"bigint"!=typeof i.s)throw new Error("PARSE");{const{r:e,s:t}=i;d=new g(e,t)}}f=l.fromHex(r)}catch(e){if("PARSE"===e.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&d.hasHighS())return!1;u&&(n=t.hash(n));const{r:h,s:p}=d,y=w(n),v=a(p),m=s(y*v),b=s(h*v),E=l.BASE.multiplyAndAddUnsafe(f,m,b)?.toAffine();return!!E&&s(E.x)===h},ProjectivePoint:l,Signature:g,utils:y}}BigInt(4);let gt=class extends ce{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");te(e.outputLen),te(e.blockLen)}(e);const n=le(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<o.length;e++)o[e]^=54;this.iHash.update(o),this.oHash=e.create();for(let e=0;e<o.length;e++)o[e]^=106;this.oHash.update(o),o.fill(0)}update(e){return re(this),this.iHash.update(e),this}digestInto(e){re(this),ne(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:o,blockLen:i,outputLen:s}=this;return e.finished=r,e.destroyed=o,e.blockLen=i,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const yt=(e,t,n)=>new gt(e,t).update(n).digest();
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
function vt(e){return{hash:e,hmac:(t,...n)=>yt(e,t,function(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!ie(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}(...n)),randomBytes:de}}yt.create=(e,t)=>new gt(e,t);
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const mt=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),wt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bt=BigInt(1),Et=BigInt(2),kt=(e,t)=>(e+t/Et)/t;function xt(e){const t=mt,n=BigInt(3),r=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),a=BigInt(44),l=BigInt(88),c=e*e*e%t,u=c*c*e%t,d=Qe(u,n,t)*u%t,f=Qe(d,n,t)*u%t,h=Qe(f,Et,t)*c%t,p=Qe(h,o,t)*h%t,g=Qe(p,i,t)*p%t,y=Qe(g,a,t)*g%t,v=Qe(y,l,t)*y%t,m=Qe(v,a,t)*g%t,w=Qe(m,n,t)*u%t,b=Qe(w,s,t)*p%t,E=Qe(b,r,t)*c%t,k=Qe(E,Et,t);if(!St.eql(St.sqr(k),e))throw new Error("Cannot find square root");return k}const St=function(e,t,n=!1,r={}){if(e<=qe)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:i}=tt(e,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=Xe(e),a=Object.freeze({ORDER:e,BITS:o,BYTES:i,MASK:Be(o),ZERO:qe,ONE:He,create:t=>Ze(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return qe<=t&&t<e},is0:e=>e===qe,isOdd:e=>(e&He)===He,neg:t=>Ze(-t,e),eql:(e,t)=>e===t,sqr:t=>Ze(t*t,e),add:(t,n)=>Ze(t+n,e),sub:(t,n)=>Ze(t-n,e),mul:(t,n)=>Ze(t*n,e),pow:(e,t)=>function(e,t,n){if(n<qe)throw new Error("Expected power > 0");if(n===qe)return e.ONE;if(n===He)return t;let r=e.ONE,o=t;for(;n>qe;)n&He&&(r=e.mul(r,o)),o=e.sqr(o),n>>=He;return r}(a,e,t),div:(t,n)=>Ze(t*Ye(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Ye(t,e),sqrt:r.sqrt||(e=>s(a,e)),invertBatch:e=>function(e,t){const n=new Array(t.length),r=t.reduce((t,r,o)=>e.is0(r)?t:(n[o]=t,e.mul(t,r)),e.ONE),o=e.inv(r);return t.reduceRight((t,r,o)=>e.is0(r)?t:(n[o]=e.mul(t,n[o]),e.mul(t,r)),o),n}(a,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?Le(e,i):_e(e,i),fromBytes:e=>{if(e.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${e.length}`);return n?Re(e):Ie(e)}});return Object.freeze(a)}(mt,void 0,void 0,{sqrt:xt}),Ct=function(e,t){const n=t=>pt({...e,...vt(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:St,n:wt,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=wt,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-bt*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),a=kt(i*e,t),l=kt(-r*e,t);let c=Ze(e-a*n-l*o,t),u=Ze(-a*r-l*i,t);const d=c>s,f=u>s;if(d&&(c=t-c),f&&(u=t-u),c>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:d,k1:c,k2neg:f,k2:u}}}},we),At=BigInt(0),$t=e=>"bigint"==typeof e&&At<e&&e<mt,Tt={};function It(e,...t){let n=Tt[e];if(void 0===n){const t=we(Uint8Array.from(e,e=>e.charCodeAt(0)));n=Oe(t,t),Tt[e]=n}return we(Oe(n,...t))}const Rt=e=>e.toRawBytes(!0).slice(1),_t=e=>_e(e,32),Lt=e=>Ze(e,mt),Pt=e=>Ze(e,wt),Ot=Ct.ProjectivePoint;function Bt(e){let t=Ct.utils.normPrivateKeyToScalar(e),n=Ot.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:Pt(-t),bytes:Rt(n)}}function jt(e){if(!$t(e))throw new Error("bad x: need 0 < x < p");const t=Lt(e*e);let n=xt(Lt(t*e+BigInt(7)));n%Et!==At&&(n=Lt(-n));const r=new Ot(e,n,bt);return r.assertValidity(),r}function Nt(...e){return Pt(Ie(It("BIP0340/challenge",...e)))}function Mt(e){return Bt(e).bytes}function Ut(e,t,n=de(32)){const r=Pe("message",e),{bytes:o,scalar:i}=Bt(t),s=Pe("auxRand",n,32),a=_t(i^Ie(It("BIP0340/aux",s))),l=It("BIP0340/nonce",a,o,r),c=Pt(Ie(l));if(c===At)throw new Error("sign failed: k is zero");const{bytes:u,scalar:d}=Bt(c),f=Nt(u,o,r),h=new Uint8Array(64);if(h.set(u,0),h.set(_t(Pt(d+f*i)),32),!Ft(h,r,o))throw new Error("sign: Invalid signature produced");return h}function Ft(e,t,n){const r=Pe("signature",e,64),o=Pe("message",t),i=Pe("publicKey",n,32);try{const e=jt(Ie(i)),t=Ie(r.subarray(0,32));if(!$t(t))return!1;const n=Ie(r.subarray(32,64));if(!("bigint"==typeof(c=n)&&At<c&&c<wt))return!1;const u=Nt(_t(t),Rt(e),o),d=(s=e,a=n,l=Pt(-u),Ot.BASE.multiplyAndAddUnsafe(s,a,l));return!(!d||!d.hasEvenY()||d.toAffine().x!==t)}catch(e){return!1}var s,a,l,c}const Dt=(()=>({getPublicKey:Mt,sign:Ut,verify:Ft,utils:{randomPrivateKey:Ct.utils.randomPrivateKey,lift_x:jt,pointToBytes:Rt,numberToBytesBE:_e,bytesToNumberBE:Ie,taggedHash:It,mod:Ze}}))(),qt="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Ht=e=>e instanceof Uint8Array,zt=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Kt=(e,t)=>e<<32-t|e>>>t;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");const Wt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Vt(e){if(!Ht(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=Wt[e[n]];return t}function Jt(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(t/2);for(let t=0;t<n.length;t++){const r=2*t,o=e.slice(r,r+2),i=Number.parseInt(o,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[t]=i}return n}function Zt(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!Ht(e))throw new Error("expected Uint8Array, got "+typeof e);return e}function Gt(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!Ht(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}class Qt{clone(){return this._cloneInto()}}function Yt(e){const t=t=>e().update(Zt(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Xt(e=32){if(qt&&"function"==typeof qt.getRandomValues)return qt.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function en(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function tn(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}const nn={number:en,bool:function(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)},bytes:tn,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");en(e.outputLen),en(e.blockLen)},exists:function(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")},output:function(e,t){tn(e);const n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}};class rn extends Qt{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=zt(this.buffer)}update(e){nn.exists(this);const{view:t,buffer:n,blockLen:r}=this,o=(e=Zt(e)).length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){const t=zt(e);for(;r<=o-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){nn.exists(this),nn.output(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:o}=this;let{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),l=r?4:0,c=r?0:4;e.setUint32(t+l,s,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),o),this.process(n,0);const s=zt(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)s.setUint32(4*e,c[e],o)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:s}=this;return e.length=r,e.pos=s,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}}const on=(e,t,n)=>e&t^~e&n,sn=(e,t,n)=>e&t^e&n^t&n,an=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ln=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),cn=new Uint32Array(64);class un extends rn{constructor(){super(64,32,8,!1),this.A=0|ln[0],this.B=0|ln[1],this.C=0|ln[2],this.D=0|ln[3],this.E=0|ln[4],this.F=0|ln[5],this.G=0|ln[6],this.H=0|ln[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:s,H:a}=this;return[e,t,n,r,o,i,s,a]}set(e,t,n,r,o,i,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)cn[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=cn[e-15],n=cn[e-2],r=Kt(t,7)^Kt(t,18)^t>>>3,o=Kt(n,17)^Kt(n,19)^n>>>10;cn[e]=o+cn[e-7]+r+cn[e-16]|0}let{A:n,B:r,C:o,D:i,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(Kt(s,6)^Kt(s,11)^Kt(s,25))+on(s,a,l)+an[e]+cn[e]|0,u=(Kt(n,2)^Kt(n,13)^Kt(n,22))+sn(n,r,o)|0;c=l,l=a,a=s,s=i+t|0,i=o,o=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,o=o+this.C|0,i=i+this.D|0,s=s+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,o,i,s,a,l,c)}roundClean(){cn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class dn extends un{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const fn=Yt(()=>new un);Yt(()=>new dn);var hn=Symbol("verified");function pn(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("string"!=typeof n[e])return!1}return!0}new TextDecoder("utf-8");var gn=new TextEncoder;function yn(e){try{-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}catch(t){throw new Error(`Invalid URL: ${e}`)}}var vn=class{value;next=null;prev=null;constructor(e){this.value=e}},mn=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new vn(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,this.first&&(this.first.prev=null),e.value}};function wn(e){return Vt(fn(gn.encode(function(e){if(!pn(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}(e))))}var bn=new class{generateSecretKey(){return Dt.utils.randomPrivateKey()}getPublicKey(e){return Vt(Dt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=Vt(Dt.getPublicKey(t)),n.id=wn(n),n.sig=Vt(Dt.sign(wn(n),t)),n[hn]=!0,n}verifyEvent(e){if("boolean"==typeof e[hn])return e[hn];const t=wn(e);if(t!==e.id)return e[hn]=!1,!1;try{const n=Dt.verify(e.sig,t,e.pubkey);return e[hn]=n,n}catch(t){return e[hn]=!1,!1}}};bn.generateSecretKey,bn.getPublicKey,bn.finalizeEvent;var En=bn.verifyEvent;function kn(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;for(let n in e)if("#"===n[0]){let r=e[`#${n.slice(1)}`];if(r&&!t.tags.find(([e,t])=>e===n.slice(1)&&-1!==r.indexOf(t)))return!1}return!(e.since&&t.created_at<e.since)&&!(e.until&&t.created_at>e.until)}async function xn(){return new Promise(e=>{const t=new MessageChannel,n=()=>{t.port1.removeEventListener("message",n),e()};t.port1.addEventListener("message",n),t.port2.postMessage(0),t.port1.start()})}var Sn,Cn=e=>(e[hn]=!0,!0),An=class extends Error{constructor(e,t){super(`Tried to send message '${e} on a closed connection to ${t}.`),this.name="SendingOnClosedConnection"}},$n=class{url;_connected=!1;onclose=null;onnotice=e=>console.debug(`NOTICE from ${this.url}: ${e}`);baseEoseTimeout=4400;connectionTimeout=4400;publishTimeout=4400;pingFrequency=2e4;pingTimeout=2e4;openSubs=new Map;enablePing;connectionTimeoutHandle;connectionPromise;openCountRequests=new Map;openEventPublishes=new Map;ws;incomingMessageQueue=new mn;queueRunning=!1;challenge;authPromise;serial=0;verifyEvent;_WebSocket;constructor(e,t){this.url=yn(e),this.verifyEvent=t.verifyEvent,this._WebSocket=t.websocketImplementation||WebSocket,this.enablePing=t.enablePing}static async connect(e,t){const n=new $n(e,t);return await n.connect(),n}closeAllSubscriptions(e){for(let[t,n]of this.openSubs)n.close(e);this.openSubs.clear();for(let[t,n]of this.openEventPublishes)n.reject(new Error(e));this.openEventPublishes.clear();for(let[t,n]of this.openCountRequests)n.reject(new Error(e));this.openCountRequests.clear()}get connected(){return this._connected}async connect(){return this.connectionPromise||(this.challenge=void 0,this.authPromise=void 0,this.connectionPromise=new Promise((e,t)=>{this.connectionTimeoutHandle=setTimeout(()=>{t("connection timed out"),this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection timed out")},this.connectionTimeout);try{this.ws=new this._WebSocket(this.url)}catch(e){return clearTimeout(this.connectionTimeoutHandle),void t(e)}this.ws.onopen=()=>{clearTimeout(this.connectionTimeoutHandle),this._connected=!0,this.enablePing&&this.pingpong(),e()},this.ws.onerror=e=>{clearTimeout(this.connectionTimeoutHandle),t(e.message||"websocket error"),this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection errored")},this.ws.onclose=e=>{clearTimeout(this.connectionTimeoutHandle),t(e.message||"websocket closed"),this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection closed")},this.ws.onmessage=this._onmessage.bind(this)})),this.connectionPromise}async waitForPingPong(){return new Promise((e,t)=>{this.ws&&this.ws.on&&this.ws.on("pong",()=>e(!0))||t("ws can't listen for pong"),this.ws&&this.ws.ping&&this.ws.ping()})}async waitForDummyReq(){return new Promise((e,t)=>{const n=this.subscribe([{ids:["a".repeat(64)]}],{oneose:()=>{n.close(),e(!0)},eoseTimeout:this.pingTimeout+1e3})})}async pingpong(){if(1===this.ws?.readyState){await Promise.any([this.ws&&this.ws.ping&&this.ws.on?this.waitForPingPong():this.waitForDummyReq(),new Promise(e=>setTimeout(()=>e(!1),this.pingTimeout))])?setTimeout(()=>this.pingpong(),this.pingFrequency):(this.closeAllSubscriptions("pingpong timed out"),this._connected=!1,this.onclose?.(),this.ws?.close())}}async runQueue(){for(this.queueRunning=!0;!1!==this.handleNext();)await xn();this.queueRunning=!1}handleNext(){const e=this.incomingMessageQueue.dequeue();if(!e)return!1;const t=function(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,o=e.slice(r+1,80).indexOf('"');if(-1===o)return null;let i=r+1+o;return e.slice(r+1,i)}(e);if(t){const n=this.openSubs.get(t);if(!n)return;const r=function(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,o=e.slice(r).indexOf('"')+r+1;return e.slice(o,o+64)}(e,"id"),o=n.alreadyHaveEvent?.(r);if(n.receivedEvent?.(this,r),o)return}try{let t=JSON.parse(e);switch(t[0]){case"EVENT":{const e=this.openSubs.get(t[1]),n=t[2];return void(this.verifyEvent(n)&&function(e,t){for(let n=0;n<e.length;n++)if(kn(e[n],t))return!0;return!1}(e.filters,n)&&e.onevent(n))}case"COUNT":{const e=t[1],n=t[2],r=this.openCountRequests.get(e);return void(r&&(r.resolve(n.count),this.openCountRequests.delete(e)))}case"EOSE":{const e=this.openSubs.get(t[1]);if(!e)return;return void e.receivedEose()}case"OK":{const e=t[1],n=t[2],r=t[3],o=this.openEventPublishes.get(e);return void(o&&(clearTimeout(o.timeout),n?o.resolve(r):o.reject(new Error(r)),this.openEventPublishes.delete(e)))}case"CLOSED":{const e=t[1],n=this.openSubs.get(e);if(!n)return;return n.closed=!0,void n.close(t[2])}case"NOTICE":return void this.onnotice(t[1]);case"AUTH":return void(this.challenge=t[1])}}catch(e){return}}async send(e){if(!this.connectionPromise)throw new An(e,this.url);this.connectionPromise.then(()=>{this.ws?.send(e)})}async auth(e){const t=this.challenge;if(!t)throw new Error("can't perform auth, no challenge was received");return this.authPromise||(this.authPromise=new Promise(async(n,r)=>{try{let o=await e(function(e,t){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}(this.url,t)),i=setTimeout(()=>{let e=this.openEventPublishes.get(o.id);e&&(e.reject(new Error("auth timed out")),this.openEventPublishes.delete(o.id))},this.publishTimeout);this.openEventPublishes.set(o.id,{resolve:n,reject:r,timeout:i}),this.send('["AUTH",'+JSON.stringify(o)+"]")}catch(e){console.warn("subscribe auth function failed:",e)}})),this.authPromise}async publish(e){const t=new Promise((t,n)=>{const r=setTimeout(()=>{const t=this.openEventPublishes.get(e.id);t&&(t.reject(new Error("publish timed out")),this.openEventPublishes.delete(e.id))},this.publishTimeout);this.openEventPublishes.set(e.id,{resolve:t,reject:n,timeout:r})});return this.send('["EVENT",'+JSON.stringify(e)+"]"),t}async count(e,t){this.serial++;const n=t?.id||"count:"+this.serial,r=new Promise((e,t)=>{this.openCountRequests.set(n,{resolve:e,reject:t})});return this.send('["COUNT","'+n+'",'+JSON.stringify(e).substring(1)),r}subscribe(e,t){const n=this.prepareSubscription(e,t);return n.fire(),n}prepareSubscription(e,t){this.serial++;const n=t.id||(t.label?t.label+":":"sub:")+this.serial,r=new Tn(this,n,e,t);return this.openSubs.set(n,r),r}close(){this.closeAllSubscriptions("relay connection closed by us"),this._connected=!1,this.onclose?.(),this.ws?.close()}_onmessage(e){this.incomingMessageQueue.enqueue(e.data),this.queueRunning||this.runQueue()}},Tn=class{relay;id;closed=!1;eosed=!1;filters;alreadyHaveEvent;receivedEvent;onevent;oneose;onclose;eoseTimeout;eoseTimeoutHandle;constructor(e,t,n,r){this.relay=e,this.filters=n,this.id=t,this.alreadyHaveEvent=r.alreadyHaveEvent,this.receivedEvent=r.receivedEvent,this.eoseTimeout=r.eoseTimeout||e.baseEoseTimeout,this.oneose=r.oneose,this.onclose=r.onclose,this.onevent=r.onevent||(e=>{console.warn(`onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`,e)})}fire(){this.relay.send('["REQ","'+this.id+'",'+JSON.stringify(this.filters).substring(1)),this.eoseTimeoutHandle=setTimeout(this.receivedEose.bind(this),this.eoseTimeout)}receivedEose(){this.eosed||(clearTimeout(this.eoseTimeoutHandle),this.eosed=!0,this.oneose?.())}close(e="closed by caller"){if(!this.closed&&this.relay.connected){try{this.relay.send('["CLOSE",'+JSON.stringify(this.id)+"]")}catch(e){if(!(e instanceof An))throw e}this.closed=!0}this.relay.openSubs.delete(this.id),this.onclose?.(e)}},In=class{relays=new Map;seenOn=new Map;trackRelays=!1;verifyEvent;enablePing;trustedRelayURLs=new Set;_WebSocket;constructor(e){this.verifyEvent=e.verifyEvent,this._WebSocket=e.websocketImplementation,this.enablePing=e.enablePing}async ensureRelay(e,t){e=yn(e);let n=this.relays.get(e);return n||(n=new $n(e,{verifyEvent:this.trustedRelayURLs.has(e)?Cn:this.verifyEvent,websocketImplementation:this._WebSocket,enablePing:this.enablePing}),n.onclose=()=>{this.relays.delete(e)},t?.connectionTimeout&&(n.connectionTimeout=t.connectionTimeout),this.relays.set(e,n)),await n.connect(),n}close(e){e.map(yn).forEach(e=>{this.relays.get(e)?.close(),this.relays.delete(e)})}subscribe(e,t,n){n.onauth=n.onauth||n.doauth;const r=[];for(let n=0;n<e.length;n++){const o=yn(e[n]);r.find(e=>e.url===o)||r.push({url:o,filter:t})}return this.subscribeMap(r,n)}subscribeMany(e,t,n){n.onauth=n.onauth||n.doauth;const r=[],o=[];for(let n=0;n<e.length;n++){const i=yn(e[n]);-1===o.indexOf(i)&&(o.push(i),r.push({url:i,filter:t}))}return this.subscribeMap(r,n)}subscribeMap(e,t){t.onauth=t.onauth||t.doauth;const n=new Map;for(const t of e){const{url:e,filter:r}=t;n.has(e)||n.set(e,[]),n.get(e).push(r)}const r=Array.from(n.entries()).map(([e,t])=>({url:e,filters:t}));this.trackRelays&&(t.receivedEvent=(e,t)=>{let n=this.seenOn.get(t);n||(n=new Set,this.seenOn.set(t,n)),n.add(e)});const o=new Set,i=[],s=[];let a=n=>{s[n]||(s[n]=!0,s.filter(e=>e).length===e.length&&(t.oneose?.(),a=()=>{}))};const l=[];let c=(n,r)=>{l[n]||(a(n),l[n]=r,l.filter(e=>e).length===e.length&&(t.onclose?.(l),c=()=>{}))};const u=e=>{if(t.alreadyHaveEvent?.(e))return!0;const n=o.has(e);return o.add(e),n},d=Promise.all(r.map(async({url:e,filters:n},r)=>{let o;try{o=await this.ensureRelay(e,{connectionTimeout:t.maxWait?Math.max(.8*t.maxWait,t.maxWait-1e3):void 0})}catch(e){return void c(r,e?.message||String(e))}let s=o.subscribe(n,{...t,oneose:()=>a(r),onclose:e=>{e.startsWith("auth-required: ")&&t.onauth?o.auth(t.onauth).then(()=>{o.subscribe(n,{...t,oneose:()=>a(r),onclose:e=>{c(r,e)},alreadyHaveEvent:u,eoseTimeout:t.maxWait})}).catch(e=>{c(r,`auth was required and attempted, but failed with: ${e}`)}):c(r,e)},alreadyHaveEvent:u,eoseTimeout:t.maxWait});i.push(s)}));return{async close(e){await d,i.forEach(t=>{t.close(e)})}}}subscribeEose(e,t,n){n.onauth=n.onauth||n.doauth;const r=this.subscribe(e,t,{...n,oneose(){r.close("closed automatically on eose")}});return r}subscribeManyEose(e,t,n){n.onauth=n.onauth||n.doauth;const r=this.subscribeMany(e,t,{...n,oneose(){r.close("closed automatically on eose")}});return r}async querySync(e,t,n){return new Promise(async r=>{const o=[];this.subscribeEose(e,t,{...n,onevent(e){o.push(e)},onclose(e){r(o)}})})}async get(e,t,n){t.limit=1;const r=await this.querySync(e,t,n);return r.sort((e,t)=>t.created_at-e.created_at),r[0]||null}publish(e,t,n){return e.map(yn).map(async(e,r,o)=>{if(o.indexOf(e)!==r)return Promise.reject("duplicate url");let i=await this.ensureRelay(e);return i.publish(t).catch(async e=>{if(e instanceof Error&&e.message.startsWith("auth-required: ")&&n?.onauth)return await i.auth(n.onauth),i.publish(t);throw e}).then(e=>{if(this.trackRelays){let e=this.seenOn.get(t.id);e||(e=new Set,this.seenOn.set(t.id,e)),e.add(i)}return e})})}listConnectionStatus(){const e=new Map;return this.relays.forEach((t,n)=>e.set(n,t.connected)),e}destroy(){this.relays.forEach(e=>e.close()),this.relays=new Map}};try{Sn=WebSocket}catch{}var Rn=class extends In{constructor(e){super({verifyEvent:En,websocketImplementation:Sn,...e})}};
|
||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _n(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function Ln(...e){const t=(e,t)=>n=>e(t(n)),n=Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),r=e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0);return{encode:n,decode:r}}function Pn(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map(t=>{if(_n(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function On(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function Bn(e,t="="){if(_n(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function jn(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Nn(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const o=[],i=Array.from(e);for(i.forEach(e=>{if(_n(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)});;){let e=0,s=!0;for(let o=r;o<i.length;o++){const a=i[o],l=t*e+a;if(!Number.isSafeInteger(l)||t*e/t!==e||l-a!==t*e)throw new Error("convertRadix: carry overflow");if(e=l%n,i[o]=Math.floor(l/n),!Number.isSafeInteger(i[o])||i[o]*n+e!==l)throw new Error("convertRadix: carry overflow");s&&(i[o]?s=!1:r=o)}if(o.push(e),s)break}for(let t=0;t<e.length-1&&0===e[t];t++)o.push(0);return o.reverse()}const Mn=(e,t)=>t?Mn(t,e%t):e,Un=(e,t)=>e+(t-Mn(e,t));function Fn(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Un(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Un(t,n)}`);let o=0,i=0;const s=2**n-1,a=[];for(const r of e){if(_n(r),r>=2**t)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(o=o<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)a.push((o>>i-n&s)>>>0);o&=2**i-1}if(o=o<<n-i&s,!r&&i>=t)throw new Error("Excess padding");if(!r&&o)throw new Error(`Non-zero padding: ${o}`);return r&&i>0&&a.push(o>>>0),a}function Dn(e,t=!1){if(_n(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Un(8,e)>32||Un(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return Fn(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(Fn(n,e,8,t))}}}function qn(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}const Hn=Ln(Dn(4),Pn("0123456789ABCDEF"),On("")),zn=Ln(Dn(5),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bn(5),On(""));Ln(Dn(5),Pn("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bn(5),On("")),Ln(Dn(5),Pn("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),On(""),jn(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const Kn=Ln(Dn(6),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bn(6),On("")),Wn=Ln(Dn(6),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bn(6),On("")),Vn=e=>{return Ln((_n(t=58),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Nn(Array.from(e),256,t)},decode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(Nn(e,t,256))}}),Pn(e),On(""));var t},Jn=Vn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");Vn("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),Vn("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Zn=[0,2,3,5,6,7,9,10,11],Gn={encode(e){let t="";for(let n=0;n<e.length;n+=8){const r=e.subarray(n,n+8);t+=Jn.encode(r).padStart(Zn[r.length],"1")}return t},decode(e){let t=[];for(let n=0;n<e.length;n+=11){const r=e.slice(n,n+11),o=Zn.indexOf(r.length),i=Jn.decode(r);for(let e=0;e<i.length-o;e++)if(0!==i[e])throw new Error("base58xmr: wrong padding");t=t.concat(Array.from(i.slice(i.length-o)))}return Uint8Array.from(t)}},Qn=Ln(Pn("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),On("")),Yn=[996825010,642813549,513874426,1027748829,705979059];function Xn(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Yn.length;e++)1==(t>>e&1)&&(n^=Yn[e]);return n}function er(e,t,n=1){const r=e.length;let o=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);o=Xn(o)^n>>5}o=Xn(o);for(let t=0;t<r;t++)o=Xn(o)^31&e.charCodeAt(t);for(let e of t)o=Xn(o)^e;for(let e=0;e<6;e++)o=Xn(o);return o^=n,Qn.encode(Fn([o%2**30],30,5,!1))}function tr(e){const t="bech32"===e?1:734539939,n=Dn(5),r=n.decode,o=n.encode,i=qn(r);function s(e,n=90){if("string"!=typeof e)throw new Error("bech32.decode input should be string, not "+typeof e);if(e.length<8||!1!==n&&e.length>n)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),s=e.slice(o+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=Qn.decode(s).slice(0,-6),l=er(i,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:i,words:a}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${Qn.encode(n)}${er(e,n,t)}`},decode:s,decodeToBytes:function(e){const{prefix:t,words:n}=s(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:qn(s),fromWords:r,fromWordsUnsafe:i,toWords:o}}const nr=tr("bech32");tr("bech32m");const rr={utf8:{encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},hex:Ln(Dn(4),Pn("0123456789abcdef"),On(""),jn(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),base16:Hn,base32:zn,base64:Kn,base64url:Wn,base58:Jn,base58xmr:Gn};function or(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function ir(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)}function sr(e,...t){if(!((n=e)instanceof Uint8Array||null!=n&&"object"==typeof n&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}
|
||
/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */Object.keys(rr).join(", ");const ar=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");const lr=16;function cr(e){return e<<1^283&-(e>>7)}function ur(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(1&t),e=cr(e);return n}const dr=(()=>{let e=new Uint8Array(256);for(let t=0,n=1;t<256;t++,n^=cr(n))e[t]=n;const t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return t})(),fr=dr.map((e,t)=>dr.indexOf(t)),hr=e=>e<<24|e>>>8,pr=e=>e<<8|e>>>24;function gr(e,t){if(256!==e.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>t(e[r])),r=n.map(pr),o=r.map(pr),i=o.map(pr),s=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let t=0;t<256;t++)for(let c=0;c<256;c++){const u=256*t+c;s[u]=n[t]^r[c],a[u]=o[t]^i[c],l[u]=e[t]<<8|e[c]}return{sbox:e,sbox2:l,T0:n,T1:r,T2:o,T3:i,T01:s,T23:a}}const yr=gr(dr,e=>ur(e,3)<<24|e<<16|e<<8|ur(e,2)),vr=gr(fr,e=>ur(e,11)<<24|ur(e,13)<<16|ur(e,9)<<8|ur(e,14)),mr=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=cr(n))e[t]=n;return e})();function wr(e){sr(e);const t=e.length;if(![16,24,32].includes(t))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${t}`);const{sbox2:n}=yr,r=ar(e),o=r.length,i=e=>Er(n,e,e,e,e),s=new Uint32Array(t+28);s.set(r);for(let e=o;e<s.length;e++){let t=s[e-1];e%o===0?t=i(hr(t))^mr[e/o-1]:o>6&&e%o===4&&(t=i(t)),s[e]=s[e-o]^t}return s}function br(e,t,n,r,o,i){return e[n<<8&65280|r>>>8&255]^t[o>>>8&65280|i>>>24&255]}function Er(e,t,n,r,o){return e[255&t|65280&n]|e[r>>>16&255|o>>>16&65280]<<16}function kr(e,t,n,r,o){const{sbox2:i,T01:s,T23:a}=yr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],o^=e[l++];const c=e.length/4-2;for(let i=0;i<c;i++){const i=e[l++]^br(s,a,t,n,r,o),c=e[l++]^br(s,a,n,r,o,t),u=e[l++]^br(s,a,r,o,t,n),d=e[l++]^br(s,a,o,t,n,r);t=i,n=c,r=u,o=d}return{s0:e[l++]^Er(i,t,n,r,o),s1:e[l++]^Er(i,n,r,o,t),s2:e[l++]^Er(i,r,o,t,n),s3:e[l++]^Er(i,o,t,n,r)}}function xr(e,t,n,r,o){const{sbox2:i,T01:s,T23:a}=vr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],o^=e[l++];const c=e.length/4-2;for(let i=0;i<c;i++){const i=e[l++]^br(s,a,t,o,r,n),c=e[l++]^br(s,a,n,t,o,r),u=e[l++]^br(s,a,r,n,t,o),d=e[l++]^br(s,a,o,r,n,t);t=i,n=c,r=u,o=d}return{s0:e[l++]^Er(i,t,o,r,n),s1:e[l++]^Er(i,n,t,o,r),s2:e[l++]^Er(i,r,n,t,o),s3:e[l++]^Er(i,o,r,n,t)}}function Sr(e,t){if(!t)return new Uint8Array(e);if(sr(t),t.length<e)throw new Error(`aes: wrong destination length, expected at least ${e}, got: ${t.length}`);return t}const Cr=(Ar={blockSize:16,nonceLength:16},$r=function(e,t,n={}){sr(e),sr(t,16);const r=!n.disablePadding;return{encrypt:(n,o)=>{const i=wr(e),{b:s,o:a,out:l}=function(e,t,n){let r=e.length;const o=r%lr;if(!t&&0!==o)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");const i=ar(e);if(t){let e=lr-o;e||(e=lr),r+=e}const s=Sr(r,n);return{b:i,o:ar(s),out:s}}(n,r,o),c=ar(t);let u=c[0],d=c[1],f=c[2],h=c[3],p=0;for(;p+4<=s.length;)u^=s[p+0],d^=s[p+1],f^=s[p+2],h^=s[p+3],({s0:u,s1:d,s2:f,s3:h}=kr(i,u,d,f,h)),a[p++]=u,a[p++]=d,a[p++]=f,a[p++]=h;if(r){const e=function(e){const t=new Uint8Array(16),n=ar(t);t.set(e);const r=lr-e.length;for(let e=lr-r;e<lr;e++)t[e]=r;return n}(n.subarray(4*p));u^=e[0],d^=e[1],f^=e[2],h^=e[3],({s0:u,s1:d,s2:f,s3:h}=kr(i,u,d,f,h)),a[p++]=u,a[p++]=d,a[p++]=f,a[p++]=h}return i.fill(0),l},decrypt:(n,o)=>{!function(e){if(sr(e),e.length%lr!==0)throw new Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}(n);const i=function(e){const t=wr(e),n=t.slice(),r=t.length,{sbox2:o}=yr,{T0:i,T1:s,T2:a,T3:l}=vr;for(let e=0;e<r;e+=4)for(let o=0;o<4;o++)n[e+o]=t[r-e-4+o];t.fill(0);for(let e=4;e<r-4;e++){const t=n[e],r=Er(o,t,t,t,t);n[e]=i[255&r]^s[r>>>8&255]^a[r>>>16&255]^l[r>>>24]}return n}(e),s=ar(t),a=Sr(n.length,o),l=ar(n),c=ar(a);let u=s[0],d=s[1],f=s[2],h=s[3];for(let e=0;e+4<=l.length;){const t=u,n=d,r=f,o=h;u=l[e+0],d=l[e+1],f=l[e+2],h=l[e+3];const{s0:s,s1:a,s2:p,s3:g}=xr(i,u,d,f,h);c[e++]=s^t,c[e++]=a^n,c[e++]=p^r,c[e++]=g^o}return i.fill(0),function(e,t){if(!t)return e;const n=e.length;if(!n)throw new Error("aes/pcks5: empty ciphertext not allowed");const r=e[n-1];if(r<=0||r>16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const o=e.subarray(0,-r);for(let t=0;t<r;t++)if(e[n-t-1]!==r)throw new Error("aes/pcks5: wrong padding");return o}(a,r)}}},Object.assign($r,Ar),$r);var Ar,$r;const Tr=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),Ir=Tr("expand 16-byte k"),Rr=Tr("expand 32-byte k"),_r=ar(Ir),Lr=ar(Rr);function Pr(e,t){return e<<t|e>>>32-t}function Or(e){return e.byteOffset%4==0}Lr.slice();const Br=2**32-1,jr=new Uint32Array;function Nr(e,t){const{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:i,rounds:s}=function(e,t){if(null==t||"object"!=typeof t)throw new Error("options must be defined");return Object.assign(e,t)}({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if("function"!=typeof e)throw new Error("core must be a function");return or(o),or(s),ir(i),ir(n),(t,a,l,c,u=0)=>{sr(t),sr(a),sr(l);const d=l.length;if(c||(c=new Uint8Array(d)),sr(c),or(u),u<0||u>=Br)throw new Error("arx: counter overflow");if(c.length<d)throw new Error(`arx: output (${c.length}) is shorter than data (${d})`);const f=[];let h,p,g=t.length;if(32===g)h=t.slice(),f.push(h),p=Lr;else{if(16!==g||!n)throw new Error(`arx: invalid 32-byte key, got length=${g}`);h=new Uint8Array(32),h.set(t),h.set(t,16),p=_r,f.push(h)}Or(a)||(a=a.slice(),f.push(a));const y=ar(h);if(r){if(24!==a.length)throw new Error("arx: extended nonce must be 24 bytes");r(p,y,ar(a.subarray(0,16)),y),a=a.subarray(16)}const v=16-o;if(v!==a.length)throw new Error(`arx: nonce must be ${v} or 16 bytes`);if(12!==v){const e=new Uint8Array(12);e.set(a,i?0:12-a.length),a=e,f.push(a)}const m=ar(a);for(!function(e,t,n,r,o,i,s,a){const l=o.length,c=new Uint8Array(64),u=ar(c),d=Or(o)&&Or(i),f=d?ar(o):jr,h=d?ar(i):jr;for(let p=0;p<l;s++){if(e(t,n,r,u,s,a),s>=Br)throw new Error("arx: counter overflow");const g=Math.min(64,l-p);if(d&&64===g){const e=p/4;if(p%4!=0)throw new Error("arx: invalid block position");for(let t,n=0;n<16;n++)t=e+n,h[t]=f[t]^u[n];p+=64;continue}for(let e,t=0;t<g;t++)e=p+t,i[e]=o[e]^c[t];p+=g}}(e,p,y,m,l,c,u,s);f.length>0;)f.pop().fill(0);return c}}function Mr(e,t,n,r,o,i=20){let s=e[0],a=e[1],l=e[2],c=e[3],u=t[0],d=t[1],f=t[2],h=t[3],p=t[4],g=t[5],y=t[6],v=t[7],m=o,w=n[0],b=n[1],E=n[2],k=s,x=a,S=l,C=c,A=u,$=d,T=f,I=h,R=p,_=g,L=y,P=v,O=m,B=w,j=b,N=E;for(let e=0;e<i;e+=2)k=k+A|0,O=Pr(O^k,16),R=R+O|0,A=Pr(A^R,12),k=k+A|0,O=Pr(O^k,8),R=R+O|0,A=Pr(A^R,7),x=x+$|0,B=Pr(B^x,16),_=_+B|0,$=Pr($^_,12),x=x+$|0,B=Pr(B^x,8),_=_+B|0,$=Pr($^_,7),S=S+T|0,j=Pr(j^S,16),L=L+j|0,T=Pr(T^L,12),S=S+T|0,j=Pr(j^S,8),L=L+j|0,T=Pr(T^L,7),C=C+I|0,N=Pr(N^C,16),P=P+N|0,I=Pr(I^P,12),C=C+I|0,N=Pr(N^C,8),P=P+N|0,I=Pr(I^P,7),k=k+$|0,N=Pr(N^k,16),L=L+N|0,$=Pr($^L,12),k=k+$|0,N=Pr(N^k,8),L=L+N|0,$=Pr($^L,7),x=x+T|0,O=Pr(O^x,16),P=P+O|0,T=Pr(T^P,12),x=x+T|0,O=Pr(O^x,8),P=P+O|0,T=Pr(T^P,7),S=S+I|0,B=Pr(B^S,16),R=R+B|0,I=Pr(I^R,12),S=S+I|0,B=Pr(B^S,8),R=R+B|0,I=Pr(I^R,7),C=C+A|0,j=Pr(j^C,16),_=_+j|0,A=Pr(A^_,12),C=C+A|0,j=Pr(j^C,8),_=_+j|0,A=Pr(A^_,7);let M=0;r[M++]=s+k|0,r[M++]=a+x|0,r[M++]=l+S|0,r[M++]=c+C|0,r[M++]=u+A|0,r[M++]=d+$|0,r[M++]=f+T|0,r[M++]=h+I|0,r[M++]=p+R|0,r[M++]=g+_|0,r[M++]=y+L|0,r[M++]=v+P|0,r[M++]=m+O|0,r[M++]=w+B|0,r[M++]=b+j|0,r[M++]=E+N|0}const Ur=Nr(Mr,{counterRight:!1,counterLength:4,allowShortKeys:!1});class Fr extends Qt{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,nn.hash(e);const n=Zt(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<o.length;e++)o[e]^=54;this.iHash.update(o),this.oHash=e.create();for(let e=0;e<o.length;e++)o[e]^=106;this.oHash.update(o),o.fill(0)}update(e){return nn.exists(this),this.iHash.update(e),this}digestInto(e){nn.exists(this),nn.bytes(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:o,blockLen:i,outputLen:s}=this;return e.finished=r,e.destroyed=o,e.blockLen=i,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Dr=(e,t,n)=>new Fr(e,t).update(n).digest();Dr.create=(e,t)=>new Fr(e,t);const qr=new Uint8Array([0]),Hr=new Uint8Array;var zr=Object.defineProperty,Kr=(e,t)=>{for(var n in t)zr(e,n,{get:t[n],enumerable:!0})},Wr=Symbol("verified");function Vr(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("string"!=typeof n[e])return!1}return!0}Kr({},{Queue:()=>to,QueueNode:()=>eo,binarySearch:()=>Xr,bytesToHex:()=>Vt,hexToBytes:()=>Jt,insertEventIntoAscendingList:()=>Yr,insertEventIntoDescendingList:()=>Qr,normalizeURL:()=>Gr,utf8Decoder:()=>Jr,utf8Encoder:()=>Zr});var Jr=new TextDecoder("utf-8"),Zr=new TextEncoder;function Gr(e){try{-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}catch(t){throw new Error(`Invalid URL: ${e}`)}}function Qr(e,t){const[n,r]=Xr(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function Yr(e,t){const[n,r]=Xr(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:t.created_at-e.created_at);return r||e.splice(n,0,t),e}function Xr(e,t){let n=0,r=e.length-1;for(;n<=r;){const o=Math.floor((n+r)/2),i=t(e[o]);if(0===i)return[o,!0];i<0?r=o-1:n=o+1}return[n,!1]}var eo=class{value;next=null;prev=null;constructor(e){this.value=e}},to=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new eo(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,this.first&&(this.first.prev=null),e.value}};function no(e){return Vt(fn(Zr.encode(function(e){if(!Vr(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}(e))))}var ro=new class{generateSecretKey(){return Dt.utils.randomPrivateKey()}getPublicKey(e){return Vt(Dt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=Vt(Dt.getPublicKey(t)),n.id=no(n),n.sig=Vt(Dt.sign(no(n),t)),n[Wr]=!0,n}verifyEvent(e){if("boolean"==typeof e[Wr])return e[Wr];const t=no(e);if(t!==e.id)return e[Wr]=!1,!1;try{const n=Dt.verify(e.sig,t,e.pubkey);return e[Wr]=n,n}catch(t){return e[Wr]=!1,!1}}},oo=ro.generateSecretKey,io=ro.getPublicKey,so=ro.finalizeEvent,ao=ro.verifyEvent,lo={};function co(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function uo(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function fo(e){return 2e4<=e&&e<3e4}function ho(e){return 3e4<=e&&e<4e4}function po(e){return co(e)?"regular":uo(e)?"replaceable":fo(e)?"ephemeral":ho(e)?"parameterized":"unknown"}function go(e,t){const n=t instanceof Array?t:[t];return Vr(e)&&n.includes(e.kind)||!1}Kr(lo,{Application:()=>$i,BadgeAward:()=>So,BadgeDefinition:()=>bi,BlockedRelaysList:()=>ti,BookmarkList:()=>Yo,Bookmarksets:()=>vi,Calendar:()=>Oi,CalendarEventRSVP:()=>Bi,ChannelCreation:()=>To,ChannelHideMessage:()=>_o,ChannelMessage:()=>Ro,ChannelMetadata:()=>Io,ChannelMuteUser:()=>Lo,ClassifiedListing:()=>Ri,ClientAuth:()=>ci,CommunitiesList:()=>Xo,CommunityDefinition:()=>Mi,CommunityPostApproval:()=>Do,Contacts:()=>wo,CreateOrUpdateProduct:()=>xi,CreateOrUpdateStall:()=>ki,Curationsets:()=>mi,Date:()=>Li,DirectMessageRelaysList:()=>ii,DraftClassifiedListing:()=>_i,DraftLong:()=>Ci,Emojisets:()=>Ai,EncryptedDirectMessage:()=>bo,EventDeletion:()=>Eo,FileMetadata:()=>Bo,FileServerPreference:()=>si,Followsets:()=>pi,GenericRepost:()=>$o,Genericlists:()=>gi,GiftWrap:()=>Oo,HTTPAuth:()=>hi,Handlerinformation:()=>Ni,Handlerrecommendation:()=>ji,Highlights:()=>Jo,InterestsList:()=>ri,Interestsets:()=>Ei,JobFeedback:()=>zo,JobRequest:()=>qo,JobResult:()=>Ho,Label:()=>Fo,LightningPubRPC:()=>li,LiveChatMessage:()=>jo,LiveEvent:()=>Ti,LongFormArticle:()=>Si,Metadata:()=>yo,Mutelist:()=>Zo,NWCWalletInfo:()=>ai,NWCWalletRequest:()=>ui,NWCWalletResponse:()=>di,NostrConnect:()=>fi,OpenTimestamps:()=>Po,Pinlist:()=>Go,PrivateDirectMessage:()=>Ao,ProblemTracker:()=>No,ProfileBadges:()=>wi,PublicChatsList:()=>ei,Reaction:()=>xo,RecommendRelay:()=>mo,RelayList:()=>Qo,Relaysets:()=>yi,Report:()=>Mo,Reporting:()=>Uo,Repost:()=>ko,Seal:()=>Co,SearchRelaysList:()=>ni,ShortTextNote:()=>vo,Time:()=>Pi,UserEmojiList:()=>oi,UserStatuses:()=>Ii,Zap:()=>Vo,ZapGoal:()=>Ko,ZapRequest:()=>Wo,classifyKind:()=>po,isAddressableKind:()=>ho,isEphemeralKind:()=>fo,isKind:()=>go,isRegularKind:()=>co,isReplaceableKind:()=>uo});var yo=0,vo=1,mo=2,wo=3,bo=4,Eo=5,ko=6,xo=7,So=8,Co=13,Ao=14,$o=16,To=40,Io=41,Ro=42,_o=43,Lo=44,Po=1040,Oo=1059,Bo=1063,jo=1311,No=1971,Mo=1984,Uo=1984,Fo=1985,Do=4550,qo=5999,Ho=6999,zo=7e3,Ko=9041,Wo=9734,Vo=9735,Jo=9802,Zo=1e4,Go=10001,Qo=10002,Yo=10003,Xo=10004,ei=10005,ti=10006,ni=10007,ri=10015,oi=10030,ii=10050,si=10096,ai=13194,li=21e3,ci=22242,ui=23194,di=23195,fi=24133,hi=27235,pi=3e4,gi=30001,yi=30002,vi=30003,mi=30004,wi=30008,bi=30009,Ei=30015,ki=30017,xi=30018,Si=30023,Ci=30024,Ai=30030,$i=30078,Ti=30311,Ii=30315,Ri=30402,_i=30403,Li=31922,Pi=31923,Oi=31924,Bi=31925,ji=31989,Ni=31990,Mi=34550;function Ui(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,o=e.slice(r).indexOf('"')+r+1;return e.slice(o,o+64)}function Fi(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,o=e.slice(r),i=Math.min(o.indexOf(","),o.indexOf("}"));return parseInt(o.slice(0,i),10)}function Di(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,o=e.slice(r+1,80).indexOf('"');if(-1===o)return null;let i=r+1+o;return e.slice(r+1,i)}function qi(e,t){return t===Ui(e,"id")}function Hi(e,t){return t===Ui(e,"pubkey")}function zi(e,t){return t===Fi(e,"kind")}Kr({},{getHex64:()=>Ui,getInt:()=>Fi,getSubscriptionId:()=>Di,matchEventId:()=>qi,matchEventKind:()=>zi,matchEventPubkey:()=>Hi});function Ki(e,t){return{kind:ci,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}Kr({},{makeAuthEvent:()=>Ki});try{WebSocket}catch{}try{WebSocket}catch{}var Wi={};Kr(Wi,{BECH32_REGEX:()=>Zi,Bech32MaxSize:()=>Ji,NostrTypeGuard:()=>Vi,decode:()=>Qi,decodeNostrURI:()=>Gi,encodeBytes:()=>rs,naddrEncode:()=>ss,neventEncode:()=>is,noteEncode:()=>ts,nprofileEncode:()=>os,npubEncode:()=>es,nsecEncode:()=>Xi});var Vi={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},Ji=5e3,Zi=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function Gi(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),Qi(e)}catch(e){return{type:"invalid",data:null}}}function Qi(e){let{prefix:t,words:n}=nr.decode(e,Ji),r=new Uint8Array(nr.fromWords(n));switch(t){case"nprofile":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:Vt(e[0][0]),relays:e[1]?e[1].map(e=>Jr.decode(e)):[]}}}case"nevent":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:Vt(e[0][0]),relays:e[1]?e[1].map(e=>Jr.decode(e)):[],author:e[2]?.[0]?Vt(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(Vt(e[3][0]),16):void 0}}}case"naddr":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:Jr.decode(e[0][0]),pubkey:Vt(e[2][0]),kind:parseInt(Vt(e[3][0]),16),relays:e[1]?e[1].map(e=>Jr.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:Vt(r)};default:throw new Error(`unknown prefix ${t}`)}}function Yi(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],o=n.slice(2,2+r);if(n=n.slice(2+r),o.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(o)}return t}function Xi(e){return rs("nsec",e)}function es(e){return rs("npub",Jt(e))}function ts(e){return rs("note",Jt(e))}function ns(e,t){let n=nr.toWords(t);return nr.encode(e,n,Ji)}function rs(e,t){return ns(e,t)}function os(e){return ns("nprofile",as({0:[Jt(e.pubkey)],1:(e.relays||[]).map(e=>Zr.encode(e))}))}function is(e){let t;return void 0!==e.kind&&(t=function(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t}(e.kind)),ns("nevent",as({0:[Jt(e.id)],1:(e.relays||[]).map(e=>Zr.encode(e)),2:e.author?[Jt(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function ss(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),ns("naddr",as({0:[Zr.encode(e.identifier)],1:(e.relays||[]).map(e=>Zr.encode(e)),2:[Jt(e.pubkey)],3:[new Uint8Array(t)]}))}function as(e){let t=[];return Object.entries(e).reverse().forEach(([e,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(e)],0),r.set([n.length],1),r.set(n,2),t.push(r)})}),Gt(...t)}var ls={};function cs(e,t,n){const r=e instanceof Uint8Array?Vt(e):e,o=ds(Ct.getSharedSecret(r,"02"+t));let i=Uint8Array.from(Xt(16)),s=Zr.encode(n),a=Cr(o,i).encrypt(s);return`${Kn.encode(new Uint8Array(a))}?iv=${Kn.encode(new Uint8Array(i.buffer))}`}function us(e,t,n){const r=e instanceof Uint8Array?Vt(e):e;let[o,i]=n.split("?iv="),s=ds(Ct.getSharedSecret(r,"02"+t)),a=Kn.decode(i),l=Kn.decode(o),c=Cr(s,a).decrypt(l);return Jr.decode(c)}function ds(e){return e.slice(1,33)}Kr(ls,{decrypt:()=>us,encrypt:()=>cs});Kr({},{NIP05_REGEX:()=>hs,isNip05:()=>ps,isValid:()=>ms,queryProfile:()=>vs,searchDomain:()=>ys,useFetchImplementation:()=>gs});var fs,hs=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,ps=e=>hs.test(e||"");try{fs=fetch}catch(e){}function gs(e){fs=e}async function ys(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await fs(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(e){return{}}}async function vs(e){const t=e.match(hs);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await fs(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const o=await t.json(),i=o.names[n];return i?{pubkey:i,relays:o.relays?.[i]}:null}catch(e){return null}}async function ms(e,t){const n=await vs(t);return!!n&&n.pubkey===e}function ws(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let o=e.tags.length-1;o>=0;o--){const i=e.tags[o];if("e"===i[0]&&i[1]){const[e,o,s,a,l]=i,c={id:o,relays:s?[s]:[],author:l};if("root"===a){t.root=c;continue}if("reply"===a){t.reply=c;continue}if("mention"===a){t.mentions.push(c);continue}n?r=c:n=c,t.mentions.push(c);continue}if("q"===i[0]&&i[1]){const[e,n,r]=i;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===i[0]&&i[1]&&t.profiles.push({pubkey:i[1],relays:i[2]?[i[2]]:[]})}return t.root||(t.root=r||n||t.reply),t.reply||(t.reply=n||t.root),[t.reply,t.root].forEach(e=>{if(!e)return;let n=t.mentions.indexOf(e);if(-1!==n&&t.mentions.splice(n,1),e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays?.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t.mentions.forEach(e=>{if(e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t}Kr({},{parse:()=>ws});Kr({},{fetchRelayInformation:()=>Es,useFetchImplementation:()=>bs});try{fetch}catch{}function bs(e){0}async function Es(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function ks(e){let t=0;for(let n=0;n<64;n+=8){const r=parseInt(e.substring(n,n+8),16);if(0!==r){t+=Math.clz32(r);break}t+=32}return t}function xs(e,t){let n=0;const r=e,o=["nonce",n.toString(),t.toString()];for(r.tags.push(o);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),o[1]=(++n).toString(),r.id=Ss(r),ks(r.id)>=t)break}return r}function Ss(e){return Vt(fn(Zr.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}Kr({},{fastEventHash:()=>Ss,getPow:()=>ks,minePow:()=>xs});Kr({},{unwrapEvent:()=>Gs,unwrapManyEvents:()=>Qs,wrapEvent:()=>Js,wrapManyEvents:()=>Zs});Kr({},{createRumor:()=>Ds,createSeal:()=>qs,createWrap:()=>Hs,unwrapEvent:()=>Ws,unwrapManyEvents:()=>Vs,wrapEvent:()=>zs,wrapManyEvents:()=>Ks});var Cs={};Kr(Cs,{decrypt:()=>Os,encrypt:()=>Ps,getConversationKey:()=>Ts,v2:()=>Bs});var As=1,$s=65535;function Ts(e,t){const n=Ct.getSharedSecret(e,"02"+t).subarray(1,33);return function(e,t,n){return nn.hash(e),void 0===n&&(n=new Uint8Array(e.outputLen)),Dr(e,Zt(n),Zt(t))}(fn,n,"nip44-v2")}function Is(e,t){const n=function(e,t,n,r=32){if(nn.hash(e),nn.number(r),r>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/e.outputLen);void 0===n&&(n=Hr);const i=new Uint8Array(o*e.outputLen),s=Dr.create(e,t),a=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let t=0;t<o;t++)qr[0]=t+1,a.update(0===t?Hr:l).update(n).update(qr).digestInto(l),i.set(l,e.outputLen*t),s._cloneInto(a);return s.destroy(),a.destroy(),l.fill(0),qr.fill(0),i.slice(0,r)}(fn,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function Rs(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;const t=1<<Math.floor(Math.log2(e-1))+1,n=t<=256?32:t/8;return n*(Math.floor((e-1)/n)+1)}function _s(e){const t=Zr.encode(e),n=t.length;return Gt(function(e){if(!Number.isSafeInteger(e)||e<As||e>$s)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}(n),t,new Uint8Array(Rs(n)-n))}function Ls(e,t,n){if(32!==n.length)throw new Error("AAD associated data must be 32 bytes");const r=Gt(n,t);return Dr(fn,e,r)}function Ps(e,t,n=Xt(32)){const{chacha_key:r,chacha_nonce:o,hmac_key:i}=Is(t,n),s=_s(e),a=Ur(r,o,s),l=Ls(i,a,n);return Kn.encode(Gt(new Uint8Array([2]),n,a,l))}function Os(e,t){const{nonce:n,ciphertext:r,mac:o}=function(e){if("string"!=typeof e)throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if("#"===e[0])throw new Error("unknown encryption version");let n;try{n=Kn.decode(e)}catch(e){throw new Error("invalid base64: "+e.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const o=n[0];if(2!==o)throw new Error("unknown encryption version "+o);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:i,chacha_nonce:s,hmac_key:a}=Is(t,n);if(!function(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return 0===n}(Ls(a,r,n),o))throw new Error("invalid MAC");return function(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t<As||t>$s||n.length!==t||e.length!==2+Rs(t))throw new Error("invalid padding");return Jr.decode(n)}(Ur(i,s,r))}var Bs={utils:{getConversationKey:Ts,calcPaddedLen:Rs},encrypt:Ps,decrypt:Os},js=()=>Math.round(Date.now()/1e3),Ns=()=>Math.round(js()-172800*Math.random()),Ms=(e,t)=>Ts(e,t),Us=(e,t,n)=>Ps(JSON.stringify(e),Ms(t,n)),Fs=(e,t)=>JSON.parse(Os(e.content,Ms(t,e.pubkey)));function Ds(e,t){const n={created_at:js(),content:"",tags:[],...e,pubkey:io(t)};return n.id=no(n),n}function qs(e,t,n){return so({kind:Co,content:Us(e,t,n),created_at:Ns(),tags:[]},t)}function Hs(e,t){const n=oo();return so({kind:Oo,content:Us(e,n,t),created_at:Ns(),tags:[["p",t]]},n)}function zs(e,t,n){return Hs(qs(Ds(e,t),t,n),n)}function Ks(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=io(t),o=[zs(e,t,r)];return n.forEach(n=>{o.push(zs(e,t,n))}),o}function Ws(e,t){const n=Fs(e,t);return Fs(n,t)}function Vs(e,t){let n=[];return e.forEach(e=>{n.push(Ws(e,t))}),n.sort((e,t)=>e.created_at-t.created_at),n}function Js(e,t,n,r,o){const i=function(e,t,n,r){const o={created_at:Math.ceil(Date.now()/1e3),kind:Ao,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach(({publicKey:e,relayUrl:t})=>{o.tags.push(t?["p",e,t]:["p",e])}),r&&o.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&o.tags.push(["subject",n]),o}(t,n,r,o);return zs(i,e,t.publicKey)}function Zs(e,t,n,r,o){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:io(e)},...t].map(t=>Js(e,t,n,r,o))}var Gs=Ws,Qs=Vs;function Ys(e,t,n,r){let o;const i=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===vo?o=ko:(o=$o,i.push(["k",String(t.kind)])),so({kind:o,tags:i,content:""===e.content||t.tags?.find(e=>"-"===e[0])?"":JSON.stringify(t),created_at:e.created_at},r)}function Xs(e){if(![ko,$o].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const o=e.tags[r];o.length>=2&&("e"===o[0]&&void 0===t?t=o:"p"===o[0]&&void 0===n&&(n=o))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter(e=>"string"==typeof e),author:n?.[1]}:void 0}function ea(e,{skipVerification:t}={}){const n=Xs(e);if(void 0===n||""===e.content)return;let r;try{r=JSON.parse(e.content)}catch(e){return}return r.id===n.id&&(t||ao(r))?r:void 0}Kr({},{finishRepostEvent:()=>Ys,getRepostedEvent:()=>ea,getRepostedEventPointer:()=>Xs});Kr({},{NOSTR_URI_REGEX:()=>ta,parse:()=>ra,test:()=>na});var ta=new RegExp(`nostr:(${Zi.source})`);function na(e){return"string"==typeof e&&new RegExp(`^${ta.source}$`).test(e)}function ra(e){const t=e.match(new RegExp(`^${ta.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:Qi(t[1])}}function oa(e,t,n){const r=t.tags.filter(e=>e.length>=2&&("e"===e[0]||"p"===e[0]));return so({...e,kind:xo,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function ia(e){if(e.kind!==xo)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const o=e.tags[r];o.length>=2&&("e"===o[0]&&void 0===t?t=o:"p"===o[0]&&void 0===n&&(n=o))}return void 0!==t&&void 0!==n?{id:t[1],relays:[t[2],n[2]].filter(e=>void 0!==e),author:n[1]}:void 0}Kr({},{finishReactionEvent:()=>oa,getReactedEventPointer:()=>ia});Kr({},{parse:()=>la});var sa=/\W/m,aa=/\W |\W$|$|,| /m;function*la(e){const t=e.length;let n=0,r=0;for(;r<t;){let o=e.indexOf(":",r);if(-1===o)break;if("nostr"===e.substring(o-5,o)){const i=e.substring(o+60).match(sa),s=i?o+60+i.index:t;try{let t,{data:i,type:a}=Qi(e.substring(o+1,s));switch(a){case"npub":t={pubkey:i};break;case"nsec":case"note":r=s+1;continue;default:t=i}n!==o-5&&(yield{type:"text",text:e.substring(n,o-5)}),yield{type:"reference",pointer:t},r=s,n=r;continue}catch(e){r=o+1;continue}}else if("https"===e.substring(o-5,o)||"http"===e.substring(o-4,o)){const i=e.substring(o+4).match(aa),s=i?o+4+i.index:t,a="s"===e[o-1]?5:4;try{let t=new URL(e.substring(o-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid url");if(n!==o-a&&(yield{type:"text",text:e.substring(n,o-a)}),/\.(png|jpe?g|gif|webp)$/i.test(t.pathname)){yield{type:"image",url:t.toString()},r=s,n=r;continue}if(/\.(mp4|avi|webm|mkv)$/i.test(t.pathname)){yield{type:"video",url:t.toString()},r=s,n=r;continue}if(/\.(mp3|aac|ogg|opus)$/i.test(t.pathname)){yield{type:"audio",url:t.toString()},r=s,n=r;continue}yield{type:"url",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}else{if("wss"!==e.substring(o-3,o)&&"ws"!==e.substring(o-2,o)){r=o+1;continue}{const i=e.substring(o+4).match(aa),s=i?o+4+i.index:t,a="s"===e[o-1]?3:2;try{let t=new URL(e.substring(o-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid ws url");n!==o-a&&(yield{type:"text",text:e.substring(n,o-a)}),yield{type:"relay",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}}}n!==t&&(yield{type:"text",text:e.substring(n)})}Kr({},{channelCreateEvent:()=>ca,channelHideMessageEvent:()=>fa,channelMessageEvent:()=>da,channelMetadataEvent:()=>ua,channelMuteUserEvent:()=>ha});var ca=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:To,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},ua=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:Io,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},da=(e,t)=>{const n=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&n.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),so({kind:Ro,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},fa=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:_o,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},ha=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:Lo,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)};Kr({},{EMOJI_SHORTCODE_REGEX:()=>pa,matchAll:()=>ya,regex:()=>ga,replaceAll:()=>va});var pa=/:(\w+):/,ga=()=>new RegExp(`\\B${pa.source}\\B`,"g");function*ya(e){const t=e.matchAll(ga());for(const e of t)try{const[t,n]=e;yield{shortcode:t,name:n,start:e.index,end:e.index+t.length}}catch(e){}}function va(e,t){return e.replaceAll(ga(),(e,n)=>t({shortcode:e,name:n}))}var ma;Kr({},{useFetchImplementation:()=>wa,validateGithub:()=>ba});try{ma=fetch}catch{}function wa(e){ma=e}async function ba(e,t,n){try{return await(await ma(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(e){return!1}}function Ea(e){const{host:t,pathname:n,searchParams:r}=new URL(e),o=n||t,i=r.get("relay"),s=r.get("secret");if(!o||!i||!s)throw new Error("invalid connection string");return{pubkey:o,relay:i,secret:s}}async function ka(e,t,n){const r={method:"pay_invoice",params:{invoice:n}},o=cs(t,e,JSON.stringify(r)),i={kind:ui,created_at:Math.round(Date.now()/1e3),content:o,tags:[["p",e]]};return so(i,t)}Kr({},{makeNwcRequestEvent:()=>ka,parseConnectionString:()=>Ea});function xa(e){return e=(e=e.trim().toLowerCase()).normalize("NFKC"),Array.from(e).map(e=>/\p{Letter}/u.test(e)||/\p{Number}/u.test(e)?e:"-").join("")}Kr({},{normalizeIdentifier:()=>xa});var Sa;Kr({},{getSatoshisAmountFromBolt11:()=>Ra,getZapEndpoint:()=>Aa,makeZapReceipt:()=>Ia,makeZapRequest:()=>$a,useFetchImplementation:()=>Ca,validateZapRequest:()=>Ta});try{Sa=fetch}catch{}function Ca(e){Sa=e}async function Aa(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(n){let{words:e}=nr.decode(n,1e3),r=nr.fromWords(e);t=Jr.decode(r)}else{if(!r)return null;{let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}}let o=await Sa(t),i=await o.json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(e){}return null}function $a(e){let t={kind:9734,created_at:Math.round(Date.now()/1e3),content:e.comment||"",tags:[["p","pubkey"in e?e.pubkey:e.event.pubkey],["amount",e.amount.toString()],["relays",...e.relays]]};if("event"in e){if(t.tags.push(["e",e.event.id]),uo(e.event.kind)){const n=["a",`${e.event.kind}:${e.event.pubkey}:`];t.tags.push(n)}else if(ho(e.event.kind)){let n=e.event.tags.find(([e,t])=>"d"===e&&t);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${e.event.kind}:${e.event.pubkey}:${n[1]}`];t.tags.push(r)}t.tags.push(["k",e.event.kind.toString()])}return t}function Ta(e){let t;try{t=JSON.parse(e)}catch(e){return"Invalid zap request JSON."}if(!Vr(t))return"Zap request is not a valid Nostr event.";if(!ao(t))return"Invalid signature on zap request.";let n=t.tags.find(([e,t])=>"p"===e&&t);if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=t.tags.find(([e,t])=>"e"===e&&t);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find(([e,t])=>"relays"===e&&t)?null:"Zap request doesn't have a 'relays' tag."}function Ia({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let o=JSON.parse(e),i=o.tags.filter(([e])=>"e"===e||"p"===e||"a"===e),s={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...i,["P",o.pubkey],["bolt11",n],["description",e]]};return t&&s.tags.push(["preimage",t]),s}function Ra(e){if(e.length<50)return 0;const t=(e=e.substring(0,50)).lastIndexOf("1");if(-1===t)return 0;const n=e.substring(0,t);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const o=r[r.length-1],i=o.charCodeAt(0)-"0".charCodeAt(0),s=i>=0&&i<=9;let a=r.length-1;if(s&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(o){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}Kr({},{getToken:()=>La,hashPayload:()=>Ua,unpackEventFromToken:()=>Oa,validateEvent:()=>Da,validateEventKind:()=>ja,validateEventMethodTag:()=>Ma,validateEventPayloadTag:()=>Fa,validateEventTimestamp:()=>Ba,validateEventUrlTag:()=>Na,validateToken:()=>Pa});var _a="Nostr ";async function La(e,t,n,r=!1,o){const i={kind:hi,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};o&&i.tags.push(["payload",Ua(o)]);const s=await n(i);return(r?_a:"")+Kn.encode(Zr.encode(JSON.stringify(s)))}async function Pa(e,t,n){const r=await Oa(e).catch(e=>{throw e});return await Da(r,t,n).catch(e=>{throw e})}async function Oa(e){if(!e)throw new Error("Missing token");e=e.replace(_a,"");const t=Jr.decode(Kn.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function Ba(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function ja(e){return e.kind===hi}function Na(e,t){const n=e.tags.find(e=>"u"===e[0]);return!!n&&(n.length>0&&n[1]===t)}function Ma(e,t){const n=e.tags.find(e=>"method"===e[0]);return!!n&&(n.length>0&&n[1].toLowerCase()===t.toLowerCase())}function Ua(e){return Vt(fn(Zr.encode(JSON.stringify(e))))}function Fa(e,t){const n=e.tags.find(e=>"payload"===e[0]);if(!n)return!1;const r=Ua(t);return n.length>0&&n[1]===r}async function Da(e,t,n,r){if(!ao(e))throw new Error("Invalid nostr event, signature invalid");if(!ja(e))throw new Error("Invalid nostr event, kind invalid");if(!Ba(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!Na(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!Ma(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!Fa(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}function qa(e){return 3e4<=e&&e<4e4}var Ha=function(e,t){return Ha=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Ha(e,t)};function za(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Ha(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function Ka(e,t,n,r){return new(n||(n=Promise))(function(o,i){function s(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(s,a)}l((r=r.apply(e,t||[])).next())})}function Wa(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(l){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}function Va(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ja(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function Za(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function Ga(e){return this instanceof Ga?(this.v=e,this):new Ga(e)}function Qa(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){o[e]&&(r[e]=function(t){return new Promise(function(n,r){i.push([e,t,n,r])>1||a(e,t)})},t&&(r[e]=t(r[e])))}function a(e,t){try{(n=o[e](t)).value instanceof Ga?Promise.resolve(n.value.v).then(l,c):u(i[0][2],n)}catch(e){u(i[0][3],e)}var n}function l(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function Ya(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Va(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,o){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,o,(t=e[n](t)).done,t.value)})}}}function Xa(e){return"function"==typeof e}function el(e){var t=e(function(e){Error.call(e),e.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}"function"==typeof SuppressedError&&SuppressedError;var tl=el(function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}});function nl(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var rl=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=Va(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var l=this.initialTeardown;if(Xa(l))try{l()}catch(e){o=e instanceof tl?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=Va(c),d=u.next();!d.done;d=u.next()){var f=d.value;try{sl(f)}catch(e){o=null!=o?o:[],e instanceof tl?o=Za(Za([],Ja(o)),Ja(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new tl(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)sl(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&nl(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&nl(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),ol=rl.EMPTY;function il(e){return e instanceof rl||e&&"closed"in e&&Xa(e.remove)&&Xa(e.add)&&Xa(e.unsubscribe)}function sl(e){Xa(e)?e():e.unsubscribe()}var al={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ll={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ll.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,Za([e,t],Ja(n))):setTimeout.apply(void 0,Za([e,t],Ja(n)))},clearTimeout:function(e){var t=ll.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function cl(e){ll.setTimeout(function(){throw e})}function ul(){}function dl(e){e()}var fl=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,il(t)&&t.add(n)):n.destination=ml,n}return za(t,e),t.create=function(e,t,n){return new yl(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(rl),hl=Function.prototype.bind;function pl(e,t){return hl.call(e,t)}var gl=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){vl(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){vl(e)}else vl(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){vl(e)}},e}(),yl=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;Xa(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&al.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&pl(t.next,i),error:t.error&&pl(t.error,i),complete:t.complete&&pl(t.complete,i)}):o=t;return s.destination=new gl(o),s}return za(t,e),t}(fl);function vl(e){cl(e)}var ml={closed:!0,next:ul,error:function(e){throw e},complete:ul},wl="function"==typeof Symbol&&Symbol.observable||"@@observable";function bl(e){return e}var El=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof fl||function(e){return e&&Xa(e.next)&&Xa(e.error)&&Xa(e.complete)}(r)&&il(r)?e:new yl(e,t,n);return dl(function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=kl(t))(function(t,r){var o=new yl({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)})},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[wl]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?bl:1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=kl(e))(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}();function kl(e){var t;return null!==(t=null!=e?e:al.Promise)&&void 0!==t?t:Promise}function xl(e){return function(t){if(function(e){return Xa(null==e?void 0:e.lift)}(t))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw new TypeError("Unable to lift unknown Observable type")}}function Sl(e,t,n,r,o){return new Cl(e,t,n,r,o)}var Cl=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return za(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(fl),Al=el(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),$l=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return za(t,e),t.prototype.lift=function(e){var t=new Tl(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new Al},t.prototype.next=function(e){var t=this;dl(function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var o=Va(t.currentObservers),i=o.next();!i.done;i=o.next()){i.value.next(e)}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var t=this;dl(function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;dl(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,o=n.isStopped,i=n.observers;return r||o?ol:(this.currentObservers=null,i.push(e),new rl(function(){t.currentObservers=null,nl(i,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,o=t.isStopped;n?e.error(r):o&&e.complete()},t.prototype.asObservable=function(){var e=new El;return e.source=this,e},t.create=function(e,t){return new Tl(e,t)},t}(El),Tl=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return za(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:ol},t}($l),Il={now:function(){return(Il.delegate||Date).now()},delegate:void 0},Rl=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=Il);var o=e.call(this)||this;return o._bufferSize=t,o._windowTime=n,o._timestampProvider=r,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,t),o._windowTime=Math.max(1,n),o}return za(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,o=n._buffer,i=n._infiniteTimeWindow,s=n._timestampProvider,a=n._windowTime;r||(o.push(t),!i&&o.push(s.now()+a)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),o=0;o<r.length&&!e.closed;o+=n?1:2)e.next(r[o]);return this._checkFinalizedStatuses(e),t},t.prototype._trimBuffer=function(){var e=this,t=e._bufferSize,n=e._timestampProvider,r=e._buffer,o=e._infiniteTimeWindow,i=(o?1:2)*t;if(t<1/0&&i<r.length&&r.splice(0,r.length-i),!o){for(var s=n.now(),a=0,l=1;l<r.length&&r[l]<=s;l+=2)a=l;a&&r.splice(0,a+1)}},t}($l),_l=function(e){function t(t,n){return e.call(this)||this}return za(t,e),t.prototype.schedule=function(e,t){return this},t}(rl),Ll={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Ll.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,Za([e,t],Ja(n))):setInterval.apply(void 0,Za([e,t],Ja(n)))},clearInterval:function(e){var t=Ll.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Pl=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return za(t,e),t.prototype.schedule=function(e,t){var n;if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,t)),this.pending=!0,this.delay=t,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(o,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Ll.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;null!=t&&Ll.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,nl(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(_l),Ol=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Il.now,e}(),Bl=function(e){function t(t,n){void 0===n&&(n=Ol.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return za(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Ol),jl=new Bl(Pl),Nl=new El(function(e){return e.complete()});function Ml(e){return e&&Xa(e.schedule)}function Ul(e){return e[e.length-1]}function Fl(e){return Ml(Ul(e))?e.pop():void 0}function Dl(e,t){return"number"==typeof Ul(e)?e.pop():t}var ql=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Hl(e){return Xa(null==e?void 0:e.then)}function zl(e){return Xa(e[wl])}function Kl(e){return Symbol.asyncIterator&&Xa(null==e?void 0:e[Symbol.asyncIterator])}function Wl(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var Vl="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function Jl(e){return Xa(null==e?void 0:e[Vl])}function Zl(e){return Qa(this,arguments,function(){var t,n,r;return Wa(this,function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Ga(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,Ga(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Ga(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Gl(e){return Xa(null==e?void 0:e.getReader)}function Ql(e){if(e instanceof El)return e;if(null!=e){if(zl(e))return o=e,new El(function(e){var t=o[wl]();if(Xa(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(ql(e))return r=e,new El(function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()});if(Hl(e))return n=e,new El(function(e){n.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,cl)});if(Kl(e))return Yl(e);if(Jl(e))return t=e,new El(function(e){var n,r;try{for(var o=Va(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()});if(Gl(e))return Yl(Zl(e))}var t,n,r,o;throw Wl(e)}function Yl(e){return new El(function(t){(function(e,t){var n,r,o,i;return Ka(this,void 0,void 0,function(){var s,a;return Wa(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=Ya(e),l.label=1;case 1:return[4,n.next()];case 2:if((r=l.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=l.sent(),o={error:a},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})})(e,t).catch(function(e){return t.error(e)})})}function Xl(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function ec(e,t){return void 0===t&&(t=0),xl(function(n,r){n.subscribe(Sl(r,function(n){return Xl(r,e,function(){return r.next(n)},t)},function(){return Xl(r,e,function(){return r.complete()},t)},function(n){return Xl(r,e,function(){return r.error(n)},t)}))})}function tc(e,t){return void 0===t&&(t=0),xl(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function nc(e,t){if(!e)throw new Error("Iterable cannot be null");return new El(function(n){Xl(n,t,function(){var r=e[Symbol.asyncIterator]();Xl(n,t,function(){r.next().then(function(e){e.done?n.complete():n.next(e.value)})},0,!0)})})}function rc(e,t){if(null!=e){if(zl(e))return function(e,t){return Ql(e).pipe(tc(t),ec(t))}(e,t);if(ql(e))return function(e,t){return new El(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(Hl(e))return function(e,t){return Ql(e).pipe(tc(t),ec(t))}(e,t);if(Kl(e))return nc(e,t);if(Jl(e))return function(e,t){return new El(function(n){var r;return Xl(n,t,function(){r=e[Vl](),Xl(n,t,function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)},0,!0)}),function(){return Xa(null==r?void 0:r.return)&&r.return()}})}(e,t);if(Gl(e))return function(e,t){return nc(Zl(e),t)}(e,t)}throw Wl(e)}function oc(e,t){return t?rc(e,t):Ql(e)}function ic(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return oc(e,Fl(e))}function sc(e,t){return xl(function(n,r){var o=0;n.subscribe(Sl(r,function(n){r.next(e.call(t,n,o++))}))})}var ac=Array.isArray;function lc(e){return sc(function(t){return function(e,t){return ac(t)?e.apply(void 0,Za([],Ja(t))):e(t)}(e,t)})}var cc=Array.isArray,uc=Object.getPrototypeOf,dc=Object.prototype,fc=Object.keys;function hc(e){if(1===e.length){var t=e[0];if(cc(t))return{args:t,keys:null};if((r=t)&&"object"==typeof r&&uc(r)===dc){var n=fc(t);return{args:n.map(function(e){return t[e]}),keys:n}}}var r;return{args:e,keys:null}}function pc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=function(e){return Xa(Ul(e))?e.pop():void 0}(e),o=hc(e),i=o.args,s=o.keys;if(0===i.length)return oc([],n);var a=new El(function(e,t,n){void 0===n&&(n=bl);return function(r){gc(t,function(){for(var o=e.length,i=new Array(o),s=o,a=o,l=function(o){gc(t,function(){var l=oc(e[o],t),c=!1;l.subscribe(Sl(r,function(e){i[o]=e,c||(c=!0,a--),a||r.next(n(i.slice()))},function(){--s||r.complete()}))},r)},c=0;c<o;c++)l(c)},r)}}(i,n,s?function(e){return function(e,t){return e.reduce(function(e,n,r){return e[n]=t[r],e},{})}(s,e)}:bl));return r?a.pipe(lc(r)):a}function gc(e,t,n){e?Xl(n,e,t):t()}function yc(e,t,n){return void 0===n&&(n=1/0),Xa(t)?yc(function(n,r){return sc(function(e,o){return t(n,e,r,o)})(Ql(e(n,r)))},n):("number"==typeof t&&(n=t),xl(function(t,r){return function(e,t,n,r,o,i,s,a){var l=[],c=0,u=0,d=!1,f=function(){!d||l.length||c||t.complete()},h=function(e){return c<r?p(e):l.push(e)},p=function(e){i&&t.next(e),c++;var a=!1;Ql(n(e,u++)).subscribe(Sl(t,function(e){null==o||o(e),i?h(e):t.next(e)},function(){a=!0},void 0,function(){if(a)try{c--;for(var e=function(){var e=l.shift();s?Xl(t,s,function(){return p(e)}):p(e)};l.length&&c<r;)e();f()}catch(e){t.error(e)}}))};return e.subscribe(Sl(t,h,function(){d=!0,f()})),function(){null==a||a()}}(t,r,e,n)}))}function vc(e){return void 0===e&&(e=1/0),yc(bl,e)}function mc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return vc(1)(oc(e,Fl(e)))}function wc(e){return new El(function(t){Ql(e()).subscribe(t)})}function bc(e,t,n){void 0===e&&(e=0),void 0===n&&(n=jl);var r=-1;return null!=t&&(Ml(t)?n=t:r=t),new El(function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule(function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())},i)})}function Ec(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=Dl(e,1/0),o=e;return o.length?1===o.length?Ql(o[0]):vc(r)(oc(o,n)):Nl}function kc(e,t){return xl(function(n,r){var o=0;n.subscribe(Sl(r,function(n){return e.call(t,n,o++)&&r.next(n)}))})}function xc(e){return e<=0?function(){return Nl}:xl(function(t,n){var r=0;t.subscribe(Sl(n,function(t){++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function Sc(e,t){return void 0===t&&(t=bl),e=null!=e?e:Cc,xl(function(n,r){var o,i=!0;n.subscribe(Sl(r,function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))}))})}function Cc(e,t){return e===t}function Ac(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return mc(t,ic.apply(void 0,Za([],Ja(e))))}}function $c(e){return xl(function(t,n){try{t.subscribe(n)}finally{n.add(e)}})}function Tc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=Dl(e,1/0);return xl(function(t,o){vc(r)(oc(Za([t],Ja(e)),n)).subscribe(o)})}function Ic(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Tc.apply(void 0,Za([],Ja(e)))}function Rc(e,t){return xl(function(e,t,n,r,o){return function(i,s){var a=n,l=t,c=0;i.subscribe(Sl(s,function(t){var n=c++;l=a?e(l,t,n):(a=!0,t),r&&s.next(l)},o&&function(){a&&s.next(l),s.complete()}))}}(e,t,arguments.length>=2,!0))}function _c(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!0!==t){if(!1!==t){var o=new yl({next:function(){o.unsubscribe(),e()}});return Ql(t.apply(void 0,Za([],Ja(n)))).subscribe(o)}}else e()}function Lc(e,t){return xl(function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(Sl(r,function(n){null==o||o.unsubscribe();var s=0,l=i++;Ql(e(n,l)).subscribe(o=Sl(r,function(e){return r.next(t?t(n,e,l,s++):e)},function(){o=null,a()}))},function(){s=!0,a()}))})}function Pc(e,t,n){var r=Xa(e)||t||n?{next:e,error:t,complete:n}:e;return r?xl(function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(Sl(t,function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)},function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()},function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)},function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)}))}):bl}function Oc(e,t){return void 0!==e[0]&&void 0!==e[1]&&(!t||e[0]===t)}function Bc(e){return Oc(e,"e")}function jc(e){return Oc(e,"p")}function Nc(e){return Oc(e,"r")}function Mc(e){return Oc(e,"a")}function Uc(e){return Oc(e,"t")}const Fc=(e,...t)=>t.reduce((e,t)=>{const n=[];for(const r of e)try{const e=t(r);if(void 0===e)continue;n.push(e)}catch(e){}return n},e);function Dc(e,t,n){if(Reflect.has(e,t))return Reflect.get(e,t);{const r=n();return Reflect.set(e,t,r),r}}function qc(e,t){const[n,r]=Hc(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function Hc(e,t){let n=0,r=e.length-1;for(;n<=r;){const o=Math.floor((n+r)/2),i=t(e[o]);if(0===i)return[o,!0];i<0?r=o-1:n=o+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;const zc=Symbol.for("event-store"),Kc=Symbol.for("event-uid"),Wc=Symbol.for("replaceable-address"),Vc=Symbol.for("from-cache"),Jc=Symbol.for("replaceable-identifier");function Zc(e){return function(e){return[0,3].includes(e)||1e4<=e&&e<2e4}(e)||qa(e)}function Gc(e){let t=Reflect.get(e,Kc);return t||(t=Zc(e.kind)?Qc(e):e.id,Reflect.set(e,Kc,t)),t}function Qc(e){if(!Zc(e.kind))throw new Error("Event is not replaceable or addressable");return Dc(e,Wc,()=>{const t=qa(e.kind)?Xc(e):void 0;return Yc(e.kind,e.pubkey,t)})}function Yc(e,t,n){return e+":"+t+":"+(n??"")}function Xc(e){return Dc(e,Jc,()=>e.tags.find(e=>"d"===e[0])?.[1]??"")}function eu(){return Math.round(Date.now()/1e3)}const tu=Symbol("expiration-timestamp");function nu(e){return Dc(e,tu,()=>{const t=e.tags.find(e=>"expiration"===e[0])?.[1];return t?parseInt(t):void 0})}function ru(e){let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),("80"!==t.port||"ws:"!==t.protocol&&"http:"!==t.protocol)&&("443"!==t.port||"wss:"!==t.protocol&&"https:"!==t.protocol)||(t.port=""),"string"==typeof e?t.toString():t}const ou=Symbol.for("seen-relays");function iu(e,t){return e[ou]||(e[ou]=new Set),e[ou].add(t),e[ou]}const su=/^wss?:\/\/([-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}|localhost)\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)$/;function au(e){return e.length>=8&&su.test(e)}function lu(e){return!!e?.toLowerCase()?.match(/^[0-9a-f]{64}$/)}
|
||
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const cu=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),uu=48,du=57,fu=65,hu=70,pu=97,gu=102;function yu(e){return e>=uu&&e<=du?e-uu:e>=fu&&e<=hu?e-(fu-10):e>=pu&&e<=gu?e-(pu-10):void 0}function vu(e,t=!1,n=!0){const r=e.split(":"),o=r[0]?parseInt(r[0]):void 0,i=r[1],s=r[2];if(void 0===o){if(n)return null;throw new Error("Missing kind")}if(void 0===i||""===i){if(n)return null;throw new Error("Missing pubkey")}if(t&&void 0===s){if(n)return null;throw new Error("Missing identifier")}return{kind:o,pubkey:i,identifier:s}}function mu(e){if(!e[1])throw new Error("Missing coordinate in tag");const t=vu(e[1],!0,!1);return e[2]&&au(e[2])&&(t.relays=[e[2]]),t}function wu(e){if(!e[1])throw new Error("Missing pubkey in tag");if(!lu(e[1]))throw new Error("Invalid pubkey");const t={pubkey:e[1]};return e[2]&&au(e[2])&&(t.relays=[ru(e[2])]),t}function bu(e){return e.kind+":"+e.pubkey+":"+e.identifier}function Eu(e){if(e instanceof Uint8Array)return e;if(lu(e))return function(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(cu)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=yu(e.charCodeAt(o)),i=yu(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}(e);{const t=Wi.decode(e);if("nsec"!==t.type)throw new Error(`Cant get secret key from ${t.type}`);return t.data}}const ku=Symbol.for("encrypted-content"),xu={[lo.EncryptedDirectMessage]:"nip04",[lo.Seal]:"nip44",[lo.GiftWrap]:"nip44"};function Su(e,t){return xu[e]=t,e}const Cu=ku,Au=new Set([Su(lo.DraftLong,"nip04")]);function $u(e,t){return Au.add(Su(e,t)),e}function Tu(e){return function(e){return void 0!==xu[e]}(e)&&Au.has(e)}function Iu(e){return!!Tu(e.kind)&&(function(e){return!0===Reflect.has(e,ku)}(e)&&!0===Reflect.has(e,Cu))}function Ru(e){if(Tu(e.kind))return Iu(e)?e[ku]:function(e){return Reflect.get(e,ku)}(e)}const _u=Symbol.for("hidden-tags"),Lu=new Set([$u(lo.BookmarkList,"nip04"),$u(lo.InterestsList,"nip04"),$u(lo.Mutelist,"nip04"),$u(lo.CommunitiesList,"nip04"),$u(lo.PublicChatsList,"nip04"),$u(lo.SearchRelaysList,"nip04"),$u(10009,"nip04"),$u(lo.Bookmarksets,"nip04"),$u(lo.Relaysets,"nip04"),$u(lo.Followsets,"nip04"),$u(lo.Curationsets,"nip04"),$u(lo.Interestsets,"nip04")]);function Pu(e){return Tu(e)&&Lu.has(e)}function Ou(e){return!!Pu(e.kind)&&(Iu(e)&&Reflect.has(e,"HiddenTagsSymbol"))}function Bu(e){if(!Pu(e.kind))return;if(Ou(e))return e[_u];const t=Ru(e);if(void 0===t)return;const n=JSON.parse(t);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(e=>Array.isArray(e)).map(e=>e.map(e=>String(e)));return Reflect.set(e,_u,r),r}const ju="abcdefghijklmnopqrstuvwxyz",Nu=new Set((ju+ju.toUpperCase()).split("")),Mu=Symbol.for("indexable-tags");function Uu(e){let t=Reflect.get(e,Mu);if(!t){const n=new Set;for(const t of e.tags)t.length>=2&&1===t[0].length&&Nu.has(t[0])&&n.add(t[0]+":"+t[1]);t=n,Reflect.set(e,Mu,n)}return t}class Fu{first=null;items=Object.create(null);last=null;max;resetTtl;size;ttl;constructor(e=0,t=0,n=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=n,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){const t=this.items[e];delete this.items[e],this.size--,null!==t.prev&&(t.prev.next=t.next),null!==t.next&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){return e.map(e=>[e,this.get(e)])}evict(e=!1){if(e||this.size>0){const e=this.first;delete this.items[e.key],0===--this.size?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t;if(this.has(e)){const n=this.items[e];this.ttl>0&&n.expiry<=Date.now()?this.delete(e):(t=n.value,this.set(e,t,!0))}return t}has(e){return e in this.items}keys(){const e=[];let t=this.first;for(;null!==t;)e.push(t.key),t=t.next;return e}set(e,t,n=!1,r=this.resetTtl){let o;if(n||this.has(e)){if(o=this.items[e],o.value=t,!1===n&&r&&(o.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==o){const e=this.last,t=o.next,n=o.prev;this.first===o&&(this.first=o.next),o.next=null,o.prev=this.last,e.next=o,null!==n&&(n.next=t),null!==t&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),o=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},1===++this.size?this.first=o:this.last.next=o;return this.last=o,this}values(e=this.keys()){return e.map(e=>this.get(e))}}function Du(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qu,Hu,zu={exports:{}};function Ku(){if(Hu)return qu;Hu=1;var e=1e3,t=60*e,n=60*t,r=24*n,o=7*r,i=365.25*r;function s(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}return qu=function(a,l){l=l||{};var c=typeof a;if("string"===c&&a.length>0)return function(s){if((s=String(s)).length>100)return;var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(s);if(!a)return;var l=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*r;case"hours":case"hour":case"hrs":case"hr":case"h":return l*n;case"minutes":case"minute":case"mins":case"min":case"m":return l*t;case"seconds":case"second":case"secs":case"sec":case"s":return l*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:return}}(a);if("number"===c&&isFinite(a))return l.long?function(o){var i=Math.abs(o);if(i>=r)return s(o,i,r,"day");if(i>=n)return s(o,i,n,"hour");if(i>=t)return s(o,i,t,"minute");if(i>=e)return s(o,i,e,"second");return o+" ms"}(a):function(o){var i=Math.abs(o);if(i>=r)return Math.round(o/r)+"d";if(i>=n)return Math.round(o/n)+"h";if(i>=t)return Math.round(o/t)+"m";if(i>=e)return Math.round(o/e)+"s";return o+"ms"}(a);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}}var Wu=function(e){function t(e){let r,o,i,s=null;function a(...e){if(!a.enabled)return;const n=a,o=Number(new Date),i=o-(r||o);n.diff=i,n.prev=r,n.curr=o,r=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(r,o)=>{if("%%"===r)return"%";s++;const i=t.formatters[o];if("function"==typeof i){const t=e[s];r=i.call(n,t),e.splice(s,1),s--}return r}),t.formatArgs.call(n,e);(n.log||t.log).apply(n,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=n,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(o!==t.namespaces&&(o=t.namespaces,i=t.enabled(e)),i),set:e=>{s=e}}),"function"==typeof t.init&&t.init(a),a}function n(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function r(e,t){let n=0,r=0,o=-1,i=0;for(;n<e.length;)if(r<t.length&&(t[r]===e[n]||"*"===t[r]))"*"===t[r]?(o=r,i=n,r++):(n++,r++);else{if(-1===o)return!1;r=o+1,i++,n=i}for(;r<t.length&&"*"===t[r];)r++;return r===t.length}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names,...t.skips.map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of n)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const n of t.skips)if(r(e,n))return!1;for(const n of t.names)if(r(e,n))return!0;return!1},t.humanize=Ku(),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t};!function(e,t){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(o=r))}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=Wu(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(zu,zu.exports);const Vu=Du(zu.exports)("applesauce");class Ju{log=Vu.extend("EventMemory");kinds=new Map;authors=new Map;tags=new Fu;created_at=[];events=new Fu;replaceable=new Map;get size(){return this.events.size}hasEvent(e){return this.events.has(e)}getEvent(e){return this.events.get(e)}hasReplaceable(e,t,n){const r=this.replaceable.get(Yc(e,t,n));return!!r&&r.length>0}getReplaceable(e,t,n){const r=Yc(e,t,n),o=this.replaceable.get(r);return o?.[0]}getReplaceableHistory(e,t,n){const r=Yc(e,t,n);return this.replaceable.get(r)}getByFilters(e){return Array.from(this.getEventsForFilters(Array.isArray(e)?e:[e]))}getTimeline(e){const t=[],n=this.getByFilters(e);for(const e of n)qc(t,e);return t}add(e){const t=e.id,n=this.events.get(t);if(n)return n;this.events.set(t,e),this.getKindIndex(e.kind).add(e),this.getAuthorsIndex(e.pubkey).add(e);for(const t of Uu(e))this.tags.has(t)&&this.getTagIndex(t).add(e);if(qc(this.created_at,e),Zc(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=Yc(e.kind,e.pubkey,t);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),qc(r,e)}return e}remove(e){let t="string"==typeof e?this.events.get(e):e;if(!t)return!1;const n=t.id;if(!this.events.has(n))return!1;this.getAuthorsIndex(t.pubkey).delete(t),this.getKindIndex(t.kind).delete(t);for(const e of Uu(t))this.tags.has(e)&&this.getTagIndex(e).delete(t);const r=this.created_at.indexOf(t);if(this.created_at.splice(r,1),this.events.delete(n),Zc(t.kind)){const e=t.tags.find(e=>"d"===e[0])?.[1],n=Yc(t.kind,t.pubkey,e),r=this.replaceable.get(n);if(r&&r.includes(t)){const e=r.indexOf(t);r.splice(e,1)}}return this.claims.delete(t),!0}removeByFilters(e){const t=this.getByFilters(e);let n=0;for(const e of t)this.remove(e)&&n++;return n}update(e){}claims=new WeakMap;touch(e){this.events.has(e.id)&&this.events.set(e.id,e)}claim(e,t){this.claims.has(e)||this.claims.set(e,t),this.touch(e)}isClaimed(e){return this.claims.has(e)}removeClaim(e,t){this.claims.get(e)===t&&this.claims.delete(e)}clearClaim(e){this.claims.delete(e)}*unclaimed(){let e=this.events.first;for(;e;){const t=e.value;this.isClaimed(t)||(yield t),e=e.next}return 0}prune(e){let t=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),t++,e&&t>=e)break;return t}getKindIndex(e){return this.kinds.has(e)||this.kinds.set(e,new Set),this.kinds.get(e)}getAuthorsIndex(e){return this.authors.has(e)||this.authors.set(e,new Set),this.authors.get(e)}getTagIndex(e){if(!this.tags.has(e)){const t=new Set,n=Date.now();for(const n of this.events.values())Uu(n).has(e)&&t.add(n);const r=Date.now()-n;r>100&&this.log(`Built index ${e} took ${r}ms`),this.tags.set(e,t)}return this.tags.get(e)}*iterateAuthors(e){for(const t of e){const e=this.authors.get(t);if(e)for(const t of e)yield t}}*iterateTag(e,t){for(const n of t){const t=this.getTagIndex(e+":"+n);if(t)for(const e of t)yield e}}*iterateKinds(e){for(const t of e){const e=this.kinds.get(t);if(e)for(const t of e)yield t}}*iterateTime(e,t){let n=0,r=this.created_at.length-1,o=t?Hc(this.created_at,e=>e.created_at-t):void 0;o&&(n=o[0]);const i=e?Hc(this.created_at,t=>t.created_at-e):void 0;i&&(r=i[0]);for(let e=n;e<r;e++)yield this.created_at[e]}*iterateIds(e){for(const t of e)this.events.has(t)&&(yield this.events.get(t))}getEventsForFilter(e){if(e.search)return new Set;let t=!0,n=new Set;const r=e=>{const r=e instanceof Set?e:new Set(e);if(t)n=r,t=!1;else for(const e of n)r.has(e)||n.delete(e);return n};e.ids&&r(this.iterateIds(e.ids));let o=null;void 0!==e.since&&(o=Array.from(this.iterateTime(e.since,e.until)),r(o));for(const t of Nu){const n=e[`#${t}`];n?.length&&r(this.iterateTag(t,n))}if(e.authors&&r(this.iterateAuthors(e.authors)),e.kinds&&r(this.iterateKinds(e.kinds)),void 0===e.since&&void 0!==e.until&&(o=Array.from(this.iterateTime(e.since,e.until)),r(o)),e.limit&&o){const t=new Set;for(const r of o){if(t.size>=e.limit)break;n.has(r)&&t.add(r)}return t}return n}getEventsForFilters(e){if(0===e.length)return new Set;let t=new Set;for(const n of e){const e=this.getEventsForFilter(n);for(const n of e)t.add(n)}return t}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}}function Zu(e,t){var n,r;if(0===t.length)return e;for(n=0,r=t.length;n<r;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e<0?-2*e:e}function Gu(e,t,n,r){var o,i=Zu(Zu(Zu(e,n),(o=t,Object.prototype.toString.call(o))),typeof t);if(null===t)return Zu(i,"null");if(void 0===t)return Zu(i,"undefined");if("object"==typeof t||"function"==typeof t){if(-1!==r.indexOf(t))return Zu(i,"[Circular]"+n);r.push(t);var s=function(e,t,n){return Object.keys(t).sort().reduce(function(e,r){return Gu(e,t[r],r,n)},e)}(i,t,r);if(!("valueOf"in t)||"function"!=typeof t.valueOf)return s;try{return Zu(s,String(t.valueOf()))}catch(e){return Zu(s,"[valueOf exception]"+(e.stack||e.message))}}return Zu(i,t.toString())}var Qu=function(e){return function(e,t){for(;e.length<t;)e="0"+e;return e}(Gu(0,e,"",[]).toString(16),8)},Yu=Du(Qu);function Xu(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;for(let n in e)if("#"===n[0]){let r=n.slice(1),o=e[n];if(o){const e=Uu(t);if(!1===o.some(t=>e.has(r+":"+t)))return!1}}return!(e.since&&t.created_at<e.since)&&!(e.until&&t.created_at>e.until)}function ed(e,t){for(let n=0;n<e.length;n++)if(Xu(e[n],t))return!0;return!1}function td(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:10063,pubkey:e.pubkey,relays:e.relays}).pipe(sc(e=>e?function(e){const t=Array.isArray(e)?e:e.tags;return Fc(t,e=>Oc(e,"server")&&URL.canParse(e[1])?new URL("/",e[1]):void 0)}(e):[]))}const nd=Symbol.for("profile-content");function rd(e){return Dc(e,nd,()=>{const t=function(e){try{return JSON.parse(e)}catch(e){return}}(e.content);if(t)return t.nip05&&"string"!=typeof t.nip05&&(t.nip05=String(t.nip05)),t.website&&t.website?.length>0&&!1===t.website?.startsWith("http")&&(t.website="https://"+t.website),t})}function od(e){return!!e&&((e.kind===lo.Metadata||e.kind===lo.Handlerinformation)&&!!rd(e))}!function(e){function t(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function n(...e){const t=(e,t)=>n=>e(t(n)),n=Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),r=e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0);return{encode:n,decode:r}}function r(e){return{encode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("alphabet.encode input should be an array of numbers");return n.map(n=>{if(t(n),n<0||n>=e.length)throw new Error(`Digit index outside alphabet: ${n} (alphabet: ${e.length})`);return e[n]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function o(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function i(e,n="="){if(t(e),"string"!=typeof n)throw new Error("padding chr should be string");return{encode(t){if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("padding.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;t.length*e%8;)t.push(n);return t},decode(t){if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("padding.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=t.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&t[r-1]===n;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return t.slice(0,r)}}}function s(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function a(e,n,r){if(n<2)throw new Error(`convertRadix: wrong from=${n}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: wrong to=${r}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let o=0;const i=[],s=Array.from(e);for(s.forEach(e=>{if(t(e),e<0||e>=n)throw new Error(`Wrong integer: ${e}`)});;){let e=0,t=!0;for(let i=o;i<s.length;i++){const a=s[i],l=n*e+a;if(!Number.isSafeInteger(l)||n*e/n!==e||l-a!==n*e)throw new Error("convertRadix: carry overflow");if(e=l%r,s[i]=Math.floor(l/r),!Number.isSafeInteger(s[i])||s[i]*r+e!==l)throw new Error("convertRadix: carry overflow");t&&(s[i]?t=!1:o=i)}if(i.push(e),t)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}
|
||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
Object.defineProperty(e,"__esModule",{value:!0}),e.bytes=e.stringToBytes=e.str=e.bytesToString=e.hex=e.utf8=e.bech32m=e.bech32=e.base58check=e.base58xmr=e.base58xrp=e.base58flickr=e.base58=e.base64url=e.base64=e.base32crockford=e.base32hex=e.base32=e.base16=e.utils=e.assertNumber=void 0,e.assertNumber=t;const l=(e,t)=>t?l(t,e%t):e,c=(e,t)=>e+(t-l(e,t));function u(e,n,r,o){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(n<=0||n>32)throw new Error(`convertRadix2: wrong from=${n}`);if(r<=0||r>32)throw new Error(`convertRadix2: wrong to=${r}`);if(c(n,r)>32)throw new Error(`convertRadix2: carry overflow from=${n} to=${r} carryBits=${c(n,r)}`);let i=0,s=0;const a=2**r-1,l=[];for(const o of e){if(t(o),o>=2**n)throw new Error(`convertRadix2: invalid data word=${o} from=${n}`);if(i=i<<n|o,s+n>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${n}`);for(s+=n;s>=r;s-=r)l.push((i>>s-r&a)>>>0);i&=2**s-1}if(i=i<<r-s&a,!o&&s>=n)throw new Error("Excess padding");if(!o&&i)throw new Error(`Non-zero padding: ${i}`);return o&&s>0&&l.push(i>>>0),l}function d(e){return t(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return a(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(a(t,e,256))}}}function f(e,n=!1){if(t(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(c(8,e)>32||c(e,8)>32)throw new Error("radix2: carry overflow");return{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return u(Array.from(t),8,e,!n)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(u(t,e,8,n))}}}function h(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}function p(e,n){if(t(e),"function"!=typeof n)throw new Error("checksum fn should be function");return{encode(t){if(!(t instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=n(t).slice(0,e),o=new Uint8Array(t.length+e);return o.set(t),o.set(r,t.length),o},decode(t){if(!(t instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=t.slice(0,-e),o=n(r).slice(0,e),i=t.slice(-e);for(let t=0;t<e;t++)if(o[t]!==i[t])throw new Error("Invalid checksum");return r}}}e.utils={alphabet:r,chain:n,checksum:p,radix:d,radix2:f,join:o,padding:i},e.base16=n(f(4),r("0123456789ABCDEF"),o("")),e.base32=n(f(5),r("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),i(5),o("")),e.base32hex=n(f(5),r("0123456789ABCDEFGHIJKLMNOPQRSTUV"),i(5),o("")),e.base32crockford=n(f(5),r("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),o(""),s(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),e.base64=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),i(6),o("")),e.base64url=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),i(6),o(""));const g=e=>n(d(58),r(e),o(""));e.base58=g("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),e.base58flickr=g("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),e.base58xrp=g("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const y=[0,2,3,5,6,7,9,10,11];e.base58xmr={encode(t){let n="";for(let r=0;r<t.length;r+=8){const o=t.subarray(r,r+8);n+=e.base58.encode(o).padStart(y[o.length],"1")}return n},decode(t){let n=[];for(let r=0;r<t.length;r+=11){const o=t.slice(r,r+11),i=y.indexOf(o.length),s=e.base58.decode(o);for(let e=0;e<s.length-i;e++)if(0!==s[e])throw new Error("base58xmr: wrong padding");n=n.concat(Array.from(s.slice(s.length-i)))}return Uint8Array.from(n)}};e.base58check=t=>n(p(4,e=>t(t(e))),e.base58);const v=n(r("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),o("")),m=[996825010,642813549,513874426,1027748829,705979059];function w(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<m.length;e++)1==(t>>e&1)&&(n^=m[e]);return n}function b(e,t,n=1){const r=e.length;let o=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);o=w(o)^n>>5}o=w(o);for(let t=0;t<r;t++)o=w(o)^31&e.charCodeAt(t);for(let e of t)o=w(o)^e;for(let e=0;e<6;e++)o=w(o);return o^=n,v.encode(u([o%2**30],30,5,!1))}function E(e){const t="bech32"===e?1:734539939,n=f(5),r=n.decode,o=n.encode,i=h(r);function s(e,n=90){if("string"!=typeof e)throw new Error("bech32.decode input should be string, not "+typeof e);if(e.length<8||!1!==n&&e.length>n)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),s=e.slice(o+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=v.decode(s).slice(0,-6),l=b(i,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:i,words:a}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${v.encode(n)}${b(e,n,t)}`},decode:s,decodeToBytes:function(e){const{prefix:t,words:n}=s(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:h(s),fromWords:r,fromWordsUnsafe:i,toWords:o}}e.bech32=E("bech32"),e.bech32m=E("bech32m"),e.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},e.hex=n(f(4),r("0123456789abcdef"),o(""),s(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));const k={utf8:e.utf8,hex:e.hex,base16:e.base16,base32:e.base32,base64:e.base64,base64url:e.base64url,base58:e.base58,base58xmr:e.base58xmr},x=`Invalid encoding type. Available types: ${Object.keys(k).join(", ")}`;e.bytesToString=(e,t)=>{if("string"!=typeof e||!k.hasOwnProperty(e))throw new TypeError(x);if(!(t instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return k[e].encode(t)},e.str=e.bytesToString;e.stringToBytes=(e,t)=>{if(!k.hasOwnProperty(e))throw new TypeError(x);if("string"!=typeof t)throw new TypeError("stringToBytes() expects string");return k[e].decode(t)},e.bytes=e.stringToBytes}({}),BigInt(1e3),BigInt(1e6),BigInt(1e9),BigInt(1e12),BigInt("2100000000000000000"),BigInt(1e11);const id={payment_hash:1,payment_secret:16,description:13,payee:19,description_hash:23,expiry:6,min_final_cltv_expiry:24,fallback_address:9,route_hint:3,feature_bits:5,metadata:27};for(let e=0,t=Object.keys(id);e<t.length;e++)t[e],id[t[e]].toString();const sd=Symbol.for("public-contacts"),ad=Symbol.for("hidden-contacts");function ld(e){return function(...e){const t=new Map;for(const n of e)if(Array.isArray(n))for(const e of n)e&&t.set(e.pubkey,e);else n&&t.set(n.pubkey,n);return Array.from(t.values())}(function(e){return Dc(e,sd,()=>Fc(e.tags,e=>jc(e)?e:void 0,wu))}(e),function(e){if(function(e){return Ou(e)&&Reflect.has(e,ad)}(e))return e[ad];const t=Bu(e);if(!t)return;const n=Fc(t,e=>jc(e)?e:void 0,wu);return Reflect.set(e,ad,n),n}(e))}Vu.extend("EncryptedContentCache"),Vu.extend("event-cache"),new TextDecoder;const cd=Symbol.for("mailboxes-inboxes"),ud=Symbol.for("mailboxes-outboxes");function dd(e){return Dc(e,cd,()=>{const t=[];for(const n of e.tags)if(Nc(n))try{const[,e,r]=n;!e||!au(e)||t.includes(e)||"read"!==r&&void 0!==r||t.push(ru(e))}catch{}return t})}function fd(e){return Dc(e,ud,()=>{const t=[];for(const n of e.tags)if(Nc(n))try{const[e,r,o]=n;"r"!==e||!au(r)||t.includes(r)||"write"!==o&&void 0!==o||t.push(ru(r))}catch{}return t})}const hd=Symbol.for("mute-public"),pd=Symbol.for("mute-hidden");function gd(e){return{pubkeys:new Set(e.filter(jc).map(e=>e[1])),threads:new Set(e.filter(Bc).map(e=>e[1])),hashtags:new Set(e.filter(Uc).map(e=>e[1].toLocaleLowerCase())),words:new Set(e.filter(e=>"word"===e[0]&&e[1]).map(e=>e[1].toLocaleLowerCase()))}}function yd(e){const t=function(e){if(function(e){return Ou(e)&&Reflect.has(e,pd)}(e))return e[pd];const t=Bu(e);if(!t)return;const n=gd(t);return Reflect.set(e,pd,n),n}(e),n=function(e){return Dc(e,hd,()=>gd(e.tags))}(e);return t?function(...e){const t={pubkeys:new Set,threads:new Set,hashtags:new Set,words:new Set};for(const n of e){for(const e of n.pubkeys)t.pubkeys.add(e);for(const e of n.threads)t.threads.add(e);for(const e of n.hashtags)t.hashtags.add(e);for(const e of n.words)t.words.add(e)}return t}(t,n):n}var vd;!function(e){e.nudity="nudity",e.malware="malware",e.profanity="profanity",e.illegal="illegal",e.spam="spam",e.impersonation="impersonation",e.other="other"}(vd||(vd={}));const md=Symbol.for("nip10-thread-refs");function wd(e){if(!e[1])throw new Error("Missing event id in tag");let t={id:e[1]};return e[2]&&au(e[2])&&(t.relays=[e[2]]),"e"!==e[0]||"root"!==e[3]&&"reply"!==e[3]&&"mention"!==e[3]||!e[4]||64!==e[4].length||(t.author=e[4]),t}function bd(e){return t=>{const n=new Set;return t.pipe(Pc(r=>{if(void 0!==r)if(Array.isArray(r))for(const o of r)n.add(o),e.claim(o,t);else n.add(r),e.claim(r,t)}),$c(()=>{for(const r of n)e.removeClaim(r,t)}))}}function Ed(e){return t=>{let n;return t.pipe(Pc(r=>{n&&e.removeClaim(n,t),r&&e.claim(r,t),n=r}),$c(()=>{n&&e.removeClaim(n,t)}))}}function kd(){return e=>e.pipe(kc(e=>null!=e))}function xd(e){return t=>new El(n=>{let r=!1;const o=t.subscribe({next:e=>{r=!0,n.next(e)},error:e=>n.error(e),complete:()=>n.complete()});return r||n.next(e),o})}function Sd(e){return"string"==typeof e&&(e={id:e}),t=>Ec(wc(()=>function(e,t){const n=e.getEvent(t.id);return n instanceof Promise?oc(n):ic(n)}(t,e)).pipe(function(e,t){return Lc(n=>n?ic(n):e.eventLoader?oc(e.eventLoader(t)):Nl)}(t,e),kd()),t.insert$.pipe(kc(t=>t.id===e.id)),t.remove$.pipe(kc(t=>t.id===e.id),xc(1),xl(function(e,t){e.subscribe(Sl(t,ul))}),Ac(void 0))).pipe(Ed(t),Sc((e,t)=>e?.id===t?.id),xd(void 0))}function Cd(e){return t=>{let n;return Ec(wc(()=>function(e,t){const n=e.getReplaceable(t.kind,t.pubkey,t.identifier);return n instanceof Promise?oc(n):ic(n)}(t,e)).pipe(function(e,t){return Lc(n=>n?ic(n):void 0!==t.identifier?e.addressableLoader?oc(e.addressableLoader(t)).pipe(kc(e=>!!e)):Nl:e.replaceableLoader?oc(e.replaceableLoader(t)).pipe(kc(e=>!!e)):Nl)}(t,e),kd()),t.insert$.pipe(kc(t=>t.pubkey==e.pubkey&&t.kind===e.kind&&(void 0===e.identifier||Xc(t)===e.identifier)))).pipe(Sc((e,t)=>e.created_at>=t.created_at),Pc(e=>n=e),(a=t.remove$.pipe(kc(e=>e.id===n?.id)),xl(function(e,t){Ql(a).subscribe(Sl(t,function(){return t.complete()},ul)),!t.closed&&e.subscribe(t)})),Ac(void 0),(s=1/0,null!=r&&("object"==typeof r?(o=r.count,s=void 0===o?1/0:o,i=r.delay):s=r),s<=0?function(){return Nl}:xl(function(e,t){var n,r=0,o=function(){if(null==n||n.unsubscribe(),n=null,null!=i){var e="number"==typeof i?bc(i):Ql(i(r)),o=Sl(t,function(){o.unsubscribe(),a()});e.subscribe(o)}else a()},a=function(){var i=!1;n=e.subscribe(Sl(t,void 0,function(){++r<s?n?o():i=!0:t.complete()})),i&&o()};a()})),Ed(t),xd(void 0));var r,o,i,s,a}}function Ad(e,t){return e=Array.isArray(e)?e:[e],n=>{const r=new Map;return wc(()=>{const t=n.getTimeline(e);return t instanceof Promise?oc(t):ic(t)}).pipe(bd(n),Ic(n.insert$.pipe(kc(t=>ed(e,t)),bd(n))),Ic(n.remove$.pipe(kc(t=>ed(e,t)),sc(e=>e.id))),Rc((e,n)=>{if("string"==typeof n)return e.filter(e=>e.id!==n);if(Array.isArray(n)){if(!t)for(const e of n)Zc(e.kind)&&r.set(Gc(e),e);return n}let o=[...e];if(!t&&Zc(n.kind)){const t=Gc(n),i=r.get(t);if(i&&n.created_at<i.created_at)return e;r.set(t,n),i&&o.slice(o.indexOf(i),1)}return qc(o,n),o},[]),Sc(),$c(()=>r.clear()))}}function $d(e){return t=>pc(Object.fromEntries(e.map(e=>[e,t.model(Sd,{id:e})])))}function Td(e){return t=>pc(Object.fromEntries(e.map(e=>[Yc(e.kind,e.pubkey,e.identifier),t.model(Cd,e)])))}function Id(e){return t=>{let n;return Ec(t.pipe(Pc(e=>n=e)),e.update$.pipe(kc(e=>e.id===n?.id)))}}function Rd(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Contacts,pubkey:e.pubkey,relays:e.relays}).pipe(Id(t),sc(e=>e?ld(e):[]))}function _d(e){return t=>{const n=[{kinds:[1111],"#e":[e.id]}];return qa(e.kind)&&n.push({kinds:[1111],"#a":[Qc(e)]}),t.timeline(n)}}function Ld(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.RelayList,pubkey:e.pubkey,relays:e.relays}).pipe(sc(e=>e&&{inboxes:dd(e),outboxes:fd(e)}))}function Pd(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Mutelist,pubkey:e.pubkey,relays:e.relays}).pipe(Id(t),sc(e=>e&&yd(e)))}function Od(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Metadata,pubkey:e.pubkey,relays:e.relays}).pipe(kc(od),sc(e=>e&&rd(e)),xd(void 0))}function Bd(e){return t=>t.timeline(Zc(e.kind)?[{kinds:[lo.Reaction],"#e":[e.id]},{kinds:[lo.Reaction],"#a":[Gc(e)]}]:[{kinds:[lo.Reaction],"#e":[e.id]}])}const jd={kinds:[lo.ShortTextNote]};function Nd(e,t){const n=new Map,r=new Map,{kinds:o}={...jd,...t};let i="";const s={},a={kinds:o};var l;return"string"!=typeof(l=e)&&Reflect.has(l,"identifier")&&Reflect.has(l,"pubkey")&&Reflect.has(l,"kind")?(i=bu(e),s.kinds=[e.kind],s.authors=[e.pubkey],s["#d"]=[e.identifier],a["#a"]=[i]):"string"==typeof e?(i=e,s.ids=[e],a["#e"]=[e]):(i=e.id,s.ids=[e.id],a["#e"]=[e.id]),e=>e.filters([s,a]).pipe(sc(e=>{if(!r.has(Gc(e))){const t=function(e){return Dc(e,md,()=>{const t=function(e){const t=e.filter(e=>"e"===e[0]&&e[1]),n=e.filter(e=>"a"===e[0]&&e[1]);let r=t.find(e=>"root"===e[3]),o=t.find(e=>"reply"===e[3]),i=n.find(e=>"root"===e[3]),s=n.find(e=>"reply"===e[3]);if(r&&o||(r=o=r||o),i&&s||(i=s=i||s),!r&&!o){const e=t.filter(e=>!e[3]);e.length>=1&&(r=e[0],o=e[e.length-1]??r)}return{root:r||i?{e:r,a:i}:void 0,reply:o||s?{e:o,a:s}:void 0}}(e.tags);let n,r;if(t.root)try{n={e:t.root.e&&wd(t.root.e),a:t.root.a&&mu(t.root.a)}}catch(e){}if(t.reply)try{r={e:t.reply.e&&wd(t.reply.e),a:t.reply.a&&mu(t.reply.a)}}catch(e){}return{root:n,reply:r}})}(e),o=n.get(Gc(e))||new Set,i={event:e,refs:t,replies:o};for(const e of o)e.parent=i;if(t.reply?.e||t.reply?.a){let e=t.reply.e?t.reply.e.id:bu(t.reply.a);if(i.parent=r.get(e),i.parent)i.parent.replies.add(i);else{let t=n.get(e);t||(t=new Set,n.set(e,t)),t.add(i)}}r.set(Gc(e),i)}return{root:r.get(i),all:r}}))}function Md(e){return class extends e{models=new Map;modelKeepWarm=6e4;model(e,...t){let n=this.models.get(e);n||(n=new Map,this.models.set(e,n));const r=e.getKey?e.getKey(...t):Yu(t);let o=n.get(r);if(!o){const i=()=>{n.get(r)===o&&n.delete(r)};o=e(...t)(this).pipe($c(i),function(e){void 0===e&&(e={});var t=e.connector,n=void 0===t?function(){return new $l}:t,r=e.resetOnError,o=void 0===r||r,i=e.resetOnComplete,s=void 0===i||i,a=e.resetOnRefCountZero,l=void 0===a||a;return function(e){var t,r,i,a=0,c=!1,u=!1,d=function(){null==r||r.unsubscribe(),r=void 0},f=function(){d(),t=i=void 0,c=u=!1},h=function(){var e=t;f(),null==e||e.unsubscribe()};return xl(function(e,p){a++,u||c||d();var g=i=null!=i?i:n();p.add(function(){0!==--a||u||c||(r=_c(h,l))}),g.subscribe(p),!t&&a>0&&(t=new yl({next:function(e){return g.next(e)},error:function(e){u=!0,d(),r=_c(f,o,e),g.error(e)},complete:function(){c=!0,d(),r=_c(f,s),g.complete()}}),Ql(e).subscribe(t))})(e)}}({connector:()=>new Rl(1),resetOnComplete:()=>bc(this.modelKeepWarm),resetOnRefCountZero:()=>bc(this.modelKeepWarm)})),n.set(r,o)}return o}filters(e,t=!1){e=Array.isArray(e)?e:[e];const n=this.getByFilters(e);return Ec(t?Nl:n&&"function"==typeof n.then?oc(n).pipe(yc(e=>oc(Array.from(e)))):oc(Array.from(n)),this.insert$.pipe(kc(t=>ed(e,t))))}event(e){return"string"==typeof e&&(e={id:e}),this.model(Sd,e)}replaceable(...e){let t;if(1===e.length)t=e[0];else if(3===e.length||2===e.length){let[n,r,o]=e;t={kind:n,pubkey:r,identifier:o}}if(!t)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(Cd,t)}addressable(e){return this.model(Cd,e)}timeline(e,t=!1){return this.model(Ad,e,t)}profile(e){return this.model(Od,e)}contacts(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Rd,e)}mutes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Pd,e)}mailboxes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Ld,e)}blossomServers(e){return"string"==typeof e&&(e={pubkey:e}),this.model(td,e)}reactions(e){return this.model(Bd,e)}thread(e){return this.model(Nd,e)}comments(e){return this.model(_d,e)}events(e){return this.model($d,e)}replaceableSet(e){return this.model(Td,e)}}}class Ud extends(Md(class{})){database;memory;keepOldVersions=!1;keepExpired=!1;verifyEvent;insert$=new $l;update$=new $l;remove$=new $l;eventLoader;replaceableLoader;addressableLoader;constructor(e=new Ju){super(),e?(this.database=e,this.memory=new Ju):this.database=this.memory=new Ju,this.insert$.subscribe(e=>{Reflect.set(e,zc,this)}),this.remove$.subscribe(e=>{Reflect.deleteProperty(e,zc)})}mapToMemory(e){if(void 0!==e)return this.memory?this.memory.add(e):e}deletedIds=new Set;deletedCoords=new Map;checkDeleted(e){if("string"==typeof e)return this.deletedIds.has(e);if(this.deletedIds.has(e.id))return!0;if(qa(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=this.deletedCoords.get(Yc(e.kind,e.pubkey,t));if(n)return n>e.created_at}return!1}expirations=new Map;addExpiration(e){const t=nu(e);t&&Number.isFinite(t)&&this.expirations.set(e.id,t)}expirationTimeout=null;nextExpirationCheck=null;handleExpiringEvent(e){const t=nu(e);if(!t)return;if(this.expirations.set(e.id,t),this.expirationTimeout&&this.nextExpirationCheck&&this.nextExpirationCheck<t)return;this.expirationTimeout&&clearTimeout(this.expirationTimeout);const n=t-eu();this.expirationTimeout=setTimeout(this.pruneExpired.bind(this),1e3*n+10),this.nextExpirationCheck=t}pruneExpired(){const e=eu();for(const[t,n]of this.expirations)n<=e&&(this.expirations.delete(t),this.remove(t));this.expirationTimeout&&clearTimeout(this.expirationTimeout),this.nextExpirationCheck=null,this.expirationTimeout=null}handleDeleteEvent(e){const t=function(e){return e.tags.filter(Bc).map(e=>e[1])}(e);for(const e of t)this.deletedIds.add(e),this.remove(e);const n=function(e){return e.tags.filter(Mc).map(e=>e[1])}(e);for(const t of n){this.deletedCoords.set(t,Math.max(this.deletedCoords.get(t)??0,e.created_at));const n=vu(t);if(!n)continue;const r=this.database.getReplaceableHistory(n.kind,n.pubkey,n.identifier)??[];for(const t of r)t.created_at<e.created_at&&this.remove(t)}}static mergeDuplicateEvent(e,t){const n=e[ou];if(n)for(const e of n)iu(t,e);const r=Reflect.get(e,Vc);r&&!Reflect.get(t,Vc)&&Reflect.set(t,Vc,r)}add(e,t){if(e.kind===lo.EventDeletion&&this.handleDeleteEvent(e),this.checkDeleted(e))return e;const n=nu(e);if(!1===this.keepExpired&&n&&n<=eu())return null;const r=Zc(e.kind)?e.tags.find(e=>"d"===e[0])?.[1]:void 0;if(!this.keepOldVersions&&Zc(e.kind)){const t=this.database.getReplaceableHistory(e.kind,e.pubkey,r);if(t&&t.length>0&&t[0].created_at>=e.created_at)return Ud.mergeDuplicateEvent(e,t[0]),t[0]}if(this.verifyEvent&&!1===this.verifyEvent(e))return null;const o=this.memory?.add(e);if(o&&o!==e)return Ud.mergeDuplicateEvent(e,o),t&&iu(o,t),o;const i=this.mapToMemory(this.database.add(e));if(e!==i&&Ud.mergeDuplicateEvent(e,i),t&&iu(i,t),i===e&&this.insert$.next(i),!this.keepOldVersions&&Zc(e.kind)){const t=this.database.getReplaceableHistory(e.kind,e.pubkey,r);if(t&&t.length>0){const n=Array.from(t).filter(t=>t.created_at<e.created_at);for(const e of n)this.remove(e);if(t.length!==n.length)return t[0]}}return!1===this.keepExpired&&n&&this.handleExpiringEvent(i),i}remove(e){let t=this.memory?.getEvent("string"==typeof e?e:e.id);this.memory&&this.memory.remove(e);const n=this.database.remove(e);return n&&t&&this.remove$.next(t),n}removeByFilters(e){const t=this.getByFilters(e);this.memory&&this.memory.removeByFilters(e);const n=this.database.removeByFilters(e);for(const e of t)this.remove$.next(e);return n}update(e){return!!this.database.add(e)&&(this.database.update?.(e),this.update$.next(e),!0)}hasEvent(e){return this.memory?.hasEvent(e)||this.database.hasEvent(e)}getEvent(e){return this.memory?.getEvent(e)??this.mapToMemory(this.database.getEvent(e))}hasReplaceable(e,t,n){return this.memory?.hasReplaceable(e,t,n)||this.database.hasReplaceable(e,t,n)}getReplaceable(e,t,n){return this.memory?.getReplaceable(e,t,n)??this.mapToMemory(this.database.getReplaceable(e,t,n))}getReplaceableHistory(e,t,n){return this.memory?.getReplaceableHistory(e,t,n)??this.database.getReplaceableHistory(e,t,n)?.map(e=>this.mapToMemory(e)??e)}getByFilters(e){const t=this.database.getByFilters(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}getTimeline(e){const t=this.database.getTimeline(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}touch(e){return this.memory?.touch(e)}claim(e,t){return this.memory?.claim(e,t)}isClaimed(e){return this.memory?.isClaimed(e)??!1}removeClaim(e,t){return this.memory?.removeClaim(e,t)}clearClaim(e){return this.memory?.clearClaim(e)}unclaimed(){return this.memory?.unclaimed()||function*(){}()}prune(e){return this.memory?.prune(e)??0}removed(e){return this.checkDeleted(e)?Nl:this.remove$.pipe(kc(t=>t.id===e),xc(1),yc(()=>Nl))}updated(e){return this.update$.pipe(kc(t=>t.id===e||t===e))}}function Fd(){let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var Dd,qd;$u(lo.NostrConnect,"nip44"),function(e){e.GetPublicKey="get_pubic_key",e.SignEvent="sign_event",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt"}(Dd||(Dd={})),function(e){e.Connect="connect",e.CreateAccount="create_account",e.GetPublicKey="get_public_key",e.SignEvent="sign_event",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt"}(qd||(qd={}));class Hd{key;constructor(e){this.key=e||oo()}async getPublicKey(){return io(this.key)}async signEvent(e){return so(e,this.key)}nip04={encrypt:async(e,t)=>ls.encrypt(this.key,e,t),decrypt:async(e,t)=>ls.decrypt(this.key,e,t)};nip44={encrypt:async(e,t)=>Cs.v2.encrypt(t,Cs.v2.utils.getConversationKey(this.key,e)),decrypt:async(e,t)=>Cs.v2.decrypt(t,Cs.v2.utils.getConversationKey(this.key,e))};static fromKey(e){return new Hd(Eu(e))}}const zd="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;
|
||
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Kd(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}const Wd=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Vd=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Jd(e){if(Kd(e),Wd)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Vd[e[n]];return t}const Zd=48,Gd=57,Qd=65,Yd=70,Xd=97,ef=102;function tf(e){return e>=Zd&&e<=Gd?e-Zd:e>=Qd&&e<=Yd?e-(Qd-10):e>=Xd&&e<=ef?e-(Xd-10):void 0}function nf(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Wd)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=tf(e.charCodeAt(o)),i=tf(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}
|
||
/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */
|
||
const rf=BigInt(0),of=BigInt(1),sf=BigInt(2),af=BigInt(3),lf=BigInt(8),cf=Object.freeze({a:rf,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:of,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),uf=(e,t)=>(e+t/sf)/t,df={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=cf,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-of*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),a=uf(i*e,t),l=uf(-r*e,t);let c=jf(e-a*n-l*o,t),u=jf(-a*r-l*i,t);const d=c>s,f=u>s;if(d&&(c=t-c),f&&(u=t-u),c>s||u>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:d,k1:c,k2neg:f,k2:u}}},ff=32;function hf(e){const{a:t,b:n}=cf,r=jf(e*e),o=jf(r*e);return jf(o+t*e+n)}const pf=cf.a===rf;function gf(e){if(!(e instanceof yf))throw new TypeError("JacobianPoint expected")}class yf{constructor(e,t,n){this.x=e,this.y=t,this.z=n}static fromAffine(e){if(!(e instanceof wf))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(wf.ZERO)?yf.ZERO:new yf(e.x,e.y,of)}static toAffineBatch(e){const t=function(e,t=cf.P){const n=new Array(e.length),r=e.reduce((e,r,o)=>r===rf?e:(n[o]=e,jf(e*r,t)),of),o=Mf(r,t);return e.reduceRight((e,r,o)=>r===rf?e:(n[o]=jf(e*n[o],t),jf(e*r,t)),o),n}(e.map(e=>e.z));return e.map((e,n)=>e.toAffine(t[n]))}static normalizeZ(e){return yf.toAffineBatch(e).map(yf.fromAffine)}equals(e){gf(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:s}=e,a=jf(r*r),l=jf(s*s),c=jf(t*l),u=jf(o*a),d=jf(jf(n*s)*l),f=jf(jf(i*r)*a);return c===u&&d===f}negate(){return new yf(this.x,jf(-this.y),this.z)}double(){const{x:e,y:t,z:n}=this,r=jf(e*e),o=jf(t*t),i=jf(o*o),s=e+o,a=jf(sf*(jf(s*s)-r-i)),l=jf(af*r),c=jf(l*l),u=jf(c-sf*a),d=jf(l*(a-u)-lf*i),f=jf(sf*t*n);return new yf(u,d,f)}add(e){gf(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:s}=e;if(o===rf||i===rf)return this;if(t===rf||n===rf)return e;const a=jf(r*r),l=jf(s*s),c=jf(t*l),u=jf(o*a),d=jf(jf(n*s)*l),f=jf(jf(i*r)*a),h=jf(u-c),p=jf(f-d);if(h===rf)return p===rf?this.double():yf.ZERO;const g=jf(h*h),y=jf(h*g),v=jf(c*g),m=jf(p*p-y-sf*v),w=jf(p*(v-m)-d*y),b=jf(r*s*h);return new yf(m,w,b)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=yf.ZERO;if("bigint"==typeof e&&e===rf)return t;let n=Bf(e);if(n===of)return this;if(!pf){let e=t,r=this;for(;n>rf;)n&of&&(e=e.add(r)),r=r.double(),n>>=of;return e}let{k1neg:r,k1:o,k2neg:i,k2:s}=df.splitScalar(n),a=t,l=t,c=this;for(;o>rf||s>rf;)o&of&&(a=a.add(c)),s&of&&(l=l.add(c)),c=c.double(),o>>=of,s>>=of;return r&&(a=a.negate()),i&&(l=l.negate()),l=new yf(jf(l.x*df.beta),l.y,l.z),a.add(l)}precomputeWindow(e){const t=pf?128/e+1:256/e+1,n=[];let r=this,o=r;for(let i=0;i<t;i++){o=r,n.push(o);for(let t=1;t<2**(e-1);t++)o=o.add(r),n.push(o);r=o.double()}return n}wNAF(e,t){!t&&this.equals(yf.BASE)&&(t=wf.BASE);const n=t&&t._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let r=t&&mf.get(t);r||(r=this.precomputeWindow(n),t&&1!==n&&(r=yf.normalizeZ(r),mf.set(t,r)));let o=yf.ZERO,i=yf.BASE;const s=1+(pf?128/n:256/n),a=2**(n-1),l=BigInt(2**n-1),c=2**n,u=BigInt(n);for(let t=0;t<s;t++){const n=t*a;let s=Number(e&l);e>>=u,s>a&&(s-=c,e+=of);const d=n,f=n+Math.abs(s)-1,h=t%2!=0,p=s<0;0===s?i=i.add(vf(h,r[d])):o=o.add(vf(p,r[f]))}return{p:o,f:i}}multiply(e,t){let n,r,o=Bf(e);if(pf){const{k1neg:e,k1:i,k2neg:s,k2:a}=df.splitScalar(o);let{p:l,f:c}=this.wNAF(i,t),{p:u,f:d}=this.wNAF(a,t);l=vf(e,l),u=vf(s,u),u=new yf(jf(u.x*df.beta),u.y,u.z),n=l.add(u),r=c.add(d)}else{const{p:e,f:i}=this.wNAF(o,t);n=e,r=i}return yf.normalizeZ([n,r])[0]}toAffine(e){const{x:t,y:n,z:r}=this,o=this.equals(yf.ZERO);null==e&&(e=o?lf:Mf(r));const i=e,s=jf(i*i),a=jf(s*i),l=jf(t*s),c=jf(n*a),u=jf(r*i);if(o)return wf.ZERO;if(u!==of)throw new Error("invZ was invalid");return new wf(l,c)}}function vf(e,t){const n=t.negate();return e?n:t}yf.BASE=new yf(cf.Gx,cf.Gy,of),yf.ZERO=new yf(rf,of,rf);const mf=new WeakMap;class wf{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,mf.delete(this)}hasEvenY(){return this.y%sf===rf}static fromCompressedHex(e){const t=32===e.length,n=Pf(t?e:e.subarray(1));if(!Ff(n))throw new Error("Point is not on curve");let r=function(e){const{P:t}=cf,n=BigInt(6),r=BigInt(11),o=BigInt(22),i=BigInt(23),s=BigInt(44),a=BigInt(88),l=e*e*e%t,c=l*l*e%t,u=Nf(c,af)*c%t,d=Nf(u,af)*c%t,f=Nf(d,sf)*l%t,h=Nf(f,r)*f%t,p=Nf(h,o)*h%t,g=Nf(p,s)*p%t,y=Nf(g,a)*g%t,v=Nf(y,s)*p%t,m=Nf(v,af)*c%t,w=Nf(m,i)*h%t,b=Nf(w,n)*l%t,E=Nf(b,sf);if(E*E%t!==e)throw new Error("Cannot find square root");return E}(hf(n));const o=(r&of)===of;if(t)o&&(r=jf(-r));else{!(1&~e[0])!==o&&(r=jf(-r))}const i=new wf(n,r);return i.assertValidity(),i}static fromUncompressedHex(e){const t=Pf(e.subarray(1,33)),n=Pf(e.subarray(33,65)),r=new wf(t,n);return r.assertValidity(),r}static fromHex(e){const t=Of(e),n=t.length,r=t[0];if(n===ff)return this.fromCompressedHex(t);if(33===n&&(2===r||3===r))return this.fromCompressedHex(t);if(65===n&&4===r)return this.fromUncompressedHex(t);throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return wf.BASE.multiply(function(e){let t;if("bigint"==typeof e)t=e;else if("number"==typeof e&&Number.isSafeInteger(e)&&e>0)t=BigInt(e);else if("string"==typeof e){if(64!==e.length)throw new Error("Expected 32 bytes of private key");t=Lf(e)}else{if(!xf(e))throw new TypeError("Expected valid private key");if(32!==e.length)throw new Error("Expected 32 bytes of private key");t=Pf(e)}if(!Uf(t))throw new Error("Expected private key: 0 < key < n");return t}(e))}static fromSignature(e,t,n){const{r:r,s:o}=function(e){if(e instanceof kf)return e.assertValidity(),e;try{return kf.fromDER(e)}catch(t){return kf.fromCompact(e)}}(t);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");const i=function(e,t=!1){const n=function(e){const t=8*e.length-256,n=Pf(e);return t>0?n>>BigInt(t):n}(e);if(t)return n;const{n:r}=cf;return n>=r?n-r:n}(Of(e)),{n:s}=cf,a=2===n||3===n?r+s:r,l=Mf(a,s),c=jf(-i*l,s),u=jf(o*l,s),d=1&n?"03":"02",f=wf.fromHex(d+Rf(a)),h=wf.BASE.multiplyAndAddUnsafe(f,c,u);if(!h)throw new Error("Cannot recover signature: point at infinify");return h.assertValidity(),h}toRawBytes(e=!1){return Tf(this.toHex(e))}toHex(e=!1){const t=Rf(this.x);if(e){return`${this.hasEvenY()?"02":"03"}${t}`}return`04${t}${Rf(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:n}=this;if(!Ff(t)||!Ff(n))throw new Error(e);const r=jf(n*n);if(jf(r-hf(t))!==rf)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new wf(this.x,jf(-this.y))}double(){return yf.fromAffine(this).double().toAffine()}add(e){return yf.fromAffine(this).add(yf.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return yf.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,n){const r=yf.fromAffine(this),o=t===rf||t===of||this!==wf.BASE?r.multiplyUnsafe(t):r.multiply(t),i=yf.fromAffine(e).multiplyUnsafe(n),s=o.add(i);return s.equals(yf.ZERO)?void 0:s.toAffine()}}function bf(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function Ef(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${Cf(e)}`);const t=e[1],n=e.subarray(2,t+2);if(!t||n.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===n[0]&&n[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Pf(n),left:e.subarray(t+2)}}wf.BASE=new wf(cf.Gx,cf.Gy),wf.ZERO=new wf(rf,rf);class kf{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=xf(e),n="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${n}: Expected string or Uint8Array`);const r=t?Cf(e):e;if(128!==r.length)throw new Error(`${n}: Expected 64-byte hex`);return new kf(Lf(r.slice(0,64)),Lf(r.slice(64,128)))}static fromDER(e){const t=xf(e);if("string"!=typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:n,s:r}=function(e){if(e.length<2||48!=e[0])throw new Error(`Invalid signature tag: ${Cf(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:n}=Ef(e.subarray(2)),{data:r,left:o}=Ef(n);if(o.length)throw new Error(`Invalid signature: left bytes after parsing: ${Cf(o)}`);return{r:t,s:r}}(t?e:Tf(e));return new kf(n,r)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!Uf(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Uf(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=cf.n>>of;return this.s>e}normalizeS(){return this.hasHighS()?new kf(this.r,jf(-this.s,cf.n)):this}toDERRawBytes(){return Tf(this.toDERHex())}toDERHex(){const e=bf(_f(this.s)),t=bf(_f(this.r)),n=e.length/2,r=t.length/2,o=_f(n),i=_f(r);return`30${_f(r+n+4)}02${i}${t}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return Tf(this.toCompactHex())}toCompactHex(){return Rf(this.r)+Rf(this.s)}}function xf(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}const Sf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Cf(e){!function(e){if(!xf(e))throw new Error("Uint8Array expected")}(e);let t="";for(let n=0;n<e.length;n++)t+=Sf[e[n]];return t}const Af={_0:48,_9:57,A:65,F:70,a:97,f:102};function $f(e){return e>=Af._0&&e<=Af._9?e-Af._0:e>=Af.A&&e<=Af.F?e-(Af.A-10):e>=Af.a&&e<=Af.f?e-(Af.a-10):void 0}function Tf(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=$f(e.charCodeAt(o)),i=$f(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}const If=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Rf(e){if("bigint"!=typeof e)throw new Error("Expected bigint");if(!(rf<=e&&e<If))throw new Error("Expected number 0 <= n < 2^256");return e.toString(16).padStart(64,"0")}function _f(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function Lf(e){if("string"!=typeof e)throw new TypeError("hexToNumber: expected string, got "+typeof e);return BigInt(`0x${e}`)}function Pf(e){return Lf(Cf(e))}function Of(e){return xf(e)?Uint8Array.from(e):Tf(e)}function Bf(e){if("number"==typeof e&&Number.isSafeInteger(e)&&e>0)return BigInt(e);if("bigint"==typeof e&&Uf(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function jf(e,t=cf.P){const n=e%t;return n>=rf?n:t+n}function Nf(e,t){const{P:n}=cf;let r=e;for(;t-- >rf;)r*=r,r%=n;return r}function Mf(e,t=cf.P){if(e===rf||t<=rf)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=jf(e,t),r=t,o=rf,i=of;for(;n!==rf;){const e=r%n,t=o-i*(r/n);r=n,n=e,o=i,i=t}if(r!==of)throw new Error("invert: does not exist");return jf(o,t)}function Uf(e){return rf<e&&e<cf.n}function Ff(e){return rf<e&&e<cf.P}
|
||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
function Df(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function qf(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Hf(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function zf(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Kf(e){if(!Array.isArray(e))throw new Error("array expected")}function Wf(e,t){if(!qf(!0,t))throw new Error(`${e}: array of strings expected`)}wf.BASE._setWindowSize(8);const Vf=(e,t)=>0===t?e:Vf(t,e%t),Jf=(e,t)=>e+(t-Vf(e,t)),Zf=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Gf(e,t,n,r){if(Kf(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Jf(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Jf(t,n)}`);let o=0,i=0;const s=Zf[t],a=Zf[n]-1,l=[];for(const r of e){if(zf(r),r>=s)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(o=o<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)l.push((o>>i-n&a)>>>0);const e=Zf[i];if(void 0===e)throw new Error("invalid carry");o&=e-1}if(o=o<<n-i&a,!r&&i>=t)throw new Error("Excess padding");if(!r&&o>0)throw new Error(`Non-zero padding: ${o}`);return r&&i>0&&l.push(o>>>0),l}const Qf=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)()?{encode:e=>(function(e,...t){if(!Df(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}(e),e.toBase64()),decode:e=>((e,t)=>{Hf("base64",e);const n=t?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=t?"base64url":"base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})})(e,!1)}:function(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}(function(e,t=!1){if(zf(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Jf(8,e)>32||Jf(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Df(n))throw new Error("radix2.encode input should be Uint8Array");return Gf(Array.from(n),8,e,!t)},decode:n=>(function(e,t){if(!qf(!1,t))throw new Error(`${e}: array of numbers expected`)}("radix2.decode",n),Uint8Array.from(Gf(n,e,8,t)))}}(6),function(e){const t="string"==typeof e?e.split(""):e,n=t.length;Wf("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(Kf(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(Kf(t),t.map(t=>{Hf("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),function(e,t="="){return zf(e),Hf("padding",t),{encode(n){for(Wf("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Wf("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}(6),function(e=""){return Hf("join",e),{encode:t=>(Wf("join.decode",t),t.join(e)),decode:t=>(Hf("join.decode",t),t.split(e))}}(""));function Yf(e){return wf.fromHex(e).toHex().substring(2)}const Xf=new TextDecoder("utf-8"),eh=new TextEncoder;class th{log=Vu.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=ao;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,t,n={}){if(!th.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(n),this.lastCommand)throw new Error("Previous command to device still pending!");const r=Fd();return this.lastCommand=r,this.sendCommand(e,t),setTimeout(()=>{r.reject(new Error("Device timeout")),this.lastCommand===r&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:e,onDisconnect:t,onError:n,onDone:r}){let o,i=await window.navigator.serial.requestPort();await i.open({baudRate:9600}),await(e=>new Promise(t=>setTimeout(t,e)))(1e3),(async()=>{for(;i&&i.readable;){const e=new window.TextDecoderStream;i.readable.pipeTo(e.writable),o=e.readable.getReader();const t=this.readFromSerialPort(o);try{for(;;){const{value:e,done:n}=await t("\n");if(e){const{method:t,data:n}=this.parseResponse(e);if("/ping"===t&&this.log("Pong"),-1===th.PUBLIC_METHODS.indexOf(t))continue;this.log("Received: ",t,n),this.lastCommand&&(this.lastCommand.resolve(n),this.lastCommand=null)}if(n)return this.lastCommand=null,this.writer=null,void(r&&r())}}catch(e){if(e instanceof Error)throw this.writer=null,n&&n(e),this.lastCommand&&(this.lastCommand.reject(e),this.lastCommand=null),e}}})();const s=new window.TextEncoderStream;s.readable.pipeTo(i.writable),this.writer=s.writable.getWriter(),await this.sendCommand(th.METHOD_PING),await this.sendCommand(th.METHOD_PING,[window.location.host]),e&&e(),i.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,t&&t()})}async sendCommand(e,t=[]){if(!this.writer)return;this.log("Send command",e,t);const n=[e].concat(t).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(e){let t,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const o=[];for(t&&(o.push(t),t=void 0);;){const{value:i,done:s}=await e.read();if(i){const e=i.split(r);if(e.length>1)return o.push(e.shift()),t=e.pop(),n=e,{value:o.join("").trim(),done:!1};o.push(i)}if(s)return{value:o.join("").trim(),done:!0}}}}parseResponse(e){const t=e.split(" ")[0];return{method:t,data:e.substring(t.length).trim()}}async nip04Encrypt(e,t){const n=nf(await this.callMethodOnDevice(th.METHOD_SHARED_SECRET,[Yf(e)]));let r=Uint8Array.from(function(e=32){if(zd&&"function"==typeof zd.getRandomValues)return zd.getRandomValues(new Uint8Array(e));if(zd&&"function"==typeof zd.randomBytes)return Uint8Array.from(zd.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}(16)),o=eh.encode(t),i=await crypto.subtle.importKey("raw",n,{name:"AES-CBC"},!1,["encrypt"]),s=await crypto.subtle.encrypt({name:"AES-CBC",iv:r},i,o);return`${Qf.encode(new Uint8Array(s))}?iv=${Qf.encode(new Uint8Array(r.buffer))}`}async nip04Decrypt(e,t){let[n,r]=t.split("?iv=");const o=nf(await this.callMethodOnDevice(th.METHOD_SHARED_SECRET,[Yf(e)]));let i=await crypto.subtle.importKey("raw",o,{name:"AES-CBC"},!1,["decrypt"]),s=Qf.decode(n),a=Qf.decode(r),l=await crypto.subtle.decrypt({name:"AES-CBC",iv:a},i,s);return Xf.decode(l)}async getPublicKey(){const e=await this.callMethodOnDevice(th.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(th.METHOD_RESTORE,[Jd(e)])}async signEvent(e){const t=e.pubkey||this.pubkey;if(!t)throw new Error("Unknown signer pubkey");const n={...e,id:no({...e,pubkey:t})},r=await this.callMethodOnDevice(th.METHOD_SIGN_MESSAGE,[n.id]),o={...n,sig:r,pubkey:t};if(!this.verifyEvent(o))throw new Error("Invalid signature");return o}ping(){this.sendCommand(th.METHOD_PING,[window.location.host])}static SUPPORTED="navigator"in globalThis&&!!navigator.serial;static METHOD_PING="/ping";static METHOD_LOG="/log";static METHOD_SIGN_MESSAGE="/sign-message";static METHOD_SHARED_SECRET="/shared-secret";static METHOD_PUBLIC_KEY="/public-key";static METHOD_RESTORE="/restore";static PUBLIC_METHODS=[th.METHOD_PUBLIC_KEY,th.METHOD_SIGN_MESSAGE,th.METHOD_SHARED_SECRET,th.METHOD_RESTORE]}const nh=[`${"https:"===window.location.protocol?"wss:":"ws:"}//${window.location.host}/`];class rh{constructor(){this.pool=new Rn,this.eventStore=new Ud,this.isConnected=!1,this.signer=null,this.relays=[...nh]}async connect(){console.log("Starting connection to",this.relays.length,"relays...");try{this.isConnected=!0,console.log("✓ Successfully initialized relay pool"),await new Promise(e=>setTimeout(e,1e3))}catch(e){throw console.error("✗ Connection failed:",e),e}}async connectToRelay(e){console.log(`Adding relay: ${e}`);try{return this.relays.includes(e)||this.relays.push(e),console.log(`✓ Successfully added relay ${e}`),!0}catch(t){return console.error(`✗ Failed to add relay ${e}:`,t),!1}}subscribe(e,t){console.log("Creating subscription with filters:",e);const n=this.pool.subscribeMany(this.relays,e,{onevent(e){console.log("Event received:",e),t(e)},oneose(){console.log("EOSE received"),window.dispatchEvent(new CustomEvent("nostr-eose",{detail:{subscriptionId:n.id}}))}});return n}unsubscribe(e){console.log("Closing subscription"),e&&e.close&&e.close()}disconnect(){console.log("Disconnecting relay pool"),this.pool&&this.pool.close(this.relays),this.isConnected=!1}async publish(e,t=null){this.isConnected||(console.warn("Not connected to any relays, attempting to connect first"),await this.connect());try{const n=t||this.relays,r=this.pool.publish(n,e);return await Promise.allSettled(r),console.log("✓ Event published successfully"),await uh([e]),console.log("Event stored in IndexedDB"),{success:!0,okCount:1,errorCount:0}}catch(e){throw console.error("✗ Failed to publish event:",e),e}}getPool(){return this.pool}getEventStore(){return this.eventStore}getSigner(){return this.signer}setSigner(e){this.signer=e}}const oh=new rh,ih="nostrCache",sh=2,ah="events";function lh(){return new Promise((e,t)=>{try{const n=indexedDB.open(ih,sh);n.onupgradeneeded=e=>{const t=n.result;e.oldVersion;let r;r=t.objectStoreNames.contains(ah)?n.transaction.objectStore(ah):t.createObjectStore(ah,{keyPath:"id"}),r.indexNames.contains("byKindAuthor")||r.createIndex("byKindAuthor",["kind","pubkey"],{unique:!1}),r.indexNames.contains("byKindAuthorCreated")||r.createIndex("byKindAuthorCreated",["kind","pubkey","created_at"],{unique:!1}),r.indexNames.contains("byKind")||r.createIndex("byKind","kind",{unique:!1}),r.indexNames.contains("byAuthor")||r.createIndex("byAuthor","pubkey",{unique:!1}),r.indexNames.contains("byCreatedAt")||r.createIndex("byCreatedAt","created_at",{unique:!1})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}catch(e){console.error("Failed to open IndexedDB",e),t(e)}})}async function ch(e){try{const t=await lh();await new Promise((n,r)=>{const o=t.transaction(ah,"readwrite");o.oncomplete=()=>n(),o.onerror=()=>r(o.error),o.objectStore(ah).put(e)})}catch(e){console.warn("IDB putEvent failed",e)}}async function uh(e){if(e&&0!==e.length)try{const t=await lh();await new Promise((n,r)=>{const o=t.transaction(ah,"readwrite");o.oncomplete=()=>n(),o.onerror=()=>r(o.error);const i=o.objectStore(ah);for(const t of e)i.put(t)}),console.log(`Stored ${e.length} events in IndexedDB`)}catch(e){console.warn("IDB putEvents failed",e)}}async function dh(e){try{const t=await lh(),n=[];console.log("QueryEventsFromDB: Starting query with filters:",e);for(const r of e){console.log("QueryEventsFromDB: Processing filter:",r);const e=await new Promise((e,n)=>{const o=t.transaction(ah,"readonly").objectStore(ah),i=[];let s;if(r.kinds&&r.kinds.length>0&&r.authors&&r.authors.length>0){const e=r.kinds[0],t=r.authors[0];console.log(`QueryEventsFromDB: Using byKindAuthorCreated index for kind=${e}, author=${t.substring(0,8)}...`);const n=o.index("byKindAuthorCreated"),i=IDBKeyRange.bound([e,t,-1/0],[e,t,1/0]);s=n.openCursor(i,"prev")}else if(r.kinds&&r.kinds.length>0){console.log(`QueryEventsFromDB: Using byKind index for kind=${r.kinds[0]}`);const e=o.index("byKind");s=e.openCursor(IDBKeyRange.only(r.kinds[0]))}else if(r.authors&&r.authors.length>0){console.log(`QueryEventsFromDB: Using byAuthor index for author=${r.authors[0].substring(0,8)}...`);const e=o.index("byAuthor");s=e.openCursor(IDBKeyRange.only(r.authors[0]))}else console.log("QueryEventsFromDB: Scanning all events (no specific index)"),s=o.openCursor();s.onsuccess=t=>{const n=t.target.result;if(n){const t=n.value;let o=!0;if(r.kinds&&r.kinds.length>0&&!r.kinds.includes(t.kind)&&(o=!1),r.authors&&r.authors.length>0&&!r.authors.includes(t.pubkey)&&(o=!1),r.since&&t.created_at<r.since&&(o=!1),r.until&&t.created_at>r.until&&(o=!1),r.ids&&r.ids.length>0&&!r.ids.includes(t.id)&&(o=!1),o&&i.push(t),r.limit&&i.length>=r.limit)return console.log(`QueryEventsFromDB: Reached limit of ${r.limit}, found ${i.length} matching events`),void e(i);n.continue()}else console.log(`QueryEventsFromDB: Cursor exhausted, found ${i.length} matching events`),e(i)},s.onerror=()=>{console.error("QueryEventsFromDB: Cursor error:",s.error),n(s.error)}});console.log(`QueryEventsFromDB: Found ${e.length} events for this filter`),n.push(...e)}return n.sort((e,t)=>t.created_at-e.created_at),console.log(`QueryEventsFromDB: Returning ${n.length} total events`),n}catch(e){return console.error("QueryEventsFromDB failed:",e),[]}}function fh(e){try{const t=JSON.parse(e.content||"{}");return{name:t.name||t.display_name||"",picture:t.picture||"",banner:t.banner||"",about:t.about||"",nip05:t.nip05||"",lud16:t.lud16||t.lud06||""}}catch(e){return{name:"",picture:"",banner:"",about:"",nip05:"",lud16:""}}}async function hh(e){console.log(`Starting profile fetch for pubkey: ${e}`);try{const t=await async function(e){try{const t=await lh();return await new Promise((n,r)=>{const o=t.transaction(ah,"readonly").objectStore(ah).index("byKindAuthorCreated"),i=IDBKeyRange.bound([0,e,-1/0],[0,e,1/0]),s=o.openCursor(i,"prev");s.onsuccess=()=>{const e=s.result;n(e?e.value:null)},s.onerror=()=>r(s.error)})}catch(e){return console.warn("IDB getLatestProfileEvent failed",e),null}}(e);if(t){console.log("Using cached profile event");return fh(t)}}catch(e){console.warn("Failed to load cached profile",e)}try{const t=[{kinds:[0],authors:[e],limit:1}],n=await ph(t,{timeout:1e4});if(n.length>0){const t=n[0];console.log("Profile fetched:",t),await ch(t);try{console.log("Publishing profile event to local relay:",t.id),await oh.publish(t),console.log("Profile event successfully saved to local relay")}catch(e){console.warn("Failed to publish profile to local relay:",e)}const r=fh(t);try{"undefined"!=typeof window&&window.dispatchEvent&&window.dispatchEvent(new CustomEvent("profile-updated",{detail:{pubkey:e,profile:r,event:t}}))}catch(e){console.warn("Failed to dispatch profile-updated event",e)}return r}throw new Error("No profile found")}catch(e){throw console.error("Failed to fetch profile:",e),e}}async function ph(e,t={}){console.log("Starting event fetch with filters:",JSON.stringify(e,null,2)),console.log("Current relays:",oh.relays),oh.isConnected&&0!==oh.relays.length||(console.warn("Client not connected, initializing..."),await vh());const{timeout:n=3e4,useCache:r=!0}=t;if(r)try{const t=await dh(e);t.length>0&&console.log(`Found ${t.length} cached events in IndexedDB`)}catch(e){console.warn("Failed to query cached events",e)}return new Promise((t,r)=>{const o=[],i=setTimeout(()=>{console.log(`Timeout reached after ${n}ms, returning ${o.length} events`),sub.close(),o.length>0&&uh(o).catch(e=>console.warn("Failed to cache events",e)),t(o)},n);try{const n=Math.random().toString(36).substring(7);console.log(`📤 REQ [${n}]:`,JSON.stringify(["REQ",n,...e],null,2));const r=oh.pool.subscribeMany(oh.relays,e,{onevent(e){console.log(`📥 EVENT received for REQ [${n}]:`,{id:e.id?.substring(0,8)+"...",kind:e.kind,pubkey:e.pubkey?.substring(0,8)+"...",created_at:e.created_at,content_preview:e.content?.substring(0,50)}),o.push(e),ch(e).catch(e=>console.warn("Failed to cache event",e))},oneose(){console.log(`✅ EOSE received for REQ [${n}], got ${o.length} events`),clearTimeout(i),r.close(),o.length>0&&uh(o).catch(e=>console.warn("Failed to cache events",e)),t(o)}})}catch(e){clearTimeout(i),console.error("Failed to fetch events:",e),r(e)}})}async function gh(e,t={}){const{timeout:n=1e4}=t;console.log(`Fetching event by ID: ${e}`);try{const t=[{ids:[e]}];console.log("Fetching event with filters:",t);const r=await ph(t,{timeout:n});return console.log(`Fetched ${r.length} events`),r.length>0?r[0]:null}catch(e){throw console.error("Failed to fetch event by ID:",e),e}}async function yh(e,t={}){const{timeout:n=1e4}=t;console.log(`Fetching delete events for target: ${e}`);try{const t=[{kinds:[5],"#e":[e]}];console.log("Fetching delete events with filters:",t);const r=await ph(t,{timeout:n});return console.log(`Fetched ${r.length} delete events`),r}catch(e){throw console.error("Failed to fetch delete events:",e),e}}async function vh(){await oh.connect()}async function mh(){try{const e=await lh(),t=e.transaction(ah,"readonly").objectStore(ah),n=await new Promise((e,n)=>{const r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)}),r=n.reduce((e,t)=>(e[t.kind]=(e[t.kind]||0)+1,e),{});return console.log("===== IndexedDB Contents ====="),console.log(`Total events: ${n.length}`),console.log("Events by kind:",r),console.log("Kind 0 events:",n.filter(e=>0===e.kind)),console.log("All event IDs:",n.map(e=>({id:e.id.substring(0,8),kind:e.kind,pubkey:e.pubkey.substring(0,8)}))),console.log("=============================="),{total:n.length,byKind:r,events:n}}catch(e){return console.error("Failed to debug IndexedDB:",e),null}}const{window:wh}=l;function bh(e){let t,n,o,i,s,a,l,f,p,y,b,E,k,x,C,A,$,T;function I(e,t){return"extension"===e[2]?kh:Eh}let R=I(e),_=R(e),L=e[5]&&xh(e),P=e[6]&&Sh(e);return{c(){t=h("div"),n=h("div"),o=h("div"),i=h("h2"),i.textContent="Login to Nostr",s=g(),a=h("button"),a.textContent="×",l=g(),f=h("div"),p=h("div"),y=h("button"),y.textContent="Extension",b=g(),E=h("button"),E.textContent="Nsec",k=g(),x=h("div"),_.c(),C=g(),L&&L.c(),A=g(),P&&P.c(),w(i,"class","svelte-1cle6o2"),w(a,"class","close-btn svelte-1cle6o2"),w(o,"class","modal-header svelte-1cle6o2"),w(y,"class","tab-btn svelte-1cle6o2"),S(y,"active","extension"===e[2]),w(E,"class","tab-btn svelte-1cle6o2"),S(E,"active","nsec"===e[2]),w(p,"class","tabs svelte-1cle6o2"),w(x,"class","tab-content svelte-1cle6o2"),w(f,"class","tab-container svelte-1cle6o2"),w(n,"class","modal svelte-1cle6o2"),S(n,"dark-theme",e[1]),w(t,"class","modal-overlay svelte-1cle6o2"),w(t,"role","button"),w(t,"tabindex","0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),c(o,s),c(o,a),c(n,l),c(n,f),c(f,p),c(p,y),c(p,b),c(p,E),c(f,k),c(f,x),_.m(x,null),c(x,C),L&&L.m(x,null),c(x,A),P&&P.m(x,null),$||(T=[v(a,"click",e[7]),v(y,"click",e[14]),v(E,"click",e[15]),v(n,"click",m(e[12])),v(n,"keydown",m(e[13])),v(t,"click",e[7]),v(t,"keydown",e[17])],$=!0)},p(e,t){4&t&&S(y,"active","extension"===e[2]),4&t&&S(E,"active","nsec"===e[2]),R===(R=I(e))&&_?_.p(e,t):(_.d(1),_=R(e),_&&(_.c(),_.m(x,C))),e[5]?L?L.p(e,t):(L=xh(e),L.c(),L.m(x,A)):L&&(L.d(1),L=null),e[6]?P?P.p(e,t):(P=Sh(e),P.c(),P.m(x,null)):P&&(P.d(1),P=null),2&t&&S(n,"dark-theme",e[1])},d(e){e&&d(t),_.d(),L&&L.d(),P&&P.d(),$=!1,r(T)}}}function Eh(e){let t,n,o,i,s,a,l,f,y,m,b=e[4]?"Logging in...":"Log in with nsec";return{c(){t=h("div"),n=h("p"),n.textContent="Enter your nsec (private key) to login. This\n will be stored securely in your browser.",o=g(),i=h("input"),s=g(),a=h("button"),l=p(b),w(n,"class","svelte-1cle6o2"),w(i,"type","password"),w(i,"placeholder","nsec1..."),i.disabled=e[4],w(i,"class","nsec-input svelte-1cle6o2"),w(a,"class","login-nsec-btn svelte-1cle6o2"),a.disabled=f=e[4]||!e[3].trim(),w(t,"class","nsec-login svelte-1cle6o2")},m(r,d){u(r,t,d),c(t,n),c(t,o),c(t,i),k(i,e[3]),c(t,s),c(t,a),c(a,l),y||(m=[v(i,"input",e[16]),v(a,"click",e[10])],y=!0)},p(e,t){16&t&&(i.disabled=e[4]),8&t&&i.value!==e[3]&&k(i,e[3]),16&t&&b!==(b=e[4]?"Logging in...":"Log in with nsec")&&E(l,b),24&t&&f!==(f=e[4]||!e[3].trim())&&(a.disabled=f)},d(e){e&&d(t),y=!1,r(m)}}}function kh(e){let t,n,r,o,i,s,a,l=e[4]?"Connecting...":"Log in using extension";return{c(){t=h("div"),n=h("p"),n.textContent="Login using a NIP-07 compatible browser\n extension like nos2x or Alby.",r=g(),o=h("button"),i=p(l),w(n,"class","svelte-1cle6o2"),w(o,"class","login-extension-btn svelte-1cle6o2"),o.disabled=e[4],w(t,"class","extension-login svelte-1cle6o2")},m(l,d){u(l,t,d),c(t,n),c(t,r),c(t,o),c(o,i),s||(a=v(o,"click",e[9]),s=!0)},p(e,t){16&t&&l!==(l=e[4]?"Connecting...":"Log in using extension")&&E(i,l),16&t&&(o.disabled=e[4])},d(e){e&&d(t),s=!1,a()}}}function xh(e){let t,n;return{c(){t=h("div"),n=p(e[5]),w(t,"class","message error-message svelte-1cle6o2")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t&&E(n,e[5])},d(e){e&&d(t)}}}function Sh(e){let t,n;return{c(){t=h("div"),n=p(e[6]),w(t,"class","message success-message svelte-1cle6o2")},m(e,r){u(e,t,r),c(t,n)},p(e,t){64&t&&E(n,e[6])},d(e){e&&d(t)}}}function Ch(t){let n,r,o,i=t[0]&&bh(t);return{c(){i&&i.c(),n=y()},m(e,s){i&&i.m(e,s),u(e,n,s),r||(o=v(wh,"keydown",t[11]),r=!0)},p(e,[t]){e[0]?i?i.p(e,t):(i=bh(e),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},i:e,o:e,d(e){i&&i.d(e),e&&d(n),r=!1,o()}}}function Ah(e,t,n){const r=T();let{showModal:o=!1}=t,{isDarkTheme:i=!1}=t,s="extension",a="",l=!1,c="",u="";function d(){n(0,o=!1),n(3,a=""),n(5,c=""),n(6,u=""),r("close")}function f(e){n(2,s=e),n(5,c=""),n(6,u="")}async function h(){n(4,l=!0),n(5,c=""),n(6,u="");try{if(!a.trim())throw new Error("Please enter your nsec");if(!(e=a.trim()).startsWith("nsec1")||(e.length<60||e.length>70))throw new Error('Invalid nsec format. Must start with "nsec1"');const t=Hd.fromKey(a.trim()),o=await t.getPublicKey();localStorage.setItem("nostr_auth_method","nsec"),localStorage.setItem("nostr_pubkey",o),localStorage.setItem("nostr_privkey",a.trim()),n(6,u="Successfully logged in with nsec!"),r("login",{method:"nsec",pubkey:o,privateKey:a.trim(),signer:t}),setTimeout(()=>{d()},1500)}catch(e){n(5,c=e.message)}finally{n(4,l=!1)}var e}return e.$$set=e=>{"showModal"in e&&n(0,o=e.showModal),"isDarkTheme"in e&&n(1,i=e.isDarkTheme)},[o,i,s,a,l,c,u,d,f,async function(){n(4,l=!0),n(5,c=""),n(6,u="");try{if(!window.nostr)throw new Error("No Nostr extension found. Please install a NIP-07 compatible extension like nos2x or Alby.");const e=await window.nostr.getPublicKey();e&&(localStorage.setItem("nostr_auth_method","extension"),localStorage.setItem("nostr_pubkey",e),n(6,u="Successfully logged in with extension!"),r("login",{method:"extension",pubkey:e,signer:window.nostr}),setTimeout(()=>{d()},1500))}catch(e){n(5,c=e.message)}finally{n(4,l=!1)}},h,function(e){"Escape"===e.key&&d(),"Enter"===e.key&&"nsec"===s&&h()},function(t){I.call(this,e,t)},function(t){I.call(this,e,t)},()=>f("extension"),()=>f("nsec"),function(){a=this.value,n(3,a)},e=>"Escape"===e.key&&d()]}class $h extends ee{constructor(e){super(),X(this,e,Ah,Ch,i,{showModal:0,isDarkTheme:1})}}function Th(e,t,n){const r=e.slice();return r[72]=t[n],r}function Ih(e,t,n){const r=e.slice();return r[75]=t[n],r}function Rh(e,t,n){const r=e.slice();return r[72]=t[n],r}function _h(e,t,n){const r=e.slice();return r[72]=t[n],r}function Lh(e,t,n){const r=e.slice();return r[72]=t[n],r}function Ph(e,t,n){const r=e.slice();return r[72]=t[n],r}function Oh(e,t,n){const r=e.slice();return r[72]=t[n],r}function Bh(e){let t,n,r;return{c(){t=h("div"),n=p(e[3]),w(t,"class",r="message "+e[4]+" svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,o){8&o[0]&&E(n,e[3]),16&o[0]&&r!==(r="message "+e[4]+" svelte-1y8wjwc")&&w(t,"class",r)},d(e){e&&d(t)}}}function jh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[5]&&e[5].length>0?Mh:Nh}let F=U(e),D=F(e);function q(e,t){return e[8]&&e[8].length>0?qh:Dh}let H=q(e),z=H(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Banned Pubkeys",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Ban Pubkey"),E=g(),x=h("div"),D.c(),S=g(),C=h("div"),A=h("h3"),A.textContent="Allowed Pubkeys",$=g(),T=h("div"),I=h("input"),R=g(),_=h("input"),L=g(),P=h("button"),O=p("Allow Pubkey"),B=g(),j=h("div"),z.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","Pubkey (64 hex chars)"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(A,"class","svelte-1y8wjwc"),w(I,"type","text"),w(I,"placeholder","Pubkey (64 hex chars)"),w(I,"class","svelte-1y8wjwc"),w(_,"type","text"),w(_,"placeholder","Reason (optional)"),w(_,"class","svelte-1y8wjwc"),P.disabled=e[2],w(P,"class","svelte-1y8wjwc"),w(T,"class","add-form svelte-1y8wjwc"),w(j,"class","list svelte-1y8wjwc"),w(C,"class","section svelte-1y8wjwc"),w(t,"class","pubkeys-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[6]),c(s,l),c(s,f),k(f,e[7]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),D.m(x,null),c(t,S),c(t,C),c(C,A),c(C,$),c(C,T),c(T,I),k(I,e[9]),c(T,R),c(T,_),k(_,e[10]),c(T,L),c(T,P),c(P,O),c(C,B),c(C,j),z.m(j,null),N||(M=[v(a,"input",e[43]),v(f,"input",e[44]),v(m,"click",e[25]),v(I,"input",e[45]),v(_,"input",e[46]),v(P,"click",e[26])],N=!0)},p(e,t){64&t[0]&&a.value!==e[6]&&k(a,e[6]),128&t[0]&&f.value!==e[7]&&k(f,e[7]),4&t[0]&&(m.disabled=e[2]),F===(F=U(e))&&D?D.p(e,t):(D.d(1),D=F(e),D&&(D.c(),D.m(x,null))),512&t[0]&&I.value!==e[9]&&k(I,e[9]),1024&t[0]&&_.value!==e[10]&&k(_,e[10]),4&t[0]&&(P.disabled=e[2]),H===(H=q(e))&&z?z.p(e,t):(z.d(1),z=H(e),z&&(z.c(),z.m(j,null)))},d(e){e&&d(t),D.d(),z.d(),N=!1,r(M)}}}function Nh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No banned pubkeys configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Mh(e){let t,n=e[5],r=[];for(let t=0;t<n.length;t+=1)r[t]=Fh(Oh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(32&o[0]){let i;for(n=e[5],i=0;i<n.length;i+=1){const s=Oh(e,n,i);r[i]?r[i].p(s,o):(r[i]=Fh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Uh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function Fh(e){let t,n,r,o,i,s=e[72].pubkey+"",a=e[72].reason&&Uh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","pubkey svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){32&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Uh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Dh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed pubkeys configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function qh(e){let t,n=e[8],r=[];for(let t=0;t<n.length;t+=1)r[t]=zh(Ph(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(256&o[0]){let i;for(n=e[8],i=0;i<n.length;i+=1){const s=Ph(e,n,i);r[i]?r[i].p(s,o):(r[i]=zh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Hh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){256&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function zh(e){let t,n,r,o,i,s=e[72].pubkey+"",a=e[72].reason&&Hh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","pubkey svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){256&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Hh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Kh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[11]&&e[11].length>0?Vh:Wh}let F=U(e),D=F(e);let q=function(e){return e[22]&&e[22].length>0?Qh:Gh}(e),H=q(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Banned Events",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Ban Event"),E=g(),x=h("div"),D.c(),S=g(),C=h("div"),A=h("h3"),A.textContent="Allowed Events",$=g(),T=h("div"),I=h("input"),R=g(),_=h("input"),L=g(),P=h("button"),O=p("Allow Event"),B=g(),j=h("div"),H.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","Event ID (64 hex chars)"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(A,"class","svelte-1y8wjwc"),w(I,"type","text"),w(I,"placeholder","Event ID (64 hex chars)"),w(I,"class","svelte-1y8wjwc"),w(_,"type","text"),w(_,"placeholder","Reason (optional)"),w(_,"class","svelte-1y8wjwc"),P.disabled=e[2],w(P,"class","svelte-1y8wjwc"),w(T,"class","add-form svelte-1y8wjwc"),w(j,"class","list svelte-1y8wjwc"),w(C,"class","section svelte-1y8wjwc"),w(t,"class","events-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[12]),c(s,l),c(s,f),k(f,e[13]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),D.m(x,null),c(t,S),c(t,C),c(C,A),c(C,$),c(C,T),c(T,I),k(I,e[14]),c(T,R),c(T,_),k(_,e[15]),c(T,L),c(T,P),c(P,O),c(C,B),c(C,j),H.m(j,null),N||(M=[v(a,"input",e[47]),v(f,"input",e[48]),v(m,"click",e[27]),v(I,"input",e[49]),v(_,"input",e[50]),v(P,"click",e[28])],N=!0)},p(e,t){4096&t[0]&&a.value!==e[12]&&k(a,e[12]),8192&t[0]&&f.value!==e[13]&&k(f,e[13]),4&t[0]&&(m.disabled=e[2]),F===(F=U(e))&&D?D.p(e,t):(D.d(1),D=F(e),D&&(D.c(),D.m(x,null))),16384&t[0]&&I.value!==e[14]&&k(I,e[14]),32768&t[0]&&_.value!==e[15]&&k(_,e[15]),4&t[0]&&(P.disabled=e[2]),H.p(e,t)},d(e){e&&d(t),D.d(),H.d(),N=!1,r(M)}}}function Wh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No banned events configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Vh(e){let t,n=e[11],r=[];for(let t=0;t<n.length;t+=1)r[t]=Zh(Lh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(2048&o[0]){let i;for(n=e[11],i=0;i<n.length;i+=1){const s=Lh(e,n,i);r[i]?r[i].p(s,o):(r[i]=Zh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Jh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){2048&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function Zh(e){let t,n,r,o,i,s=e[72].id+"",a=e[72].reason&&Jh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","event-id svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){2048&n[0]&&s!==(s=e[72].id+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Jh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Gh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed events configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Qh(e){let t,n=e[22],r=[];for(let t=0;t<n.length;t+=1)r[t]=Yh(_h(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(4194304&o[0]){let i;for(n=e[22],i=0;i<n.length;i+=1){const s=_h(e,n,i);r[i]?r[i].p(s,o):(r[i]=Yh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Yh(t){let n,r,o,i,s,a=t[72].id+"",l=t[72].reason&&function(t){let n,r,o=t[72].reason+"";return{c(){n=h("span"),r=p(o),w(n,"class","reason svelte-1y8wjwc")},m(e,t){u(e,n,t),c(n,r)},p:e,d(e){e&&d(n)}}}(t);return{c(){n=h("div"),r=h("span"),o=p(a),i=g(),l&&l.c(),s=g(),w(r,"class","event-id svelte-1y8wjwc"),w(n,"class","list-item svelte-1y8wjwc")},m(e,t){u(e,n,t),c(n,r),c(r,o),c(n,i),l&&l.m(n,null),c(n,s)},p(e,t){e[72].reason&&l.p(e,t)},d(e){e&&d(n),l&&l.d()}}}function Xh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C;function A(e,t){return e[16]&&e[16].length>0?tp:ep}let $=A(e),T=$(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Blocked IPs",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Block IP"),E=g(),x=h("div"),T.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","IP Address"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","ips-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[17]),c(s,l),c(s,f),k(f,e[18]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),T.m(x,null),S||(C=[v(a,"input",e[51]),v(f,"input",e[52]),v(m,"click",e[29])],S=!0)},p(e,t){131072&t[0]&&a.value!==e[17]&&k(a,e[17]),262144&t[0]&&f.value!==e[18]&&k(f,e[18]),4&t[0]&&(m.disabled=e[2]),$===($=A(e))&&T?T.p(e,t):(T.d(1),T=$(e),T&&(T.c(),T.m(x,null)))},d(e){e&&d(t),T.d(),S=!1,r(C)}}}function ep(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No blocked IPs configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function tp(e){let t,n=e[16],r=[];for(let t=0;t<n.length;t+=1)r[t]=rp(Rh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(65536&o[0]){let i;for(n=e[16],i=0;i<n.length;i+=1){const s=Rh(e,n,i);r[i]?r[i].p(s,o):(r[i]=rp(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function np(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){65536&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function rp(e){let t,n,r,o,i,s=e[72].ip+"",a=e[72].reason&&np(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","ip svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){65536&n[0]&&s!==(s=e[72].ip+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=np(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function op(e){let t,n,o,i,s,a,l,f,y,m,E,x,S;function C(e,t){return e[19]&&e[19].length>0?sp:ip}let A=C(e),$=A(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Allowed Event Kinds",i=g(),s=h("div"),a=h("input"),l=g(),f=h("button"),y=p("Allow Kind"),m=g(),E=h("div"),$.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","number"),w(a,"placeholder","Kind number"),w(a,"class","svelte-1y8wjwc"),f.disabled=e[2],w(f,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(E,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","kinds-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[20]),c(s,l),c(s,f),c(f,y),c(n,m),c(n,E),$.m(E,null),x||(S=[v(a,"input",e[53]),v(f,"click",e[30])],x=!0)},p(e,t){1048576&t[0]&&b(a.value)!==e[20]&&k(a,e[20]),4&t[0]&&(f.disabled=e[2]),A===(A=C(e))&&$?$.p(e,t):($.d(1),$=A(e),$&&($.c(),$.m(E,null)))},d(e){e&&d(t),$.d(),x=!1,r(S)}}}function ip(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed kinds configured. All kinds are\n allowed by default.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function sp(e){let t,n=e[19],r=[];for(let t=0;t<n.length;t+=1)r[t]=ap(Ih(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(524288&o[0]|1&o[1]){let i;for(n=e[19],i=0;i<n.length;i+=1){const s=Ih(e,n,i);r[i]?r[i].p(s,o):(r[i]=ap(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function ap(e){let t,n,r,o,i,s,a,l,f,y=e[75]+"";function m(){return e[54](e[75])}return{c(){t=h("div"),n=h("span"),r=p("Kind "),o=p(y),i=g(),s=h("button"),s.textContent="Remove",a=g(),w(n,"class","kind svelte-1y8wjwc"),w(s,"class","remove-btn svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(t,i),c(t,s),c(t,a),l||(f=v(s,"click",m),l=!0)},p(t,n){e=t,524288&n[0]&&y!==(y=e[75]+"")&&E(o,y)},d(e){e&&d(t),l=!1,f()}}}function lp(e){let t,n,r,o,i,s,a,l,f,y;function m(e,t){return e[21]&&e[21].length>0?up:cp}let b=m(e),E=b(e);return{c(){t=h("div"),n=h("div"),r=h("h3"),r.textContent="Events Needing Moderation",o=g(),i=h("button"),s=p("Refresh"),a=g(),l=h("div"),E.c(),w(r,"class","svelte-1y8wjwc"),i.disabled=e[2],w(l,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","moderation-section")},m(d,h){u(d,t,h),c(t,n),c(n,r),c(n,o),c(n,i),c(i,s),c(n,a),c(n,l),E.m(l,null),f||(y=v(i,"click",e[24]),f=!0)},p(e,t){4&t[0]&&(i.disabled=e[2]),b===(b=m(e))&&E?E.p(e,t):(E.d(1),E=b(e),E&&(E.c(),E.m(l,null)))},d(e){e&&d(t),E.d(),f=!1,y()}}}function cp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No events need moderation at this time.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function up(e){let t,n=e[21],r=[];for(let t=0;t<n.length;t+=1)r[t]=fp(Th(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(2097152&o[0]|12&o[1]){let i;for(n=e[21],i=0;i<n.length;i+=1){const s=Th(e,n,i);r[i]?r[i].p(s,o):(r[i]=fp(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function dp(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){2097152&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function fp(e){let t,n,o,i,s,a,l,f,y,m,b,k,x=e[72].id+"",S=e[72].reason&&dp(e);function C(){return e[55](e[72])}function A(){return e[56](e[72])}return{c(){t=h("div"),n=h("span"),o=p(x),i=g(),S&&S.c(),s=g(),a=h("div"),l=h("button"),l.textContent="Allow",f=g(),y=h("button"),y.textContent="Ban",m=g(),w(n,"class","event-id svelte-1y8wjwc"),w(l,"class","svelte-1y8wjwc"),w(y,"class","svelte-1y8wjwc"),w(a,"class","actions svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n),c(n,o),c(t,i),S&&S.m(t,null),c(t,s),c(t,a),c(a,l),c(a,f),c(a,y),c(t,m),b||(k=[v(l,"click",C),v(y,"click",A)],b=!0)},p(n,r){e=n,2097152&r[0]&&x!==(x=e[72].id+"")&&E(o,x),e[72].reason?S?S.p(e,r):(S=dp(e),S.c(),S.m(t,s)):S&&(S.d(1),S=null)},d(e){e&&d(t),S&&S.d(),b=!1,r(k)}}}function hp(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[2]?gp:pp}let F=U(e),D=F(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Relay Configuration",i=g(),s=h("div"),a=h("button"),l=p("🔄 Refresh from Relay Info"),f=g(),y=h("div"),m=h("div"),b=h("label"),b.textContent="Relay Name",E=g(),x=h("input"),S=g(),C=h("div"),A=h("label"),A.textContent="Relay Description",$=g(),T=h("textarea"),I=g(),R=h("div"),_=h("label"),_.textContent="Relay Icon URL",L=g(),P=h("input"),O=g(),B=h("div"),j=h("button"),D.c(),w(o,"class","svelte-1y8wjwc"),a.disabled=e[2],w(a,"class","refresh-btn svelte-1y8wjwc"),w(s,"class","config-actions svelte-1y8wjwc"),w(b,"for","relay-name"),w(b,"class","svelte-1y8wjwc"),w(x,"id","relay-name"),w(x,"type","text"),w(x,"placeholder","Enter relay name"),w(x,"class","svelte-1y8wjwc"),w(m,"class","form-group svelte-1y8wjwc"),w(A,"for","relay-description"),w(A,"class","svelte-1y8wjwc"),w(T,"id","relay-description"),w(T,"placeholder","Enter relay description"),w(T,"class","svelte-1y8wjwc"),w(C,"class","form-group svelte-1y8wjwc"),w(_,"for","relay-icon"),w(_,"class","svelte-1y8wjwc"),w(P,"id","relay-icon"),w(P,"type","url"),w(P,"placeholder","Enter icon URL"),w(P,"class","svelte-1y8wjwc"),w(R,"class","form-group svelte-1y8wjwc"),j.disabled=e[2],w(j,"class","update-all-btn svelte-1y8wjwc"),w(B,"class","config-update-section svelte-1y8wjwc"),w(y,"class","config-form svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","relay-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(n,f),c(n,y),c(y,m),c(m,b),c(m,E),c(m,x),k(x,e[0].relay_name),c(y,S),c(y,C),c(C,A),c(C,$),c(C,T),k(T,e[0].relay_description),c(y,I),c(y,R),c(R,_),c(R,L),c(R,P),k(P,e[0].relay_icon),c(y,O),c(y,B),c(B,j),D.m(j,null),N||(M=[v(a,"click",e[23]),v(x,"input",e[57]),v(T,"input",e[58]),v(P,"input",e[59]),v(j,"click",e[32])],N=!0)},p(e,t){4&t[0]&&(a.disabled=e[2]),1&t[0]&&x.value!==e[0].relay_name&&k(x,e[0].relay_name),1&t[0]&&k(T,e[0].relay_description),1&t[0]&&P.value!==e[0].relay_icon&&k(P,e[0].relay_icon),F!==(F=U(e))&&(D.d(1),D=F(e),D&&(D.c(),D.m(j,null))),4&t[0]&&(j.disabled=e[2])},d(e){e&&d(t),D.d(),N=!1,r(M)}}}function pp(e){let t;return{c(){t=p("💾 Update Configuration")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function gp(e){let t;return{c(){t=p("⏳ Updating...")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function yp(t){let n,o,i,s,a,l,f,y,m,b,E,k,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J=t[3]&&Bh(t),Z="pubkeys"===t[1]&&jh(t),G="events"===t[1]&&Kh(t),Q="ips"===t[1]&&Xh(t),Y="kinds"===t[1]&&op(t),X="moderation"===t[1]&&lp(t),ee="relay"===t[1]&&hp(t);return{c(){n=h("div"),o=h("div"),o.innerHTML='<h2 class="svelte-1y8wjwc">Managed ACL Configuration</h2> \n <p class="svelte-1y8wjwc">Configure access control using NIP-86 management API</p> \n <div class="owner-only-notice svelte-1y8wjwc"><strong>Owner Only:</strong> This interface is restricted to relay owners\n only.</div>',i=g(),J&&J.c(),s=g(),a=h("div"),l=h("button"),f=p("Pubkeys"),m=g(),b=h("button"),E=p("Events"),x=g(),S=h("button"),C=p("IPs"),$=g(),T=h("button"),I=p("Kinds"),_=g(),L=h("button"),P=p("Moderation"),B=g(),j=h("button"),N=p("Relay Config"),U=g(),F=h("div"),Z&&Z.c(),D=g(),G&&G.c(),q=g(),Q&&Q.c(),H=g(),Y&&Y.c(),z=g(),X&&X.c(),K=g(),ee&&ee.c(),w(o,"class","header svelte-1y8wjwc"),w(l,"class",y="tab "+("pubkeys"===t[1]?"active":"")+" svelte-1y8wjwc"),w(b,"class",k="tab "+("events"===t[1]?"active":"")+" svelte-1y8wjwc"),w(S,"class",A="tab "+("ips"===t[1]?"active":"")+" svelte-1y8wjwc"),w(T,"class",R="tab "+("kinds"===t[1]?"active":"")+" svelte-1y8wjwc"),w(L,"class",O="tab "+("moderation"===t[1]?"active":"")+" svelte-1y8wjwc"),w(j,"class",M="tab "+("relay"===t[1]?"active":"")+" svelte-1y8wjwc"),w(a,"class","tabs svelte-1y8wjwc"),w(F,"class","tab-content svelte-1y8wjwc")},m(e,r){u(e,n,r),c(n,o),c(n,i),J&&J.m(n,null),c(n,s),c(n,a),c(a,l),c(l,f),c(a,m),c(a,b),c(b,E),c(a,x),c(a,S),c(S,C),c(a,$),c(a,T),c(T,I),c(a,_),c(a,L),c(L,P),c(a,B),c(a,j),c(j,N),c(n,U),c(n,F),Z&&Z.m(F,null),c(F,D),G&&G.m(F,null),c(F,q),Q&&Q.m(F,null),c(F,H),Y&&Y.m(F,null),c(F,z),X&&X.m(F,null),c(F,K),ee&&ee.m(F,null),W||(V=[v(l,"click",t[37]),v(b,"click",t[38]),v(S,"click",t[39]),v(T,"click",t[40]),v(L,"click",t[41]),v(j,"click",t[42])],W=!0)},p(e,t){e[3]?J?J.p(e,t):(J=Bh(e),J.c(),J.m(n,s)):J&&(J.d(1),J=null),2&t[0]&&y!==(y="tab "+("pubkeys"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(l,"class",y),2&t[0]&&k!==(k="tab "+("events"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(b,"class",k),2&t[0]&&A!==(A="tab "+("ips"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(S,"class",A),2&t[0]&&R!==(R="tab "+("kinds"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(T,"class",R),2&t[0]&&O!==(O="tab "+("moderation"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(L,"class",O),2&t[0]&&M!==(M="tab "+("relay"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(j,"class",M),"pubkeys"===e[1]?Z?Z.p(e,t):(Z=jh(e),Z.c(),Z.m(F,D)):Z&&(Z.d(1),Z=null),"events"===e[1]?G?G.p(e,t):(G=Kh(e),G.c(),G.m(F,q)):G&&(G.d(1),G=null),"ips"===e[1]?Q?Q.p(e,t):(Q=Xh(e),Q.c(),Q.m(F,H)):Q&&(Q.d(1),Q=null),"kinds"===e[1]?Y?Y.p(e,t):(Y=op(e),Y.c(),Y.m(F,z)):Y&&(Y.d(1),Y=null),"moderation"===e[1]?X?X.p(e,t):(X=lp(e),X.c(),X.m(F,K)):X&&(X.d(1),X=null),"relay"===e[1]?ee?ee.p(e,t):(ee=hp(e),ee.c(),ee.m(F,null)):ee&&(ee.d(1),ee=null)},i:e,o:e,d(e){e&&d(n),J&&J.d(),Z&&Z.d(),G&&G.d(),Q&&Q.d(),Y&&Y.d(),X&&X.d(),ee&&ee.d(),W=!1,r(V)}}}function vp(e,t,n){let{userSigner:r}=t,{userPubkey:o}=t,i="pubkeys",s=!1,a="",l="info",c=[],u="",d="",f=[],h="",p="",g=[],y="",v="",m="",w="",E=[],k="",x="",S=[],C="",A=[],T={relay_name:"",relay_description:"",relay_icon:""};var I;async function R(){try{n(2,s=!0),console.log("Fetching relay info from /");const e=await fetch(window.location.origin+"/",{headers:{Accept:"application/nostr+json"}});if(console.log("Response status:",e.status),console.log("Response headers:",e.headers),e.ok){const t=await e.json();console.log("Raw relay info:",t),n(0,T={relay_name:t.name||"",relay_description:t.description||"",relay_icon:t.icon||""}),console.log("Updated relayConfig:",T),console.log("Loaded relay info:",t),n(3,a="Relay configuration loaded successfully"),n(4,l="success")}else console.error("Failed to fetch relay info, status:",e.status),n(3,a=`Failed to fetch relay info: ${e.status}`),n(4,l="error")}catch(e){console.error("Failed to fetch relay info:",e),n(3,a=`Failed to fetch relay info: ${e.message}`),n(4,l="error")}finally{n(2,s=!1)}}async function _(e,t=[]){try{n(2,s=!0),n(3,a="");const i={method:e,params:t},l=await async function(e,t){if(!r)throw new Error("No signer available for authentication. Please log in with a Nostr extension.");if(!o)throw new Error("No user pubkey available for authentication.");const n=window.location.origin+t,i={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",n],["method",e]],content:"",pubkey:o},s=await r.signEvent(i),a=JSON.stringify(s);return`Nostr ${btoa(a)}`}("POST","/api/nip86"),c=await fetch("/api/nip86",{method:"POST",headers:{"Content-Type":"application/nostr+json+rpc",Authorization:l},body:JSON.stringify(i)});if(!c.ok)throw new Error(`HTTP ${c.status}: ${c.statusText}`);const u=await c.json();if(u.error)throw new Error(u.error);return u.result}catch(e){throw console.error("NIP-86 API error:",e),n(3,a=e.message),n(4,l="error"),e}finally{n(2,s=!1)}}async function L(){try{n(5,c=await _("listbannedpubkeys"))}catch(e){console.error("Failed to load banned pubkeys:",e)}}async function P(){try{n(8,f=await _("listallowedpubkeys"))}catch(e){console.error("Failed to load allowed pubkeys:",e)}}async function O(){try{n(11,g=await _("listbannedevents"))}catch(e){console.error("Failed to load banned events:",e)}}async function B(){try{n(16,E=await _("listblockedips"))}catch(e){console.error("Failed to load blocked IPs:",e)}}async function j(){try{n(19,S=await _("listallowedkinds"))}catch(e){console.error("Failed to load allowed kinds:",e)}}async function N(){try{n(2,s=!0),n(21,A=await _("listeventsneedingmoderation")),console.log("Loaded events needing moderation:",A)}catch(e){console.error("Failed to load events needing moderation:",e),n(3,a=`Failed to load moderation events: ${e.message}`),n(4,l="error"),n(21,A=[])}finally{n(2,s=!1)}}async function M(e){try{await _("disallowkind",[e]),n(3,a="Kind disallowed successfully"),n(4,l="success"),await j()}catch(e){console.error("Failed to disallow kind:",e)}}async function U(e){try{await _("allowevent",[e,"Approved from moderation queue"]),n(3,a="Event allowed successfully"),n(4,l="success"),await N()}catch(e){console.error("Failed to allow event from moderation:",e)}}async function F(e){try{await _("banevent",[e,"Banned from moderation queue"]),n(3,a="Event banned successfully"),n(4,l="success"),await N()}catch(e){console.error("Failed to ban event from moderation:",e)}}I=()=>{setTimeout(()=>{R()},100)},$().$$.on_mount.push(I),async function(){await Promise.all([L(),P(),O(),B(),j()])}();return e.$$set=e=>{"userSigner"in e&&n(35,r=e.userSigner),"userPubkey"in e&&n(36,o=e.userPubkey)},e.$$.update=()=>{1&e.$$.dirty[0]&&console.log("relayConfig changed:",T)},[T,i,s,a,l,c,u,d,f,h,p,g,y,v,m,w,E,k,x,S,C,A,[],R,N,async function(){if(u)try{await _("banpubkey",[u,d]),n(3,a="Pubkey banned successfully"),n(4,l="success"),n(6,u=""),n(7,d=""),await L()}catch(e){console.error("Failed to ban pubkey:",e)}},async function(){if(h)try{await _("allowpubkey",[h,p]),n(3,a="Pubkey allowed successfully"),n(4,l="success"),n(9,h=""),n(10,p=""),await P()}catch(e){console.error("Failed to allow pubkey:",e)}},async function(){if(y)try{await _("banevent",[y,v]),n(3,a="Event banned successfully"),n(4,l="success"),n(12,y=""),n(13,v=""),await O()}catch(e){console.error("Failed to ban event:",e)}},async function(){if(m)try{await _("allowevent",[m,w]),n(3,a="Event allowed successfully"),n(4,l="success"),n(14,m=""),n(15,w="")}catch(e){console.error("Failed to allow event:",e)}},async function(){if(k)try{await _("blockip",[k,x]),n(3,a="IP blocked successfully"),n(4,l="success"),n(17,k=""),n(18,x=""),await B()}catch(e){console.error("Failed to block IP:",e)}},async function(){if(!C)return;const e=parseInt(C);if(isNaN(e))return n(3,a="Invalid kind number"),void n(4,l="error");try{await _("allowkind",[e]),n(3,a="Kind allowed successfully"),n(4,l="success"),n(20,C=""),await j()}catch(e){console.error("Failed to allow kind:",e)}},M,async function(){try{n(2,s=!0),n(3,a="");const e=[];if(T.relay_name&&e.push(_("changerelayname",[T.relay_name])),T.relay_description&&e.push(_("changerelaydescription",[T.relay_description])),T.relay_icon&&e.push(_("changerelayicon",[T.relay_icon])),0===e.length)return n(3,a="No changes to update"),void n(4,l="info");await Promise.all(e),n(3,a="Relay configuration updated successfully"),n(4,l="success"),await R()}catch(e){console.error("Failed to update relay configuration:",e),n(3,a=`Failed to update relay configuration: ${e.message}`),n(4,l="error")}finally{n(2,s=!1)}},U,F,r,o,()=>n(1,i="pubkeys"),()=>n(1,i="events"),()=>n(1,i="ips"),()=>n(1,i="kinds"),()=>{n(1,i="moderation"),A&&0!==A.length||N()},()=>n(1,i="relay"),function(){u=this.value,n(6,u)},function(){d=this.value,n(7,d)},function(){h=this.value,n(9,h)},function(){p=this.value,n(10,p)},function(){y=this.value,n(12,y)},function(){v=this.value,n(13,v)},function(){m=this.value,n(14,m)},function(){w=this.value,n(15,w)},function(){k=this.value,n(17,k)},function(){x=this.value,n(18,x)},function(){C=b(this.value),n(20,C)},e=>M(e),e=>U(e.id),e=>F(e.id),function(){T.relay_name=this.value,n(0,T)},function(){T.relay_description=this.value,n(0,T)},function(){T.relay_icon=this.value,n(0,T)}]}class mp extends ee{constructor(e){super(),X(this,e,vp,yp,i,{userSigner:35,userPubkey:36},null,[-1,-1,-1])}}function wp(e){let t,n,r,o=e[3]&&e[4]&&Ep(e);return{c(){t=h("div"),n=h("span"),r=p("ORLY? dashboard\n "),o&&o.c(),w(n,"class","app-title svelte-1mrm2k6"),w(t,"class","header-title svelte-1mrm2k6")},m(e,i){u(e,t,i),c(t,n),c(n,r),o&&o.m(n,null)},p(e,t){e[3]&&e[4]?o?o.p(e,t):(o=Ep(e),o.c(),o.m(n,null)):o&&(o.d(1),o=null)},d(e){e&&d(t),o&&o.d()}}}function bp(e){let t,n,o,i;return{c(){t=h("div"),n=h("input"),w(n,"type","text"),w(n,"class","search-input svelte-1mrm2k6"),w(n,"placeholder","Search..."),w(t,"class","search-input-container svelte-1mrm2k6")},m(r,s){u(r,t,s),c(t,n),k(n,e[0]),o||(i=[v(n,"input",e[13]),v(n,"keydown",e[8])],o=!0)},p(e,t){1&t&&n.value!==e[0]&&k(n,e[0])},d(e){e&&d(t),o=!1,r(i)}}}function Ep(e){let t,n;return{c(){t=h("span"),n=p(e[5]),w(t,"class","permission-badge svelte-1mrm2k6")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t&&E(n,e[5])},d(e){e&&d(t)}}}function kp(t){let n,r,o;return{c(){n=h("button"),n.textContent="Log in",w(n,"class","login-btn svelte-1mrm2k6")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[12]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function xp(e){let t,n,r,o,i,s,a=(e[6]?.name||e[7].slice(0,8)+"...")+"";function l(e,t){return e[6]?.picture?Cp:Sp}let f=l(e),y=f(e);return{c(){t=h("button"),y.c(),n=g(),r=h("span"),o=p(a),w(r,"class","user-name svelte-1mrm2k6"),w(t,"class","user-profile-btn svelte-1mrm2k6")},m(a,l){u(a,t,l),y.m(t,null),c(t,n),c(t,r),c(r,o),i||(s=v(t,"click",e[11]),i=!0)},p(e,r){f===(f=l(e))&&y?y.p(e,r):(y.d(1),y=f(e),y&&(y.c(),y.m(t,n))),192&r&&a!==(a=(e[6]?.name||e[7].slice(0,8)+"...")+"")&&E(o,a)},d(e){e&&d(t),y.d(),i=!1,s()}}}function Sp(t){let n;return{c(){n=h("div"),n.textContent="👤",w(n,"class","user-avatar-placeholder svelte-1mrm2k6")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Cp(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[6].picture)||w(t,"src",n),w(t,"alt","User avatar"),w(t,"class","user-avatar svelte-1mrm2k6")},m(e,n){u(e,t,n)},p(e,r){64&r&&!a(t.src,n=e[6].picture)&&w(t,"src",n)},d(e){e&&d(t)}}}function Ap(t){let n,o,i,s,l,f,y,m,b,k,x,C,A,$,T=t[1]?"☀️":"🌙";function I(e,t){return e[2]?bp:wp}let R=I(t),_=R(t);function L(e,t){return e[3]?xp:kp}let P=L(t),O=P(t);return{c(){n=h("header"),o=h("div"),i=h("img"),l=g(),_.c(),f=g(),y=h("div"),m=h("button"),m.textContent="🔍",b=g(),k=h("button"),x=p(T),C=g(),O.c(),a(i.src,s="/orly.png")||w(i,"src","/orly.png"),w(i,"alt","ORLY Logo"),w(i,"class","logo svelte-1mrm2k6"),w(m,"class","search-btn svelte-1mrm2k6"),w(k,"class","theme-toggle-btn svelte-1mrm2k6"),w(y,"class","header-buttons svelte-1mrm2k6"),w(o,"class","header-content svelte-1mrm2k6"),w(n,"class","main-header svelte-1mrm2k6"),S(n,"dark-theme",t[1])},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,l),_.m(o,null),c(o,f),c(o,y),c(y,m),c(y,b),c(y,k),c(k,x),c(y,C),O.m(y,null),A||($=[v(m,"click",t[9]),v(k,"click",t[10])],A=!0)},p(e,[t]){R===(R=I(e))&&_?_.p(e,t):(_.d(1),_=R(e),_&&(_.c(),_.m(o,f))),2&t&&T!==(T=e[1]?"☀️":"🌙")&&E(x,T),P===(P=L(e))&&O?O.p(e,t):(O.d(1),O=P(e),O&&(O.c(),O.m(y,null))),2&t&&S(n,"dark-theme",e[1])},i:e,o:e,d(e){e&&d(n),_.d(),O.d(),A=!1,r($)}}}function $p(e,t,n){let{isDarkTheme:r=!1}=t,{isSearchMode:o=!1}=t,{searchQuery:i=""}=t,{isLoggedIn:s=!1}=t,{userRole:a=""}=t,{currentEffectiveRole:l=""}=t,{userProfile:c=null}=t,{userPubkey:u=""}=t;const d=T();return e.$$set=e=>{"isDarkTheme"in e&&n(1,r=e.isDarkTheme),"isSearchMode"in e&&n(2,o=e.isSearchMode),"searchQuery"in e&&n(0,i=e.searchQuery),"isLoggedIn"in e&&n(3,s=e.isLoggedIn),"userRole"in e&&n(4,a=e.userRole),"currentEffectiveRole"in e&&n(5,l=e.currentEffectiveRole),"userProfile"in e&&n(6,c=e.userProfile),"userPubkey"in e&&n(7,u=e.userPubkey)},[i,r,o,s,a,l,c,u,function(e){d("searchKeydown",e)},function(){d("toggleSearchMode")},function(){d("toggleTheme")},function(){d("openSettingsDrawer")},function(){d("openLoginModal")},function(){i=this.value,n(0,i)}]}class Tp extends ee{constructor(e){super(),X(this,e,$p,Ap,i,{isDarkTheme:1,isSearchMode:2,searchQuery:0,isLoggedIn:3,userRole:4,currentEffectiveRole:5,userProfile:6,userPubkey:7})}}function Ip(e,t,n){const r=e.slice();return r[9]=t[n],r}function Rp(e){let t,n,o;function i(){return e[5](e[9])}function s(...t){return e[6](e[9],...t)}return{c(){t=h("span"),t.textContent="✕",w(t,"class","tab-close-icon svelte-1tm0fmz"),w(t,"role","button"),w(t,"tabindex","0")},m(e,r){u(e,t,r),n||(o=[v(t,"click",m(i)),v(t,"keydown",s)],n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r(o)}}}function _p(e){let t,n,r,o,i,s,a,l,f,y,m=e[9].icon+"",b=e[9].label+"",k=e[9].isSearchTab&&Rp(e);function x(){return e[7](e[9])}return{c(){t=h("button"),n=h("span"),r=p(m),o=g(),i=h("span"),s=p(b),a=g(),k&&k.c(),l=g(),w(n,"class","tab-icon svelte-1tm0fmz"),w(i,"class","tab-label svelte-1tm0fmz"),w(t,"class","tab svelte-1tm0fmz"),S(t,"active",e[2]===e[9].id)},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(i,s),c(t,a),k&&k.m(t,null),c(t,l),f||(y=v(t,"click",x),f=!0)},p(n,o){e=n,2&o&&m!==(m=e[9].icon+"")&&E(r,m),2&o&&b!==(b=e[9].label+"")&&E(s,b),e[9].isSearchTab?k?k.p(e,o):(k=Rp(e),k.c(),k.m(t,l)):k&&(k.d(1),k=null),6&o&&S(t,"active",e[2]===e[9].id)},d(e){e&&d(t),k&&k.d(),f=!1,y()}}}function Lp(t){let n,r,o,i=t[1],s=[];for(let e=0;e<i.length;e+=1)s[e]=_p(Ip(t,i,e));return{c(){n=h("aside"),r=h("div"),o=h("div");for(let e=0;e<s.length;e+=1)s[e].c();w(o,"class","tabs svelte-1tm0fmz"),w(r,"class","sidebar-content svelte-1tm0fmz"),w(n,"class","sidebar svelte-1tm0fmz"),S(n,"dark-theme",t[0])},m(e,t){u(e,n,t),c(n,r),c(r,o);for(let e=0;e<s.length;e+=1)s[e]&&s[e].m(o,null)},p(e,[t]){if(30&t){let n;for(i=e[1],n=0;n<i.length;n+=1){const r=Ip(e,i,n);s[n]?s[n].p(r,t):(s[n]=_p(r),s[n].c(),s[n].m(o,null))}for(;n<s.length;n+=1)s[n].d(1);s.length=i.length}1&t&&S(n,"dark-theme",e[0])},i:e,o:e,d(e){e&&d(n),f(s,e)}}}function Pp(e,t,n){let{isDarkTheme:r=!1}=t,{tabs:o=[]}=t,{selectedTab:i=""}=t;const s=T();function a(e){s("selectTab",e)}function l(e){s("closeSearchTab",e)}return e.$$set=e=>{"isDarkTheme"in e&&n(0,r=e.isDarkTheme),"tabs"in e&&n(1,o=e.tabs),"selectedTab"in e&&n(2,i=e.selectedTab)},[r,o,i,a,l,e=>l(e.id),(e,t)=>"Enter"===t.key&&l(e.id),e=>a(e.id)]}class Op extends ee{constructor(e){super(),X(this,e,Pp,Lp,i,{isDarkTheme:0,tabs:1,selectedTab:2})}}function Bp(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in to access export functionality.",o=g(),i=h("button"),i.textContent="Log In",w(r,"class","svelte-1qkvicp"),w(i,"class","login-btn svelte-1qkvicp"),w(n,"class","login-prompt svelte-1qkvicp")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[4]),s=!0)},p:e,d(e){e&&d(n),s=!1,a()}}}function jp(e){let t,n,r,o,i,s,a,l,f,p,m=("admin"===e[1]||"owner"===e[1])&&Np(e);return{c(){t=h("div"),n=h("h3"),n.textContent="Export My Events",r=g(),o=h("p"),o.textContent="Download your personal events as a JSONL file.",i=g(),s=h("button"),s.textContent="📤 Export My Events",a=g(),m&&m.c(),l=y(),w(n,"class","svelte-1qkvicp"),w(o,"class","svelte-1qkvicp"),w(s,"class","export-btn svelte-1qkvicp"),w(t,"class","export-section svelte-1qkvicp")},m(d,h){u(d,t,h),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s),u(d,a,h),m&&m.m(d,h),u(d,l,h),f||(p=v(s,"click",e[2]),f=!0)},p(e,t){"admin"===e[1]||"owner"===e[1]?m?m.p(e,t):(m=Np(e),m.c(),m.m(l.parentNode,l)):m&&(m.d(1),m=null)},d(e){e&&d(t),e&&d(a),m&&m.d(e),e&&d(l),f=!1,p()}}}function Np(t){let n,r,o,i,s,a,l,f;return{c(){n=h("div"),r=h("h3"),r.textContent="Export All Events",o=g(),i=h("p"),i.textContent="Download the complete database as a JSONL file. This includes\n all events from all users.",s=g(),a=h("button"),a.textContent="📤 Export All Events",w(r,"class","svelte-1qkvicp"),w(i,"class","svelte-1qkvicp"),w(a,"class","export-btn svelte-1qkvicp"),w(n,"class","export-section svelte-1qkvicp")},m(e,d){u(e,n,d),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),l||(f=v(a,"click",t[3]),l=!0)},p:e,d(e){e&&d(n),l=!1,f()}}}function Mp(t){let n;function r(e,t){return e[0]?jp:Bp}let o=r(t),i=o(t);return{c(){i.c(),n=y()},m(e,t){i.m(e,t),u(e,n,t)},p(e,[t]){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n.parentNode,n)))},i:e,o:e,d(e){i.d(e),e&&d(n)}}}function Up(e,t,n){let{isLoggedIn:r=!1}=t,{currentEffectiveRole:o=""}=t;const i=T();return e.$$set=e=>{"isLoggedIn"in e&&n(0,r=e.isLoggedIn),"currentEffectiveRole"in e&&n(1,o=e.currentEffectiveRole)},[r,o,function(){i("exportMyEvents")},function(){i("exportAllEvents")},function(){i("openLoginModal")}]}class Fp extends ee{constructor(e){super(),X(this,e,Up,Mp,i,{isLoggedIn:0,currentEffectiveRole:1})}}function Dp(t){let n,r,o,i,s,a,l,f;return{c(){n=h("div"),r=h("h3"),r.textContent="Import Events",o=g(),i=h("p"),i.textContent="Please log in to access import functionality.",s=g(),a=h("button"),a.textContent="Log In",w(r,"class","recovery-header svelte-1nvu2m9"),w(i,"class","recovery-description svelte-1nvu2m9"),w(a,"class","login-btn svelte-1nvu2m9"),w(n,"class","login-prompt svelte-1nvu2m9")},m(e,d){u(e,n,d),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),l||(f=v(a,"click",t[5]),l=!0)},p:e,d(e){e&&d(n),l=!1,f()}}}function qp(t){let n;return{c(){n=h("div"),n.innerHTML='<h3 class="recovery-header svelte-1nvu2m9">Import Events</h3> \n <p class="recovery-description svelte-1nvu2m9">❌ Admin or owner permission required for import functionality.</p>',w(n,"class","permission-denied svelte-1nvu2m9")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Hp(e){let t,n,o,i,s,a,l,f,y,m,b,E;return{c(){t=h("h3"),t.textContent="Import Events",n=g(),o=h("p"),o.textContent="Upload a JSONL file to import events into the database.",i=g(),s=h("div"),a=h("input"),l=g(),f=h("button"),y=p("Import Events"),w(t,"class","svelte-1nvu2m9"),w(o,"class","svelte-1nvu2m9"),w(a,"type","file"),w(a,"id","import-file"),w(a,"accept",".jsonl,.txt"),w(a,"class","svelte-1nvu2m9"),w(f,"class","import-btn svelte-1nvu2m9"),f.disabled=m=!e[2],w(s,"class","recovery-controls-card svelte-1nvu2m9")},m(r,d){u(r,t,d),u(r,n,d),u(r,o,d),u(r,i,d),u(r,s,d),c(s,a),c(s,l),c(s,f),c(f,y),b||(E=[v(a,"change",e[3]),v(f,"click",e[4])],b=!0)},p(e,t){4&t&&m!==(m=!e[2])&&(f.disabled=m)},d(e){e&&d(t),e&&d(n),e&&d(o),e&&d(i),e&&d(s),b=!1,r(E)}}}function zp(t){let n;function r(e,t){return!e[0]||"admin"!==e[1]&&"owner"!==e[1]?e[0]?qp:Dp:Hp}let o=r(t),i=o(t);return{c(){n=h("div"),i.c(),w(n,"class","import-section svelte-1nvu2m9")},m(e,t){u(e,n,t),i.m(n,null)},p(e,[t]){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n,null)))},i:e,o:e,d(e){e&&d(n),i.d()}}}function Kp(e,t,n){let{isLoggedIn:r=!1}=t,{currentEffectiveRole:o=""}=t,{selectedFile:i=null}=t;const s=T();return e.$$set=e=>{"isLoggedIn"in e&&n(0,r=e.isLoggedIn),"currentEffectiveRole"in e&&n(1,o=e.currentEffectiveRole),"selectedFile"in e&&n(2,i=e.selectedFile)},[r,o,i,function(e){s("fileSelect",e)},function(){s("importEvents")},function(){s("openLoginModal")}]}class Wp extends ee{constructor(e){super(),X(this,e,Kp,zp,i,{isLoggedIn:0,currentEffectiveRole:1,selectedFile:2})}}function Vp(e,t,n){const r=e.slice();return r[22]=t[n],r}function Jp(e,t,n){const r=e.slice();return r[25]=t[n],r}function Zp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>❌ Read, write, admin, or owner permission required to view all\n events.</p>",w(n,"class","permission-denied svelte-kvggf0")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Gp(e){let t,n,r,o;function i(e,t){return e[4].length>0?Yp:e[6]?void 0:Qp}let s=i(e),a=s&&s(e),l=e[6]&&sg();return{c(){t=h("div"),a&&a.c(),n=g(),l&&l.c(),w(t,"class","events-view-content svelte-kvggf0")},m(i,s){u(i,t,s),a&&a.m(t,null),c(t,n),l&&l.m(t,null),r||(o=v(t,"scroll",e[7]),r=!0)},p(e,r){s===(s=i(e))&&a?a.p(e,r):(a&&a.d(1),a=s&&s(e),a&&(a.c(),a.m(t,n))),e[6]?l||(l=sg(),l.c(),l.m(t,null)):l&&(l.d(1),l=null)},d(e){e&&d(t),a&&a.d(),l&&l.d(),r=!1,o()}}}function Qp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No events found.</p>",w(n,"class","no-events svelte-kvggf0")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Yp(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=ig(Vp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(1852&o){let i;for(n=e[4],i=0;i<n.length;i+=1){const s=Vp(e,n,i);r[i]?r[i].p(s,o):(r[i]=ig(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Xp(e){let t,n,r=pg(e[22].content)+"";return{c(){t=h("div"),n=p(r),w(t,"class","event-content-single-line svelte-kvggf0")},m(e,r){u(e,t,r),c(t,n)},p(e,t){16&t&&r!==(r=pg(e[22].content)+"")&&E(n,r)},d(e){e&&d(t)}}}function eg(e){let t,n,r,o=e[22].tags&&e[22].tags.length>0&&tg(e);return{c(){t=h("div"),n=h("span"),n.textContent="🗑️ Delete Event",r=g(),o&&o.c(),w(n,"class","delete-event-label svelte-kvggf0"),w(t,"class","delete-event-info svelte-kvggf0")},m(e,i){u(e,t,i),c(t,n),c(t,r),o&&o.m(t,null)},p(e,n){e[22].tags&&e[22].tags.length>0?o?o.p(e,n):(o=tg(e),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(e){e&&d(t),o&&o.d()}}}function tg(e){let t,n=e[22].tags.filter(gg),r=[];for(let t=0;t<n.length;t+=1)r[t]=ng(Jp(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","delete-targets svelte-kvggf0")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(16&o){let i;for(n=e[22].tags.filter(gg),i=0;i<n.length;i+=1){const s=Jp(e,n,i);r[i]?r[i].p(s,o):(r[i]=ng(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function ng(e){let t,n,r,o,i,s=e[25][1].slice(0,8)+"",a=e[25][1].slice(-8)+"";return{c(){t=h("span"),n=p("Target: "),r=p(s),o=p("..."),i=p(a),w(t,"class","delete-target svelte-kvggf0")},m(e,s){u(e,t,s),c(t,n),c(t,r),c(t,o),c(t,i)},p(e,t){16&t&&s!==(s=e[25][1].slice(0,8)+"")&&E(r,s),16&t&&a!==(a=e[25][1].slice(-8)+"")&&E(i,a)},d(e){e&&d(t)}}}function rg(e){let t,n,r;function o(){return e[13](e[22])}return{c(){t=h("button"),t.textContent="🗑️",w(t,"class","delete-btn svelte-kvggf0")},m(e,i){u(e,t,i),n||(r=v(t,"click",m(o)),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function og(e){let t,n,r,o,i,s,a,l,f=JSON.stringify(e[22],null,2)+"";function y(...t){return e[16](e[22],...t)}return{c(){t=h("div"),n=h("div"),r=h("pre"),o=p(f),i=g(),s=h("button"),s.textContent="📋",w(r,"class","event-json svelte-kvggf0"),w(s,"class","copy-json-btn svelte-kvggf0"),w(s,"title","Copy minified JSON to clipboard"),w(n,"class","json-container svelte-kvggf0"),w(t,"class","events-view-details svelte-kvggf0")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),a||(l=v(s,"click",m(y)),a=!0)},p(t,n){e=t,16&n&&f!==(f=JSON.stringify(e[22],null,2)+"")&&E(o,f)},d(e){e&&d(t),a=!1,l()}}}function ig(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,C,A,$,T,I,R,_,L,P,O,B,j=dg(e[22].pubkey)+"",N=e[22].kind+"",M=fg(e[22].kind)+"",U=hg(e[22].created_at)+"",F=e[5].has(e[22].id);function D(e,t){return 5===e[22].kind?eg:Xp}let q=D(e),H=q(e),z=5!==e[22].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[22].pubkey&&e[22].pubkey===e[3])&&rg(e);function K(){return e[14](e[22])}function W(...t){return e[15](e[22],...t)}let V=F&&og(e);return{c(){t=h("div"),n=h("div"),o=h("div"),o.innerHTML='<div class="avatar-placeholder svelte-kvggf0">👤</div>',i=g(),s=h("div"),a=h("div"),l=p(j),f=g(),y=h("div"),m=h("span"),b=p(N),k=g(),x=h("span"),C=p(M),A=g(),$=h("div"),T=h("div"),I=p(U),R=g(),H.c(),_=g(),z&&z.c(),L=g(),V&&V.c(),P=g(),w(o,"class","events-view-avatar svelte-kvggf0"),w(a,"class","events-view-author svelte-kvggf0"),w(m,"class","kind-number svelte-kvggf0"),S(m,"delete-event",5===e[22].kind),w(x,"class","kind-name svelte-kvggf0"),w(y,"class","events-view-kind svelte-kvggf0"),w(s,"class","events-view-info svelte-kvggf0"),w(T,"class","event-timestamp svelte-kvggf0"),w($,"class","events-view-content svelte-kvggf0"),w(n,"class","events-view-row svelte-kvggf0"),w(n,"role","button"),w(n,"tabindex","0"),w(t,"class","events-view-item svelte-kvggf0"),S(t,"expanded",e[5].has(e[22].id))},m(e,r){u(e,t,r),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,f),c(s,y),c(y,m),c(m,b),c(y,k),c(y,x),c(x,C),c(n,A),c(n,$),c($,T),c(T,I),c($,R),H.m($,null),c(n,_),z&&z.m(n,null),c(t,L),V&&V.m(t,null),c(t,P),O||(B=[v(n,"click",K),v(n,"keydown",W)],O=!0)},p(r,o){e=r,16&o&&j!==(j=dg(e[22].pubkey)+"")&&E(l,j),16&o&&N!==(N=e[22].kind+"")&&E(b,N),16&o&&S(m,"delete-event",5===e[22].kind),16&o&&M!==(M=fg(e[22].kind)+"")&&E(C,M),16&o&&U!==(U=hg(e[22].created_at)+"")&&E(I,U),q===(q=D(e))&&H?H.p(e,o):(H.d(1),H=q(e),H&&(H.c(),H.m($,null))),5!==e[22].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[22].pubkey&&e[22].pubkey===e[3])?z?z.p(e,o):(z=rg(e),z.c(),z.m(n,null)):z&&(z.d(1),z=null),48&o&&(F=e[5].has(e[22].id)),F?V?V.p(e,o):(V=og(e),V.c(),V.m(t,P)):V&&(V.d(1),V=null),48&o&&S(t,"expanded",e[5].has(e[22].id))},d(e){e&&d(t),H.d(),z&&z.d(),V&&V.d(),O=!1,r(B)}}}function sg(e){let t;return{c(){t=h("div"),t.innerHTML='<div class="spinner svelte-kvggf0"></div> \n <p>Loading events...</p>',w(t,"class","loading-events svelte-kvggf0")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function ag(e){let t,n,o,i,s,a,l,f,y,m,b,E,k,x,S,C;function A(e,t){return e[6]?cg:lg}let $=A(e),T=$(e);return{c(){t=h("div"),n=h("div"),o=h("label"),i=h("input"),s=g(),a=h("span"),l=g(),f=h("span"),f.textContent="Only show my events",y=g(),m=h("div"),b=h("button"),E=p("🔄 Load More"),k=g(),x=h("button"),T.c(),w(i,"type","checkbox"),w(i,"class","svelte-kvggf0"),w(a,"class","toggle-slider svelte-kvggf0"),w(f,"class","toggle-label svelte-kvggf0"),w(o,"class","toggle-container svelte-kvggf0"),w(n,"class","events-view-toggle svelte-kvggf0"),w(b,"class","refresh-btn svelte-kvggf0"),b.disabled=e[6],w(x,"class","reload-btn svelte-kvggf0"),x.disabled=e[6],w(m,"class","events-view-buttons svelte-kvggf0"),w(t,"class","events-view-header svelte-kvggf0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),i.checked=e[0],c(o,s),c(o,a),c(o,l),c(o,f),c(t,y),c(t,m),c(m,b),c(b,E),c(m,k),c(m,x),T.m(x,null),S||(C=[v(i,"change",e[17]),v(i,"change",e[18]),v(b,"click",e[19]),v(x,"click",e[20])],S=!0)},p(e,t){1&t&&(i.checked=e[0]),64&t&&(b.disabled=e[6]),$!==($=A(e))&&(T.d(1),T=$(e),T&&(T.c(),T.m(x,null))),64&t&&(x.disabled=e[6])},d(e){e&&d(t),T.d(),S=!1,r(C)}}}function lg(e){let t;return{c(){t=p("🔄")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function cg(e){let t;return{c(){t=h("div"),w(t,"class","spinner svelte-kvggf0")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function ug(t){let n,r;function o(e,t){return!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?Zp:Gp}let i=o(t),s=i(t),a=t[1]&&("read"===t[2]||"write"===t[2]||"admin"===t[2]||"owner"===t[2])&&ag(t);return{c(){n=h("div"),s.c(),r=g(),a&&a.c(),w(n,"class","events-view-container svelte-kvggf0")},m(e,t){u(e,n,t),s.m(n,null),c(n,r),a&&a.m(n,null)},p(e,[t]){i===(i=o(e))&&s?s.p(e,t):(s.d(1),s=i(e),s&&(s.c(),s.m(n,r))),!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?a&&(a.d(1),a=null):a?a.p(e,t):(a=ag(e),a.c(),a.m(n,null))},i:e,o:e,d(e){e&&d(n),s.d(),a&&a.d()}}}function dg(e){return e?e.slice(0,8)+"..."+e.slice(-8):""}function fg(e){return{0:"Profile",1:"Text Note",2:"Recommend Relay",3:"Contacts",4:"Encrypted DM",5:"Delete",6:"Repost",7:"Reaction",8:"Badge Award",16:"Generic Repost",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1984:"Reporting",9734:"Zap Request",9735:"Zap",1e4:"Mute List",10001:"Pin List",10002:"Relay List",22242:"Client Auth",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Categorized People",30001:"Categorized Bookmarks",30008:"Profile Badges",30009:"Badge Definition",30017:"Create or update a stall",30018:"Create or update a product",30023:"Long-form Content",30024:"Draft Long-form Content",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30402:"Classified Listing",30403:"Draft Classified Listing",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler recommendation",31990:"Handler information",34550:"Community Definition"}[e]||`Kind ${e}`}function hg(e){return new Date(1e3*e).toLocaleString()}function pg(e){return e?e.length>100?e.slice(0,100)+"...":e:""}const gg=e=>"e"===e[0];function yg(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:o=""}=t,{userPubkey:i=""}=t,{filteredEvents:s=[]}=t,{expandedEvents:a=new Set}=t,{isLoadingEvents:l=!1}=t,{showOnlyMyEvents:c=!1}=t;const u=T();function d(e){u("toggleEventExpansion",e)}function f(e){u("deleteEvent",e)}function h(e,t){u("copyEventToClipboard",{event:e,e:t})}function p(){u("toggleChange")}function g(e,t){u("loadAllEvents",{refresh:e,authors:t})}return e.$$set=e=>{"isLoggedIn"in e&&n(1,r=e.isLoggedIn),"userRole"in e&&n(2,o=e.userRole),"userPubkey"in e&&n(3,i=e.userPubkey),"filteredEvents"in e&&n(4,s=e.filteredEvents),"expandedEvents"in e&&n(5,a=e.expandedEvents),"isLoadingEvents"in e&&n(6,l=e.isLoadingEvents),"showOnlyMyEvents"in e&&n(0,c=e.showOnlyMyEvents)},[c,r,o,i,s,a,l,function(e){u("scroll",e)},d,f,h,p,g,e=>f(e.id),e=>d(e.id),(e,t)=>"Enter"===t.key&&d(e.id),(e,t)=>h(e,t),function(){c=this.checked,n(0,c)},()=>p(),()=>{g(!1,c&&i?[i]:null)},()=>{g(!0,c&&i?[i]:null)}]}class vg extends ee{constructor(e){super(),X(this,e,yg,ug,i,{isLoggedIn:1,userRole:2,userPubkey:3,filteredEvents:4,expandedEvents:5,isLoadingEvents:6,showOnlyMyEvents:0})}}function mg(t){let n,o,i,s,a,l,f,p,y,m,b,E;return{c(){n=h("div"),o=h("div"),i=h("button"),i.textContent="Reformat",s=g(),a=h("button"),a.textContent="Sign",l=g(),f=h("button"),f.textContent="Publish",p=g(),y=h("div"),m=h("textarea"),w(i,"class","compose-btn reformat-btn svelte-mkdcsl"),w(a,"class","compose-btn sign-btn svelte-mkdcsl"),w(f,"class","compose-btn publish-btn svelte-mkdcsl"),w(o,"class","compose-header svelte-mkdcsl"),w(m,"class","compose-textarea svelte-mkdcsl"),w(m,"placeholder","Enter your Nostr event JSON here..."),w(m,"spellcheck","false"),w(y,"class","compose-editor svelte-mkdcsl"),w(n,"class","compose-view svelte-mkdcsl")},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,s),c(o,a),c(o,l),c(o,f),c(n,p),c(n,y),c(y,m),k(m,t[0]),b||(E=[v(i,"click",t[1]),v(a,"click",t[2]),v(f,"click",t[3]),v(m,"input",t[4])],b=!0)},p(e,[t]){1&t&&k(m,e[0])},i:e,o:e,d(e){e&&d(n),b=!1,r(E)}}}function wg(e,t,n){let{composeEventJson:r=""}=t;const o=T();return e.$$set=e=>{"composeEventJson"in e&&n(0,r=e.composeEventJson)},[r,function(){o("reformatJson")},function(){o("signEvent")},function(){o("publishEvent")},function(){r=this.value,n(0,r)}]}class bg extends ee{constructor(e){super(),X(this,e,wg,mg,i,{composeEventJson:0})}}function Eg(e,t,n){const r=e.slice();return r[23]=t[n],r}function kg(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in to access sprocket management.",o=g(),i=h("button"),i.textContent="Log In",w(r,"class","svelte-fiaj1r"),w(i,"class","login-btn svelte-fiaj1r"),w(n,"class","login-prompt svelte-fiaj1r")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[18]),s=!0)},p:e,d(e){e&&d(n),s=!1,a()}}}function xg(e){let t,n,r,o,i,s,a,l,f,y=(e[2]||"none")+"";return{c(){t=h("div"),n=h("p"),n.textContent="❌ Owner permission required for sprocket management.",r=g(),o=h("p"),o.innerHTML='To enable sprocket functionality, set the <code class="svelte-fiaj1r">ORLY_OWNERS</code> environment variable with your npub when starting the relay.',i=g(),s=h("p"),a=p("Current user role: "),l=h("strong"),f=p(y),w(n,"class","svelte-fiaj1r"),w(o,"class","svelte-fiaj1r"),w(s,"class","svelte-fiaj1r"),w(t,"class","permission-denied svelte-fiaj1r")},m(e,d){u(e,t,d),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s),c(s,a),c(s,l),c(l,f)},p(e,t){4&t&&y!==(y=(e[2]||"none")+"")&&E(f,y)},d(e){e&&d(t)}}}function Sg(e){let t,n,o,i,s,a,l,y,m,b,x,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J,Z,G,Q,Y,X,ee,te,ne,re,oe,ie,se,ae,le,ce,ue,de,fe,he,pe,ge,ye=e[3]?.is_running?"🟢 Running":"🔴 Stopped",ve=e[3]?.script_exists?"✅ Exists":"❌ Not found",me=e[3]?.pid&&Cg(e),we=e[6]&&Ag(e),be=e[8],Ee=[];for(let t=0;t<be.length;t+=1)Ee[t]=Ig(Eg(e,be,t));return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Script Editor",i=g(),s=h("div"),a=h("button"),l=p("🔄 Restart"),y=g(),m=h("button"),b=p("🗑️ Delete Script"),C=g(),A=h("div"),$=h("h4"),$.textContent="Upload Script",T=g(),I=h("div"),R=h("input"),_=g(),L=h("button"),P=p("📤 Upload & Update"),B=g(),j=h("div"),N=h("div"),M=h("span"),M.textContent="Status:",U=g(),F=h("span"),D=p(ye),q=g(),me&&me.c(),H=g(),z=h("div"),K=h("span"),K.textContent="Script:",W=g(),V=h("span"),J=p(ve),Z=g(),G=h("div"),Q=h("textarea"),Y=g(),X=h("div"),ee=h("button"),te=p("💾 Save & Update"),ne=g(),re=h("button"),oe=p("📥 Load Current"),ie=g(),we&&we.c(),se=g(),ae=h("div"),le=h("h3"),le.textContent="Script Versions",ce=g(),ue=h("div");for(let e=0;e<Ee.length;e+=1)Ee[e].c();de=g(),fe=h("button"),he=p("🔄 Refresh Versions"),w(o,"class","svelte-fiaj1r"),w(a,"class","sprocket-btn restart-btn svelte-fiaj1r"),a.disabled=e[4],w(m,"class","sprocket-btn delete-btn svelte-fiaj1r"),m.disabled=x=e[4]||!e[3]?.script_exists,w(s,"class","sprocket-controls svelte-fiaj1r"),w(n,"class","sprocket-header svelte-fiaj1r"),w($,"class","svelte-fiaj1r"),w(R,"type","file"),w(R,"id","sprocket-upload-file"),w(R,"accept",".sh,.bash"),R.disabled=e[4],w(R,"class","svelte-fiaj1r"),w(L,"class","sprocket-btn upload-btn svelte-fiaj1r"),L.disabled=O=e[4]||!e[5],w(I,"class","upload-controls svelte-fiaj1r"),w(A,"class","sprocket-upload-section svelte-fiaj1r"),w(M,"class","status-label svelte-fiaj1r"),w(F,"class","status-value svelte-fiaj1r"),S(F,"running",e[3]?.is_running),w(N,"class","status-item svelte-fiaj1r"),w(K,"class","status-label svelte-fiaj1r"),w(V,"class","status-value svelte-fiaj1r"),w(z,"class","status-item svelte-fiaj1r"),w(j,"class","sprocket-status svelte-fiaj1r"),w(Q,"class","script-editor svelte-fiaj1r"),w(Q,"placeholder","#!/bin/bash # Enter your sprocket script here..."),Q.disabled=e[4],w(G,"class","script-editor-container svelte-fiaj1r"),w(ee,"class","sprocket-btn save-btn svelte-fiaj1r"),ee.disabled=e[4],w(re,"class","sprocket-btn load-btn svelte-fiaj1r"),re.disabled=e[4],w(X,"class","script-actions svelte-fiaj1r"),w(t,"class","sprocket-section svelte-fiaj1r"),w(ue,"class","versions-list svelte-fiaj1r"),w(fe,"class","sprocket-btn refresh-btn svelte-fiaj1r"),fe.disabled=e[4],w(ae,"class","sprocket-section svelte-fiaj1r")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,y),c(s,m),c(m,b),c(t,C),c(t,A),c(A,$),c(A,T),c(A,I),c(I,R),c(I,_),c(I,L),c(L,P),c(t,B),c(t,j),c(j,N),c(N,M),c(N,U),c(N,F),c(F,D),c(j,q),me&&me.m(j,null),c(j,H),c(j,z),c(z,K),c(z,W),c(z,V),c(V,J),c(t,Z),c(t,G),c(G,Q),k(Q,e[0]),c(t,Y),c(t,X),c(X,ee),c(ee,te),c(X,ne),c(X,re),c(re,oe),c(t,ie),we&&we.m(t,null),u(r,se,d),u(r,ae,d),c(ae,le),c(ae,ce),c(ae,ue);for(let e=0;e<Ee.length;e+=1)Ee[e]&&Ee[e].m(ue,null);c(ae,de),c(ae,fe),c(fe,he),pe||(ge=[v(a,"click",e[9]),v(m,"click",e[10]),v(R,"change",e[11]),v(L,"click",e[12]),v(Q,"input",e[19]),v(ee,"click",e[13]),v(re,"click",e[14]),v(fe,"click",e[15])],pe=!0)},p(e,n){if(16&n&&(a.disabled=e[4]),24&n&&x!==(x=e[4]||!e[3]?.script_exists)&&(m.disabled=x),16&n&&(R.disabled=e[4]),48&n&&O!==(O=e[4]||!e[5])&&(L.disabled=O),8&n&&ye!==(ye=e[3]?.is_running?"🟢 Running":"🔴 Stopped")&&E(D,ye),8&n&&S(F,"running",e[3]?.is_running),e[3]?.pid?me?me.p(e,n):(me=Cg(e),me.c(),me.m(j,H)):me&&(me.d(1),me=null),8&n&&ve!==(ve=e[3]?.script_exists?"✅ Exists":"❌ Not found")&&E(J,ve),16&n&&(Q.disabled=e[4]),1&n&&k(Q,e[0]),16&n&&(ee.disabled=e[4]),16&n&&(re.disabled=e[4]),e[6]?we?we.p(e,n):(we=Ag(e),we.c(),we.m(t,null)):we&&(we.d(1),we=null),196880&n){let t;for(be=e[8],t=0;t<be.length;t+=1){const r=Eg(e,be,t);Ee[t]?Ee[t].p(r,n):(Ee[t]=Ig(r),Ee[t].c(),Ee[t].m(ue,null))}for(;t<Ee.length;t+=1)Ee[t].d(1);Ee.length=be.length}16&n&&(fe.disabled=e[4])},d(e){e&&d(t),me&&me.d(),we&&we.d(),e&&d(se),e&&d(ae),f(Ee,e),pe=!1,r(ge)}}}function Cg(e){let t,n,r,o,i,s=e[3].pid+"";return{c(){t=h("div"),n=h("span"),n.textContent="PID:",r=g(),o=h("span"),i=p(s),w(n,"class","status-label svelte-fiaj1r"),w(o,"class","status-value svelte-fiaj1r"),w(t,"class","status-item svelte-fiaj1r")},m(e,s){u(e,t,s),c(t,n),c(t,r),c(t,o),c(o,i)},p(e,t){8&t&&s!==(s=e[3].pid+"")&&E(i,s)},d(e){e&&d(t)}}}function Ag(e){let t,n;return{c(){t=h("div"),n=p(e[6]),w(t,"class","sprocket-message svelte-fiaj1r"),S(t,"error","error"===e[7])},m(e,r){u(e,t,r),c(t,n)},p(e,r){64&r&&E(n,e[6]),128&r&&S(t,"error","error"===e[7])},d(e){e&&d(t)}}}function $g(e){let t;return{c(){t=h("span"),t.textContent="Current",w(t,"class","current-badge svelte-fiaj1r")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Tg(e){let t,n,r,o;function i(){return e[21](e[23])}return{c(){t=h("button"),n=p("🗑️ Delete"),w(t,"class","version-btn delete-btn svelte-fiaj1r"),t.disabled=e[4]},m(e,s){u(e,t,s),c(t,n),r||(o=v(t,"click",i),r=!0)},p(n,r){e=n,16&r&&(t.disabled=e[4])},d(e){e&&d(t),r=!1,o()}}}function Ig(e){let t,n,r,o,i,s,a,l,f,y,m,b,k,x,C,A,$=e[23].name+"",T=new Date(e[23].modified).toLocaleString()+"",I=e[23].is_current&&$g();function R(){return e[20](e[23])}let _=!e[23].is_current&&Tg(e);return{c(){t=h("div"),n=h("div"),r=h("div"),o=p($),i=g(),s=h("div"),a=p(T),l=g(),I&&I.c(),f=g(),y=h("div"),m=h("button"),b=p("📥 Load"),k=g(),_&&_.c(),x=g(),w(r,"class","version-name svelte-fiaj1r"),w(s,"class","version-date svelte-fiaj1r"),w(n,"class","version-info svelte-fiaj1r"),w(m,"class","version-btn load-btn svelte-fiaj1r"),m.disabled=e[4],w(y,"class","version-actions svelte-fiaj1r"),w(t,"class","version-item svelte-fiaj1r"),S(t,"current",e[23].is_current)},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),c(s,a),c(s,l),I&&I.m(s,null),c(t,f),c(t,y),c(y,m),c(m,b),c(y,k),_&&_.m(y,null),c(t,x),C||(A=v(m,"click",R),C=!0)},p(n,r){e=n,256&r&&$!==($=e[23].name+"")&&E(o,$),256&r&&T!==(T=new Date(e[23].modified).toLocaleString()+"")&&E(a,T),e[23].is_current?I||(I=$g(),I.c(),I.m(s,null)):I&&(I.d(1),I=null),16&r&&(m.disabled=e[4]),e[23].is_current?_&&(_.d(1),_=null):_?_.p(e,r):(_=Tg(e),_.c(),_.m(y,null)),256&r&&S(t,"current",e[23].is_current)},d(e){e&&d(t),I&&I.d(),_&&_.d(),C=!1,A()}}}function Rg(t){let n,r,o;function i(e,t){return e[1]&&"owner"===e[2]?Sg:e[1]?xg:kg}let s=i(t),a=s(t);return{c(){n=h("div"),r=h("h2"),r.textContent="Sprocket Script Management",o=g(),a.c(),w(r,"class","svelte-fiaj1r"),w(n,"class","sprocket-view svelte-fiaj1r")},m(e,t){u(e,n,t),c(n,r),c(n,o),a.m(n,null)},p(e,[t]){s===(s=i(e))&&a?a.p(e,t):(a.d(1),a=s(e),a&&(a.c(),a.m(n,null)))},i:e,o:e,d(e){e&&d(n),a.d()}}}function _g(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:o=""}=t,{sprocketStatus:i=null}=t,{isLoadingSprocket:s=!1}=t,{sprocketUploadFile:a=null}=t,{sprocketScript:l=""}=t,{sprocketMessage:c=""}=t,{sprocketMessageType:u=""}=t,{sprocketVersions:d=[]}=t;const f=T();function h(e){f("loadVersion",e)}function p(e){f("deleteVersion",e)}return e.$$set=e=>{"isLoggedIn"in e&&n(1,r=e.isLoggedIn),"userRole"in e&&n(2,o=e.userRole),"sprocketStatus"in e&&n(3,i=e.sprocketStatus),"isLoadingSprocket"in e&&n(4,s=e.isLoadingSprocket),"sprocketUploadFile"in e&&n(5,a=e.sprocketUploadFile),"sprocketScript"in e&&n(0,l=e.sprocketScript),"sprocketMessage"in e&&n(6,c=e.sprocketMessage),"sprocketMessageType"in e&&n(7,u=e.sprocketMessageType),"sprocketVersions"in e&&n(8,d=e.sprocketVersions)},[l,r,o,i,s,a,c,u,d,function(){f("restartSprocket")},function(){f("deleteSprocket")},function(e){f("sprocketFileSelect",e)},function(){f("uploadSprocketScript")},function(){f("saveSprocket")},function(){f("loadSprocket")},function(){f("loadVersions")},h,p,function(){f("openLoginModal")},function(){l=this.value,n(0,l)},e=>h(e),e=>p(e.name)]}class Lg extends ee{constructor(e){super(),X(this,e,_g,Rg,i,{isLoggedIn:1,userRole:2,sprocketStatus:3,isLoadingSprocket:4,sprocketUploadFile:5,sprocketScript:0,sprocketMessage:6,sprocketMessageType:7,sprocketVersions:8})}}const Pg={0:"Profile Metadata",1:"Text Note",2:"Recommend Relay",3:"Contacts",4:"Encrypted DM",5:"Delete Request",6:"Repost",7:"Reaction",8:"Badge Award",16:"Generic Repost",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1063:"File Metadata",1311:"Live Chat Message",1984:"Reporting",1985:"Label",9734:"Zap Request",9735:"Zap Receipt",1e4:"Mute List",10001:"Pin List",10002:"Relay List Metadata",10003:"Bookmark List",10004:"Communities List",10005:"Public Chats List",10006:"Blocked Relays List",10007:"Search Relays List",10009:"User Groups",10015:"Interests List",10030:"User Emoji List",13194:"Wallet Info",22242:"Client Auth",23194:"Wallet Request",23195:"Wallet Response",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Categorized People List",30001:"Categorized Bookmarks",30002:"Categorized Relay List",30003:"Bookmark Sets",30004:"Curation Sets",30005:"Video Sets",30008:"Profile Badges",30009:"Badge Definition",30015:"Interest Sets",30017:"Create/Update Stall",30018:"Create/Update Product",30019:"Marketplace UI/UX",30020:"Product Sold As Auction",30023:"Long-form Content",30024:"Draft Long-form Content",30030:"Emoji Sets",30063:"Release Artifact Sets",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30388:"Slide Set",30402:"Classified Listing",30403:"Draft Classified Listing",30617:"Repository Announcement",30618:"Repository State Announcement",30818:"Wiki Article",30819:"Redirects",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler Recommendation",31990:"Handler Information",34550:"Community Definition",34551:"Community Post Approval"};function Og(e,t=null){if(!e||"string"!=typeof e)return!1;return!!/^[0-9a-fA-F]+$/.test(e)&&(!t||e.length===t)}function Bg(e){const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}T${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function jg(e){return Math.floor(new Date(e).getTime()/1e3)}function Ng({searchText:e=null,kinds:t=[],authors:n=[],ids:r=[],tags:o=[],since:i=null,until:s=null,limit:a=null}){const l={};return e&&e.trim()&&(l.search=e.trim()),t&&t.length>0&&(l.kinds=t),n&&n.length>0&&(l.authors=n),r&&r.length>0&&(l.ids=r),o&&o.length>0&&o.forEach(e=>{if(e.name&&e.value){const t=`#${e.name}`;l[t]||(l[t]=[]),l[t].push(e.value)}}),i&&(l.since=i),s&&(l.until=s),a&&a>0&&(l.limit=a),l}function Mg(e,t,n){const r=e.slice();return r[52]=t[n],r[54]=n,r}function Ug(e,t,n){const r=e.slice();return r[55]=t[n],r}function Fg(e,t,n){const r=e.slice();return r[58]=t[n],r}function Dg(e,t,n){const r=e.slice();return r[61]=t[n],r}function qg(e,t,n){const r=e.slice();return r[61]=t[n].kind,r[64]=t[n].name,r}function Hg(e){let t,n,r,o,i,s,a=e[17],l=[];for(let t=0;t<a.length;t+=1)l[t]=zg(qg(e,a,t));return{c(){t=h("div"),n=h("input"),r=g(),o=h("div");for(let e=0;e<l.length;e+=1)l[e].c();w(n,"type","text"),w(n,"placeholder","Search kinds..."),w(n,"class","filter-input kind-search svelte-13qtr87"),w(o,"class","kinds-list svelte-13qtr87"),w(t,"class","kinds-picker svelte-13qtr87")},m(a,d){u(a,t,d),c(t,n),k(n,e[8]),c(t,r),c(t,o);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(o,null);i||(s=v(n,"input",e[35]),i=!0)},p(e,t){if(256&t[0]&&n.value!==e[8]&&k(n,e[8]),393218&t[0]){let n;for(a=e[17],n=0;n<a.length;n+=1){const r=qg(e,a,n);l[n]?l[n].p(r,t):(l[n]=zg(r),l[n].c(),l[n].m(o,null))}for(;n<l.length;n+=1)l[n].d(1);l.length=a.length}},d(e){e&&d(t),f(l,e),i=!1,s()}}}function zg(e){let t,n,r,o,i,s,a,l,f,y,m,b,k=e[61]+"",x=e[64]+"";function S(){return e[36](e[61])}return{c(){t=h("label"),n=h("input"),o=g(),i=h("span"),s=p(k),a=g(),l=h("span"),f=p(x),y=g(),w(n,"type","checkbox"),n.checked=r=e[1].includes(e[61]),w(n,"class","svelte-13qtr87"),w(i,"class","kind-number svelte-13qtr87"),w(l,"class","kind-name svelte-13qtr87"),w(t,"class","kind-checkbox svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n),c(t,o),c(t,i),c(i,s),c(t,a),c(t,l),c(l,f),c(t,y),m||(b=v(n,"change",S),m=!0)},p(t,o){e=t,131074&o[0]&&r!==(r=e[1].includes(e[61]))&&(n.checked=r),131072&o[0]&&k!==(k=e[61]+"")&&E(s,k),131072&o[0]&&x!==(x=e[64]+"")&&E(f,x)},d(e){e&&d(t),m=!1,b()}}}function Kg(e){let t,n=e[1],r=[];for(let t=0;t<n.length;t+=1)r[t]=Wg(Dg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","chips-container svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(524290&o[0]){let i;for(n=e[1],i=0;i<n.length;i+=1){const s=Dg(e,n,i);r[i]?r[i].p(s,o):(r[i]=Wg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Wg(e){let t,n,r,o,i,s,a,l,f,y,m=e[61]+"",b=(Pg[e[61]]||`Kind ${e[61]}`)+"";function k(){return e[37](e[61])}return{c(){t=h("div"),n=h("span"),r=p(m),o=p(": "),i=p(b),s=g(),a=h("button"),a.textContent="×",l=g(),w(n,"class","chip-text svelte-13qtr87"),w(a,"class","chip-remove svelte-13qtr87"),w(t,"class","chip svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(n,i),c(t,s),c(t,a),c(t,l),f||(y=v(a,"click",k),f=!0)},p(t,n){e=t,2&n[0]&&m!==(m=e[61]+"")&&E(r,m),2&n[0]&&b!==(b=(Pg[e[61]]||`Kind ${e[61]}`)+"")&&E(i,b)},d(e){e&&d(t),f=!1,y()}}}function Vg(e){let t,n;return{c(){t=h("div"),n=p(e[14]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){16384&t[0]&&E(n,e[14])},d(e){e&&d(t)}}}function Jg(e){let t,n=e[2],r=[];for(let t=0;t<n.length;t+=1)r[t]=Zg(Fg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(2097156&o[0]){let i;for(n=e[2],i=0;i<n.length;i+=1){const s=Fg(e,n,i);r[i]?r[i].p(s,o):(r[i]=Zg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Zg(e){let t,n,r,o,i,s,a,l,f=e[58]+"";function y(){return e[40](e[58])}return{c(){t=h("div"),n=h("span"),r=p(f),o=g(),i=h("button"),i.textContent="×",s=g(),w(n,"class","list-item-text svelte-13qtr87"),w(i,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(t,s),a||(l=v(i,"click",y),a=!0)},p(t,n){e=t,4&n[0]&&f!==(f=e[58]+"")&&E(r,f)},d(e){e&&d(t),a=!1,l()}}}function Gg(e){let t,n;return{c(){t=h("div"),n=p(e[15]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32768&t[0]&&E(n,e[15])},d(e){e&&d(t)}}}function Qg(e){let t,n=e[3],r=[];for(let t=0;t<n.length;t+=1)r[t]=Yg(Ug(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(8388616&o[0]){let i;for(n=e[3],i=0;i<n.length;i+=1){const s=Ug(e,n,i);r[i]?r[i].p(s,o):(r[i]=Yg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Yg(e){let t,n,r,o,i,s,a,l,f=e[55]+"";function y(){return e[43](e[55])}return{c(){t=h("div"),n=h("span"),r=p(f),o=g(),i=h("button"),i.textContent="×",s=g(),w(n,"class","list-item-text svelte-13qtr87"),w(i,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(t,s),a||(l=v(i,"click",y),a=!0)},p(t,n){e=t,8&n[0]&&f!==(f=e[55]+"")&&E(r,f)},d(e){e&&d(t),a=!1,l()}}}function Xg(e){let t,n;return{c(){t=h("div"),n=p(e[16]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){65536&t[0]&&E(n,e[16])},d(e){e&&d(t)}}}function ey(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=ty(Mg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(33554448&o[0]){let i;for(n=e[4],i=0;i<n.length;i+=1){const s=Mg(e,n,i);r[i]?r[i].p(s,o):(r[i]=ty(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function ty(e){let t,n,r,o,i,s,a,l,f,y,m,b=e[52].name+"",k=e[52].value+"";function x(){return e[47](e[54])}return{c(){t=h("div"),n=h("span"),r=p("#"),o=p(b),i=p(": "),s=p(k),a=g(),l=h("button"),l.textContent="×",f=g(),w(n,"class","list-item-text svelte-13qtr87"),w(l,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(n,i),c(n,s),c(t,a),c(t,l),c(t,f),y||(m=v(l,"click",x),y=!0)},p(t,n){e=t,16&n[0]&&b!==(b=e[52].name+"")&&E(o,b),16&n[0]&&k!==(k=e[52].value+"")&&E(s,k)},d(e){e&&d(t),y=!1,m()}}}function ny(t){let n,r,o;return{c(){n=h("button"),n.textContent="×",w(n,"class","clear-timestamp-btn svelte-13qtr87")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[48]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function ry(t){let n,r,o;return{c(){n=h("button"),n.textContent="×",w(n,"class","clear-timestamp-btn svelte-13qtr87")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[49]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function oy(t){let n,o,i,s,a,l,f,y,m,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J,Z,G,Q,Y,X,ee,te,ne,re,oe,ie,se,ae,le,ce,ue,de,fe,he,pe,ge,ye,ve,me,we,be,Ee,ke,xe,Se,Ce,Ae,$e,Te,Ie,Re,_e,Le,Pe,Oe,Be=t[9]?"▼":"▶",je=t[1].length+"",Ne=t[9]&&Hg(t),Me=t[1].length>0&&Kg(t),Ue=t[14]&&Vg(t),Fe=t[2].length>0&&Jg(t),De=t[15]&&Gg(t),qe=t[3].length>0&&Qg(t),He=t[16]&&Xg(t),ze=t[4].length>0&&ey(t),Ke=t[5]&&ny(t),We=t[6]&&ry(t);return{c(){n=h("div"),o=h("div"),i=h("label"),i.textContent="Search Text (NIP-50)",s=g(),a=h("input"),l=g(),f=h("div"),y=h("label"),y.textContent="Event Kinds",m=g(),x=h("button"),S=p(Be),C=p(" Select Kinds ("),A=p(je),$=p(" selected)"),T=g(),Ne&&Ne.c(),I=g(),Me&&Me.c(),R=g(),_=h("div"),L=h("label"),L.textContent="Authors (Pubkeys)",P=g(),O=h("div"),B=h("input"),j=g(),N=h("button"),N.textContent="Add",M=g(),Ue&&Ue.c(),U=g(),Fe&&Fe.c(),F=g(),D=h("div"),q=h("label"),q.textContent="Event IDs",H=g(),z=h("div"),K=h("input"),W=g(),V=h("button"),V.textContent="Add",J=g(),De&&De.c(),Z=g(),qe&&qe.c(),G=g(),Q=h("div"),Y=h("label"),Y.textContent="Tags (e.g., #e, #p, #a)",X=g(),ee=h("div"),te=h("span"),te.textContent="#",ne=g(),re=h("input"),oe=g(),ie=h("input"),se=g(),ae=h("button"),ae.textContent="Add",le=g(),He&&He.c(),ce=g(),ze&&ze.c(),ue=g(),de=h("div"),fe=h("div"),he=h("label"),he.textContent="Since",pe=g(),ge=h("input"),ye=g(),Ke&&Ke.c(),ve=g(),me=h("div"),we=h("label"),we.textContent="Until",be=g(),Ee=h("input"),ke=g(),We&&We.c(),xe=g(),Se=h("div"),Ce=h("label"),Ce.textContent="Limit (optional)",Ae=g(),$e=h("input"),Te=g(),Ie=h("div"),Re=h("button"),Re.textContent="🔍 Apply Filters",_e=g(),Le=h("button"),Le.textContent="🧹 Clear All",w(i,"for","search-text"),w(i,"class","svelte-13qtr87"),w(a,"id","search-text"),w(a,"type","text"),w(a,"placeholder","Search events..."),w(a,"class","filter-input svelte-13qtr87"),w(o,"class","filter-section svelte-13qtr87"),w(y,"class","svelte-13qtr87"),w(x,"class","picker-toggle-btn svelte-13qtr87"),w(f,"class","filter-section svelte-13qtr87"),w(L,"class","svelte-13qtr87"),w(B,"type","text"),w(B,"placeholder","64 character hex pubkey..."),w(B,"class","filter-input svelte-13qtr87"),w(B,"maxlength","64"),w(N,"class","add-btn svelte-13qtr87"),w(O,"class","input-group svelte-13qtr87"),w(_,"class","filter-section svelte-13qtr87"),w(q,"class","svelte-13qtr87"),w(K,"type","text"),w(K,"placeholder","64 character hex event ID..."),w(K,"class","filter-input svelte-13qtr87"),w(K,"maxlength","64"),w(V,"class","add-btn svelte-13qtr87"),w(z,"class","input-group svelte-13qtr87"),w(D,"class","filter-section svelte-13qtr87"),w(Y,"class","svelte-13qtr87"),w(te,"class","hash-prefix svelte-13qtr87"),w(re,"type","text"),w(re,"placeholder","Tag"),w(re,"class","filter-input tag-name-input svelte-13qtr87"),w(re,"maxlength","1"),w(ie,"type","text"),w(ie,"placeholder","Value..."),w(ie,"class","filter-input tag-value-input svelte-13qtr87"),w(ae,"class","add-btn svelte-13qtr87"),w(ee,"class","tag-input-group svelte-13qtr87"),w(Q,"class","filter-section svelte-13qtr87"),w(he,"for","since-timestamp"),w(he,"class","svelte-13qtr87"),w(ge,"id","since-timestamp"),w(ge,"type","datetime-local"),ge.value=t[28](),w(ge,"class","filter-input svelte-13qtr87"),w(fe,"class","timestamp-field svelte-13qtr87"),w(we,"for","until-timestamp"),w(we,"class","svelte-13qtr87"),w(Ee,"id","until-timestamp"),w(Ee,"type","datetime-local"),Ee.value=t[29](),w(Ee,"class","filter-input svelte-13qtr87"),w(me,"class","timestamp-field svelte-13qtr87"),w(de,"class","filter-section timestamps-section svelte-13qtr87"),w(Ce,"for","limit"),w(Ce,"class","svelte-13qtr87"),w($e,"id","limit"),w($e,"type","number"),w($e,"placeholder","Max events to return"),w($e,"class","filter-input svelte-13qtr87"),w($e,"min","1"),w(Se,"class","filter-section svelte-13qtr87"),w(Re,"class","apply-btn svelte-13qtr87"),w(Le,"class","clear-btn svelte-13qtr87"),w(Ie,"class","filter-actions svelte-13qtr87"),w(n,"class","filter-builder svelte-13qtr87")},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,s),c(o,a),k(a,t[0]),c(n,l),c(n,f),c(f,y),c(f,m),c(f,x),c(x,S),c(x,C),c(x,A),c(x,$),c(f,T),Ne&&Ne.m(f,null),c(f,I),Me&&Me.m(f,null),c(n,R),c(n,_),c(_,L),c(_,P),c(_,O),c(O,B),k(B,t[10]),c(O,j),c(O,N),c(_,M),Ue&&Ue.m(_,null),c(_,U),Fe&&Fe.m(_,null),c(n,F),c(n,D),c(D,q),c(D,H),c(D,z),c(z,K),k(K,t[11]),c(z,W),c(z,V),c(D,J),De&&De.m(D,null),c(D,Z),qe&&qe.m(D,null),c(n,G),c(n,Q),c(Q,Y),c(Q,X),c(Q,ee),c(ee,te),c(ee,ne),c(ee,re),k(re,t[12]),c(ee,oe),c(ee,ie),k(ie,t[13]),c(ee,se),c(ee,ae),c(Q,le),He&&He.m(Q,null),c(Q,ce),ze&&ze.m(Q,null),c(n,ue),c(n,de),c(de,fe),c(fe,he),c(fe,pe),c(fe,ge),c(fe,ye),Ke&&Ke.m(fe,null),c(de,ve),c(de,me),c(me,we),c(me,be),c(me,Ee),c(me,ke),We&&We.m(me,null),c(n,xe),c(n,Se),c(Se,Ce),c(Se,Ae),c(Se,$e),k($e,t[7]),c(n,Te),c(n,Ie),c(Ie,Re),c(Ie,_e),c(Ie,Le),Pe||(Oe=[v(a,"input",t[33]),v(x,"click",t[34]),v(B,"input",t[38]),v(B,"keydown",t[39]),v(N,"click",t[20]),v(K,"input",t[41]),v(K,"keydown",t[42]),v(V,"click",t[22]),v(re,"input",t[44]),v(ie,"input",t[45]),v(ie,"keydown",t[46]),v(ae,"click",t[24]),v(ge,"change",t[30]),v(Ee,"change",t[31]),v($e,"input",t[50]),v(Re,"click",t[27]),v(Le,"click",t[26])],Pe=!0)},p(e,t){1&t[0]&&a.value!==e[0]&&k(a,e[0]),512&t[0]&&Be!==(Be=e[9]?"▼":"▶")&&E(S,Be),2&t[0]&&je!==(je=e[1].length+"")&&E(A,je),e[9]?Ne?Ne.p(e,t):(Ne=Hg(e),Ne.c(),Ne.m(f,I)):Ne&&(Ne.d(1),Ne=null),e[1].length>0?Me?Me.p(e,t):(Me=Kg(e),Me.c(),Me.m(f,null)):Me&&(Me.d(1),Me=null),1024&t[0]&&B.value!==e[10]&&k(B,e[10]),e[14]?Ue?Ue.p(e,t):(Ue=Vg(e),Ue.c(),Ue.m(_,U)):Ue&&(Ue.d(1),Ue=null),e[2].length>0?Fe?Fe.p(e,t):(Fe=Jg(e),Fe.c(),Fe.m(_,null)):Fe&&(Fe.d(1),Fe=null),2048&t[0]&&K.value!==e[11]&&k(K,e[11]),e[15]?De?De.p(e,t):(De=Gg(e),De.c(),De.m(D,Z)):De&&(De.d(1),De=null),e[3].length>0?qe?qe.p(e,t):(qe=Qg(e),qe.c(),qe.m(D,null)):qe&&(qe.d(1),qe=null),4096&t[0]&&re.value!==e[12]&&k(re,e[12]),8192&t[0]&&ie.value!==e[13]&&k(ie,e[13]),e[16]?He?He.p(e,t):(He=Xg(e),He.c(),He.m(Q,ce)):He&&(He.d(1),He=null),e[4].length>0?ze?ze.p(e,t):(ze=ey(e),ze.c(),ze.m(Q,null)):ze&&(ze.d(1),ze=null),e[5]?Ke?Ke.p(e,t):(Ke=ny(e),Ke.c(),Ke.m(fe,null)):Ke&&(Ke.d(1),Ke=null),e[6]?We?We.p(e,t):(We=ry(e),We.c(),We.m(me,null)):We&&(We.d(1),We=null),128&t[0]&&b($e.value)!==e[7]&&k($e,e[7])},i:e,o:e,d(e){e&&d(n),Ne&&Ne.d(),Me&&Me.d(),Ue&&Ue.d(),Fe&&Fe.d(),De&&De.d(),qe&&qe.d(),He&&He.d(),ze&&ze.d(),Ke&&Ke.d(),We&&We.d(),Pe=!1,r(Oe)}}}function iy(e,t,n){let r,o;const i=T();let{searchText:s=""}=t,{selectedKinds:a=[]}=t,{pubkeys:l=[]}=t,{eventIds:c=[]}=t,{tags:u=[]}=t,{sinceTimestamp:d=null}=t,{untilTimestamp:f=null}=t,{limit:h=null}=t,p=!1,g="",y="",v="",m="",w="",E="",k="",x="";function S(e){a.includes(e)?n(1,a=a.filter(t=>t!==e)):n(1,a=[...a,e].sort((e,t)=>e-t))}function C(e){n(1,a=a.filter(t=>t!==e))}function A(){const e=y.trim();e&&(Og(e,64)?l.includes(e)?n(14,E="Pubkey already added"):(n(2,l=[...l,e]),n(10,y=""),n(14,E="")):n(14,E="Invalid pubkey: must be 64 character hex string"))}function $(e){n(2,l=l.filter(t=>t!==e))}function I(){const e=v.trim();e&&(Og(e,64)?c.includes(e)?n(15,k="Event ID already added"):(n(3,c=[...c,e]),n(11,v=""),n(15,k="")):n(15,k="Invalid event ID: must be 64 character hex string"))}function R(e){n(3,c=c.filter(t=>t!==e))}function _(){const e=m.trim(),t=w.trim();e&&t&&(/^[a-zA-Z]$/.test(e)?u.some(n=>n.name===e&&n.value===t)?n(16,x="Tag already added"):(n(4,u=[...u,{name:e,value:t}]),n(12,m=""),n(13,w=""),n(16,x="")):n(16,x="Invalid tag name: must be single letter a-z or A-Z"))}function L(e){n(4,u=u.filter((t,n)=>n!==e))}return e.$$set=e=>{"searchText"in e&&n(0,s=e.searchText),"selectedKinds"in e&&n(1,a=e.selectedKinds),"pubkeys"in e&&n(2,l=e.pubkeys),"eventIds"in e&&n(3,c=e.eventIds),"tags"in e&&n(4,u=e.tags),"sinceTimestamp"in e&&n(5,d=e.sinceTimestamp),"untilTimestamp"in e&&n(6,f=e.untilTimestamp),"limit"in e&&n(7,h=e.limit)},e.$$.update=()=>{256&e.$$.dirty[0]|2&e.$$.dirty[1]&&n(17,o=r.filter(e=>e.kind.toString().includes(g)||e.name.toLowerCase().includes(g.toLowerCase())))},n(32,r=Object.entries(Pg).map(([e,t])=>({kind:parseInt(e),name:t})).sort((e,t)=>e.kind-t.kind)),[s,a,l,c,u,d,f,h,g,p,y,v,m,w,E,k,x,o,S,C,A,$,I,R,_,L,function(){n(0,s=""),n(1,a=[]),n(2,l=[]),n(3,c=[]),n(4,u=[]),n(5,d=null),n(6,f=null),n(7,h=null),i("clear")},function(){i("apply",{searchText:s,selectedKinds:a,pubkeys:l,eventIds:c,tags:u,sinceTimestamp:d,untilTimestamp:f,limit:h})},function(){return d?Bg(d):""},function(){return f?Bg(f):""},function(e){const t=e.target.value;n(5,d=t?jg(t):null)},function(e){const t=e.target.value;n(6,f=t?jg(t):null)},r,function(){s=this.value,n(0,s)},()=>n(9,p=!p),function(){g=this.value,n(8,g)},e=>S(e),e=>C(e),function(){y=this.value,n(10,y)},e=>"Enter"===e.key&&A(),e=>$(e),function(){v=this.value,n(11,v)},e=>"Enter"===e.key&&I(),e=>R(e),function(){m=this.value,n(12,m)},function(){w=this.value,n(13,w)},e=>"Enter"===e.key&&_(),e=>L(e),()=>n(5,d=null),()=>n(6,f=null),function(){h=b(this.value),n(7,h)}]}class sy extends ee{constructor(e){super(),X(this,e,iy,oy,i,{searchText:0,selectedKinds:1,pubkeys:2,eventIds:3,tags:4,sinceTimestamp:5,untilTimestamp:6,limit:7},null,[-1,-1,-1])}}function ay(e){let t,n,r,o,i,s,a,l,f,y,m;return{c(){t=h("div"),n=h("div"),r=h("h3"),r.textContent="Active Filter",o=g(),i=h("button"),i.textContent="🧹 Sweep",s=g(),a=h("div"),l=h("pre"),f=p(e[2]),w(r,"class","svelte-1tyqaa5"),w(i,"class","sweep-btn svelte-1tyqaa5"),w(i,"title","Clear filter"),w(n,"class","filter-display-header svelte-1tyqaa5"),w(l,"class","filter-json svelte-1tyqaa5"),w(a,"class","filter-json-container svelte-1tyqaa5"),w(t,"class","filter-display svelte-1tyqaa5")},m(d,h){u(d,t,h),c(t,n),c(n,r),c(n,o),c(n,i),c(t,s),c(t,a),c(a,l),c(l,f),y||(m=v(i,"click",e[3]),y=!0)},p(e,t){4&t&&E(f,e[2])},d(e){e&&d(t),y=!1,m()}}}function ly(t){let n,r=t[0]&&t[1]&&ay(t);return{c(){r&&r.c(),n=y()},m(e,t){r&&r.m(e,t),u(e,n,t)},p(e,[t]){e[0]&&e[1]?r?r.p(e,t):(r=ay(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&d(n)}}}function cy(e,t,n){let r,o;const i=T();let{filter:s={}}=t,{showFilter:a=!0}=t;return e.$$set=e=>{"filter"in e&&n(4,s=e.filter),"showFilter"in e&&n(0,a=e.showFilter)},e.$$.update=()=>{16&e.$$.dirty&&n(2,r=function(e){return JSON.stringify(e,null,2)}(s)),16&e.$$.dirty&&n(1,o=Object.keys(s).length>0)},[a,o,r,function(){i("sweep")},s]}class uy extends ee{constructor(e){super(),X(this,e,cy,ly,i,{filter:4,showFilter:0})}}class dy{constructor(e,t,n){this.relayUrl=e,this.userSigner=t,this.userPubkey=n,this.ws=null,this.challenge=null,this.isAuthenticated=!1,this.authPromise=null}async connect(){return new Promise((e,t)=>{this.ws=new WebSocket(this.relayUrl),this.ws.onopen=()=>{console.log("WebSocket connected to relay:",this.relayUrl),e()},this.ws.onmessage=async e=>{try{const t=JSON.parse(e.data);await this.handleMessage(t)}catch(e){console.error("Error parsing relay message:",e)}},this.ws.onerror=e=>{console.error("WebSocket error:",e),t(new Error("Failed to connect to relay"))},this.ws.onclose=()=>{console.log("WebSocket connection closed"),this.isAuthenticated=!1,this.challenge=null},setTimeout(()=>{this.ws.readyState!==WebSocket.OPEN&&t(new Error("Connection timeout"))},1e4)})}async handleMessage(e){const[t,...n]=e;switch(t){case"AUTH":this.challenge=n[0],console.log("Received AUTH challenge:",this.challenge),await this.authenticate();break;case"OK":const[e,r,o]=n;e&&r?(console.log("Authentication successful for event:",e),this.isAuthenticated=!0,this.authPromise&&(this.authPromise.resolve(),this.authPromise=null)):e&&!r&&(console.error("Authentication failed:",o),this.authPromise&&(this.authPromise.reject(new Error(o||"Authentication failed")),this.authPromise=null));break;case"NOTICE":console.log("Relay notice:",n[0]);break;default:console.log("Unhandled message type:",t,n)}}async authenticate(){if(!this.challenge)throw new Error("No challenge received from relay");if(!this.userSigner)throw new Error("No signer available for authentication");try{const e={kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",this.relayUrl],["challenge",this.challenge]],content:"",pubkey:this.userPubkey},t=["AUTH",await this.userSigner.signEvent(e)];return this.ws.send(JSON.stringify(t)),console.log("Sent authentication event to relay"),new Promise((e,t)=>{this.authPromise={resolve:e,reject:t},setTimeout(()=>{this.authPromise&&(this.authPromise.reject(new Error("Authentication timeout")),this.authPromise=null)},1e4)})}catch(e){throw console.error("Authentication error:",e),e}}async publishEvent(e){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)throw new Error("WebSocket not connected");return new Promise((t,n)=>{const r=["EVENT",e];this.ws.send(JSON.stringify(r));const o=this.ws.onmessage,i=setTimeout(()=>{this.ws.onmessage=o,n(new Error("Publish timeout"))},15e3);this.ws.onmessage=async r=>{try{const s=JSON.parse(r.data),[a,l,c,u]=s;if("OK"===a&&l===e.id)if(clearTimeout(i),this.ws.onmessage=o,c)console.log("Event published successfully:",l),t({success:!0,eventId:l,reason:u});else{if(console.error("Event publish failed:",u),u&&u.includes("auth-required")){console.log("Authentication required, attempting to authenticate...");try{await this.authenticate();const t=["EVENT",e];return void this.ws.send(JSON.stringify(t))}catch(e){return void n(new Error(`Authentication failed: ${e.message}`))}}n(new Error(`Publish failed: ${u}`))}else await this.handleMessage(s)}catch(e){clearTimeout(i),this.ws.onmessage=o,n(e)}}})}close(){this.ws&&(this.ws.close(),this.ws=null),this.isAuthenticated=!1,this.challenge=null}getAuthenticated(){return this.isAuthenticated}}async function fy(e,t,n,r){const o=new dy(e,n,r);try{await o.connect();return await o.publishEvent(t)}finally{o.close()}}function hy(e,t,n){const r=e.slice();return r[153]=t[n],r}function py(e,t,n){const r=e.slice();return r[163]=t[n],r}function gy(e,t,n){const r=e.slice();return r[156]=t[n],r}function yy(e,t,n){const r=e.slice();r[156]=t[n];const o=r[44](r[156]);return r[157]=o,r}function vy(e,t,n){const r=e.slice();return r[160]=t[n],r}function my(t){let n,r,o,i;return o=new sy({}),o.$on("apply",t[64]),o.$on("clear",t[65]),{c(){n=h("div"),r=h("div"),Z(o.$$.fragment),w(r,"class","filter-builder-container svelte-fgl5p8"),w(n,"class","filter-builder-overlay svelte-fgl5p8")},m(e,t){u(e,n,t),c(n,r),G(o,r,null),i=!0},p:e,i(e){i||(W(o.$$.fragment,e),i=!0)},o(e){V(o.$$.fragment,e),i=!1},d(e){e&&d(n),Q(o)}}}function wy(t){let n;function r(e,t){return e[1]?Iy:Ty}let o=r(t),i=o(t);return{c(){n=h("div"),i.c(),w(n,"class","welcome-message svelte-fgl5p8")},m(e,t){u(e,n,t),i.m(n,null)},p(e,t){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n,null)))},i:e,o:e,d(e){e&&d(n),i.d()}}}function by(e){let t,n,r=e[6],o=[];for(let t=0;t<r.length;t+=1)o[t]=My(py(e,r,t));const i=e=>V(o[e],1,1,()=>{o[e]=null});return{c(){for(let e=0;e<o.length;e+=1)o[e].c();t=y()},m(e,r){for(let t=0;t<o.length;t+=1)o[t]&&o[t].m(e,r);u(e,t,r),n=!0},p(e,n){if(131188&n[0]|180&n[1]|208&n[2]){let s;for(r=e[6],s=0;s<r.length;s+=1){const i=py(e,r,s);o[s]?(o[s].p(i,n),W(o[s],1)):(o[s]=My(i),o[s].c(),W(o[s],1),o[s].m(t.parentNode,t))}for(z(),s=r.length;s<o.length;s+=1)i(s);K()}},i(e){if(!n){for(let e=0;e<r.length;e+=1)W(o[e]);n=!0}},o(e){o=o.filter(Boolean);for(let e=0;e<o.length;e+=1)V(o[e]);n=!1},d(e){f(o,e),e&&d(t)}}}function Ey(t){let n,o,i,s,a,l,p,y,m,E,S,C,A,$,T,I,R,_,L=null!==t[26]&&void 0!==t[26]&&t[26]>=0||""!==t[27]&&parseInt(t[27])>=0,P=t[34],O=[];for(let e=0;e<P.length;e+=1)O[e]=Uy(vy(t,P,e));let B=L&&Fy(t);return{c(){n=h("div"),o=h("div"),o.innerHTML='<h3 class="svelte-fgl5p8">Event Recovery</h3> \n <p class="svelte-fgl5p8">Search and recover old versions of replaceable events</p>',i=g(),s=h("div"),a=h("div"),l=h("div"),p=h("label"),p.textContent="Select Event Kind:",y=g(),m=h("select"),E=h("option"),E.textContent="Choose a replaceable kind...";for(let e=0;e<O.length;e+=1)O[e].c();S=g(),C=h("div"),A=h("label"),A.textContent="Or enter custom kind number:",$=g(),T=h("input"),I=g(),B&&B.c(),w(p,"for","recovery-kind"),w(p,"class","svelte-fgl5p8"),E.__value=null,E.value=E.__value,w(m,"id","recovery-kind"),w(m,"class","svelte-fgl5p8"),void 0===t[26]&&j(()=>t[101].call(m)),w(l,"class","kind-selector svelte-fgl5p8"),w(A,"for","custom-kind"),w(A,"class","svelte-fgl5p8"),w(T,"id","custom-kind"),w(T,"type","number"),w(T,"placeholder","e.g., 10001"),w(T,"min","0"),w(T,"class","svelte-fgl5p8"),w(C,"class","custom-kind-input svelte-fgl5p8"),w(a,"class","recovery-controls svelte-fgl5p8"),w(s,"class","recovery-controls-card svelte-fgl5p8"),w(n,"class","recovery-tab svelte-fgl5p8")},m(e,r){u(e,n,r),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(l,p),c(l,y),c(l,m),c(m,E);for(let e=0;e<O.length;e+=1)O[e]&&O[e].m(m,null);x(m,t[26],!0),c(a,S),c(a,C),c(C,A),c(C,$),c(C,T),k(T,t[27]),c(n,I),B&&B.m(n,null),R||(_=[v(m,"change",t[101]),v(m,"change",t[42]),v(T,"input",t[102]),v(T,"input",t[43])],R=!0)},p(e,t){if(8&t[1]){let n;for(P=e[34],n=0;n<P.length;n+=1){const r=vy(e,P,n);O[n]?O[n].p(r,t):(O[n]=Uy(r),O[n].c(),O[n].m(m,null))}for(;n<O.length;n+=1)O[n].d(1);O.length=P.length}67108864&t[0]|8&t[1]&&x(m,e[26]),134217728&t[0]&&b(T.value)!==e[27]&&k(T,e[27]),201326592&t[0]&&(L=null!==e[26]&&void 0!==e[26]&&e[26]>=0||""!==e[27]&&parseInt(e[27])>=0),L?B?B.p(e,t):(B=Fy(e),B.c(),B.m(n,null)):B&&(B.d(1),B=null)},i:e,o:e,d(e){e&&d(n),f(O,e),B&&B.d(),R=!1,r(_)}}}function ky(e){let t,n,r;function o(t){e[98](t)}let i={isLoggedIn:e[1],userRole:e[4],sprocketStatus:e[19],isLoadingSprocket:e[21],sprocketUploadFile:e[24],sprocketMessage:e[22],sprocketMessageType:e[23],sprocketVersions:e[20]};return void 0!==e[18]&&(i.sprocketScript=e[18]),t=new Lg({props:i}),_.push(()=>J(t,"sprocketScript",o)),t.$on("restartSprocket",e[47]),t.$on("deleteSprocket",e[48]),t.$on("sprocketFileSelect",e[52]),t.$on("uploadSprocketScript",e[53]),t.$on("saveSprocket",e[46]),t.$on("loadSprocket",e[45]),t.$on("loadVersions",e[49]),t.$on("loadVersion",e[99]),t.$on("deleteVersion",e[100]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,n){G(t,e,n),r=!0},p(e,r){const o={};2&r[0]&&(o.isLoggedIn=e[1]),16&r[0]&&(o.userRole=e[4]),524288&r[0]&&(o.sprocketStatus=e[19]),2097152&r[0]&&(o.isLoadingSprocket=e[21]),16777216&r[0]&&(o.sprocketUploadFile=e[24]),4194304&r[0]&&(o.sprocketMessage=e[22]),8388608&r[0]&&(o.sprocketMessageType=e[23]),1048576&r[0]&&(o.sprocketVersions=e[20]),!n&&262144&r[0]&&(n=!0,o.sprocketScript=e[18],N(()=>n=!1)),t.$set(o)},i(e){r||(W(t.$$.fragment,e),r=!0)},o(e){V(t.$$.fragment,e),r=!1},d(e){Q(t,e)}}}function xy(e){let t,n,r,o;const i=[Qy,Gy,Zy],s=[];function a(e,t){return"managed"!==e[8]?0:e[1]&&"owner"===e[4]?1:2}return n=a(e),r=s[n]=i[n](e),{c(){t=h("div"),r.c(),w(t,"class","managed-acl-view svelte-fgl5p8")},m(e,r){u(e,t,r),s[n].m(t,null),o=!0},p(e,o){let l=n;n=a(e),n===l?s[n].p(e,o):(z(),V(s[l],1,1,()=>{s[l]=null}),K(),r=s[n],r?r.p(e,o):(r=s[n]=i[n](e),r.c()),W(r,1),r.m(t,null))},i(e){o||(W(r),o=!0)},o(e){V(r),o=!1},d(e){e&&d(t),s[n].d()}}}function Sy(e){let t,n,r;function o(t){e[97](t)}let i={};return void 0!==e[25]&&(i.composeEventJson=e[25]),t=new bg({props:i}),_.push(()=>J(t,"composeEventJson",o)),t.$on("reformatJson",e[77]),t.$on("signEvent",e[78]),t.$on("publishEvent",e[79]),{c(){Z(t.$$.fragment)},m(e,n){G(t,e,n),r=!0},p(e,r){const o={};!n&&33554432&r[0]&&(n=!0,o.composeEventJson=e[25],N(()=>n=!1)),t.$set(o)},i(e){r||(W(t.$$.fragment,e),r=!0)},o(e){V(t.$$.fragment,e),r=!1},d(e){Q(t,e)}}}function Cy(e){let t,n;return t=new vg({props:{isLoggedIn:e[1],userRole:e[4],userPubkey:e[2],filteredEvents:e[32],expandedEvents:e[17],isLoadingEvents:e[7],showOnlyMyEvents:cv}}),t.$on("scroll",e[76]),t.$on("toggleEventExpansion",e[93]),t.$on("deleteEvent",e[94]),t.$on("copyEventToClipboard",e[95]),t.$on("toggleChange",e[37]),t.$on("loadAllEvents",e[96]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),16&n[0]&&(r.userRole=e[4]),4&n[0]&&(r.userPubkey=e[2]),2&n[1]&&(r.filteredEvents=e[32]),131072&n[0]&&(r.expandedEvents=e[17]),128&n[0]&&(r.isLoadingEvents=e[7]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Ay(e){let t,n;return t=new Wp({props:{isLoggedIn:e[1],currentEffectiveRole:e[9],selectedFile:e[16]}}),t.$on("fileSelect",e[73]),t.$on("importEvents",e[74]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),512&n[0]&&(r.currentEffectiveRole=e[9]),65536&n[0]&&(r.selectedFile=e[16]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function $y(e){let t,n;return t=new Fp({props:{isLoggedIn:e[1],currentEffectiveRole:e[9]}}),t.$on("exportMyEvents",e[72]),t.$on("exportAllEvents",e[71]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),512&n[0]&&(r.currentEffectiveRole=e[9]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Ty(t){let n;return{c(){n=h("p"),n.textContent="Log in to access your user dashboard",w(n,"class","svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Iy(e){let t,n,r,o=(e[3]?.name||e[2].slice(0,8)+"...")+"";return{c(){t=h("p"),n=p("Welcome "),r=p(o),w(t,"class","svelte-fgl5p8")},m(e,o){u(e,t,o),c(t,n),c(t,r)},p(e,t){12&t[0]&&o!==(o=(e[3]?.name||e[2].slice(0,8)+"...")+"")&&E(r,o)},d(e){e&&d(t)}}}function Ry(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,S,C,A,$,T,I,R,_,L=e[163].label+"",P=e[33].get(e[163].id)?.isLoading,O=!e[33].get(e[163].id)?.hasMore&&e[33].get(e[163].id)?.events?.length>0;function B(){return e[106](e[163])}function j(e,t){return 64&t[0]&&(S=null),64&t[0]&&(C=null),null==S&&(S=!!(e[33].get(e[163].id)?.events?.length>0)),S?Ly:(null==C&&(C=!e[33].get(e[163].id)?.isLoading),C?_y:void 0)}b=new uy({props:{filter:e[33].get(e[163].id)?.filter||{}}}),b.$on("sweep",function(){return e[107](e[163])});let N=j(e,[-1,-1,-1,-1,-1,-1]),M=N&&N(e),U=P&&jy(),F=O&&Ny();function D(...t){return e[112](e[163],...t)}return{c(){t=h("div"),n=h("div"),o=h("h2"),i=p("🔍 "),s=p(L),a=g(),l=h("button"),f=p("🔄 Refresh"),m=g(),Z(b.$$.fragment),k=g(),x=h("div"),M&&M.c(),A=g(),U&&U.c(),$=g(),F&&F.c(),T=g(),w(o,"class","svelte-fgl5p8"),w(l,"class","refresh-btn svelte-fgl5p8"),l.disabled=y=e[33].get(e[163].id)?.isLoading,w(n,"class","search-results-header svelte-fgl5p8"),w(x,"class","search-results-content svelte-fgl5p8"),w(t,"class","search-results-view svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n),c(n,o),c(o,i),c(o,s),c(n,a),c(n,l),c(l,f),c(t,m),G(b,t,null),c(t,k),c(t,x),M&&M.m(x,null),c(x,A),U&&U.m(x,null),c(x,$),F&&F.m(x,null),c(t,T),I=!0,R||(_=[v(l,"click",B),v(x,"scroll",D)],R=!0)},p(t,n){e=t,(!I||64&n[0])&&L!==(L=e[163].label+"")&&E(s,L),(!I||64&n[0]&&y!==(y=e[33].get(e[163].id)?.isLoading))&&(l.disabled=y);const r={};64&n[0]&&(r.filter=e[33].get(e[163].id)?.filter||{}),b.$set(r),N===(N=j(e,n))&&M?M.p(e,n):(M&&M.d(1),M=N&&N(e),M&&(M.c(),M.m(x,A))),64&n[0]&&(P=e[33].get(e[163].id)?.isLoading),P?U||(U=jy(),U.c(),U.m(x,$)):U&&(U.d(1),U=null),64&n[0]&&(O=!e[33].get(e[163].id)?.hasMore&&e[33].get(e[163].id)?.events?.length>0),O?F||(F=Ny(),F.c(),F.m(x,null)):F&&(F.d(1),F=null)},i(e){I||(W(b.$$.fragment,e),I=!0)},o(e){V(b.$$.fragment,e),I=!1},d(e){e&&d(t),Q(b),M&&M.d(),U&&U.d(),F&&F.d(),R=!1,r(_)}}}function _y(t){let n;return{c(){n=h("div"),n.innerHTML='<p class="svelte-fgl5p8">No search results found.</p>',w(n,"class","no-search-results svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Ly(e){let t,n=e[33].get(e[163].id).events,r=[];for(let t=0;t<n.length;t+=1)r[t]=By(gy(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(131156&o[0]|180&o[1]){let i;for(n=e[33].get(e[163].id).events,i=0;i<n.length;i+=1){const s=gy(e,n,i);r[i]?r[i].p(s,o):(r[i]=By(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Py(e){let t,n,r;function o(){return e[108](e[156])}return{c(){t=h("button"),t.textContent="🗑️",w(t,"class","delete-btn svelte-fgl5p8")},m(e,i){u(e,t,i),n||(r=v(t,"click",m(o)),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function Oy(e){let t,n,r,o,i,s,a,l,f=JSON.stringify(e[156],null,2)+"";function y(...t){return e[111](e[156],...t)}return{c(){t=h("div"),n=h("div"),r=h("pre"),o=p(f),i=g(),s=h("button"),s.textContent="📋",w(r,"class","event-json svelte-fgl5p8"),w(s,"class","copy-json-btn svelte-fgl5p8"),w(s,"title","Copy minified JSON to clipboard"),w(n,"class","json-container svelte-fgl5p8"),w(t,"class","search-result-details svelte-fgl5p8")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),a||(l=v(s,"click",m(y)),a=!0)},p(t,n){e=t,64&n[0]&&f!==(f=JSON.stringify(e[156],null,2)+"")&&E(o,f)},d(e){e&&d(t),a=!1,l()}}}function By(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,C,A,$,T,I,R,_,L,P,O,B,j,N,M=uv(e[156].pubkey)+"",U=e[156].kind+"",F=e[35](e[156].kind)+"",D=fv(e[156].created_at)+"",q=dv(e[156].content)+"",H=e[17].has(e[156].id),z=5!==e[156].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[156].pubkey&&e[156].pubkey===e[2])&&Py(e);function K(){return e[109](e[156])}function W(...t){return e[110](e[156],...t)}let V=H&&Oy(e);return{c(){t=h("div"),n=h("div"),o=h("div"),o.innerHTML='<div class="avatar-placeholder svelte-fgl5p8">👤</div>',i=g(),s=h("div"),a=h("div"),l=p(M),f=g(),y=h("div"),m=h("span"),b=p(U),k=g(),x=h("span"),C=p(F),A=g(),$=h("div"),T=h("div"),I=p(D),R=g(),_=h("div"),L=p(q),P=g(),z&&z.c(),O=g(),V&&V.c(),B=g(),w(o,"class","search-result-avatar svelte-fgl5p8"),w(a,"class","search-result-author svelte-fgl5p8"),w(m,"class","kind-number svelte-fgl5p8"),w(x,"class","kind-name svelte-fgl5p8"),w(y,"class","search-result-kind svelte-fgl5p8"),w(s,"class","search-result-info svelte-fgl5p8"),w(T,"class","event-timestamp svelte-fgl5p8"),w(_,"class","event-content-single-line svelte-fgl5p8"),w($,"class","search-result-content svelte-fgl5p8"),w(n,"class","search-result-row svelte-fgl5p8"),w(n,"role","button"),w(n,"tabindex","0"),w(t,"class","search-result-item svelte-fgl5p8"),S(t,"expanded",e[17].has(e[156].id))},m(e,r){u(e,t,r),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,f),c(s,y),c(y,m),c(m,b),c(y,k),c(y,x),c(x,C),c(n,A),c(n,$),c($,T),c(T,I),c($,R),c($,_),c(_,L),c(n,P),z&&z.m(n,null),c(t,O),V&&V.m(t,null),c(t,B),j||(N=[v(n,"click",K),v(n,"keydown",W)],j=!0)},p(r,o){e=r,64&o[0]&&M!==(M=uv(e[156].pubkey)+"")&&E(l,M),64&o[0]&&U!==(U=e[156].kind+"")&&E(b,U),64&o[0]&&F!==(F=e[35](e[156].kind)+"")&&E(C,F),64&o[0]&&D!==(D=fv(e[156].created_at)+"")&&E(I,D),64&o[0]&&q!==(q=dv(e[156].content)+"")&&E(L,q),5!==e[156].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[156].pubkey&&e[156].pubkey===e[2])?z?z.p(e,o):(z=Py(e),z.c(),z.m(n,null)):z&&(z.d(1),z=null),131136&o[0]&&(H=e[17].has(e[156].id)),H?V?V.p(e,o):(V=Oy(e),V.c(),V.m(t,B)):V&&(V.d(1),V=null),131136&o[0]|4&o[1]&&S(t,"expanded",e[17].has(e[156].id))},d(e){e&&d(t),z&&z.d(),V&&V.d(),j=!1,r(N)}}}function jy(e){let t;return{c(){t=h("div"),t.innerHTML='<div class="loading-spinner svelte-fgl5p8"></div> \n <p class="svelte-fgl5p8">Searching...</p>',w(t,"class","loading-search-results svelte-fgl5p8")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Ny(e){let t;return{c(){t=h("div"),t.innerHTML='<p class="svelte-fgl5p8">No more search results to load.</p>',w(t,"class","end-of-search-results svelte-fgl5p8")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function My(e){let t,n,r=e[163].id===e[5]&&Ry(e);return{c(){r&&r.c(),t=y()},m(e,o){r&&r.m(e,o),u(e,t,o),n=!0},p(e,n){e[163].id===e[5]?r?(r.p(e,n),96&n[0]&&W(r,1)):(r=Ry(e),r.c(),W(r,1),r.m(t.parentNode,t)):r&&(z(),V(r,1,1,()=>{r=null}),K())},i(e){n||(W(r),n=!0)},o(e){V(r),n=!1},d(e){r&&r.d(e),e&&d(t)}}}function Uy(t){let n,r,o=t[160].label+"";return{c(){n=h("option"),r=p(o),n.__value=t[160].value,n.value=n.__value},m(e,t){u(e,n,t),c(n,r)},p:e,d(e){e&&d(n)}}}function Fy(e){let t;function n(e,t){return e[29]?Hy:0===e[28].length?qy:Dy}let r=n(e),o=r(e);return{c(){t=h("div"),o.c(),w(t,"class","recovery-results svelte-fgl5p8")},m(e,n){u(e,t,n),o.m(t,null)},p(e,i){r===(r=n(e))&&o?o.p(e,i):(o.d(1),o=r(e),o&&(o.c(),o.m(t,null)))},d(e){e&&d(t),o.d()}}}function Dy(e){let t,n,r,o=e[28],i=[];for(let t=0;t<o.length;t+=1)i[t]=Vy(yy(e,o,t));let s=e[30]&&Jy(e);return{c(){t=h("div");for(let e=0;e<i.length;e+=1)i[e].c();n=g(),s&&s.c(),r=y(),w(t,"class","events-list svelte-fgl5p8")},m(e,o){u(e,t,o);for(let e=0;e<i.length;e+=1)i[e]&&i[e].m(t,null);u(e,n,o),s&&s.m(e,o),u(e,r,o)},p(e,n){if(268435968&n[0]|9728&n[1]){let r;for(o=e[28],r=0;r<o.length;r+=1){const s=yy(e,o,r);i[r]?i[r].p(s,n):(i[r]=Vy(s),i[r].c(),i[r].m(t,null))}for(;r<i.length;r+=1)i[r].d(1);i.length=o.length}e[30]?s?s.p(e,n):(s=Jy(e),s.c(),s.m(r.parentNode,r)):s&&(s.d(1),s=null)},d(e){e&&d(t),f(i,e),e&&d(n),s&&s.d(e),e&&d(r)}}}function qy(t){let n;return{c(){n=h("div"),n.textContent="No events found for this kind",w(n,"class","no-events svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Hy(t){let n;return{c(){n=h("div"),n.textContent="Loading events...",w(n,"class","loading svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function zy(e){let t;return{c(){t=p("Current Version")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Ky(e){let t,n,r,o,i;function s(){return e[103](e[156])}let a="read"!==e[9]&&Wy(e);return{c(){t=h("button"),t.textContent="🌐 Repost to All",n=g(),a&&a.c(),r=y(),w(t,"class","repost-all-button svelte-fgl5p8")},m(e,l){u(e,t,l),u(e,n,l),a&&a.m(e,l),u(e,r,l),o||(i=v(t,"click",s),o=!0)},p(t,n){"read"!==(e=t)[9]?a?a.p(e,n):(a=Wy(e),a.c(),a.m(r.parentNode,r)):a&&(a.d(1),a=null)},d(e){e&&d(t),e&&d(n),a&&a.d(e),e&&d(r),o=!1,i()}}}function Wy(e){let t,n,r;function o(){return e[104](e[156])}return{c(){t=h("button"),t.textContent="🔄 Repost",w(t,"class","repost-button svelte-fgl5p8")},m(e,i){u(e,t,i),n||(r=v(t,"click",o),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function Vy(e){let t,n,r,o,i,s,a,l,f,y,b,k,x,C,A,$,T,I,R=new Date(1e3*e[156].created_at).toLocaleString()+"",_=JSON.stringify(e[156],null,2)+"",L=e[157]&&zy(),P=!e[157]&&Ky(e);function O(...t){return e[105](e[156],...t)}return{c(){t=h("div"),n=h("div"),r=h("div"),o=h("span"),L&&L.c(),i=g(),s=h("span"),a=p(R),l=g(),f=h("div"),P&&P.c(),y=g(),b=h("button"),b.textContent="📋 Copy JSON",k=g(),x=h("div"),C=h("pre"),A=p(_),$=g(),w(o,"class","event-kind svelte-fgl5p8"),w(s,"class","event-timestamp svelte-fgl5p8"),w(r,"class","event-header-left svelte-fgl5p8"),w(b,"class","copy-json-btn svelte-fgl5p8"),w(f,"class","event-header-actions svelte-fgl5p8"),w(n,"class","event-header svelte-fgl5p8"),w(C,"class","event-json svelte-fgl5p8"),w(x,"class","event-content svelte-fgl5p8"),w(t,"class","event-item svelte-fgl5p8"),S(t,"old-version",!e[157])},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),L&&L.m(o,null),c(r,i),c(r,s),c(s,a),c(n,l),c(n,f),P&&P.m(f,null),c(f,y),c(f,b),c(t,k),c(t,x),c(x,C),c(C,A),c(t,$),T||(I=v(b,"click",m(O)),T=!0)},p(n,r){(e=n)[157]?L||(L=zy(),L.c(),L.m(o,null)):L&&(L.d(1),L=null),268435456&r[0]&&R!==(R=new Date(1e3*e[156].created_at).toLocaleString()+"")&&E(a,R),e[157]?P&&(P.d(1),P=null):P?P.p(e,r):(P=Ky(e),P.c(),P.m(f,y)),268435456&r[0]&&_!==(_=JSON.stringify(e[156],null,2)+"")&&E(A,_),268435456&r[0]|8192&r[1]&&S(t,"old-version",!e[157])},d(e){e&&d(t),L&&L.d(),P&&P.d(),T=!1,I()}}}function Jy(e){let t,n,r,o;return{c(){t=h("button"),n=p("Load More Events"),w(t,"class","load-more svelte-fgl5p8"),t.disabled=e[29]},m(i,s){u(i,t,s),c(t,n),r||(o=v(t,"click",e[39]),r=!0)},p(e,n){536870912&n[0]&&(t.disabled=e[29])},d(e){e&&d(t),r=!1,o()}}}function Zy(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in with owner permissions to access\n managed ACL configuration.",o=g(),i=h("button"),i.textContent="Log In",w(i,"class","login-btn svelte-fgl5p8"),w(n,"class","access-denied")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[56]),s=!0)},p:e,i:e,o:e,d(e){e&&d(n),s=!1,a()}}}function Gy(e){let t,n;return t=new mp({props:{userSigner:e[12],userPubkey:e[2]}}),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};4096&n[0]&&(r.userSigner=e[12]),4&n[0]&&(r.userPubkey=e[2]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Qy(t){let n,r,o,i,s,a,l,f,y,v,m,b=(t[8]||"unknown")+"";return{c(){n=h("div"),r=h("h3"),r.textContent="⚠️ Managed ACL Mode Not Active",o=g(),i=h("p"),i.textContent='To use the Managed ACL interface, you need to set\n the ACL mode to "managed" in your relay\n configuration.',s=g(),a=h("p"),l=p("Current ACL mode: "),f=h("strong"),y=p(b),v=g(),m=h("p"),m.innerHTML='Please set <code class="svelte-fgl5p8">ORLY_ACL_MODE=managed</code> in your\n environment variables and restart the relay.',w(r,"class","svelte-fgl5p8"),w(i,"class","svelte-fgl5p8"),w(a,"class","svelte-fgl5p8"),w(m,"class","svelte-fgl5p8"),w(n,"class","acl-mode-warning svelte-fgl5p8")},m(e,t){u(e,n,t),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),c(a,l),c(a,f),c(f,y),c(n,v),c(n,m)},p(e,t){256&t[0]&&b!==(b=(e[8]||"unknown")+"")&&E(y,b)},i:e,o:e,d(e){e&&d(n)}}}function Yy(e){let t,n,o,i,s,a,l,f,p,y;function b(e,t){return e[3]?ev:e[1]&&e[2]?Xy:void 0}let E=b(e),k=E&&E(e);return{c(){t=h("div"),n=h("div"),o=h("div"),i=h("h2"),i.textContent="Settings",s=g(),a=h("button"),a.textContent="✕",l=g(),f=h("div"),k&&k.c(),w(i,"class","svelte-fgl5p8"),w(a,"class","close-btn svelte-fgl5p8"),w(o,"class","drawer-header svelte-fgl5p8"),w(f,"class","drawer-content"),w(n,"class","settings-drawer svelte-fgl5p8"),S(n,"dark-theme",e[0]),w(t,"class","drawer-overlay svelte-fgl5p8"),w(t,"role","button"),w(t,"tabindex","0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),c(o,s),c(o,a),c(n,l),c(n,f),k&&k.m(f,null),p||(y=[v(a,"click",e[61]),v(n,"click",m(e[87])),v(n,"keydown",m(e[88])),v(t,"click",e[61]),v(t,"keydown",e[114])],p=!0)},p(e,t){E===(E=b(e))&&k?k.p(e,t):(k&&k.d(1),k=E&&E(e),k&&(k.c(),k.m(f,null))),1&t[0]&&S(n,"dark-theme",e[0])},d(e){e&&d(t),k&&k.d(),p=!1,r(y)}}}function Xy(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,S,C,A,$,T=e[2].slice(0,16)+"",I=e[2].slice(-8)+"";return{c(){t=h("div"),n=h("button"),n.textContent="Log out",o=g(),i=h("h3"),i.textContent="Profile Loading",s=g(),a=h("p"),a.textContent="Your profile metadata is being loaded...",l=g(),f=h("button"),f.textContent="Retry Loading Profile",y=g(),m=h("div"),b=h("strong"),b.textContent="Public Key:",k=g(),x=p(T),S=p("..."),C=p(I),w(n,"class","logout-btn floating svelte-fgl5p8"),w(i,"class","svelte-fgl5p8"),w(a,"class","svelte-fgl5p8"),w(f,"class","retry-profile-btn svelte-fgl5p8"),w(m,"class","user-pubkey-display svelte-fgl5p8"),w(t,"class","profile-loading-section svelte-fgl5p8")},m(r,d){u(r,t,d),c(t,n),c(t,o),c(t,i),c(t,s),c(t,a),c(t,l),c(t,f),c(t,y),c(t,m),c(m,b),c(m,k),c(m,x),c(m,S),c(m,C),A||($=[v(n,"click",e[58]),v(f,"click",e[70])],A=!0)},p(e,t){4&t[0]&&T!==(T=e[2].slice(0,16)+"")&&E(x,T),4&t[0]&&I!==(I=e[2].slice(-8)+"")&&E(C,I)},d(e){e&&d(t),A=!1,r($)}}}function ev(e){let t,n,r,o,i,s,a,l,f,m,b,k,x,S,C,A=(e[3].name||"Unknown User")+"",$=e[3].banner&&tv(e);function T(e,t){return e[3].picture?rv:nv}let I=T(e),R=I(e),_=e[3].nip05&&ov(e),L=e[3].about&&iv(e),P=e[4]&&"read"!==e[4]&&sv(e);return{c(){t=h("div"),n=h("div"),$&&$.c(),r=g(),o=h("button"),o.textContent="Log out",i=g(),R.c(),s=g(),a=h("div"),l=h("h3"),f=p(A),m=g(),_&&_.c(),b=g(),L&&L.c(),k=g(),P&&P.c(),x=y(),w(o,"class","logout-btn floating svelte-fgl5p8"),w(l,"class","profile-username svelte-fgl5p8"),w(a,"class","name-row svelte-fgl5p8"),w(n,"class","profile-hero svelte-fgl5p8"),w(t,"class","profile-section svelte-fgl5p8")},m(d,h){u(d,t,h),c(t,n),$&&$.m(n,null),c(n,r),c(n,o),c(n,i),R.m(n,null),c(n,s),c(n,a),c(a,l),c(l,f),c(a,m),_&&_.m(a,null),c(t,b),L&&L.m(t,null),u(d,k,h),P&&P.m(d,h),u(d,x,h),S||(C=v(o,"click",e[58]),S=!0)},p(e,o){e[3].banner?$?$.p(e,o):($=tv(e),$.c(),$.m(n,r)):$&&($.d(1),$=null),I===(I=T(e))&&R?R.p(e,o):(R.d(1),R=I(e),R&&(R.c(),R.m(n,s))),8&o[0]&&A!==(A=(e[3].name||"Unknown User")+"")&&E(f,A),e[3].nip05?_?_.p(e,o):(_=ov(e),_.c(),_.m(a,null)):_&&(_.d(1),_=null),e[3].about?L?L.p(e,o):(L=iv(e),L.c(),L.m(t,null)):L&&(L.d(1),L=null),e[4]&&"read"!==e[4]?P?P.p(e,o):(P=sv(e),P.c(),P.m(x.parentNode,x)):P&&(P.d(1),P=null)},d(e){e&&d(t),$&&$.d(),R.d(),_&&_.d(),L&&L.d(),e&&d(k),P&&P.d(e),e&&d(x),S=!1,C()}}}function tv(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[3].banner)||w(t,"src",n),w(t,"alt","Profile banner"),w(t,"class","profile-banner svelte-fgl5p8")},m(e,n){u(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].banner)&&w(t,"src",n)},d(e){e&&d(t)}}}function nv(t){let n;return{c(){n=h("div"),n.textContent="👤",w(n,"class","profile-avatar-placeholder overlap svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function rv(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[3].picture)||w(t,"src",n),w(t,"alt","User avatar"),w(t,"class","profile-avatar overlap svelte-fgl5p8")},m(e,n){u(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].picture)&&w(t,"src",n)},d(e){e&&d(t)}}}function ov(e){let t,n,r=e[3].nip05+"";return{c(){t=h("span"),n=p(r),w(t,"class","profile-nip05-inline svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n)},p(e,t){8&t[0]&&r!==(r=e[3].nip05+"")&&E(n,r)},d(e){e&&d(t)}}}function iv(e){let t,n;return{c(){t=h("div"),n=h("p"),w(n,"class","profile-about svelte-fgl5p8"),w(t,"class","about-card svelte-fgl5p8")},m(r,o){u(r,t,o),c(t,n),n.innerHTML=e[31]},p(e,t){1&t[1]&&(n.innerHTML=e[31])},d(e){e&&d(t)}}}function sv(e){let t,n,r,o,i,s,a=e[81](),l=[];for(let t=0;t<a.length;t+=1)l[t]=av(hy(e,a,t));return{c(){t=h("div"),n=h("h3"),n.textContent="View as Role",r=g(),o=h("p"),o.textContent="See the interface as it appears for different\n permission levels:",i=g(),s=h("div");for(let e=0;e<l.length;e+=1)l[e].c();w(n,"class","svelte-fgl5p8"),w(o,"class","svelte-fgl5p8"),w(s,"class","radio-group svelte-fgl5p8"),w(t,"class","view-as-section svelte-fgl5p8")},m(e,a){u(e,t,a),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(s,null)},p(e,t){if(528&t[0]|786432&t[2]){let n;for(a=e[81](),n=0;n<a.length;n+=1){const r=hy(e,a,n);l[n]?l[n].p(r,t):(l[n]=av(r),l[n].c(),l[n].m(s,null))}for(;n<l.length;n+=1)l[n].d(1);l.length=a.length}},d(e){e&&d(t),f(l,e)}}}function av(e){let t,n,r,o,i,s,a,l,f,y=e[153].charAt(0).toUpperCase()+e[153].slice(1)+"",m=e[153]===e[4]?" (Default)":"";function b(){return e[113](e[153])}return{c(){t=h("label"),n=h("input"),o=g(),i=p(y),s=p(m),a=g(),w(n,"type","radio"),w(n,"name","viewAsRole"),n.value=e[153],n.checked=r=e[9]===e[153],w(n,"class","svelte-fgl5p8"),w(t,"class","radio-label svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n),c(t,o),c(t,i),c(t,s),c(t,a),l||(f=v(n,"change",b),l=!0)},p(t,o){e=t,512&o[0]&&r!==(r=e[9]===e[153])&&(n.checked=r),16&o[0]&&m!==(m=e[153]===e[4]?" (Default)":"")&&E(s,m)},d(e){e&&d(t),l=!1,f()}}}function lv(e){let t,n,r,o,i,s,a,l,f,p,y,v,m,b,E,k;function x(t){e[90](t)}let C={isDarkTheme:e[0],isSearchMode:e[14],isLoggedIn:e[1],userRole:e[4],currentEffectiveRole:e[9],userProfile:e[3],userPubkey:e[2]};void 0!==e[15]&&(C.searchQuery=e[15]),t=new Tp({props:C}),_.push(()=>J(t,"searchQuery",x)),t.$on("searchKeydown",e[63]),t.$on("toggleSearchMode",e[62]),t.$on("toggleTheme",e[55]),t.$on("openSettingsDrawer",e[60]),t.$on("openLoginModal",e[56]);let A=e[14]&&my(e);s=new Op({props:{isDarkTheme:e[0],tabs:e[10],selectedTab:e[5]}}),s.$on("selectTab",e[91]),s.$on("closeSearchTab",e[92]);const $=[$y,Ay,Cy,Sy,xy,ky,Ey,by,wy],T=[];function I(e,t){return 96&t[0]&&(f=null),"export"===e[5]?0:"import"===e[5]?1:"events"===e[5]?2:"compose"===e[5]?3:"managed-acl"===e[5]?4:"sprocket"===e[5]?5:"recovery"===e[5]?6:(null==f&&(f=!!e[6].some(e[89])),f?7:8)}p=I(e,[-1,-1,-1,-1,-1,-1]),y=T[p]=$[p](e);let R=e[13]&&Yy(e);function L(t){e[115](t)}let P={isDarkTheme:e[0]};return void 0!==e[11]&&(P.showModal=e[11]),b=new $h({props:P}),_.push(()=>J(b,"showModal",L)),b.$on("login",e[57]),b.$on("close",e[59]),{c(){Z(t.$$.fragment),r=g(),A&&A.c(),o=g(),i=h("div"),Z(s.$$.fragment),a=g(),l=h("main"),y.c(),v=g(),R&&R.c(),m=g(),Z(b.$$.fragment),w(l,"class","main-content svelte-fgl5p8"),w(i,"class","app-container svelte-fgl5p8"),S(i,"dark-theme",e[0])},m(e,n){G(t,e,n),u(e,r,n),A&&A.m(e,n),u(e,o,n),u(e,i,n),G(s,i,null),c(i,a),c(i,l),T[p].m(l,null),u(e,v,n),R&&R.m(e,n),u(e,m,n),G(b,e,n),k=!0},p(e,r){const a={};1&r[0]&&(a.isDarkTheme=e[0]),16384&r[0]&&(a.isSearchMode=e[14]),2&r[0]&&(a.isLoggedIn=e[1]),16&r[0]&&(a.userRole=e[4]),512&r[0]&&(a.currentEffectiveRole=e[9]),8&r[0]&&(a.userProfile=e[3]),4&r[0]&&(a.userPubkey=e[2]),!n&&32768&r[0]&&(n=!0,a.searchQuery=e[15],N(()=>n=!1)),t.$set(a),e[14]?A?(A.p(e,r),16384&r[0]&&W(A,1)):(A=my(e),A.c(),W(A,1),A.m(o.parentNode,o)):A&&(z(),V(A,1,1,()=>{A=null}),K());const c={};1&r[0]&&(c.isDarkTheme=e[0]),1024&r[0]&&(c.tabs=e[10]),32&r[0]&&(c.selectedTab=e[5]),s.$set(c);let u=p;p=I(e,r),p===u?T[p].p(e,r):(z(),V(T[u],1,1,()=>{T[u]=null}),K(),y=T[p],y?y.p(e,r):(y=T[p]=$[p](e),y.c()),W(y,1),y.m(l,null)),(!k||1&r[0])&&S(i,"dark-theme",e[0]),e[13]?R?R.p(e,r):(R=Yy(e),R.c(),R.m(m.parentNode,m)):R&&(R.d(1),R=null);const d={};1&r[0]&&(d.isDarkTheme=e[0]),!E&&2048&r[0]&&(E=!0,d.showModal=e[11],N(()=>E=!1)),b.$set(d)},i(e){k||(W(t.$$.fragment,e),W(A),W(s.$$.fragment,e),W(y),W(b.$$.fragment,e),k=!0)},o(e){V(t.$$.fragment,e),V(A),V(s.$$.fragment,e),V(y),V(b.$$.fragment,e),k=!1},d(e){Q(t,e),e&&d(r),A&&A.d(e),e&&d(o),e&&d(i),Q(s),T[p].d(),e&&d(v),R&&R.d(e),e&&d(m),Q(b,e)}}}let cv=!1;function uv(e){return e?e.slice(0,8)+"..."+e.slice(-8):"unknown"}function dv(e,t=100){return e?e.length>t?e.slice(0,t)+"...":e:""}function fv(e){return e?new Date(1e3*e).toLocaleString():""}async function hv(e,t){try{const n=JSON.stringify(e);await navigator.clipboard.writeText(n);const r=t.target.closest(".copy-json-btn");if(r){const e=r.textContent;r.textContent="✅",r.style.backgroundColor="#4CAF50",setTimeout(()=>{r.textContent=e,r.style.backgroundColor=""},2e3)}}catch(n){console.error("Failed to copy to clipboard:",n);try{const n=document.createElement("textarea");n.value=JSON.stringify(e),document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n);const r=t.target.closest(".copy-json-btn");if(r){const e=r.textContent;r.textContent="✅",r.style.backgroundColor="#4CAF50",setTimeout(()=>{r.textContent=e,r.style.backgroundColor=""},2e3)}}catch(e){console.error("Fallback copy also failed:",e),alert("Failed to copy to clipboard. Please copy manually.")}}}function pv(e,t,n){let r,o,i,s,a;"undefined"!=typeof window&&(window.debugIndexedDB=mh);let l=!1,c=!1,u=!1,d="",f="",h=null,p="",g=null,y=!1,v=localStorage.getItem("selectedTab")||"export",m=!1,w="",E=[],k=[],x=null,S=new Set,C=!1,A=!0,$=null,T="",R=new Map,_=[],L=0;const P=3e5;let O=[],B=!0,j=null,N="",M=null,U=[],F=!1,D="",q="info",H=!1,z=null,K="",W="",V=null,J="",Z=[],G=!1,Q=!0,Y=null;const X=[{value:0,label:"User Metadata (0)"},{value:3,label:"Follows (3)"},{value:1e4,label:"Mute list (10000)"},{value:10001,label:"Pin list (10001)"},{value:10002,label:"Relay List Metadata (10002)"},{value:10003,label:"Bookmark list (10003)"},{value:10004,label:"Communities list (10004)"},{value:10005,label:"Public chats list (10005)"},{value:10006,label:"Blocked relays list (10006)"},{value:10007,label:"Search relays list (10007)"},{value:10009,label:"User groups (10009)"},{value:10012,label:"Favorite relays list (10012)"},{value:10013,label:"Private event relay list (10013)"},{value:10015,label:"Interests list (10015)"},{value:10019,label:"Nutzap Mint Recommendation (10019)"},{value:10020,label:"Media follows (10020)"},{value:10030,label:"User emoji list (10030)"},{value:10050,label:"Relay list to receive DMs (10050)"},{value:10051,label:"KeyPackage Relays List (10051)"},{value:10063,label:"User server list (10063)"},{value:10096,label:"File storage server list (10096)"},{value:10166,label:"Relay Monitor Announcement (10166)"},{value:10312,label:"Room Presence (10312)"},{value:10377,label:"Proxy Announcement (10377)"},{value:11111,label:"Transport Method Announcement (11111)"},{value:13194,label:"Wallet Info (13194)"},{value:17375,label:"Cashu Wallet Event (17375)"},{value:3e4,label:"Follow sets (30000)"},{value:30001,label:"Generic lists (30001)"},{value:30002,label:"Relay sets (30002)"},{value:30003,label:"Bookmark sets (30003)"},{value:30004,label:"Curation sets (30004)"},{value:30005,label:"Video sets (30005)"},{value:30007,label:"Kind mute sets (30007)"},{value:30008,label:"Profile Badges (30008)"},{value:30009,label:"Badge Definition (30009)"},{value:30015,label:"Interest sets (30015)"},{value:30017,label:"Create or update a stall (30017)"},{value:30018,label:"Create or update a product (30018)"},{value:30019,label:"Marketplace UI/UX (30019)"},{value:30020,label:"Product sold as an auction (30020)"},{value:30023,label:"Long-form Content (30023)"},{value:30024,label:"Draft Long-form Content (30024)"},{value:30030,label:"Emoji sets (30030)"},{value:30040,label:"Curated Publication Index (30040)"},{value:30041,label:"Curated Publication Content (30041)"},{value:30063,label:"Release artifact sets (30063)"},{value:30078,label:"Application-specific Data (30078)"},{value:30166,label:"Relay Discovery (30166)"},{value:30267,label:"App curation sets (30267)"},{value:30311,label:"Live Event (30311)"},{value:30312,label:"Interactive Room (30312)"},{value:30313,label:"Conference Event (30313)"},{value:30315,label:"User Statuses (30315)"},{value:30388,label:"Slide Set (30388)"},{value:30402,label:"Classified Listing (30402)"},{value:30403,label:"Draft Classified Listing (30403)"},{value:30617,label:"Repository announcements (30617)"},{value:30618,label:"Repository state announcements (30618)"},{value:30818,label:"Wiki article (30818)"},{value:30819,label:"Redirects (30819)"},{value:31234,label:"Draft Event (31234)"},{value:31388,label:"Link Set (31388)"},{value:31890,label:"Feed (31890)"},{value:31922,label:"Date-Based Calendar Event (31922)"},{value:31923,label:"Time-Based Calendar Event (31923)"},{value:31924,label:"Calendar (31924)"},{value:31925,label:"Calendar Event RSVP (31925)"},{value:31989,label:"Handler recommendation (31989)"},{value:31990,label:"Handler information (31990)"},{value:32267,label:"Software Application (32267)"},{value:34550,label:"Community Definition (34550)"},{value:37516,label:"Geocache listing (37516)"},{value:38172,label:"Cashu Mint Announcement (38172)"},{value:38173,label:"Fedimint Announcement (38173)"},{value:38383,label:"Peer-to-peer Order events (38383)"},{value:39089,label:"Starter packs (39089)"},{value:39092,label:"Media starter packs (39092)"},{value:39701,label:"Web bookmarks (39701)"}],ee={0:"User Metadata",1:"Short Text Note",2:"Recommend Relay",3:"Follows",4:"Encrypted Direct Messages",5:"Event Deletion Request",6:"Repost",7:"Reaction",8:"Badge Award",9:"Chat Message",10:"Group Chat Threaded Reply",11:"Thread",12:"Group Thread Reply",13:"Seal",14:"Direct Message",15:"File Message",16:"Generic Repost",17:"Reaction to a website",20:"Picture",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1021:"Bid",1022:"Bid Confirmation",1040:"OpenTimestamps",1063:"File Metadata",1311:"Live Chat Message",1971:"Problem Tracker",1984:"Reporting",1985:"Label",4550:"Community Post Approval",5e3:"Job Request",5999:"Job Request",6e3:"Job Result",6999:"Job Result",7e3:"Job Feedback",9041:"Zap Goal",9734:"Zap Request",9735:"Zap",9882:"Highlights",1e4:"Mute list",10001:"Pin list",10002:"Relay List Metadata",10003:"Bookmarks list",10004:"Communities list",10005:"Public Chats list",10006:"Blocked Relays list",10007:"Search Relays list",10015:"Interests",10030:"User Emoji list",10050:"DM relays",10096:"File Storage Server List",13194:"Wallet Service Info",21e3:"Lightning pub RPC",22242:"Client Authentication",23194:"Wallet Request",23195:"Wallet Response",23196:"Wallet Notification",23197:"Wallet Notification",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Follow sets",30001:"Generic lists",30002:"Relay sets",30003:"Bookmark sets",30004:"Curation sets",30008:"Profile Badges",30009:"Badge Definition",30015:"Interest sets",30017:"Stall Definition",30018:"Product Definition",30019:"Marketplace UI/UX",30020:"Product sold as an auction",30023:"Long-form Content",30024:"Draft Long-form Content",30030:"Emoji sets",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30402:"Classified Listing",30403:"Draft Classified Listing",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler recommendation",31990:"Handler information",34235:"Video Event Horizontal",34236:"Video Event Vertical",34550:"Community Definition"};function te(e){S.has(e)?S.delete(e):S.add(e),n(17,S)}async function ne(e){if(!u)return void alert("Please log in first");const t=k.find(t=>t.id===e);if(!t)return void alert("Event not found");if("admin"===p||"owner"===p||"write"===p&&t.pubkey&&t.pubkey===d){if(confirm("Are you sure you want to delete this event?"))try{if(!g)throw new Error("Signer not available for signing");const r={kind:5,created_at:Math.floor(Date.now()/1e3),tags:[["e",e]],content:""};console.log("Created delete event template:",r),console.log("User pubkey:",d),console.log("Target event:",t),console.log("Target event pubkey:",t.pubkey);const o=await g.signEvent(r);console.log("Signed delete event:",o),console.log("Signed delete event pubkey:",o.pubkey),console.log("Delete event tags:",o.tags);const i=`wss://${window.location.host}`;try{const e=await fy(i,o,g,d);e.success?console.log("Delete event published successfully to ORLY relay"):console.error("Failed to publish delete event:",e.reason)}catch(e){console.error("Error publishing delete event:",e)}const s=t.pubkey&&t.pubkey===d;if(s){const t=await oh.publish(o);if(console.log("Delete event published:",t),!(t.success&&t.okCount>0))throw new Error("No relays accepted the delete event");{await new Promise(e=>setTimeout(e,2e3));try{const n=await gh(e,{timeout:5e3});n?(console.warn("Event still exists after deletion attempt:",n),alert(`Warning: Delete event was accepted by ${t.okCount} relay(s), but the event still exists on the relay. This may indicate the relay does not properly handle delete events.`)):console.log("Event successfully deleted and verified")}catch(e){console.log("Could not fetch event after deletion (likely deleted):",e.message)}try{const t=await yh(e,{timeout:5e3});if(t.length>0){console.log(`Delete event verification: Found ${t.length} delete event(s) targeting ${e}`);const n=t.find(e=>e.pubkey&&e.pubkey===d);n?console.log("Our delete event found in database:",n.id):console.warn("Our delete event not found in database, but other delete events exist")}else console.warn("No delete events found in database for target event:",e)}catch(e){console.log("Could not verify delete event in database:",e.message)}n(82,k=k.filter(t=>t.id!==e)),O=O.filter(t=>t.id!==e),_=_.filter(t=>t.id!==e);for(const[t,n]of R)n.events&&(n.events=n.events.filter(t=>t.id!==e),R.set(t,n));se(),console.log("Reloading events to show delete event...");const r=cv&&u&&d?[d]:null;await Ce(!0,r),alert(`Event deleted successfully (accepted by ${t.okCount} relay(s))`)}}else{const t=`wss://${window.location.host}/`,r=new rh;await r.connectToRelay(t);const i=await r.publish(o);if(console.log("Delete event published to local relay only:",i),!(i.success&&i.okCount>0))throw new Error("Local relay did not accept the delete event");{await new Promise(e=>setTimeout(e,2e3));try{const t=await gh(e,{timeout:5e3});t?(console.warn("Event still exists after deletion attempt:",t),alert(`Warning: Delete event was accepted by ${i.okCount} relay(s), but the event still exists on the relay. This may indicate the relay does not properly handle delete events.`)):console.log("Event successfully deleted and verified")}catch(e){console.log("Could not fetch event after deletion (likely deleted):",e.message)}try{const t=await yh(e,{timeout:5e3});if(t.length>0){console.log(`Delete event verification: Found ${t.length} delete event(s) targeting ${e}`);const n=t.find(e=>e.pubkey&&e.pubkey===d);n?console.log("Our delete event found in database:",n.id):console.warn("Our delete event not found in database, but other delete events exist")}else console.warn("No delete events found in database for target event:",e)}catch(e){console.log("Could not verify delete event in database:",e.message)}n(82,k=k.filter(t=>t.id!==e)),O=O.filter(t=>t.id!==e),_=_.filter(t=>t.id!==e);for(const[t,n]of R)n.events&&(n.events=n.events.filter(t=>t.id!==e),R.set(t,n));se(),console.log("Reloading events to show delete event...");const t=cv&&u&&d?[d]:null;await Ce(!0,t),alert("Event deleted successfully (local relay only - admin/owner deleting other user's event)")}}}catch(e){console.error("Failed to delete event:",e),alert("Failed to delete event: "+e.message)}}else alert("You do not have permission to delete this event")}async function re(){const e=J?parseInt(J):V;if(null==e||isNaN(e))console.log("No valid kind to load, kindToUse:",e);else if(u){console.log("Loading recovery events for kind:",e,"user:",d),n(29,G=!0);try{const t=[{kinds:[e],authors:[d],limit:100}];Y&&(t[0].until=Y),console.log("Recovery filters:",t);const r=await async function(e,t={}){const{timeout:n=3e4,cacheFirst:r=!0,cacheOnly:o=!1}=t;let i=[];if(r||o)try{if(i=await dh(e),console.log(`Found ${i.length} events in cache`),o||i.length>0)return i}catch(e){console.warn("Failed to query cache",e)}if(!o){const t=await ph(e,{timeout:n,useCache:!1});return console.log(`Fetched ${t.length} events from relay`),t}return i}(t,{timeout:3e4,cacheFirst:!0});console.log("Recovery events received:",r.length),console.log("Recovery events kinds:",r.map(e=>e.kind)),n(28,Z=Y?[...Z,...r]:r),r.length>0?(Y=Math.min(...r.map(e=>e.created_at)),n(30,Q=100===r.length)):n(30,Q=!1)}catch(e){console.error("Failed to load recovery events:",e)}finally{n(29,G=!1)}}else console.log("Not logged in, cannot load recovery events")}async function oe(e){if(confirm("Are you sure you want to repost this event?"))try{const t=`wss://${window.location.host}/`;console.log("Reposting event to local relay:",t,e);const r={...e};if(r.created_at=Math.floor(Date.now()/1e3),r.id="",r.sig="",e.kind>=3e4&&e.kind<=39999){const t=e.tags.find(e=>"d"===e[0]);t&&(r.tags=r.tags.filter(e=>"d"!==e[0]),r.tags.push(t))}if(g){const e=await g.signEvent(r);console.log("Signed event for repost:",e);const o=await oh.publish(e,[t]);console.log("Repost publish result:",o),o.success&&o.okCount>0?(alert("Event reposted successfully!"),n(30,Q=!1),await re()):alert("Failed to repost event. Check console for details.")}else alert("No signer available. Please log in.")}catch(e){console.error("Error reposting event:",e),alert("Error reposting event: "+e.message)}}async function ie(e){if(confirm("Are you sure you want to repost this event to all your write relays?"))try{const t=await async function(){if(!d)return[];try{const e=await dh([{kinds:[10002],authors:[d],limit:1}]);if(0===e.length)return console.log("No relay list event found for user"),[];const t=e[0];console.log("Found relay list event:",t);const n=[];for(const e of t.tags)if("r"===e[0]&&e.length>=2){const t=e[1],r=e.length>=3?e[2]:null;r&&"write"!==r||n.push(t)}return console.log("Found write relays:",n),n}catch(e){return console.error("Error fetching user write relays:",e),[]}}(),r=`wss://${window.location.host}/`,o=[r,...t.filter(e=>e!==r)];1===o.length&&alert("No write relays found in your relay list. Only posting to local relay."),console.log("Reposting event to all relays:",o,e);const i={...e};if(i.created_at=Math.floor(Date.now()/1e3),i.id="",i.sig="",e.kind>=3e4&&e.kind<=39999){const t=e.tags.find(e=>"d"===e[0]);t&&(i.tags=i.tags.filter(e=>"d"!==e[0]),i.tags.push(t))}if(g){const e=await g.signEvent(i);console.log("Signed event for repost to all:",e);const t=await oh.publish(e,o);console.log("Repost to all publish result:",t),t.success&&t.okCount>0?(alert(`Event reposted successfully to ${o.length} relays!`),n(30,Q=!1),await re()):alert("Failed to repost event. Check console for details.")}else alert("No signer available. Please log in.")}catch(e){console.error("Error reposting event to all:",e),alert("Error reposting event to all: "+e.message)}}if("undefined"!=typeof localStorage){const e=localStorage.getItem("isDarkTheme");null!==e&&(l=JSON.parse(e));const t=localStorage.getItem("nostr_auth_method"),r=localStorage.getItem("nostr_pubkey");t&&r&&(u=!0,d=r,f=t,"extension"===t&&window.nostr&&(g=window.nostr),ke(),xe()),function(){if("undefined"==typeof localStorage)return;try{const t=localStorage.getItem("app_state");if(t){const r=JSON.parse(t);r.selectedTab&&he.some(e=>e.id===r.selectedTab)&&n(5,v=r.selectedTab),r.expandedEvents&&n(17,S=new Set(r.expandedEvents)),r.globalEventsCache&&(_=r.globalEventsCache),r.globalCacheTimestamp&&(L=r.globalCacheTimestamp),void 0!==r.hasMoreEvents&&(A=r.hasMoreEvents),r.oldestEventTimestamp&&($=r.oldestEventTimestamp),void 0!==r.hasMoreMyEvents&&(B=r.hasMoreMyEvents),r.oldestMyEventTimestamp&&(j=r.oldestMyEventTimestamp),_.length>0&&((e=L)&&Date.now()-e<P)&&n(82,k=_)}}catch(e){console.error("Failed to load persistent state:",e)}var e}(),async function(){try{const e=await fetch("/api/sprocket/config",{method:"GET",headers:{"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(84,H=t.enabled)}}catch(e){console.error("Error loading sprocket config:",e)}}()}function se(){if("undefined"==typeof localStorage)return;const e={selectedTab:v,expandedEvents:Array.from(S),globalEventsCache:_,globalCacheTimestamp:L,hasMoreEvents:A,oldestEventTimestamp:$};localStorage.setItem("app_state",JSON.stringify(e))}function ae(e){_=e.sort((e,t)=>t.created_at-e.created_at),L=Date.now(),se()}async function le(){if(u&&"owner"===p&&H)try{n(21,F=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});e.ok?n(19,M=await e.json()):fe("Failed to load sprocket status","error")}catch(e){fe(`Error loading sprocket status: ${e.message}`,"error")}finally{n(21,F=!1)}}async function ce(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/versions",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/versions")}`,"Content-Type":"application/json"}});e.ok?n(20,U=await e.json()):fe("Failed to load versions","error")}catch(e){fe(`Error loading versions: ${e.message}`,"error")}finally{n(21,F=!1)}}async function ue(e){u&&"owner"===p&&(n(18,N=e.content),fe(`Loaded version: ${e.name}`,"success"))}async function de(e){if(u&&"owner"===p&&confirm(`Are you sure you want to delete version ${e}?`))try{n(21,F=!0);const t=await fetch("/api/sprocket/delete-version",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/delete-version")}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e})});if(t.ok)fe(`Version ${e} deleted successfully`,"success"),await ce();else{fe(`Failed to delete version: ${await t.text()}`,"error")}}catch(e){fe(`Error deleting version: ${e.message}`,"error")}finally{n(21,F=!1)}}function fe(e,t="info"){n(22,D=e),n(23,q=t),setTimeout(()=>{n(22,D="")},5e3)}const he=[{id:"export",icon:"📤",label:"Export"},{id:"import",icon:"💾",label:"Import",requiresAdmin:!0},{id:"events",icon:"📡",label:"Events"},{id:"compose",icon:"✏️",label:"Compose",requiresWrite:!0},{id:"recovery",icon:"🔄",label:"Recovery"},{id:"managed-acl",icon:"🛡️",label:"Managed ACL",requiresOwner:!0},{id:"sprocket",icon:"⚙️",label:"Sprocket",requiresOwner:!0}];function pe(e){n(5,v=e),"sprocket"===e&&u&&"owner"===p&&H&&(le(),ce()),se()}function ge(){n(13,y=!1)}function ye(e,t){const r=`search-${Date.now()}`,o={id:r,icon:"🔍",label:t,isSearchTab:!0,filter:e};n(6,E=[...E,o]),n(5,v=r),R.set(r,{filter:e,events:[],isLoading:!1,hasMore:!0,oldestTimestamp:null}),we(r,!0)}function ve(e){me(e)}function me(e){n(6,E=E.filter(t=>t.id!==e)),R.delete(e),v===e&&n(5,v="export")}async function we(e,t=!0){const n=R.get(e);if(n&&!n.isLoading){n.isLoading=!0,R.set(e,n);try{const r={...n.filter};!t&&n.oldestTimestamp&&(r.until=n.oldestTimestamp),t||(r.limit=200),console.log("Loading search results with filter:",r);const o=await ph([r],{timeout:3e4});if(console.log("Received search results:",o.length,"events"),n.events=t?o.sort((e,t)=>t.created_at-e.created_at):[...n.events,...o].sort((e,t)=>t.created_at-e.created_at),o.length>0){const e=Math.min(...o.map(e=>e.created_at));(!n.oldestTimestamp||e<n.oldestTimestamp)&&(n.oldestTimestamp=e)}n.hasMore=o.length===(t?r.limit||100:200),n.isLoading=!1,R.set(e,n)}catch(t){console.error("Failed to load search results:",t),n.isLoading=!1,R.set(e,n),alert("Failed to load search results: "+t.message)}}}function be(e,t){const{scrollTop:n,scrollHeight:r,clientHeight:o}=e.target;if(r-n-o<100){const e=R.get(t);e&&!e.isLoading&&e.hasMore&&async function(e){await we(e,!1)}(t)}}async function Ee(){if(u&&d&&!h)try{console.log("Auto-fetching profile for:",d),await vh(),n(3,h=await hh(d)),console.log("Profile auto-loaded:",h)}catch(e){console.error("Failed to auto-load profile:",e)}}async function ke(){if(u&&d)try{const e=await fetch(`/api/permissions/${d}`);if(e.ok){const t=await e.json();n(4,p=t.permission||""),console.log("User role loaded:",p),console.log("Is owner?","owner"===p)}else console.error("Failed to fetch user role:",e.status),n(4,p="")}catch(e){console.error("Error fetching user role:",e),n(4,p="")}else n(4,p="")}async function xe(){try{const e=await fetch("/api/acl-mode");if(e.ok){const t=await e.json();n(8,K=t.acl_mode||""),console.log("ACL mode loaded:",K)}else console.error("Failed to fetch ACL mode:",e.status),n(8,K="")}catch(e){console.error("Error fetching ACL mode:",e),n(8,K="")}}async function Se(e=[]){if(u)if(0!==e.length||"admin"===a||"owner"===a)try{const t=await Te("/api/export","POST"),n=await fetch("/api/export",{method:"POST",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({pubkeys:e})});if(!n.ok)throw new Error(`Export failed: ${n.status} ${n.statusText}`);const r=await n.blob(),o=window.URL.createObjectURL(r),i=document.createElement("a");i.href=o;const s=n.headers.get("Content-Disposition");let a="events.jsonl";if(s){const e=s.match(/filename="([^"]+)"/);e&&(a=e[1])}i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(o)}catch(e){console.error("Export failed:",e),alert("Export failed: "+e.message)}else alert("Admin or owner permission required to export all events");else alert("Please log in first")}async function Ce(e=!1,t=null){if(!u||"read"!==p&&"write"!==p&&"admin"!==p&&"owner"!==p)alert("Read, write, admin, or owner permission required");else if(!C){n(7,C=!0),e&&($=null);try{console.log("Loading events with authors filter:",t,"including delete events");const r=e?Math.floor(Date.now()/1e3):$,o=await async function(e={}){const{limit:t=100,since:n=null,until:r=null,authors:o=null,kinds:i=null,...s}=e,a=[{...s}];return n&&(a[0].since=n),r&&(a[0].until=r),o&&(a[0].authors=o),i&&(a[0].kinds=i),t&&(a[0].limit=t),await ph(a,{timeout:3e4})}({limit:e?100:200,until:r,authors:t});if(console.log("Received events:",o.length,"events"),t&&o.length>0){const e=o.filter(e=>e.pubkey&&e.pubkey!==d);e.length>0&&console.warn("Server returned non-user events:",e.length,"out of",o.length)}if(e?(n(82,k=o.sort((e,t)=>t.created_at-e.created_at)),ae(o)):(n(82,k=[...k,...o].sort((e,t)=>t.created_at-e.created_at)),ae(k)),o.length>0){const e=Math.min(...o.map(e=>e.created_at));(!$||e<$)&&($=e)}A=o.length===(e?1e3:200),e&&A&&setTimeout(()=>{if("events"===v){const e=document.querySelectorAll(".events-view-content")[0];e&&e.scrollHeight<=e.clientHeight&&Ae()}},100)}catch(e){console.error("Failed to load events:",e),alert("Failed to load events: "+e.message)}finally{n(7,C=!1)}}}async function Ae(){await Ce(!1)}let $e=!1;async function Te(e,t){if(!u||!d)throw new Error("Not logged in");const n={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",window.location.origin+e],["method",t.toUpperCase()]],content:"",pubkey:d};let r;if(g&&"extension"===f)try{r=await g.signEvent(n)}catch(e){throw new Error("Failed to sign with extension: "+e.message)}else{if("nsec"!==f)throw new Error("No valid signer available");n.id="mock-id-"+Date.now(),n.sig="mock-signature-"+Date.now(),r=n}const o=JSON.stringify(r);return`Nostr ${btoa(o)}`}async function Ie(e,t){if(!u||!d)throw new Error("Not logged in");const n={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",window.location.origin+t],["method",e.toUpperCase()]],content:"",pubkey:d};let r;if(g&&"extension"===f)try{r=await g.signEvent(n)}catch(e){throw new Error("Failed to sign with extension: "+e.message)}else{if("nsec"!==f)throw new Error("No valid signer available");n.id="mock-id-"+Date.now(),n.sig="mock-signature-"+Date.now(),r=n}const o=JSON.stringify(r);return btoa(o)}function Re(e){n(83,T=e),localStorage.setItem("viewAsRole",e),console.log("View as role changed to:",e,"Current effective role:",a)}T=localStorage.getItem("viewAsRole")||"";return e.$$.update=()=>{var t;if(6&e.$$.dirty[0]|1048576&e.$$.dirty[2]&&n(32,r=k.sort((e,t)=>t.created_at-e.created_at)),8&e.$$.dirty[0]&&n(31,o=h?.about?(t=h.about,String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")).replace(/\n{2,}/g,"<br>"):""),16&e.$$.dirty[0]|2097152&e.$$.dirty[2]&&n(9,a=T&&""!==T?T:p),786&e.$$.dirty[0]|6291456&e.$$.dirty[2]&&n(86,i=he.filter(e=>{const t=a;return!(e.requiresAdmin&&(!u||"admin"!==t&&"owner"!==t))&&(!(e.requiresOwner&&(!u||"owner"!==t))&&(!(e.requiresWrite&&(!u||"read"===t))&&(!("sprocket"===e.id&&!H)&&(("managed-acl"!==e.id||"managed"===K)&&(console.log(`Tab ${e.id} filter check:`,{isLoggedIn:u,userRole:p,viewAsRole:T,currentRole:t,requiresAdmin:e.requiresAdmin,requiresOwner:e.requiresOwner,requiresWrite:e.requiresWrite,visible:!0}),!0)))))})),64&e.$$.dirty[0]|16777216&e.$$.dirty[2]&&n(10,s=[...i,...E]),1298&e.$$.dirty[0]|16777216&e.$$.dirty[2]&&console.log("Tabs debug:",{isLoggedIn:u,userRole:p,aclMode:K,filteredBaseTabs:i.map(e=>e.id),allTabs:s.map(e=>e.id)}),1&e.$$.dirty[0]&&"undefined"!=typeof document&&(l?document.body.classList.add("dark-theme"):document.body.classList.remove("dark-theme")),14&e.$$.dirty[0]&&u&&d&&!h&&Ee(),182&e.$$.dirty[0]|9437184&e.$$.dirty[2]&&"events"===v&&u&&("read"===p||"write"===p||"admin"===p||"owner"===p)&&0===k.length&&!$e&&!C){n(85,$e=!0);Ce(!0,null)}32&e.$$.dirty[0]|1048576&e.$$.dirty[2]&&("events"!==v||"events"===v&&k.length>0)&&n(85,$e=!1),32&e.$$.dirty[0]&&localStorage.setItem("selectedTab",v)},[l,u,d,h,p,v,E,C,K,a,s,c,g,y,m,w,x,S,N,M,U,F,D,q,z,W,V,J,Z,G,Q,o,r,R,X,function(e){return ee[e]||`Kind ${e}`},te,async function(){console.log("Toggle changed, showOnlyMyEvents:",cv),n(85,$e=!1),await Ce(!0,null)},ne,re,oe,ie,function(){console.log("selectRecoveryKind called, recoverySelectedKind:",V),null!=V?(n(27,J=""),n(28,Z=[]),Y=null,n(30,Q=!0),re()):console.log("No kind selected, skipping load")},function(){console.log("handleCustomKindInput called, recoveryCustomKind:",J);const e=parseInt(J);""!==J&&!isNaN(e)&&e>=0&&(n(26,V=null),n(28,Z=[]),Y=null,n(30,Q=!0),re())},function(e){const t=Z.filter(t=>t.kind===e.kind&&t.pubkey===e.pubkey),n=Math.max(...t.map(e=>e.created_at));return e.created_at===n},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(18,N=t.script_content||""),n(19,M=t),fe("Script loaded successfully","success")}else fe("Failed to load script","error")}catch(e){fe(`Error loading script: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:N});if(e.ok)fe("Script saved and updated successfully","success"),await le(),await ce();else{fe(`Failed to save script: ${await e.text()}`,"error")}}catch(e){fe(`Error saving script: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/restart",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/restart")}`,"Content-Type":"application/json"}});if(e.ok)fe("Sprocket restarted successfully","success"),await le();else{fe(`Failed to restart sprocket: ${await e.text()}`,"error")}}catch(e){fe(`Error restarting sprocket: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p&&confirm("Are you sure you want to delete the sprocket script? This will stop the current process."))try{n(21,F=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:""});if(e.ok)n(18,N=""),fe("Sprocket script deleted successfully","success"),await le(),await ce();else{fe(`Failed to delete script: ${await e.text()}`,"error")}}catch(e){fe(`Error deleting script: ${e.message}`,"error")}finally{n(21,F=!1)}},ce,ue,de,function(e){n(24,z=e.target.files[0])},async function(){if(u&&"owner"===p&&z)try{n(21,F=!0);const e=await z.text(),t=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:e});if(t.ok)n(18,N=e),fe("Script uploaded and updated successfully","success"),await le(),await ce();else{fe(`Failed to upload script: ${await t.text()}`,"error")}}catch(e){fe(`Error uploading script: ${e.message}`,"error")}finally{n(21,F=!1),n(24,z=null);const e=document.getElementById("sprocket-upload-file");e&&(e.value="")}},pe,function(){n(0,l=!l),"undefined"!=typeof localStorage&&localStorage.setItem("isDarkTheme",JSON.stringify(l))},function(){u||n(11,c=!0)},async function(e){const{method:t,pubkey:r,privateKey:o,signer:i}=e.detail;n(1,u=!0),n(2,d=r),f=t,n(12,g=i),n(11,c=!1);try{if(await vh(),"extension"===t&&i)oh.setSigner(i);else if("nsec"===t&&o){const e=new Hd(o);oh.setSigner(e)}n(3,h=await hh(r)),console.log("Profile loaded:",h)}catch(e){console.error("Failed to load profile:",e)}await ke(),await xe()},function(){n(1,u=!1),n(2,d=""),f="",n(3,h=null),n(4,p=""),n(12,g=null),n(13,y=!1),O=[],n(82,k=[]),_=[],L=0,se(),"undefined"!=typeof localStorage&&(localStorage.removeItem("nostr_auth_method"),localStorage.removeItem("nostr_pubkey"),localStorage.removeItem("nostr_privkey"))},function(){n(11,c=!1)},function(){n(13,y=!0)},ge,function(){n(14,m=!m),m||n(15,w="")},function(e){"Enter"===e.key&&w.trim()?(!function(e){const t=Ng({searchText:e,limit:100});ye(t,`Search: ${e}`)}(w.trim()),n(15,w=""),n(14,m=!1)):"Escape"===e.key&&(n(14,m=!1),n(15,w=""))},function(e){const{searchText:t,selectedKinds:r,pubkeys:o,eventIds:i,tags:s,sinceTimestamp:a,untilTimestamp:l,limit:c}=e.detail,u=Ng({searchText:t,kinds:r,authors:o,ids:i,tags:s,since:a,until:l,limit:c||100});let d="Filter";t?d=`Search: ${t.substring(0,20)}${t.length>20?"...":""}`:r.length>0?d=`Kinds: ${r.slice(0,3).join(", ")}${r.length>3?"...":""}`:o.length>0&&(d=`Authors: ${o.length}`),ye(u,d),n(14,m=!1)},function(){n(14,m=!1)},ve,me,we,be,Ee,async function(){await Se([])},async function(){await Se([d])},function(e){n(16,x=e.target.files[0])},async function(){if(!u||"admin"!==p&&"owner"!==p)alert("Admin or owner permission required");else if(x)try{const e=await Te("/api/import","POST"),t=new FormData;t.append("file",x);const r=await fetch("/api/import",{method:"POST",headers:{Authorization:e},body:t});if(!r.ok)throw new Error(`Import failed: ${r.status} ${r.statusText}`);await r.json();alert("Import started successfully"),n(16,x=null),document.getElementById("import-file").value=""}catch(e){console.error("Import failed:",e),alert("Import failed: "+e.message)}else alert("Please select a file")},Ce,function(e){const{scrollTop:t,scrollHeight:n,clientHeight:r}=e.target;n-t-r<100&&Ae()},function(){try{if(!W.trim())return void alert("Please enter some JSON to reformat");const e=JSON.parse(W);n(25,W=JSON.stringify(e,null,2))}catch(e){alert("Invalid JSON: "+e.message)}},async function(){try{if(!W.trim())return void alert("Please enter an event to sign");if(!u||!d)return void alert("Please log in to sign events");if(!g)return void alert("No signer available. Please log in with a valid authentication method.");const e=JSON.parse(W);e.pubkey=d,e.created_at=Math.floor(Date.now()/1e3),delete e.id,delete e.sig;const t=await g.signEvent(e);n(25,W=JSON.stringify(t,null,2)),alert("Event signed successfully!")}catch(e){console.error("Error signing event:",e),alert("Error signing event: "+e.message)}},async function(){try{if(!W.trim())return void alert("Please enter an event to publish");if(!u)return void alert("Please log in to publish events");if(!g)return void alert("No signer available. Please log in with a valid authentication method.");const e=JSON.parse(W);if(!e.id||!e.sig)return void alert('Event must be signed before publishing. Please click "Sign" first.');const t=`wss://${window.location.host}`,n=await fy(t,e,g,d);n.success?alert("Event published successfully to ORLY relay!"):alert(`Event publishing failed: ${n.reason||"Unknown error"}`)}catch(e){console.error("Error publishing event:",e),alert("Error publishing event: "+e.message)}},Re,function(){const e=["owner","admin","write","read"],t=e.indexOf(p);return-1===t?["read"]:e.slice(t)},k,T,H,$e,i,function(t){I.call(this,e,t)},function(t){I.call(this,e,t)},e=>e.id===v,function(e){w=e,n(15,w)},e=>pe(e.detail),e=>me(e.detail),e=>te(e.detail),e=>ne(e.detail),e=>hv(e.detail.event,e.detail.e),e=>Ce(e.detail.refresh,e.detail.authors),function(e){W=e,n(25,W)},function(e){N=e,n(18,N)},e=>ue(e.detail),e=>de(e.detail),function(){V=function(e){const t=e.querySelector(":checked");return t&&t.__value}(this),n(26,V),n(34,X)},function(){J=b(this.value),n(27,J)},e=>ie(e),e=>oe(e),(e,t)=>hv(e,t),e=>we(e.id,!0),e=>ve(e.id),e=>ne(e.id),e=>te(e.id),(e,t)=>"Enter"===t.key&&te(e.id),(e,t)=>hv(e,t),(e,t)=>be(t,e.id),e=>Re(e===p?"":e),e=>"Escape"===e.key&&ge(),function(e){c=e,n(11,c)}]}return new class extends ee{constructor(e){super(),X(this,e,pv,lv,i,{},null,[-1,-1,-1,-1,-1,-1])}}({target:document.body,props:{name:"world"}})}();
|
||
//# sourceMappingURL=bundle.js.map
|