Some checks failed
Go / build-and-release (push) Has been cancelled
- Add bunker-worker.js Web Worker for NIP-46 signing - Update rollup to build worker as separate bundle - Move bunker state to stores.js for persistence across tab switches - Worker maintains WebSocket connection independently of UI lifecycle Files modified: - app/web/src/bunker-worker.js: New Web Worker implementation - app/web/src/stores.js: Added bunker worker state management - app/web/src/BunkerView.svelte: Use worker instead of inline service - app/web/rollup.config.js: Build worker bundle separately 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
564 KiB
JavaScript
36 lines
564 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 i(e){return"function"==typeof e}function o(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}function l(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}function c(e,t,n){e.$$.on_destroy.push(l(t,n))}const u="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function d(e,t){e.appendChild(t)}function f(e,t,n){e.insertBefore(t,n||null)}function h(e){e.parentNode&&e.parentNode.removeChild(e)}function p(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}function g(e){return document.createElement(e)}function m(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function y(e){return document.createTextNode(e)}function w(){return y(" ")}function v(){return y("")}function A(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function b(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function k(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function I(e){return""===e?null:+e}function E(e,t){t=""+t,e.data!==t&&(e.data=t)}function C(e,t){e.value=null==t?"":t}function x(e,t,n,r){null==n?e.style.removeProperty(t):e.style.setProperty(t,n,r?"important":"")}function B(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){const t=e.querySelector(":checked");return t&&t.__value}function F(e,t,n){e.classList[n?"add":"remove"](t)}let Q;function D(e){Q=e}function R(){if(!Q)throw new Error("Function called outside component initialization");return Q}function $(e){R().$$.on_mount.push(e)}function P(e){R().$$.on_destroy.push(e)}function U(){const e=R();return(t,n,{cancelable:r=!1}={})=>{const i=e.$$.callbacks[t];if(i){const o=function(e,t,{bubbles:n=!1,cancelable:r=!1}={}){const i=document.createEvent("CustomEvent");return i.initCustomEvent(e,n,r,t),i}(t,n,{cancelable:r});return i.slice().forEach(t=>{t.call(e,o)}),!o.defaultPrevented}return!0}}function T(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e.call(this,t))}const N=[],L=[];let O=[];const M=[],_=Promise.resolve();let H=!1;function j(e){O.push(e)}function G(e){M.push(e)}const q=new Set;let K=0;function J(){if(0!==K)return;const e=Q;do{try{for(;K<N.length;){const e=N[K];K++,D(e),V(e.$$)}}catch(e){throw N.length=0,K=0,e}for(D(null),N.length=0,K=0;L.length;)L.pop()();for(let e=0;e<O.length;e+=1){const t=O[e];q.has(t)||(q.add(t),t())}O.length=0}while(N.length);for(;M.length;)M.pop()();H=!1,q.clear(),D(e)}function V(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 Y=new Set;let z;function W(){z={r:0,c:[],p:z}}function Z(){z.r||r(z.c),z=z.p}function X(e,t){e&&e.i&&(Y.delete(e),e.i(t))}function ee(e,t,n,r){if(e&&e.o){if(Y.has(e))return;Y.add(e),z.c.push(()=>{Y.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}else r&&r()}function te(e,t){const n=t.token={};function r(e,r,i,o){if(t.token!==n)return;t.resolved=o;let s=t.ctx;void 0!==i&&(s=s.slice(),s[i]=o);const a=e&&(t.current=e)(s);let l=!1;t.block&&(t.blocks?t.blocks.forEach((e,n)=>{n!==r&&e&&(W(),ee(e,1,1,()=>{t.blocks[n]===e&&(t.blocks[n]=null)}),Z())}):t.block.d(1),a.c(),X(a,1),a.m(t.mount(),t.anchor),l=!0),t.block=a,t.blocks&&(t.blocks[r]=a),l&&J()}if(!(i=e)||"object"!=typeof i&&"function"!=typeof i||"function"!=typeof i.then){if(t.current!==t.then)return r(t.then,1,t.value,e),!0;t.resolved=e}else{const n=R();if(e.then(e=>{D(n),r(t.then,1,t.value,e),D(null)},e=>{if(D(n),r(t.catch,2,t.error,e),D(null),!t.hasCatch)throw e}),t.current!==t.pending)return r(t.pending,0),!0}var i}function ne(e,t){e.d(1),t.delete(e.key)}function re(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function ie(e){e&&e.c()}function oe(e,n,o,s){const{fragment:a,after_update:l}=e.$$;a&&a.m(n,o),s||j(()=>{const n=e.$$.on_mount.map(t).filter(i);e.$$.on_destroy?e.$$.on_destroy.push(...n):r(n),e.$$.on_mount=[]}),l.forEach(j)}function se(e,t){const n=e.$$;null!==n.fragment&&(!function(e){const t=[],n=[];O.forEach(r=>-1===e.indexOf(r)?t.push(r):n.push(r)),n.forEach(e=>e()),O=t}(n.after_update),r(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function ae(e,t){-1===e.$$.dirty[0]&&(N.push(e),H||(H=!0,_.then(J)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function le(t,i,o,s,a,l,c,u=[-1]){const d=Q;D(t);const f=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(i.context||(d?d.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:i.target||d.$$.root};c&&c(f.root);let p=!1;if(f.ctx=o?o(t,i.props||{},(e,n,...r)=>{const i=r.length?r[0]:n;return f.ctx&&a(f.ctx[e],f.ctx[e]=i)&&(!f.skip_bound&&f.bound[e]&&f.bound[e](i),p&&ae(t,e)),n}):[],f.update(),p=!0,r(f.before_update),f.fragment=!!s&&s(f.ctx),i.target){if(i.hydrate){const e=function(e){return Array.from(e.childNodes)}(i.target);f.fragment&&f.fragment.l(e),e.forEach(h)}else f.fragment&&f.fragment.c();i.intro&&X(t.$$.fragment),oe(t,i.target,i.anchor,i.customElement),J()}D(d)}class ce{$destroy(){se(this,1),this.$destroy=e}$on(t,n){if(!i(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 ue(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function de(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 fe(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 he="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,pe=e=>e instanceof Uint8Array,ge=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),me=(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 ye(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)),!pe(e))throw new Error("expected Uint8Array, got "+typeof e);return e}let we=class{clone(){return this._cloneInto()}};function ve(e){const t=t=>e().update(ye(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ae(e=32){if(he&&"function"==typeof he.getRandomValues)return he.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}let be=class extends we{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=ge(this.buffer)}update(e){fe(this);const{view:t,buffer:n,blockLen:r}=this,i=(e=ye(e)).length;for(let o=0;o<i;){const s=Math.min(r-this.pos,i-o);if(s===r){const t=ge(e);for(;r<=i-o;o+=r)this.process(t,o);continue}n.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){fe(this),function(e,t){de(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:i}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>r-o&&(this.process(n,0),o=0);for(let e=o;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),a=Number(n&o),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),i),this.process(n,0);const s=ge(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],i)}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:i,destroyed:o,pos:s}=this;return e.length=r,e.pos=s,e.finished=i,e.destroyed=o,r%t&&e.buffer.set(n),e}};const ke=(e,t,n)=>e&t^~e&n,Ie=(e,t,n)=>e&t^e&n^t&n,Ee=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]),Ce=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),xe=new Uint32Array(64);let Be=class extends be{constructor(){super(64,32,8,!1),this.A=0|Ce[0],this.B=0|Ce[1],this.C=0|Ce[2],this.D=0|Ce[3],this.E=0|Ce[4],this.F=0|Ce[5],this.G=0|Ce[6],this.H=0|Ce[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:o,G:s,H:a}=this;return[e,t,n,r,i,o,s,a]}set(e,t,n,r,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)xe[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=xe[e-15],n=xe[e-2],r=me(t,7)^me(t,18)^t>>>3,i=me(n,17)^me(n,19)^n>>>10;xe[e]=i+xe[e-7]+r+xe[e-16]|0}let{A:n,B:r,C:i,D:o,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(me(s,6)^me(s,11)^me(s,25))+ke(s,a,l)+Ee[e]+xe[e]|0,u=(me(n,2)^me(n,13)^me(n,22))+Ie(n,r,i)|0;c=l,l=a,a=s,s=o+t|0,o=i,i=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,o=o+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,i,o,s,a,l,c)}roundClean(){xe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const Se=ve(()=>new Be),Fe=BigInt(0),Qe=BigInt(1),De=BigInt(2),Re=e=>e instanceof Uint8Array,$e=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Pe(e){if(!Re(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=$e[e[n]];return t}function Ue(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function Te(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return BigInt(""===e?"0":`0x${e}`)}function Ne(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,i=e.slice(r,r+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");n[t]=o}return n}function Le(e){return Te(Pe(e))}function Oe(e){if(!Re(e))throw new Error("Uint8Array expected");return Te(Pe(Uint8Array.from(e).reverse()))}function Me(e,t){return Ne(e.toString(16).padStart(2*t,"0"))}function _e(e,t){return Me(e,t).reverse()}function He(e,t,n){let r;if("string"==typeof t)try{r=Ne(t)}catch(n){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${n}`)}else{if(!Re(t))throw new Error(`${e} must be hex string or Uint8Array`);r=Uint8Array.from(t)}const i=r.length;if("number"==typeof n&&i!==n)throw new Error(`${e} expected ${n} bytes, got ${i}`);return r}function je(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!Re(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}const Ge=e=>(De<<BigInt(e-1))-Qe,qe=e=>new Uint8Array(e),Ke=e=>Uint8Array.from(e);function Je(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=qe(e),i=qe(e),o=0;const s=()=>{r.fill(1),i.fill(0),o=0},a=(...e)=>n(i,r,...e),l=(e=qe())=>{i=a(Ke([0]),e),r=a(),0!==e.length&&(i=a(Ke([1]),e),r=a())},c=()=>{if(o++>=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 je(...n)};return(e,t)=>{let n;for(s(),l(e);!(n=t(c()));)l();return s(),n}}const Ve={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 Ye(e,t,n={}){const r=(t,n,r)=>{const i=Ve[n];if("function"!=typeof i)throw new Error(`Invalid validator "${n}", expected function`);const o=e[t];if(!(r&&void 0===o||i(o,e)))throw new Error(`Invalid param ${String(t)}=${o} (${typeof o}), 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 ze=Object.freeze({__proto__:null,bitGet:function(e,t){return e>>BigInt(t)&Qe},bitLen:function(e){let t;for(t=0;e>Fe;e>>=Qe,t+=1);return t},bitMask:Ge,bitSet:(e,t,n)=>e|(n?Qe:Fe)<<BigInt(t),bytesToHex:Pe,bytesToNumberBE:Le,bytesToNumberLE:Oe,concatBytes:je,createHmacDrbg:Je,ensureBytes:He,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:Ne,hexToNumber:Te,numberToBytesBE:Me,numberToBytesLE:_e,numberToHexUnpadded:Ue,numberToVarBytesBE:function(e){return Ne(Ue(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:Ye});
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const We=BigInt(0),Ze=BigInt(1),Xe=BigInt(2),et=BigInt(3),tt=BigInt(4),nt=BigInt(5),rt=BigInt(8);function it(e,t){const n=e%t;return n>=We?n:t+n}function ot(e,t,n){if(n<=We||t<We)throw new Error("Expected power/modulo > 0");if(n===Ze)return We;let r=Ze;for(;t>We;)t&Ze&&(r=r*e%n),e=e*e%n,t>>=Ze;return r}function st(e,t,n){let r=e;for(;t-- >We;)r*=r,r%=n;return r}function at(e,t){if(e===We||t<=We)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=it(e,t),r=t,i=We,o=Ze;for(;n!==We;){const e=r%n,t=i-o*(r/n);r=n,n=e,i=o,o=t}if(r!==Ze)throw new Error("invert: does not exist");return it(i,t)}function lt(e){if(e%tt===et){const t=(e+Ze)/tt;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%rt===nt){const t=(e-nt)/rt;return function(e,n){const r=e.mul(n,Xe),i=e.pow(r,t),o=e.mul(n,i),s=e.mul(e.mul(o,Xe),i),a=e.mul(o,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-Ze)/Xe;let n,r,i;for(n=e-Ze,r=0;n%Xe===We;n/=Xe,r++);for(i=Xe;i<e&&ot(i,t,e)!==e-Ze;i++);if(1===r){const t=(e+Ze)/tt;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 o=(n+Ze)/Xe;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,i),n),c=e.pow(s,o),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,Ze<<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 ct=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ut(e,t){const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function dt(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 ft(e){const t=dt(e);return t+Math.ceil(t/2)}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const ht=BigInt(0),pt=BigInt(1);function gt(e){return function(e){const t=ct.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});Ye(e,t)}(e.Fp),Ye(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ut(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:mt,hexToBytes:yt}=ze,wt={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=wt;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:mt(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=wt,n="string"==typeof e?yt(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:i,l:o}=wt._parseInt(n.subarray(2)),{d:s,l:a}=wt._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,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)),i=t(n(e.r)),o=r.length/2,s=i.length/2,a=n(o),l=n(s);return`30${n(s+o+4)}02${l}${i}02${a}${r}`}},vt=BigInt(0),At=BigInt(1);BigInt(2);const bt=BigInt(3);function kt(e){const t=function(e){const t=gt(e);Ye(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:i}=t;if(n){if(!r.eql(i,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 i=t.toAffine();return je(Uint8Array.from([4]),n.toBytes(i.x),n.toBytes(i.y))}),i=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 o(e){const{a:r,b:i}=t,o=n.sqr(e),s=n.mul(o,e);return n.add(n.add(s,n.mul(e,r)),i)}if(!n.eql(n.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&vt<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:i,n:o}=t;if(n&&"bigint"!=typeof e){if(e instanceof Uint8Array&&(e=Pe(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:Le(He("private key",e,r))}catch(t){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof e}`)}return i&&(s=it(s,o)),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 i=e=>n.eql(e,n.ZERO);return i(t)&&i(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(i(He("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 i=n.sqr(r),s=o(e);if(!n.eql(i,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:i}=this,{px:o,py:s,pz:a}=e,l=n.eql(n.mul(t,a),n.mul(o,i)),c=n.eql(n.mul(r,a),n.mul(s,i));return l&&c}negate(){return new d(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,i=n.mul(r,bt),{px:o,py:s,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,f=n.mul(o,o),h=n.mul(s,s),p=n.mul(a,a),g=n.mul(o,s);return g=n.add(g,g),u=n.mul(o,a),u=n.add(u,u),l=n.mul(e,u),c=n.mul(i,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(i,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:i,pz:o}=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,bt);let m=n.mul(r,s),y=n.mul(i,a),w=n.mul(o,l),v=n.add(r,i),A=n.add(s,a);v=n.mul(v,A),A=n.add(m,y),v=n.sub(v,A),A=n.add(r,o);let b=n.add(s,l);return A=n.mul(A,b),b=n.add(m,w),A=n.sub(A,b),b=n.add(i,o),c=n.add(a,l),b=n.mul(b,c),c=n.add(y,w),b=n.sub(b,c),h=n.mul(p,A),c=n.mul(g,w),h=n.add(c,h),c=n.sub(y,h),h=n.add(y,h),f=n.mul(c,h),y=n.add(m,m),y=n.add(y,m),w=n.mul(p,w),A=n.mul(g,A),y=n.add(y,w),w=n.sub(m,w),w=n.mul(p,w),A=n.add(A,w),m=n.mul(y,A),f=n.add(f,m),m=n.mul(b,A),c=n.mul(v,c),c=n.sub(c,m),m=n.mul(v,y),h=n.mul(b,h),h=n.add(h,m),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===vt)return r;if(a(e),e===At)return this;const{endo:i}=t;if(!i)return h.unsafeLadder(this,e);let{k1neg:o,k1:s,k2neg:l,k2:c}=i.splitScalar(e),u=r,f=r,p=this;for(;s>vt||c>vt;)s&At&&(u=u.add(p)),c&At&&(f=f.add(p)),p=p.double(),s>>=At,c>>=At;return o&&(u=u.negate()),l&&(f=f.negate()),f=new d(n.mul(f.px,i.beta),f.py,f.pz),u.add(f)}multiply(e){a(e);let r,i,o=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:a,k2:l}=s.splitScalar(o);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),i=u.add(p)}else{const{p:e,f:t}=this.wNAF(o);r=e,i=t}return d.normalizeZ([r,i])[0]}multiplyAndAddUnsafe(e,t,n){const r=d.BASE,i=(e,t)=>t!==vt&&t!==At&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),o=i(this,t).add(i(e,n));return o.is0()?void 0:o}toAffine(e){const{px:t,py:r,pz:i}=this,o=this.is0();null==e&&(e=o?n.ONE:n.inv(i));const s=n.mul(t,e),a=n.mul(r,e),l=n.mul(i,e);if(o)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===At)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===At?this:n?n(d,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(d,this,e)}toHex(e=!0){return Pe(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,i=t;for(;n>ht;)n&pt&&(r=r.add(i)),i=i.double(),n>>=pt;return r},precomputeWindow(e,t){const{windows:n,windowSize:i}=r(t),o=[];let s=e,a=s;for(let e=0;e<n;e++){a=s,o.push(a);for(let e=1;e<i;e++)a=a.add(s),o.push(a);s=a.double()}return o},wNAF(t,i,o){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(o&u);o>>=f,r>a&&(r-=d,o+=pt);const s=t,h=t+Math.abs(r)-1,p=e%2!=0,g=r<0;0===r?c=c.add(n(p,i[s])):l=l.add(n(g,i[h]))}return{p:l,f:c}},wNAFCached(e,t,n,r){const i=e._WINDOW_SIZE||1;let o=t.get(e);return o||(o=this.precomputeWindow(e,i),1!==i&&t.set(e,r(o))),this.wNAF(i,o,n)}}}(d,t.endo?Math.ceil(f/2):f);return{CURVE:t,ProjectivePoint:d,normPrivateKeyToScalar:l,weierstrassEquation:o,isWithinCurveOrder:s}}function It(e){const t=function(e){const t=gt(e);return Ye(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,i=n.BYTES+1,o=2*n.BYTES+1;function s(e){return it(e,r)}function a(e){return at(e,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:d}=kt({...t,toBytes(e,t,r){const i=t.toAffine(),o=n.toBytes(i.x),s=je;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),o):s(Uint8Array.from([4]),o,n.toBytes(i.y))},fromBytes(e){const t=e.length,r=e[0],s=e.subarray(1);if(t!==i||2!==r&&3!==r){if(t===o&&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 ${i} compressed bytes or ${o} uncompressed bytes`)}{const e=Le(s);if(!(vt<(a=e)&&a<n.ORDER))throw new Error("Point is not on curve");const t=u(e);let i=n.sqrt(t);return!(1&~r)!==((i&At)===At)&&(i=n.neg(i)),{x:e,y:i}}var a}}),f=e=>Pe(Me(e,t.nByteLength));function h(e){return e>r>>At}const p=(e,t,n)=>Le(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=He("compactSignature",e,2*n),new g(p(e,0,n),p(e,n,2*n))}static fromDER(e){const{r:t,s:n}=wt.toSig(He("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:i,recovery:o}=this,c=v(He("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw new Error("recovery id invalid");const u=2===o||3===o?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const d=1&o?"03":"02",h=l.fromHex(d+f(u)),p=a(u),g=s(-c*p),m=s(i*p),y=l.BASE.multiplyAndAddUnsafe(h,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Ne(this.toDERHex())}toDERHex(){return wt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ne(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const m={isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=ft(t.n);return function(e,t,n=!1){const r=e.length,i=dt(t),o=ft(t);if(r<16||r<o||r>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${r}`);const s=it(n?Le(e):Oe(e),t-Ze)+Ze;return n?_e(s,i):Me(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=e instanceof Uint8Array,n="string"==typeof e,r=(t||n)&&e.length;return t?r===i||r===o:n?r===2*i||r===2*o:e instanceof l}const w=t.bits2int||function(e){const n=Le(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},v=t.bits2int_modN||function(e){return s(w(e))},A=Ge(t.nBitLength);function b(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(vt<=e&&e<A))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Me(e,t.nByteLength)}function k(e,r,i=I){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:o,randomBytes:u}=t;let{lowS:f,prehash:p,extraEntropy:m}=i;null==f&&(f=!0),e=He("msgHash",e),p&&(e=He("prehashed msgHash",o(e)));const y=v(e),A=c(r),k=[b(A),b(y)];if(null!=m){const e=!0===m?u(n.BYTES):m;k.push(He("extraEntropy",e))}const E=je(...k),C=y;return{seed:E,k2sig:function(e){const t=w(e);if(!d(t))return;const n=a(t),r=l.BASE.multiply(t).toAffine(),i=s(r.x);if(i===vt)return;const o=s(n*s(C+i*A));if(o===vt)return;let c=(r.x===i?0:2)|Number(r.y&At),u=o;return f&&h(o)&&(u=function(e){return h(e)?s(-e):e}(o),c^=1),new g(i,u,c)}}}const I={lowS:t.lowS,prehash:!1},E={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(y(e))throw new Error("first arg must be private key");if(!y(t))throw new Error("second arg must be public key");return l.fromHex(t).multiply(c(e)).toRawBytes(n)},sign:function(e,n,r=I){const{seed:i,k2sig:o}=k(e,n,r),s=t;return Je(s.hash.outputLen,s.nByteLength,s.hmac)(i,o)},verify:function(e,n,r,i=E){const o=e;if(n=He("msgHash",n),r=He("publicKey",r),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=i;let d,f;try{if("string"==typeof o||o instanceof Uint8Array)try{d=g.fromDER(o)}catch(e){if(!(e instanceof wt.Err))throw e;d=g.fromCompact(o)}else{if("object"!=typeof o||"bigint"!=typeof o.r||"bigint"!=typeof o.s)throw new Error("PARSE");{const{r:e,s:t}=o;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,m=v(n),y=a(p),w=s(m*y),A=s(h*y),b=l.BASE.multiplyAndAddUnsafe(f,w,A)?.toAffine();return!!b&&s(b.x)===h},ProjectivePoint:l,Signature:g,utils:m}}BigInt(4);let Et=class extends we{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");ue(e.outputLen),ue(e.blockLen)}(e);const n=ye(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,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return fe(this),this.iHash.update(e),this}digestInto(e){fe(this),de(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:i,blockLen:o,outputLen:s}=this;return e.finished=r,e.destroyed=i,e.blockLen=o,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 Ct=(e,t,n)=>new Et(e,t).update(n).digest();
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
function xt(e){return{hash:e,hmac:(t,...n)=>Ct(e,t,function(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!pe(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}(...n)),randomBytes:Ae}}Ct.create=(e,t)=>new Et(e,t);
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const Bt=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),St=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ft=BigInt(1),Qt=BigInt(2),Dt=(e,t)=>(e+t/Qt)/t;function Rt(e){const t=Bt,n=BigInt(3),r=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),l=BigInt(88),c=e*e*e%t,u=c*c*e%t,d=st(u,n,t)*u%t,f=st(d,n,t)*u%t,h=st(f,Qt,t)*c%t,p=st(h,i,t)*h%t,g=st(p,o,t)*p%t,m=st(g,a,t)*g%t,y=st(m,l,t)*m%t,w=st(y,a,t)*g%t,v=st(w,n,t)*u%t,A=st(v,s,t)*p%t,b=st(A,r,t)*c%t,k=st(b,Qt,t);if(!$t.eql($t.sqr(k),e))throw new Error("Cannot find square root");return k}const $t=function(e,t,n=!1,r={}){if(e<=We)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:i,nByteLength:o}=ut(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=lt(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:Ge(i),ZERO:We,ONE:Ze,create:t=>it(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return We<=t&&t<e},is0:e=>e===We,isOdd:e=>(e&Ze)===Ze,neg:t=>it(-t,e),eql:(e,t)=>e===t,sqr:t=>it(t*t,e),add:(t,n)=>it(t+n,e),sub:(t,n)=>it(t-n,e),mul:(t,n)=>it(t*n,e),pow:(e,t)=>function(e,t,n){if(n<We)throw new Error("Expected power > 0");if(n===We)return e.ONE;if(n===Ze)return t;let r=e.ONE,i=t;for(;n>We;)n&Ze&&(r=e.mul(r,i)),i=e.sqr(i),n>>=Ze;return r}(a,e,t),div:(t,n)=>it(t*at(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>at(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,i)=>e.is0(r)?t:(n[i]=t,e.mul(t,r)),e.ONE),i=e.inv(r);return t.reduceRight((t,r,i)=>e.is0(r)?t:(n[i]=e.mul(t,n[i]),e.mul(t,r)),i),n}(a,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?_e(e,o):Me(e,o),fromBytes:e=>{if(e.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${e.length}`);return n?Oe(e):Le(e)}});return Object.freeze(a)}(Bt,void 0,void 0,{sqrt:Rt}),Pt=function(e,t){const n=t=>It({...e,...xt(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:$t,n:St,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=St,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Ft*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,s=BigInt("0x100000000000000000000000000000000"),a=Dt(o*e,t),l=Dt(-r*e,t);let c=it(e-a*n-l*i,t),u=it(-a*r-l*o,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}}}},Se),Ut=BigInt(0),Tt=e=>"bigint"==typeof e&&Ut<e&&e<Bt,Nt={};function Lt(e,...t){let n=Nt[e];if(void 0===n){const t=Se(Uint8Array.from(e,e=>e.charCodeAt(0)));n=je(t,t),Nt[e]=n}return Se(je(n,...t))}const Ot=e=>e.toRawBytes(!0).slice(1),Mt=e=>Me(e,32),_t=e=>it(e,Bt),Ht=e=>it(e,St),jt=Pt.ProjectivePoint;function Gt(e){let t=Pt.utils.normPrivateKeyToScalar(e),n=jt.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:Ht(-t),bytes:Ot(n)}}function qt(e){if(!Tt(e))throw new Error("bad x: need 0 < x < p");const t=_t(e*e);let n=Rt(_t(t*e+BigInt(7)));n%Qt!==Ut&&(n=_t(-n));const r=new jt(e,n,Ft);return r.assertValidity(),r}function Kt(...e){return Ht(Le(Lt("BIP0340/challenge",...e)))}function Jt(e){return Gt(e).bytes}function Vt(e,t,n=Ae(32)){const r=He("message",e),{bytes:i,scalar:o}=Gt(t),s=He("auxRand",n,32),a=Mt(o^Le(Lt("BIP0340/aux",s))),l=Lt("BIP0340/nonce",a,i,r),c=Ht(Le(l));if(c===Ut)throw new Error("sign failed: k is zero");const{bytes:u,scalar:d}=Gt(c),f=Kt(u,i,r),h=new Uint8Array(64);if(h.set(u,0),h.set(Mt(Ht(d+f*o)),32),!Yt(h,r,i))throw new Error("sign: Invalid signature produced");return h}function Yt(e,t,n){const r=He("signature",e,64),i=He("message",t),o=He("publicKey",n,32);try{const e=qt(Le(o)),t=Le(r.subarray(0,32));if(!Tt(t))return!1;const n=Le(r.subarray(32,64));if(!("bigint"==typeof(c=n)&&Ut<c&&c<St))return!1;const u=Kt(Mt(t),Ot(e),i),d=(s=e,a=n,l=Ht(-u),jt.BASE.multiplyAndAddUnsafe(s,a,l));return!(!d||!d.hasEvenY()||d.toAffine().x!==t)}catch(e){return!1}var s,a,l,c}const zt=(()=>({getPublicKey:Jt,sign:Vt,verify:Yt,utils:{randomPrivateKey:Pt.utils.randomPrivateKey,lift_x:qt,pointToBytes:Ot,numberToBytesBE:Me,bytesToNumberBE:Le,taggedHash:Lt,mod:it}}))(),Wt="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Zt=e=>e instanceof Uint8Array,Xt=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),en=(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 tn=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function nn(e){if(!Zt(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=tn[e[n]];return t}function rn(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,i=e.slice(r,r+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");n[t]=o}return n}function on(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)),!Zt(e))throw new Error("expected Uint8Array, got "+typeof e);return e}function sn(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!Zt(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}let an=class{clone(){return this._cloneInto()}};function ln(e){const t=t=>e().update(on(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function cn(e=32){if(Wt&&"function"==typeof Wt.getRandomValues)return Wt.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function un(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function dn(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 fn={number:un,bool:function(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)},bytes:dn,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");un(e.outputLen),un(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){dn(e);const n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}};class hn extends an{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=Xt(this.buffer)}update(e){fn.exists(this);const{view:t,buffer:n,blockLen:r}=this,i=(e=on(e)).length;for(let o=0;o<i;){const s=Math.min(r-this.pos,i-o);if(s===r){const t=Xt(e);for(;r<=i-o;o+=r)this.process(t,o);continue}n.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){fn.exists(this),fn.output(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:i}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>r-o&&(this.process(n,0),o=0);for(let e=o;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),a=Number(n&o),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),i),this.process(n,0);const s=Xt(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],i)}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:i,destroyed:o,pos:s}=this;return e.length=r,e.pos=s,e.finished=i,e.destroyed=o,r%t&&e.buffer.set(n),e}}const pn=(e,t,n)=>e&t^~e&n,gn=(e,t,n)=>e&t^e&n^t&n,mn=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]),yn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),wn=new Uint32Array(64);let vn=class extends hn{constructor(){super(64,32,8,!1),this.A=0|yn[0],this.B=0|yn[1],this.C=0|yn[2],this.D=0|yn[3],this.E=0|yn[4],this.F=0|yn[5],this.G=0|yn[6],this.H=0|yn[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:o,G:s,H:a}=this;return[e,t,n,r,i,o,s,a]}set(e,t,n,r,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)wn[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=wn[e-15],n=wn[e-2],r=en(t,7)^en(t,18)^t>>>3,i=en(n,17)^en(n,19)^n>>>10;wn[e]=i+wn[e-7]+r+wn[e-16]|0}let{A:n,B:r,C:i,D:o,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(en(s,6)^en(s,11)^en(s,25))+pn(s,a,l)+mn[e]+wn[e]|0,u=(en(n,2)^en(n,13)^en(n,22))+gn(n,r,i)|0;c=l,l=a,a=s,s=o+t|0,o=i,i=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,o=o+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,i,o,s,a,l,c)}roundClean(){wn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};class An extends vn{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 bn=ln(()=>new vn);ln(()=>new An);var kn=Symbol("verified");function In(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 En=new TextEncoder;function Cn(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 xn=class{value;next=null;prev=null;constructor(e){this.value=e}},Bn=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new xn(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 Sn(e){return nn(bn(En.encode(function(e){if(!In(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 Fn=new class{generateSecretKey(){return zt.utils.randomPrivateKey()}getPublicKey(e){return nn(zt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=nn(zt.getPublicKey(t)),n.id=Sn(n),n.sig=nn(zt.sign(Sn(n),t)),n[kn]=!0,n}verifyEvent(e){if("boolean"==typeof e[kn])return e[kn];const t=Sn(e);if(t!==e.id)return e[kn]=!1,!1;try{const n=zt.verify(e.sig,t,e.pubkey);return e[kn]=n,n}catch(t){return e[kn]=!1,!1}}};Fn.generateSecretKey,Fn.getPublicKey,Fn.finalizeEvent;var Qn=Fn.verifyEvent;function Dn(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 Rn(){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 $n,Pn=e=>(e[kn]=!0,!0),Un=class extends Error{constructor(e,t){super(`Tried to send message '${e} on a closed connection to ${t}.`),this.name="SendingOnClosedConnection"}},Tn=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 Bn;queueRunning=!1;challenge;authPromise;serial=0;verifyEvent;_WebSocket;constructor(e,t){this.url=Cn(e),this.verifyEvent=t.verifyEvent,this._WebSocket=t.websocketImplementation||WebSocket,this.enablePing=t.enablePing}static async connect(e,t){const n=new Tn(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 Rn();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,i=e.slice(r+1,80).indexOf('"');if(-1===i)return null;let o=r+1+i;return e.slice(r+1,o)}(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,i=e.slice(r).indexOf('"')+r+1;return e.slice(i,i+64)}(e,"id"),i=n.alreadyHaveEvent?.(r);if(n.receivedEvent?.(this,r),i)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(Dn(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],i=this.openEventPublishes.get(e);return void(i&&(clearTimeout(i.timeout),n?i.resolve(r):i.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 Un(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 i=await e(function(e,t){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}(this.url,t)),o=setTimeout(()=>{let e=this.openEventPublishes.get(i.id);e&&(e.reject(new Error("auth timed out")),this.openEventPublishes.delete(i.id))},this.publishTimeout);this.openEventPublishes.set(i.id,{resolve:n,reject:r,timeout:o}),this.send('["AUTH",'+JSON.stringify(i)+"]")}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 Nn(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()}},Nn=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 Un))throw e}this.closed=!0}this.relay.openSubs.delete(this.id),this.onclose?.(e)}},Ln=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=Cn(e);let n=this.relays.get(e);return n||(n=new Tn(e,{verifyEvent:this.trustedRelayURLs.has(e)?Pn: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(Cn).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 i=Cn(e[n]);r.find(e=>e.url===i)||r.push({url:i,filter:t})}return this.subscribeMap(r,n)}subscribeMany(e,t,n){n.onauth=n.onauth||n.doauth;const r=[],i=[];for(let n=0;n<e.length;n++){const o=Cn(e[n]);-1===i.indexOf(o)&&(i.push(o),r.push({url:o,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 i=new Set,o=[],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=i.has(e);return i.add(e),n},d=Promise.all(r.map(async({url:e,filters:n},r)=>{let i;try{i=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=i.subscribe(n,{...t,oneose:()=>a(r),onclose:e=>{e.startsWith("auth-required: ")&&t.onauth?i.auth(t.onauth).then(()=>{i.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});o.push(s)}));return{async close(e){await d,o.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 i=[];this.subscribeEose(e,t,{...n,onevent(e){i.push(e)},onclose(e){r(i)}})})}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(Cn).map(async(e,r,i)=>{if(i.indexOf(e)!==r)return Promise.reject("duplicate url");let o=await this.ensureRelay(e);return o.publish(t).catch(async e=>{if(e instanceof Error&&e.message.startsWith("auth-required: ")&&n?.onauth)return await o.auth(n.onauth),o.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(o)}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{$n=WebSocket}catch{}var On=class extends Ln{constructor(e){super({verifyEvent:Qn,websocketImplementation:$n,...e})}};
|
||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Mn(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 Hn(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(Mn(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 jn(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 Gn(e,t="="){if(Mn(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 qn(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Kn(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 i=[],o=Array.from(e);for(o.forEach(e=>{if(Mn(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)});;){let e=0,s=!0;for(let i=r;i<o.length;i++){const a=o[i],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,o[i]=Math.floor(l/n),!Number.isSafeInteger(o[i])||o[i]*n+e!==l)throw new Error("convertRadix: carry overflow");s&&(o[i]?s=!1:r=i)}if(i.push(e),s)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}const Jn=(e,t)=>t?Jn(t,e%t):e,Vn=(e,t)=>e+(t-Jn(e,t));function Yn(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(Vn(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Vn(t,n)}`);let i=0,o=0;const s=2**n-1,a=[];for(const r of e){if(Mn(r),r>=2**t)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(i=i<<t|r,o+t>32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)a.push((i>>o-n&s)>>>0);i&=2**o-1}if(i=i<<n-o&s,!r&&o>=t)throw new Error("Excess padding");if(!r&&i)throw new Error(`Non-zero padding: ${i}`);return r&&o>0&&a.push(i>>>0),a}function zn(e,t=!1){if(Mn(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Vn(8,e)>32||Vn(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 Yn(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(Yn(n,e,8,t))}}}function Wn(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 Zn=_n(zn(4),Hn("0123456789ABCDEF"),jn("")),Xn=_n(zn(5),Hn("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Gn(5),jn(""));_n(zn(5),Hn("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Gn(5),jn("")),_n(zn(5),Hn("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),jn(""),qn(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const er=_n(zn(6),Hn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Gn(6),jn("")),tr=_n(zn(6),Hn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Gn(6),jn("")),nr=e=>{return _n((Mn(t=58),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Kn(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(Kn(e,t,256))}}),Hn(e),jn(""));var t},rr=nr("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");nr("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),nr("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const ir=[0,2,3,5,6,7,9,10,11],or={encode(e){let t="";for(let n=0;n<e.length;n+=8){const r=e.subarray(n,n+8);t+=rr.encode(r).padStart(ir[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),i=ir.indexOf(r.length),o=rr.decode(r);for(let e=0;e<o.length-i;e++)if(0!==o[e])throw new Error("base58xmr: wrong padding");t=t.concat(Array.from(o.slice(o.length-i)))}return Uint8Array.from(t)}},sr=_n(Hn("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),jn("")),ar=[996825010,642813549,513874426,1027748829,705979059];function lr(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<ar.length;e++)1==(t>>e&1)&&(n^=ar[e]);return n}function cr(e,t,n=1){const r=e.length;let i=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=lr(i)^n>>5}i=lr(i);for(let t=0;t<r;t++)i=lr(i)^31&e.charCodeAt(t);for(let e of t)i=lr(i)^e;for(let e=0;e<6;e++)i=lr(i);return i^=n,sr.encode(Yn([i%2**30],30,5,!1))}function ur(e){const t="bech32"===e?1:734539939,n=zn(5),r=n.decode,i=n.encode,o=Wn(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 i=(e=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const o=e.slice(0,i),s=e.slice(i+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=sr.decode(s).slice(0,-6),l=cr(o,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:o,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 i=e.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${sr.encode(n)}${cr(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:Wn(s),fromWords:r,fromWordsUnsafe:o,toWords:i}}const dr=ur("bech32");ur("bech32m");const fr={utf8:{encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},hex:_n(zn(4),Hn("0123456789abcdef"),jn(""),qn(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:Zn,base32:Xn,base64:er,base64url:tr,base58:rr,base58xmr:or};function hr(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function pr(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)}function gr(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(fr).join(", ");const mr=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 yr=16;function wr(e){return e<<1^283&-(e>>7)}function vr(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(1&t),e=wr(e);return n}const Ar=(()=>{let e=new Uint8Array(256);for(let t=0,n=1;t<256;t++,n^=wr(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})(),br=Ar.map((e,t)=>Ar.indexOf(t)),kr=e=>e<<24|e>>>8,Ir=e=>e<<8|e>>>24;function Er(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(Ir),i=r.map(Ir),o=i.map(Ir),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]=i[t]^o[c],l[u]=e[t]<<8|e[c]}return{sbox:e,sbox2:l,T0:n,T1:r,T2:i,T3:o,T01:s,T23:a}}const Cr=Er(Ar,e=>vr(e,3)<<24|e<<16|e<<8|vr(e,2)),xr=Er(br,e=>vr(e,11)<<24|vr(e,13)<<16|vr(e,9)<<8|vr(e,14)),Br=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=wr(n))e[t]=n;return e})();function Sr(e){gr(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}=Cr,r=mr(e),i=r.length,o=e=>Qr(n,e,e,e,e),s=new Uint32Array(t+28);s.set(r);for(let e=i;e<s.length;e++){let t=s[e-1];e%i===0?t=o(kr(t))^Br[e/i-1]:i>6&&e%i===4&&(t=o(t)),s[e]=s[e-i]^t}return s}function Fr(e,t,n,r,i,o){return e[n<<8&65280|r>>>8&255]^t[i>>>8&65280|o>>>24&255]}function Qr(e,t,n,r,i){return e[255&t|65280&n]|e[r>>>16&255|i>>>16&65280]<<16}function Dr(e,t,n,r,i){const{sbox2:o,T01:s,T23:a}=Cr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],i^=e[l++];const c=e.length/4-2;for(let o=0;o<c;o++){const o=e[l++]^Fr(s,a,t,n,r,i),c=e[l++]^Fr(s,a,n,r,i,t),u=e[l++]^Fr(s,a,r,i,t,n),d=e[l++]^Fr(s,a,i,t,n,r);t=o,n=c,r=u,i=d}return{s0:e[l++]^Qr(o,t,n,r,i),s1:e[l++]^Qr(o,n,r,i,t),s2:e[l++]^Qr(o,r,i,t,n),s3:e[l++]^Qr(o,i,t,n,r)}}function Rr(e,t,n,r,i){const{sbox2:o,T01:s,T23:a}=xr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],i^=e[l++];const c=e.length/4-2;for(let o=0;o<c;o++){const o=e[l++]^Fr(s,a,t,i,r,n),c=e[l++]^Fr(s,a,n,t,i,r),u=e[l++]^Fr(s,a,r,n,t,i),d=e[l++]^Fr(s,a,i,r,n,t);t=o,n=c,r=u,i=d}return{s0:e[l++]^Qr(o,t,i,r,n),s1:e[l++]^Qr(o,n,t,i,r),s2:e[l++]^Qr(o,r,n,t,i),s3:e[l++]^Qr(o,i,r,n,t)}}function $r(e,t){if(!t)return new Uint8Array(e);if(gr(t),t.length<e)throw new Error(`aes: wrong destination length, expected at least ${e}, got: ${t.length}`);return t}const Pr=(Ur={blockSize:16,nonceLength:16},Tr=function(e,t,n={}){gr(e),gr(t,16);const r=!n.disablePadding;return{encrypt:(n,i)=>{const o=Sr(e),{b:s,o:a,out:l}=function(e,t,n){let r=e.length;const i=r%yr;if(!t&&0!==i)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");const o=mr(e);if(t){let e=yr-i;e||(e=yr),r+=e}const s=$r(r,n);return{b:o,o:mr(s),out:s}}(n,r,i),c=mr(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}=Dr(o,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=mr(t);t.set(e);const r=yr-e.length;for(let e=yr-r;e<yr;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}=Dr(o,u,d,f,h)),a[p++]=u,a[p++]=d,a[p++]=f,a[p++]=h}return o.fill(0),l},decrypt:(n,i)=>{!function(e){if(gr(e),e.length%yr!==0)throw new Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}(n);const o=function(e){const t=Sr(e),n=t.slice(),r=t.length,{sbox2:i}=Cr,{T0:o,T1:s,T2:a,T3:l}=xr;for(let e=0;e<r;e+=4)for(let i=0;i<4;i++)n[e+i]=t[r-e-4+i];t.fill(0);for(let e=4;e<r-4;e++){const t=n[e],r=Qr(i,t,t,t,t);n[e]=o[255&r]^s[r>>>8&255]^a[r>>>16&255]^l[r>>>24]}return n}(e),s=mr(t),a=$r(n.length,i),l=mr(n),c=mr(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,i=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}=Rr(o,u,d,f,h);c[e++]=s^t,c[e++]=a^n,c[e++]=p^r,c[e++]=g^i}return o.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 i=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 i}(a,r)}}},Object.assign(Tr,Ur),Tr);var Ur,Tr;const Nr=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),Lr=Nr("expand 16-byte k"),Or=Nr("expand 32-byte k"),Mr=mr(Lr),_r=mr(Or);function Hr(e,t){return e<<t|e>>>32-t}function jr(e){return e.byteOffset%4==0}_r.slice();const Gr=2**32-1,qr=new Uint32Array;function Kr(e,t){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:o,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 hr(i),hr(s),pr(o),pr(n),(t,a,l,c,u=0)=>{gr(t),gr(a),gr(l);const d=l.length;if(c||(c=new Uint8Array(d)),gr(c),hr(u),u<0||u>=Gr)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=_r;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=Mr,f.push(h)}jr(a)||(a=a.slice(),f.push(a));const m=mr(h);if(r){if(24!==a.length)throw new Error("arx: extended nonce must be 24 bytes");r(p,m,mr(a.subarray(0,16)),m),a=a.subarray(16)}const y=16-i;if(y!==a.length)throw new Error(`arx: nonce must be ${y} or 16 bytes`);if(12!==y){const e=new Uint8Array(12);e.set(a,o?0:12-a.length),a=e,f.push(a)}const w=mr(a);for(!function(e,t,n,r,i,o,s,a){const l=i.length,c=new Uint8Array(64),u=mr(c),d=jr(i)&&jr(o),f=d?mr(i):qr,h=d?mr(o):qr;for(let p=0;p<l;s++){if(e(t,n,r,u,s,a),s>=Gr)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,o[e]=i[e]^c[t];p+=g}}(e,p,m,w,l,c,u,s);f.length>0;)f.pop().fill(0);return c}}function Jr(e,t,n,r,i,o=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],m=t[6],y=t[7],w=i,v=n[0],A=n[1],b=n[2],k=s,I=a,E=l,C=c,x=u,B=d,S=f,F=h,Q=p,D=g,R=m,$=y,P=w,U=v,T=A,N=b;for(let e=0;e<o;e+=2)k=k+x|0,P=Hr(P^k,16),Q=Q+P|0,x=Hr(x^Q,12),k=k+x|0,P=Hr(P^k,8),Q=Q+P|0,x=Hr(x^Q,7),I=I+B|0,U=Hr(U^I,16),D=D+U|0,B=Hr(B^D,12),I=I+B|0,U=Hr(U^I,8),D=D+U|0,B=Hr(B^D,7),E=E+S|0,T=Hr(T^E,16),R=R+T|0,S=Hr(S^R,12),E=E+S|0,T=Hr(T^E,8),R=R+T|0,S=Hr(S^R,7),C=C+F|0,N=Hr(N^C,16),$=$+N|0,F=Hr(F^$,12),C=C+F|0,N=Hr(N^C,8),$=$+N|0,F=Hr(F^$,7),k=k+B|0,N=Hr(N^k,16),R=R+N|0,B=Hr(B^R,12),k=k+B|0,N=Hr(N^k,8),R=R+N|0,B=Hr(B^R,7),I=I+S|0,P=Hr(P^I,16),$=$+P|0,S=Hr(S^$,12),I=I+S|0,P=Hr(P^I,8),$=$+P|0,S=Hr(S^$,7),E=E+F|0,U=Hr(U^E,16),Q=Q+U|0,F=Hr(F^Q,12),E=E+F|0,U=Hr(U^E,8),Q=Q+U|0,F=Hr(F^Q,7),C=C+x|0,T=Hr(T^C,16),D=D+T|0,x=Hr(x^D,12),C=C+x|0,T=Hr(T^C,8),D=D+T|0,x=Hr(x^D,7);let L=0;r[L++]=s+k|0,r[L++]=a+I|0,r[L++]=l+E|0,r[L++]=c+C|0,r[L++]=u+x|0,r[L++]=d+B|0,r[L++]=f+S|0,r[L++]=h+F|0,r[L++]=p+Q|0,r[L++]=g+D|0,r[L++]=m+R|0,r[L++]=y+$|0,r[L++]=w+P|0,r[L++]=v+U|0,r[L++]=A+T|0,r[L++]=b+N|0}const Vr=Kr(Jr,{counterRight:!1,counterLength:4,allowShortKeys:!1});let Yr=class extends an{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,fn.hash(e);const n=on(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,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return fn.exists(this),this.iHash.update(e),this}digestInto(e){fn.exists(this),fn.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:i,blockLen:o,outputLen:s}=this;return e.finished=r,e.destroyed=i,e.blockLen=o,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 zr=(e,t,n)=>new Yr(e,t).update(n).digest();zr.create=(e,t)=>new Yr(e,t);const Wr=new Uint8Array([0]),Zr=new Uint8Array;var Xr=Object.defineProperty,ei=(e,t)=>{for(var n in t)Xr(e,n,{get:t[n],enumerable:!0})},ti=Symbol("verified");function ni(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}ei({},{Queue:()=>ui,QueueNode:()=>ci,binarySearch:()=>li,bytesToHex:()=>nn,hexToBytes:()=>rn,insertEventIntoAscendingList:()=>ai,insertEventIntoDescendingList:()=>si,normalizeURL:()=>oi,utf8Decoder:()=>ri,utf8Encoder:()=>ii});var ri=new TextDecoder("utf-8"),ii=new TextEncoder;function oi(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 si(e,t){const[n,r]=li(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 ai(e,t){const[n,r]=li(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 li(e,t){let n=0,r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),o=t(e[i]);if(0===o)return[i,!0];o<0?r=i-1:n=i+1}return[n,!1]}var ci=class{value;next=null;prev=null;constructor(e){this.value=e}},ui=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new ci(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 di(e){return nn(bn(ii.encode(function(e){if(!ni(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 fi=new class{generateSecretKey(){return zt.utils.randomPrivateKey()}getPublicKey(e){return nn(zt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=nn(zt.getPublicKey(t)),n.id=di(n),n.sig=nn(zt.sign(di(n),t)),n[ti]=!0,n}verifyEvent(e){if("boolean"==typeof e[ti])return e[ti];const t=di(e);if(t!==e.id)return e[ti]=!1,!1;try{const n=zt.verify(e.sig,t,e.pubkey);return e[ti]=n,n}catch(t){return e[ti]=!1,!1}}},hi=fi.generateSecretKey,pi=fi.getPublicKey,gi=fi.finalizeEvent,mi=fi.verifyEvent,yi={};function wi(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function vi(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function Ai(e){return 2e4<=e&&e<3e4}function bi(e){return 3e4<=e&&e<4e4}function ki(e){return wi(e)?"regular":vi(e)?"replaceable":Ai(e)?"ephemeral":bi(e)?"parameterized":"unknown"}function Ii(e,t){const n=t instanceof Array?t:[t];return ni(e)&&n.includes(e.kind)||!1}ei(yi,{Application:()=>To,BadgeAward:()=>Ri,BadgeDefinition:()=>Fo,BlockedRelaysList:()=>co,BookmarkList:()=>so,Bookmarksets:()=>xo,Calendar:()=>jo,CalendarEventRSVP:()=>Go,ChannelCreation:()=>Ti,ChannelHideMessage:()=>Oi,ChannelMessage:()=>Li,ChannelMetadata:()=>Ni,ChannelMuteUser:()=>Mi,ClassifiedListing:()=>Oo,ClientAuth:()=>wo,CommunitiesList:()=>ao,CommunityDefinition:()=>Jo,CommunityPostApproval:()=>Yi,Contacts:()=>Bi,CreateOrUpdateProduct:()=>Ro,CreateOrUpdateStall:()=>Do,Curationsets:()=>Bo,Date:()=>_o,DirectMessageRelaysList:()=>po,DraftClassifiedListing:()=>Mo,DraftLong:()=>Po,Emojisets:()=>Uo,EncryptedDirectMessage:()=>Si,EventDeletion:()=>Fi,FileMetadata:()=>ji,FileServerPreference:()=>go,Followsets:()=>Io,GenericRepost:()=>Ui,Genericlists:()=>Eo,GiftWrap:()=>Hi,HTTPAuth:()=>ko,Handlerinformation:()=>Ko,Handlerrecommendation:()=>qo,Highlights:()=>no,InterestsList:()=>fo,Interestsets:()=>Qo,JobFeedback:()=>Zi,JobRequest:()=>zi,JobResult:()=>Wi,Label:()=>Vi,LightningPubRPC:()=>yo,LiveChatMessage:()=>Gi,LiveEvent:()=>No,LongFormArticle:()=>$o,Metadata:()=>Ei,Mutelist:()=>ro,NWCWalletInfo:()=>mo,NWCWalletRequest:()=>vo,NWCWalletResponse:()=>Ao,NostrConnect:()=>bo,OpenTimestamps:()=>_i,Pinlist:()=>io,PrivateDirectMessage:()=>Pi,ProblemTracker:()=>qi,ProfileBadges:()=>So,PublicChatsList:()=>lo,Reaction:()=>Di,RecommendRelay:()=>xi,RelayList:()=>oo,Relaysets:()=>Co,Report:()=>Ki,Reporting:()=>Ji,Repost:()=>Qi,Seal:()=>$i,SearchRelaysList:()=>uo,ShortTextNote:()=>Ci,Time:()=>Ho,UserEmojiList:()=>ho,UserStatuses:()=>Lo,Zap:()=>to,ZapGoal:()=>Xi,ZapRequest:()=>eo,classifyKind:()=>ki,isAddressableKind:()=>bi,isEphemeralKind:()=>Ai,isKind:()=>Ii,isRegularKind:()=>wi,isReplaceableKind:()=>vi});var Ei=0,Ci=1,xi=2,Bi=3,Si=4,Fi=5,Qi=6,Di=7,Ri=8,$i=13,Pi=14,Ui=16,Ti=40,Ni=41,Li=42,Oi=43,Mi=44,_i=1040,Hi=1059,ji=1063,Gi=1311,qi=1971,Ki=1984,Ji=1984,Vi=1985,Yi=4550,zi=5999,Wi=6999,Zi=7e3,Xi=9041,eo=9734,to=9735,no=9802,ro=1e4,io=10001,oo=10002,so=10003,ao=10004,lo=10005,co=10006,uo=10007,fo=10015,ho=10030,po=10050,go=10096,mo=13194,yo=21e3,wo=22242,vo=23194,Ao=23195,bo=24133,ko=27235,Io=3e4,Eo=30001,Co=30002,xo=30003,Bo=30004,So=30008,Fo=30009,Qo=30015,Do=30017,Ro=30018,$o=30023,Po=30024,Uo=30030,To=30078,No=30311,Lo=30315,Oo=30402,Mo=30403,_o=31922,Ho=31923,jo=31924,Go=31925,qo=31989,Ko=31990,Jo=34550;function Vo(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,i=e.slice(r).indexOf('"')+r+1;return e.slice(i,i+64)}function Yo(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,i=e.slice(r),o=Math.min(i.indexOf(","),i.indexOf("}"));return parseInt(i.slice(0,o),10)}function zo(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,i=e.slice(r+1,80).indexOf('"');if(-1===i)return null;let o=r+1+i;return e.slice(r+1,o)}function Wo(e,t){return t===Vo(e,"id")}function Zo(e,t){return t===Vo(e,"pubkey")}function Xo(e,t){return t===Yo(e,"kind")}ei({},{getHex64:()=>Vo,getInt:()=>Yo,getSubscriptionId:()=>zo,matchEventId:()=>Wo,matchEventKind:()=>Xo,matchEventPubkey:()=>Zo});function es(e,t){return{kind:wo,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}ei({},{makeAuthEvent:()=>es});try{WebSocket}catch{}try{WebSocket}catch{}var ts={};ei(ts,{BECH32_REGEX:()=>is,Bech32MaxSize:()=>rs,NostrTypeGuard:()=>ns,decode:()=>ss,decodeNostrURI:()=>os,encodeBytes:()=>fs,naddrEncode:()=>gs,neventEncode:()=>ps,noteEncode:()=>us,nprofileEncode:()=>hs,npubEncode:()=>cs,nsecEncode:()=>ls});var ns={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||"")},rs=5e3,is=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function os(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),ss(e)}catch(e){return{type:"invalid",data:null}}}function ss(e){let{prefix:t,words:n}=dr.decode(e,rs),r=new Uint8Array(dr.fromWords(n));switch(t){case"nprofile":{let e=as(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:nn(e[0][0]),relays:e[1]?e[1].map(e=>ri.decode(e)):[]}}}case"nevent":{let e=as(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:nn(e[0][0]),relays:e[1]?e[1].map(e=>ri.decode(e)):[],author:e[2]?.[0]?nn(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(nn(e[3][0]),16):void 0}}}case"naddr":{let e=as(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:ri.decode(e[0][0]),pubkey:nn(e[2][0]),kind:parseInt(nn(e[3][0]),16),relays:e[1]?e[1].map(e=>ri.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:nn(r)};default:throw new Error(`unknown prefix ${t}`)}}function as(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(i)}return t}function ls(e){return fs("nsec",e)}function cs(e){return fs("npub",rn(e))}function us(e){return fs("note",rn(e))}function ds(e,t){let n=dr.toWords(t);return dr.encode(e,n,rs)}function fs(e,t){return ds(e,t)}function hs(e){return ds("nprofile",ms({0:[rn(e.pubkey)],1:(e.relays||[]).map(e=>ii.encode(e))}))}function ps(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)),ds("nevent",ms({0:[rn(e.id)],1:(e.relays||[]).map(e=>ii.encode(e)),2:e.author?[rn(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function gs(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),ds("naddr",ms({0:[ii.encode(e.identifier)],1:(e.relays||[]).map(e=>ii.encode(e)),2:[rn(e.pubkey)],3:[new Uint8Array(t)]}))}function ms(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)})}),sn(...t)}var ys={};function ws(e,t,n){const r=e instanceof Uint8Array?nn(e):e,i=As(Pt.getSharedSecret(r,"02"+t));let o=Uint8Array.from(cn(16)),s=ii.encode(n),a=Pr(i,o).encrypt(s);return`${er.encode(new Uint8Array(a))}?iv=${er.encode(new Uint8Array(o.buffer))}`}function vs(e,t,n){const r=e instanceof Uint8Array?nn(e):e;let[i,o]=n.split("?iv="),s=As(Pt.getSharedSecret(r,"02"+t)),a=er.decode(o),l=er.decode(i),c=Pr(s,a).decrypt(l);return ri.decode(c)}function As(e){return e.slice(1,33)}ei(ys,{decrypt:()=>vs,encrypt:()=>ws});ei({},{NIP05_REGEX:()=>ks,isNip05:()=>Is,isValid:()=>Bs,queryProfile:()=>xs,searchDomain:()=>Cs,useFetchImplementation:()=>Es});var bs,ks=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,Is=e=>ks.test(e||"");try{bs=fetch}catch(e){}function Es(e){bs=e}async function Cs(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await bs(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(e){return{}}}async function xs(e){const t=e.match(ks);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await bs(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const i=await t.json(),o=i.names[n];return o?{pubkey:o,relays:i.relays?.[o]}:null}catch(e){return null}}async function Bs(e,t){const n=await xs(t);return!!n&&n.pubkey===e}function Ss(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let i=e.tags.length-1;i>=0;i--){const o=e.tags[i];if("e"===o[0]&&o[1]){const[e,i,s,a,l]=o,c={id:i,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"===o[0]&&o[1]){const[e,n,r]=o;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===o[0]&&o[1]&&t.profiles.push({pubkey:o[1],relays:o[2]?[o[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}ei({},{parse:()=>Ss});ei({},{fetchRelayInformation:()=>Qs,useFetchImplementation:()=>Fs});try{fetch}catch{}function Fs(e){0}async function Qs(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function Ds(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 Rs(e,t){let n=0;const r=e,i=["nonce",n.toString(),t.toString()];for(r.tags.push(i);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),i[1]=(++n).toString(),r.id=$s(r),Ds(r.id)>=t)break}return r}function $s(e){return nn(bn(ii.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}ei({},{fastEventHash:()=>$s,getPow:()=>Ds,minePow:()=>Rs});ei({},{unwrapEvent:()=>oa,unwrapManyEvents:()=>sa,wrapEvent:()=>ra,wrapManyEvents:()=>ia});ei({},{createRumor:()=>zs,createSeal:()=>Ws,createWrap:()=>Zs,unwrapEvent:()=>ta,unwrapManyEvents:()=>na,wrapEvent:()=>Xs,wrapManyEvents:()=>ea});var Ps={};ei(Ps,{decrypt:()=>js,encrypt:()=>Hs,getConversationKey:()=>Ns,v2:()=>Gs});var Us=1,Ts=65535;function Ns(e,t){const n=Pt.getSharedSecret(e,"02"+t).subarray(1,33);return function(e,t,n){return fn.hash(e),void 0===n&&(n=new Uint8Array(e.outputLen)),zr(e,on(n),on(t))}(bn,n,"nip44-v2")}function Ls(e,t){const n=function(e,t,n,r=32){if(fn.hash(e),fn.number(r),r>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/e.outputLen);void 0===n&&(n=Zr);const o=new Uint8Array(i*e.outputLen),s=zr.create(e,t),a=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let t=0;t<i;t++)Wr[0]=t+1,a.update(0===t?Zr:l).update(n).update(Wr).digestInto(l),o.set(l,e.outputLen*t),s._cloneInto(a);return s.destroy(),a.destroy(),l.fill(0),Wr.fill(0),o.slice(0,r)}(bn,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function Os(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 Ms(e){const t=ii.encode(e),n=t.length;return sn(function(e){if(!Number.isSafeInteger(e)||e<Us||e>Ts)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(Os(n)-n))}function _s(e,t,n){if(32!==n.length)throw new Error("AAD associated data must be 32 bytes");const r=sn(n,t);return zr(bn,e,r)}function Hs(e,t,n=cn(32)){const{chacha_key:r,chacha_nonce:i,hmac_key:o}=Ls(t,n),s=Ms(e),a=Vr(r,i,s),l=_s(o,a,n);return er.encode(sn(new Uint8Array([2]),n,a,l))}function js(e,t){const{nonce:n,ciphertext:r,mac:i}=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=er.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 i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:o,chacha_nonce:s,hmac_key:a}=Ls(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}(_s(a,r,n),i))throw new Error("invalid MAC");return function(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t<Us||t>Ts||n.length!==t||e.length!==2+Os(t))throw new Error("invalid padding");return ri.decode(n)}(Vr(o,s,r))}var Gs={utils:{getConversationKey:Ns,calcPaddedLen:Os},encrypt:Hs,decrypt:js},qs=()=>Math.round(Date.now()/1e3),Ks=()=>Math.round(qs()-172800*Math.random()),Js=(e,t)=>Ns(e,t),Vs=(e,t,n)=>Hs(JSON.stringify(e),Js(t,n)),Ys=(e,t)=>JSON.parse(js(e.content,Js(t,e.pubkey)));function zs(e,t){const n={created_at:qs(),content:"",tags:[],...e,pubkey:pi(t)};return n.id=di(n),n}function Ws(e,t,n){return gi({kind:$i,content:Vs(e,t,n),created_at:Ks(),tags:[]},t)}function Zs(e,t){const n=hi();return gi({kind:Hi,content:Vs(e,n,t),created_at:Ks(),tags:[["p",t]]},n)}function Xs(e,t,n){return Zs(Ws(zs(e,t),t,n),n)}function ea(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=pi(t),i=[Xs(e,t,r)];return n.forEach(n=>{i.push(Xs(e,t,n))}),i}function ta(e,t){const n=Ys(e,t);return Ys(n,t)}function na(e,t){let n=[];return e.forEach(e=>{n.push(ta(e,t))}),n.sort((e,t)=>e.created_at-t.created_at),n}function ra(e,t,n,r,i){const o=function(e,t,n,r){const i={created_at:Math.ceil(Date.now()/1e3),kind:Pi,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach(({publicKey:e,relayUrl:t})=>{i.tags.push(t?["p",e,t]:["p",e])}),r&&i.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&i.tags.push(["subject",n]),i}(t,n,r,i);return Xs(o,e,t.publicKey)}function ia(e,t,n,r,i){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:pi(e)},...t].map(t=>ra(e,t,n,r,i))}var oa=ta,sa=na;function aa(e,t,n,r){let i;const o=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===Ci?i=Qi:(i=Ui,o.push(["k",String(t.kind)])),gi({kind:i,tags:o,content:""===e.content||t.tags?.find(e=>"-"===e[0])?"":JSON.stringify(t),created_at:e.created_at},r)}function la(e){if(![Qi,Ui].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const i=e.tags[r];i.length>=2&&("e"===i[0]&&void 0===t?t=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter(e=>"string"==typeof e),author:n?.[1]}:void 0}function ca(e,{skipVerification:t}={}){const n=la(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||mi(r))?r:void 0}ei({},{finishRepostEvent:()=>aa,getRepostedEvent:()=>ca,getRepostedEventPointer:()=>la});ei({},{NOSTR_URI_REGEX:()=>ua,parse:()=>fa,test:()=>da});var ua=new RegExp(`nostr:(${is.source})`);function da(e){return"string"==typeof e&&new RegExp(`^${ua.source}$`).test(e)}function fa(e){const t=e.match(new RegExp(`^${ua.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:ss(t[1])}}function ha(e,t,n){const r=t.tags.filter(e=>e.length>=2&&("e"===e[0]||"p"===e[0]));return gi({...e,kind:Di,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function pa(e){if(e.kind!==Di)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const i=e.tags[r];i.length>=2&&("e"===i[0]&&void 0===t?t=i:"p"===i[0]&&void 0===n&&(n=i))}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}ei({},{finishReactionEvent:()=>ha,getReactedEventPointer:()=>pa});ei({},{parse:()=>ya});var ga=/\W/m,ma=/\W |\W$|$|,| /m;function*ya(e){const t=e.length;let n=0,r=0;for(;r<t;){let i=e.indexOf(":",r);if(-1===i)break;if("nostr"===e.substring(i-5,i)){const o=e.substring(i+60).match(ga),s=o?i+60+o.index:t;try{let t,{data:o,type:a}=ss(e.substring(i+1,s));switch(a){case"npub":t={pubkey:o};break;case"nsec":case"note":r=s+1;continue;default:t=o}n!==i-5&&(yield{type:"text",text:e.substring(n,i-5)}),yield{type:"reference",pointer:t},r=s,n=r;continue}catch(e){r=i+1;continue}}else if("https"===e.substring(i-5,i)||"http"===e.substring(i-4,i)){const o=e.substring(i+4).match(ma),s=o?i+4+o.index:t,a="s"===e[i-1]?5:4;try{let t=new URL(e.substring(i-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid url");if(n!==i-a&&(yield{type:"text",text:e.substring(n,i-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(i-3,i)&&"ws"!==e.substring(i-2,i)){r=i+1;continue}{const o=e.substring(i+4).match(ma),s=o?i+4+o.index:t,a="s"===e[i-1]?3:2;try{let t=new URL(e.substring(i-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid ws url");n!==i-a&&(yield{type:"text",text:e.substring(n,i-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)})}ei({},{channelCreateEvent:()=>wa,channelHideMessageEvent:()=>ba,channelMessageEvent:()=>Aa,channelMetadataEvent:()=>va,channelMuteUserEvent:()=>ka});var wa=(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 gi({kind:Ti,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},va=(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 gi({kind:Ni,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},Aa=(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"]),gi({kind:Li,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},ba=(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 gi({kind:Oi,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},ka=(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 gi({kind:Mi,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)};ei({},{EMOJI_SHORTCODE_REGEX:()=>Ia,matchAll:()=>Ca,regex:()=>Ea,replaceAll:()=>xa});var Ia=/:(\w+):/,Ea=()=>new RegExp(`\\B${Ia.source}\\B`,"g");function*Ca(e){const t=e.matchAll(Ea());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 xa(e,t){return e.replaceAll(Ea(),(e,n)=>t({shortcode:e,name:n}))}var Ba;ei({},{useFetchImplementation:()=>Sa,validateGithub:()=>Fa});try{Ba=fetch}catch{}function Sa(e){Ba=e}async function Fa(e,t,n){try{return await(await Ba(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(e){return!1}}function Qa(e){const{host:t,pathname:n,searchParams:r}=new URL(e),i=n||t,o=r.get("relay"),s=r.get("secret");if(!i||!o||!s)throw new Error("invalid connection string");return{pubkey:i,relay:o,secret:s}}async function Da(e,t,n){const r={method:"pay_invoice",params:{invoice:n}},i=ws(t,e,JSON.stringify(r)),o={kind:vo,created_at:Math.round(Date.now()/1e3),content:i,tags:[["p",e]]};return gi(o,t)}ei({},{makeNwcRequestEvent:()=>Da,parseConnectionString:()=>Qa});function Ra(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("")}ei({},{normalizeIdentifier:()=>Ra});var $a;ei({},{getSatoshisAmountFromBolt11:()=>Oa,getZapEndpoint:()=>Ua,makeZapReceipt:()=>La,makeZapRequest:()=>Ta,useFetchImplementation:()=>Pa,validateZapRequest:()=>Na});try{$a=fetch}catch{}function Pa(e){$a=e}async function Ua(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(n){let{words:e}=dr.decode(n,1e3),r=dr.fromWords(e);t=ri.decode(r)}else{if(!r)return null;{let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}}let i=await $a(t),o=await i.json();if(o.allowsNostr&&o.nostrPubkey)return o.callback}catch(e){}return null}function Ta(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]),vi(e.event.kind)){const n=["a",`${e.event.kind}:${e.event.pubkey}:`];t.tags.push(n)}else if(bi(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 Na(e){let t;try{t=JSON.parse(e)}catch(e){return"Invalid zap request JSON."}if(!ni(t))return"Zap request is not a valid Nostr event.";if(!mi(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 La({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let i=JSON.parse(e),o=i.tags.filter(([e])=>"e"===e||"p"===e||"a"===e),s={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...o,["P",i.pubkey],["bolt11",n],["description",e]]};return t&&s.tags.push(["preimage",t]),s}function Oa(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 i=r[r.length-1],o=i.charCodeAt(0)-"0".charCodeAt(0),s=o>=0&&o<=9;let a=r.length-1;if(s&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(i){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}ei({},{getToken:()=>_a,hashPayload:()=>Va,unpackEventFromToken:()=>ja,validateEvent:()=>za,validateEventKind:()=>qa,validateEventMethodTag:()=>Ja,validateEventPayloadTag:()=>Ya,validateEventTimestamp:()=>Ga,validateEventUrlTag:()=>Ka,validateToken:()=>Ha});var Ma="Nostr ";async function _a(e,t,n,r=!1,i){const o={kind:ko,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&o.tags.push(["payload",Va(i)]);const s=await n(o);return(r?Ma:"")+er.encode(ii.encode(JSON.stringify(s)))}async function Ha(e,t,n){const r=await ja(e).catch(e=>{throw e});return await za(r,t,n).catch(e=>{throw e})}async function ja(e){if(!e)throw new Error("Missing token");e=e.replace(Ma,"");const t=ri.decode(er.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function Ga(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function qa(e){return e.kind===ko}function Ka(e,t){const n=e.tags.find(e=>"u"===e[0]);return!!n&&(n.length>0&&n[1]===t)}function Ja(e,t){const n=e.tags.find(e=>"method"===e[0]);return!!n&&(n.length>0&&n[1].toLowerCase()===t.toLowerCase())}function Va(e){return nn(bn(ii.encode(JSON.stringify(e))))}function Ya(e,t){const n=e.tags.find(e=>"payload"===e[0]);if(!n)return!1;const r=Va(t);return n.length>0&&n[1]===r}async function za(e,t,n,r){if(!mi(e))throw new Error("Invalid nostr event, signature invalid");if(!qa(e))throw new Error("Invalid nostr event, kind invalid");if(!Ga(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!Ka(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!Ja(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!Ya(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}function Wa(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function Za(e){return 3e4<=e&&e<4e4}var Xa=function(e,t){return Xa=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])},Xa(e,t)};function el(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}Xa(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function tl(e,t,n,r){return new(n||(n=Promise))(function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(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 nl(e,t){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[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]&&(o=0)),o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}function rl(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 il(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function ol(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function sl(e){return this instanceof sl?(this.v=e,this):new sl(e)}function al(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(e,t||[]),o=[];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){i[e]&&(r[e]=function(t){return new Promise(function(n,r){o.push([e,t,n,r])>1||a(e,t)})},t&&(r[e]=t(r[e])))}function a(e,t){try{(n=i[e](t)).value instanceof sl?Promise.resolve(n.value.v).then(l,c):u(o[0][2],n)}catch(e){u(o[0][3],e)}var n}function l(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function ll(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=rl(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,i){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,i,(t=e[n](t)).done,t.value)})}}}function cl(e){return"function"==typeof e}function ul(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 dl=ul(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 fl(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var hl=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,i;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var s=rl(o),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 o.remove(this);var l=this.initialTeardown;if(cl(l))try{l()}catch(e){i=e instanceof dl?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=rl(c),d=u.next();!d.done;d=u.next()){var f=d.value;try{ml(f)}catch(e){i=null!=i?i:[],e instanceof dl?i=ol(ol([],il(i)),il(e.errors)):i.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(i)throw new dl(i)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)ml(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)&&fl(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&fl(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),pl=hl.EMPTY;function gl(e){return e instanceof hl||e&&"closed"in e&&cl(e.remove)&&cl(e.add)&&cl(e.unsubscribe)}function ml(e){cl(e)?e():e.unsubscribe()}var yl={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},wl={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=wl.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,ol([e,t],il(n))):setTimeout.apply(void 0,ol([e,t],il(n)))},clearTimeout:function(e){var t=wl.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function vl(e){wl.setTimeout(function(){throw e})}function Al(){}function bl(e){e()}var kl=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,gl(t)&&t.add(n)):n.destination=Sl,n}return el(t,e),t.create=function(e,t,n){return new xl(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}(hl),Il=Function.prototype.bind;function El(e,t){return Il.call(e,t)}var Cl=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){Bl(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){Bl(e)}else Bl(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){Bl(e)}},e}(),xl=function(e){function t(t,n,r){var i,o,s=e.call(this)||this;cl(t)||!t?i={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&yl.useDeprecatedNextContext?((o=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},i={next:t.next&&El(t.next,o),error:t.error&&El(t.error,o),complete:t.complete&&El(t.complete,o)}):i=t;return s.destination=new Cl(i),s}return el(t,e),t}(kl);function Bl(e){vl(e)}var Sl={closed:!0,next:Al,error:function(e){throw e},complete:Al},Fl="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ql(e){return e}var Dl=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,i=this,o=(r=e)&&r instanceof kl||function(e){return e&&cl(e.next)&&cl(e.error)&&cl(e.complete)}(r)&&gl(r)?e:new xl(e,t,n);return bl(function(){var e=i,t=e.operator,n=e.source;o.add(t?t.call(o,n):n?i._subscribe(o):i._trySubscribe(o))}),o},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=Rl(t))(function(t,r){var i=new xl({next:function(t){try{e(t)}catch(e){r(e),i.unsubscribe()}},error:r,complete:t});n.subscribe(i)})},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[Fl]=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?Ql: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=Rl(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 Rl(e){var t;return null!==(t=null!=e?e:yl.Promise)&&void 0!==t?t:Promise}function $l(e){return function(t){if(function(e){return cl(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 Pl(e,t,n,r,i){return new Ul(e,t,n,r,i)}var Ul=function(e){function t(t,n,r,i,o,s){var a=e.call(this,t)||this;return a.onFinalize=o,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=i?function(e){try{i(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 el(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}(kl),Tl=ul(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),Nl=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 el(t,e),t.prototype.lift=function(e){var t=new Ll(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new Tl},t.prototype.next=function(e){var t=this;bl(function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var i=rl(t.currentObservers),o=i.next();!o.done;o=i.next()){o.value.next(e)}}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var t=this;bl(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;bl(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,i=n.isStopped,o=n.observers;return r||i?pl:(this.currentObservers=null,o.push(e),new hl(function(){t.currentObservers=null,fl(o,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,i=t.isStopped;n?e.error(r):i&&e.complete()},t.prototype.asObservable=function(){var e=new Dl;return e.source=this,e},t.create=function(e,t){return new Ll(e,t)},t}(Dl),Ll=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return el(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:pl},t}(Nl),Ol={now:function(){return(Ol.delegate||Date).now()},delegate:void 0},Ml=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=Ol);var i=e.call(this)||this;return i._bufferSize=t,i._windowTime=n,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,t),i._windowTime=Math.max(1,n),i}return el(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,i=n._buffer,o=n._infiniteTimeWindow,s=n._timestampProvider,a=n._windowTime;r||(i.push(t),!o&&i.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(),i=0;i<r.length&&!e.closed;i+=n?1:2)e.next(r[i]);return this._checkFinalizedStatuses(e),t},t.prototype._trimBuffer=function(){var e=this,t=e._bufferSize,n=e._timestampProvider,r=e._buffer,i=e._infiniteTimeWindow,o=(i?1:2)*t;if(t<1/0&&o<r.length&&r.splice(0,r.length-o),!i){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}(Nl),_l=function(e){function t(t,n){return e.call(this)||this}return el(t,e),t.prototype.schedule=function(e,t){return this},t}(hl),Hl={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=Hl.delegate;return(null==i?void 0:i.setInterval)?i.setInterval.apply(i,ol([e,t],il(n))):setInterval.apply(void 0,ol([e,t],il(n)))},clearInterval:function(e){var t=Hl.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},jl=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 el(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,i=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(i,r,t)),this.pending=!0,this.delay=t,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(i,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Hl.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&&Hl.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,fl(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(_l),Gl=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=Ol.now,e}(),ql=function(e){function t(t,n){void 0===n&&(n=Gl.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return el(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}(Gl),Kl=new ql(jl),Jl=new Dl(function(e){return e.complete()});function Vl(e){return e&&cl(e.schedule)}function Yl(e){return e[e.length-1]}function zl(e){return Vl(Yl(e))?e.pop():void 0}function Wl(e,t){return"number"==typeof Yl(e)?e.pop():t}var Zl=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Xl(e){return cl(null==e?void 0:e.then)}function ec(e){return cl(e[Fl])}function tc(e){return Symbol.asyncIterator&&cl(null==e?void 0:e[Symbol.asyncIterator])}function nc(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 rc="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function ic(e){return cl(null==e?void 0:e[rc])}function oc(e){return al(this,arguments,function(){var t,n,r;return nl(this,function(i){switch(i.label){case 0:t=e.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,sl(t.read())];case 3:return n=i.sent(),r=n.value,n.done?[4,sl(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,sl(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function sc(e){return cl(null==e?void 0:e.getReader)}function ac(e){if(e instanceof Dl)return e;if(null!=e){if(ec(e))return i=e,new Dl(function(e){var t=i[Fl]();if(cl(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(Zl(e))return r=e,new Dl(function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()});if(Xl(e))return n=e,new Dl(function(e){n.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,vl)});if(tc(e))return lc(e);if(ic(e))return t=e,new Dl(function(e){var n,r;try{for(var i=rl(t),o=i.next();!o.done;o=i.next()){var s=o.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}e.complete()});if(sc(e))return lc(oc(e))}var t,n,r,i;throw nc(e)}function lc(e){return new Dl(function(t){(function(e,t){var n,r,i,o;return tl(this,void 0,void 0,function(){var s,a;return nl(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=ll(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(),i={error:a},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(o=n.return)?[4,o.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})})(e,t).catch(function(e){return t.error(e)})})}function cc(e,t,n,r,i){void 0===r&&(r=0),void 0===i&&(i=!1);var o=t.schedule(function(){n(),i?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(o),!i)return o}function uc(e,t){return void 0===t&&(t=0),$l(function(n,r){n.subscribe(Pl(r,function(n){return cc(r,e,function(){return r.next(n)},t)},function(){return cc(r,e,function(){return r.complete()},t)},function(n){return cc(r,e,function(){return r.error(n)},t)}))})}function dc(e,t){return void 0===t&&(t=0),$l(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function fc(e,t){if(!e)throw new Error("Iterable cannot be null");return new Dl(function(n){cc(n,t,function(){var r=e[Symbol.asyncIterator]();cc(n,t,function(){r.next().then(function(e){e.done?n.complete():n.next(e.value)})},0,!0)})})}function hc(e,t){if(null!=e){if(ec(e))return function(e,t){return ac(e).pipe(dc(t),uc(t))}(e,t);if(Zl(e))return function(e,t){return new Dl(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(Xl(e))return function(e,t){return ac(e).pipe(dc(t),uc(t))}(e,t);if(tc(e))return fc(e,t);if(ic(e))return function(e,t){return new Dl(function(n){var r;return cc(n,t,function(){r=e[rc](),cc(n,t,function(){var e,t,i;try{t=(e=r.next()).value,i=e.done}catch(e){return void n.error(e)}i?n.complete():n.next(t)},0,!0)}),function(){return cl(null==r?void 0:r.return)&&r.return()}})}(e,t);if(sc(e))return function(e,t){return fc(oc(e),t)}(e,t)}throw nc(e)}function pc(e,t){return t?hc(e,t):ac(e)}function gc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return pc(e,zl(e))}function mc(e,t){return $l(function(n,r){var i=0;n.subscribe(Pl(r,function(n){r.next(e.call(t,n,i++))}))})}var yc=Array.isArray;function wc(e){return mc(function(t){return function(e,t){return yc(t)?e.apply(void 0,ol([],il(t))):e(t)}(e,t)})}var vc=Array.isArray,Ac=Object.getPrototypeOf,bc=Object.prototype,kc=Object.keys;function Ic(e){if(1===e.length){var t=e[0];if(vc(t))return{args:t,keys:null};if((r=t)&&"object"==typeof r&&Ac(r)===bc){var n=kc(t);return{args:n.map(function(e){return t[e]}),keys:n}}}var r;return{args:e,keys:null}}function Ec(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=zl(e),r=function(e){return cl(Yl(e))?e.pop():void 0}(e),i=Ic(e),o=i.args,s=i.keys;if(0===o.length)return pc([],n);var a=new Dl(function(e,t,n){void 0===n&&(n=Ql);return function(r){Cc(t,function(){for(var i=e.length,o=new Array(i),s=i,a=i,l=function(i){Cc(t,function(){var l=pc(e[i],t),c=!1;l.subscribe(Pl(r,function(e){o[i]=e,c||(c=!0,a--),a||r.next(n(o.slice()))},function(){--s||r.complete()}))},r)},c=0;c<i;c++)l(c)},r)}}(o,n,s?function(e){return function(e,t){return e.reduce(function(e,n,r){return e[n]=t[r],e},{})}(s,e)}:Ql));return r?a.pipe(wc(r)):a}function Cc(e,t,n){e?cc(n,e,t):t()}function xc(e,t,n){return void 0===n&&(n=1/0),cl(t)?xc(function(n,r){return mc(function(e,i){return t(n,e,r,i)})(ac(e(n,r)))},n):("number"==typeof t&&(n=t),$l(function(t,r){return function(e,t,n,r,i,o,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){o&&t.next(e),c++;var a=!1;ac(n(e,u++)).subscribe(Pl(t,function(e){null==i||i(e),o?h(e):t.next(e)},function(){a=!0},void 0,function(){if(a)try{c--;for(var e=function(){var e=l.shift();s?cc(t,s,function(){return p(e)}):p(e)};l.length&&c<r;)e();f()}catch(e){t.error(e)}}))};return e.subscribe(Pl(t,h,function(){d=!0,f()})),function(){null==a||a()}}(t,r,e,n)}))}function Bc(e){return void 0===e&&(e=1/0),xc(Ql,e)}function Sc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Bc(1)(pc(e,zl(e)))}function Fc(e){return new Dl(function(t){ac(e()).subscribe(t)})}function Qc(e,t,n){void 0===e&&(e=0),void 0===n&&(n=Kl);var r=-1;return null!=t&&(Vl(t)?n=t:r=t),new Dl(function(t){var i,o=(i=e)instanceof Date&&!isNaN(i)?+e-n.now():e;o<0&&(o=0);var s=0;return n.schedule(function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())},o)})}function Dc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=zl(e),r=Wl(e,1/0),i=e;return i.length?1===i.length?ac(i[0]):Bc(r)(pc(i,n)):Jl}function Rc(e,t){return $l(function(n,r){var i=0;n.subscribe(Pl(r,function(n){return e.call(t,n,i++)&&r.next(n)}))})}function $c(e){return e<=0?function(){return Jl}:$l(function(t,n){var r=0;t.subscribe(Pl(n,function(t){++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function Pc(e,t){return void 0===t&&(t=Ql),e=null!=e?e:Uc,$l(function(n,r){var i,o=!0;n.subscribe(Pl(r,function(n){var s=t(n);!o&&e(i,s)||(o=!1,i=s,r.next(n))}))})}function Uc(e,t){return e===t}function Tc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return Sc(t,gc.apply(void 0,ol([],il(e))))}}function Nc(e){return $l(function(t,n){try{t.subscribe(n)}finally{n.add(e)}})}function Lc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=zl(e),r=Wl(e,1/0);return $l(function(t,i){Bc(r)(pc(ol([t],il(e)),n)).subscribe(i)})}function Oc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Lc.apply(void 0,ol([],il(e)))}function Mc(e,t){return $l(function(e,t,n,r,i){return function(o,s){var a=n,l=t,c=0;o.subscribe(Pl(s,function(t){var n=c++;l=a?e(l,t,n):(a=!0,t),r&&s.next(l)},i&&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 i=new xl({next:function(){i.unsubscribe(),e()}});return ac(t.apply(void 0,ol([],il(n)))).subscribe(i)}}else e()}function Hc(e,t){return $l(function(n,r){var i=null,o=0,s=!1,a=function(){return s&&!i&&r.complete()};n.subscribe(Pl(r,function(n){null==i||i.unsubscribe();var s=0,l=o++;ac(e(n,l)).subscribe(i=Pl(r,function(e){return r.next(t?t(n,e,l,s++):e)},function(){i=null,a()}))},function(){s=!0,a()}))})}function jc(e,t,n){var r=cl(e)||t||n?{next:e,error:t,complete:n}:e;return r?$l(function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var i=!0;e.subscribe(Pl(t,function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)},function(){var e;i=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()},function(e){var n;i=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)},function(){var e,t;i&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)}))}):Ql}function Gc(e,t){return void 0!==e[0]&&void 0!==e[1]&&(!t||e[0]===t)}function qc(e){return Gc(e,"e")}function Kc(e){return Gc(e,"p")}function Jc(e){return Gc(e,"r")}function Vc(e){return Gc(e,"a")}function Yc(e){return Gc(e,"t")}const zc=(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);var Wc=Symbol("verified");function Zc(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 Xc=new TextEncoder;function eu(e){return nn(bn(Xc.encode(function(e){if(!Zc(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 tu=new class{generateSecretKey(){return zt.utils.randomPrivateKey()}getPublicKey(e){return nn(zt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=nn(zt.getPublicKey(t)),n.id=eu(n),n.sig=nn(zt.sign(eu(n),t)),n[Wc]=!0,n}verifyEvent(e){if("boolean"==typeof e[Wc])return e[Wc];const t=eu(e);if(t!==e.id)return e[Wc]=!1,!1;try{const n=zt.verify(e.sig,t,e.pubkey);return e[Wc]=n,n}catch(t){return e[Wc]=!1,!1}}},nu=tu.generateSecretKey,ru=tu.getPublicKey;function iu(e,t,n){if(Reflect.has(e,t))return Reflect.get(e,t);{const r=n();return Reflect.set(e,t,r),r}}function ou(e,t){const[n,r]=su(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 su(e,t){let n=0,r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),o=t(e[i]);if(0===o)return[i,!0];o<0?r=i-1:n=i+1}return[n,!1]}tu.finalizeEvent,tu.verifyEvent,new TextDecoder("utf-8"),new TextEncoder;const au=Symbol.for("event-store"),lu=Symbol.for("event-uid"),cu=Symbol.for("replaceable-address"),uu=Symbol.for("from-cache"),du=Symbol.for("replaceable-identifier");function fu(e){return Wa(e)||Za(e)}function hu(e){let t=Reflect.get(e,lu);return t||(t=Za(e.kind)||Wa(e.kind)?pu(e):e.id,Reflect.set(e,lu,t)),t}function pu(e){if(!Za(e.kind)&&!Wa(e.kind))throw new Error("Event is not replaceable or addressable");return iu(e,cu,()=>gu(e.kind,e.pubkey,mu(e)))}function gu(e,t,n){return e+":"+t+":"+(n??"")}function mu(e){return iu(e,du,()=>e.tags.find(e=>"d"===e[0])?.[1]??"")}function yu(){return Math.round(Date.now()/1e3)}const wu=Symbol("expiration-timestamp");function vu(e){return iu(e,wu,()=>{const t=e.tags.find(e=>"expiration"===e[0])?.[1];return t?parseInt(t):void 0})}var Au=new TextDecoder("utf-8");new TextEncoder;function bu(e){let{prefix:t,words:n}=dr.decode(e,5e3),r=new Uint8Array(dr.fromWords(n));switch(t){case"nprofile":{let e=ku(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:nn(e[0][0]),relays:e[1]?e[1].map(e=>Au.decode(e)):[]}}}case"nevent":{let e=ku(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:nn(e[0][0]),relays:e[1]?e[1].map(e=>Au.decode(e)):[],author:e[2]?.[0]?nn(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(nn(e[3][0]),16):void 0}}}case"naddr":{let e=ku(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:Au.decode(e[0][0]),pubkey:nn(e[2][0]),kind:parseInt(nn(e[3][0]),16),relays:e[1]?e[1].map(e=>Au.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:nn(r)};default:throw new Error(`unknown prefix ${t}`)}}function ku(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(i)}return t}function Iu(e){return Eu("npub",rn(e))}function Eu(e,t){return function(e,t){let n=dr.toWords(t);return dr.encode(e,n,5e3)}(e,t)}function Cu(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 xu=Symbol.for("seen-relays");function Bu(e,t){return e[xu]||(e[xu]=new Set),e[xu].add(t),e[xu]}const Su=/^wss?:\/\/([-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}|localhost)\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)$/;function Fu(e){return e.length>=8&&Su.test(e)}function Qu(e){return!!e?.toLowerCase()?.match(/^[0-9a-f]{64}$/)}const Du="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;
|
||
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ru(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function $u(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Pu(e,...t){if(!Ru(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)}function Uu(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");$u(e.outputLen),$u(e.blockLen)}function Tu(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")}function Nu(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Lu(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Ou(e,t){return e<<32-t|e>>>t}const Mu=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),_u=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Hu(e){if(Pu(e),Mu)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=_u[e[n]];return t}const ju=48,Gu=57,qu=65,Ku=70,Ju=97,Vu=102;function Yu(e){return e>=ju&&e<=Gu?e-ju:e>=qu&&e<=Ku?e-(qu-10):e>=Ju&&e<=Vu?e-(Ju-10):void 0}function zu(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Mu)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,i=0;t<n;t++,i+=2){const n=Yu(e.charCodeAt(i)),o=Yu(e.charCodeAt(i+1));if(void 0===n||void 0===o){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}r[t]=16*n+o}return r}function Wu(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e)),Pu(e),e}function Zu(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];Pu(r),t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return n}class Xu{}function ed(e){const t=t=>e().update(Wu(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function td(e=32){if(Du&&"function"==typeof Du.getRandomValues)return Du.getRandomValues(new Uint8Array(e));if(Du&&"function"==typeof Du.randomBytes)return Uint8Array.from(Du.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function nd(e,t=!1,n=!0){const r=e.split(":"),i=r[0]?parseInt(r[0]):void 0,o=r[1],s=r[2];if(void 0===i){if(n)return null;throw new Error("Missing kind")}if(void 0===o||""===o){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:i,pubkey:o,identifier:s}}function rd(e){if(!e[1])throw new Error("Missing coordinate in tag");const t=nd(e[1],!0,!1);return e[2]&&Fu(e[2])&&(t.relays=[e[2]]),t}function id(e){if(!e[1])throw new Error("Missing pubkey in tag");if(!Qu(e[1]))throw new Error("Invalid pubkey");const t={pubkey:e[1]};return e[2]&&Fu(e[2])&&(t.relays=[Cu(e[2])]),t}function od(e){return e.kind+":"+e.pubkey+":"+e.identifier}const sd=Symbol.for("encrypted-content"),ad={[yi.EncryptedDirectMessage]:"nip04",[yi.Seal]:"nip44",[yi.GiftWrap]:"nip44"};function ld(e,t){return ad[e]=t,e}const cd=sd,ud=new Set([ld(yi.DraftLong,"nip04")]);function dd(e,t){return ud.add(ld(e,t)),e}function fd(e){return function(e){return void 0!==ad[e]}(e)&&ud.has(e)}function hd(e){return!!fd(e.kind)&&(function(e){return!0===Reflect.has(e,sd)}(e)&&!0===Reflect.has(e,cd))}function pd(e){if(fd(e.kind))return hd(e)?e[sd]:function(e){return Reflect.get(e,sd)}(e)}const gd=Symbol.for("hidden-tags"),md=new Set([dd(yi.BookmarkList,"nip04"),dd(yi.InterestsList,"nip04"),dd(yi.Mutelist,"nip04"),dd(yi.CommunitiesList,"nip04"),dd(yi.PublicChatsList,"nip04"),dd(yi.SearchRelaysList,"nip04"),dd(10009,"nip04"),dd(yi.Bookmarksets,"nip04"),dd(yi.Relaysets,"nip04"),dd(yi.Followsets,"nip04"),dd(yi.Curationsets,"nip04"),dd(yi.Interestsets,"nip04")]);function yd(e){return fd(e)&&md.has(e)}function wd(e){return!!yd(e.kind)&&(hd(e)&&Reflect.has(e,"HiddenTagsSymbol"))}function vd(e){if(!yd(e.kind))return;if(wd(e))return e[gd];const t=pd(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,gd,r),r}const Ad="abcdefghijklmnopqrstuvwxyz",bd=new Set((Ad+Ad.toUpperCase()).split("")),kd=Symbol.for("indexable-tags");function Id(e){let t=Reflect.get(e,kd);if(!t){const n=new Set;for(const t of e.tags)t.length>=2&&1===t[0].length&&bd.has(t[0])&&n.add(t[0]+":"+t[1]);t=n,Reflect.set(e,kd,n)}return t}class Ed{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 i;if(n||this.has(e)){if(i=this.items[e],i.value=t,!1===n&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){const e=this.last,t=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,e.next=i,null!==n&&(n.next=t),null!==t&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=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=i:this.last.next=i;return this.last=i,this}values(e=this.keys()){return e.map(e=>this.get(e))}}function Cd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xd,Bd,Sd={exports:{}};function Fd(){if(Bd)return xd;Bd=1;var e=1e3,t=60*e,n=60*t,r=24*n,i=7*r,o=365.25*r;function s(e,t,n,r){var i=t>=1.5*n;return Math.round(e/n)+" "+r+(i?"s":"")}return xd=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*o;case"weeks":case"week":case"w":return l*i;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(i){var o=Math.abs(i);if(o>=r)return s(i,o,r,"day");if(o>=n)return s(i,o,n,"hour");if(o>=t)return s(i,o,t,"minute");if(o>=e)return s(i,o,e,"second");return i+" ms"}(a):function(i){var o=Math.abs(i);if(o>=r)return Math.round(i/r)+"d";if(o>=n)return Math.round(i/n)+"h";if(o>=t)return Math.round(i/t)+"m";if(o>=e)return Math.round(i/e)+"s";return i+"ms"}(a);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}}var Qd=function(e){function t(e){let r,i,o,s=null;function a(...e){if(!a.enabled)return;const n=a,i=Number(new Date),o=i-(r||i);n.diff=o,n.prev=r,n.curr=i,r=i,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,i)=>{if("%%"===r)return"%";s++;const o=t.formatters[i];if("function"==typeof o){const t=e[s];r=o.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:(i!==t.namespaces&&(i=t.namespaces,o=t.enabled(e)),o),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,i=-1,o=0;for(;n<e.length;)if(r<t.length&&(t[r]===e[n]||"*"===t[r]))"*"===t[r]?(i=r,o=n,r++):(n++,r++);else{if(-1===i)return!1;r=i+1,o++,n=o}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=Fd(),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,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))}),t.splice(i,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=Qd(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Sd,Sd.exports);const Dd=Cd(Sd.exports)("applesauce");class Rd{log=Dd.extend("EventMemory");kinds=new Map;authors=new Map;tags=new Ed;created_at=[];kindAuthor=new Map;events=new Ed;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(gu(e,t,n));return!!r&&r.length>0}getReplaceable(e,t,n){const r=gu(e,t,n),i=this.replaceable.get(r);return i?.[0]}getReplaceableHistory(e,t,n){const r=gu(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)ou(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),this.getKindAuthorIndex(e.kind,e.pubkey).add(e);for(const t of Id(e))this.tags.has(t)&&this.getTagIndex(t).add(e);if(ou(this.created_at,e),fu(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=gu(e.kind,e.pubkey,t);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),ou(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);const r=`${t.kind}:${t.pubkey}`;this.kindAuthor.has(r)&&this.kindAuthor.get(r).delete(t);for(const e of Id(t))this.tags.has(e)&&this.getTagIndex(e).delete(t);if(this.removeFromSortedArray(this.created_at,t),this.events.delete(n),fu(t.kind)){const e=t.tags.find(e=>"d"===e[0])?.[1],n=gu(t.kind,t.pubkey,e),r=this.replaceable.get(n);r&&this.removeFromSortedArray(r,t)}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){const t=this.claims.get(e)||0;this.claims.set(e,t+1),this.touch(e)}isClaimed(e){const t=this.claims.get(e);return void 0!==t&&t>0}removeClaim(e){const t=this.claims.get(e);if(void 0!==t&&t>0){const n=t-1;0===n?this.claims.delete(e):this.claims.set(e,n)}}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)}getKindAuthorIndex(e,t){const n=`${e}:${t}`;return this.kindAuthor.has(n)||this.kindAuthor.set(n,new Set),this.kindAuthor.get(n)}getTagIndex(e){if(!this.tags.has(e)){const t=new Set,n=Date.now();for(const n of this.events.values())Id(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)}removeFromSortedArray(e,t){if(0===e.length)return;const n=su(e,e=>e.created_at-t.created_at);if(n){let r=n[0],i=!1;if(e[r]===t)return void e.splice(r,1);for(let n=r-1;n>=0&&e[n].created_at===t.created_at;n--)if(e[n]===t){e.splice(n,1),i=!0;break}if(i)return;for(let n=r+1;n<e.length&&e[n].created_at===t.created_at;n++)if(e[n]===t)return void e.splice(n,1)}const r=e.indexOf(t);-1!==r&&e.splice(r,1)}*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,i=t?su(this.created_at,e=>e.created_at-t):void 0;i&&(n=i[0]);const o=e?su(this.created_at,t=>t.created_at-e):void 0;o&&(r=o[0]);for(let i=n;i<=r;i++){const n=this.created_at[i];if(!(void 0!==t&&n.created_at>t)){if(void 0!==e&&n.created_at<e)break;yield n}}}*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 i=null;void 0!==e.since&&(i=Array.from(this.iterateTime(e.since,e.until)),r(i));for(const t of bd){const n=e[`&${t}`];if(n?.length)for(const e of n)r(this.iterateTag(t,[e]))}for(const t of bd){const n=e[`#${t}`];if(n?.length){const i=e[`&${t}`],o=i?n.filter(e=>!i.includes(e)):n;o.length>0&&r(this.iterateTag(t,o))}}if(e.authors&&e.kinds&&e.authors.length*e.kinds.length<=20){const t=new Set;for(const n of e.kinds)for(const r of e.authors){const e=`${n}:${r}`,i=this.kindAuthor.get(e);if(i)for(const e of i)t.add(e)}r(t)}else e.authors&&r(this.iterateAuthors(e.authors)),e.kinds&&r(this.iterateKinds(e.kinds));if(void 0===e.since&&void 0!==e.until&&(i=Array.from(this.iterateTime(e.since,e.until)),r(i)),t)return new Set(this.events.values());if(e.limit&&i){const t=new Set;for(const r of i){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.kindAuthor.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}}function $d(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 Pd(e,t,n,r){var i,o=$d($d($d(e,n),(i=t,Object.prototype.toString.call(i))),typeof t);if(null===t)return $d(o,"null");if(void 0===t)return $d(o,"undefined");if("object"==typeof t||"function"==typeof t){if(-1!==r.indexOf(t))return $d(o,"[Circular]"+n);r.push(t);var s=function(e,t,n){return Object.keys(t).sort().reduce(function(e,r){return Pd(e,t[r],r,n)},e)}(o,t,r);if(!("valueOf"in t)||"function"!=typeof t.valueOf)return s;try{return $d(s,String(t.valueOf()))}catch(e){return $d(s,"[valueOf exception]"+(e.stack||e.message))}}return $d(o,t.toString())}var Ud=function(e){return function(e,t){for(;e.length<t;)e="0"+e;return e}(Pd(0,e,"",[]).toString(16),8)},Td=Cd(Ud);function Nd(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;if(e.since&&t.created_at<e.since)return!1;if(e.until&&t.created_at>e.until)return!1;for(let n in e)if("&"===n[0]){let r=n.slice(1),i=e[n];if(i&&i.length>0){const e=Id(t);for(const t of i)if(!e.has(r+":"+t))return!1}}for(let n in e)if("#"===n[0]){let r=n.slice(1),i=e[n];if(i){const n=e[`&${r}`],o=n?i.filter(e=>!n.includes(e)):i;if(0===o.length)continue;const s=Id(t);if(!1===o.some(e=>s.has(r+":"+e)))return!1}}return!0}function Ld(e,t){for(let n=0;n<e.length;n++)if(Nd(e[n],t))return!0;return!1}function Od(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:10063,pubkey:e.pubkey,relays:e.relays}).pipe(mc(e=>e?function(e){const t=Array.isArray(e)?e:e.tags;return zc(t,e=>Gc(e,"server")&&URL.canParse(e[1])?new URL("/",e[1]):void 0)}(e):[]))}const Md=Symbol.for("profile-content");function _d(e){return iu(e,Md,()=>{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 Hd(e){return!!e&&((e.kind===yi.Metadata||e.kind===yi.Handlerinformation)&&!!_d(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 i(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 o(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 i=0;const o=[],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 o=i;o<s.length;o++){const a=s[o],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[o]=Math.floor(l/r),!Number.isSafeInteger(s[o])||s[o]*r+e!==l)throw new Error("convertRadix: carry overflow");t&&(s[o]?t=!1:i=o)}if(o.push(e),t)break}for(let t=0;t<e.length-1&&0===e[t];t++)o.push(0);return o.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,i){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 o=0,s=0;const a=2**r-1,l=[];for(const i of e){if(t(i),i>=2**n)throw new Error(`convertRadix2: invalid data word=${i} from=${n}`);if(o=o<<n|i,s+n>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${n}`);for(s+=n;s>=r;s-=r)l.push((o>>s-r&a)>>>0);o&=2**s-1}if(o=o<<r-s&a,!i&&s>=n)throw new Error("Excess padding");if(!i&&o)throw new Error(`Non-zero padding: ${o}`);return i&&s>0&&l.push(o>>>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),i=new Uint8Array(t.length+e);return i.set(t),i.set(r,t.length),i},decode(t){if(!(t instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=t.slice(0,-e),i=n(r).slice(0,e),o=t.slice(-e);for(let t=0;t<e;t++)if(i[t]!==o[t])throw new Error("Invalid checksum");return r}}}e.utils={alphabet:r,chain:n,checksum:p,radix:d,radix2:f,join:i,padding:o},e.base16=n(f(4),r("0123456789ABCDEF"),i("")),e.base32=n(f(5),r("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),o(5),i("")),e.base32hex=n(f(5),r("0123456789ABCDEFGHIJKLMNOPQRSTUV"),o(5),i("")),e.base32crockford=n(f(5),r("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),i(""),s(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),e.base64=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),o(6),i("")),e.base64url=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),o(6),i(""));const g=e=>n(d(58),r(e),i(""));e.base58=g("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),e.base58flickr=g("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),e.base58xrp=g("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const m=[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 i=t.subarray(r,r+8);n+=e.base58.encode(i).padStart(m[i.length],"1")}return n},decode(t){let n=[];for(let r=0;r<t.length;r+=11){const i=t.slice(r,r+11),o=m.indexOf(i.length),s=e.base58.decode(i);for(let e=0;e<s.length-o;e++)if(0!==s[e])throw new Error("base58xmr: wrong padding");n=n.concat(Array.from(s.slice(s.length-o)))}return Uint8Array.from(n)}};e.base58check=t=>n(p(4,e=>t(t(e))),e.base58);const y=n(r("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),i("")),w=[996825010,642813549,513874426,1027748829,705979059];function v(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<w.length;e++)1==(t>>e&1)&&(n^=w[e]);return n}function A(e,t,n=1){const r=e.length;let i=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=v(i)^n>>5}i=v(i);for(let t=0;t<r;t++)i=v(i)^31&e.charCodeAt(t);for(let e of t)i=v(i)^e;for(let e=0;e<6;e++)i=v(i);return i^=n,y.encode(u([i%2**30],30,5,!1))}function b(e){const t="bech32"===e?1:734539939,n=f(5),r=n.decode,i=n.encode,o=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 i=(e=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const o=e.slice(0,i),s=e.slice(i+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=y.decode(s).slice(0,-6),l=A(o,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:o,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 i=e.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${y.encode(n)}${A(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:o,toWords:i}}e.bech32=b("bech32"),e.bech32m=b("bech32m"),e.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},e.hex=n(f(4),r("0123456789abcdef"),i(""),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},I=`Invalid encoding type. Available types: ${Object.keys(k).join(", ")}`;e.bytesToString=(e,t)=>{if("string"!=typeof e||!k.hasOwnProperty(e))throw new TypeError(I);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(I);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 jd={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(jd);e<t.length;e++)t[e],jd[t[e]].toString();const Gd=Symbol.for("public-contacts"),qd=Symbol.for("hidden-contacts");function Kd(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 iu(e,Gd,()=>zc(e.tags,e=>Kc(e)?e:void 0,id))}(e),function(e){if(function(e){return wd(e)&&Reflect.has(e,qd)}(e))return e[qd];const t=vd(e);if(!t)return;const n=zc(t,e=>Kc(e)?e:void 0,id);return Reflect.set(e,qd,n),n}(e))}Dd.extend("EncryptedContentCache"),Dd.extend("event-cache"),new TextDecoder;const Jd=Symbol.for("mailboxes-inboxes"),Vd=Symbol.for("mailboxes-outboxes");function Yd(e){return iu(e,Jd,()=>{const t=[];for(const n of e.tags)if(Jc(n))try{const[,e,r]=n;!e||!Fu(e)||t.includes(e)||"read"!==r&&void 0!==r||t.push(Cu(e))}catch{}return t})}function zd(e){return iu(e,Vd,()=>{const t=[];for(const n of e.tags)if(Jc(n))try{const[e,r,i]=n;"r"!==e||!Fu(r)||t.includes(r)||"write"!==i&&void 0!==i||t.push(Cu(r))}catch{}return t})}const Wd=Symbol.for("mute-public"),Zd=Symbol.for("mute-hidden");function Xd(e){return{pubkeys:new Set(e.filter(Kc).map(e=>e[1])),threads:new Set(e.filter(qc).map(e=>e[1])),hashtags:new Set(e.filter(Yc).map(e=>e[1].toLocaleLowerCase())),words:new Set(e.filter(e=>"word"===e[0]&&e[1]).map(e=>e[1].toLocaleLowerCase()))}}function ef(e){const t=function(e){if(function(e){return wd(e)&&Reflect.has(e,Zd)}(e))return e[Zd];const t=vd(e);if(!t)return;const n=Xd(t);return Reflect.set(e,Zd,n),n}(e),n=function(e){return iu(e,Wd,()=>Xd(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 tf;!function(e){e.nudity="nudity",e.malware="malware",e.profanity="profanity",e.illegal="illegal",e.spam="spam",e.impersonation="impersonation",e.other="other"}(tf||(tf={}));const nf=Symbol.for("nip10-thread-refs");function rf(e){if(!e[1])throw new Error("Missing event id in tag");let t={id:e[1]};return e[2]&&Fu(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 of(e){return t=>{const n=new Set;return t.pipe(jc(t=>{if(void 0!==t)if(Array.isArray(t))for(const r of t)n.has(r)||(n.add(r),e.claim(r));else n.has(t)||(n.add(t),e.claim(t))}),Nc(()=>{for(const t of n)e.removeClaim(t)}))}}function sf(e){return t=>{let n;return t.pipe(jc(t=>{n!==t&&(n&&e.removeClaim(n),t&&e.claim(t),n=t)}),Nc(()=>{n&&e.removeClaim(n)}))}}function af(){return e=>e.pipe(Rc(e=>null!=e))}function lf(e){return t=>new Dl(n=>{let r=!1;const i=t.subscribe({next:e=>{r=!0,n.next(e)},error:e=>n.error(e),complete:()=>n.complete()});return r||n.next(e),i})}function cf(e){return"string"==typeof e&&(e={id:e}),t=>Dc(Fc(()=>function(e,t){const n=e.getEvent(t.id);return n instanceof Promise?pc(n):gc(n)}(t,e)).pipe(function(e,t){return Hc(n=>n?gc(n):e.eventLoader?pc(e.eventLoader(t)):Jl)}(t,e),af()),t.insert$.pipe(Rc(t=>t.id===e.id)),t.remove$.pipe(Rc(t=>t.id===e.id),$c(1),$l(function(e,t){e.subscribe(Pl(t,Al))}),Tc(void 0))).pipe(sf(t),Pc((e,t)=>e?.id===t?.id),lf(void 0))}function uf(e){return t=>{let n;return Dc(Fc(()=>function(e,t){const n=e.getReplaceable(t.kind,t.pubkey,t.identifier);return n instanceof Promise?pc(n):gc(n)}(t,e)).pipe(function(e,t){return Hc(n=>n?gc(n):void 0!==t.identifier?e.addressableLoader?pc(e.addressableLoader(t)).pipe(Rc(e=>!!e)):Jl:e.replaceableLoader?pc(e.replaceableLoader(t)).pipe(Rc(e=>!!e)):Jl)}(t,e),af()),t.insert$.pipe(Rc(t=>t.pubkey==e.pubkey&&t.kind===e.kind&&(void 0===e.identifier||mu(t)===e.identifier)))).pipe(Pc((e,t)=>e.created_at>=t.created_at),jc(e=>n=e),(r=t.remove$.pipe(Rc(e=>e.id===n?.id)),$l(function(e,t){ac(r).subscribe(Pl(t,function(){return t.complete()},Al)),!t.closed&&e.subscribe(t)})),Tc(void 0),function(e){var t,n,r=1/0;return null!=e&&("object"==typeof e?(t=e.count,r=void 0===t?1/0:t,n=e.delay):r=e),r<=0?function(){return Jl}:$l(function(e,t){var i,o=0,s=function(){if(null==i||i.unsubscribe(),i=null,null!=n){var e="number"==typeof n?Qc(n):ac(n(o)),r=Pl(t,function(){r.unsubscribe(),a()});e.subscribe(r)}else a()},a=function(){var n=!1;i=e.subscribe(Pl(t,void 0,function(){++o<r?i?s():n=!0:t.complete()})),n&&s()};a()})}(),sf(t),lf(void 0));var r}}function df(e,t){return e=Array.isArray(e)?e:[e],n=>{const r=new Map;return Fc(()=>{const t=n.getTimeline(e);return t instanceof Promise?pc(t):gc(t)}).pipe(of(n),Oc(n.insert$.pipe(Rc(t=>Ld(e,t)),of(n))),Oc(n.remove$.pipe(Rc(t=>Ld(e,t)),mc(e=>e.id))),Mc((e,n)=>{if("string"==typeof n)return e.filter(e=>e.id!==n);if(Array.isArray(n)){if(!t)for(const e of n)fu(e.kind)&&r.set(hu(e),e);return n}let i=[...e];if(!t&&fu(n.kind)){const t=hu(n),o=r.get(t);if(o&&n.created_at<o.created_at)return e;r.set(t,n),o&&i.slice(i.indexOf(o),1)}return ou(i,n),i},[]),Pc(),Nc(()=>r.clear()))}}function ff(e){return t=>Ec(Object.fromEntries(e.map(e=>[e,t.model(cf,{id:e})])))}function hf(e){return t=>Ec(Object.fromEntries(e.map(e=>[gu(e.kind,e.pubkey,e.identifier),t.model(uf,e)])))}function pf(e){return t=>{let n;return Dc(t.pipe(jc(e=>n=e)),e.update$.pipe(Rc(e=>e.id===n?.id)))}}function gf(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:yi.Contacts,pubkey:e.pubkey,relays:e.relays}).pipe(pf(t),mc(e=>e?Kd(e):[]))}function mf(e){return t=>{const n=[{kinds:[1111],"#e":[e.id]}];return Za(e.kind)&&n.push({kinds:[1111],"#a":[pu(e)]}),t.timeline(n)}}function yf(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:yi.RelayList,pubkey:e.pubkey,relays:e.relays}).pipe(mc(e=>e&&{inboxes:Yd(e),outboxes:zd(e)}))}function wf(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:yi.Mutelist,pubkey:e.pubkey,relays:e.relays}).pipe(pf(t),mc(e=>e&&ef(e)))}function vf(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:yi.Metadata,pubkey:e.pubkey,relays:e.relays}).pipe(Rc(Hd),mc(e=>e&&_d(e)),lf(void 0))}function Af(e){return t=>t.timeline(fu(e.kind)?[{kinds:[yi.Reaction],"#e":[e.id]},{kinds:[yi.Reaction],"#a":[hu(e)]}]:[{kinds:[yi.Reaction],"#e":[e.id]}])}const bf={kinds:[yi.ShortTextNote]};function kf(e,t){const n=new Map,r=new Map,{kinds:i}={...bf,...t};let o="";const s={},a={kinds:i};var l;return"string"!=typeof(l=e)&&Reflect.has(l,"identifier")&&Reflect.has(l,"pubkey")&&Reflect.has(l,"kind")?(o=od(e),s.kinds=[e.kind],s.authors=[e.pubkey],s["#d"]=[e.identifier],a["#a"]=[o]):"string"==typeof e?(o=e,s.ids=[e],a["#e"]=[e]):(o=e.id,s.ids=[e.id],a["#e"]=[e.id]),e=>e.filters([s,a]).pipe(mc(e=>{if(!r.has(hu(e))){const t=function(e){return iu(e,nf,()=>{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]),i=t.find(e=>"reply"===e[3]),o=n.find(e=>"root"===e[3]),s=n.find(e=>"reply"===e[3]);if(r&&i||(r=i=r||i),o&&s||(o=s=o||s),!r&&!i){const e=t.filter(e=>!e[3]);e.length>=1&&(r=e[0],i=e[e.length-1]??r)}return{root:r||o?{e:r,a:o}:void 0,reply:i||s?{e:i,a:s}:void 0}}(e.tags);let n,r;if(t.root)try{n={e:t.root.e&&rf(t.root.e),a:t.root.a&&rd(t.root.a)}}catch(e){}if(t.reply)try{r={e:t.reply.e&&rf(t.reply.e),a:t.reply.a&&rd(t.reply.a)}}catch(e){}return{root:n,reply:r}})}(e),i=n.get(hu(e))||new Set,o={event:e,refs:t,replies:i};for(const e of i)e.parent=o;if(t.reply?.e||t.reply?.a){let e=t.reply.e?t.reply.e.id:od(t.reply.a);if(o.parent=r.get(e),o.parent)o.parent.replies.add(o);else{let t=n.get(e);t||(t=new Set,n.set(e,t)),t.add(o)}}r.set(hu(e),o)}return{root:r.get(o),all:r}}))}function If(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):Td(t);let i=n.get(r);if(!i){const o=()=>{n.get(r)===i&&n.delete(r)};i=e(...t)(this).pipe(Nc(o),function(e){void 0===e&&(e={});var t=e.connector,n=void 0===t?function(){return new Nl}:t,r=e.resetOnError,i=void 0===r||r,o=e.resetOnComplete,s=void 0===o||o,a=e.resetOnRefCountZero,l=void 0===a||a;return function(e){var t,r,o,a=0,c=!1,u=!1,d=function(){null==r||r.unsubscribe(),r=void 0},f=function(){d(),t=o=void 0,c=u=!1},h=function(){var e=t;f(),null==e||e.unsubscribe()};return $l(function(e,p){a++,u||c||d();var g=o=null!=o?o:n();p.add(function(){0!==--a||u||c||(r=_c(h,l))}),g.subscribe(p),!t&&a>0&&(t=new xl({next:function(e){return g.next(e)},error:function(e){u=!0,d(),r=_c(f,i,e),g.error(e)},complete:function(){c=!0,d(),r=_c(f,s),g.complete()}}),ac(e).subscribe(t))})(e)}}({connector:()=>new Ml(1),resetOnComplete:()=>Qc(this.modelKeepWarm),resetOnRefCountZero:()=>Qc(this.modelKeepWarm)})),n.set(r,i)}return i}filters(e,t=!1){e=Array.isArray(e)?e:[e];const n=this.getByFilters(e);return Dc(t?Jl:n&&"function"==typeof n.then?pc(n).pipe(xc(e=>pc(Array.from(e)))):pc(Array.from(n)),this.insert$.pipe(Rc(t=>Ld(e,t))))}event(e){return"string"==typeof e&&(e={id:e}),this.model(cf,e)}replaceable(...e){let t;if(1===e.length)t=e[0];else if(3===e.length||2===e.length){let[n,r,i]=e;t={kind:n,pubkey:r,identifier:i}}if(!t)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(uf,t)}addressable(e){return this.model(uf,e)}timeline(e,t=!1){return this.model(df,e,t)}profile(e){return this.model(vf,e)}contacts(e){return"string"==typeof e&&(e={pubkey:e}),this.model(gf,e)}mutes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(wf,e)}mailboxes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(yf,e)}blossomServers(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Od,e)}reactions(e){return this.model(Af,e)}thread(e){return this.model(kf,e)}comments(e){return this.model(mf,e)}events(e){return this.model(ff,e)}replaceableSet(e){return this.model(hf,e)}}}class Ef extends(If(class{})){database;memory;keepOldVersions=!1;keepExpired=!1;verifyEvent;insert$=new Nl;update$=new Nl;remove$=new Nl;eventLoader;replaceableLoader;addressableLoader;constructor(e=new Rd){super(),e?(this.database=e,this.memory=new Rd):this.database=this.memory=new Rd,this.insert$.subscribe(e=>{Reflect.set(e,au,this)}),this.remove$.subscribe(e=>{Reflect.deleteProperty(e,au)})}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(Za(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=this.deletedCoords.get(gu(e.kind,e.pubkey,t));if(n)return n>e.created_at}return!1}expirations=new Map;addExpiration(e){const t=vu(e);t&&Number.isFinite(t)&&this.expirations.set(e.id,t)}expirationTimeout=null;nextExpirationCheck=null;handleExpiringEvent(e){const t=vu(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-yu();this.expirationTimeout=setTimeout(this.pruneExpired.bind(this),1e3*n+10),this.nextExpirationCheck=t}pruneExpired(){const e=yu();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(qc).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(Vc).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=nd(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[xu];if(n)for(const e of n)Bu(t,e);const r=Reflect.get(e,uu);r&&!Reflect.get(t,uu)&&Reflect.set(t,uu,r)}add(e,t){if(e.kind===yi.EventDeletion&&this.handleDeleteEvent(e),this.checkDeleted(e))return e;const n=vu(e);if(!1===this.keepExpired&&n&&n<=yu())return null;const r=fu(e.kind)?e.tags.find(e=>"d"===e[0])?.[1]:void 0;if(!this.keepOldVersions&&fu(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 Ef.mergeDuplicateEvent(e,t[0]),t[0]}if(this.verifyEvent&&!1===this.verifyEvent(e))return null;const i=this.memory?.add(e);if(i&&i!==e)return Ef.mergeDuplicateEvent(e,i),t&&Bu(i,t),i;const o=this.mapToMemory(this.database.add(e));if(e!==o&&Ef.mergeDuplicateEvent(e,o),t&&Bu(o,t),o===e&&this.insert$.next(o),!this.keepOldVersions&&fu(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(o),o}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){return this.memory?.claim(e)}isClaimed(e){return this.memory?.isClaimed(e)??!1}removeClaim(e){return this.memory?.removeClaim(e)}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)?Jl:this.remove$.pipe(Rc(t=>t.id===e),$c(1),xc(()=>Jl))}updated(e){return this.update$.pipe(Rc(t=>t.id===e||t===e))}}function Cf(){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 xf,Bf;dd(yi.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"}(xf||(xf={})),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"}(Bf||(Bf={}));class Sf{key;constructor(e){this.key=e||hi()}async getPublicKey(){return pi(this.key)}async signEvent(e){return gi(e,this.key)}nip04={encrypt:async(e,t)=>ys.encrypt(this.key,e,t),decrypt:async(e,t)=>ys.decrypt(this.key,e,t)};nip44={encrypt:async(e,t)=>Ps.v2.encrypt(t,Ps.v2.utils.getConversationKey(this.key,e)),decrypt:async(e,t)=>Ps.v2.decrypt(t,Ps.v2.utils.getConversationKey(this.key,e))};static fromKey(e){return new Sf(function(e){if(e instanceof Uint8Array)return e;if(Qu(e))return zu(e);{const t=ts.decode(e);if("nsec"!==t.type)throw new Error(`Cant get secret key from ${t.type}`);return t.data}}(e))}}
|
||
/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Ff=BigInt(0),Qf=BigInt(1),Df=BigInt(2),Rf=BigInt(3),$f=BigInt(8),Pf=Object.freeze({a:Ff,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Qf,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Uf=(e,t)=>(e+t/Df)/t,Tf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=Pf,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Qf*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,s=BigInt("0x100000000000000000000000000000000"),a=Uf(o*e,t),l=Uf(-r*e,t);let c=ah(e-a*n-l*i,t),u=ah(-a*r-l*o,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}}},Nf=32;function Lf(e){const{a:t,b:n}=Pf,r=ah(e*e),i=ah(r*e);return ah(i+t*e+n)}const Of=Pf.a===Ff;function Mf(e){if(!(e instanceof _f))throw new TypeError("JacobianPoint expected")}class _f{constructor(e,t,n){this.x=e,this.y=t,this.z=n}static fromAffine(e){if(!(e instanceof Gf))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(Gf.ZERO)?_f.ZERO:new _f(e.x,e.y,Qf)}static toAffineBatch(e){const t=function(e,t=Pf.P){const n=new Array(e.length),r=e.reduce((e,r,i)=>r===Ff?e:(n[i]=e,ah(e*r,t)),Qf),i=ch(r,t);return e.reduceRight((e,r,i)=>r===Ff?e:(n[i]=ah(e*n[i],t),ah(e*r,t)),i),n}(e.map(e=>e.z));return e.map((e,n)=>e.toAffine(t[n]))}static normalizeZ(e){return _f.toAffineBatch(e).map(_f.fromAffine)}equals(e){Mf(e);const{x:t,y:n,z:r}=this,{x:i,y:o,z:s}=e,a=ah(r*r),l=ah(s*s),c=ah(t*l),u=ah(i*a),d=ah(ah(n*s)*l),f=ah(ah(o*r)*a);return c===u&&d===f}negate(){return new _f(this.x,ah(-this.y),this.z)}double(){const{x:e,y:t,z:n}=this,r=ah(e*e),i=ah(t*t),o=ah(i*i),s=e+i,a=ah(Df*(ah(s*s)-r-o)),l=ah(Rf*r),c=ah(l*l),u=ah(c-Df*a),d=ah(l*(a-u)-$f*o),f=ah(Df*t*n);return new _f(u,d,f)}add(e){Mf(e);const{x:t,y:n,z:r}=this,{x:i,y:o,z:s}=e;if(i===Ff||o===Ff)return this;if(t===Ff||n===Ff)return e;const a=ah(r*r),l=ah(s*s),c=ah(t*l),u=ah(i*a),d=ah(ah(n*s)*l),f=ah(ah(o*r)*a),h=ah(u-c),p=ah(f-d);if(h===Ff)return p===Ff?this.double():_f.ZERO;const g=ah(h*h),m=ah(h*g),y=ah(c*g),w=ah(p*p-m-Df*y),v=ah(p*(y-w)-d*m),A=ah(r*s*h);return new _f(w,v,A)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=_f.ZERO;if("bigint"==typeof e&&e===Ff)return t;let n=sh(e);if(n===Qf)return this;if(!Of){let e=t,r=this;for(;n>Ff;)n&Qf&&(e=e.add(r)),r=r.double(),n>>=Qf;return e}let{k1neg:r,k1:i,k2neg:o,k2:s}=Tf.splitScalar(n),a=t,l=t,c=this;for(;i>Ff||s>Ff;)i&Qf&&(a=a.add(c)),s&Qf&&(l=l.add(c)),c=c.double(),i>>=Qf,s>>=Qf;return r&&(a=a.negate()),o&&(l=l.negate()),l=new _f(ah(l.x*Tf.beta),l.y,l.z),a.add(l)}precomputeWindow(e){const t=Of?128/e+1:256/e+1,n=[];let r=this,i=r;for(let o=0;o<t;o++){i=r,n.push(i);for(let t=1;t<2**(e-1);t++)i=i.add(r),n.push(i);r=i.double()}return n}wNAF(e,t){!t&&this.equals(_f.BASE)&&(t=Gf.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&&jf.get(t);r||(r=this.precomputeWindow(n),t&&1!==n&&(r=_f.normalizeZ(r),jf.set(t,r)));let i=_f.ZERO,o=_f.BASE;const s=1+(Of?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+=Qf);const d=n,f=n+Math.abs(s)-1,h=t%2!=0,p=s<0;0===s?o=o.add(Hf(h,r[d])):i=i.add(Hf(p,r[f]))}return{p:i,f:o}}multiply(e,t){let n,r,i=sh(e);if(Of){const{k1neg:e,k1:o,k2neg:s,k2:a}=Tf.splitScalar(i);let{p:l,f:c}=this.wNAF(o,t),{p:u,f:d}=this.wNAF(a,t);l=Hf(e,l),u=Hf(s,u),u=new _f(ah(u.x*Tf.beta),u.y,u.z),n=l.add(u),r=c.add(d)}else{const{p:e,f:o}=this.wNAF(i,t);n=e,r=o}return _f.normalizeZ([n,r])[0]}toAffine(e){const{x:t,y:n,z:r}=this,i=this.equals(_f.ZERO);null==e&&(e=i?$f:ch(r));const o=e,s=ah(o*o),a=ah(s*o),l=ah(t*s),c=ah(n*a),u=ah(r*o);if(i)return Gf.ZERO;if(u!==Qf)throw new Error("invZ was invalid");return new Gf(l,c)}}function Hf(e,t){const n=t.negate();return e?n:t}_f.BASE=new _f(Pf.Gx,Pf.Gy,Qf),_f.ZERO=new _f(Ff,Qf,Ff);const jf=new WeakMap;class Gf{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,jf.delete(this)}hasEvenY(){return this.y%Df===Ff}static fromCompressedHex(e){const t=32===e.length,n=ih(t?e:e.subarray(1));if(!dh(n))throw new Error("Point is not on curve");let r=function(e){const{P:t}=Pf,n=BigInt(6),r=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),l=e*e*e%t,c=l*l*e%t,u=lh(c,Rf)*c%t,d=lh(u,Rf)*c%t,f=lh(d,Df)*l%t,h=lh(f,r)*f%t,p=lh(h,i)*h%t,g=lh(p,s)*p%t,m=lh(g,a)*g%t,y=lh(m,s)*p%t,w=lh(y,Rf)*c%t,v=lh(w,o)*h%t,A=lh(v,n)*l%t,b=lh(A,Df);if(b*b%t!==e)throw new Error("Cannot find square root");return b}(Lf(n));const i=(r&Qf)===Qf;if(t)i&&(r=ah(-r));else{!(1&~e[0])!==i&&(r=ah(-r))}const o=new Gf(n,r);return o.assertValidity(),o}static fromUncompressedHex(e){const t=ih(e.subarray(1,33)),n=ih(e.subarray(33,65)),r=new Gf(t,n);return r.assertValidity(),r}static fromHex(e){const t=oh(e),n=t.length,r=t[0];if(n===Nf)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 Gf.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=rh(e)}else{if(!Vf(e))throw new TypeError("Expected valid private key");if(32!==e.length)throw new Error("Expected 32 bytes of private key");t=ih(e)}if(!uh(t))throw new Error("Expected private key: 0 < key < n");return t}(e))}static fromSignature(e,t,n){const{r:r,s:i}=function(e){if(e instanceof Jf)return e.assertValidity(),e;try{return Jf.fromDER(e)}catch(t){return Jf.fromCompact(e)}}(t);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");const o=function(e,t=!1){const n=function(e){const t=8*e.length-256,n=ih(e);return t>0?n>>BigInt(t):n}(e);if(t)return n;const{n:r}=Pf;return n>=r?n-r:n}(oh(e)),{n:s}=Pf,a=2===n||3===n?r+s:r,l=ch(a,s),c=ah(-o*l,s),u=ah(i*l,s),d=1&n?"03":"02",f=Gf.fromHex(d+th(a)),h=Gf.BASE.multiplyAndAddUnsafe(f,c,u);if(!h)throw new Error("Cannot recover signature: point at infinify");return h.assertValidity(),h}toRawBytes(e=!1){return Xf(this.toHex(e))}toHex(e=!1){const t=th(this.x);if(e){return`${this.hasEvenY()?"02":"03"}${t}`}return`04${t}${th(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(!dh(t)||!dh(n))throw new Error(e);const r=ah(n*n);if(ah(r-Lf(t))!==Ff)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Gf(this.x,ah(-this.y))}double(){return _f.fromAffine(this).double().toAffine()}add(e){return _f.fromAffine(this).add(_f.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return _f.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,n){const r=_f.fromAffine(this),i=t===Ff||t===Qf||this!==Gf.BASE?r.multiplyUnsafe(t):r.multiply(t),o=_f.fromAffine(e).multiplyUnsafe(n),s=i.add(o);return s.equals(_f.ZERO)?void 0:s.toAffine()}}function qf(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function Kf(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${zf(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:ih(n),left:e.subarray(t+2)}}Gf.BASE=new Gf(Pf.Gx,Pf.Gy),Gf.ZERO=new Gf(Ff,Ff);class Jf{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=Vf(e),n="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${n}: Expected string or Uint8Array`);const r=t?zf(e):e;if(128!==r.length)throw new Error(`${n}: Expected 64-byte hex`);return new Jf(rh(r.slice(0,64)),rh(r.slice(64,128)))}static fromDER(e){const t=Vf(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: ${zf(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:n}=Kf(e.subarray(2)),{data:r,left:i}=Kf(n);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${zf(i)}`);return{r:t,s:r}}(t?e:Xf(e));return new Jf(n,r)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!uh(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!uh(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=Pf.n>>Qf;return this.s>e}normalizeS(){return this.hasHighS()?new Jf(this.r,ah(-this.s,Pf.n)):this}toDERRawBytes(){return Xf(this.toDERHex())}toDERHex(){const e=qf(nh(this.s)),t=qf(nh(this.r)),n=e.length/2,r=t.length/2,i=nh(n),o=nh(r);return`30${nh(r+n+4)}02${o}${t}02${i}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return Xf(this.toCompactHex())}toCompactHex(){return th(this.r)+th(this.s)}}function Vf(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}const Yf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function zf(e){!function(e){if(!Vf(e))throw new Error("Uint8Array expected")}(e);let t="";for(let n=0;n<e.length;n++)t+=Yf[e[n]];return t}const Wf={_0:48,_9:57,A:65,F:70,a:97,f:102};function Zf(e){return e>=Wf._0&&e<=Wf._9?e-Wf._0:e>=Wf.A&&e<=Wf.F?e-(Wf.A-10):e>=Wf.a&&e<=Wf.f?e-(Wf.a-10):void 0}function Xf(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,i=0;t<n;t++,i+=2){const n=Zf(e.charCodeAt(i)),o=Zf(e.charCodeAt(i+1));if(void 0===n||void 0===o){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}r[t]=16*n+o}return r}const eh=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function th(e){if("bigint"!=typeof e)throw new Error("Expected bigint");if(!(Ff<=e&&e<eh))throw new Error("Expected number 0 <= n < 2^256");return e.toString(16).padStart(64,"0")}function nh(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function rh(e){if("string"!=typeof e)throw new TypeError("hexToNumber: expected string, got "+typeof e);return BigInt(`0x${e}`)}function ih(e){return rh(zf(e))}function oh(e){return Vf(e)?Uint8Array.from(e):Xf(e)}function sh(e){if("number"==typeof e&&Number.isSafeInteger(e)&&e>0)return BigInt(e);if("bigint"==typeof e&&uh(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function ah(e,t=Pf.P){const n=e%t;return n>=Ff?n:t+n}function lh(e,t){const{P:n}=Pf;let r=e;for(;t-- >Ff;)r*=r,r%=n;return r}function ch(e,t=Pf.P){if(e===Ff||t<=Ff)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=ah(e,t),r=t,i=Ff,o=Qf;for(;n!==Ff;){const e=r%n,t=i-o*(r/n);r=n,n=e,i=o,o=t}if(r!==Qf)throw new Error("invert: does not exist");return ah(i,t)}function uh(e){return Ff<e&&e<Pf.n}function dh(e){return Ff<e&&e<Pf.P}
|
||
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
function fh(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function hh(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function ph(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function gh(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function mh(e){if(!Array.isArray(e))throw new Error("array expected")}function yh(e,t){if(!hh(!0,t))throw new Error(`${e}: array of strings expected`)}Gf.BASE._setWindowSize(8);const wh=(e,t)=>0===t?e:wh(t,e%t),vh=(e,t)=>e+(t-wh(e,t)),Ah=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function bh(e,t,n,r){if(mh(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(vh(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${vh(t,n)}`);let i=0,o=0;const s=Ah[t],a=Ah[n]-1,l=[];for(const r of e){if(gh(r),r>=s)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(i=i<<t|r,o+t>32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)l.push((i>>o-n&a)>>>0);const e=Ah[o];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-o&a,!r&&o>=t)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&o>0&&l.push(i>>>0),l}const kh=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)()?{encode:e=>(function(e,...t){if(!fh(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)=>{ph("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(gh(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(vh(8,e)>32||vh(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!fh(n))throw new Error("radix2.encode input should be Uint8Array");return bh(Array.from(n),8,e,!t)},decode:n=>(function(e,t){if(!hh(!1,t))throw new Error(`${e}: array of numbers expected`)}("radix2.decode",n),Uint8Array.from(bh(n,e,8,t)))}}(6),function(e){const t="string"==typeof e?e.split(""):e,n=t.length;yh("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(mh(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=>(mh(t),t.map(t=>{ph("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 gh(e),ph("padding",t),{encode(n){for(yh("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){yh("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 ph("join",e),{encode:t=>(yh("join.decode",t),t.join(e)),decode:t=>(ph("join.decode",t),t.split(e))}}(""));function Ih(e){return Gf.fromHex(e).toHex().substring(2)}const Eh=new TextDecoder("utf-8"),Ch=new TextEncoder;class xh{log=Dd.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=mi;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,t,n={}){if(!xh.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=Cf();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 i,o=await window.navigator.serial.requestPort();await o.open({baudRate:9600}),await(e=>new Promise(t=>setTimeout(t,e)))(1e3),(async()=>{for(;o&&o.readable;){const e=new window.TextDecoderStream;o.readable.pipeTo(e.writable),i=e.readable.getReader();const t=this.readFromSerialPort(i);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===xh.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(o.writable),this.writer=s.writable.getWriter(),await this.sendCommand(xh.METHOD_PING),await this.sendCommand(xh.METHOD_PING,[window.location.host]),e&&e(),o.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 i=[];for(t&&(i.push(t),t=void 0);;){const{value:o,done:s}=await e.read();if(o){const e=o.split(r);if(e.length>1)return i.push(e.shift()),t=e.pop(),n=e,{value:i.join("").trim(),done:!1};i.push(o)}if(s)return{value:i.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=zu(await this.callMethodOnDevice(xh.METHOD_SHARED_SECRET,[Ih(e)]));let r=Uint8Array.from(td(16)),i=Ch.encode(t),o=await crypto.subtle.importKey("raw",n,{name:"AES-CBC"},!1,["encrypt"]),s=await crypto.subtle.encrypt({name:"AES-CBC",iv:r},o,i);return`${kh.encode(new Uint8Array(s))}?iv=${kh.encode(new Uint8Array(r.buffer))}`}async nip04Decrypt(e,t){let[n,r]=t.split("?iv=");const i=zu(await this.callMethodOnDevice(xh.METHOD_SHARED_SECRET,[Ih(e)]));let o=await crypto.subtle.importKey("raw",i,{name:"AES-CBC"},!1,["decrypt"]),s=kh.decode(n),a=kh.decode(r),l=await crypto.subtle.decrypt({name:"AES-CBC",iv:a},o,s);return Eh.decode(l)}async getPublicKey(){const e=await this.callMethodOnDevice(xh.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(xh.METHOD_RESTORE,[Hu(e)])}async signEvent(e){const t=e.pubkey||this.pubkey;if(!t)throw new Error("Unknown signer pubkey");const n={...e,id:di({...e,pubkey:t})},r=await this.callMethodOnDevice(xh.METHOD_SIGN_MESSAGE,[n.id]),i={...n,sig:r,pubkey:t};if(!this.verifyEvent(i))throw new Error("Invalid signature");return i}ping(){this.sendCommand(xh.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=[xh.METHOD_PUBLIC_KEY,xh.METHOD_SIGN_MESSAGE,xh.METHOD_SHARED_SECRET,xh.METHOD_RESTORE]}const Bh=[`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${window.location.host}/`],Sh=[{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)"}],Fh={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"},Qh=3e5;class Dh{constructor(){this.pool=new On,this.eventStore=new Ef,this.isConnected=!1,this.signer=null,this.relays=[...Bh]}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 Lh([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 Rh=new Dh,$h="nostrCache",Ph=2,Uh="events";function Th(){return new Promise((e,t)=>{try{const n=indexedDB.open($h,Ph);n.onupgradeneeded=e=>{const t=n.result;e.oldVersion;let r;r=t.objectStoreNames.contains(Uh)?n.transaction.objectStore(Uh):t.createObjectStore(Uh,{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 Nh(e){try{const t=await Th();await new Promise((n,r)=>{const i=t.transaction(Uh,"readwrite");i.oncomplete=()=>n(),i.onerror=()=>r(i.error),i.objectStore(Uh).put(e)})}catch(e){console.warn("IDB putEvent failed",e)}}async function Lh(e){if(e&&0!==e.length)try{const t=await Th();await new Promise((n,r)=>{const i=t.transaction(Uh,"readwrite");i.oncomplete=()=>n(),i.onerror=()=>r(i.error);const o=i.objectStore(Uh);for(const t of e)o.put(t)}),console.log(`Stored ${e.length} events in IndexedDB`)}catch(e){console.warn("IDB putEvents failed",e)}}async function Oh(e){try{const t=await Th(),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 i=t.transaction(Uh,"readonly").objectStore(Uh),o=[];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=i.index("byKindAuthorCreated"),o=IDBKeyRange.bound([e,t,-1/0],[e,t,1/0]);s=n.openCursor(o,"prev")}else if(r.kinds&&r.kinds.length>0){console.log(`QueryEventsFromDB: Using byKind index for kind=${r.kinds[0]}`);const e=i.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=i.index("byAuthor");s=e.openCursor(IDBKeyRange.only(r.authors[0]))}else console.log("QueryEventsFromDB: Scanning all events (no specific index)"),s=i.openCursor();s.onsuccess=t=>{const n=t.target.result;if(n){const t=n.value;let i=!0;if(r.kinds&&r.kinds.length>0&&!r.kinds.includes(t.kind)&&(i=!1),r.authors&&r.authors.length>0&&!r.authors.includes(t.pubkey)&&(i=!1),r.since&&t.created_at<r.since&&(i=!1),r.until&&t.created_at>r.until&&(i=!1),r.ids&&r.ids.length>0&&!r.ids.includes(t.id)&&(i=!1),i&&o.push(t),r.limit&&o.length>=r.limit)return console.log(`QueryEventsFromDB: Reached limit of ${r.limit}, found ${o.length} matching events`),void e(o);n.continue()}else console.log(`QueryEventsFromDB: Cursor exhausted, found ${o.length} matching events`),e(o)},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 Mh(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 _h(e){console.log(`Starting profile fetch for pubkey: ${e}`);try{const t=await async function(e){try{const t=await Th();return await new Promise((n,r)=>{const i=t.transaction(Uh,"readonly").objectStore(Uh).index("byKindAuthorCreated"),o=IDBKeyRange.bound([0,e,-1/0],[0,e,1/0]),s=i.openCursor(o,"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 Mh(t)}}catch(e){console.warn("Failed to load cached profile",e)}try{const t=[{kinds:[0],authors:[e],limit:1}],n=await jh(t,{timeout:1e4});if(n.length>0){const t=n[0];console.log("Profile fetched:",t),await Nh(t);try{console.log("Publishing profile event to local relay:",t.id),await Rh.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=Mh(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}return console.log("No profile found for pubkey, creating default:",e),await Hh(e)}catch(t){console.error("Failed to fetch profile:",t);try{return await Hh(e)}catch(e){return console.error("Failed to create default profile:",e),null}}}async function Hh(e){const t=`testuser${e.slice(0,6)}`,n=`${window.location.origin}/orly.png`,r={name:t,display_name:t,picture:n,about:"New ORLY user"},i={name:t,displayName:t,picture:n,about:"New ORLY user",pubkey:e};if(Rh.signer)try{const e={kind:0,content:JSON.stringify(r),tags:[],created_at:Math.floor(Date.now()/1e3)},t=await Rh.signer.signEvent(e);await Rh.publish(t),console.log("Default profile published:",t.id)}catch(e){console.warn("Failed to publish default profile:",e)}return i}async function jh(e,t={}){console.log("Starting event fetch with filters:",JSON.stringify(e,null,2)),console.log("Current relays:",Rh.relays),Rh.isConnected&&0!==Rh.relays.length||(console.warn("Client not connected, initializing..."),await Kh());const{timeout:n=3e4,useCache:r=!0}=t;if(r)try{const t=await Oh(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 i=[],o=setTimeout(()=>{console.log(`Timeout reached after ${n}ms, returning ${i.length} events`),sub.close(),i.length>0&&Lh(i).catch(e=>console.warn("Failed to cache events",e)),t(i)},n);try{const n=Math.random().toString(36).substring(7);console.log(`📤 REQ [${n}]:`,JSON.stringify(["REQ",n,...e],null,2));const r=Rh.pool.subscribeMany(Rh.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)}),i.push(e),Nh(e).catch(e=>console.warn("Failed to cache event",e))},oneose(){console.log(`✅ EOSE received for REQ [${n}], got ${i.length} events`),clearTimeout(o),r.close(),i.length>0&&Lh(i).catch(e=>console.warn("Failed to cache events",e)),t(i)}})}catch(e){clearTimeout(o),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 jh(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 qh(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 jh(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 Kh(){await Rh.connect()}async function Jh(e,t={}){const{timeout:n=3e4,cacheFirst:r=!0,cacheOnly:i=!1}=t;let o=[];if(r||i)try{if(o=await Oh(e),console.log(`Found ${o.length} events in cache`),i||o.length>0)return o}catch(e){console.warn("Failed to query cache",e)}if(!i){const t=await jh(e,{timeout:n,useCache:!1});return console.log(`Fetched ${t.length} events from relay`),t}return o}async function Vh(){try{const e=await Th(),t=e.transaction(Uh,"readonly").objectStore(Uh),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}}
|
||
/*!
|
||
* hash-wasm (https://www.npmjs.com/package/hash-wasm)
|
||
* (c) Dani Biro
|
||
* @license MIT
|
||
*/function Yh(e,t,n,r){return new(n||(n=Promise))(function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(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"==typeof SuppressedError&&SuppressedError;class zh{constructor(){this.mutex=Promise.resolve()}lock(){let e=()=>{};return this.mutex=this.mutex.then(()=>new Promise(e)),new Promise(t=>{e=t})}dispatch(e){return Yh(this,void 0,void 0,function*(){const t=yield this.lock();try{return yield Promise.resolve(e())}finally{t()}})}}var Wh;const Zh="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Xh=null!==(Wh=Zh.Buffer)&&void 0!==Wh?Wh:null,ep=Zh.TextEncoder?new Zh.TextEncoder:null;function tp(e,t){return(15&e)+(e>>6|e>>3&8)<<4|(15&t)+(t>>6|t>>3&8)}function np(e,t){const n=t.length>>1;for(let r=0;r<n;r++){const n=r<<1;e[r]=tp(t.charCodeAt(n),t.charCodeAt(n+1))}}const rp="a".charCodeAt(0)-10,ip="0".charCodeAt(0);function op(e,t,n){let r=0;for(let i=0;i<n;i++){let n=t[i]>>>4;e[r++]=n>9?n+rp:n+ip,n=15&t[i],e[r++]=n>9?n+rp:n+ip}return String.fromCharCode.apply(null,e)}const sp=null!==Xh?e=>{if("string"==typeof e){const t=Xh.from(e,"utf8");return new Uint8Array(t.buffer,t.byteOffset,t.length)}if(Xh.isBuffer(e))return new Uint8Array(e.buffer,e.byteOffset,e.length);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")}:e=>{if("string"==typeof e)return ep.encode(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Invalid data type!")},ap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lp=new Uint8Array(256);for(let e=0;e<64;e++)lp[ap.charCodeAt(e)]=e;function cp(e,t=!0){const n=e.length,r=n%3,i=[],o=n-r;for(let t=0;t<o;t+=3){const n=(e[t]<<16&16711680)+(e[t+1]<<8&65280)+(255&e[t+2]),r=ap.charAt(n>>18&63)+ap.charAt(n>>12&63)+ap.charAt(n>>6&63)+ap.charAt(63&n);i.push(r)}if(1===r){const r=e[n-1],o=ap.charAt(r>>2),s=ap.charAt(r<<4&63);i.push(`${o}${s}`),t&&i.push("==")}else if(2===r){const r=(e[n-2]<<8)+e[n-1],o=ap.charAt(r>>10),s=ap.charAt(r>>4&63),a=ap.charAt(r<<2&63);i.push(`${o}${s}${a}`),t&&i.push("=")}return i.join("")}function up(e){const t=function(e){let t=Math.floor(.75*e.length);const n=e.length;return"="===e[n-1]&&(t-=1,"="===e[n-2]&&(t-=1)),t}(e),n=e.length,r=new Uint8Array(t);let i=0;for(let t=0;t<n;t+=4){const n=lp[e.charCodeAt(t)],o=lp[e.charCodeAt(t+1)],s=lp[e.charCodeAt(t+2)],a=lp[e.charCodeAt(t+3)];r[i]=n<<2|o>>4,i+=1,r[i]=(15&o)<<4|s>>2,i+=1,r[i]=(3&s)<<6|63&a,i+=1}return r}const dp=16384,fp=new zh,hp=new Map;function pp(e,t){return Yh(this,void 0,void 0,function*(){let n=null,r=null,i=!1;if("undefined"==typeof WebAssembly)throw new Error("WebAssembly is not supported in this environment!");const o=()=>new DataView(n.exports.memory.buffer).getUint32(n.exports.STATE_SIZE,!0),s=fp.dispatch(()=>Yh(this,void 0,void 0,function*(){if(!hp.has(e.name)){const t=up(e.data),n=WebAssembly.compile(t);hp.set(e.name,n)}const t=yield hp.get(e.name);n=yield WebAssembly.instantiate(t,{})})),a=(e=null)=>{i=!0,n.exports.Hash_Init(e)},l=e=>{if(!i)throw new Error("update() called before init()");(e=>{let t=0;for(;t<e.length;){const i=e.subarray(t,t+dp);t+=i.length,r.set(i),n.exports.Hash_Update(i.length)}})(sp(e))},c=new Uint8Array(2*t),u=(e,o=null)=>{if(!i)throw new Error("digest() called before init()");return i=!1,n.exports.Hash_Final(o),"binary"===e?r.slice(0,t):op(c,r,t)},d=e=>"string"==typeof e?e.length<4096:e.byteLength<dp;let f=d;switch(e.name){case"argon2":case"scrypt":f=()=>!0;break;case"blake2b":case"blake2s":f=(e,t)=>t<=512&&d(e);break;case"blake3":f=(e,t)=>0===t&&d(e);break;case"xxhash64":case"xxhash3":case"xxhash128":case"crc64":f=()=>!1}return yield(()=>Yh(this,void 0,void 0,function*(){n||(yield s);const e=n.exports.Hash_GetBuffer(),t=n.exports.memory.buffer;r=new Uint8Array(t,e,dp)}))(),{getMemory:()=>r,writeMemory:(e,t=0)=>{r.set(e,t)},getExports:()=>n.exports,setMemorySize:e=>{n.exports.Hash_SetMemorySize(e);const t=n.exports.Hash_GetBuffer(),i=n.exports.memory.buffer;r=new Uint8Array(i,t,e)},init:a,update:l,digest:u,save:()=>{if(!i)throw new Error("save() can only be called after init() and before digest()");const t=n.exports.Hash_GetState(),r=o(),s=n.exports.memory.buffer,a=new Uint8Array(s,t,r),l=new Uint8Array(4+r);return np(l,e.hash),l.set(a,4),l},load:t=>{if(!(t instanceof Uint8Array))throw new Error("load() expects an Uint8Array generated by save()");const r=n.exports.Hash_GetState(),s=o(),a=4+s,l=n.exports.memory.buffer;if(t.length!==a)throw new Error(`Bad state length (expected ${a} bytes, got ${t.length})`);if(!function(e,t){if(e.length!==2*t.length)return!1;for(let n=0;n<t.length;n++){const r=n<<1;if(t[n]!==tp(e.charCodeAt(r),e.charCodeAt(r+1)))return!1}return!0}(e.hash,t.subarray(0,4)))throw new Error("This state was written by an incompatible hash implementation");const c=t.subarray(4);new Uint8Array(l,r,s).set(c),i=!0},calculate:(e,i=null,o=null)=>{if(!f(e,i))return a(i),l(e),u("hex",o);const s=sp(e);return r.set(s),n.exports.Hash_Calculate(s.length,i,o),op(c,r,t)},hashLength:t}})}new zh;var gp={name:"argon2",data:"AGFzbQEAAAABKQVgAX8Bf2AAAX9gEH9/f39/f39/f39/f39/f38AYAR/f39/AGACf38AAwYFAAECAwQFBgEBAoCAAgYIAX8BQZCoBAsHQQQGbWVtb3J5AgASSGFzaF9TZXRNZW1vcnlTaXplAAAOSGFzaF9HZXRCdWZmZXIAAQ5IYXNoX0NhbGN1bGF0ZQAECvEyBVgBAn9BACEBAkAgAEEAKAKICCICRg0AAkAgACACayIAQRB2IABBgIB8cSAASWoiAEAAQX9HDQBB/wHADwtBACEBQQBBACkDiAggAEEQdK18NwOICAsgAcALcAECfwJAQQAoAoAIIgANAEEAPwBBEHQiADYCgAhBACgCiAgiAUGAgCBGDQACQEGAgCAgAWsiAEEQdiAAQYCAfHEgAElqIgBAAEF/Rw0AQQAPC0EAQQApA4gIIABBEHStfDcDiAhBACgCgAghAAsgAAvcDgECfiAAIAQpAwAiECAAKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAMIBAgDCkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgBCAQIAQpAwCFQiiJIhA3AwAgACAQIAApAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAwgECAMKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAEIBAgBCkDAIVCAYk3AwAgASAFKQMAIhAgASkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDSAQIA0pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAEgECABKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACANIBAgDSkDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAIgBikDACIQIAIpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIA4gECAOKQMAhUIgiSIQNwMAIAogECAKKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACACIBAgAikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDiAQIA4pAwCFQjCJIhA3AwAgCiAQIAopAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACADIAcpAwAiECADKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAPIBAgDykDAIVCIIkiEDcDACALIBAgCykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAyAQIAMpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA8gECAPKQMAhUIwiSIQNwMAIAsgECALKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgACAFKQMAIhAgACkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDyAQIA8pAwCFQiCJIhA3AwAgCiAQIAopAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAUgECAFKQMAhUIoiSIQNwMAIAAgECAAKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAPIBAgDykDAIVCMIkiEDcDACAKIBAgCikDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBSAQIAUpAwCFQgGJNwMAIAEgBikDACIQIAEpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAwgECAMKQMAhUIgiSIQNwMAIAsgECALKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACAGIBAgBikDAIVCKIkiEDcDACABIBAgASkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgDCAQIAwpAwCFQjCJIhA3AwAgCyAQIAspAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIAYgECAGKQMAhUIBiTcDACACIAcpAwAiECACKQMAIhF8IBFCAYZC/v///x+DIBBC/////w+DfnwiEDcDACANIBAgDSkDAIVCIIkiEDcDACAIIBAgCCkDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgByAQIAcpAwCFQiiJIhA3AwAgAiAQIAIpAwAiEXwgEEL/////D4MgEUIBhkL+////H4N+fCIQNwMAIA0gECANKQMAhUIwiSIQNwMAIAggECAIKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAHIBAgBykDAIVCAYk3AwAgAyAEKQMAIhAgAykDACIRfCARQgGGQv7///8fgyAQQv////8Pg358IhA3AwAgDiAQIA4pAwCFQiCJIhA3AwAgCSAQIAkpAwAiEXwgEUIBhkL+////H4MgEEL/////D4N+fCIQNwMAIAQgECAEKQMAhUIoiSIQNwMAIAMgECADKQMAIhF8IBBC/////w+DIBFCAYZC/v///x+DfnwiEDcDACAOIBAgDikDAIVCMIkiEDcDACAJIBAgCSkDACIRfCAQQv////8PgyARQgGGQv7///8fg358IhA3AwAgBCAQIAQpAwCFQgGJNwMAC98aAQN/QQAhBEEAIAIpAwAgASkDAIU3A5AIQQAgAikDCCABKQMIhTcDmAhBACACKQMQIAEpAxCFNwOgCEEAIAIpAxggASkDGIU3A6gIQQAgAikDICABKQMghTcDsAhBACACKQMoIAEpAyiFNwO4CEEAIAIpAzAgASkDMIU3A8AIQQAgAikDOCABKQM4hTcDyAhBACACKQNAIAEpA0CFNwPQCEEAIAIpA0ggASkDSIU3A9gIQQAgAikDUCABKQNQhTcD4AhBACACKQNYIAEpA1iFNwPoCEEAIAIpA2AgASkDYIU3A/AIQQAgAikDaCABKQNohTcD+AhBACACKQNwIAEpA3CFNwOACUEAIAIpA3ggASkDeIU3A4gJQQAgAikDgAEgASkDgAGFNwOQCUEAIAIpA4gBIAEpA4gBhTcDmAlBACACKQOQASABKQOQAYU3A6AJQQAgAikDmAEgASkDmAGFNwOoCUEAIAIpA6ABIAEpA6ABhTcDsAlBACACKQOoASABKQOoAYU3A7gJQQAgAikDsAEgASkDsAGFNwPACUEAIAIpA7gBIAEpA7gBhTcDyAlBACACKQPAASABKQPAAYU3A9AJQQAgAikDyAEgASkDyAGFNwPYCUEAIAIpA9ABIAEpA9ABhTcD4AlBACACKQPYASABKQPYAYU3A+gJQQAgAikD4AEgASkD4AGFNwPwCUEAIAIpA+gBIAEpA+gBhTcD+AlBACACKQPwASABKQPwAYU3A4AKQQAgAikD+AEgASkD+AGFNwOICkEAIAIpA4ACIAEpA4AChTcDkApBACACKQOIAiABKQOIAoU3A5gKQQAgAikDkAIgASkDkAKFNwOgCkEAIAIpA5gCIAEpA5gChTcDqApBACACKQOgAiABKQOgAoU3A7AKQQAgAikDqAIgASkDqAKFNwO4CkEAIAIpA7ACIAEpA7AChTcDwApBACACKQO4AiABKQO4AoU3A8gKQQAgAikDwAIgASkDwAKFNwPQCkEAIAIpA8gCIAEpA8gChTcD2ApBACACKQPQAiABKQPQAoU3A+AKQQAgAikD2AIgASkD2AKFNwPoCkEAIAIpA+ACIAEpA+AChTcD8ApBACACKQPoAiABKQPoAoU3A/gKQQAgAikD8AIgASkD8AKFNwOAC0EAIAIpA/gCIAEpA/gChTcDiAtBACACKQOAAyABKQOAA4U3A5ALQQAgAikDiAMgASkDiAOFNwOYC0EAIAIpA5ADIAEpA5ADhTcDoAtBACACKQOYAyABKQOYA4U3A6gLQQAgAikDoAMgASkDoAOFNwOwC0EAIAIpA6gDIAEpA6gDhTcDuAtBACACKQOwAyABKQOwA4U3A8ALQQAgAikDuAMgASkDuAOFNwPIC0EAIAIpA8ADIAEpA8ADhTcD0AtBACACKQPIAyABKQPIA4U3A9gLQQAgAikD0AMgASkD0AOFNwPgC0EAIAIpA9gDIAEpA9gDhTcD6AtBACACKQPgAyABKQPgA4U3A/ALQQAgAikD6AMgASkD6AOFNwP4C0EAIAIpA/ADIAEpA/ADhTcDgAxBACACKQP4AyABKQP4A4U3A4gMQQAgAikDgAQgASkDgASFNwOQDEEAIAIpA4gEIAEpA4gEhTcDmAxBACACKQOQBCABKQOQBIU3A6AMQQAgAikDmAQgASkDmASFNwOoDEEAIAIpA6AEIAEpA6AEhTcDsAxBACACKQOoBCABKQOoBIU3A7gMQQAgAikDsAQgASkDsASFNwPADEEAIAIpA7gEIAEpA7gEhTcDyAxBACACKQPABCABKQPABIU3A9AMQQAgAikDyAQgASkDyASFNwPYDEEAIAIpA9AEIAEpA9AEhTcD4AxBACACKQPYBCABKQPYBIU3A+gMQQAgAikD4AQgASkD4ASFNwPwDEEAIAIpA+gEIAEpA+gEhTcD+AxBACACKQPwBCABKQPwBIU3A4ANQQAgAikD+AQgASkD+ASFNwOIDUEAIAIpA4AFIAEpA4AFhTcDkA1BACACKQOIBSABKQOIBYU3A5gNQQAgAikDkAUgASkDkAWFNwOgDUEAIAIpA5gFIAEpA5gFhTcDqA1BACACKQOgBSABKQOgBYU3A7ANQQAgAikDqAUgASkDqAWFNwO4DUEAIAIpA7AFIAEpA7AFhTcDwA1BACACKQO4BSABKQO4BYU3A8gNQQAgAikDwAUgASkDwAWFNwPQDUEAIAIpA8gFIAEpA8gFhTcD2A1BACACKQPQBSABKQPQBYU3A+ANQQAgAikD2AUgASkD2AWFNwPoDUEAIAIpA+AFIAEpA+AFhTcD8A1BACACKQPoBSABKQPoBYU3A/gNQQAgAikD8AUgASkD8AWFNwOADkEAIAIpA/gFIAEpA/gFhTcDiA5BACACKQOABiABKQOABoU3A5AOQQAgAikDiAYgASkDiAaFNwOYDkEAIAIpA5AGIAEpA5AGhTcDoA5BACACKQOYBiABKQOYBoU3A6gOQQAgAikDoAYgASkDoAaFNwOwDkEAIAIpA6gGIAEpA6gGhTcDuA5BACACKQOwBiABKQOwBoU3A8AOQQAgAikDuAYgASkDuAaFNwPIDkEAIAIpA8AGIAEpA8AGhTcD0A5BACACKQPIBiABKQPIBoU3A9gOQQAgAikD0AYgASkD0AaFNwPgDkEAIAIpA9gGIAEpA9gGhTcD6A5BACACKQPgBiABKQPgBoU3A/AOQQAgAikD6AYgASkD6AaFNwP4DkEAIAIpA/AGIAEpA/AGhTcDgA9BACACKQP4BiABKQP4BoU3A4gPQQAgAikDgAcgASkDgAeFNwOQD0EAIAIpA4gHIAEpA4gHhTcDmA9BACACKQOQByABKQOQB4U3A6APQQAgAikDmAcgASkDmAeFNwOoD0EAIAIpA6AHIAEpA6AHhTcDsA9BACACKQOoByABKQOoB4U3A7gPQQAgAikDsAcgASkDsAeFNwPAD0EAIAIpA7gHIAEpA7gHhTcDyA9BACACKQPAByABKQPAB4U3A9APQQAgAikDyAcgASkDyAeFNwPYD0EAIAIpA9AHIAEpA9AHhTcD4A9BACACKQPYByABKQPYB4U3A+gPQQAgAikD4AcgASkD4AeFNwPwD0EAIAIpA+gHIAEpA+gHhTcD+A9BACACKQPwByABKQPwB4U3A4AQQQAgAikD+AcgASkD+AeFNwOIEEGQCEGYCEGgCEGoCEGwCEG4CEHACEHICEHQCEHYCEHgCEHoCEHwCEH4CEGACUGICRACQZAJQZgJQaAJQagJQbAJQbgJQcAJQcgJQdAJQdgJQeAJQegJQfAJQfgJQYAKQYgKEAJBkApBmApBoApBqApBsApBuApBwApByApB0ApB2ApB4ApB6ApB8ApB+ApBgAtBiAsQAkGQC0GYC0GgC0GoC0GwC0G4C0HAC0HIC0HQC0HYC0HgC0HoC0HwC0H4C0GADEGIDBACQZAMQZgMQaAMQagMQbAMQbgMQcAMQcgMQdAMQdgMQeAMQegMQfAMQfgMQYANQYgNEAJBkA1BmA1BoA1BqA1BsA1BuA1BwA1ByA1B0A1B2A1B4A1B6A1B8A1B+A1BgA5BiA4QAkGQDkGYDkGgDkGoDkGwDkG4DkHADkHIDkHQDkHYDkHgDkHoDkHwDkH4DkGAD0GIDxACQZAPQZgPQaAPQagPQbAPQbgPQcAPQcgPQdAPQdgPQeAPQegPQfAPQfgPQYAQQYgQEAJBkAhBmAhBkAlBmAlBkApBmApBkAtBmAtBkAxBmAxBkA1BmA1BkA5BmA5BkA9BmA8QAkGgCEGoCEGgCUGoCUGgCkGoCkGgC0GoC0GgDEGoDEGgDUGoDUGgDkGoDkGgD0GoDxACQbAIQbgIQbAJQbgJQbAKQbgKQbALQbgLQbAMQbgMQbANQbgNQbAOQbgOQbAPQbgPEAJBwAhByAhBwAlByAlBwApByApBwAtByAtBwAxByAxBwA1ByA1BwA5ByA5BwA9ByA8QAkHQCEHYCEHQCUHYCUHQCkHYCkHQC0HYC0HQDEHYDEHQDUHYDUHQDkHYDkHQD0HYDxACQeAIQegIQeAJQegJQeAKQegKQeALQegLQeAMQegMQeANQegNQeAOQegOQeAPQegPEAJB8AhB+AhB8AlB+AlB8ApB+ApB8AtB+AtB8AxB+AxB8A1B+A1B8A5B+A5B8A9B+A8QAkGACUGICUGACkGICkGAC0GIC0GADEGIDEGADUGIDUGADkGIDkGAD0GID0GAEEGIEBACAkACQCADRQ0AA0AgACAEaiIDIAIgBGoiBSkDACABIARqIgYpAwCFIARBkAhqKQMAhSADKQMAhTcDACADQQhqIgMgBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIUgAykDAIU3AwAgBEEQaiIEQYAIRw0ADAILC0EAIQQDQCAAIARqIgMgAiAEaiIFKQMAIAEgBGoiBikDAIUgBEGQCGopAwCFNwMAIANBCGogBUEIaikDACAGQQhqKQMAhSAEQZgIaikDAIU3AwAgBEEQaiIEQYAIRw0ACwsL5QcMBX8BfgR/An4BfwF+AX8Bfgd/AX4DfwF+AkBBACgCgAgiAiABQQp0aiIDKAIIIAFHDQAgAygCDCEEIAMoAgAhBUEAIAMoAhQiBq03A7gQQQAgBK0iBzcDsBBBACAFIAEgBUECdG4iCGwiCUECdK03A6gQAkACQAJAAkAgBEUNAEF/IQogBUUNASAIQQNsIQsgCEECdCIErSEMIAWtIQ0gBkF/akECSSEOQgAhDwNAQQAgDzcDkBAgD6chEEIAIRFBACEBA0BBACARNwOgECAPIBGEUCIDIA5xIRIgBkEBRiAPUCITIAZBAkYgEUICVHFxciEUQX8gAUEBakEDcSAIbEF/aiATGyEVIAEgEHIhFiABIAhsIRcgA0EBdCEYQgAhGQNAQQBCADcDwBBBACAZNwOYECAYIQECQCASRQ0AQQBCATcDwBBBkBhBkBBBkCBBABADQZAYQZAYQZAgQQAQA0ECIQELAkAgASAITw0AIAQgGaciGmwgF2ogAWohAwNAIANBACAEIAEbQQAgEVAiGxtqQX9qIRwCQAJAIBQNAEEAKAKACCICIBxBCnQiHGohCgwBCwJAIAFB/wBxIgINAEEAQQApA8AQQgF8NwPAEEGQGEGQEEGQIEEAEANBkBhBkBhBkCBBABADCyAcQQp0IRwgAkEDdEGQGGohCkEAKAKACCECCyACIANBCnRqIAIgHGogAiAKKQMAIh1CIIinIAVwIBogFhsiHCAEbCABIAFBACAZIBytUSIcGyIKIBsbIBdqIAogC2ogExsgAUUgHHJrIhsgFWqtIB1C/////w+DIh0gHX5CIIggG61+QiCIfSAMgqdqQQp0akEBEAMgA0EBaiEDIAggAUEBaiIBRw0ACwsgGUIBfCIZIA1SDQALIBFCAXwiEachASARQgRSDQALIA9CAXwiDyAHUg0AC0EAKAKACCECCyAJQQx0QYB4aiEXIAVBf2oiCkUNAgwBC0EAQgM3A6AQQQAgBEF/aq03A5AQQYB4IRcLIAIgF2ohGyAIQQx0IQhBACEcA0AgCCAcQQFqIhxsQYB4aiEEQQAhAQNAIBsgAWoiAyADKQMAIAIgBCABamopAwCFNwMAIANBCGoiAyADKQMAIAIgBCABQQhyamopAwCFNwMAIAFBCGohAyABQRBqIQEgA0H4B0kNAAsgHCAKRw0ACwsgAiAXaiEbQXghAQNAIAIgAWoiA0EIaiAbIAFqIgRBCGopAwA3AwAgA0EQaiAEQRBqKQMANwMAIANBGGogBEEYaikDADcDACADQSBqIARBIGopAwA3AwAgAUEgaiIBQfgHSQ0ACwsL",hash:"e4cdc523"},mp={name:"blake2b",data:"AGFzbQEAAAABEQRgAAF/YAJ/fwBgAX8AYAAAAwoJAAECAwECAgABBQQBAQICBg4CfwFBsIsFC38AQYAICwdwCAZtZW1vcnkCAA5IYXNoX0dldEJ1ZmZlcgAACkhhc2hfRmluYWwAAwlIYXNoX0luaXQABQtIYXNoX1VwZGF0ZQAGDUhhc2hfR2V0U3RhdGUABw5IYXNoX0NhbGN1bGF0ZQAIClNUQVRFX1NJWkUDAQrTOAkFAEGACQvrAgIFfwF+AkAgAUEBSA0AAkACQAJAIAFBgAFBACgC4IoBIgJrIgNKDQAgASEEDAELQQBBADYC4IoBAkAgAkH/AEoNACACQeCJAWohBSAAIQRBACEGA0AgBSAELQAAOgAAIARBAWohBCAFQQFqIQUgAyAGQQFqIgZB/wFxSg0ACwtBAEEAKQPAiQEiB0KAAXw3A8CJAUEAQQApA8iJASAHQv9+Vq18NwPIiQFB4IkBEAIgACADaiEAAkAgASADayIEQYEBSA0AIAIgAWohBQNAQQBBACkDwIkBIgdCgAF8NwPAiQFBAEEAKQPIiQEgB0L/flatfDcDyIkBIAAQAiAAQYABaiEAIAVBgH9qIgVBgAJLDQALIAVBgH9qIQQMAQsgBEEATA0BC0EAIQUDQCAFQQAoAuCKAWpB4IkBaiAAIAVqLQAAOgAAIAQgBUEBaiIFQf8BcUoNAAsLQQBBACgC4IoBIARqNgLgigELC78uASR+QQBBACkD0IkBQQApA7CJASIBQQApA5CJAXwgACkDICICfCIDhULr+obav7X2wR+FQiCJIgRCq/DT9K/uvLc8fCIFIAGFQiiJIgYgA3wgACkDKCIBfCIHIASFQjCJIgggBXwiCSAGhUIBiSIKQQApA8iJAUEAKQOoiQEiBEEAKQOIiQF8IAApAxAiA3wiBYVCn9j52cKR2oKbf4VCIIkiC0K7zqqm2NDrs7t/fCIMIASFQiiJIg0gBXwgACkDGCIEfCIOfCAAKQNQIgV8Ig9BACkDwIkBQQApA6CJASIQQQApA4CJASIRfCAAKQMAIgZ8IhKFQtGFmu/6z5SH0QCFQiCJIhNCiJLznf/M+YTqAHwiFCAQhUIoiSIVIBJ8IAApAwgiEHwiFiAThUIwiSIXhUIgiSIYQQApA9iJAUEAKQO4iQEiE0EAKQOYiQF8IAApAzAiEnwiGYVC+cL4m5Gjs/DbAIVCIIkiGkLx7fT4paf9p6V/fCIbIBOFQiiJIhwgGXwgACkDOCITfCIZIBqFQjCJIhogG3wiG3wiHSAKhUIoiSIeIA98IAApA1giCnwiDyAYhUIwiSIYIB18Ih0gDiALhUIwiSIOIAx8Ih8gDYVCAYkiDCAWfCAAKQNAIgt8Ig0gGoVCIIkiFiAJfCIaIAyFQiiJIiAgDXwgACkDSCIJfCIhIBaFQjCJIhYgGyAchUIBiSIMIAd8IAApA2AiB3wiDSAOhUIgiSIOIBcgFHwiFHwiFyAMhUIoiSIbIA18IAApA2giDHwiHCAOhUIwiSIOIBd8IhcgG4VCAYkiGyAZIBQgFYVCAYkiFHwgACkDcCINfCIVIAiFQiCJIhkgH3wiHyAUhUIoiSIUIBV8IAApA3giCHwiFXwgDHwiIoVCIIkiI3wiJCAbhUIoiSIbICJ8IBJ8IiIgFyAYIBUgGYVCMIkiFSAffCIZIBSFQgGJIhQgIXwgDXwiH4VCIIkiGHwiFyAUhUIoiSIUIB98IAV8Ih8gGIVCMIkiGCAXfCIXIBSFQgGJIhR8IAF8IiEgFiAafCIWIBUgHSAehUIBiSIaIBx8IAl8IhyFQiCJIhV8Ih0gGoVCKIkiGiAcfCAIfCIcIBWFQjCJIhWFQiCJIh4gGSAOIBYgIIVCAYkiFiAPfCACfCIPhUIgiSIOfCIZIBaFQiiJIhYgD3wgC3wiDyAOhUIwiSIOIBl8Ihl8IiAgFIVCKIkiFCAhfCAEfCIhIB6FQjCJIh4gIHwiICAiICOFQjCJIiIgJHwiIyAbhUIBiSIbIBx8IAp8IhwgDoVCIIkiDiAXfCIXIBuFQiiJIhsgHHwgE3wiHCAOhUIwiSIOIBkgFoVCAYkiFiAffCAQfCIZICKFQiCJIh8gFSAdfCIVfCIdIBaFQiiJIhYgGXwgB3wiGSAfhUIwiSIfIB18Ih0gFoVCAYkiFiAVIBqFQgGJIhUgD3wgBnwiDyAYhUIgiSIYICN8IhogFYVCKIkiFSAPfCADfCIPfCAHfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBnwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAOIBd8Ig4gDyAYhUIwiSIPICAgFIVCAYkiFCAZfCAKfCIXhUIgiSIYfCIZIBSFQiiJIhQgF3wgC3wiF3wgBXwiICAPIBp8Ig8gHyAOIBuFQgGJIg4gIXwgCHwiGoVCIIkiG3wiHyAOhUIoiSIOIBp8IAx8IhogG4VCMIkiG4VCIIkiISAdIB4gDyAVhUIBiSIPIBx8IAF8IhWFQiCJIhx8Ih0gD4VCKIkiDyAVfCADfCIVIByFQjCJIhwgHXwiHXwiHiAWhUIoiSIWICB8IA18IiAgIYVCMIkiISAefCIeIBogFyAYhUIwiSIXIBl8IhggFIVCAYkiFHwgCXwiGSAchUIgiSIaICR8IhwgFIVCKIkiFCAZfCACfCIZIBqFQjCJIhogHSAPhUIBiSIPICJ8IAR8Ih0gF4VCIIkiFyAbIB98Iht8Ih8gD4VCKIkiDyAdfCASfCIdIBeFQjCJIhcgH3wiHyAPhUIBiSIPIBsgDoVCAYkiDiAVfCATfCIVICOFQiCJIhsgGHwiGCAOhUIoiSIOIBV8IBB8IhV8IAx8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAHfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBogHHwiGiAVIBuFQjCJIhUgHiAWhUIBiSIWIB18IAR8IhuFQiCJIhx8Ih0gFoVCKIkiFiAbfCAQfCIbfCABfCIeIBUgGHwiFSAXIBogFIVCAYkiFCAgfCATfCIYhUIgiSIXfCIaIBSFQiiJIhQgGHwgCXwiGCAXhUIwiSIXhUIgiSIgIB8gISAVIA6FQgGJIg4gGXwgCnwiFYVCIIkiGXwiHyAOhUIoiSIOIBV8IA18IhUgGYVCMIkiGSAffCIffCIhIA+FQiiJIg8gHnwgBXwiHiAghUIwiSIgICF8IiEgGyAchUIwiSIbIB18IhwgFoVCAYkiFiAYfCADfCIYIBmFQiCJIhkgJHwiHSAWhUIoiSIWIBh8IBJ8IhggGYVCMIkiGSAfIA6FQgGJIg4gInwgAnwiHyAbhUIgiSIbIBcgGnwiF3wiGiAOhUIoiSIOIB98IAZ8Ih8gG4VCMIkiGyAafCIaIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAh8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgC3wiFXwgBXwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAh8IiIgGiAgIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGHwgCXwiGIVCIIkiHHwiGiAUhUIoiSIUIBh8IAZ8IhggHIVCMIkiHCAafCIaIBSFQgGJIhR8IAR8IiAgGSAdfCIZIBUgISAPhUIBiSIPIB98IAN8Ih2FQiCJIhV8Ih8gD4VCKIkiDyAdfCACfCIdIBWFQjCJIhWFQiCJIiEgFyAbIBkgFoVCAYkiFiAefCABfCIZhUIgiSIbfCIXIBaFQiiJIhYgGXwgE3wiGSAbhUIwiSIbIBd8Ihd8Ih4gFIVCKIkiFCAgfCAMfCIgICGFQjCJIiEgHnwiHiAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IBJ8Ih0gG4VCIIkiGyAafCIaIA6FQiiJIg4gHXwgC3wiHSAbhUIwiSIbIBcgFoVCAYkiFiAYfCANfCIXICKFQiCJIhggFSAffCIVfCIfIBaFQiiJIhYgF3wgEHwiFyAYhUIwiSIYIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGXwgCnwiFSAchUIgiSIZICN8IhwgD4VCKIkiDyAVfCAHfCIVfCASfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgBXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAbIBp8IhogFSAZhUIwiSIVIB4gFIVCAYkiFCAXfCADfCIXhUIgiSIZfCIbIBSFQiiJIhQgF3wgB3wiF3wgAnwiHiAVIBx8IhUgGCAaIA6FQgGJIg4gIHwgC3wiGoVCIIkiGHwiHCAOhUIoiSIOIBp8IAR8IhogGIVCMIkiGIVCIIkiICAfICEgFSAPhUIBiSIPIB18IAZ8IhWFQiCJIh18Ih8gD4VCKIkiDyAVfCAKfCIVIB2FQjCJIh0gH3wiH3wiISAWhUIoiSIWIB58IAx8Ih4gIIVCMIkiICAhfCIhIBogFyAZhUIwiSIXIBt8IhkgFIVCAYkiFHwgEHwiGiAdhUIgiSIbICR8Ih0gFIVCKIkiFCAafCAJfCIaIBuFQjCJIhsgHyAPhUIBiSIPICJ8IBN8Ih8gF4VCIIkiFyAYIBx8Ihh8IhwgD4VCKIkiDyAffCABfCIfIBeFQjCJIhcgHHwiHCAPhUIBiSIPIBggDoVCAYkiDiAVfCAIfCIVICOFQiCJIhggGXwiGSAOhUIoiSIOIBV8IA18IhV8IA18IiKFQiCJIiN8IiQgD4VCKIkiDyAifCAMfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHXwiGyAVIBiFQjCJIhUgISAWhUIBiSIWIB98IBB8IhiFQiCJIh18Ih8gFoVCKIkiFiAYfCAIfCIYfCASfCIhIBUgGXwiFSAXIBsgFIVCAYkiFCAefCAHfCIZhUIgiSIXfCIbIBSFQiiJIhQgGXwgAXwiGSAXhUIwiSIXhUIgiSIeIBwgICAVIA6FQgGJIg4gGnwgAnwiFYVCIIkiGnwiHCAOhUIoiSIOIBV8IAV8IhUgGoVCMIkiGiAcfCIcfCIgIA+FQiiJIg8gIXwgBHwiISAehUIwiSIeICB8IiAgGCAdhUIwiSIYIB98Ih0gFoVCAYkiFiAZfCAGfCIZIBqFQiCJIhogJHwiHyAWhUIoiSIWIBl8IBN8IhkgGoVCMIkiGiAcIA6FQgGJIg4gInwgCXwiHCAYhUIgiSIYIBcgG3wiF3wiGyAOhUIoiSIOIBx8IAN8IhwgGIVCMIkiGCAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAt8IhUgI4VCIIkiFyAdfCIdIBSFQiiJIhQgFXwgCnwiFXwgBHwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IAl8IiIgGyAeIBUgF4VCMIkiFSAdfCIXIBSFQgGJIhQgGXwgDHwiGYVCIIkiHXwiGyAUhUIoiSIUIBl8IAp8IhkgHYVCMIkiHSAbfCIbIBSFQgGJIhR8IAN8Ih4gGiAffCIaIBUgICAPhUIBiSIPIBx8IAd8IhyFQiCJIhV8Ih8gD4VCKIkiDyAcfCAQfCIcIBWFQjCJIhWFQiCJIiAgFyAYIBogFoVCAYkiFiAhfCATfCIahUIgiSIYfCIXIBaFQiiJIhYgGnwgDXwiGiAYhUIwiSIYIBd8Ihd8IiEgFIVCKIkiFCAefCAFfCIeICCFQjCJIiAgIXwiISAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIBx8IAt8IhwgGIVCIIkiGCAbfCIbIA6FQiiJIg4gHHwgEnwiHCAYhUIwiSIYIBcgFoVCAYkiFiAZfCABfCIXICKFQiCJIhkgFSAffCIVfCIfIBaFQiiJIhYgF3wgBnwiFyAZhUIwiSIZIB98Ih8gFoVCAYkiFiAVIA+FQgGJIg8gGnwgCHwiFSAdhUIgiSIaICN8Ih0gD4VCKIkiDyAVfCACfCIVfCANfCIihUIgiSIjfCIkIBaFQiiJIhYgInwgCXwiIiAjhUIwiSIjICR8IiQgFoVCAYkiFiAYIBt8IhggFSAahUIwiSIVICEgFIVCAYkiFCAXfCASfCIXhUIgiSIafCIbIBSFQiiJIhQgF3wgCHwiF3wgB3wiISAVIB18IhUgGSAYIA6FQgGJIg4gHnwgBnwiGIVCIIkiGXwiHSAOhUIoiSIOIBh8IAt8IhggGYVCMIkiGYVCIIkiHiAfICAgFSAPhUIBiSIPIBx8IAp8IhWFQiCJIhx8Ih8gD4VCKIkiDyAVfCAEfCIVIByFQjCJIhwgH3wiH3wiICAWhUIoiSIWICF8IAN8IiEgHoVCMIkiHiAgfCIgIBggFyAahUIwiSIXIBt8IhogFIVCAYkiFHwgBXwiGCAchUIgiSIbICR8IhwgFIVCKIkiFCAYfCABfCIYIBuFQjCJIhsgHyAPhUIBiSIPICJ8IAx8Ih8gF4VCIIkiFyAZIB18Ihl8Ih0gD4VCKIkiDyAffCATfCIfIBeFQjCJIhcgHXwiHSAPhUIBiSIPIBkgDoVCAYkiDiAVfCAQfCIVICOFQiCJIhkgGnwiGiAOhUIoiSIOIBV8IAJ8IhV8IBN8IiKFQiCJIiN8IiQgD4VCKIkiDyAifCASfCIiICOFQjCJIiMgJHwiJCAPhUIBiSIPIBsgHHwiGyAVIBmFQjCJIhUgICAWhUIBiSIWIB98IAt8IhmFQiCJIhx8Ih8gFoVCKIkiFiAZfCACfCIZfCAJfCIgIBUgGnwiFSAXIBsgFIVCAYkiFCAhfCAFfCIahUIgiSIXfCIbIBSFQiiJIhQgGnwgA3wiGiAXhUIwiSIXhUIgiSIhIB0gHiAVIA6FQgGJIg4gGHwgEHwiFYVCIIkiGHwiHSAOhUIoiSIOIBV8IAF8IhUgGIVCMIkiGCAdfCIdfCIeIA+FQiiJIg8gIHwgDXwiICAhhUIwiSIhIB58Ih4gGSAchUIwiSIZIB98IhwgFoVCAYkiFiAafCAIfCIaIBiFQiCJIhggJHwiHyAWhUIoiSIWIBp8IAp8IhogGIVCMIkiGCAdIA6FQgGJIg4gInwgBHwiHSAZhUIgiSIZIBcgG3wiF3wiGyAOhUIoiSIOIB18IAd8Ih0gGYVCMIkiGSAbfCIbIA6FQgGJIg4gFSAXIBSFQgGJIhR8IAx8IhUgI4VCIIkiFyAcfCIcIBSFQiiJIhQgFXwgBnwiFXwgEnwiIoVCIIkiI3wiJCAOhUIoiSIOICJ8IBN8IiIgGyAhIBUgF4VCMIkiFSAcfCIXIBSFQgGJIhQgGnwgBnwiGoVCIIkiHHwiGyAUhUIoiSIUIBp8IBB8IhogHIVCMIkiHCAbfCIbIBSFQgGJIhR8IA18IiEgGCAffCIYIBUgHiAPhUIBiSIPIB18IAJ8Ih2FQiCJIhV8Ih4gD4VCKIkiDyAdfCABfCIdIBWFQjCJIhWFQiCJIh8gFyAZIBggFoVCAYkiFiAgfCADfCIYhUIgiSIZfCIXIBaFQiiJIhYgGHwgBHwiGCAZhUIwiSIZIBd8Ihd8IiAgFIVCKIkiFCAhfCAIfCIhIB+FQjCJIh8gIHwiICAiICOFQjCJIiIgJHwiIyAOhUIBiSIOIB18IAd8Ih0gGYVCIIkiGSAbfCIbIA6FQiiJIg4gHXwgDHwiHSAZhUIwiSIZIBcgFoVCAYkiFiAafCALfCIXICKFQiCJIhogFSAefCIVfCIeIBaFQiiJIhYgF3wgCXwiFyAahUIwiSIaIB58Ih4gFoVCAYkiFiAVIA+FQgGJIg8gGHwgBXwiFSAchUIgiSIYICN8IhwgD4VCKIkiDyAVfCAKfCIVfCACfCIChUIgiSIifCIjIBaFQiiJIhYgAnwgC3wiAiAihUIwiSILICN8IiIgFoVCAYkiFiAZIBt8IhkgFSAYhUIwiSIVICAgFIVCAYkiFCAXfCANfCINhUIgiSIXfCIYIBSFQiiJIhQgDXwgBXwiBXwgEHwiECAVIBx8Ig0gGiAZIA6FQgGJIg4gIXwgDHwiDIVCIIkiFXwiGSAOhUIoiSIOIAx8IBJ8IhIgFYVCMIkiDIVCIIkiFSAeIB8gDSAPhUIBiSINIB18IAl8IgmFQiCJIg98IhogDYVCKIkiDSAJfCAIfCIJIA+FQjCJIgggGnwiD3wiGiAWhUIoiSIWIBB8IAd8IhAgEYUgDCAZfCIHIA6FQgGJIgwgCXwgCnwiCiALhUIgiSILIAUgF4VCMIkiBSAYfCIJfCIOIAyFQiiJIgwgCnwgE3wiEyALhUIwiSIKIA58IguFNwOAiQFBACADIAYgDyANhUIBiSINIAJ8fCICIAWFQiCJIgUgB3wiBiANhUIoiSIHIAJ8fCICQQApA4iJAYUgBCABIBIgCSAUhUIBiSIDfHwiASAIhUIgiSISICJ8IgkgA4VCKIkiAyABfHwiASAShUIwiSIEIAl8IhKFNwOIiQFBACATQQApA5CJAYUgECAVhUIwiSIQIBp8IhOFNwOQiQFBACABQQApA5iJAYUgAiAFhUIwiSICIAZ8IgGFNwOYiQFBACASIAOFQgGJQQApA6CJAYUgAoU3A6CJAUEAIBMgFoVCAYlBACkDqIkBhSAKhTcDqIkBQQAgASAHhUIBiUEAKQOwiQGFIASFNwOwiQFBACALIAyFQgGJQQApA7iJAYUgEIU3A7iJAQvdAgUBfwF+AX8BfgJ/IwBBwABrIgAkAAJAQQApA9CJAUIAUg0AQQBBACkDwIkBIgFBACgC4IoBIgKsfCIDNwPAiQFBAEEAKQPIiQEgAyABVK18NwPIiQECQEEALQDoigFFDQBBAEJ/NwPYiQELQQBCfzcD0IkBAkAgAkH/AEoNAEEAIQQDQCACIARqQeCJAWpBADoAACAEQQFqIgRBgAFBACgC4IoBIgJrSA0ACwtB4IkBEAIgAEEAKQOAiQE3AwAgAEEAKQOIiQE3AwggAEEAKQOQiQE3AxAgAEEAKQOYiQE3AxggAEEAKQOgiQE3AyAgAEEAKQOoiQE3AyggAEEAKQOwiQE3AzAgAEEAKQO4iQE3AzhBACgC5IoBIgVBAUgNAEEAIQRBACECA0AgBEGACWogACAEai0AADoAACAEQQFqIQQgBSACQQFqIgJB/wFxSg0ACwsgAEHAAGokAAv9AwMBfwF+AX8jAEGAAWsiAiQAQQBBgQI7AfKKAUEAIAE6APGKAUEAIAA6APCKAUGQfiEAA0AgAEGAiwFqQgA3AAAgAEH4igFqQgA3AAAgAEHwigFqQgA3AAAgAEEYaiIADQALQQAhAEEAQQApA/CKASIDQoiS853/zPmE6gCFNwOAiQFBAEEAKQP4igFCu86qptjQ67O7f4U3A4iJAUEAQQApA4CLAUKr8NP0r+68tzyFNwOQiQFBAEEAKQOIiwFC8e30+KWn/aelf4U3A5iJAUEAQQApA5CLAULRhZrv+s+Uh9EAhTcDoIkBQQBBACkDmIsBQp/Y+dnCkdqCm3+FNwOoiQFBAEEAKQOgiwFC6/qG2r+19sEfhTcDsIkBQQBBACkDqIsBQvnC+JuRo7Pw2wCFNwO4iQFBACADp0H/AXE2AuSKAQJAIAFBAUgNACACQgA3A3ggAkIANwNwIAJCADcDaCACQgA3A2AgAkIANwNYIAJCADcDUCACQgA3A0ggAkIANwNAIAJCADcDOCACQgA3AzAgAkIANwMoIAJCADcDICACQgA3AxggAkIANwMQIAJCADcDCCACQgA3AwBBACEEA0AgAiAAaiAAQYAJai0AADoAACAAQQFqIQAgBEEBaiIEQf8BcSABSA0ACyACQYABEAELIAJBgAFqJAALEgAgAEEDdkH/P3EgAEEQdhAECwkAQYAJIAAQAQsGAEGAiQELGwAgAUEDdkH/P3EgAUEQdhAEQYAJIAAQARADCwsLAQBBgAgLBPAAAAA=",hash:"c6f286e6"};function yp(e){return!Number.isInteger(e)||e<8||e>512||e%8!=0?new Error("Invalid variant! Valid values: 8, 16, ..., 512"):null}function wp(e=512,t=null){if(yp(e))return Promise.reject(yp(e));let n=null,r=e;if(null!==t){if(n=sp(t),n.length>64)return Promise.reject(new Error("Max key length is 64 bytes"));i=e,o=n.length,r=i|o<<16}var i,o;const s=e/8;return pp(mp,s).then(e=>{r>512&&e.writeMemory(n),e.init(r);const t={init:r>512?()=>(e.writeMemory(n),e.init(r),t):()=>(e.init(r),t),update:n=>(e.update(n),t),digest:t=>e.digest(t),save:()=>e.save(),load:n=>(e.load(n),t),blockSize:128,digestSize:s};return t})}new zh;const vp=new DataView(new ArrayBuffer(4));function Ap(e){return vp.setInt32(0,e,!0),new Uint8Array(vp.buffer)}function bp(e,t,n){return Yh(this,void 0,void 0,function*(){if(n<=64){const e=yield wp(8*n);return e.update(Ap(n)),e.update(t),e.digest("binary")}const r=Math.ceil(n/32)-2,i=new Uint8Array(n);e.init(),e.update(Ap(n)),e.update(t);let o=e.digest("binary");i.set(o.subarray(0,32),0);for(let t=1;t<r;t++)e.init(),e.update(o),o=e.digest("binary"),i.set(o.subarray(0,32),32*t);const s=n-32*r;let a;return 64===s?(a=e,a.init()):a=yield wp(8*s),a.update(o),o=a.digest("binary"),i.set(o.subarray(0,s),32*r),i})}function kp(e){return Yh(this,void 0,void 0,function*(){var t;const{parallelism:n,iterations:r,hashLength:i}=e,o=sp(e.password),s=sp(e.salt),a=function(e){switch(e){case"d":return 0;case"i":return 1;default:return 2}}(e.hashType),{memorySize:l}=e,c=sp(null!==(t=e.secret)&&void 0!==t?t:""),[u,d]=yield Promise.all([pp(gp,1024),wp(512)]);u.setMemorySize(1024*l+1024);const f=new Uint8Array(24),h=new DataView(f.buffer);h.setInt32(0,n,!0),h.setInt32(4,i,!0),h.setInt32(8,l,!0),h.setInt32(12,r,!0),h.setInt32(16,19,!0),h.setInt32(20,a,!0),u.writeMemory(f,1024*l),d.init(),d.update(f),d.update(Ap(o.length)),d.update(o),d.update(Ap(s.length)),d.update(s),d.update(Ap(c.length)),d.update(c),d.update(Ap(0));const p=4*Math.floor(l/(4*n)),g=new Uint8Array(72),m=d.digest("binary");g.set(m);for(let e=0;e<n;e++){g.set(Ap(0),64),g.set(Ap(e),68);let t=e*p,n=yield bp(d,g,1024);u.writeMemory(n,1024*t),t+=1,g.set(Ap(1),64),n=yield bp(d,g,1024),u.writeMemory(n,1024*t)}const y=new Uint8Array(1024);np(y,u.calculate(new Uint8Array([]),l));const w=yield bp(d,y,i);if("hex"===e.outputType){return op(new Uint8Array(2*i),w,i)}return"encoded"===e.outputType?function(e,t,n){const r=[`m=${t.memorySize}`,`t=${t.iterations}`,`p=${t.parallelism}`].join(",");return`$argon2${t.hashType}$v=19$${r}$${cp(e,!1)}$${cp(n,!1)}`}(s,e,w):w})}function Ip(e){return Yh(this,void 0,void 0,function*(){return(e=>{var t;if(!e||"object"!=typeof e)throw new Error("Invalid options parameter. It requires an object.");if(!e.password)throw new Error("Password must be specified");if(e.password=sp(e.password),e.password.length<1)throw new Error("Password must be specified");if(!e.salt)throw new Error("Salt must be specified");if(e.salt=sp(e.salt),e.salt.length<8)throw new Error("Salt should be at least 8 bytes long");if(e.secret=sp(null!==(t=e.secret)&&void 0!==t?t:""),!Number.isInteger(e.iterations)||e.iterations<1)throw new Error("Iterations should be a positive number");if(!Number.isInteger(e.parallelism)||e.parallelism<1)throw new Error("Parallelism should be a positive number");if(!Number.isInteger(e.hashLength)||e.hashLength<4)throw new Error("Hash length should be at least 4 bytes.");if(!Number.isInteger(e.memorySize))throw new Error("Memory size should be specified.");if(e.memorySize<8*e.parallelism)throw new Error("Memory size should be at least 8 * parallelism.");if(void 0===e.outputType&&(e.outputType="hex"),!["hex","binary","encoded"].includes(e.outputType))throw new Error(`Insupported output type ${e.outputType}. Valid values: ['hex', 'binary', 'encoded']`)})(e),kp(Object.assign(Object.assign({},e),{hashType:"id"}))})}new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh,new zh;const Ep={parallelism:4,iterations:8,memorySize:262144,hashLength:32,outputType:"binary"};let Cp=null,xp=0;const Bp=new Map;async function Sp(e,t){try{const n=function(){if(Cp)return Cp;const e=new Blob(["\n importScripts('https://cdn.jsdelivr.net/npm/hash-wasm@4.11.0/dist/argon2.umd.min.js');\n\n const ARGON2_CONFIG = {\n parallelism: 4,\n iterations: 8,\n memorySize: 262144,\n hashLength: 32,\n outputType: \"binary\"\n };\n\n self.onmessage = async function(e) {\n const { password, salt, id } = e.data;\n\n try {\n const result = await hashwasm.argon2id({\n password: password,\n salt: new Uint8Array(salt),\n ...ARGON2_CONFIG\n });\n\n self.postMessage({\n id,\n success: true,\n result: Array.from(result)\n });\n } catch (error) {\n self.postMessage({\n id,\n success: false,\n error: error.message\n });\n }\n };\n "],{type:"application/javascript"});return Cp=new Worker(URL.createObjectURL(e)),Cp.onmessage=function(e){const{id:t,success:n,result:r,error:i}=e.data,o=Bp.get(t);o&&(Bp.delete(t),n?o.resolve(new Uint8Array(r)):o.reject(new Error(i)))},Cp.onerror=function(e){console.error("Argon2 worker error:",e)},Cp}(),r=++xp;return new Promise((i,o)=>{Bp.set(r,{resolve:i,reject:o}),n.postMessage({id:r,password:e,salt:Array.from(t)})})}catch(n){console.warn("Worker failed, falling back to main thread:",n);return await Ip({password:e,salt:t,...Ep})}}const{window:Fp}=u;function Qp(e){let t,n,i,o,s,a,l,c,u,p,m,y,v,I,E,C,x,B;function S(e,t){return"extension"===e[2]?Rp:Dp}let Q=S(e),D=Q(e),R=e[10]&&Gp(e),$=e[11]&&qp(e);return{c(){t=g("div"),n=g("div"),i=g("div"),o=g("h2"),o.textContent="Login to Nostr",s=w(),a=g("button"),a.textContent="×",l=w(),c=g("div"),u=g("div"),p=g("button"),p.textContent="Extension",m=w(),y=g("button"),y.textContent="Nsec",v=w(),I=g("div"),D.c(),E=w(),R&&R.c(),C=w(),$&&$.c(),k(o,"class","svelte-4xpfbi"),k(a,"class","close-btn svelte-4xpfbi"),k(i,"class","modal-header svelte-4xpfbi"),k(p,"class","tab-btn svelte-4xpfbi"),F(p,"active","extension"===e[2]),k(y,"class","tab-btn svelte-4xpfbi"),F(y,"active","nsec"===e[2]),k(u,"class","tabs svelte-4xpfbi"),k(I,"class","tab-content svelte-4xpfbi"),k(c,"class","tab-container svelte-4xpfbi"),k(n,"class","modal svelte-4xpfbi"),F(n,"dark-theme",e[1]),k(t,"class","modal-overlay svelte-4xpfbi"),k(t,"role","button"),k(t,"tabindex","0")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(i,o),d(i,s),d(i,a),d(n,l),d(n,c),d(c,u),d(u,p),d(u,m),d(u,y),d(c,v),d(c,I),D.m(I,null),d(I,E),R&&R.m(I,null),d(I,C),$&&$.m(I,null),x||(B=[A(a,"click",e[17]),A(p,"click",e[26]),A(y,"click",e[27]),A(n,"click",b(e[24])),A(n,"keydown",b(e[25])),A(t,"click",e[17]),A(t,"keydown",e[32])],x=!0)},p(e,t){4&t[0]&&F(p,"active","extension"===e[2]),4&t[0]&&F(y,"active","nsec"===e[2]),Q===(Q=S(e))&&D?D.p(e,t):(D.d(1),D=Q(e),D&&(D.c(),D.m(I,E))),e[10]?R?R.p(e,t):(R=Gp(e),R.c(),R.m(I,C)):R&&(R.d(1),R=null),e[11]?$?$.p(e,t):($=qp(e),$.c(),$.m(I,null)):$&&($.d(1),$=null),2&t[0]&&F(n,"dark-theme",e[1])},d(e){e&&h(t),D.d(),R&&R.d(),$&&$.d(),x=!1,r(B)}}}function Dp(e){let t;function n(e,t){return e[14]?Pp:$p}let r=n(e),i=r(e);return{c(){t=g("div"),i.c(),k(t,"class","nsec-login svelte-4xpfbi")},m(e,n){f(e,t,n),i.m(t,null)},p(e,o){r===(r=n(e))&&i?i.p(e,o):(i.d(1),i=r(e),i&&(i.c(),i.m(t,null)))},d(e){e&&h(t),i.d()}}}function Rp(e){let t,n,r,i,o,s,a,l=e[7]?"Connecting...":"Log in using extension";return{c(){t=g("div"),n=g("p"),n.textContent="Login using a NIP-07 compatible browser\n extension like nos2x or Alby.",r=w(),i=g("button"),o=y(l),k(n,"class","svelte-4xpfbi"),k(i,"class","login-extension-btn svelte-4xpfbi"),i.disabled=e[7],k(t,"class","extension-login svelte-4xpfbi")},m(l,c){f(l,t,c),d(t,n),d(t,r),d(t,i),d(i,o),s||(a=A(i,"click",e[21]),s=!0)},p(e,t){128&t[0]&&l!==(l=e[7]?"Connecting...":"Log in using extension")&&E(o,l),128&t[0]&&(i.disabled=e[7])},d(e){e&&h(t),s=!1,a()}}}function $p(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,x,B,S,F,Q,D,R,$,P,U=e[8]?"Generating...":"Generate New Key",T=e[12]&&Up(e),N=e[4]&&Tp(e);function L(e,t){return e[9]?Op:e[7]?Lp:Np}let O=L(e),M=O(e);return{c(){t=g("p"),t.textContent="Enter your nsec or generate a new one. Optionally\n set a password to encrypt it securely.",n=w(),i=g("button"),o=y(U),a=w(),T&&T.c(),l=w(),c=g("input"),p=w(),m=g("div"),v=g("label"),v.textContent="Encryption Password (optional but recommended):",b=w(),I=g("input"),B=w(),N&&N.c(),S=w(),F=g("small"),F.textContent="Password uses Argon2id with ~3 second derivation time for security.",Q=w(),D=g("button"),M.c(),k(t,"class","svelte-4xpfbi"),k(i,"class","generate-btn svelte-4xpfbi"),i.disabled=s=e[7]||e[8],k(c,"type","password"),k(c,"placeholder","nsec1..."),c.disabled=u=e[7]||e[9],k(c,"class","nsec-input svelte-4xpfbi"),k(v,"class","svelte-4xpfbi"),k(I,"type","password"),k(I,"placeholder","Enter password (min 8 chars)"),I.disabled=x=e[7]||e[9],k(I,"class","password-input svelte-4xpfbi"),k(F,"class","password-hint svelte-4xpfbi"),k(m,"class","password-section svelte-4xpfbi"),k(D,"class","login-nsec-btn svelte-4xpfbi"),D.disabled=R=e[7]||e[9]||!e[3].trim()},m(r,s){f(r,t,s),f(r,n,s),f(r,i,s),d(i,o),f(r,a,s),T&&T.m(r,s),f(r,l,s),f(r,c,s),C(c,e[3]),f(r,p,s),f(r,m,s),d(m,v),d(m,b),d(m,I),C(I,e[4]),d(m,B),N&&N.m(m,null),d(m,S),d(m,F),f(r,Q,s),f(r,D,s),M.m(D,null),$||(P=[A(i,"click",e[20]),A(c,"input",e[29]),A(I,"input",e[30]),A(D,"click",e[22])],$=!0)},p(e,t){256&t[0]&&U!==(U=e[8]?"Generating...":"Generate New Key")&&E(o,U),384&t[0]&&s!==(s=e[7]||e[8])&&(i.disabled=s),e[12]?T?T.p(e,t):(T=Up(e),T.c(),T.m(l.parentNode,l)):T&&(T.d(1),T=null),640&t[0]&&u!==(u=e[7]||e[9])&&(c.disabled=u),8&t[0]&&c.value!==e[3]&&C(c,e[3]),640&t[0]&&x!==(x=e[7]||e[9])&&(I.disabled=x),16&t[0]&&I.value!==e[4]&&C(I,e[4]),e[4]?N?N.p(e,t):(N=Tp(e),N.c(),N.m(m,S)):N&&(N.d(1),N=null),O!==(O=L(e))&&(M.d(1),M=O(e),M&&(M.c(),M.m(D,null))),648&t[0]&&R!==(R=e[7]||e[9]||!e[3].trim())&&(D.disabled=R)},d(e){e&&h(t),e&&h(n),e&&h(i),e&&h(a),T&&T.d(e),e&&h(l),e&&h(c),e&&h(p),e&&h(m),N&&N.d(),e&&h(Q),e&&h(D),M.d(),$=!1,r(P)}}}function Pp(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E=e[15]&&Mp(e);function x(e,t){return e[9]?jp:e[7]?Hp:_p}let B=x(e),S=B(e);return{c(){t=g("p"),t.textContent="You have a stored encrypted key. Enter your\n password to unlock it.",n=w(),E&&E.c(),i=w(),o=g("input"),a=w(),l=g("button"),S.c(),u=w(),p=g("button"),m=y("Clear stored key & start fresh"),k(t,"class","svelte-4xpfbi"),k(o,"type","password"),k(o,"placeholder","Enter your password"),o.disabled=s=e[7]||e[9],k(o,"class","password-input svelte-4xpfbi"),k(l,"class","login-nsec-btn svelte-4xpfbi"),l.disabled=c=e[7]||e[9]||!e[6],k(p,"class","clear-btn svelte-4xpfbi"),p.disabled=v=e[7]||e[9]},m(r,s){f(r,t,s),f(r,n,s),E&&E.m(r,s),f(r,i,s),f(r,o,s),C(o,e[6]),f(r,a,s),f(r,l,s),S.m(l,null),f(r,u,s),f(r,p,s),d(p,m),b||(I=[A(o,"input",e[28]),A(l,"click",e[18]),A(p,"click",e[16])],b=!0)},p(e,t){e[15]?E?E.p(e,t):(E=Mp(e),E.c(),E.m(i.parentNode,i)):E&&(E.d(1),E=null),640&t[0]&&s!==(s=e[7]||e[9])&&(o.disabled=s),64&t[0]&&o.value!==e[6]&&C(o,e[6]),B!==(B=x(e))&&(S.d(1),S=B(e),S&&(S.c(),S.m(l,null))),704&t[0]&&c!==(c=e[7]||e[9]||!e[6])&&(l.disabled=c),640&t[0]&&v!==(v=e[7]||e[9])&&(p.disabled=v)},d(e){e&&h(t),e&&h(n),E&&E.d(e),e&&h(i),e&&h(o),e&&h(a),e&&h(l),S.d(),e&&h(u),e&&h(p),b=!1,r(I)}}}function Up(e){let t,n,r,i,o;return{c(){t=g("div"),n=g("label"),n.textContent="Your new public key (npub):",r=w(),i=g("code"),o=y(e[12]),k(n,"class","svelte-4xpfbi"),k(i,"class","npub-display svelte-4xpfbi"),k(t,"class","generated-info svelte-4xpfbi")},m(e,s){f(e,t,s),d(t,n),d(t,r),d(t,i),d(i,o)},p(e,t){4096&t[0]&&E(o,e[12])},d(e){e&&h(t)}}}function Tp(e){let t,n,r,i;return{c(){t=g("input"),k(t,"type","password"),k(t,"placeholder","Confirm password"),t.disabled=n=e[7]||e[9],k(t,"class","password-input svelte-4xpfbi")},m(n,o){f(n,t,o),C(t,e[5]),r||(i=A(t,"input",e[31]),r=!0)},p(e,r){640&r[0]&&n!==(n=e[7]||e[9])&&(t.disabled=n),32&r[0]&&t.value!==e[5]&&C(t,e[5])},d(e){e&&h(t),r=!1,i()}}}function Np(e){let t;return{c(){t=y("Log in with nsec")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Lp(e){let t;return{c(){t=y("Logging in...")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Op(e){let t;return{c(){t=y("Deriving key...")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Mp(e){let t,n,r,i,o,s,a,l=e[15].slice(0,16)+"",c=e[15].slice(-8)+"";return{c(){t=g("div"),n=g("label"),n.textContent="Stored public key:",r=w(),i=g("code"),o=y(l),s=y("..."),a=y(c),k(n,"class","svelte-4xpfbi"),k(i,"class","npub-display svelte-4xpfbi"),k(t,"class","stored-info svelte-4xpfbi")},m(e,l){f(e,t,l),d(t,n),d(t,r),d(t,i),d(i,o),d(i,s),d(i,a)},p(e,t){32768&t[0]&&l!==(l=e[15].slice(0,16)+"")&&E(o,l),32768&t[0]&&c!==(c=e[15].slice(-8)+"")&&E(a,c)},d(e){e&&h(t)}}}function _p(e){let t;return{c(){t=y("Unlock")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Hp(e){let t;return{c(){t=y("Unlocking...")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function jp(e){let t;return{c(){t=y("Deriving key...")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Gp(e){let t,n;return{c(){t=g("div"),n=y(e[10]),k(t,"class","message error-message svelte-4xpfbi")},m(e,r){f(e,t,r),d(t,n)},p(e,t){1024&t[0]&&E(n,e[10])},d(e){e&&h(t)}}}function qp(e){let t,n;return{c(){t=g("div"),n=y(e[11]),k(t,"class","message success-message svelte-4xpfbi")},m(e,r){f(e,t,r),d(t,n)},p(e,t){2048&t[0]&&E(n,e[11])},d(e){e&&h(t)}}}function Kp(e){let t,n,r,i,o,s,a,l,c,u,p,m=e[13].toFixed(1)+"";return{c(){t=g("div"),n=g("div"),r=g("div"),i=w(),o=g("h3"),o.textContent="Deriving encryption key",s=w(),a=g("div"),l=y(m),c=y("s"),u=w(),p=g("p"),p.textContent="This may take 3-6 seconds for security",k(r,"class","deriving-spinner svelte-4xpfbi"),k(o,"class","svelte-4xpfbi"),k(a,"class","deriving-timer svelte-4xpfbi"),k(p,"class","deriving-note svelte-4xpfbi"),k(n,"class","deriving-modal svelte-4xpfbi"),F(n,"dark-theme",e[1]),k(t,"class","deriving-overlay svelte-4xpfbi")},m(e,h){f(e,t,h),d(t,n),d(n,r),d(n,i),d(n,o),d(n,s),d(n,a),d(a,l),d(a,c),d(n,u),d(n,p)},p(e,t){8192&t[0]&&m!==(m=e[13].toFixed(1)+"")&&E(l,m),2&t[0]&&F(n,"dark-theme",e[1])},d(e){e&&h(t)}}}function Jp(t){let n,r,i,o,s=t[0]&&Qp(t),a=t[9]&&Kp(t);return{c(){s&&s.c(),n=w(),a&&a.c(),r=v()},m(e,l){s&&s.m(e,l),f(e,n,l),a&&a.m(e,l),f(e,r,l),i||(o=A(Fp,"keydown",t[23]),i=!0)},p(e,t){e[0]?s?s.p(e,t):(s=Qp(e),s.c(),s.m(n.parentNode,n)):s&&(s.d(1),s=null),e[9]?a?a.p(e,t):(a=Kp(e),a.c(),a.m(r.parentNode,r)):a&&(a.d(1),a=null)},i:e,o:e,d(e){s&&s.d(e),e&&h(n),a&&a.d(e),e&&h(r),i=!1,o()}}}function Vp(e,t,n){const r=U();let{showModal:i=!1}=t,{isDarkTheme:o=!1}=t,s="extension",a="",l="",c="",u="",d=!1,f=!1,h=!1,p="",g="",m="",y="",w=0,v=null,A=null;function b(){n(13,w=0),v=performance.now(),k()}function k(){null!==v&&(n(13,w=(performance.now()-v)/1e3),A=requestAnimationFrame(k))}function I(){v=null,A&&(cancelAnimationFrame(A),A=null)}P(()=>{I()});let E=!1,C="";function x(){n(14,E=!!localStorage.getItem("nostr_privkey_encrypted")),n(15,C=localStorage.getItem("nostr_pubkey")||"")}function B(){n(0,i=!1),n(3,a=""),n(4,l=""),n(5,c=""),n(6,u=""),n(10,p=""),n(11,g=""),m="",n(12,y=""),r("close")}function S(e){n(2,s=e),n(10,p=""),n(11,g=""),m="",n(12,y="")}async function F(){n(7,d=!0),n(10,p=""),n(11,g="");try{if(!a.trim())throw new Error("Please enter your nsec");if(!function(e){if(!e||!e.startsWith("nsec1"))return!1;try{return"nsec"===bu(e).type}catch{return!1}}(a.trim()))throw new Error("Invalid nsec format or checksum");if(l){if(l.length<8)throw new Error("Password must be at least 8 characters");if(l!==c)throw new Error("Passwords do not match")}const e=Sf.fromKey(a.trim()),t=await e.getPublicKey();if(localStorage.setItem("nostr_auth_method","nsec"),localStorage.setItem("nostr_pubkey",t),l){n(9,h=!0),b();const e=await async function(e,t){if(!e.startsWith("nsec1"))throw new Error("Invalid nsec format - must start with nsec1");try{if("nsec"!==bu(e).type)throw new Error("Invalid nsec - wrong type")}catch(e){throw new Error("Invalid nsec - bech32 checksum failed")}const n=crypto.getRandomValues(new Uint8Array(32)),r=crypto.getRandomValues(new Uint8Array(12)),i=await Sp(t,n),o=await crypto.subtle.importKey("raw",i,{name:"AES-GCM"},!1,["encrypt"]),s=new TextEncoder,a=await crypto.subtle.encrypt({name:"AES-GCM",iv:r},o,s.encode(e)),l=new Uint8Array(n.length+r.length+a.byteLength);return l.set(n,0),l.set(r,n.length),l.set(new Uint8Array(a),n.length+r.length),btoa(String.fromCharCode(...l))}(a.trim(),l);I(),n(9,h=!1),localStorage.setItem("nostr_privkey_encrypted",e),localStorage.removeItem("nostr_privkey")}else localStorage.setItem("nostr_privkey",a.trim()),localStorage.removeItem("nostr_privkey_encrypted"),n(11,g="Successfully logged in with nsec!");r("login",{method:"nsec",pubkey:t,privateKey:a.trim(),signer:e}),setTimeout(()=>{B()},1500)}catch(e){n(10,p=e.message)}finally{n(7,d=!1)}}$(()=>{x()});return e.$$set=e=>{"showModal"in e&&n(0,i=e.showModal),"isDarkTheme"in e&&n(1,o=e.isDarkTheme)},e.$$.update=()=>{1&e.$$.dirty[0]&&i&&x()},[i,o,s,a,l,c,u,d,f,h,p,g,y,w,E,C,function(){localStorage.removeItem("nostr_privkey_encrypted"),localStorage.removeItem("nostr_privkey"),localStorage.removeItem("nostr_pubkey"),localStorage.removeItem("nostr_auth_method"),n(14,E=!1),n(15,C=""),n(6,u=""),n(10,p=""),n(11,g="")},B,async function(){n(7,d=!0),n(9,h=!0),b(),n(10,p=""),n(11,g="");try{if(!u)throw new Error("Please enter your password");const e=localStorage.getItem("nostr_privkey_encrypted");if(!e)throw new Error("No encrypted key found");const t=await async function(e,t){const n=new Uint8Array(atob(e).split("").map(e=>e.charCodeAt(0)));if(n.length<60)throw new Error("Invalid encrypted data - too short");const r=n.slice(0,32),i=n.slice(32,44),o=n.slice(44),s=await Sp(t,r),a=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!1,["decrypt"]);let l;try{l=await crypto.subtle.decrypt({name:"AES-GCM",iv:i},a,o)}catch(e){throw new Error("Decryption failed - invalid password or corrupted data")}const c=(new TextDecoder).decode(l);if(!c.startsWith("nsec1"))throw new Error("Decryption produced invalid data - not an nsec");try{if("nsec"!==bu(c).type)throw new Error("Decryption produced invalid nsec type")}catch(e){throw new Error("Decryption produced invalid nsec - bech32 checksum failed")}return c}(e,u);I(),n(9,h=!1);const i=Sf.fromKey(t),o=await i.getPublicKey();r("login",{method:"nsec",pubkey:o,privateKey:t,signer:i}),B()}catch(e){I(),e.message.includes("decrypt")||e.message.includes("tag")?n(10,p="Invalid password"):n(10,p=e.message)}finally{n(7,d=!1),n(9,h=!1),I()}},S,async function(){n(8,f=!0),n(10,p=""),n(11,g="");try{const e=nu(),t=Eu("nsec",e),r=Iu(ru(e));m=t,n(12,y=r),n(3,a=t),n(11,g="New key generated! Set an encryption password below to secure it.")}catch(e){n(10,p="Failed to generate key: "+e.message)}finally{n(8,f=!1)}},async function(){n(7,d=!0),n(10,p=""),n(11,g="");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(11,g="Successfully logged in with extension!"),r("login",{method:"extension",pubkey:e,signer:window.nostr}),setTimeout(()=>{B()},1500))}catch(e){n(10,p=e.message)}finally{n(7,d=!1)}},F,function(e){"Escape"===e.key&&B(),"Enter"===e.key&&"nsec"===s&&F()},function(t){T.call(this,e,t)},function(t){T.call(this,e,t)},()=>S("extension"),()=>S("nsec"),function(){u=this.value,n(6,u)},function(){a=this.value,n(3,a)},function(){l=this.value,n(4,l)},function(){c=this.value,n(5,c)},e=>"Escape"===e.key&&B()]}class Yp extends ce{constructor(e){super(),le(this,e,Vp,Jp,o,{showModal:0,isDarkTheme:1},null,[-1,-1])}}function zp(e,t,n){const r=e.slice();return r[72]=t[n],r}function Wp(e,t,n){const r=e.slice();return r[75]=t[n],r}function Zp(e,t,n){const r=e.slice();return r[72]=t[n],r}function Xp(e,t,n){const r=e.slice();return r[72]=t[n],r}function eg(e,t,n){const r=e.slice();return r[72]=t[n],r}function tg(e,t,n){const r=e.slice();return r[72]=t[n],r}function ng(e,t,n){const r=e.slice();return r[72]=t[n],r}function rg(e){let t,n,r;return{c(){t=g("div"),n=y(e[3]),k(t,"class",r="message "+e[4]+" svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,i){8&i[0]&&E(n,e[3]),16&i[0]&&r!==(r="message "+e[4]+" svelte-1y8wjwc")&&k(t,"class",r)},d(e){e&&h(t)}}}function ig(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E,x,B,S,F,Q,D,R,$,P,U,T,N,L;function O(e,t){return e[5]&&e[5].length>0?sg:og}let M=O(e),_=M(e);function H(e,t){return e[8]&&e[8].length>0?ug:cg}let j=H(e),G=j(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Banned Pubkeys",o=w(),s=g("div"),a=g("input"),l=w(),c=g("input"),u=w(),p=g("button"),m=y("Ban Pubkey"),v=w(),b=g("div"),_.c(),I=w(),E=g("div"),x=g("h3"),x.textContent="Allowed Pubkeys",B=w(),S=g("div"),F=g("input"),Q=w(),D=g("input"),R=w(),$=g("button"),P=y("Allow Pubkey"),U=w(),T=g("div"),G.c(),k(i,"class","svelte-1y8wjwc"),k(a,"type","text"),k(a,"placeholder","Pubkey (64 hex chars)"),k(a,"class","svelte-1y8wjwc"),k(c,"type","text"),k(c,"placeholder","Reason (optional)"),k(c,"class","svelte-1y8wjwc"),p.disabled=e[2],k(p,"class","svelte-1y8wjwc"),k(s,"class","add-form svelte-1y8wjwc"),k(b,"class","list svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(x,"class","svelte-1y8wjwc"),k(F,"type","text"),k(F,"placeholder","Pubkey (64 hex chars)"),k(F,"class","svelte-1y8wjwc"),k(D,"type","text"),k(D,"placeholder","Reason (optional)"),k(D,"class","svelte-1y8wjwc"),$.disabled=e[2],k($,"class","svelte-1y8wjwc"),k(S,"class","add-form svelte-1y8wjwc"),k(T,"class","list svelte-1y8wjwc"),k(E,"class","section svelte-1y8wjwc"),k(t,"class","pubkeys-section")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),C(a,e[6]),d(s,l),d(s,c),C(c,e[7]),d(s,u),d(s,p),d(p,m),d(n,v),d(n,b),_.m(b,null),d(t,I),d(t,E),d(E,x),d(E,B),d(E,S),d(S,F),C(F,e[9]),d(S,Q),d(S,D),C(D,e[10]),d(S,R),d(S,$),d($,P),d(E,U),d(E,T),G.m(T,null),N||(L=[A(a,"input",e[43]),A(c,"input",e[44]),A(p,"click",e[25]),A(F,"input",e[45]),A(D,"input",e[46]),A($,"click",e[26])],N=!0)},p(e,t){64&t[0]&&a.value!==e[6]&&C(a,e[6]),128&t[0]&&c.value!==e[7]&&C(c,e[7]),4&t[0]&&(p.disabled=e[2]),M===(M=O(e))&&_?_.p(e,t):(_.d(1),_=M(e),_&&(_.c(),_.m(b,null))),512&t[0]&&F.value!==e[9]&&C(F,e[9]),1024&t[0]&&D.value!==e[10]&&C(D,e[10]),4&t[0]&&($.disabled=e[2]),j===(j=H(e))&&G?G.p(e,t):(G.d(1),G=j(e),G&&(G.c(),G.m(T,null)))},d(e){e&&h(t),_.d(),G.d(),N=!1,r(L)}}}function og(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No banned pubkeys configured.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function sg(e){let t,n=e[5],r=[];for(let t=0;t<n.length;t+=1)r[t]=lg(ng(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(32&i[0]){let o;for(n=e[5],o=0;o<n.length;o+=1){const s=ng(e,n,o);r[o]?r[o].p(s,i):(r[o]=lg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function ag(e){let t,n,r=e[72].reason+"";return{c(){t=g("span"),n=y(r),k(t,"class","reason svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){32&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&h(t)}}}function lg(e){let t,n,r,i,o,s=e[72].pubkey+"",a=e[72].reason&&ag(e);return{c(){t=g("div"),n=g("span"),r=y(s),i=w(),a&&a.c(),o=w(),k(n,"class","pubkey svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,s){f(e,t,s),d(t,n),d(n,r),d(t,i),a&&a.m(t,null),d(t,o)},p(e,n){32&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=ag(e),a.c(),a.m(t,o)):a&&(a.d(1),a=null)},d(e){e&&h(t),a&&a.d()}}}function cg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No allowed pubkeys configured.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function ug(e){let t,n=e[8],r=[];for(let t=0;t<n.length;t+=1)r[t]=fg(tg(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(256&i[0]){let o;for(n=e[8],o=0;o<n.length;o+=1){const s=tg(e,n,o);r[o]?r[o].p(s,i):(r[o]=fg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function dg(e){let t,n,r=e[72].reason+"";return{c(){t=g("span"),n=y(r),k(t,"class","reason svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){256&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&h(t)}}}function fg(e){let t,n,r,i,o,s=e[72].pubkey+"",a=e[72].reason&&dg(e);return{c(){t=g("div"),n=g("span"),r=y(s),i=w(),a&&a.c(),o=w(),k(n,"class","pubkey svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,s){f(e,t,s),d(t,n),d(n,r),d(t,i),a&&a.m(t,null),d(t,o)},p(e,n){256&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=dg(e),a.c(),a.m(t,o)):a&&(a.d(1),a=null)},d(e){e&&h(t),a&&a.d()}}}function hg(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E,x,B,S,F,Q,D,R,$,P,U,T,N,L;function O(e,t){return e[11]&&e[11].length>0?gg:pg}let M=O(e),_=M(e);let H=function(e){return e[22]&&e[22].length>0?vg:wg}(e),j=H(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Banned Events",o=w(),s=g("div"),a=g("input"),l=w(),c=g("input"),u=w(),p=g("button"),m=y("Ban Event"),v=w(),b=g("div"),_.c(),I=w(),E=g("div"),x=g("h3"),x.textContent="Allowed Events",B=w(),S=g("div"),F=g("input"),Q=w(),D=g("input"),R=w(),$=g("button"),P=y("Allow Event"),U=w(),T=g("div"),j.c(),k(i,"class","svelte-1y8wjwc"),k(a,"type","text"),k(a,"placeholder","Event ID (64 hex chars)"),k(a,"class","svelte-1y8wjwc"),k(c,"type","text"),k(c,"placeholder","Reason (optional)"),k(c,"class","svelte-1y8wjwc"),p.disabled=e[2],k(p,"class","svelte-1y8wjwc"),k(s,"class","add-form svelte-1y8wjwc"),k(b,"class","list svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(x,"class","svelte-1y8wjwc"),k(F,"type","text"),k(F,"placeholder","Event ID (64 hex chars)"),k(F,"class","svelte-1y8wjwc"),k(D,"type","text"),k(D,"placeholder","Reason (optional)"),k(D,"class","svelte-1y8wjwc"),$.disabled=e[2],k($,"class","svelte-1y8wjwc"),k(S,"class","add-form svelte-1y8wjwc"),k(T,"class","list svelte-1y8wjwc"),k(E,"class","section svelte-1y8wjwc"),k(t,"class","events-section")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),C(a,e[12]),d(s,l),d(s,c),C(c,e[13]),d(s,u),d(s,p),d(p,m),d(n,v),d(n,b),_.m(b,null),d(t,I),d(t,E),d(E,x),d(E,B),d(E,S),d(S,F),C(F,e[14]),d(S,Q),d(S,D),C(D,e[15]),d(S,R),d(S,$),d($,P),d(E,U),d(E,T),j.m(T,null),N||(L=[A(a,"input",e[47]),A(c,"input",e[48]),A(p,"click",e[27]),A(F,"input",e[49]),A(D,"input",e[50]),A($,"click",e[28])],N=!0)},p(e,t){4096&t[0]&&a.value!==e[12]&&C(a,e[12]),8192&t[0]&&c.value!==e[13]&&C(c,e[13]),4&t[0]&&(p.disabled=e[2]),M===(M=O(e))&&_?_.p(e,t):(_.d(1),_=M(e),_&&(_.c(),_.m(b,null))),16384&t[0]&&F.value!==e[14]&&C(F,e[14]),32768&t[0]&&D.value!==e[15]&&C(D,e[15]),4&t[0]&&($.disabled=e[2]),j.p(e,t)},d(e){e&&h(t),_.d(),j.d(),N=!1,r(L)}}}function pg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No banned events configured.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function gg(e){let t,n=e[11],r=[];for(let t=0;t<n.length;t+=1)r[t]=yg(eg(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(2048&i[0]){let o;for(n=e[11],o=0;o<n.length;o+=1){const s=eg(e,n,o);r[o]?r[o].p(s,i):(r[o]=yg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function mg(e){let t,n,r=e[72].reason+"";return{c(){t=g("span"),n=y(r),k(t,"class","reason svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){2048&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&h(t)}}}function yg(e){let t,n,r,i,o,s=e[72].id+"",a=e[72].reason&&mg(e);return{c(){t=g("div"),n=g("span"),r=y(s),i=w(),a&&a.c(),o=w(),k(n,"class","event-id svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,s){f(e,t,s),d(t,n),d(n,r),d(t,i),a&&a.m(t,null),d(t,o)},p(e,n){2048&n[0]&&s!==(s=e[72].id+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=mg(e),a.c(),a.m(t,o)):a&&(a.d(1),a=null)},d(e){e&&h(t),a&&a.d()}}}function wg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No allowed events configured.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function vg(e){let t,n=e[22],r=[];for(let t=0;t<n.length;t+=1)r[t]=Ag(Xp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(4194304&i[0]){let o;for(n=e[22],o=0;o<n.length;o+=1){const s=Xp(e,n,o);r[o]?r[o].p(s,i):(r[o]=Ag(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function Ag(t){let n,r,i,o,s,a=t[72].id+"",l=t[72].reason&&function(t){let n,r,i=t[72].reason+"";return{c(){n=g("span"),r=y(i),k(n,"class","reason svelte-1y8wjwc")},m(e,t){f(e,n,t),d(n,r)},p:e,d(e){e&&h(n)}}}(t);return{c(){n=g("div"),r=g("span"),i=y(a),o=w(),l&&l.c(),s=w(),k(r,"class","event-id svelte-1y8wjwc"),k(n,"class","list-item svelte-1y8wjwc")},m(e,t){f(e,n,t),d(n,r),d(r,i),d(n,o),l&&l.m(n,null),d(n,s)},p(e,t){e[72].reason&&l.p(e,t)},d(e){e&&h(n),l&&l.d()}}}function bg(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E;function x(e,t){return e[16]&&e[16].length>0?Ig:kg}let B=x(e),S=B(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Blocked IPs",o=w(),s=g("div"),a=g("input"),l=w(),c=g("input"),u=w(),p=g("button"),m=y("Block IP"),v=w(),b=g("div"),S.c(),k(i,"class","svelte-1y8wjwc"),k(a,"type","text"),k(a,"placeholder","IP Address"),k(a,"class","svelte-1y8wjwc"),k(c,"type","text"),k(c,"placeholder","Reason (optional)"),k(c,"class","svelte-1y8wjwc"),p.disabled=e[2],k(p,"class","svelte-1y8wjwc"),k(s,"class","add-form svelte-1y8wjwc"),k(b,"class","list svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(t,"class","ips-section")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),C(a,e[17]),d(s,l),d(s,c),C(c,e[18]),d(s,u),d(s,p),d(p,m),d(n,v),d(n,b),S.m(b,null),I||(E=[A(a,"input",e[51]),A(c,"input",e[52]),A(p,"click",e[29])],I=!0)},p(e,t){131072&t[0]&&a.value!==e[17]&&C(a,e[17]),262144&t[0]&&c.value!==e[18]&&C(c,e[18]),4&t[0]&&(p.disabled=e[2]),B===(B=x(e))&&S?S.p(e,t):(S.d(1),S=B(e),S&&(S.c(),S.m(b,null)))},d(e){e&&h(t),S.d(),I=!1,r(E)}}}function kg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No blocked IPs configured.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Ig(e){let t,n=e[16],r=[];for(let t=0;t<n.length;t+=1)r[t]=Cg(Zp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(65536&i[0]){let o;for(n=e[16],o=0;o<n.length;o+=1){const s=Zp(e,n,o);r[o]?r[o].p(s,i):(r[o]=Cg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function Eg(e){let t,n,r=e[72].reason+"";return{c(){t=g("span"),n=y(r),k(t,"class","reason svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){65536&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&h(t)}}}function Cg(e){let t,n,r,i,o,s=e[72].ip+"",a=e[72].reason&&Eg(e);return{c(){t=g("div"),n=g("span"),r=y(s),i=w(),a&&a.c(),o=w(),k(n,"class","ip svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,s){f(e,t,s),d(t,n),d(n,r),d(t,i),a&&a.m(t,null),d(t,o)},p(e,n){65536&n[0]&&s!==(s=e[72].ip+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Eg(e),a.c(),a.m(t,o)):a&&(a.d(1),a=null)},d(e){e&&h(t),a&&a.d()}}}function xg(e){let t,n,i,o,s,a,l,c,u,p,m,v,b;function E(e,t){return e[19]&&e[19].length>0?Sg:Bg}let x=E(e),B=x(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Allowed Event Kinds",o=w(),s=g("div"),a=g("input"),l=w(),c=g("button"),u=y("Allow Kind"),p=w(),m=g("div"),B.c(),k(i,"class","svelte-1y8wjwc"),k(a,"type","number"),k(a,"placeholder","Kind number"),k(a,"class","svelte-1y8wjwc"),c.disabled=e[2],k(c,"class","svelte-1y8wjwc"),k(s,"class","add-form svelte-1y8wjwc"),k(m,"class","list svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(t,"class","kinds-section")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),C(a,e[20]),d(s,l),d(s,c),d(c,u),d(n,p),d(n,m),B.m(m,null),v||(b=[A(a,"input",e[53]),A(c,"click",e[30])],v=!0)},p(e,t){1048576&t[0]&&I(a.value)!==e[20]&&C(a,e[20]),4&t[0]&&(c.disabled=e[2]),x===(x=E(e))&&B?B.p(e,t):(B.d(1),B=x(e),B&&(B.c(),B.m(m,null)))},d(e){e&&h(t),B.d(),v=!1,r(b)}}}function Bg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No allowed kinds configured. All kinds are\n allowed by default.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Sg(e){let t,n=e[19],r=[];for(let t=0;t<n.length;t+=1)r[t]=Fg(Wp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(524288&i[0]|1&i[1]){let o;for(n=e[19],o=0;o<n.length;o+=1){const s=Wp(e,n,o);r[o]?r[o].p(s,i):(r[o]=Fg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function Fg(e){let t,n,r,i,o,s,a,l,c,u=e[75]+"";function p(){return e[54](e[75])}return{c(){t=g("div"),n=g("span"),r=y("Kind "),i=y(u),o=w(),s=g("button"),s.textContent="Remove",a=w(),k(n,"class","kind svelte-1y8wjwc"),k(s,"class","remove-btn svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,u){f(e,t,u),d(t,n),d(n,r),d(n,i),d(t,o),d(t,s),d(t,a),l||(c=A(s,"click",p),l=!0)},p(t,n){e=t,524288&n[0]&&u!==(u=e[75]+"")&&E(i,u)},d(e){e&&h(t),l=!1,c()}}}function Qg(e){let t,n,r,i,o,s,a,l,c,u;function p(e,t){return e[21]&&e[21].length>0?Rg:Dg}let m=p(e),v=m(e);return{c(){t=g("div"),n=g("div"),r=g("h3"),r.textContent="Events Needing Moderation",i=w(),o=g("button"),s=y("Refresh"),a=w(),l=g("div"),v.c(),k(r,"class","svelte-1y8wjwc"),o.disabled=e[2],k(l,"class","list svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(t,"class","moderation-section")},m(h,p){f(h,t,p),d(t,n),d(n,r),d(n,i),d(n,o),d(o,s),d(n,a),d(n,l),v.m(l,null),c||(u=A(o,"click",e[24]),c=!0)},p(e,t){4&t[0]&&(o.disabled=e[2]),m===(m=p(e))&&v?v.p(e,t):(v.d(1),v=m(e),v&&(v.c(),v.m(l,null)))},d(e){e&&h(t),v.d(),c=!1,u()}}}function Dg(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No events need moderation at this time.</p>",k(n,"class","no-items svelte-1y8wjwc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Rg(e){let t,n=e[21],r=[];for(let t=0;t<n.length;t+=1)r[t]=Pg(zp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(2097152&i[0]|12&i[1]){let o;for(n=e[21],o=0;o<n.length;o+=1){const s=zp(e,n,o);r[o]?r[o].p(s,i):(r[o]=Pg(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function $g(e){let t,n,r=e[72].reason+"";return{c(){t=g("span"),n=y(r),k(t,"class","reason svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){2097152&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&h(t)}}}function Pg(e){let t,n,i,o,s,a,l,c,u,p,m,v,b=e[72].id+"",I=e[72].reason&&$g(e);function C(){return e[55](e[72])}function x(){return e[56](e[72])}return{c(){t=g("div"),n=g("span"),i=y(b),o=w(),I&&I.c(),s=w(),a=g("div"),l=g("button"),l.textContent="Allow",c=w(),u=g("button"),u.textContent="Ban",p=w(),k(n,"class","event-id svelte-1y8wjwc"),k(l,"class","svelte-1y8wjwc"),k(u,"class","svelte-1y8wjwc"),k(a,"class","actions svelte-1y8wjwc"),k(t,"class","list-item svelte-1y8wjwc")},m(e,r){f(e,t,r),d(t,n),d(n,i),d(t,o),I&&I.m(t,null),d(t,s),d(t,a),d(a,l),d(a,c),d(a,u),d(t,p),m||(v=[A(l,"click",C),A(u,"click",x)],m=!0)},p(n,r){e=n,2097152&r[0]&&b!==(b=e[72].id+"")&&E(i,b),e[72].reason?I?I.p(e,r):(I=$g(e),I.c(),I.m(t,s)):I&&(I.d(1),I=null)},d(e){e&&h(t),I&&I.d(),m=!1,r(v)}}}function Ug(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E,x,B,S,F,Q,D,R,$,P,U,T,N,L;function O(e,t){return e[2]?Ng:Tg}let M=O(e),_=M(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Relay Configuration",o=w(),s=g("div"),a=g("button"),l=y("🔄 Refresh from Relay Info"),c=w(),u=g("div"),p=g("div"),m=g("label"),m.textContent="Relay Name",v=w(),b=g("input"),I=w(),E=g("div"),x=g("label"),x.textContent="Relay Description",B=w(),S=g("textarea"),F=w(),Q=g("div"),D=g("label"),D.textContent="Relay Icon URL",R=w(),$=g("input"),P=w(),U=g("div"),T=g("button"),_.c(),k(i,"class","svelte-1y8wjwc"),a.disabled=e[2],k(a,"class","refresh-btn svelte-1y8wjwc"),k(s,"class","config-actions svelte-1y8wjwc"),k(m,"for","relay-name"),k(m,"class","svelte-1y8wjwc"),k(b,"id","relay-name"),k(b,"type","text"),k(b,"placeholder","Enter relay name"),k(b,"class","svelte-1y8wjwc"),k(p,"class","form-group svelte-1y8wjwc"),k(x,"for","relay-description"),k(x,"class","svelte-1y8wjwc"),k(S,"id","relay-description"),k(S,"placeholder","Enter relay description"),k(S,"class","svelte-1y8wjwc"),k(E,"class","form-group svelte-1y8wjwc"),k(D,"for","relay-icon"),k(D,"class","svelte-1y8wjwc"),k($,"id","relay-icon"),k($,"type","url"),k($,"placeholder","Enter icon URL"),k($,"class","svelte-1y8wjwc"),k(Q,"class","form-group svelte-1y8wjwc"),T.disabled=e[2],k(T,"class","update-all-btn svelte-1y8wjwc"),k(U,"class","config-update-section svelte-1y8wjwc"),k(u,"class","config-form svelte-1y8wjwc"),k(n,"class","section svelte-1y8wjwc"),k(t,"class","relay-section")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(n,c),d(n,u),d(u,p),d(p,m),d(p,v),d(p,b),C(b,e[0].relay_name),d(u,I),d(u,E),d(E,x),d(E,B),d(E,S),C(S,e[0].relay_description),d(u,F),d(u,Q),d(Q,D),d(Q,R),d(Q,$),C($,e[0].relay_icon),d(u,P),d(u,U),d(U,T),_.m(T,null),N||(L=[A(a,"click",e[23]),A(b,"input",e[57]),A(S,"input",e[58]),A($,"input",e[59]),A(T,"click",e[32])],N=!0)},p(e,t){4&t[0]&&(a.disabled=e[2]),1&t[0]&&b.value!==e[0].relay_name&&C(b,e[0].relay_name),1&t[0]&&C(S,e[0].relay_description),1&t[0]&&$.value!==e[0].relay_icon&&C($,e[0].relay_icon),M!==(M=O(e))&&(_.d(1),_=M(e),_&&(_.c(),_.m(T,null))),4&t[0]&&(T.disabled=e[2])},d(e){e&&h(t),_.d(),N=!1,r(L)}}}function Tg(e){let t;return{c(){t=y("💾 Update Configuration")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Ng(e){let t;return{c(){t=y("⏳ Updating...")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Lg(t){let n,i,o,s,a,l,c,u,p,m,v,b,I,E,C,x,B,S,F,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V=t[3]&&rg(t),Y="pubkeys"===t[1]&&ig(t),z="events"===t[1]&&hg(t),W="ips"===t[1]&&bg(t),Z="kinds"===t[1]&&xg(t),X="moderation"===t[1]&&Qg(t),ee="relay"===t[1]&&Ug(t);return{c(){n=g("div"),i=g("div"),i.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>',o=w(),V&&V.c(),s=w(),a=g("div"),l=g("button"),c=y("Pubkeys"),p=w(),m=g("button"),v=y("Events"),I=w(),E=g("button"),C=y("IPs"),B=w(),S=g("button"),F=y("Kinds"),D=w(),R=g("button"),$=y("Moderation"),U=w(),T=g("button"),N=y("Relay Config"),O=w(),M=g("div"),Y&&Y.c(),_=w(),z&&z.c(),H=w(),W&&W.c(),j=w(),Z&&Z.c(),G=w(),X&&X.c(),q=w(),ee&&ee.c(),k(i,"class","header svelte-1y8wjwc"),k(l,"class",u="tab "+("pubkeys"===t[1]?"active":"")+" svelte-1y8wjwc"),k(m,"class",b="tab "+("events"===t[1]?"active":"")+" svelte-1y8wjwc"),k(E,"class",x="tab "+("ips"===t[1]?"active":"")+" svelte-1y8wjwc"),k(S,"class",Q="tab "+("kinds"===t[1]?"active":"")+" svelte-1y8wjwc"),k(R,"class",P="tab "+("moderation"===t[1]?"active":"")+" svelte-1y8wjwc"),k(T,"class",L="tab "+("relay"===t[1]?"active":"")+" svelte-1y8wjwc"),k(a,"class","tabs svelte-1y8wjwc"),k(M,"class","tab-content svelte-1y8wjwc")},m(e,r){f(e,n,r),d(n,i),d(n,o),V&&V.m(n,null),d(n,s),d(n,a),d(a,l),d(l,c),d(a,p),d(a,m),d(m,v),d(a,I),d(a,E),d(E,C),d(a,B),d(a,S),d(S,F),d(a,D),d(a,R),d(R,$),d(a,U),d(a,T),d(T,N),d(n,O),d(n,M),Y&&Y.m(M,null),d(M,_),z&&z.m(M,null),d(M,H),W&&W.m(M,null),d(M,j),Z&&Z.m(M,null),d(M,G),X&&X.m(M,null),d(M,q),ee&&ee.m(M,null),K||(J=[A(l,"click",t[37]),A(m,"click",t[38]),A(E,"click",t[39]),A(S,"click",t[40]),A(R,"click",t[41]),A(T,"click",t[42])],K=!0)},p(e,t){e[3]?V?V.p(e,t):(V=rg(e),V.c(),V.m(n,s)):V&&(V.d(1),V=null),2&t[0]&&u!==(u="tab "+("pubkeys"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(l,"class",u),2&t[0]&&b!==(b="tab "+("events"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(m,"class",b),2&t[0]&&x!==(x="tab "+("ips"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(E,"class",x),2&t[0]&&Q!==(Q="tab "+("kinds"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(S,"class",Q),2&t[0]&&P!==(P="tab "+("moderation"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(R,"class",P),2&t[0]&&L!==(L="tab "+("relay"===e[1]?"active":"")+" svelte-1y8wjwc")&&k(T,"class",L),"pubkeys"===e[1]?Y?Y.p(e,t):(Y=ig(e),Y.c(),Y.m(M,_)):Y&&(Y.d(1),Y=null),"events"===e[1]?z?z.p(e,t):(z=hg(e),z.c(),z.m(M,H)):z&&(z.d(1),z=null),"ips"===e[1]?W?W.p(e,t):(W=bg(e),W.c(),W.m(M,j)):W&&(W.d(1),W=null),"kinds"===e[1]?Z?Z.p(e,t):(Z=xg(e),Z.c(),Z.m(M,G)):Z&&(Z.d(1),Z=null),"moderation"===e[1]?X?X.p(e,t):(X=Qg(e),X.c(),X.m(M,q)):X&&(X.d(1),X=null),"relay"===e[1]?ee?ee.p(e,t):(ee=Ug(e),ee.c(),ee.m(M,null)):ee&&(ee.d(1),ee=null)},i:e,o:e,d(e){e&&h(n),V&&V.d(),Y&&Y.d(),z&&z.d(),W&&W.d(),Z&&Z.d(),X&&X.d(),ee&&ee.d(),K=!1,r(J)}}}function Og(e,t,n){let{userSigner:r}=t,{userPubkey:i}=t,o="pubkeys",s=!1,a="",l="info",c=[],u="",d="",f=[],h="",p="",g=[],m="",y="",w="",v="",A=[],b="",k="",E=[],C="",x=[],B={relay_name:"",relay_description:"",relay_icon:""};async function S(){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,B={relay_name:t.name||"",relay_description:t.description||"",relay_icon:t.icon||""}),console.log("Updated relayConfig:",B),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 F(e,t=[]){try{n(2,s=!0),n(3,a="");const o={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(!i)throw new Error("No user pubkey available for authentication.");const n=window.location.origin+t,o={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",n],["method",e]],content:"",pubkey:i},s=await r.signEvent(o),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(o)});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 Q(){try{n(5,c=await F("listbannedpubkeys"))}catch(e){console.error("Failed to load banned pubkeys:",e)}}async function D(){try{n(8,f=await F("listallowedpubkeys"))}catch(e){console.error("Failed to load allowed pubkeys:",e)}}async function R(){try{n(11,g=await F("listbannedevents"))}catch(e){console.error("Failed to load banned events:",e)}}async function P(){try{n(16,A=await F("listblockedips"))}catch(e){console.error("Failed to load blocked IPs:",e)}}async function U(){try{n(19,E=await F("listallowedkinds"))}catch(e){console.error("Failed to load allowed kinds:",e)}}async function T(){try{n(2,s=!0),n(21,x=await F("listeventsneedingmoderation")),console.log("Loaded events needing moderation:",x)}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,x=[])}finally{n(2,s=!1)}}async function N(e){try{await F("disallowkind",[e]),n(3,a="Kind disallowed successfully"),n(4,l="success"),await U()}catch(e){console.error("Failed to disallow kind:",e)}}async function L(e){try{await F("allowevent",[e,"Approved from moderation queue"]),n(3,a="Event allowed successfully"),n(4,l="success"),await T()}catch(e){console.error("Failed to allow event from moderation:",e)}}async function O(e){try{await F("banevent",[e,"Banned from moderation queue"]),n(3,a="Event banned successfully"),n(4,l="success"),await T()}catch(e){console.error("Failed to ban event from moderation:",e)}}$(()=>{setTimeout(()=>{S()},100)}),async function(){await Promise.all([Q(),D(),R(),P(),U()])}();return e.$$set=e=>{"userSigner"in e&&n(35,r=e.userSigner),"userPubkey"in e&&n(36,i=e.userPubkey)},e.$$.update=()=>{1&e.$$.dirty[0]&&console.log("relayConfig changed:",B)},[B,o,s,a,l,c,u,d,f,h,p,g,m,y,w,v,A,b,k,E,C,x,[],S,T,async function(){if(u)try{await F("banpubkey",[u,d]),n(3,a="Pubkey banned successfully"),n(4,l="success"),n(6,u=""),n(7,d=""),await Q()}catch(e){console.error("Failed to ban pubkey:",e)}},async function(){if(h)try{await F("allowpubkey",[h,p]),n(3,a="Pubkey allowed successfully"),n(4,l="success"),n(9,h=""),n(10,p=""),await D()}catch(e){console.error("Failed to allow pubkey:",e)}},async function(){if(m)try{await F("banevent",[m,y]),n(3,a="Event banned successfully"),n(4,l="success"),n(12,m=""),n(13,y=""),await R()}catch(e){console.error("Failed to ban event:",e)}},async function(){if(w)try{await F("allowevent",[w,v]),n(3,a="Event allowed successfully"),n(4,l="success"),n(14,w=""),n(15,v="")}catch(e){console.error("Failed to allow event:",e)}},async function(){if(b)try{await F("blockip",[b,k]),n(3,a="IP blocked successfully"),n(4,l="success"),n(17,b=""),n(18,k=""),await P()}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 F("allowkind",[e]),n(3,a="Kind allowed successfully"),n(4,l="success"),n(20,C=""),await U()}catch(e){console.error("Failed to allow kind:",e)}},N,async function(){try{n(2,s=!0),n(3,a="");const e=[];if(B.relay_name&&e.push(F("changerelayname",[B.relay_name])),B.relay_description&&e.push(F("changerelaydescription",[B.relay_description])),B.relay_icon&&e.push(F("changerelayicon",[B.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 S()}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)}},L,O,r,i,()=>n(1,o="pubkeys"),()=>n(1,o="events"),()=>n(1,o="ips"),()=>n(1,o="kinds"),()=>{n(1,o="moderation"),x&&0!==x.length||T()},()=>n(1,o="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(){m=this.value,n(12,m)},function(){y=this.value,n(13,y)},function(){w=this.value,n(14,w)},function(){v=this.value,n(15,v)},function(){b=this.value,n(17,b)},function(){k=this.value,n(18,k)},function(){C=I(this.value),n(20,C)},e=>N(e),e=>L(e.id),e=>O(e.id),function(){B.relay_name=this.value,n(0,B)},function(){B.relay_description=this.value,n(0,B)},function(){B.relay_icon=this.value,n(0,B)}]}class Mg extends ce{constructor(e){super(),le(this,e,Og,Lg,o,{userSigner:35,userPubkey:36},null,[-1,-1,-1])}}function _g(e){let t,n;return{c(){t=g("span"),n=y(e[3]),k(t,"class","permission-badge svelte-1qkhxam")},m(e,r){f(e,t,r),d(t,n)},p(e,t){8&t&&E(n,e[3])},d(e){e&&h(t)}}}function Hg(t){let n,r,i;return{c(){n=g("button"),n.textContent="Log in",k(n,"class","login-btn svelte-1qkhxam")},m(e,o){f(e,n,o),r||(i=A(n,"click",t[7]),r=!0)},p:e,d(e){e&&h(n),r=!1,i()}}}function jg(e){let t,n,r,i,o,s,a=(e[4]?.name||e[5])+"";function l(e,t){return e[4]?.picture?qg:Gg}let c=l(e),u=c(e);return{c(){t=g("button"),u.c(),n=w(),r=g("span"),i=y(a),k(r,"class","user-name svelte-1qkhxam"),k(t,"class","user-profile-btn svelte-1qkhxam")},m(a,l){f(a,t,l),u.m(t,null),d(t,n),d(t,r),d(r,i),o||(s=A(t,"click",e[6]),o=!0)},p(e,r){c===(c=l(e))&&u?u.p(e,r):(u.d(1),u=c(e),u&&(u.c(),u.m(t,n))),48&r&&a!==(a=(e[4]?.name||e[5])+"")&&E(i,a)},d(e){e&&h(t),u.d(),o=!1,s()}}}function Gg(t){let n;return{c(){n=g("div"),n.textContent="👤",k(n,"class","user-avatar-placeholder svelte-1qkhxam")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function qg(e){let t,n;return{c(){t=g("img"),a(t.src,n=e[4].picture)||k(t,"src",n),k(t,"alt","User avatar"),k(t,"class","user-avatar svelte-1qkhxam")},m(e,n){f(e,t,n)},p(e,r){16&r&&!a(t.src,n=e[4].picture)&&k(t,"src",n)},d(e){e&&h(t)}}}function Kg(t){let n,r,i,o,s,l,c,u,p,m,v=t[1]&&t[2]&&_g(t);function A(e,t){return e[1]?jg:Hg}let b=A(t),I=b(t);return{c(){n=g("header"),r=g("div"),i=g("img"),s=w(),l=g("div"),c=g("span"),u=y("ORLY? dashboard\n "),v&&v.c(),p=w(),m=g("div"),I.c(),a(i.src,o="/orly.png")||k(i,"src","/orly.png"),k(i,"alt","ORLY Logo"),k(i,"class","logo svelte-1qkhxam"),k(c,"class","app-title svelte-1qkhxam"),k(l,"class","header-title svelte-1qkhxam"),k(m,"class","header-buttons svelte-1qkhxam"),k(r,"class","header-content svelte-1qkhxam"),k(n,"class","main-header svelte-1qkhxam"),F(n,"dark-theme",t[0])},m(e,t){f(e,n,t),d(n,r),d(r,i),d(r,s),d(r,l),d(l,c),d(c,u),v&&v.m(c,null),d(r,p),d(r,m),I.m(m,null)},p(e,[t]){e[1]&&e[2]?v?v.p(e,t):(v=_g(e),v.c(),v.m(c,null)):v&&(v.d(1),v=null),b===(b=A(e))&&I?I.p(e,t):(I.d(1),I=b(e),I&&(I.c(),I.m(m,null))),1&t&&F(n,"dark-theme",e[0])},i:e,o:e,d(e){e&&h(n),v&&v.d(),I.d()}}}function Jg(e,t,n){let{isDarkTheme:r=!1}=t,{isLoggedIn:i=!1}=t,{userRole:o=""}=t,{currentEffectiveRole:s=""}=t,{userProfile:a=null}=t,{userPubkey:l=""}=t;const c=U();return e.$$set=e=>{"isDarkTheme"in e&&n(0,r=e.isDarkTheme),"isLoggedIn"in e&&n(1,i=e.isLoggedIn),"userRole"in e&&n(2,o=e.userRole),"currentEffectiveRole"in e&&n(3,s=e.currentEffectiveRole),"userProfile"in e&&n(4,a=e.userProfile),"userPubkey"in e&&n(5,l=e.userPubkey)},[r,i,o,s,a,l,function(){c("openSettingsDrawer")},function(){c("openLoginModal")}]}class Vg extends ce{constructor(e){super(),le(this,e,Jg,Kg,o,{isDarkTheme:0,isLoggedIn:1,userRole:2,currentEffectiveRole:3,userProfile:4,userPubkey:5})}}function Yg(e,t,n){const r=e.slice();return r[10]=t[n],r}function zg(e){let t,n,i;function o(){return e[6](e[10])}function s(...t){return e[7](e[10],...t)}return{c(){t=g("span"),t.textContent="✕",k(t,"class","tab-close-icon svelte-wfmuj"),k(t,"role","button"),k(t,"tabindex","0")},m(e,r){f(e,t,r),n||(i=[A(t,"click",b(o)),A(t,"keydown",s)],n=!0)},p(t,n){e=t},d(e){e&&h(t),n=!1,r(i)}}}function Wg(e){let t,n,r,i,o,s,a,l,c,u,p=e[10].icon+"",m=e[10].label+"",v=e[10].isSearchTab&&zg(e);function b(){return e[8](e[10])}return{c(){t=g("button"),n=g("span"),r=y(p),i=w(),o=g("span"),s=y(m),a=w(),v&&v.c(),l=w(),k(n,"class","tab-icon svelte-wfmuj"),k(o,"class","tab-label svelte-wfmuj"),k(t,"class","tab svelte-wfmuj"),F(t,"active",e[2]===e[10].id)},m(e,h){f(e,t,h),d(t,n),d(n,r),d(t,i),d(t,o),d(o,s),d(t,a),v&&v.m(t,null),d(t,l),c||(u=A(t,"click",b),c=!0)},p(n,i){e=n,2&i&&p!==(p=e[10].icon+"")&&E(r,p),2&i&&m!==(m=e[10].label+"")&&E(s,m),e[10].isSearchTab?v?v.p(e,i):(v=zg(e),v.c(),v.m(t,l)):v&&(v.d(1),v=null),6&i&&F(t,"active",e[2]===e[10].id)},d(e){e&&h(t),v&&v.d(),c=!1,u()}}}function Zg(e){let t,n,r,i,o,s,a,l;return{c(){t=g("a"),n=m("svg"),r=m("path"),i=m("path"),o=w(),s=g("span"),a=y("v"),l=y(e[3]),k(r,"d","M5 6h12v2h1.5c1.38 0 2.5 1.12 2.5 2.5v1c0 1.38-1.12 2.5-2.5 2.5H17v1c0 1.66-1.34 3-3 3H8c-1.66 0-3-1.34-3-3V6zm12 6h1.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5H17v2z"),k(i,"d","M9 9c1.5 0 3 .5 3 2.5S10.5 14 9 14c0-1.5.5-3.5 2-4.5"),k(i,"stroke","currentColor"),k(i,"stroke-width","1"),k(i,"fill","none"),k(n,"class","version-icon svelte-wfmuj"),k(n,"viewBox","0 0 24 24"),k(n,"fill","currentColor"),k(n,"xmlns","http://www.w3.org/2000/svg"),k(s,"class","version-text svelte-wfmuj"),k(t,"href","https://next.orly.dev"),k(t,"target","_blank"),k(t,"rel","noopener noreferrer"),k(t,"class","version-link svelte-wfmuj")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(n,i),d(t,o),d(t,s),d(s,a),d(s,l)},p(e,t){8&t&&E(l,e[3])},d(e){e&&h(t)}}}function Xg(t){let n,r,i,o,s=t[1],a=[];for(let e=0;e<s.length;e+=1)a[e]=Wg(Yg(t,s,e));let l=t[3]&&Zg(t);return{c(){n=g("aside"),r=g("div"),i=g("div");for(let e=0;e<a.length;e+=1)a[e].c();o=w(),l&&l.c(),k(i,"class","tabs svelte-wfmuj"),k(r,"class","sidebar-content svelte-wfmuj"),k(n,"class","sidebar svelte-wfmuj"),F(n,"dark-theme",t[0])},m(e,t){f(e,n,t),d(n,r),d(r,i);for(let e=0;e<a.length;e+=1)a[e]&&a[e].m(i,null);d(n,o),l&&l.m(n,null)},p(e,[t]){if(54&t){let n;for(s=e[1],n=0;n<s.length;n+=1){const r=Yg(e,s,n);a[n]?a[n].p(r,t):(a[n]=Wg(r),a[n].c(),a[n].m(i,null))}for(;n<a.length;n+=1)a[n].d(1);a.length=s.length}e[3]?l?l.p(e,t):(l=Zg(e),l.c(),l.m(n,null)):l&&(l.d(1),l=null),1&t&&F(n,"dark-theme",e[0])},i:e,o:e,d(e){e&&h(n),p(a,e),l&&l.d()}}}function em(e,t,n){let{isDarkTheme:r=!1}=t,{tabs:i=[]}=t,{selectedTab:o=""}=t,{version:s=""}=t;const a=U();function l(e){a("selectTab",e)}function c(e){a("closeSearchTab",e)}return e.$$set=e=>{"isDarkTheme"in e&&n(0,r=e.isDarkTheme),"tabs"in e&&n(1,i=e.tabs),"selectedTab"in e&&n(2,o=e.selectedTab),"version"in e&&n(3,s=e.version)},[r,i,o,s,l,c,e=>c(e.id),(e,t)=>"Enter"===t.key&&c(e.id),e=>l(e.id)]}class tm extends ce{constructor(e){super(),le(this,e,em,Xg,o,{isDarkTheme:0,tabs:1,selectedTab:2,version:3})}}function nm(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in to access export functionality.",i=w(),o=g("button"),o.textContent="Log In",k(r,"class","svelte-jzrdtj"),k(o,"class","login-btn svelte-jzrdtj"),k(n,"class","login-prompt svelte-jzrdtj")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[5]),s=!0)},p:e,d(e){e&&h(n),s=!1,a()}}}function rm(e){let t,n,r=e[0]&&im(e),i=e[1]&&om(e);return{c(){r&&r.c(),t=w(),i&&i.c(),n=v()},m(e,o){r&&r.m(e,o),f(e,t,o),i&&i.m(e,o),f(e,n,o)},p(e,o){e[0]?r?r.p(e,o):(r=im(e),r.c(),r.m(t.parentNode,t)):r&&(r.d(1),r=null),e[1]?i?i.p(e,o):(i=om(e),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},d(e){r&&r.d(e),e&&h(t),i&&i.d(e),e&&h(n)}}}function im(t){let n,r,i,o,s,a,l,c;return{c(){n=g("div"),r=g("h3"),r.textContent="Export My Events",i=w(),o=g("p"),o.textContent="Download your personal events as a JSONL file.",s=w(),a=g("button"),a.textContent="📤 Export My Events",k(r,"class","svelte-jzrdtj"),k(o,"class","svelte-jzrdtj"),k(a,"class","export-btn svelte-jzrdtj"),k(n,"class","export-section svelte-jzrdtj")},m(e,u){f(e,n,u),d(n,r),d(n,i),d(n,o),d(n,s),d(n,a),l||(c=A(a,"click",t[3]),l=!0)},p:e,d(e){e&&h(n),l=!1,c()}}}function om(t){let n,r,i,o,s,a,l,c;return{c(){n=g("div"),r=g("h3"),r.textContent="Export All Events",i=w(),o=g("p"),o.textContent="Download the complete database as a JSONL file. This includes\n all events from all users.",s=w(),a=g("button"),a.textContent="📤 Export All Events",k(r,"class","svelte-jzrdtj"),k(o,"class","svelte-jzrdtj"),k(a,"class","export-btn svelte-jzrdtj"),k(n,"class","export-section svelte-jzrdtj")},m(e,u){f(e,n,u),d(n,r),d(n,i),d(n,o),d(n,s),d(n,a),l||(c=A(a,"click",t[4]),l=!0)},p:e,d(e){e&&h(n),l=!1,c()}}}function sm(t){let n;function r(e,t){return e[2]?rm:nm}let i=r(t),o=i(t);return{c(){o.c(),n=v()},m(e,t){o.m(e,t),f(e,n,t)},p(e,[t]){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n.parentNode,n)))},i:e,o:e,d(e){o.d(e),e&&h(n)}}}function am(e,t,n){let r,i,{isLoggedIn:o=!1}=t,{currentEffectiveRole:s=""}=t,{aclMode:a=""}=t;const l=U();return e.$$set=e=>{"isLoggedIn"in e&&n(0,o=e.isLoggedIn),"currentEffectiveRole"in e&&n(6,s=e.currentEffectiveRole),"aclMode"in e&&n(7,a=e.aclMode)},e.$$.update=()=>{129&e.$$.dirty&&n(2,r="none"===a||o),192&e.$$.dirty&&n(1,i="none"===a||"admin"===s||"owner"===s)},[o,i,r,function(){l("exportMyEvents")},function(){l("exportAllEvents")},function(){l("openLoginModal")},s,a]}class lm extends ce{constructor(e){super(),le(this,e,am,sm,o,{isLoggedIn:0,currentEffectiveRole:6,aclMode:7})}}function cm(t){let n,r,i,o,s,a,l,c;return{c(){n=g("div"),r=g("h3"),r.textContent="Import Events",i=w(),o=g("p"),o.textContent="Please log in to access import functionality.",s=w(),a=g("button"),a.textContent="Log In",k(r,"class","recovery-header svelte-nonyqh"),k(o,"class","recovery-description svelte-nonyqh"),k(a,"class","login-btn svelte-nonyqh"),k(n,"class","login-prompt svelte-nonyqh")},m(e,u){f(e,n,u),d(n,r),d(n,i),d(n,o),d(n,s),d(n,a),l||(c=A(a,"click",t[6]),l=!0)},p:e,d(e){e&&h(n),l=!1,c()}}}function um(t){let n;return{c(){n=g("div"),n.innerHTML='<h3 class="recovery-header svelte-nonyqh">Import Events</h3> \n <p class="recovery-description svelte-nonyqh">Admin or owner permission required for import functionality.</p>',k(n,"class","permission-denied svelte-nonyqh")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function dm(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E=e[2]&&fm(e);return{c(){t=g("h3"),t.textContent="Import Events",n=w(),i=g("p"),i.textContent="Upload a JSONL file to import events into the database.",o=w(),s=g("div"),a=g("input"),l=w(),c=g("div"),u=g("button"),p=y("Import Events"),v=w(),E&&E.c(),k(t,"class","svelte-nonyqh"),k(i,"class","svelte-nonyqh"),k(a,"type","file"),k(a,"id","import-file"),k(a,"accept",".jsonl,.txt"),k(a,"class","svelte-nonyqh"),k(u,"class","import-btn svelte-nonyqh"),u.disabled=m=!e[1]||"Uploading..."===e[2],k(c,"class","import-row svelte-nonyqh"),k(s,"class","recovery-controls-card svelte-nonyqh")},m(r,h){f(r,t,h),f(r,n,h),f(r,i,h),f(r,o,h),f(r,s,h),d(s,a),d(s,l),d(s,c),d(c,u),d(u,p),d(c,v),E&&E.m(c,null),b||(I=[A(a,"change",e[4]),A(u,"click",e[5])],b=!0)},p(e,t){6&t&&m!==(m=!e[1]||"Uploading..."===e[2])&&(u.disabled=m),e[2]?E?E.p(e,t):(E=fm(e),E.c(),E.m(c,null)):E&&(E.d(1),E=null)},d(e){e&&h(t),e&&h(n),e&&h(i),e&&h(o),e&&h(s),E&&E.d(),b=!1,r(I)}}}function fm(e){let t,n;return{c(){t=g("span"),n=y(e[2]),k(t,"class","import-message svelte-nonyqh"),F(t,"uploading","Uploading..."===e[2]),F(t,"success","Upload complete"===e[2]),F(t,"error",e[2].startsWith("Import failed")||e[2].startsWith("Admin")||e[2].startsWith("Please"))},m(e,r){f(e,t,r),d(t,n)},p(e,r){4&r&&E(n,e[2]),4&r&&F(t,"uploading","Uploading..."===e[2]),4&r&&F(t,"success","Upload complete"===e[2]),4&r&&F(t,"error",e[2].startsWith("Import failed")||e[2].startsWith("Admin")||e[2].startsWith("Please"))},d(e){e&&h(t)}}}function hm(t){let n;function r(e,t){return e[3]?dm:e[0]?um:cm}let i=r(t),o=i(t);return{c(){n=g("div"),o.c(),k(n,"class","import-section svelte-nonyqh")},m(e,t){f(e,n,t),o.m(n,null)},p(e,[t]){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n,null)))},i:e,o:e,d(e){e&&h(n),o.d()}}}function pm(e,t,n){let r,{isLoggedIn:i=!1}=t,{currentEffectiveRole:o=""}=t,{selectedFile:s=null}=t,{aclMode:a=""}=t,{importMessage:l=""}=t;const c=U();return e.$$set=e=>{"isLoggedIn"in e&&n(0,i=e.isLoggedIn),"currentEffectiveRole"in e&&n(7,o=e.currentEffectiveRole),"selectedFile"in e&&n(1,s=e.selectedFile),"aclMode"in e&&n(8,a=e.aclMode),"importMessage"in e&&n(2,l=e.importMessage)},e.$$.update=()=>{385&e.$$.dirty&&n(3,r="none"===a||i&&("admin"===o||"owner"===o))},[i,s,l,r,function(e){c("fileSelect",e)},function(){c("importEvents")},function(){c("openLoginModal")},o,a]}class gm extends ce{constructor(e){super(),le(this,e,pm,hm,o,{isLoggedIn:0,currentEffectiveRole:7,selectedFile:1,aclMode:8,importMessage:2})}}const mm={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 ym(e,t=null){if(!e||"string"!=typeof e)return!1;return!!/^[0-9a-fA-F]+$/.test(e)&&(!t||e.length===t)}function wm(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 vm(e){return Math.floor(new Date(e).getTime()/1e3)}function Am(e,t,n){const r=e.slice();return r[62]=t[n],r[64]=n,r}function bm(e,t,n){const r=e.slice();return r[65]=t[n],r}function km(e,t,n){const r=e.slice();return r[68]=t[n],r}function Im(e,t,n){const r=e.slice();return r[71]=t[n],r}function Em(e,t,n){const r=e.slice();return r[71]=t[n].kind,r[74]=t[n].name,r}function Cm(e){let t,n,r,i,o,s,a=e[20],l=[];for(let t=0;t<a.length;t+=1)l[t]=xm(Em(e,a,t));return{c(){t=g("div"),n=g("input"),r=w(),i=g("div");for(let e=0;e<l.length;e+=1)l[e].c();k(n,"type","text"),k(n,"placeholder","Search kinds..."),k(n,"class","filter-input kind-search svelte-1a1v6k0"),k(i,"class","kinds-list svelte-1a1v6k0"),k(t,"class","kinds-picker svelte-1a1v6k0")},m(a,c){f(a,t,c),d(t,n),C(n,e[9]),d(t,r),d(t,i);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(i,null);o||(s=A(n,"input",e[40]),o=!0)},p(e,t){if(512&t[0]&&n.value!==e[9]&&C(n,e[9]),9437186&t[0]){let n;for(a=e[20],n=0;n<a.length;n+=1){const r=Em(e,a,n);l[n]?l[n].p(r,t):(l[n]=xm(r),l[n].c(),l[n].m(i,null))}for(;n<l.length;n+=1)l[n].d(1);l.length=a.length}},d(e){e&&h(t),p(l,e),o=!1,s()}}}function xm(e){let t,n,r,i,o,s,a,l,c,u,p,m,v=e[71]+"",b=e[74]+"";function I(){return e[41](e[71])}return{c(){t=g("label"),n=g("input"),i=w(),o=g("span"),s=y(v),a=w(),l=g("span"),c=y(b),u=w(),k(n,"type","checkbox"),n.checked=r=e[1].includes(e[71]),k(n,"class","svelte-1a1v6k0"),k(o,"class","kind-number svelte-1a1v6k0"),k(l,"class","kind-name svelte-1a1v6k0"),k(t,"class","kind-checkbox svelte-1a1v6k0")},m(e,r){f(e,t,r),d(t,n),d(t,i),d(t,o),d(o,s),d(t,a),d(t,l),d(l,c),d(t,u),p||(m=A(n,"change",I),p=!0)},p(t,i){e=t,1048578&i[0]&&r!==(r=e[1].includes(e[71]))&&(n.checked=r),1048576&i[0]&&v!==(v=e[71]+"")&&E(s,v),1048576&i[0]&&b!==(b=e[74]+"")&&E(c,b)},d(e){e&&h(t),p=!1,m()}}}function Bm(e){let t,n=e[1],r=[];for(let t=0;t<n.length;t+=1)r[t]=Sm(Im(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","chips-container svelte-1a1v6k0")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(16777218&i[0]){let o;for(n=e[1],o=0;o<n.length;o+=1){const s=Im(e,n,o);r[o]?r[o].p(s,i):(r[o]=Sm(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Sm(e){let t,n,r,i,o,s,a,l,c,u,p=e[71]+"",m=(mm[e[71]]||`Kind ${e[71]}`)+"";function v(){return e[42](e[71])}return{c(){t=g("div"),n=g("span"),r=y(p),i=y(": "),o=y(m),s=w(),a=g("button"),a.textContent="×",l=w(),k(n,"class","chip-text svelte-1a1v6k0"),k(a,"class","chip-remove svelte-1a1v6k0"),k(t,"class","chip svelte-1a1v6k0")},m(e,h){f(e,t,h),d(t,n),d(n,r),d(n,i),d(n,o),d(t,s),d(t,a),d(t,l),c||(u=A(a,"click",v),c=!0)},p(t,n){e=t,2&n[0]&&p!==(p=e[71]+"")&&E(r,p),2&n[0]&&m!==(m=(mm[e[71]]||`Kind ${e[71]}`)+"")&&E(o,m)},d(e){e&&h(t),c=!1,u()}}}function Fm(e){let t,n;return{c(){t=g("div"),n=y(e[17]),k(t,"class","error-message svelte-1a1v6k0")},m(e,r){f(e,t,r),d(t,n)},p(e,t){131072&t[0]&&E(n,e[17])},d(e){e&&h(t)}}}function Qm(e){let t,n=e[2],r=[];for(let t=0;t<n.length;t+=1)r[t]=Dm(km(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","list-items svelte-1a1v6k0")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(67108868&i[0]){let o;for(n=e[2],o=0;o<n.length;o+=1){const s=km(e,n,o);r[o]?r[o].p(s,i):(r[o]=Dm(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Dm(e){let t,n,r,i,o,s,a,l,c=e[68]+"";function u(){return e[45](e[68])}return{c(){t=g("div"),n=g("span"),r=y(c),i=w(),o=g("button"),o.textContent="×",s=w(),k(n,"class","list-item-text svelte-1a1v6k0"),k(o,"class","list-item-remove svelte-1a1v6k0"),k(t,"class","list-item svelte-1a1v6k0")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(t,i),d(t,o),d(t,s),a||(l=A(o,"click",u),a=!0)},p(t,n){e=t,4&n[0]&&c!==(c=e[68]+"")&&E(r,c)},d(e){e&&h(t),a=!1,l()}}}function Rm(e){let t,n;return{c(){t=g("div"),n=y(e[18]),k(t,"class","error-message svelte-1a1v6k0")},m(e,r){f(e,t,r),d(t,n)},p(e,t){262144&t[0]&&E(n,e[18])},d(e){e&&h(t)}}}function $m(e){let t,n=e[3],r=[];for(let t=0;t<n.length;t+=1)r[t]=Pm(bm(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","list-items svelte-1a1v6k0")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(268435464&i[0]){let o;for(n=e[3],o=0;o<n.length;o+=1){const s=bm(e,n,o);r[o]?r[o].p(s,i):(r[o]=Pm(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Pm(e){let t,n,r,i,o,s,a,l,c=e[65]+"";function u(){return e[48](e[65])}return{c(){t=g("div"),n=g("span"),r=y(c),i=w(),o=g("button"),o.textContent="×",s=w(),k(n,"class","list-item-text svelte-1a1v6k0"),k(o,"class","list-item-remove svelte-1a1v6k0"),k(t,"class","list-item svelte-1a1v6k0")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(t,i),d(t,o),d(t,s),a||(l=A(o,"click",u),a=!0)},p(t,n){e=t,8&n[0]&&c!==(c=e[65]+"")&&E(r,c)},d(e){e&&h(t),a=!1,l()}}}function Um(e){let t,n;return{c(){t=g("div"),n=y(e[19]),k(t,"class","error-message svelte-1a1v6k0")},m(e,r){f(e,t,r),d(t,n)},p(e,t){524288&t[0]&&E(n,e[19])},d(e){e&&h(t)}}}function Tm(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=Nm(Am(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","list-items svelte-1a1v6k0")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(1073741840&i[0]){let o;for(n=e[4],o=0;o<n.length;o+=1){const s=Am(e,n,o);r[o]?r[o].p(s,i):(r[o]=Nm(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Nm(e){let t,n,r,i,o,s,a,l,c,u,p,m=e[62].name+"",v=e[62].value+"";function b(){return e[52](e[64])}return{c(){t=g("div"),n=g("span"),r=y("#"),i=y(m),o=y(": "),s=y(v),a=w(),l=g("button"),l.textContent="×",c=w(),k(n,"class","list-item-text svelte-1a1v6k0"),k(l,"class","list-item-remove svelte-1a1v6k0"),k(t,"class","list-item svelte-1a1v6k0")},m(e,h){f(e,t,h),d(t,n),d(n,r),d(n,i),d(n,o),d(n,s),d(t,a),d(t,l),d(t,c),u||(p=A(l,"click",b),u=!0)},p(t,n){e=t,16&n[0]&&m!==(m=e[62].name+"")&&E(i,m),16&n[0]&&v!==(v=e[62].value+"")&&E(s,v)},d(e){e&&h(t),u=!1,p()}}}function Lm(t){let n,r,i;return{c(){n=g("button"),n.textContent="×",k(n,"class","clear-timestamp-btn svelte-1a1v6k0")},m(e,o){f(e,n,o),r||(i=A(n,"click",t[53]),r=!0)},p:e,d(e){e&&h(n),r=!1,i()}}}function Om(t){let n,r,i;return{c(){n=g("button"),n.textContent="×",k(n,"class","clear-timestamp-btn svelte-1a1v6k0")},m(e,o){f(e,n,o),r||(i=A(n,"click",t[54]),r=!0)},p:e,d(e){e&&h(n),r=!1,i()}}}function Mm(e){let t,n,i,o,s,a,l,c,u,p=e[11]&&_m(e);return{c(){t=g("div"),n=g("label"),n.textContent="Filter JSON",i=w(),o=g("textarea"),s=w(),p&&p.c(),a=w(),l=g("button"),l.textContent="Apply JSON",k(n,"for","json-editor"),k(n,"class","svelte-1a1v6k0"),k(o,"id","json-editor"),k(o,"class","json-editor svelte-1a1v6k0"),k(o,"placeholder",'{"kinds": [1], "limit": 100}'),k(o,"rows","8"),k(l,"class","apply-json-btn svelte-1a1v6k0"),k(t,"class","json-editor-section svelte-1a1v6k0")},m(r,h){f(r,t,h),d(t,n),d(t,i),d(t,o),C(o,e[10]),d(t,s),p&&p.m(t,null),d(t,a),d(t,l),c||(u=[A(o,"input",e[56]),A(l,"click",e[22])],c=!0)},p(e,n){1024&n[0]&&C(o,e[10]),e[11]?p?p.p(e,n):(p=_m(e),p.c(),p.m(t,a)):p&&(p.d(1),p=null)},d(e){e&&h(t),p&&p.d(),c=!1,r(u)}}}function _m(e){let t,n;return{c(){t=g("div"),n=y(e[11]),k(t,"class","json-error svelte-1a1v6k0")},m(e,r){f(e,t,r),d(t,n)},p(e,t){2048&t[0]&&E(n,e[11])},d(e){e&&h(t)}}}function Hm(t){let n,i,o,s,a,l,c,u,p,m,v,b,x,B,S,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V,Y,z,W,Z,X,ee,te,ne,re,ie,oe,se,ae,le,ce,ue,de,fe,he,pe,ge,me,ye,we,ve,Ae,be,ke,Ie,Ee,Ce,xe,Be,Se,Fe,Qe,De,Re,$e,Pe,Ue,Te,Ne,Le,Oe,Me=t[12]?"▼":"▶",_e=t[1].length+"",He=t[12]&&Cm(t),je=t[1].length>0&&Bm(t),Ge=t[17]&&Fm(t),qe=t[2].length>0&&Qm(t),Ke=t[18]&&Rm(t),Je=t[3].length>0&&$m(t),Ve=t[19]&&Um(t),Ye=t[4].length>0&&Tm(t),ze=t[5]&&Lm(t),We=t[6]&&Om(t),Ze=t[8]&&Mm(t);return{c(){n=g("div"),i=g("div"),o=g("div"),s=g("label"),s.textContent="Search Text (NIP-50)",a=w(),l=g("div"),c=g("input"),u=w(),p=g("label"),p.textContent="Event Kinds",m=w(),v=g("div"),b=g("button"),x=y(Me),B=y(" Select Kinds ("),S=y(_e),Q=y(" selected)"),D=w(),He&&He.c(),R=w(),je&&je.c(),$=w(),P=g("label"),P.textContent="Authors (Pubkeys)",U=w(),T=g("div"),N=g("div"),L=g("input"),O=w(),M=g("button"),M.textContent="Add",_=w(),Ge&&Ge.c(),H=w(),qe&&qe.c(),j=w(),G=g("label"),G.textContent="Event IDs",q=w(),K=g("div"),J=g("div"),V=g("input"),Y=w(),z=g("button"),z.textContent="Add",W=w(),Ke&&Ke.c(),Z=w(),Je&&Je.c(),X=w(),ee=g("label"),ee.textContent="Tags (#e, #p, #a)",te=w(),ne=g("div"),re=g("div"),ie=g("span"),ie.textContent="#",oe=w(),se=g("input"),ae=w(),le=g("input"),ce=w(),ue=g("button"),ue.textContent="Add",de=w(),Ve&&Ve.c(),fe=w(),Ye&&Ye.c(),he=w(),pe=g("label"),pe.textContent="Since",ge=w(),me=g("div"),ye=g("input"),we=w(),ze&&ze.c(),ve=w(),Ae=g("label"),Ae.textContent="Until",be=w(),ke=g("div"),Ie=g("input"),Ee=w(),We&&We.c(),Ce=w(),xe=g("label"),xe.textContent="Limit",Be=w(),Se=g("div"),Fe=g("input"),Qe=w(),Ze&&Ze.c(),De=w(),Re=g("div"),$e=g("button"),$e.textContent="🧹",Pe=w(),Ue=g("div"),Te=w(),Ne=g("button"),Ne.textContent="</>",k(s,"for","search-text"),k(s,"class","svelte-1a1v6k0"),k(c,"id","search-text"),k(c,"type","text"),k(c,"placeholder","Search events..."),k(c,"class","filter-input svelte-1a1v6k0"),k(l,"class","field-content svelte-1a1v6k0"),k(p,"class","svelte-1a1v6k0"),k(b,"class","picker-toggle-btn svelte-1a1v6k0"),k(v,"class","field-content svelte-1a1v6k0"),k(P,"class","svelte-1a1v6k0"),k(L,"type","text"),k(L,"placeholder","64 character hex pubkey..."),k(L,"class","filter-input svelte-1a1v6k0"),k(L,"maxlength","64"),k(M,"class","add-btn svelte-1a1v6k0"),k(N,"class","input-group svelte-1a1v6k0"),k(T,"class","field-content svelte-1a1v6k0"),k(G,"class","svelte-1a1v6k0"),k(V,"type","text"),k(V,"placeholder","64 character hex event ID..."),k(V,"class","filter-input svelte-1a1v6k0"),k(V,"maxlength","64"),k(z,"class","add-btn svelte-1a1v6k0"),k(J,"class","input-group svelte-1a1v6k0"),k(K,"class","field-content svelte-1a1v6k0"),k(ee,"class","svelte-1a1v6k0"),k(ie,"class","hash-prefix svelte-1a1v6k0"),k(se,"type","text"),k(se,"placeholder","Tag"),k(se,"class","filter-input tag-name-input svelte-1a1v6k0"),k(se,"maxlength","1"),k(le,"type","text"),k(le,"placeholder","Value..."),k(le,"class","filter-input tag-value-input svelte-1a1v6k0"),k(ue,"class","add-btn svelte-1a1v6k0"),k(re,"class","tag-input-group svelte-1a1v6k0"),k(ne,"class","field-content svelte-1a1v6k0"),k(pe,"for","since-timestamp"),k(pe,"class","svelte-1a1v6k0"),k(ye,"id","since-timestamp"),k(ye,"type","datetime-local"),ye.value=t[32](),k(ye,"class","filter-input svelte-1a1v6k0"),k(me,"class","field-content timestamp-field svelte-1a1v6k0"),k(Ae,"for","until-timestamp"),k(Ae,"class","svelte-1a1v6k0"),k(Ie,"id","until-timestamp"),k(Ie,"type","datetime-local"),Ie.value=t[33](),k(Ie,"class","filter-input svelte-1a1v6k0"),k(ke,"class","field-content timestamp-field svelte-1a1v6k0"),k(xe,"for","limit"),k(xe,"class","svelte-1a1v6k0"),k(Fe,"id","limit"),k(Fe,"type","number"),k(Fe,"placeholder","Max events to return"),k(Fe,"class","filter-input svelte-1a1v6k0"),k(Fe,"min","1"),k(Se,"class","field-content svelte-1a1v6k0"),k(o,"class","filter-grid svelte-1a1v6k0"),k(i,"class","filter-content svelte-1a1v6k0"),k($e,"class","clear-all-btn svelte-1a1v6k0"),k($e,"title","Clear all filters"),k(Ue,"class","spacer svelte-1a1v6k0"),k(Ne,"class","json-toggle-btn svelte-1a1v6k0"),k(Ne,"title","Edit filter JSON"),F(Ne,"active",t[8]),k(Re,"class","clear-column svelte-1a1v6k0"),k(n,"class","filter-builder svelte-1a1v6k0")},m(e,r){f(e,n,r),d(n,i),d(i,o),d(o,s),d(o,a),d(o,l),d(l,c),C(c,t[0]),d(o,u),d(o,p),d(o,m),d(o,v),d(v,b),d(b,x),d(b,B),d(b,S),d(b,Q),d(v,D),He&&He.m(v,null),d(v,R),je&&je.m(v,null),d(o,$),d(o,P),d(o,U),d(o,T),d(T,N),d(N,L),C(L,t[13]),d(N,O),d(N,M),d(T,_),Ge&&Ge.m(T,null),d(T,H),qe&&qe.m(T,null),d(o,j),d(o,G),d(o,q),d(o,K),d(K,J),d(J,V),C(V,t[14]),d(J,Y),d(J,z),d(K,W),Ke&&Ke.m(K,null),d(K,Z),Je&&Je.m(K,null),d(o,X),d(o,ee),d(o,te),d(o,ne),d(ne,re),d(re,ie),d(re,oe),d(re,se),C(se,t[15]),d(re,ae),d(re,le),C(le,t[16]),d(re,ce),d(re,ue),d(ne,de),Ve&&Ve.m(ne,null),d(ne,fe),Ye&&Ye.m(ne,null),d(o,he),d(o,pe),d(o,ge),d(o,me),d(me,ye),d(me,we),ze&&ze.m(me,null),d(o,ve),d(o,Ae),d(o,be),d(o,ke),d(ke,Ie),d(ke,Ee),We&&We.m(ke,null),d(o,Ce),d(o,xe),d(o,Be),d(o,Se),d(Se,Fe),C(Fe,t[7]),d(o,Qe),Ze&&Ze.m(o,null),d(n,De),d(n,Re),d(Re,$e),d(Re,Pe),d(Re,Ue),d(Re,Te),d(Re,Ne),Le||(Oe=[A(c,"input",t[38]),A(b,"click",t[39]),A(L,"input",t[43]),A(L,"keydown",t[44]),A(M,"click",t[25]),A(V,"input",t[46]),A(V,"keydown",t[47]),A(z,"click",t[27]),A(se,"input",t[49]),A(le,"input",t[50]),A(le,"keydown",t[51]),A(ue,"click",t[29]),A(ye,"change",t[34]),A(Ie,"change",t[35]),A(Fe,"input",t[55]),A($e,"click",t[31]),A(Ne,"click",t[57])],Le=!0)},p(e,t){1&t[0]&&c.value!==e[0]&&C(c,e[0]),4096&t[0]&&Me!==(Me=e[12]?"▼":"▶")&&E(x,Me),2&t[0]&&_e!==(_e=e[1].length+"")&&E(S,_e),e[12]?He?He.p(e,t):(He=Cm(e),He.c(),He.m(v,R)):He&&(He.d(1),He=null),e[1].length>0?je?je.p(e,t):(je=Bm(e),je.c(),je.m(v,null)):je&&(je.d(1),je=null),8192&t[0]&&L.value!==e[13]&&C(L,e[13]),e[17]?Ge?Ge.p(e,t):(Ge=Fm(e),Ge.c(),Ge.m(T,H)):Ge&&(Ge.d(1),Ge=null),e[2].length>0?qe?qe.p(e,t):(qe=Qm(e),qe.c(),qe.m(T,null)):qe&&(qe.d(1),qe=null),16384&t[0]&&V.value!==e[14]&&C(V,e[14]),e[18]?Ke?Ke.p(e,t):(Ke=Rm(e),Ke.c(),Ke.m(K,Z)):Ke&&(Ke.d(1),Ke=null),e[3].length>0?Je?Je.p(e,t):(Je=$m(e),Je.c(),Je.m(K,null)):Je&&(Je.d(1),Je=null),32768&t[0]&&se.value!==e[15]&&C(se,e[15]),65536&t[0]&&le.value!==e[16]&&C(le,e[16]),e[19]?Ve?Ve.p(e,t):(Ve=Um(e),Ve.c(),Ve.m(ne,fe)):Ve&&(Ve.d(1),Ve=null),e[4].length>0?Ye?Ye.p(e,t):(Ye=Tm(e),Ye.c(),Ye.m(ne,null)):Ye&&(Ye.d(1),Ye=null),e[5]?ze?ze.p(e,t):(ze=Lm(e),ze.c(),ze.m(me,null)):ze&&(ze.d(1),ze=null),e[6]?We?We.p(e,t):(We=Om(e),We.c(),We.m(ke,null)):We&&(We.d(1),We=null),128&t[0]&&I(Fe.value)!==e[7]&&C(Fe,e[7]),e[8]?Ze?Ze.p(e,t):(Ze=Mm(e),Ze.c(),Ze.m(o,null)):Ze&&(Ze.d(1),Ze=null),256&t[0]&&F(Ne,"active",e[8])},i:e,o:e,d(e){e&&h(n),He&&He.d(),je&&je.d(),Ge&&Ge.d(),qe&&qe.d(),Ke&&Ke.d(),Je&&Je.d(),Ve&&Ve.d(),Ye&&Ye.d(),ze&&ze.d(),We&&We.d(),Ze&&Ze.d(),Le=!1,r(Oe)}}}function jm(e,t,n){let r,i;const o=U();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,{showJsonEditor:p=!1}=t,g="",m="",y=!1,w="",v="",A="",b="",k="",E="",C="",x="",B=null,S=!1;function F(e){a.includes(e)?n(1,a=a.filter(t=>t!==e)):n(1,a=[...a,e].sort((e,t)=>e-t))}function Q(e){n(1,a=a.filter(t=>t!==e))}function D(){const e=v.trim();e&&(ym(e,64)?l.includes(e)?n(17,E="Pubkey already added"):(n(2,l=[...l,e]),n(13,v=""),n(17,E="")):n(17,E="Invalid pubkey: must be 64 character hex string"))}function R(e){n(2,l=l.filter(t=>t!==e))}function $(){const e=A.trim();e&&(ym(e,64)?c.includes(e)?n(18,C="Event ID already added"):(n(3,c=[...c,e]),n(14,A=""),n(18,C="")):n(18,C="Invalid event ID: must be 64 character hex string"))}function T(e){n(3,c=c.filter(t=>t!==e))}function N(){const e=b.trim(),t=k.trim();e&&t&&(/^[a-zA-Z]$/.test(e)?u.some(n=>n.name===e&&n.value===t)?n(19,x="Tag already added"):(n(4,u=[...u,{name:e,value:t}]),n(15,b=""),n(16,k=""),n(19,x="")):n(19,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))}function O(){o("apply",{searchText:s,selectedKinds:a,pubkeys:l,eventIds:c,tags:u,sinceTimestamp:d,untilTimestamp:f,limit:h})}P(()=>{B&&clearTimeout(B)});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),"showJsonEditor"in e&&n(8,p=e.showJsonEditor)},e.$$.update=()=>{if(256&e.$$.dirty[0]&&p){const e=function(){const e={};return a.length>0&&(e.kinds=a),l.length>0&&(e.authors=l),c.length>0&&(e.ids=c),d&&(e.since=d),f&&(e.until=f),h&&(e.limit=h),s&&(e.search=s),u.forEach(t=>{const n=`#${t.name}`;e[n]||(e[n]=[]),e[n].push(t.value)}),e}();n(10,g=JSON.stringify(e,null,2))}255&e.$$.dirty[0]|32&e.$$.dirty[1]&&(S?(B&&clearTimeout(B),B=setTimeout(()=>{O()},1e3)):n(36,S=!0)),512&e.$$.dirty[0]|64&e.$$.dirty[1]&&n(20,i=r.filter(e=>e.kind.toString().includes(w)||e.name.toLowerCase().includes(w.toLowerCase())))},n(37,r=Object.entries(mm).map(([e,t])=>({kind:parseInt(e),name:t})).sort((e,t)=>e.kind-t.kind)),[s,a,l,c,u,d,f,h,p,w,g,m,y,v,A,b,k,E,C,x,i,o,function(){try{const e=JSON.parse(g);n(11,m=""),n(1,a=e.kinds||[]),n(2,l=e.authors||[]),n(3,c=e.ids||[]),n(5,d=e.since||null),n(6,f=e.until||null),n(7,h=e.limit||null),n(0,s=e.search||""),n(4,u=[]),Object.keys(e).forEach(t=>{if(t.startsWith("#")&&2===t.length){const n=t.slice(1);(Array.isArray(e[t])?e[t]:[e[t]]).forEach(e=>{u.push({name:n,value:String(e)})})}}),n(4,u),B&&clearTimeout(B),O()}catch(e){n(11,m="Invalid JSON: "+e.message)}},F,Q,D,R,$,T,N,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),o("clear")},function(){return d?wm(d):""},function(){return f?wm(f):""},function(e){const t=e.target.value;n(5,d=t?vm(t):null)},function(e){const t=e.target.value;n(6,f=t?vm(t):null)},S,r,function(){s=this.value,n(0,s)},()=>n(12,y=!y),function(){w=this.value,n(9,w)},e=>F(e),e=>Q(e),function(){v=this.value,n(13,v)},e=>"Enter"===e.key&&D(),e=>R(e),function(){A=this.value,n(14,A)},e=>"Enter"===e.key&&$(),e=>T(e),function(){b=this.value,n(15,b)},function(){k=this.value,n(16,k)},e=>"Enter"===e.key&&N(),e=>L(e),()=>n(5,d=null),()=>n(6,f=null),function(){h=I(this.value),n(7,h)},function(){g=this.value,n(10,g),n(8,p)},()=>o("toggleJson")]}class Gm extends ce{constructor(e){super(),le(this,e,jm,Hm,o,{searchText:0,selectedKinds:1,pubkeys:2,eventIds:3,tags:4,sinceTimestamp:5,untilTimestamp:6,limit:7,showJsonEditor:8},null,[-1,-1,-1])}}function qm(e,t,n){const r=e.slice();return r[28]=t[n],r}function Km(e,t,n){const r=e.slice();return r[31]=t[n],r}function Jm(t){let n;return{c(){n=g("div"),n.innerHTML="<p>❌ Read, write, admin, or owner permission required to view all\n events.</p>",k(n,"class","permission-denied svelte-5kb1ec")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Vm(e){let t,n,r,i;function o(e,t){return e[4].length>0?zm:e[6]?void 0:Ym}let s=o(e),a=s&&s(e),l=e[6]&&iy();return{c(){t=g("div"),a&&a.c(),n=w(),l&&l.c(),k(t,"class","events-view-content svelte-5kb1ec")},m(o,s){f(o,t,s),a&&a.m(t,null),d(t,n),l&&l.m(t,null),r||(i=A(t,"scroll",e[9]),r=!0)},p(e,r){s===(s=o(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=iy(),l.c(),l.m(t,null)):l&&(l.d(1),l=null)},d(e){e&&h(t),a&&a.d(),l&&l.d(),r=!1,i()}}}function Ym(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No events found.</p>",k(n,"class","no-events svelte-5kb1ec")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function zm(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=ry(qm(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(7228&i[0]){let o;for(n=e[4],o=0;o<n.length;o+=1){const s=qm(e,n,o);r[o]?r[o].p(s,i):(r[o]=ry(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function Wm(e){let t,n,r=fy(e[28].content)+"";return{c(){t=g("div"),n=y(r),k(t,"class","event-content-single-line svelte-5kb1ec")},m(e,r){f(e,t,r),d(t,n)},p(e,t){16&t[0]&&r!==(r=fy(e[28].content)+"")&&E(n,r)},d(e){e&&h(t)}}}function Zm(e){let t,n,r,i=e[28].tags&&e[28].tags.length>0&&Xm(e);return{c(){t=g("div"),n=g("span"),n.textContent="🗑️ Delete Event",r=w(),i&&i.c(),k(n,"class","delete-event-label svelte-5kb1ec"),k(t,"class","delete-event-info svelte-5kb1ec")},m(e,o){f(e,t,o),d(t,n),d(t,r),i&&i.m(t,null)},p(e,n){e[28].tags&&e[28].tags.length>0?i?i.p(e,n):(i=Xm(e),i.c(),i.m(t,null)):i&&(i.d(1),i=null)},d(e){e&&h(t),i&&i.d()}}}function Xm(e){let t,n=e[28].tags.filter(hy),r=[];for(let t=0;t<n.length;t+=1)r[t]=ey(Km(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","delete-targets svelte-5kb1ec")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(16&i[0]){let o;for(n=e[28].tags.filter(hy),o=0;o<n.length;o+=1){const s=Km(e,n,o);r[o]?r[o].p(s,i):(r[o]=ey(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function ey(e){let t,n,r,i,o,s=e[31][1].slice(0,8)+"",a=e[31][1].slice(-8)+"";return{c(){t=g("span"),n=y("Target: "),r=y(s),i=y("..."),o=y(a),k(t,"class","delete-target svelte-5kb1ec")},m(e,s){f(e,t,s),d(t,n),d(t,r),d(t,i),d(t,o)},p(e,t){16&t[0]&&s!==(s=e[31][1].slice(0,8)+"")&&E(r,s),16&t[0]&&a!==(a=e[31][1].slice(-8)+"")&&E(o,a)},d(e){e&&h(t)}}}function ty(e){let t,n,r;function i(){return e[19](e[28])}return{c(){t=g("button"),t.textContent="🗑️",k(t,"class","delete-btn svelte-5kb1ec")},m(e,o){f(e,t,o),n||(r=A(t,"click",b(i)),n=!0)},p(t,n){e=t},d(e){e&&h(t),n=!1,r()}}}function ny(e){let t,n,r,i,o,s,a,l,c=JSON.stringify(e[28],null,2)+"";function u(...t){return e[22](e[28],...t)}return{c(){t=g("div"),n=g("div"),r=g("pre"),i=y(c),o=w(),s=g("button"),s.textContent="📋",k(r,"class","event-json svelte-5kb1ec"),k(s,"class","copy-json-btn svelte-5kb1ec"),k(s,"title","Copy minified JSON to clipboard"),k(n,"class","json-container svelte-5kb1ec"),k(t,"class","events-view-details svelte-5kb1ec")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(r,i),d(n,o),d(n,s),a||(l=A(s,"click",b(u)),a=!0)},p(t,n){e=t,16&n[0]&&c!==(c=JSON.stringify(e[28],null,2)+"")&&E(i,c)},d(e){e&&h(t),a=!1,l()}}}function ry(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,Q,D,R,$,P,U,T=cy(e[28].pubkey)+"",N=e[28].kind+"",L=uy(e[28].kind)+"",O=dy(e[28].created_at)+"",M=e[5].has(e[28].id);function _(e,t){return 5===e[28].kind?Zm:Wm}let H=_(e),j=H(e),G=5!==e[28].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[28].pubkey&&e[28].pubkey===e[3])&&ty(e);function q(){return e[20](e[28])}function K(...t){return e[21](e[28],...t)}let J=M&&ny(e);return{c(){t=g("div"),n=g("div"),i=g("div"),i.innerHTML='<div class="avatar-placeholder svelte-5kb1ec">👤</div>',o=w(),s=g("div"),a=g("div"),l=y(T),c=w(),u=g("div"),p=g("span"),m=y(N),v=w(),b=g("span"),I=y(L),C=w(),x=g("div"),B=g("div"),S=y(O),Q=w(),j.c(),D=w(),G&&G.c(),R=w(),J&&J.c(),$=w(),k(i,"class","events-view-avatar svelte-5kb1ec"),k(a,"class","events-view-author svelte-5kb1ec"),k(p,"class","kind-number svelte-5kb1ec"),F(p,"delete-event",5===e[28].kind),k(b,"class","kind-name svelte-5kb1ec"),k(u,"class","events-view-kind svelte-5kb1ec"),k(s,"class","events-view-info svelte-5kb1ec"),k(B,"class","event-timestamp svelte-5kb1ec"),k(x,"class","events-view-content svelte-5kb1ec"),k(n,"class","events-view-row svelte-5kb1ec"),k(n,"role","button"),k(n,"tabindex","0"),k(t,"class","events-view-item svelte-5kb1ec"),F(t,"expanded",e[5].has(e[28].id))},m(e,r){f(e,t,r),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(s,c),d(s,u),d(u,p),d(p,m),d(u,v),d(u,b),d(b,I),d(n,C),d(n,x),d(x,B),d(B,S),d(x,Q),j.m(x,null),d(n,D),G&&G.m(n,null),d(t,R),J&&J.m(t,null),d(t,$),P||(U=[A(n,"click",q),A(n,"keydown",K)],P=!0)},p(r,i){e=r,16&i[0]&&T!==(T=cy(e[28].pubkey)+"")&&E(l,T),16&i[0]&&N!==(N=e[28].kind+"")&&E(m,N),16&i[0]&&F(p,"delete-event",5===e[28].kind),16&i[0]&&L!==(L=uy(e[28].kind)+"")&&E(I,L),16&i[0]&&O!==(O=dy(e[28].created_at)+"")&&E(S,O),H===(H=_(e))&&j?j.p(e,i):(j.d(1),j=H(e),j&&(j.c(),j.m(x,null))),5!==e[28].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[28].pubkey&&e[28].pubkey===e[3])?G?G.p(e,i):(G=ty(e),G.c(),G.m(n,null)):G&&(G.d(1),G=null),48&i[0]&&(M=e[5].has(e[28].id)),M?J?J.p(e,i):(J=ny(e),J.c(),J.m(t,$)):J&&(J.d(1),J=null),48&i[0]&&F(t,"expanded",e[5].has(e[28].id))},d(e){e&&h(t),j.d(),G&&G.d(),J&&J.d(),P=!1,r(U)}}}function iy(e){let t;return{c(){t=g("div"),t.innerHTML='<div class="spinner svelte-5kb1ec"></div> \n <p>Loading events...</p>',k(t,"class","loading-events svelte-5kb1ec")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function oy(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,E,C,x,B,S,Q,D,R,$,P;function U(e,t){return e[6]?ay:sy}i=new Gm({props:{showJsonEditor:e[8]}}),i.$on("apply",e[17]),i.$on("clear",e[18]),i.$on("toggleJson",e[16]);let T=U(e),N=T(e);return{c(){t=g("div"),n=g("div"),ie(i.$$.fragment),o=w(),s=g("div"),a=g("div"),l=g("button"),l.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-5kb1ec"><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon></svg>',c=w(),u=g("div"),p=g("label"),m=g("input"),v=w(),b=g("span"),I=w(),E=g("span"),E.textContent="Only show my events",C=w(),x=g("div"),B=g("button"),S=y("🔄 Load More"),Q=w(),D=g("button"),N.c(),k(n,"class","filter-panel svelte-5kb1ec"),F(n,"open",e[7]),k(l,"class","filter-btn svelte-5kb1ec"),k(l,"title","Filter events"),F(l,"active",e[7]),k(m,"type","checkbox"),k(m,"class","svelte-5kb1ec"),k(b,"class","toggle-slider svelte-5kb1ec"),k(E,"class","toggle-label svelte-5kb1ec"),k(p,"class","toggle-container svelte-5kb1ec"),k(u,"class","events-view-toggle svelte-5kb1ec"),k(a,"class","events-view-left svelte-5kb1ec"),k(B,"class","refresh-btn svelte-5kb1ec"),B.disabled=e[6],k(D,"class","reload-btn svelte-5kb1ec"),D.disabled=e[6],k(x,"class","events-view-buttons svelte-5kb1ec"),k(s,"class","events-view-header svelte-5kb1ec"),k(t,"class","events-view-footer svelte-5kb1ec")},m(r,h){f(r,t,h),d(t,n),oe(i,n,null),d(t,o),d(t,s),d(s,a),d(a,l),d(a,c),d(a,u),d(u,p),d(p,m),m.checked=e[0],d(p,v),d(p,b),d(p,I),d(p,E),d(s,C),d(s,x),d(x,B),d(B,S),d(x,Q),d(x,D),N.m(D,null),R=!0,$||(P=[A(l,"click",e[15]),A(m,"change",e[23]),A(m,"change",e[24]),A(B,"click",e[25]),A(D,"click",e[26])],$=!0)},p(e,t){const r={};256&t[0]&&(r.showJsonEditor=e[8]),i.$set(r),(!R||128&t[0])&&F(n,"open",e[7]),(!R||128&t[0])&&F(l,"active",e[7]),1&t[0]&&(m.checked=e[0]),(!R||64&t[0])&&(B.disabled=e[6]),T!==(T=U(e))&&(N.d(1),N=T(e),N&&(N.c(),N.m(D,null))),(!R||64&t[0])&&(D.disabled=e[6])},i(e){R||(X(i.$$.fragment,e),R=!0)},o(e){ee(i.$$.fragment,e),R=!1},d(e){e&&h(t),se(i),N.d(),$=!1,r(P)}}}function sy(e){let t;return{c(){t=y("🔄")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function ay(e){let t;return{c(){t=g("div"),k(t,"class","spinner svelte-5kb1ec")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function ly(e){let t,n,r;function i(e,t){return!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?Jm:Vm}let o=i(e),s=o(e),a=e[1]&&("read"===e[2]||"write"===e[2]||"admin"===e[2]||"owner"===e[2])&&oy(e);return{c(){t=g("div"),s.c(),n=w(),a&&a.c(),k(t,"class","events-view-container svelte-5kb1ec")},m(e,i){f(e,t,i),s.m(t,null),d(t,n),a&&a.m(t,null),r=!0},p(e,r){o===(o=i(e))&&s?s.p(e,r):(s.d(1),s=o(e),s&&(s.c(),s.m(t,n))),!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?a&&(W(),ee(a,1,1,()=>{a=null}),Z()):a?(a.p(e,r),6&r[0]&&X(a,1)):(a=oy(e),a.c(),X(a,1),a.m(t,null))},i(e){r||(X(a),r=!0)},o(e){ee(a),r=!1},d(e){e&&h(t),s.d(),a&&a.d()}}}function cy(e){return e?e.slice(0,8)+"..."+e.slice(-8):""}function uy(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 dy(e){return new Date(1e3*e).toLocaleString()}function fy(e){return e?e.length>100?e.slice(0,100)+"...":e:""}const hy=e=>"e"===e[0];function py(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:i=""}=t,{userPubkey:o=""}=t,{filteredEvents:s=[]}=t,{expandedEvents:a=new Set}=t,{isLoadingEvents:l=!1}=t,{showOnlyMyEvents:c=!1}=t,{showFilterBuilder:u=!1}=t;const d=U();let f=!1;function h(e){d("toggleEventExpansion",e)}function p(e){d("deleteEvent",e)}function g(e,t){d("copyEventToClipboard",{event:e,e:t})}function m(){d("toggleChange")}function y(e,t){d("loadAllEvents",{refresh:e,authors:t})}return e.$$set=e=>{"isLoggedIn"in e&&n(1,r=e.isLoggedIn),"userRole"in e&&n(2,i=e.userRole),"userPubkey"in e&&n(3,o=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),"showFilterBuilder"in e&&n(7,u=e.showFilterBuilder)},[c,r,i,o,s,a,l,u,f,function(e){d("scroll",e)},h,p,g,m,y,function(){d("toggleFilterBuilder")},function(){n(8,f=!f)},function(e){d("filterApply",e.detail)},function(){d("filterClear")},e=>p(e.id),e=>h(e.id),(e,t)=>"Enter"===t.key&&h(e.id),(e,t)=>g(e,t),function(){c=this.checked,n(0,c)},()=>m(),()=>{y(!1,c&&o?[o]:null)},()=>{y(!0,c&&o?[o]:null)}]}class gy extends ce{constructor(e){super(),le(this,e,py,ly,o,{isLoggedIn:1,userRole:2,userPubkey:3,filteredEvents:4,expandedEvents:5,isLoadingEvents:6,showOnlyMyEvents:0,showFilterBuilder:7},null,[-1,-1])}}const my=[{kind:0,name:"Metadata",description:"User profile information (name, about, picture, nip05, etc.)",nip:"01",isReplaceable:!0,template:{kind:0,content:"",tags:[]}},{kind:1,name:"Short Text Note",description:"Short-form text post (like a tweet)",nip:"01",template:{kind:1,content:"",tags:[]}},{kind:2,name:"Recommend Relay",description:"Relay recommendation",nip:"01",deprecated:!0,template:{kind:2,content:"",tags:[]}},{kind:3,name:"Follows",description:"Following list with optional relay hints",nip:"02",isReplaceable:!0,template:{kind:3,content:"",tags:[]}},{kind:4,name:"Encrypted Direct Message",description:"Private message using NIP-04 encryption",nip:"04",deprecated:!0,template:{kind:4,content:"",tags:[]}},{kind:5,name:"Event Deletion Request",description:"Request to delete events",nip:"09",template:{kind:5,content:"",tags:[]}},{kind:6,name:"Repost",description:"Share/repost another text note",nip:"18",template:{kind:6,content:"",tags:[]}},{kind:7,name:"Reaction",description:"Like, emoji reaction to an event",nip:"25",template:{kind:7,content:"",tags:[]}},{kind:8,name:"Badge Award",description:"Award a badge to someone",nip:"58",template:{kind:8,content:"",tags:[]}},{kind:9,name:"Chat Message",description:"Chat message",nip:"C7",template:{kind:9,content:"",tags:[]}},{kind:10,name:"Group Chat Threaded Reply",description:"Threaded reply in group chat",nip:"29",deprecated:!0,template:{kind:10,content:"",tags:[]}},{kind:11,name:"Thread",description:"Thread event",nip:"7D",template:{kind:11,content:"",tags:[]}},{kind:12,name:"Group Thread Reply",description:"Reply in group thread",nip:"29",deprecated:!0,template:{kind:12,content:"",tags:[]}},{kind:13,name:"Seal",description:"Sealed/encrypted event wrapper",nip:"59",template:{kind:13,content:"",tags:[]}},{kind:14,name:"Direct Message",description:"Private direct message using NIP-17",nip:"17",template:{kind:14,content:"",tags:[]}},{kind:15,name:"File Message",description:"File message in DMs",nip:"17",template:{kind:15,content:"",tags:[]}},{kind:16,name:"Generic Repost",description:"Repost any event kind",nip:"18",template:{kind:16,content:"",tags:[]}},{kind:17,name:"Reaction to Website",description:"Reaction to a website URL",nip:"25",template:{kind:17,content:"",tags:[]}},{kind:20,name:"Picture",description:"Picture-first feed post",nip:"68",template:{kind:20,content:"",tags:[]}},{kind:21,name:"Video Event",description:"Horizontal video event",nip:"71",template:{kind:21,content:"",tags:[]}},{kind:22,name:"Short-form Video",description:"Short-form portrait video (like TikTok)",nip:"71",template:{kind:22,content:"",tags:[]}},{kind:40,name:"Channel Creation",description:"Create a public chat channel",nip:"28",template:{kind:40,content:"",tags:[]}},{kind:41,name:"Channel Metadata",description:"Set channel name, about, picture",nip:"28",template:{kind:41,content:"",tags:[]}},{kind:42,name:"Channel Message",description:"Post message in channel",nip:"28",template:{kind:42,content:"",tags:[]}},{kind:43,name:"Channel Hide Message",description:"Hide a message in channel",nip:"28",template:{kind:43,content:"",tags:[]}},{kind:44,name:"Channel Mute User",description:"Mute a user in channel",nip:"28",template:{kind:44,content:"",tags:[]}},{kind:62,name:"Request to Vanish",description:"Request permanent deletion of all user data",nip:"62",template:{kind:62,content:"",tags:[]}},{kind:64,name:"Chess (PGN)",description:"Chess game in PGN format",nip:"64",template:{kind:64,content:"",tags:[]}},{kind:443,name:"KeyPackage",description:"Marmot protocol key package",nip:null,spec:"Marmot",template:{kind:443,content:"",tags:[]}},{kind:444,name:"Welcome Message",description:"Marmot protocol welcome message",nip:null,spec:"Marmot",template:{kind:444,content:"",tags:[]}},{kind:445,name:"Group Event",description:"Marmot protocol group event",nip:null,spec:"Marmot",template:{kind:445,content:"",tags:[]}},{kind:818,name:"Merge Requests",description:"Git merge request",nip:"54",template:{kind:818,content:"",tags:[]}},{kind:1018,name:"Poll Response",description:"Response to a poll",nip:"88",template:{kind:1018,content:"",tags:[]}},{kind:1021,name:"Bid",description:"Auction bid",nip:"15",template:{kind:1021,content:"",tags:[]}},{kind:1022,name:"Bid Confirmation",description:"Confirmation of auction bid",nip:"15",template:{kind:1022,content:"",tags:[]}},{kind:1040,name:"OpenTimestamps",description:"OpenTimestamps attestation",nip:"03",template:{kind:1040,content:"",tags:[]}},{kind:1059,name:"Gift Wrap",description:"Encrypted gift-wrapped event",nip:"59",template:{kind:1059,content:"",tags:[]}},{kind:1060,name:"Gift Wrap (Kind 4)",description:"Gift wrap variant for NIP-04 compatibility",nip:"59",template:{kind:1060,content:"",tags:[]}},{kind:1063,name:"File Metadata",description:"Metadata for shared files",nip:"94",template:{kind:1063,content:"",tags:[]}},{kind:1068,name:"Poll",description:"Create a poll",nip:"88",template:{kind:1068,content:"",tags:[]}},{kind:1111,name:"Comment",description:"Comment on events or external content",nip:"22",template:{kind:1111,content:"",tags:[]}},{kind:1222,name:"Voice Message",description:"Voice message",nip:"A0",template:{kind:1222,content:"",tags:[]}},{kind:1244,name:"Voice Message Comment",description:"Comment on voice message",nip:"A0",template:{kind:1244,content:"",tags:[]}},{kind:1311,name:"Live Chat Message",description:"Message in live stream chat",nip:"53",template:{kind:1311,content:"",tags:[]}},{kind:1337,name:"Code Snippet",description:"Code snippet post",nip:"C0",template:{kind:1337,content:"",tags:[]}},{kind:1517,name:"Bitcoin Block",description:"Bitcoin block data",nip:null,spec:"Nostrocket",template:{kind:1517,content:"",tags:[]}},{kind:1617,name:"Patches",description:"Git patches",nip:"34",template:{kind:1617,content:"",tags:[]}},{kind:1618,name:"Pull Requests",description:"Git pull request",nip:"34",template:{kind:1618,content:"",tags:[]}},{kind:1619,name:"Pull Request Updates",description:"Updates to git pull request",nip:"34",template:{kind:1619,content:"",tags:[]}},{kind:1621,name:"Issues",description:"Git issues",nip:"34",template:{kind:1621,content:"",tags:[]}},{kind:1622,name:"Git Replies",description:"Replies on git objects",nip:"34",deprecated:!0,template:{kind:1622,content:"",tags:[]}},{kind:1630,name:"Status",description:"Git status",nip:"34",template:{kind:1630,content:"",tags:[]}},{kind:1631,name:"Status",description:"Git status",nip:"34",template:{kind:1631,content:"",tags:[]}},{kind:1632,name:"Status",description:"Git status",nip:"34",template:{kind:1632,content:"",tags:[]}},{kind:1633,name:"Status",description:"Git status",nip:"34",template:{kind:1633,content:"",tags:[]}},{kind:1808,name:"Live Stream",description:"Live streaming event",nip:null,spec:"zap.stream",template:{kind:1808,content:"",tags:[]}},{kind:1971,name:"Problem Tracker",description:"Problem tracking",nip:null,spec:"Nostrocket",template:{kind:1971,content:"",tags:[]}},{kind:1984,name:"Reporting",description:"Report content or users",nip:"56",template:{kind:1984,content:"",tags:[]}},{kind:1985,name:"Label",description:"Label/tag content with namespace",nip:"32",template:{kind:1985,content:"",tags:[]}},{kind:1986,name:"Relay Reviews",description:"Reviews of relays",nip:null,template:{kind:1986,content:"",tags:[]}},{kind:1987,name:"AI Embeddings",description:"AI embeddings/vector lists",nip:null,spec:"NKBIP-02",template:{kind:1987,content:"",tags:[]}},{kind:2003,name:"Torrent",description:"Torrent magnet link",nip:"35",template:{kind:2003,content:"",tags:[]}},{kind:2004,name:"Torrent Comment",description:"Comment on torrent",nip:"35",template:{kind:2004,content:"",tags:[]}},{kind:2022,name:"Coinjoin Pool",description:"Coinjoin coordination",nip:null,spec:"joinstr",template:{kind:2022,content:"",tags:[]}},{kind:4550,name:"Community Post Approval",description:"Approve post in community",nip:"72",template:{kind:4550,content:"",tags:[]}},{kind:5e3,name:"Job Request",description:"Data vending machine job request (start of range)",nip:"90",template:{kind:5e3,content:"",tags:[]}},{kind:6e3,name:"Job Result",description:"Data vending machine job result (start of range)",nip:"90",template:{kind:6e3,content:"",tags:[]}},{kind:7e3,name:"Job Feedback",description:"Feedback on job request/result",nip:"90",template:{kind:7e3,content:"",tags:[]}},{kind:7374,name:"Reserved Cashu Wallet Tokens",description:"Reserved Cashu wallet tokens",nip:"60",template:{kind:7374,content:"",tags:[]}},{kind:7375,name:"Cashu Wallet Tokens",description:"Cashu wallet tokens",nip:"60",template:{kind:7375,content:"",tags:[]}},{kind:7376,name:"Cashu Wallet History",description:"Cashu wallet transaction history",nip:"60",template:{kind:7376,content:"",tags:[]}},{kind:7516,name:"Geocache Log",description:"Geocaching log entry",nip:null,spec:"geocaching",template:{kind:7516,content:"",tags:[]}},{kind:7517,name:"Geocache Proof of Find",description:"Proof of geocache find",nip:null,spec:"geocaching",template:{kind:7517,content:"",tags:[]}},{kind:8e3,name:"Add User",description:"Add user to group",nip:"43",template:{kind:8e3,content:"",tags:[]}},{kind:8001,name:"Remove User",description:"Remove user from group",nip:"43",template:{kind:8001,content:"",tags:[]}},{kind:9e3,name:"Group Control Events",description:"Group control events (start of range)",nip:"29",template:{kind:9e3,content:"",tags:[]}},{kind:9041,name:"Zap Goal",description:"Fundraising goal for zaps",nip:"75",template:{kind:9041,content:"",tags:[]}},{kind:9321,name:"Nutzap",description:"Cashu nutzap",nip:"61",template:{kind:9321,content:"",tags:[]}},{kind:9467,name:"Tidal Login",description:"Tidal streaming login",nip:null,spec:"Tidal-nostr",template:{kind:9467,content:"",tags:[]}},{kind:9734,name:"Zap Request",description:"Request Lightning payment",nip:"57",template:{kind:9734,content:"",tags:[]}},{kind:9735,name:"Zap",description:"Lightning payment receipt",nip:"57",template:{kind:9735,content:"",tags:[]}},{kind:9802,name:"Highlights",description:"Highlighted text selection",nip:"84",template:{kind:9802,content:"",tags:[]}},{kind:1e4,name:"Mute List",description:"List of muted users/content",nip:"51",isReplaceable:!0,template:{kind:1e4,content:"",tags:[]}},{kind:10001,name:"Pin List",description:"Pinned events",nip:"51",isReplaceable:!0,template:{kind:10001,content:"",tags:[]}},{kind:10002,name:"Relay List Metadata",description:"User's preferred relays for read/write",nip:"65",isReplaceable:!0,template:{kind:10002,content:"",tags:[]}},{kind:10003,name:"Bookmark List",description:"Bookmarked events",nip:"51",isReplaceable:!0,template:{kind:10003,content:"",tags:[]}},{kind:10004,name:"Communities List",description:"Communities user belongs to",nip:"51",isReplaceable:!0,template:{kind:10004,content:"",tags:[]}},{kind:10005,name:"Public Chats List",description:"Public chats user is in",nip:"51",isReplaceable:!0,template:{kind:10005,content:"",tags:[]}},{kind:10006,name:"Blocked Relays List",description:"Relays user has blocked",nip:"51",isReplaceable:!0,template:{kind:10006,content:"",tags:[]}},{kind:10007,name:"Search Relays List",description:"Preferred search relays",nip:"51",isReplaceable:!0,template:{kind:10007,content:"",tags:[]}},{kind:10008,name:"Relay Group Configuration",description:"Relay group configuration",nip:null,isReplaceable:!0,template:{kind:10008,content:"",tags:[]}},{kind:10009,name:"User Groups",description:"Groups user belongs to",nip:"29",isReplaceable:!0,template:{kind:10009,content:"",tags:[]}},{kind:10012,name:"Favorite Relays List",description:"User's favorite relays",nip:"51",isReplaceable:!0,template:{kind:10012,content:"",tags:[]}},{kind:10013,name:"Private Event Relay List",description:"Relays for private events",nip:"37",isReplaceable:!0,template:{kind:10013,content:"",tags:[]}},{kind:10015,name:"Interests List",description:"User interests/topics",nip:"51",isReplaceable:!0,template:{kind:10015,content:"",tags:[]}},{kind:10019,name:"Nutzap Mint Recommendation",description:"Recommended Cashu mints for nutzaps",nip:"61",isReplaceable:!0,template:{kind:10019,content:"",tags:[]}},{kind:10020,name:"Media Follows",description:"Followed media accounts",nip:"51",isReplaceable:!0,template:{kind:10020,content:"",tags:[]}},{kind:10030,name:"User Emoji List",description:"Custom emoji list",nip:"51",isReplaceable:!0,template:{kind:10030,content:"",tags:[]}},{kind:10050,name:"DM Relays List",description:"Relays to receive DMs on",nip:"17",isReplaceable:!0,template:{kind:10050,content:"",tags:[]}},{kind:10051,name:"KeyPackage Relays List",description:"Marmot key package relays",nip:null,isReplaceable:!0,spec:"Marmot",template:{kind:10051,content:"",tags:[]}},{kind:10063,name:"User Server List",description:"Blossom server list",nip:null,isReplaceable:!0,spec:"Blossom",template:{kind:10063,content:"",tags:[]}},{kind:10096,name:"File Storage Server List",description:"File storage servers",nip:"96",isReplaceable:!0,deprecated:!0,template:{kind:10096,content:"",tags:[]}},{kind:10166,name:"Relay Monitor Announcement",description:"Relay monitoring announcement",nip:"66",isReplaceable:!0,template:{kind:10166,content:"",tags:[]}},{kind:10312,name:"Room Presence",description:"Presence in live room",nip:"53",isReplaceable:!0,template:{kind:10312,content:"",tags:[]}},{kind:10377,name:"Proxy Announcement",description:"Nostr proxy announcement",nip:null,isReplaceable:!0,spec:"Nostr Epoxy",template:{kind:10377,content:"",tags:[]}},{kind:11111,name:"Transport Method Announcement",description:"Transport method announcement",nip:null,isReplaceable:!0,spec:"Nostr Epoxy",template:{kind:11111,content:"",tags:[]}},{kind:12345,name:"Relay Policy Configuration",description:"Relay-internal policy configuration (admin only)",nip:null,isReplaceable:!0,spec:"orly",template:{kind:12345,content:"",tags:[]}},{kind:13004,name:"JWT Binding",description:"Link between JWT certificate and pubkey",nip:null,isReplaceable:!0,template:{kind:13004,content:"",tags:[]}},{kind:13194,name:"Wallet Service Info",description:"NWC wallet service information",nip:"47",isReplaceable:!0,template:{kind:13194,content:"",tags:[]}},{kind:13534,name:"Membership Lists",description:"Group membership lists",nip:"43",isReplaceable:!0,template:{kind:13534,content:"",tags:[]}},{kind:14388,name:"User Sound Effect Lists",description:"Sound effect lists",nip:null,isReplaceable:!0,spec:"Corny Chat",template:{kind:14388,content:"",tags:[]}},{kind:17375,name:"Cashu Wallet Event",description:"Cashu wallet event",nip:"60",isReplaceable:!0,template:{kind:17375,content:"",tags:[]}},{kind:21e3,name:"Lightning Pub RPC",description:"Lightning.Pub RPC",nip:null,isEphemeral:!0,spec:"Lightning.Pub",template:{kind:21e3,content:"",tags:[]}},{kind:22242,name:"Client Authentication",description:"Authenticate to relay",nip:"42",isEphemeral:!0,template:{kind:22242,content:"",tags:[]}},{kind:23194,name:"Wallet Request",description:"NWC wallet request",nip:"47",isEphemeral:!0,template:{kind:23194,content:"",tags:[]}},{kind:23195,name:"Wallet Response",description:"NWC wallet response",nip:"47",isEphemeral:!0,template:{kind:23195,content:"",tags:[]}},{kind:23196,name:"Wallet Notification (NIP-04)",description:"NWC wallet notification (NIP-04 encrypted)",nip:"47",isEphemeral:!0,template:{kind:23196,content:"",tags:[]}},{kind:23197,name:"Wallet Notification",description:"NWC wallet notification",nip:"47",isEphemeral:!0,template:{kind:23197,content:"",tags:[]}},{kind:24133,name:"Nostr Connect",description:"Remote signer connection",nip:"46",isEphemeral:!0,template:{kind:24133,content:"",tags:[]}},{kind:24242,name:"Blobs Stored on Mediaservers",description:"Blossom blob storage",nip:null,isEphemeral:!0,spec:"Blossom",template:{kind:24242,content:"",tags:[]}},{kind:27235,name:"HTTP Auth",description:"Authenticate HTTP requests",nip:"98",isEphemeral:!0,template:{kind:27235,content:"",tags:[]}},{kind:28934,name:"Join Request",description:"Request to join group",nip:"43",isEphemeral:!0,template:{kind:28934,content:"",tags:[]}},{kind:28935,name:"Invite Request",description:"Invite to group",nip:"43",isEphemeral:!0,template:{kind:28935,content:"",tags:[]}},{kind:28936,name:"Leave Request",description:"Leave group request",nip:"43",isEphemeral:!0,template:{kind:28936,content:"",tags:[]}},{kind:3e4,name:"Follow Sets",description:"Categorized people lists",nip:"51",isAddressable:!0,template:{kind:3e4,content:"",tags:[["d","identifier"]]}},{kind:30001,name:"Generic Lists",description:"Generic categorized lists",nip:"51",isAddressable:!0,deprecated:!0,template:{kind:30001,content:"",tags:[["d","identifier"]]}},{kind:30002,name:"Relay Sets",description:"Categorized relay lists",nip:"51",isAddressable:!0,template:{kind:30002,content:"",tags:[["d","identifier"]]}},{kind:30003,name:"Bookmark Sets",description:"Categorized bookmark lists",nip:"51",isAddressable:!0,template:{kind:30003,content:"",tags:[["d","identifier"]]}},{kind:30004,name:"Curation Sets",description:"Curated content sets",nip:"51",isAddressable:!0,template:{kind:30004,content:"",tags:[["d","identifier"]]}},{kind:30005,name:"Video Sets",description:"Video playlists",nip:"51",isAddressable:!0,template:{kind:30005,content:"",tags:[["d","identifier"]]}},{kind:30007,name:"Kind Mute Sets",description:"Muted event kinds",nip:"51",isAddressable:!0,template:{kind:30007,content:"",tags:[["d","identifier"]]}},{kind:30008,name:"Profile Badges",description:"Badges displayed on profile",nip:"58",isAddressable:!0,template:{kind:30008,content:"",tags:[["d","identifier"]]}},{kind:30009,name:"Badge Definition",description:"Define a badge/achievement",nip:"58",isAddressable:!0,template:{kind:30009,content:"",tags:[["d","identifier"]]}},{kind:30015,name:"Interest Sets",description:"Interest/topic sets",nip:"51",isAddressable:!0,template:{kind:30015,content:"",tags:[["d","identifier"]]}},{kind:30017,name:"Stall",description:"Marketplace stall definition",nip:"15",isAddressable:!0,template:{kind:30017,content:"",tags:[["d","identifier"]]}},{kind:30018,name:"Product",description:"Marketplace product listing",nip:"15",isAddressable:!0,template:{kind:30018,content:"",tags:[["d","identifier"]]}},{kind:30019,name:"Marketplace UI/UX",description:"Marketplace interface settings",nip:"15",isAddressable:!0,template:{kind:30019,content:"",tags:[["d","identifier"]]}},{kind:30020,name:"Product Sold as Auction",description:"Auction product listing",nip:"15",isAddressable:!0,template:{kind:30020,content:"",tags:[["d","identifier"]]}},{kind:30023,name:"Long-form Content",description:"Blog post, article in markdown",nip:"23",isAddressable:!0,template:{kind:30023,content:"",tags:[["d","identifier"]]}},{kind:30024,name:"Draft Long-form Content",description:"Draft article",nip:"23",isAddressable:!0,template:{kind:30024,content:"",tags:[["d","identifier"]]}},{kind:30030,name:"Emoji Sets",description:"Custom emoji sets",nip:"51",isAddressable:!0,template:{kind:30030,content:"",tags:[["d","identifier"]]}},{kind:30040,name:"Curated Publication Index",description:"Publication index",nip:null,isAddressable:!0,spec:"NKBIP-01",template:{kind:30040,content:"",tags:[["d","identifier"]]}},{kind:30041,name:"Curated Publication Content",description:"Publication content",nip:null,isAddressable:!0,spec:"NKBIP-01",template:{kind:30041,content:"",tags:[["d","identifier"]]}},{kind:30063,name:"Release Artifact Sets",description:"Software release artifacts",nip:"51",isAddressable:!0,template:{kind:30063,content:"",tags:[["d","identifier"]]}},{kind:30078,name:"Application-specific Data",description:"App-specific key-value storage",nip:"78",isAddressable:!0,template:{kind:30078,content:"",tags:[["d","identifier"]]}},{kind:30166,name:"Relay Discovery",description:"Relay discovery/monitoring",nip:"66",isAddressable:!0,template:{kind:30166,content:"",tags:[["d","identifier"]]}},{kind:30267,name:"App Curation Sets",description:"Curated app sets",nip:"51",isAddressable:!0,template:{kind:30267,content:"",tags:[["d","identifier"]]}},{kind:30311,name:"Live Event",description:"Live streaming event",nip:"53",isAddressable:!0,template:{kind:30311,content:"",tags:[["d","identifier"]]}},{kind:30312,name:"Interactive Room",description:"Interactive live room",nip:"53",isAddressable:!0,template:{kind:30312,content:"",tags:[["d","identifier"]]}},{kind:30313,name:"Conference Event",description:"Conference/meetup event",nip:"53",isAddressable:!0,template:{kind:30313,content:"",tags:[["d","identifier"]]}},{kind:30315,name:"User Statuses",description:"User status updates",nip:"38",isAddressable:!0,template:{kind:30315,content:"",tags:[["d","identifier"]]}},{kind:30388,name:"Slide Set",description:"Presentation slides",nip:null,isAddressable:!0,spec:"Corny Chat",template:{kind:30388,content:"",tags:[["d","identifier"]]}},{kind:30402,name:"Classified Listing",description:"Classified ad listing",nip:"99",isAddressable:!0,template:{kind:30402,content:"",tags:[["d","identifier"]]}},{kind:30403,name:"Draft Classified Listing",description:"Draft classified ad",nip:"99",isAddressable:!0,template:{kind:30403,content:"",tags:[["d","identifier"]]}},{kind:30617,name:"Repository Announcements",description:"Git repository announcement",nip:"34",isAddressable:!0,template:{kind:30617,content:"",tags:[["d","identifier"]]}},{kind:30618,name:"Repository State Announcements",description:"Git repository state",nip:"34",isAddressable:!0,template:{kind:30618,content:"",tags:[["d","identifier"]]}},{kind:30818,name:"Wiki Article",description:"Wiki article",nip:"54",isAddressable:!0,template:{kind:30818,content:"",tags:[["d","identifier"]]}},{kind:30819,name:"Redirects",description:"URL redirects",nip:"54",isAddressable:!0,template:{kind:30819,content:"",tags:[["d","identifier"]]}},{kind:31234,name:"Draft Event",description:"Draft of any event",nip:"37",isAddressable:!0,template:{kind:31234,content:"",tags:[["d","identifier"]]}},{kind:31388,name:"Link Set",description:"Link collection",nip:null,isAddressable:!0,spec:"Corny Chat",template:{kind:31388,content:"",tags:[["d","identifier"]]}},{kind:31890,name:"Feed",description:"Custom feed definition",nip:null,isAddressable:!0,spec:"NUD: Custom Feeds",template:{kind:31890,content:"",tags:[["d","identifier"]]}},{kind:31922,name:"Date-Based Calendar Event",description:"All-day calendar event",nip:"52",isAddressable:!0,template:{kind:31922,content:"",tags:[["d","identifier"]]}},{kind:31923,name:"Time-Based Calendar Event",description:"Calendar event with time",nip:"52",isAddressable:!0,template:{kind:31923,content:"",tags:[["d","identifier"]]}},{kind:31924,name:"Calendar",description:"Calendar definition",nip:"52",isAddressable:!0,template:{kind:31924,content:"",tags:[["d","identifier"]]}},{kind:31925,name:"Calendar Event RSVP",description:"RSVP to calendar event",nip:"52",isAddressable:!0,template:{kind:31925,content:"",tags:[["d","identifier"]]}},{kind:31989,name:"Handler Recommendation",description:"Recommended app for event kind",nip:"89",isAddressable:!0,template:{kind:31989,content:"",tags:[["d","identifier"]]}},{kind:31990,name:"Handler Information",description:"App handler declaration",nip:"89",isAddressable:!0,template:{kind:31990,content:"",tags:[["d","identifier"]]}},{kind:32123,name:"WaveLake Track",description:"WaveLake music track",nip:null,isAddressable:!0,spec:"WaveLake",template:{kind:32123,content:"",tags:[["d","identifier"]]}},{kind:32267,name:"Software Application",description:"Software application listing",nip:null,isAddressable:!0,template:{kind:32267,content:"",tags:[["d","identifier"]]}},{kind:32388,name:"User Room Favorites",description:"Favorite rooms",nip:null,isAddressable:!0,spec:"Corny Chat",template:{kind:32388,content:"",tags:[["d","identifier"]]}},{kind:33388,name:"High Scores",description:"Game high scores",nip:null,isAddressable:!0,spec:"Corny Chat",template:{kind:33388,content:"",tags:[["d","identifier"]]}},{kind:34235,name:"Video Event Horizontal",description:"Horizontal video event",nip:"71",isAddressable:!0,template:{kind:34235,content:"",tags:[["d","identifier"]]}},{kind:34236,name:"Video Event Vertical",description:"Vertical video event",nip:"71",isAddressable:!0,template:{kind:34236,content:"",tags:[["d","identifier"]]}},{kind:34388,name:"Sound Effects",description:"Sound effect definitions",nip:null,isAddressable:!0,spec:"Corny Chat",template:{kind:34388,content:"",tags:[["d","identifier"]]}},{kind:34550,name:"Community Definition",description:"Define a community",nip:"72",isAddressable:!0,template:{kind:34550,content:"",tags:[["d","identifier"]]}},{kind:37516,name:"Geocache Listing",description:"Geocache location listing",nip:null,isAddressable:!0,spec:"geocaching",template:{kind:37516,content:"",tags:[["d","identifier"]]}},{kind:38172,name:"Cashu Mint Announcement",description:"Cashu mint announcement",nip:"87",isAddressable:!0,template:{kind:38172,content:"",tags:[["d","identifier"]]}},{kind:38173,name:"Fedimint Announcement",description:"Fedimint announcement",nip:"87",isAddressable:!0,template:{kind:38173,content:"",tags:[["d","identifier"]]}},{kind:38383,name:"Peer-to-peer Order Events",description:"P2P trading orders",nip:"69",isAddressable:!0,template:{kind:38383,content:"",tags:[["d","identifier"]]}},{kind:39e3,name:"Group Metadata Events",description:"Group metadata (start of range)",nip:"29",isAddressable:!0,template:{kind:39e3,content:"",tags:[["d","identifier"]]}},{kind:39089,name:"Starter Packs",description:"Starter pack lists",nip:"51",isAddressable:!0,template:{kind:39089,content:"",tags:[["d","identifier"]]}},{kind:39092,name:"Media Starter Packs",description:"Media starter packs",nip:"51",isAddressable:!0,template:{kind:39092,content:"",tags:[["d","identifier"]]}},{kind:39701,name:"Web Bookmarks",description:"Web URL bookmarks",nip:"B0",isAddressable:!0,template:{kind:39701,content:"",tags:[["d","identifier"]]}},{kind:39998,name:"ACL Event",description:"Access control list event",nip:null,isAddressable:!0,template:{kind:39998,content:"",tags:[["d","identifier"]]}}];function yy(e,t=null){const n=function(e){return my.find(t=>t.kind===e)}(e);return n?{...n.template,created_at:Math.floor(Date.now()/1e3),pubkey:t||"<your_pubkey_here>"}:{kind:e,content:"",tags:[],created_at:Math.floor(Date.now()/1e3),pubkey:t||"<your_pubkey_here>"}}const wy=[{id:"all",name:"All Kinds",filter:()=>!0},{id:"regular",name:"Regular Events (0-9999)",filter:e=>e.kind<1e4&&!e.isReplaceable},{id:"replaceable",name:"Replaceable (10000-19999)",filter:e=>e.isReplaceable},{id:"ephemeral",name:"Ephemeral (20000-29999)",filter:e=>e.isEphemeral},{id:"addressable",name:"Addressable (30000-39999)",filter:e=>e.isAddressable},{id:"social",name:"Social",filter:e=>[0,1,3,6,7].includes(e.kind)},{id:"messaging",name:"Messaging",filter:e=>[4,9,10,11,12,14,15,40,41,42].includes(e.kind)},{id:"lists",name:"Lists",filter:e=>e.name.toLowerCase().includes("list")||e.name.toLowerCase().includes("set")},{id:"marketplace",name:"Marketplace",filter:e=>[30017,30018,30019,30020,1021,1022,30402,30403].includes(e.kind)},{id:"lightning",name:"Lightning/Zaps",filter:e=>[9734,9735,9041,9321,7374,7375,7376].includes(e.kind)},{id:"media",name:"Media",filter:e=>[20,21,22,1063,1222,1244].includes(e.kind)},{id:"git",name:"Git/Code",filter:e=>[818,1337,1617,1618,1619,1621,1622,30617,30618].includes(e.kind)},{id:"calendar",name:"Calendar",filter:e=>[31922,31923,31924,31925].includes(e.kind)},{id:"groups",name:"Groups",filter:e=>e.kind>=9e3&&e.kind<=9030||e.kind>=39e3&&e.kind<=39009}];function vy(e,t,n){const r=e.slice();return r[13]=t[n],r}function Ay(e,t,n){const r=e.slice();return r[16]=t[n],r}function by(e){let t,n,i,o,s,a,l,c,u,m,v,b,I,x,B,S,F,Q,D,R,$,P,U,T,N,L=e[3].length+"",O=1!==e[3].length?"s":"",M=wy,_=[];for(let t=0;t<M.length;t+=1)_[t]=ky(Ay(e,M,t));function H(e,t){return 0===e[3].length?Ey:Iy}let j=H(e),G=j(e);return{c(){t=g("div"),n=g("div"),i=g("div"),o=g("h2"),o.textContent="Generate Event Template",s=w(),a=g("button"),a.textContent="×",l=w(),c=g("div"),u=g("div"),m=g("input"),v=w(),b=g("div");for(let e=0;e<_.length;e+=1)_[e].c();I=w(),x=g("div"),B=g("div"),G.c(),S=w(),F=g("div"),Q=g("span"),D=y(L),R=y(" event type"),$=y(O),P=w(),U=g("button"),U.textContent="Cancel",k(o,"class","svelte-v55ls1"),k(a,"class","close-btn svelte-v55ls1"),k(i,"class","modal-header svelte-v55ls1"),k(m,"type","text"),k(m,"placeholder","Search by name, description, or kind number..."),k(m,"class","search-input svelte-v55ls1"),k(u,"class","search-box svelte-v55ls1"),k(b,"class","category-tabs svelte-v55ls1"),k(c,"class","modal-filters svelte-v55ls1"),k(B,"class","kinds-list svelte-v55ls1"),k(x,"class","modal-body svelte-v55ls1"),k(Q,"class","result-count svelte-v55ls1"),k(U,"class","cancel-btn svelte-v55ls1"),k(F,"class","modal-footer svelte-v55ls1"),k(n,"class","modal-content svelte-v55ls1"),k(t,"class","modal-backdrop svelte-v55ls1")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(i,o),d(i,s),d(i,a),d(n,l),d(n,c),d(c,u),d(u,m),C(m,e[1]),d(c,v),d(c,b);for(let e=0;e<_.length;e+=1)_[e]&&_[e].m(b,null);d(n,I),d(n,x),d(x,B),G.m(B,null),d(n,S),d(n,F),d(F,Q),d(Q,D),d(Q,R),d(Q,$),d(F,P),d(F,U),T||(N=[A(a,"click",e[5]),A(m,"input",e[9]),A(U,"click",e[5]),A(t,"click",e[7])],T=!0)},p(e,t){if(2&t&&m.value!==e[1]&&C(m,e[1]),4&t){let n;for(M=wy,n=0;n<M.length;n+=1){const r=Ay(e,M,n);_[n]?_[n].p(r,t):(_[n]=ky(r),_[n].c(),_[n].m(b,null))}for(;n<_.length;n+=1)_[n].d(1);_.length=M.length}j===(j=H(e))&&G?G.p(e,t):(G.d(1),G=j(e),G&&(G.c(),G.m(B,null))),8&t&&L!==(L=e[3].length+"")&&E(D,L),8&t&&O!==(O=1!==e[3].length?"s":"")&&E($,O)},d(e){e&&h(t),p(_,e),G.d(),T=!1,r(N)}}}function ky(e){let t,n,r,i,o,s=e[16].name+"";function a(){return e[10](e[16])}return{c(){t=g("button"),n=y(s),r=w(),k(t,"class","category-tab svelte-v55ls1"),F(t,"active",e[2]===e[16].id)},m(e,s){f(e,t,s),d(t,n),d(t,r),i||(o=A(t,"click",a),i=!0)},p(n,r){e=n,4&r&&F(t,"active",e[2]===e[16].id)},d(e){e&&h(t),i=!1,o()}}}function Iy(e){let t,n=e[3],r=[];for(let t=0;t<n.length;t+=1)r[t]=xy(vy(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(24&i){let o;for(n=e[3],o=0;o<n.length;o+=1){const s=vy(e,n,o);r[o]?r[o].p(s,i):(r[o]=xy(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function Ey(e){let t,n,r,i;return{c(){t=g("div"),n=y('No event kinds found matching "'),r=y(e[1]),i=y('"'),k(t,"class","no-results svelte-v55ls1")},m(e,o){f(e,t,o),d(t,n),d(t,r),d(t,i)},p(e,t){2&t&&E(r,e[1])},d(e){e&&h(t)}}}function Cy(e){let t,n,r,i=e[13].nip+"";return{c(){t=g("span"),n=y("NIP-"),r=y(i),k(t,"class","nip-badge svelte-v55ls1")},m(e,i){f(e,t,i),d(t,n),d(t,r)},p(e,t){8&t&&i!==(i=e[13].nip+"")&&E(r,i)},d(e){e&&h(t)}}}function xy(e){let t,n,r,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,F=e[13].kind+"",Q=Fy(e[13])+"",D=e[13].name+"",R=e[13].description+"",$=e[13].nip&&"XX"!==e[13].nip&&Cy(e);function P(){return e[11](e[13])}return{c(){t=g("button"),n=g("div"),r=g("span"),i=y("Kind "),o=y(F),s=w(),a=g("span"),l=y(Q),u=w(),$&&$.c(),p=w(),m=g("div"),v=y(D),b=w(),I=g("div"),C=y(R),x=w(),k(r,"class","kind-number svelte-v55ls1"),k(a,"class",c="kind-badge "+Sy(e[13])+" svelte-v55ls1"),k(n,"class","kind-header svelte-v55ls1"),k(m,"class","kind-name svelte-v55ls1"),k(I,"class","kind-description svelte-v55ls1"),k(t,"class","kind-item svelte-v55ls1")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(r,i),d(r,o),d(n,s),d(n,a),d(a,l),d(n,u),$&&$.m(n,null),d(t,p),d(t,m),d(m,v),d(t,b),d(t,I),d(I,C),d(t,x),B||(S=A(t,"click",P),B=!0)},p(t,r){e=t,8&r&&F!==(F=e[13].kind+"")&&E(o,F),8&r&&Q!==(Q=Fy(e[13])+"")&&E(l,Q),8&r&&c!==(c="kind-badge "+Sy(e[13])+" svelte-v55ls1")&&k(a,"class",c),e[13].nip&&"XX"!==e[13].nip?$?$.p(e,r):($=Cy(e),$.c(),$.m(n,null)):$&&($.d(1),$=null),8&r&&D!==(D=e[13].name+"")&&E(v,D),8&r&&R!==(R=e[13].description+"")&&E(C,R)},d(e){e&&h(t),$&&$.d(),B=!1,S()}}}function By(t){let n,r,i,o=t[0]&&by(t);return{c(){o&&o.c(),n=v()},m(e,s){o&&o.m(e,s),f(e,n,s),r||(i=A(window,"keydown",t[6]),r=!0)},p(e,[t]){e[0]?o?o.p(e,t):(o=by(e),o.c(),o.m(n.parentNode,n)):o&&(o.d(1),o=null)},i:e,o:e,d(e){o&&o.d(e),e&&h(n),r=!1,i()}}}function Sy(e){return e.isAddressable?"badge-addressable":e.isReplaceable?"badge-replaceable":e.kind>=2e4&&e.kind<3e4?"badge-ephemeral":"badge-regular"}function Fy(e){return e.isAddressable?"Addressable":e.isReplaceable?"Replaceable":e.kind>=2e4&&e.kind<3e4?"Ephemeral":"Regular"}function Qy(e,t,n){let{isOpen:r=!1}=t,{userPubkey:i=""}=t;const o=U();let s="",a="all",l=my;function c(e){const t=yy(e.kind,i);o("select",{kind:e,template:t}),u()}function u(){n(0,r=!1),n(1,s=""),n(2,a="all"),o("close")}return e.$$set=e=>{"isOpen"in e&&n(0,r=e.isOpen),"userPubkey"in e&&n(8,i=e.userPubkey)},e.$$.update=()=>{if(6&e.$$.dirty){let e=my;const t=wy.find(e=>e.id===a);if(t&&(e=e.filter(t.filter)),s.trim()){const t=s.toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t)||e.kind.toString().includes(t)||e.nip&&e.nip.includes(t))}n(3,l=e)}},[r,s,a,l,c,u,function(e){"Escape"===e.key&&u()},function(e){e.target===e.currentTarget&&u()},i,function(){s=this.value,n(1,s)},e=>n(2,a=e.id),e=>c(e)]}class Dy extends ce{constructor(e){super(),le(this,e,Qy,By,o,{isOpen:0,userPubkey:8})}}function Ry(e){let t,n,r,i,o,s,a,l,c,u;return{c(){t=g("div"),n=g("div"),r=g("span"),r.textContent="⚠",i=w(),o=g("span"),s=y(e[1]),a=w(),l=g("button"),l.textContent="×",k(r,"class","error-icon svelte-46pmgb"),k(o,"class","error-message svelte-46pmgb"),k(n,"class","error-content svelte-46pmgb"),k(l,"class","error-dismiss svelte-46pmgb"),k(t,"class","error-banner svelte-46pmgb")},m(h,p){f(h,t,p),d(t,n),d(n,r),d(n,i),d(n,o),d(o,s),d(t,a),d(t,l),c||(u=A(l,"click",e[10]),c=!0)},p(e,t){2&t&&E(s,e[1])},d(e){e&&h(t),c=!1,u()}}}function $y(e){let t,n,i,o,s,a,l,c,u,p,m,y,v,b,I,E,x,B,S,F=e[1]&&Ry(e);function Q(t){e[14](t)}let D={userPubkey:e[2]};return void 0!==e[3]&&(D.isOpen=e[3]),I=new Dy({props:D}),L.push(()=>re(I,"isOpen",Q)),I.$on("select",e[8]),I.$on("close",e[9]),{c(){t=g("div"),n=g("div"),i=g("button"),i.textContent="Generate Template",o=w(),s=g("button"),s.textContent="Reformat",a=w(),l=g("button"),l.textContent="Sign",c=w(),u=g("button"),u.textContent="Publish",p=w(),F&&F.c(),m=w(),y=g("div"),v=g("textarea"),b=w(),ie(I.$$.fragment),k(i,"class","compose-btn template-btn svelte-46pmgb"),k(s,"class","compose-btn reformat-btn svelte-46pmgb"),k(l,"class","compose-btn sign-btn svelte-46pmgb"),k(u,"class","compose-btn publish-btn svelte-46pmgb"),k(n,"class","compose-header svelte-46pmgb"),k(v,"class","compose-textarea svelte-46pmgb"),k(v,"placeholder","Enter your Nostr event JSON here, or click 'Generate Template' to start with a template..."),k(v,"spellcheck","false"),k(y,"class","compose-editor svelte-46pmgb"),k(t,"class","compose-view svelte-46pmgb")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(n,a),d(n,l),d(n,c),d(n,u),d(t,p),F&&F.m(t,null),d(t,m),d(t,y),d(y,v),C(v,e[0]),f(r,b,h),oe(I,r,h),x=!0,B||(S=[A(i,"click",e[7]),A(s,"click",e[4]),A(l,"click",e[5]),A(u,"click",e[6]),A(v,"input",e[13])],B=!0)},p(e,[n]){e[1]?F?F.p(e,n):(F=Ry(e),F.c(),F.m(t,m)):F&&(F.d(1),F=null),1&n&&C(v,e[0]);const r={};4&n&&(r.userPubkey=e[2]),!E&&8&n&&(E=!0,r.isOpen=e[3],G(()=>E=!1)),I.$set(r)},i(e){x||(X(I.$$.fragment,e),x=!0)},o(e){ee(I.$$.fragment,e),x=!1},d(e){e&&h(t),F&&F.d(),e&&h(b),se(I,e),B=!1,r(S)}}}function Py(e,t,n){let{composeEventJson:r=""}=t,{userPubkey:i=""}=t,{userRole:o=""}=t,{policyEnabled:s=!1}=t,{publishError:a=""}=t;const l=U();let c=!1;return e.$$set=e=>{"composeEventJson"in e&&n(0,r=e.composeEventJson),"userPubkey"in e&&n(2,i=e.userPubkey),"userRole"in e&&n(11,o=e.userRole),"policyEnabled"in e&&n(12,s=e.policyEnabled),"publishError"in e&&n(1,a=e.publishError)},[r,a,i,c,function(){l("reformatJson")},function(){l("signEvent")},function(){l("publishEvent")},function(){n(3,c=!0)},function(e){const{kind:t,template:i}=e.detail;n(0,r=JSON.stringify(i,null,2)),l("templateSelected",{kind:t,template:i})},function(){n(3,c=!1)},function(){n(1,a=""),l("clearError")},o,s,function(){r=this.value,n(0,r)},function(e){c=e,n(3,c)}]}class Uy extends ce{constructor(e){super(),le(this,e,Py,$y,o,{composeEventJson:0,userPubkey:2,userRole:11,policyEnabled:12,publishError:1})}}function Ty(e,t,n){const r=e.slice();return r[23]=t[n],r}function Ny(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in to access sprocket management.",i=w(),o=g("button"),o.textContent="Log In",k(r,"class","svelte-fiaj1r"),k(o,"class","login-btn svelte-fiaj1r"),k(n,"class","login-prompt svelte-fiaj1r")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[18]),s=!0)},p:e,d(e){e&&h(n),s=!1,a()}}}function Ly(e){let t,n,r,i,o,s,a,l,c,u=(e[2]||"none")+"";return{c(){t=g("div"),n=g("p"),n.textContent="❌ Owner permission required for sprocket management.",r=w(),i=g("p"),i.innerHTML='To enable sprocket functionality, set the <code class="svelte-fiaj1r">ORLY_OWNERS</code> environment variable with your npub when starting the relay.',o=w(),s=g("p"),a=y("Current user role: "),l=g("strong"),c=y(u),k(n,"class","svelte-fiaj1r"),k(i,"class","svelte-fiaj1r"),k(s,"class","svelte-fiaj1r"),k(t,"class","permission-denied svelte-fiaj1r")},m(e,u){f(e,t,u),d(t,n),d(t,r),d(t,i),d(t,o),d(t,s),d(s,a),d(s,l),d(l,c)},p(e,t){4&t&&u!==(u=(e[2]||"none")+"")&&E(c,u)},d(e){e&&h(t)}}}function Oy(e){let t,n,i,o,s,a,l,c,u,m,v,b,I,x,B,S,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V,Y,z,W,Z,X,ee,te,ne,re,ie,oe,se,ae,le,ce,ue,de,fe,he,pe,ge,me=e[3]?.is_running?"🟢 Running":"🔴 Stopped",ye=e[3]?.script_exists?"✅ Exists":"❌ Not found",we=e[3]?.pid&&My(e),ve=e[6]&&_y(e),Ae=e[8],be=[];for(let t=0;t<Ae.length;t+=1)be[t]=Gy(Ty(e,Ae,t));return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Script Editor",o=w(),s=g("div"),a=g("button"),l=y("🔄 Restart"),c=w(),u=g("button"),m=y("🗑️ Delete Script"),b=w(),I=g("div"),x=g("h4"),x.textContent="Upload Script",B=w(),S=g("div"),Q=g("input"),D=w(),R=g("button"),$=y("📤 Upload & Update"),U=w(),T=g("div"),N=g("div"),L=g("span"),L.textContent="Status:",O=w(),M=g("span"),_=y(me),H=w(),we&&we.c(),j=w(),G=g("div"),q=g("span"),q.textContent="Script:",K=w(),J=g("span"),V=y(ye),Y=w(),z=g("div"),W=g("textarea"),Z=w(),X=g("div"),ee=g("button"),te=y("💾 Save & Update"),ne=w(),re=g("button"),ie=y("📥 Load Current"),oe=w(),ve&&ve.c(),se=w(),ae=g("div"),le=g("h3"),le.textContent="Script Versions",ce=w(),ue=g("div");for(let e=0;e<be.length;e+=1)be[e].c();de=w(),fe=g("button"),he=y("🔄 Refresh Versions"),k(i,"class","svelte-fiaj1r"),k(a,"class","sprocket-btn restart-btn svelte-fiaj1r"),a.disabled=e[4],k(u,"class","sprocket-btn delete-btn svelte-fiaj1r"),u.disabled=v=e[4]||!e[3]?.script_exists,k(s,"class","sprocket-controls svelte-fiaj1r"),k(n,"class","sprocket-header svelte-fiaj1r"),k(x,"class","svelte-fiaj1r"),k(Q,"type","file"),k(Q,"id","sprocket-upload-file"),k(Q,"accept",".sh,.bash"),Q.disabled=e[4],k(Q,"class","svelte-fiaj1r"),k(R,"class","sprocket-btn upload-btn svelte-fiaj1r"),R.disabled=P=e[4]||!e[5],k(S,"class","upload-controls svelte-fiaj1r"),k(I,"class","sprocket-upload-section svelte-fiaj1r"),k(L,"class","status-label svelte-fiaj1r"),k(M,"class","status-value svelte-fiaj1r"),F(M,"running",e[3]?.is_running),k(N,"class","status-item svelte-fiaj1r"),k(q,"class","status-label svelte-fiaj1r"),k(J,"class","status-value svelte-fiaj1r"),k(G,"class","status-item svelte-fiaj1r"),k(T,"class","sprocket-status svelte-fiaj1r"),k(W,"class","script-editor svelte-fiaj1r"),k(W,"placeholder","#!/bin/bash # Enter your sprocket script here..."),W.disabled=e[4],k(z,"class","script-editor-container svelte-fiaj1r"),k(ee,"class","sprocket-btn save-btn svelte-fiaj1r"),ee.disabled=e[4],k(re,"class","sprocket-btn load-btn svelte-fiaj1r"),re.disabled=e[4],k(X,"class","script-actions svelte-fiaj1r"),k(t,"class","sprocket-section svelte-fiaj1r"),k(ue,"class","versions-list svelte-fiaj1r"),k(fe,"class","sprocket-btn refresh-btn svelte-fiaj1r"),fe.disabled=e[4],k(ae,"class","sprocket-section svelte-fiaj1r")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(s,c),d(s,u),d(u,m),d(t,b),d(t,I),d(I,x),d(I,B),d(I,S),d(S,Q),d(S,D),d(S,R),d(R,$),d(t,U),d(t,T),d(T,N),d(N,L),d(N,O),d(N,M),d(M,_),d(T,H),we&&we.m(T,null),d(T,j),d(T,G),d(G,q),d(G,K),d(G,J),d(J,V),d(t,Y),d(t,z),d(z,W),C(W,e[0]),d(t,Z),d(t,X),d(X,ee),d(ee,te),d(X,ne),d(X,re),d(re,ie),d(t,oe),ve&&ve.m(t,null),f(r,se,h),f(r,ae,h),d(ae,le),d(ae,ce),d(ae,ue);for(let e=0;e<be.length;e+=1)be[e]&&be[e].m(ue,null);d(ae,de),d(ae,fe),d(fe,he),pe||(ge=[A(a,"click",e[9]),A(u,"click",e[10]),A(Q,"change",e[11]),A(R,"click",e[12]),A(W,"input",e[19]),A(ee,"click",e[13]),A(re,"click",e[14]),A(fe,"click",e[15])],pe=!0)},p(e,n){if(16&n&&(a.disabled=e[4]),24&n&&v!==(v=e[4]||!e[3]?.script_exists)&&(u.disabled=v),16&n&&(Q.disabled=e[4]),48&n&&P!==(P=e[4]||!e[5])&&(R.disabled=P),8&n&&me!==(me=e[3]?.is_running?"🟢 Running":"🔴 Stopped")&&E(_,me),8&n&&F(M,"running",e[3]?.is_running),e[3]?.pid?we?we.p(e,n):(we=My(e),we.c(),we.m(T,j)):we&&(we.d(1),we=null),8&n&&ye!==(ye=e[3]?.script_exists?"✅ Exists":"❌ Not found")&&E(V,ye),16&n&&(W.disabled=e[4]),1&n&&C(W,e[0]),16&n&&(ee.disabled=e[4]),16&n&&(re.disabled=e[4]),e[6]?ve?ve.p(e,n):(ve=_y(e),ve.c(),ve.m(t,null)):ve&&(ve.d(1),ve=null),196880&n){let t;for(Ae=e[8],t=0;t<Ae.length;t+=1){const r=Ty(e,Ae,t);be[t]?be[t].p(r,n):(be[t]=Gy(r),be[t].c(),be[t].m(ue,null))}for(;t<be.length;t+=1)be[t].d(1);be.length=Ae.length}16&n&&(fe.disabled=e[4])},d(e){e&&h(t),we&&we.d(),ve&&ve.d(),e&&h(se),e&&h(ae),p(be,e),pe=!1,r(ge)}}}function My(e){let t,n,r,i,o,s=e[3].pid+"";return{c(){t=g("div"),n=g("span"),n.textContent="PID:",r=w(),i=g("span"),o=y(s),k(n,"class","status-label svelte-fiaj1r"),k(i,"class","status-value svelte-fiaj1r"),k(t,"class","status-item svelte-fiaj1r")},m(e,s){f(e,t,s),d(t,n),d(t,r),d(t,i),d(i,o)},p(e,t){8&t&&s!==(s=e[3].pid+"")&&E(o,s)},d(e){e&&h(t)}}}function _y(e){let t,n;return{c(){t=g("div"),n=y(e[6]),k(t,"class","sprocket-message svelte-fiaj1r"),F(t,"error","error"===e[7])},m(e,r){f(e,t,r),d(t,n)},p(e,r){64&r&&E(n,e[6]),128&r&&F(t,"error","error"===e[7])},d(e){e&&h(t)}}}function Hy(e){let t;return{c(){t=g("span"),t.textContent="Current",k(t,"class","current-badge svelte-fiaj1r")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function jy(e){let t,n,r,i;function o(){return e[21](e[23])}return{c(){t=g("button"),n=y("🗑️ Delete"),k(t,"class","version-btn delete-btn svelte-fiaj1r"),t.disabled=e[4]},m(e,s){f(e,t,s),d(t,n),r||(i=A(t,"click",o),r=!0)},p(n,r){e=n,16&r&&(t.disabled=e[4])},d(e){e&&h(t),r=!1,i()}}}function Gy(e){let t,n,r,i,o,s,a,l,c,u,p,m,v,b,I,C,x=e[23].name+"",B=new Date(e[23].modified).toLocaleString()+"",S=e[23].is_current&&Hy();function Q(){return e[20](e[23])}let D=!e[23].is_current&&jy(e);return{c(){t=g("div"),n=g("div"),r=g("div"),i=y(x),o=w(),s=g("div"),a=y(B),l=w(),S&&S.c(),c=w(),u=g("div"),p=g("button"),m=y("📥 Load"),v=w(),D&&D.c(),b=w(),k(r,"class","version-name svelte-fiaj1r"),k(s,"class","version-date svelte-fiaj1r"),k(n,"class","version-info svelte-fiaj1r"),k(p,"class","version-btn load-btn svelte-fiaj1r"),p.disabled=e[4],k(u,"class","version-actions svelte-fiaj1r"),k(t,"class","version-item svelte-fiaj1r"),F(t,"current",e[23].is_current)},m(e,h){f(e,t,h),d(t,n),d(n,r),d(r,i),d(n,o),d(n,s),d(s,a),d(s,l),S&&S.m(s,null),d(t,c),d(t,u),d(u,p),d(p,m),d(u,v),D&&D.m(u,null),d(t,b),I||(C=A(p,"click",Q),I=!0)},p(n,r){e=n,256&r&&x!==(x=e[23].name+"")&&E(i,x),256&r&&B!==(B=new Date(e[23].modified).toLocaleString()+"")&&E(a,B),e[23].is_current?S||(S=Hy(),S.c(),S.m(s,null)):S&&(S.d(1),S=null),16&r&&(p.disabled=e[4]),e[23].is_current?D&&(D.d(1),D=null):D?D.p(e,r):(D=jy(e),D.c(),D.m(u,null)),256&r&&F(t,"current",e[23].is_current)},d(e){e&&h(t),S&&S.d(),D&&D.d(),I=!1,C()}}}function qy(t){let n,r,i;function o(e,t){return e[1]&&"owner"===e[2]?Oy:e[1]?Ly:Ny}let s=o(t),a=s(t);return{c(){n=g("div"),r=g("h2"),r.textContent="Sprocket Script Management",i=w(),a.c(),k(r,"class","svelte-fiaj1r"),k(n,"class","sprocket-view svelte-fiaj1r")},m(e,t){f(e,n,t),d(n,r),d(n,i),a.m(n,null)},p(e,[t]){s===(s=o(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&&h(n),a.d()}}}function Ky(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:i=""}=t,{sprocketStatus:o=null}=t,{isLoadingSprocket:s=!1}=t,{sprocketUploadFile:a=null}=t,{sprocketScript:l=""}=t,{sprocketMessage:c=""}=t,{sprocketMessageType:u=""}=t,{sprocketVersions:d=[]}=t;const f=U();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,i=e.userRole),"sprocketStatus"in e&&n(3,o=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,i,o,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 Jy extends ce{constructor(e){super(),le(this,e,Ky,qy,o,{isLoggedIn:1,userRole:2,sprocketStatus:3,isLoadingSprocket:4,sprocketUploadFile:5,sprocketScript:0,sprocketMessage:6,sprocketMessageType:7,sprocketVersions:8})}}function Vy(e,t,n){const r=e.slice();return r[26]=t[n],r}function Yy(e,t,n){const r=e.slice();return r[29]=t[n],r}function zy(e,t,n){const r=e.slice();return r[32]=t[n],r}function Wy(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in to access policy configuration.",i=w(),o=g("button"),o.textContent="Log In",k(r,"class","svelte-gkxvxc"),k(o,"class","login-btn svelte-gkxvxc"),k(n,"class","login-prompt svelte-gkxvxc")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[16]),s=!0)},p:e,d(e){e&&h(n),s=!1,a()}}}function Zy(e){let t,n,r,i,o,s,a,l,c,u=(e[3]||"none")+"";return{c(){t=g("div"),n=g("p"),n.textContent="Policy configuration requires owner or policy admin permissions.",r=w(),i=g("p"),i.innerHTML='To become a policy admin, ask an existing policy admin to add your pubkey\n to the <code class="svelte-gkxvxc">policy_admins</code> list.',o=w(),s=g("p"),a=y("Current user role: "),l=g("strong"),c=y(u),k(n,"class","svelte-gkxvxc"),k(i,"class","svelte-gkxvxc"),k(s,"class","svelte-gkxvxc"),k(t,"class","permission-denied svelte-gkxvxc")},m(e,u){f(e,t,u),d(t,n),d(t,r),d(t,i),d(t,o),d(t,s),d(s,a),d(s,l),d(l,c)},p(e,t){8&t[0]&&u!==(u=(e[3]||"none")+"")&&E(c,u)},d(e){e&&h(t)}}}function Xy(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,x,B,S,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V,Y,z,W,Z,X,ee,te,ne,re,ie,oe,se,ae,le,ce,ue,de,fe,he,pe,ge,me,ye,we,ve,Ae,be,ke,Ie,Ee,Ce,xe,Be,Se,Fe,Qe,De,Re,$e,Pe=e[5]?"Policy Enabled":"Policy Disabled",Ue=e[10].length+"",Te=e[4]&&ew(),Ne=e[9].length>0&&tw(e),Le=e[7]&&rw(e);function Oe(e,t){return 0===e[1].length?ow:iw}let Me=Oe(e),_e=Me(e);function He(e,t){return 0===e[10].length?lw:aw}let je=He(e),Ge=je(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Policy Editor",o=w(),s=g("div"),a=g("span"),l=y(Pe),c=w(),Te&&Te.c(),u=w(),p=g("div"),p.innerHTML='<p class="svelte-gkxvxc">Edit the policy JSON below and click "Save & Publish" to update the relay's policy configuration.\n Changes are applied immediately after validation.</p> \n <p class="info-note svelte-gkxvxc">Policy updates are published as kind 12345 events and require policy admin permissions.</p>',m=w(),v=g("div"),b=g("textarea"),I=w(),Ne&&Ne.c(),x=w(),B=g("div"),S=g("button"),Q=y("Load Current"),D=w(),R=g("button"),$=y("Format JSON"),P=w(),U=g("button"),T=y("Validate"),N=w(),L=g("button"),O=y("Save & Publish"),M=w(),Le&&Le.c(),_=w(),H=g("div"),j=g("h3"),j.textContent="Policy Administrators",G=w(),q=g("div"),q.innerHTML='<p class="svelte-gkxvxc">Policy admins can update the relay's policy configuration via kind 12345 events.\n Their follows get whitelisted if <code>policy_follow_whitelist_enabled</code> is true in the policy.</p> \n <p class="info-note svelte-gkxvxc"><strong>Note:</strong> Policy admins are separate from relay admins (ORLY_ADMINS).\n Changes here update the JSON editor - click "Save & Publish" to apply.</p>',K=w(),J=g("div"),_e.c(),V=w(),Y=g("div"),z=g("input"),W=w(),Z=g("button"),X=y("+ Add Admin"),te=w(),ne=g("div"),re=g("h3"),re.textContent="Policy Follow Whitelist",ie=w(),oe=g("div"),oe.innerHTML='<p class="svelte-gkxvxc">Pubkeys followed by policy admins (kind 3 events).\n These get automatic read+write access when rules have <code>write_allow_follows: true</code>.</p>',se=w(),ae=g("div"),le=g("span"),ce=y(Ue),ue=y(" pubkey(s) in whitelist"),de=w(),fe=g("button"),he=y("🔄 Refresh Follows"),pe=w(),ge=g("div"),Ge.c(),me=w(),ye=g("div"),we=g("h3"),we.textContent="Policy Reference",ve=w(),Ae=g("div"),be=g("h4"),be.textContent="Structure Overview",ke=w(),Ie=g("ul"),Ie.innerHTML='<li class="svelte-gkxvxc"><code class="svelte-gkxvxc">kind.whitelist</code> - Only allow these event kinds (takes precedence)</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">kind.blacklist</code> - Deny these event kinds (if no whitelist)</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">global</code> - Rules applied to all events</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">rules</code> - Per-kind rules (keyed by kind number as string)</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">default_policy</code> - "allow" or "deny" when no rules match</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">policy_admins</code> - Hex pubkeys that can update policy</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">policy_follow_whitelist_enabled</code> - Enable follow-based access</li>',Ee=w(),Ce=g("h4"),Ce.textContent="Rule Fields",xe=w(),Be=g("ul"),Be.innerHTML='<li class="svelte-gkxvxc"><code class="svelte-gkxvxc">description</code> - Human-readable rule description</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">write_allow</code> / <code class="svelte-gkxvxc">write_deny</code> - Pubkey lists for write access</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">read_allow</code> / <code class="svelte-gkxvxc">read_deny</code> - Pubkey lists for read access</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">write_allow_follows</code> - Grant access to policy admin follows</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">size_limit</code> - Max total event size in bytes</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">content_limit</code> - Max content field size in bytes</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">max_expiry</code> - Max expiry offset in seconds</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">max_age_of_event</code> - Max age of created_at in seconds</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">max_age_event_in_future</code> - Max future offset in seconds</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">must_have_tags</code> - Required tag letters (e.g., ["d", "t"])</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">tag_validation</code> - Regex patterns for tag values</li> \n <li class="svelte-gkxvxc"><code class="svelte-gkxvxc">script</code> - Path to external validation script</li>',Se=w(),Fe=g("h4"),Fe.textContent="Example Policy",Qe=w(),De=g("pre"),De.textContent=`${e[20]}`,k(i,"class","svelte-gkxvxc"),k(a,"class","status-badge svelte-gkxvxc"),F(a,"enabled",e[5]),k(s,"class","policy-status svelte-gkxvxc"),k(n,"class","policy-header svelte-gkxvxc"),k(p,"class","policy-info svelte-gkxvxc"),k(b,"class","policy-editor svelte-gkxvxc"),k(b,"placeholder","Loading policy configuration..."),b.disabled=e[6],k(b,"spellcheck","false"),k(v,"class","editor-container svelte-gkxvxc"),k(S,"class","policy-btn load-btn svelte-gkxvxc"),S.disabled=e[6],k(R,"class","policy-btn format-btn svelte-gkxvxc"),R.disabled=e[6],k(U,"class","policy-btn validate-btn svelte-gkxvxc"),U.disabled=e[6],k(L,"class","policy-btn save-btn svelte-gkxvxc"),L.disabled=e[6],k(B,"class","policy-actions svelte-gkxvxc"),k(t,"class","policy-section svelte-gkxvxc"),k(q,"class","policy-info svelte-gkxvxc"),k(J,"class","admin-list svelte-gkxvxc"),k(z,"type","text"),k(z,"placeholder","npub or hex pubkey"),z.disabled=e[6],k(z,"class","svelte-gkxvxc"),k(Z,"class","policy-btn add-btn svelte-gkxvxc"),Z.disabled=ee=e[6]||!e[11].trim(),k(Y,"class","add-admin svelte-gkxvxc"),k(H,"class","policy-section svelte-gkxvxc"),k(oe,"class","policy-info svelte-gkxvxc"),k(le,"class","follows-count svelte-gkxvxc"),k(fe,"class","policy-btn refresh-btn svelte-gkxvxc"),fe.disabled=e[6],k(ae,"class","follows-header svelte-gkxvxc"),k(ge,"class","follows-list svelte-gkxvxc"),k(ne,"class","policy-section svelte-gkxvxc"),k(be,"class","svelte-gkxvxc"),k(Ie,"class","field-list svelte-gkxvxc"),k(Ce,"class","svelte-gkxvxc"),k(Be,"class","field-list svelte-gkxvxc"),k(Fe,"class","svelte-gkxvxc"),k(De,"class","example-json svelte-gkxvxc"),k(Ae,"class","reference-content svelte-gkxvxc"),k(ye,"class","policy-section svelte-gkxvxc")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(s,c),Te&&Te.m(s,null),d(t,u),d(t,p),d(t,m),d(t,v),d(v,b),C(b,e[0]),d(t,I),Ne&&Ne.m(t,null),d(t,x),d(t,B),d(B,S),d(S,Q),d(B,D),d(B,R),d(R,$),d(B,P),d(B,U),d(U,T),d(B,N),d(B,L),d(L,O),d(t,M),Le&&Le.m(t,null),f(r,_,h),f(r,H,h),d(H,j),d(H,G),d(H,q),d(H,K),d(H,J),_e.m(J,null),d(H,V),d(H,Y),d(Y,z),C(z,e[11]),d(Y,W),d(Y,Z),d(Z,X),f(r,te,h),f(r,ne,h),d(ne,re),d(ne,ie),d(ne,oe),d(ne,se),d(ne,ae),d(ae,le),d(le,ce),d(le,ue),d(ae,de),d(ae,fe),d(fe,he),d(ne,pe),d(ne,ge),Ge.m(ge,null),f(r,me,h),f(r,ye,h),d(ye,we),d(ye,ve),d(ye,Ae),d(Ae,be),d(Ae,ke),d(Ae,Ie),d(Ae,Ee),d(Ae,Ce),d(Ae,xe),d(Ae,Be),d(Ae,Se),d(Ae,Fe),d(Ae,Qe),d(Ae,De),Re||($e=[A(b,"input",e[21]),A(S,"click",e[12]),A(R,"click",e[15]),A(U,"click",e[13]),A(L,"click",e[14]),A(z,"input",e[23]),A(z,"keydown",e[24]),A(Z,"click",e[18]),A(fe,"click",e[17])],Re=!0)},p(e,n){32&n[0]&&Pe!==(Pe=e[5]?"Policy Enabled":"Policy Disabled")&&E(l,Pe),32&n[0]&&F(a,"enabled",e[5]),e[4]?Te||(Te=ew(),Te.c(),Te.m(s,null)):Te&&(Te.d(1),Te=null),64&n[0]&&(b.disabled=e[6]),1&n[0]&&C(b,e[0]),e[9].length>0?Ne?Ne.p(e,n):(Ne=tw(e),Ne.c(),Ne.m(t,x)):Ne&&(Ne.d(1),Ne=null),64&n[0]&&(S.disabled=e[6]),64&n[0]&&(R.disabled=e[6]),64&n[0]&&(U.disabled=e[6]),64&n[0]&&(L.disabled=e[6]),e[7]?Le?Le.p(e,n):(Le=rw(e),Le.c(),Le.m(t,null)):Le&&(Le.d(1),Le=null),Me===(Me=Oe(e))&&_e?_e.p(e,n):(_e.d(1),_e=Me(e),_e&&(_e.c(),_e.m(J,null))),64&n[0]&&(z.disabled=e[6]),2048&n[0]&&z.value!==e[11]&&C(z,e[11]),2112&n[0]&&ee!==(ee=e[6]||!e[11].trim())&&(Z.disabled=ee),1024&n[0]&&Ue!==(Ue=e[10].length+"")&&E(ce,Ue),64&n[0]&&(fe.disabled=e[6]),je===(je=He(e))&&Ge?Ge.p(e,n):(Ge.d(1),Ge=je(e),Ge&&(Ge.c(),Ge.m(ge,null)))},d(e){e&&h(t),Te&&Te.d(),Ne&&Ne.d(),Le&&Le.d(),e&&h(_),e&&h(H),_e.d(),e&&h(te),e&&h(ne),Ge.d(),e&&h(me),e&&h(ye),Re=!1,r($e)}}}function ew(e){let t;return{c(){t=g("span"),t.textContent="Policy Admin",k(t,"class","admin-badge svelte-gkxvxc")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function tw(e){let t,n,r,i,o=e[9],s=[];for(let t=0;t<o.length;t+=1)s[t]=nw(zy(e,o,t));return{c(){t=g("div"),n=g("h4"),n.textContent="Validation Errors:",r=w(),i=g("ul");for(let e=0;e<s.length;e+=1)s[e].c();k(n,"class","svelte-gkxvxc"),k(i,"class","svelte-gkxvxc"),k(t,"class","validation-errors svelte-gkxvxc")},m(e,o){f(e,t,o),d(t,n),d(t,r),d(t,i);for(let e=0;e<s.length;e+=1)s[e]&&s[e].m(i,null)},p(e,t){if(512&t[0]){let n;for(o=e[9],n=0;n<o.length;n+=1){const r=zy(e,o,n);s[n]?s[n].p(r,t):(s[n]=nw(r),s[n].c(),s[n].m(i,null))}for(;n<s.length;n+=1)s[n].d(1);s.length=o.length}},d(e){e&&h(t),p(s,e)}}}function nw(e){let t,n,r=e[32]+"";return{c(){t=g("li"),n=y(r),k(t,"class","svelte-gkxvxc")},m(e,r){f(e,t,r),d(t,n)},p(e,t){512&t[0]&&r!==(r=e[32]+"")&&E(n,r)},d(e){e&&h(t)}}}function rw(e){let t,n;return{c(){t=g("div"),n=y(e[7]),k(t,"class","policy-message svelte-gkxvxc"),F(t,"error","error"===e[8]),F(t,"success","success"===e[8])},m(e,r){f(e,t,r),d(t,n)},p(e,r){128&r[0]&&E(n,e[7]),256&r[0]&&F(t,"error","error"===e[8]),256&r[0]&&F(t,"success","success"===e[8])},d(e){e&&h(t)}}}function iw(e){let t,n=e[1],r=[];for(let t=0;t<n.length;t+=1)r[t]=sw(Yy(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(524354&i[0]){let o;for(n=e[1],o=0;o<n.length;o+=1){const s=Yy(e,n,o);r[o]?r[o].p(s,i):(r[o]=sw(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function ow(t){let n;return{c(){n=g("p"),n.textContent="No policy admins configured",k(n,"class","no-items svelte-gkxvxc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function sw(e){let t,n,r,i,o,s,a,l,c,u,p,m,v=e[29].substring(0,16)+"",b=e[29].substring(e[29].length-8)+"";function I(){return e[22](e[29])}return{c(){t=g("div"),n=g("span"),r=y(v),i=y("..."),o=y(b),a=w(),l=g("button"),c=y("✕"),u=w(),k(n,"class","admin-pubkey svelte-gkxvxc"),k(n,"title",s=e[29]),k(l,"class","remove-btn svelte-gkxvxc"),l.disabled=e[6],k(l,"title","Remove admin"),k(t,"class","admin-item svelte-gkxvxc")},m(e,s){f(e,t,s),d(t,n),d(n,r),d(n,i),d(n,o),d(t,a),d(t,l),d(l,c),d(t,u),p||(m=A(l,"click",I),p=!0)},p(t,i){e=t,2&i[0]&&v!==(v=e[29].substring(0,16)+"")&&E(r,v),2&i[0]&&b!==(b=e[29].substring(e[29].length-8)+"")&&E(o,b),2&i[0]&&s!==(s=e[29])&&k(n,"title",s),64&i[0]&&(l.disabled=e[6])},d(e){e&&h(t),p=!1,m()}}}function aw(e){let t,n=e[10],r=[];for(let t=0;t<n.length;t+=1)r[t]=cw(Vy(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","follows-grid svelte-gkxvxc")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(1024&i[0]){let o;for(n=e[10],o=0;o<n.length;o+=1){const s=Vy(e,n,o);r[o]?r[o].p(s,i):(r[o]=cw(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function lw(t){let n;return{c(){n=g("p"),n.textContent='No follows loaded. Click "Refresh Follows" to load from database.',k(n,"class","no-items svelte-gkxvxc")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function cw(e){let t,n,r,i,o,s,a=e[26].substring(0,12)+"",l=e[26].substring(e[26].length-6)+"";return{c(){t=g("div"),n=y(a),r=y("..."),i=y(l),o=w(),k(t,"class","follow-item svelte-gkxvxc"),k(t,"title",s=e[26])},m(e,s){f(e,t,s),d(t,n),d(t,r),d(t,i),d(t,o)},p(e,r){1024&r[0]&&a!==(a=e[26].substring(0,12)+"")&&E(n,a),1024&r[0]&&l!==(l=e[26].substring(e[26].length-6)+"")&&E(i,l),1024&r[0]&&s!==(s=e[26])&&k(t,"title",s)},d(e){e&&h(t)}}}function uw(t){let n,r,i;function o(e,t){return e[2]&&("owner"===e[3]||e[4])?Xy:e[2]?Zy:Wy}let s=o(t),a=s(t);return{c(){n=g("div"),r=g("h2"),r.textContent="Policy Configuration",i=w(),a.c(),k(r,"class","svelte-gkxvxc"),k(n,"class","policy-view svelte-gkxvxc")},m(e,t){f(e,n,t),d(n,r),d(n,i),a.m(n,null)},p(e,t){s===(s=o(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&&h(n),a.d()}}}function dw(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:i=""}=t,{isPolicyAdmin:o=!1}=t,{policyEnabled:s=!1}=t,{policyJson:a=""}=t,{isLoadingPolicy:l=!1}=t,{policyMessage:c=""}=t,{policyMessageType:u=""}=t,{validationErrors:d=[]}=t,{policyAdmins:f=[]}=t,{policyFollows:h=[]}=t;const p=U();let g="";function m(){g.trim()&&(p("addPolicyAdmin",g.trim()),n(11,g=""))}function y(e){p("removePolicyAdmin",e)}return e.$$set=e=>{"isLoggedIn"in e&&n(2,r=e.isLoggedIn),"userRole"in e&&n(3,i=e.userRole),"isPolicyAdmin"in e&&n(4,o=e.isPolicyAdmin),"policyEnabled"in e&&n(5,s=e.policyEnabled),"policyJson"in e&&n(0,a=e.policyJson),"isLoadingPolicy"in e&&n(6,l=e.isLoadingPolicy),"policyMessage"in e&&n(7,c=e.policyMessage),"policyMessageType"in e&&n(8,u=e.policyMessageType),"validationErrors"in e&&n(9,d=e.validationErrors),"policyAdmins"in e&&n(1,f=e.policyAdmins),"policyFollows"in e&&n(10,h=e.policyFollows)},e.$$.update=()=>{if(1&e.$$.dirty[0])try{if(a){const e=JSON.parse(a);n(1,f=e.policy_admins||[])}}catch(e){}},[a,f,r,i,o,s,l,c,u,d,h,g,function(){p("loadPolicy")},function(){p("validatePolicy")},function(){p("savePolicy")},function(){p("formatJson")},function(){p("openLoginModal")},function(){p("refreshFollows")},m,y,'{\n "kind": {\n "whitelist": [0, 1, 3, 6, 7, 10002],\n "blacklist": []\n },\n "global": {\n "description": "Global rules applied to all events",\n "size_limit": 65536,\n "max_age_of_event": 86400,\n "max_age_event_in_future": 300\n },\n "rules": {\n "1": {\n "description": "Kind 1 (short text notes)",\n "content_limit": 8192,\n "write_allow_follows": true\n },\n "30023": {\n "description": "Long-form articles",\n "content_limit": 100000,\n "tag_validation": {\n "d": "^[a-z0-9-]{1,64}$",\n "t": "^[a-z0-9-]{1,32}$"\n }\n }\n },\n "default_policy": "allow",\n "policy_admins": ["<your-hex-pubkey>"],\n "policy_follow_whitelist_enabled": true\n}',function(){a=this.value,n(0,a)},e=>y(e),function(){g=this.value,n(11,g)},e=>"Enter"===e.key&&m()]}class fw extends ce{constructor(e){super(),le(this,e,dw,uw,o,{isLoggedIn:2,userRole:3,isPolicyAdmin:4,policyEnabled:5,policyJson:0,isLoadingPolicy:6,policyMessage:7,policyMessageType:8,validationErrors:9,policyAdmins:1,policyFollows:10},null,[-1,-1])}}const{window:hw}=u;function pw(e,t,n){const r=e.slice();return r[57]=t[n],r}function gw(e,t,n){const r=e.slice();return r[54]=t[n],r}function mw(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in to view your Blossom storage.",i=w(),o=g("button"),o.textContent="Log In",k(r,"class","svelte-on0yal"),k(o,"class","login-btn svelte-on0yal"),k(n,"class","login-prompt svelte-on0yal")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[20]),s=!0)},p:e,d(e){e&&h(n),s=!1,a()}}}function yw(e){let t,n,r,i,o,s,a,l,c,u,p,m,v,b,I=e[0]||e[12]?"Loading...":"Refresh";function C(e,t){return e[13]?Aw:e[10]?vw:ww}let x=C(e),B=x(e),S=e[14]&&!e[10]&&!e[13]&&kw(e),F=!e[10]&&!e[13]&&Iw(e),Q=e[2]&&Cw(e);function D(e,t){return e[10]&&!e[13]?Bw:xw}let R=D(e),$=R(e);return{c(){t=g("div"),n=g("div"),B.c(),r=w(),i=g("div"),S&&S.c(),o=w(),s=g("button"),a=y("🔄 "),l=y(I),u=w(),F&&F.c(),p=w(),Q&&Q.c(),m=w(),$.c(),k(s,"class","refresh-btn svelte-on0yal"),s.disabled=c=e[0]||e[12],k(i,"class","header-buttons svelte-on0yal"),k(n,"class","header-section svelte-on0yal"),k(t,"class","blossom-view svelte-on0yal")},m(c,h){f(c,t,h),d(t,n),B.m(n,null),d(n,r),d(n,i),S&&S.m(i,null),d(i,o),d(i,s),d(s,a),d(s,l),d(t,u),F&&F.m(t,null),d(t,p),Q&&Q.m(t,null),d(t,m),$.m(t,null),v||(b=A(s,"click",e[30]),v=!0)},p(e,a){x===(x=C(e))&&B?B.p(e,a):(B.d(1),B=x(e),B&&(B.c(),B.m(n,r))),!e[14]||e[10]||e[13]?S&&(S.d(1),S=null):S?S.p(e,a):(S=kw(e),S.c(),S.m(i,o)),4097&a[0]&&I!==(I=e[0]||e[12]?"Loading...":"Refresh")&&E(l,I),4097&a[0]&&c!==(c=e[0]||e[12])&&(s.disabled=c),e[10]||e[13]?F&&(F.d(1),F=null):F?F.p(e,a):(F=Iw(e),F.c(),F.m(t,p)),e[2]?Q?Q.p(e,a):(Q=Cw(e),Q.c(),Q.m(t,m)):Q&&(Q.d(1),Q=null),R===(R=D(e))&&$?$.p(e,a):($.d(1),$=R(e),$&&($.c(),$.m(t,null)))},d(e){e&&h(t),B.d(),S&&S.d(),F&&F.d(),Q&&Q.d(),$.d(),v=!1,b()}}}function ww(t){let n;return{c(){n=g("h3"),n.textContent="Blossom Media Storage",k(n,"class","svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function vw(t){let n,r,i,o,s;return{c(){n=g("button"),n.textContent="← Back",r=w(),i=g("h3"),i.textContent="All Users Storage",k(n,"class","back-btn svelte-on0yal"),k(i,"class","svelte-on0yal")},m(e,a){f(e,n,a),f(e,r,a),f(e,i,a),o||(s=A(n,"click",t[27]),o=!0)},p:e,d(e){e&&h(n),e&&h(r),e&&h(i),o=!1,s()}}}function Aw(e){let t,n,r,i,o,s,a,l=(e[13].profile?.name||rv(e[25](e[13].pubkey)))+"",c=e[13].profile?.picture&&bw(e);return{c(){t=g("button"),t.textContent="← Back",n=w(),r=g("h3"),c&&c.c(),i=w(),o=y(l),k(t,"class","back-btn svelte-on0yal"),k(r,"class","user-header svelte-on0yal")},m(l,u){f(l,t,u),f(l,n,u),f(l,r,u),c&&c.m(r,null),d(r,i),d(r,o),s||(a=A(t,"click",e[29]),s=!0)},p(e,t){e[13].profile?.picture?c?c.p(e,t):(c=bw(e),c.c(),c.m(r,i)):c&&(c.d(1),c=null),8192&t[0]&&l!==(l=(e[13].profile?.name||rv(e[25](e[13].pubkey)))+"")&&E(o,l)},d(e){e&&h(t),e&&h(n),e&&h(r),c&&c.d(),s=!1,a()}}}function bw(e){let t,n;return{c(){t=g("img"),a(t.src,n=e[13].profile.picture)||k(t,"src",n),k(t,"alt",""),k(t,"class","header-avatar svelte-on0yal")},m(e,n){f(e,t,n)},p(e,r){8192&r[0]&&!a(t.src,n=e[13].profile.picture)&&k(t,"src",n)},d(e){e&&h(t)}}}function kw(e){let t,n,r,i;return{c(){t=g("button"),n=y("Admin"),k(t,"class","admin-btn svelte-on0yal"),t.disabled=e[0]},m(o,s){f(o,t,s),d(t,n),r||(i=A(t,"click",e[26]),r=!0)},p(e,n){1&n[0]&&(t.disabled=e[0])},d(e){e&&h(t),r=!1,i()}}}function Iw(e){let t,n,i,o,s,a,l,c,u,p,m=e[3].length>0&&Ew(e);return{c(){t=g("div"),n=g("span"),n.textContent="Upload new files",i=w(),o=g("input"),s=w(),m&&m.c(),a=w(),l=g("button"),c=y("Select Files"),k(n,"class","upload-label svelte-on0yal"),k(o,"type","file"),o.multiple=!0,k(o,"class","file-input-hidden svelte-on0yal"),k(l,"class","select-btn svelte-on0yal"),l.disabled=e[4],k(t,"class","upload-section svelte-on0yal")},m(r,h){f(r,t,h),d(t,n),d(t,i),d(t,o),e[39](o),d(t,s),m&&m.m(t,null),d(t,a),d(t,l),d(l,c),u||(p=[A(o,"change",e[22]),A(l,"click",e[23])],u=!0)},p(e,n){e[3].length>0?m?m.p(e,n):(m=Ew(e),m.c(),m.m(t,a)):m&&(m.d(1),m=null),16&n[0]&&(l.disabled=e[4])},d(n){n&&h(t),e[39](null),m&&m.d(),u=!1,r(p)}}}function Ew(e){let t,n,r,i,o,s,a,l,c=e[3].length+"",u=(e[4]?e[5]:"Upload")+"";return{c(){t=g("span"),n=y(c),r=y(" file(s) selected"),i=w(),o=g("button"),s=y(u),k(t,"class","selected-count svelte-on0yal"),k(o,"class","upload-btn svelte-on0yal"),o.disabled=e[4]},m(c,u){f(c,t,u),d(t,n),d(t,r),f(c,i,u),f(c,o,u),d(o,s),a||(l=A(o,"click",e[24]),a=!0)},p(e,t){8&t[0]&&c!==(c=e[3].length+"")&&E(n,c),48&t[0]&&u!==(u=(e[4]?e[5]:"Upload")+"")&&E(s,u),16&t[0]&&(o.disabled=e[4])},d(e){e&&h(t),e&&h(i),e&&h(o),a=!1,l()}}}function Cw(e){let t,n;return{c(){t=g("div"),n=y(e[2]),k(t,"class","error-message svelte-on0yal")},m(e,r){f(e,t,r),d(t,n)},p(e,t){4&t[0]&&E(n,e[2])},d(e){e&&h(t)}}}function xw(e){let t,n,r;function i(e,r){return 1&r[0]&&(t=null),null==t&&(t=!(!e[0]||0!==e[31]().length)),t?Qw:(null==n&&(n=!(0!==e[31]().length)),n?Fw:Sw)}let o=i(e,[-1,-1]),s=o(e);return{c(){s.c(),r=v()},m(e,t){s.m(e,t),f(e,r,t)},p(e,t){o===(o=i(e,t))&&s?s.p(e,t):(s.d(1),s=o(e),s&&(s.c(),s.m(r.parentNode,r)))},d(e){s.d(e),e&&h(r)}}}function Bw(e){let t;function n(e,t){return e[12]?Nw:0===e[11].length?Tw:Uw}let r=n(e),i=r(e);return{c(){i.c(),t=v()},m(e,n){i.m(e,n),f(e,t,n)},p(e,o){r===(r=n(e))&&i?i.p(e,o):(i.d(1),i=r(e),i&&(i.c(),i.m(t.parentNode,t)))},d(e){i.d(e),e&&h(t)}}}function Sw(e){let t,n=e[31](),r=[];for(let t=0;t<n.length;t+=1)r[t]=Pw(pw(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","blob-list svelte-on0yal")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(2129920&i[0]|1&i[1]){let o;for(n=e[31](),o=0;o<n.length;o+=1){const s=pw(e,n,o);r[o]?r[o].p(s,i):(r[o]=Pw(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Fw(e){let t,n,r,i=e[13]?"No files found for this user.":"No files found in your Blossom storage.";return{c(){t=g("div"),n=g("p"),r=y(i),k(t,"class","empty-state svelte-on0yal")},m(e,i){f(e,t,i),d(t,n),d(n,r)},p(e,t){8192&t[0]&&i!==(i=e[13]?"No files found for this user.":"No files found in your Blossom storage.")&&E(r,i)},d(e){e&&h(t)}}}function Qw(t){let n;return{c(){n=g("div"),n.textContent="Loading blobs...",k(n,"class","loading svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Dw(t){let n,r,i=tv(t[57].type)+"";return{c(){n=g("span"),r=y(i),k(n,"class","thumbnail-icon svelte-on0yal")},m(e,t){f(e,n,t),d(n,r)},p:e,d(e){e&&h(n)}}}function Rw(t){let n,r;return{c(){n=g("video"),a(n.src,r=nv(t[57]))||k(n,"src",r),k(n,"class","thumbnail-video svelte-on0yal"),n.muted=!0,k(n,"preload","metadata")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function $w(t){let n,r;return{c(){n=g("img"),a(n.src,r=nv(t[57]))||k(n,"src",r),k(n,"alt",""),k(n,"class","thumbnail-img svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Pw(e){let t,n,i,o,s,a,l,c,u,p,m,v,I,E,C,x,B,S,F,Q,D,R,$,P,U,T=e[57].sha256+"",N=Xw(e[57].sha256)+"",L=Ww(e[57].size)+"",O=(e[57].type||"unknown")+"",M=Zw(e[57].uploaded)+"";let _=function(e){return"image"===ev(e[57].type)?$w:"video"===ev(e[57].type)?Rw:Dw}(e),H=_(e);function j(){return e[42](e[57])}function G(){return e[43](e[57])}function q(...t){return e[44](e[57],...t)}return{c(){t=g("div"),n=g("div"),H.c(),i=w(),o=g("div"),s=g("div"),a=g("span"),l=y(T),c=w(),u=g("span"),p=y(N),m=w(),v=g("div"),I=g("span"),E=y(L),C=w(),x=g("span"),B=y(O),S=w(),F=g("div"),Q=y(M),D=w(),R=g("button"),R.textContent="X",$=w(),k(n,"class","blob-thumbnail svelte-on0yal"),k(a,"class","hash-full svelte-on0yal"),k(u,"class","hash-truncated svelte-on0yal"),k(s,"class","blob-hash svelte-on0yal"),k(s,"title",e[57].sha256),k(I,"class","blob-size"),k(x,"class","blob-type"),k(v,"class","blob-meta svelte-on0yal"),k(o,"class","blob-info svelte-on0yal"),k(F,"class","blob-date svelte-on0yal"),k(R,"class","delete-btn svelte-on0yal"),k(R,"title","Delete"),k(t,"class","blob-item svelte-on0yal"),k(t,"role","button"),k(t,"tabindex","0")},m(e,r){f(e,t,r),d(t,n),H.m(n,null),d(t,i),d(t,o),d(o,s),d(s,a),d(a,l),d(s,c),d(s,u),d(u,p),d(o,m),d(o,v),d(v,I),d(I,E),d(v,C),d(v,x),d(x,B),d(t,S),d(t,F),d(F,Q),d(t,D),d(t,R),d(t,$),P||(U=[A(R,"click",b(j)),A(t,"click",G),A(t,"keypress",q)],P=!0)},p(t,n){e=t,H.p(e,n)},d(e){e&&h(t),H.d(),P=!1,r(U)}}}function Uw(e){let t,n=e[11],r=[];for(let t=0;t<n.length;t+=1)r[t]=Mw(gw(e,n,t));return{c(){t=g("div");for(let e=0;e<r.length;e+=1)r[e].c();k(t,"class","admin-users-list svelte-on0yal")},m(e,n){f(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,i){if(301991936&i[0]){let o;for(n=e[11],o=0;o<n.length;o+=1){const s=gw(e,n,o);r[o]?r[o].p(s,i):(r[o]=Mw(s),r[o].c(),r[o].m(t,null))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){e&&h(t),p(r,e)}}}function Tw(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No users have uploaded files yet.</p>",k(n,"class","empty-state svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Nw(t){let n;return{c(){n=g("div"),n.textContent="Loading user statistics...",k(n,"class","loading svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Lw(t){let n;return{c(){n=g("div"),k(n,"class","user-avatar-placeholder svelte-on0yal")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Ow(e){let t,n;return{c(){t=g("img"),a(t.src,n=e[54].profile.picture)||k(t,"src",n),k(t,"alt",""),k(t,"class","user-avatar svelte-on0yal")},m(e,n){f(e,t,n)},p(e,r){2048&r[0]&&!a(t.src,n=e[54].profile.picture)&&k(t,"src",n)},d(e){e&&h(t)}}}function Mw(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,F,Q,D,R,$,P,U,T=(e[54].profile?.name||rv(e[25](e[54].pubkey)))+"",N=e[25](e[54].pubkey)+"",L=rv(e[25](e[54].pubkey))+"",O=e[54].blob_count+"",M=Ww(e[54].total_size_bytes)+"";function _(e,t){return e[54].profile?.picture?Ow:Lw}let H=_(e),j=H(e);function G(){return e[40](e[54])}function q(...t){return e[41](e[54],...t)}return{c(){t=g("div"),n=g("div"),j.c(),i=w(),o=g("div"),s=g("div"),a=y(T),l=w(),c=g("div"),u=g("span"),p=y(N),m=w(),v=g("span"),b=y(L),C=w(),x=g("div"),B=g("span"),S=y(O),F=y(" files"),Q=w(),D=g("span"),R=y(M),$=w(),k(n,"class","user-avatar-container svelte-on0yal"),k(s,"class","user-name svelte-on0yal"),k(u,"class","npub-full svelte-on0yal"),k(v,"class","npub-truncated svelte-on0yal"),k(c,"class","user-npub svelte-on0yal"),k(c,"title",I=e[54].pubkey),k(o,"class","user-info svelte-on0yal"),k(B,"class","blob-count svelte-on0yal"),k(D,"class","total-size svelte-on0yal"),k(x,"class","user-stats svelte-on0yal"),k(t,"class","user-stat-item svelte-on0yal"),k(t,"role","button"),k(t,"tabindex","0")},m(e,r){f(e,t,r),d(t,n),j.m(n,null),d(t,i),d(t,o),d(o,s),d(s,a),d(o,l),d(o,c),d(c,u),d(u,p),d(c,m),d(c,v),d(v,b),d(t,C),d(t,x),d(x,B),d(B,S),d(B,F),d(x,Q),d(x,D),d(D,R),d(t,$),P||(U=[A(t,"click",G),A(t,"keypress",q)],P=!0)},p(t,r){H===(H=_(e=t))&&j?j.p(e,r):(j.d(1),j=H(e),j&&(j.c(),j.m(n,null))),2048&r[0]&&T!==(T=(e[54].profile?.name||rv(e[25](e[54].pubkey)))+"")&&E(a,T),2048&r[0]&&N!==(N=e[25](e[54].pubkey)+"")&&E(p,N),2048&r[0]&&L!==(L=rv(e[25](e[54].pubkey))+"")&&E(b,L),2048&r[0]&&I!==(I=e[54].pubkey)&&k(c,"title",I),2048&r[0]&&O!==(O=e[54].blob_count+"")&&E(S,O),2048&r[0]&&M!==(M=Ww(e[54].total_size_bytes)+"")&&E(R,M)},d(e){e&&h(t),j.d(),P=!1,r(U)}}}function _w(e){let t,n,i,o,s,a,l,c,u,p,m,v,I,C,x,B,S,F,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V,Y,z,W,Z,X,ee,te=Xw(e[8].sha256)+"",ne=(e[8].type||"unknown")+"",re="image"===ev(e[8].type),ie=Ww(e[8].size)+"",oe=Zw(e[8].uploaded)+"",se=re&&Hw(e);function ae(e,t){return 256&t[0]&&(B=null),256&t[0]&&(S=null),256&t[0]&&(F=null),null==B&&(B=!("image"!==ev(e[8].type))),B?Kw:(null==S&&(S=!("video"!==ev(e[8].type))),S?qw:(null==F&&(F=!("audio"!==ev(e[8].type))),F?Gw:jw))}let le=ae(e,[-1,-1]),ce=le(e);return{c(){t=g("div"),n=g("div"),i=g("div"),o=g("div"),s=g("span"),a=y(te),l=w(),c=g("span"),u=y(ne),p=w(),m=g("div"),se&&se.c(),v=w(),I=g("button"),I.textContent="X",C=w(),x=g("div"),ce.c(),Q=w(),D=g("div"),R=g("div"),$=g("span"),P=y("Size: "),U=y(ie),T=w(),N=g("span"),L=y("Uploaded: "),O=y(oe),M=w(),_=g("div"),H=g("input"),G=w(),q=g("button"),q.textContent="Copy",K=w(),J=g("div"),V=g("a"),Y=y("Open in New Tab"),W=w(),Z=g("button"),Z.textContent="Delete",k(s,"class","modal-hash svelte-on0yal"),k(c,"class","modal-type svelte-on0yal"),k(o,"class","modal-title svelte-on0yal"),k(I,"class","close-btn svelte-on0yal"),k(m,"class","modal-controls svelte-on0yal"),k(i,"class","modal-header svelte-on0yal"),k(x,"class","modal-body svelte-on0yal"),k(R,"class","blob-details svelte-on0yal"),k(H,"type","text"),H.readOnly=!0,H.value=j=nv(e[8]),k(H,"class","blob-url-input svelte-on0yal"),k(q,"class","copy-btn svelte-on0yal"),k(_,"class","blob-url-section svelte-on0yal"),k(V,"href",z=nv(e[8])),k(V,"target","_blank"),k(V,"rel","noopener noreferrer"),k(V,"class","action-btn svelte-on0yal"),k(Z,"class","action-btn danger svelte-on0yal"),k(J,"class","modal-actions svelte-on0yal"),k(D,"class","modal-footer svelte-on0yal"),k(n,"class","modal-content svelte-on0yal"),k(n,"role","dialog"),k(t,"class","modal-overlay svelte-on0yal"),k(t,"role","button"),k(t,"tabindex","0")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(i,o),d(o,s),d(s,a),d(o,l),d(o,c),d(c,u),d(i,p),d(i,m),se&&se.m(m,null),d(m,v),d(m,I),d(n,C),d(n,x),ce.m(x,null),d(n,Q),d(n,D),d(D,R),d(R,$),d($,P),d($,U),d(R,T),d(R,N),d(N,L),d(N,O),d(D,M),d(D,_),d(_,H),d(_,G),d(_,q),d(D,K),d(D,J),d(J,V),d(V,Y),d(J,W),d(J,Z),X||(ee=[A(I,"click",e[16]),A(H,"click",iv),A(q,"click",e[45]),A(Z,"click",e[46]),A(n,"click",b(e[37])),A(n,"keypress",b(e[38])),A(t,"click",e[16]),A(t,"keypress",e[47])],X=!0)},p(e,t){256&t[0]&&te!==(te=Xw(e[8].sha256)+"")&&E(a,te),256&t[0]&&ne!==(ne=(e[8].type||"unknown")+"")&&E(u,ne),256&t[0]&&(re="image"===ev(e[8].type)),re?se?se.p(e,t):(se=Hw(e),se.c(),se.m(m,v)):se&&(se.d(1),se=null),le===(le=ae(e,t))&&ce?ce.p(e,t):(ce.d(1),ce=le(e),ce&&(ce.c(),ce.m(x,null))),256&t[0]&&ie!==(ie=Ww(e[8].size)+"")&&E(U,ie),256&t[0]&&oe!==(oe=Zw(e[8].uploaded)+"")&&E(O,oe),256&t[0]&&j!==(j=nv(e[8]))&&H.value!==j&&(H.value=j),256&t[0]&&z!==(z=nv(e[8]))&&k(V,"href",z)},d(e){e&&h(t),se&&se.d(),ce.d(),X=!1,r(ee)}}}function Hw(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I=Math.round(100*e[9])+"";return{c(){t=g("button"),n=y("-"),o=w(),s=g("span"),a=y(I),l=y("%"),c=w(),u=g("button"),p=y("+"),k(t,"class","zoom-btn svelte-on0yal"),t.disabled=i=e[9]<=Vw,k(s,"class","zoom-level svelte-on0yal"),k(u,"class","zoom-btn svelte-on0yal"),u.disabled=m=e[9]>=Yw},m(r,i){f(r,t,i),d(t,n),f(r,o,i),f(r,s,i),d(s,a),d(s,l),f(r,c,i),f(r,u,i),d(u,p),v||(b=[A(t,"click",e[18]),A(u,"click",e[17])],v=!0)},p(e,n){512&n[0]&&i!==(i=e[9]<=Vw)&&(t.disabled=i),512&n[0]&&I!==(I=Math.round(100*e[9])+"")&&E(a,I),512&n[0]&&m!==(m=e[9]>=Yw)&&(u.disabled=m)},d(e){e&&h(t),e&&h(o),e&&h(s),e&&h(c),e&&h(u),v=!1,r(b)}}}function jw(e){let t,n,r,i,o,s,a,l,c,u=tv(e[8].type)+"";return{c(){t=g("div"),n=g("div"),r=y(u),i=w(),o=g("p"),o.textContent="Preview not available for this file type.",s=w(),a=g("a"),l=y("Download File"),k(n,"class","file-icon svelte-on0yal"),k(a,"href",c=nv(e[8])),k(a,"target","_blank"),k(a,"rel","noopener noreferrer"),k(a,"class","download-link svelte-on0yal"),k(t,"class","file-preview svelte-on0yal")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(t,i),d(t,o),d(t,s),d(t,a),d(a,l)},p(e,t){256&t[0]&&u!==(u=tv(e[8].type)+"")&&E(r,u),256&t[0]&&c!==(c=nv(e[8]))&&k(a,"href",c)},d(e){e&&h(t)}}}function Gw(e){let t,n,r;return{c(){t=g("div"),n=g("audio"),n.controls=!0,a(n.src,r=nv(e[8]))||k(n,"src",r),k(n,"class","svelte-on0yal"),k(t,"class","media-container audio svelte-on0yal")},m(e,r){f(e,t,r),d(t,n)},p(e,t){256&t[0]&&!a(n.src,r=nv(e[8]))&&k(n,"src",r)},d(e){e&&h(t)}}}function qw(e){let t,n,r,i;return{c(){t=g("div"),n=g("video"),r=g("track"),k(r,"kind","captions"),n.controls=!0,a(n.src,i=nv(e[8]))||k(n,"src",i),k(n,"class","svelte-on0yal"),k(t,"class","media-container svelte-on0yal")},m(e,i){f(e,t,i),d(t,n),d(n,r)},p(e,t){256&t[0]&&!a(n.src,i=nv(e[8]))&&k(n,"src",i)},d(e){e&&h(t)}}}function Kw(e){let t,n,r;return{c(){t=g("div"),n=g("img"),a(n.src,r=nv(e[8]))||k(n,"src",r),k(n,"alt","Blob content"),k(n,"class","svelte-on0yal"),k(t,"class","media-container svelte-on0yal"),x(t,"transform","scale("+e[9]+")")},m(e,r){f(e,t,r),d(t,n)},p(e,i){256&i[0]&&!a(n.src,r=nv(e[8]))&&k(n,"src",r),512&i[0]&&x(t,"transform","scale("+e[9]+")")},d(e){e&&h(t)}}}function Jw(t){let n,r,i,o;function s(e,t){return e[1]?yw:mw}let a=s(t),l=a(t),c=t[7]&&t[8]&&_w(t);return{c(){l.c(),n=w(),c&&c.c(),r=v()},m(e,s){l.m(e,s),f(e,n,s),c&&c.m(e,s),f(e,r,s),i||(o=A(hw,"keydown",t[19]),i=!0)},p(e,t){a===(a=s(e))&&l?l.p(e,t):(l.d(1),l=a(e),l&&(l.c(),l.m(n.parentNode,n))),e[7]&&e[8]?c?c.p(e,t):(c=_w(e),c.c(),c.m(r.parentNode,r)):c&&(c.d(1),c=null)},i:e,o:e,d(e){l.d(e),e&&h(n),c&&c.d(e),e&&h(r),i=!1,o()}}}const Vw=.25,Yw=4;async function zw(e,t,n=null){if(!e)return console.log("No signer available for Blossom auth"),null;try{const r=Math.floor(Date.now()/1e3),i=[["t",t],["expiration",(r+60).toString()]];n&&i.push(["x",n]);const o={kind:24242,created_at:r,tags:i,content:`Blossom ${t} operation`},s=await e.signEvent(o);return btoa(JSON.stringify(s)).replace(/\+/g,"-").replace(/\//g,"_")}catch(e){return console.error("Error creating Blossom auth:",e),null}}function Ww(e){if(!e)return"0 B";const t=["B","KB","MB","GB"];let n=0,r=e;for(;r>=1024&&n<t.length-1;)r/=1024,n++;return`${r.toFixed(0===n?0:1)} ${t[n]}`}function Zw(e){return e?new Date(1e3*e).toLocaleString():"Unknown"}function Xw(e){return e?`${e.slice(0,8)}...${e.slice(-8)}`:""}function ev(e){return e?e.startsWith("image/")?"image":e.startsWith("video/")?"video":e.startsWith("audio/")?"audio":"file":"unknown"}function tv(e){switch(ev(e)){case"image":return"🖼️";case"video":return"🎬";case"audio":return"🎵";default:return"📄"}}function nv(e){return e.url?e.url.startsWith("http://")||e.url.startsWith("https://")?e.url:e.url.startsWith("/")?`${window.location.origin}${e.url}`:`http://${e.url}`:`${window.location.origin}/blossom/${e.sha256}`}function rv(e){return e?`${e.slice(0,12)}...${e.slice(-8)}`:""}const iv=e=>e.target.select();function ov(e,t,n){let r,i,{isLoggedIn:o=!1}=t,{userPubkey:s=""}=t,{userSigner:a=null}=t,{currentEffectiveRole:l=""}=t;const c=U();let u,d=[],f=!1,h="",p=[],g=!1,m="",y=!1,w=null,v=1,A=!1,b=[],k=!1,I=null,E=[],C=!1;async function x(){if(s){n(0,f=!0),n(2,h="");try{const e=`${window.location.origin}/blossom/list/${s}`,t=await zw(a,"list"),n=await fetch(e,{headers:t?{Authorization:`Nostr ${t}`}:{}});if(!n.ok)throw new Error(`Failed to load blobs: ${n.statusText}`);const r=await n.json();d=Array.isArray(r)?r:[],d.sort((e,t)=>(t.uploaded||0)-(e.uploaded||0)),console.log("Loaded blobs:",d)}catch(e){console.error("Error loading blobs:",e),n(2,h=e.message||"Failed to load blobs")}finally{n(0,f=!1)}}}function B(e){n(8,w=e),n(9,v=1),n(7,y=!0)}function S(){n(7,y=!1),n(8,w=null),n(9,v=1)}function F(){v<Yw&&n(9,v=Math.min(Yw,v+.25))}function Q(){v>Vw&&n(9,v=Math.max(Vw,v-.25))}async function D(e){if(confirm(`Delete blob ${Xw(e.sha256)}?`))try{const t=`${window.location.origin}/blossom/${e.sha256}`,n=await zw(a,"delete",e.sha256),r=await fetch(t,{method:"DELETE",headers:n?{Authorization:`Nostr ${n}`}:{}});if(!r.ok)throw new Error(`Failed to delete: ${r.statusText}`);d=d.filter(t=>t.sha256!==e.sha256),w?.sha256===e.sha256&&S()}catch(e){console.error("Error deleting blob:",e),alert(`Failed to delete blob: ${e.message}`)}}async function R(){n(12,k=!0),n(2,h="");try{const e=`${window.location.origin}/blossom/admin/users`,t=await zw(a,"admin"),r=await fetch(e,{headers:t?{Authorization:`Nostr ${t}`}:{}});if(!r.ok)throw new Error(`Failed to load user stats: ${r.statusText}`);n(11,b=await r.json());for(const e of b)_h(e.pubkey).then(t=>{e.profile=t||{name:"",picture:""},n(11,b)}).catch(()=>{e.profile={name:"",picture:""}})}catch(e){console.error("Error fetching admin user stats:",e),n(2,h=e.message||"Failed to load user stats")}finally{n(12,k=!1)}}async function P(e){n(0,f=!0),n(2,h="");try{const t=`${window.location.origin}/blossom/list/${e}`,n=await zw(a,"list"),r=await fetch(t,{headers:n?{Authorization:`Nostr ${n}`}:{}});if(!r.ok)throw new Error(`Failed to load user blobs: ${r.statusText}`);E=await r.json(),E.sort((e,t)=>(t.uploaded||0)-(e.uploaded||0))}catch(e){console.error("Error loading user blobs:",e),n(2,h=e.message||"Failed to load user blobs")}finally{n(0,f=!1)}}async function N(e){n(13,I={pubkey:e.pubkey,profile:e.profile}),await P(e.pubkey)}$(()=>{r&&!C&&(n(36,C=!0),x())});return e.$$set=e=>{"isLoggedIn"in e&&n(32,o=e.isLoggedIn),"userPubkey"in e&&n(33,s=e.userPubkey),"userSigner"in e&&n(34,a=e.userSigner),"currentEffectiveRole"in e&&n(35,l=e.currentEffectiveRole)},e.$$.update=()=>{6&e.$$.dirty[1]&&n(1,r=o&&s),16&e.$$.dirty[1]&&n(14,i="admin"===l||"owner"===l),3&e.$$.dirty[0]|32&e.$$.dirty[1]&&(!r||C||f||(n(36,C=!0),x()))},[f,r,h,p,g,m,u,y,w,v,A,b,k,I,i,B,S,F,Q,function(e){y&&("Escape"===e.key?S():"+"===e.key||"="===e.key?F():"-"===e.key&&Q())},function(){c("openLoginModal")},D,function(e){n(3,p=Array.from(e.target.files))},function(){u?.click()},async function(){if(0===p.length)return;n(4,g=!0),n(2,h="");const e=[],t=[];for(let r=0;r<p.length;r++){const i=p[r];n(5,m=`Uploading ${r+1}/${p.length}: ${i.name}`);try{const t=`${window.location.origin}/blossom/upload`,n=await zw(a,"upload"),r=await fetch(t,{method:"PUT",headers:{"Content-Type":i.type||"application/octet-stream",...n?{Authorization:`Nostr ${n}`}:{}},body:i});if(!r.ok){const e=r.headers.get("X-Reason")||r.statusText;throw new Error(e)}const o=await r.json();console.log("Upload response:",o),e.push(o)}catch(e){console.error(`Error uploading ${i.name}:`,e),t.push({name:i.name,error:e.message})}}n(4,g=!1),n(5,m=""),n(3,p=[]),u&&n(6,u.value="",u),e.length>0&&await x(),t.length>0&&n(2,h=`Failed to upload: ${t.map(e=>e.name).join(", ")}`)},function(e){try{return Iu(e)}catch(t){return Xw(e)}},function(){n(10,A=!0),R()},function(){n(10,A=!1),n(11,b=[]),n(13,I=null),E=[]},N,function(){n(13,I=null),E=[]},function(){I?P(I.pubkey):A?R():x()},function(){return I?E:d},o,s,a,l,C,function(t){T.call(this,e,t)},function(t){T.call(this,e,t)},function(e){L[e?"unshift":"push"](()=>{u=e,n(6,u)})},e=>N(e),(e,t)=>"Enter"===t.key&&N(e),e=>D(e),e=>B(e),(e,t)=>"Enter"===t.key&&B(e),()=>{navigator.clipboard.writeText(nv(w))},()=>D(w),e=>"Enter"===e.key&&S()]}class sv extends ce{constructor(e){super(),le(this,e,ov,Jw,o,{isLoggedIn:32,userPubkey:33,userSigner:34,currentEffectiveRole:35},null,[-1,-1])}}var av={},lv={},cv={};let uv;const dv=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];cv.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},cv.getSymbolTotalCodewords=function(e){return dv[e]},cv.getBCHDigit=function(e){let t=0;for(;0!==e;)t++,e>>>=1;return t},cv.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');uv=e},cv.isKanjiModeEnabled=function(){return void 0!==uv},cv.toSJIS=function(e){return uv(e)};var fv,hv={};function pv(){this.buffer=[],this.length=0}(fv=hv).L={bit:1},fv.M={bit:0},fv.Q={bit:3},fv.H={bit:2},fv.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},fv.from=function(e,t){if(fv.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return fv.L;case"m":case"medium":return fv.M;case"q":case"quartile":return fv.Q;case"h":case"high":return fv.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(e){return t}},pv.prototype={get:function(e){const t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(let n=0;n<t;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){const t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var gv=pv;function mv(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}mv.prototype.set=function(e,t,n,r){const i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},mv.prototype.get=function(e,t){return this.data[e*this.size+t]},mv.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},mv.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var yv=mv,wv={};!function(e){const t=cv.getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];const n=Math.floor(e/7)+2,r=t(e),i=145===r?26:2*Math.ceil((r-13)/(2*n-2)),o=[r-7];for(let e=1;e<n-1;e++)o[e]=o[e-1]-i;return o.push(6),o.reverse()},e.getPositions=function(t){const n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)0===e&&0===t||0===e&&t===i-1||e===i-1&&0===t||n.push([r[e],r[t]]);return n}}(wv);var vv={};const Av=cv.getSymbolSize;vv.getPositions=function(e){const t=Av(e);return[[0,0],[t-7,0],[0,t-7]]};var bv={};!function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t=3,n=3,r=40,i=10;function o(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}e.isValid=function(e){return null!=e&&""!==e&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){const n=e.size;let r=0,i=0,o=0,s=null,a=null;for(let l=0;l<n;l++){i=o=0,s=a=null;for(let c=0;c<n;c++){let n=e.get(l,c);n===s?i++:(i>=5&&(r+=t+(i-5)),s=n,i=1),n=e.get(c,l),n===a?o++:(o>=5&&(r+=t+(o-5)),a=n,o=1)}i>=5&&(r+=t+(i-5)),o>=5&&(r+=t+(o-5))}return r},e.getPenaltyN2=function(e){const t=e.size;let r=0;for(let n=0;n<t-1;n++)for(let i=0;i<t-1;i++){const t=e.get(n,i)+e.get(n,i+1)+e.get(n+1,i)+e.get(n+1,i+1);4!==t&&0!==t||r++}return r*n},e.getPenaltyN3=function(e){const t=e.size;let n=0,i=0,o=0;for(let r=0;r<t;r++){i=o=0;for(let s=0;s<t;s++)i=i<<1&2047|e.get(r,s),s>=10&&(1488===i||93===i)&&n++,o=o<<1&2047|e.get(s,r),s>=10&&(1488===o||93===o)&&n++}return n*r},e.getPenaltyN4=function(e){let t=0;const n=e.data.length;for(let r=0;r<n;r++)t+=e.data[r];return Math.abs(Math.ceil(100*t/n/5)-10)*i},e.applyMask=function(e,t){const n=t.size;for(let r=0;r<n;r++)for(let i=0;i<n;i++)t.isReserved(i,r)||t.xor(i,r,o(e,i,r))},e.getBestMask=function(t,n){const r=Object.keys(e.Patterns).length;let i=0,o=1/0;for(let s=0;s<r;s++){n(s),e.applyMask(s,t);const r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(s,t),r<o&&(o=r,i=s)}return i}}(bv);var kv={};const Iv=hv,Ev=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],Cv=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];kv.getBlocksCount=function(e,t){switch(t){case Iv.L:return Ev[4*(e-1)+0];case Iv.M:return Ev[4*(e-1)+1];case Iv.Q:return Ev[4*(e-1)+2];case Iv.H:return Ev[4*(e-1)+3];default:return}},kv.getTotalCodewordsCount=function(e,t){switch(t){case Iv.L:return Cv[4*(e-1)+0];case Iv.M:return Cv[4*(e-1)+1];case Iv.Q:return Cv[4*(e-1)+2];case Iv.H:return Cv[4*(e-1)+3];default:return}};var xv={},Bv={};const Sv=new Uint8Array(512),Fv=new Uint8Array(256);!function(){let e=1;for(let t=0;t<255;t++)Sv[t]=e,Fv[e]=t,e<<=1,256&e&&(e^=285);for(let e=255;e<512;e++)Sv[e]=Sv[e-255]}(),Bv.log=function(e){if(e<1)throw new Error("log("+e+")");return Fv[e]},Bv.exp=function(e){return Sv[e]},Bv.mul=function(e,t){return 0===e||0===t?0:Sv[Fv[e]+Fv[t]]},function(e){const t=Bv;e.mul=function(e,n){const r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let o=0;o<n.length;o++)r[i+o]^=t.mul(e[i],n[o]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){const e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&0===r[i];)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}}(xv);const Qv=xv;function Dv(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}Dv.prototype.initialize=function(e){this.degree=e,this.genPoly=Qv.generateECPolynomial(this.degree)},Dv.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(e.length+this.degree);t.set(e);const n=Qv.mod(t,this.genPoly),r=this.degree-n.length;if(r>0){const e=new Uint8Array(this.degree);return e.set(n,r),e}return n};var Rv=Dv,$v={},Pv={},Uv={isValid:function(e){return!isNaN(e)&&e>=1&&e<=40}},Tv={};const Nv="[0-9]+";let Lv="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";Lv=Lv.replace(/u/g,"\\u");const Ov="(?:(?![A-Z0-9 $%*+\\-./:]|"+Lv+")(?:.|[\r\n]))+";Tv.KANJI=new RegExp(Lv,"g"),Tv.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Tv.BYTE=new RegExp(Ov,"g"),Tv.NUMERIC=new RegExp(Nv,"g"),Tv.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const Mv=new RegExp("^"+Lv+"$"),_v=new RegExp("^"+Nv+"$"),Hv=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Tv.testKanji=function(e){return Mv.test(e)},Tv.testNumeric=function(e){return _v.test(e)},Tv.testAlphanumeric=function(e){return Hv.test(e)},function(e){const t=Uv,n=Tv;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,n){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(e){return n}}}(Pv),function(e){const t=cv,n=kv,r=hv,i=Pv,o=Uv,s=t.getBCHDigit(7973);function a(e,t){return i.getCharCountIndicator(e,t)+4}function l(e,t){let n=0;return e.forEach(function(e){const r=a(e.mode,t);n+=r+e.getBitsLength()}),n}e.from=function(e,t){return o.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,s){if(!o.isValid(e))throw new Error("Invalid QR Code version");void 0===s&&(s=i.BYTE);const l=8*(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r));if(s===i.MIXED)return l;const c=l-a(s,e);switch(s){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(t,n){let o;const s=r.from(n,r.M);if(Array.isArray(t)){if(t.length>1)return function(t,n){for(let r=1;r<=40;r++)if(l(t,r)<=e.getCapacity(r,n,i.MIXED))return r}(t,s);if(0===t.length)return 1;o=t[0]}else o=t;return function(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}(o.mode,o.getLength(),s)},e.getEncodedBits=function(e){if(!o.isValid(e)||e<7)throw new Error("Invalid QR Code version");let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=7973<<t.getBCHDigit(n)-s;return e<<12|n}}($v);var jv={};const Gv=cv,qv=Gv.getBCHDigit(1335);jv.getEncodedBits=function(e,t){const n=e.bit<<3|t;let r=n<<10;for(;Gv.getBCHDigit(r)-qv>=0;)r^=1335<<Gv.getBCHDigit(r)-qv;return 21522^(n<<10|r)};var Kv={};const Jv=Pv;function Vv(e){this.mode=Jv.NUMERIC,this.data=e.toString()}Vv.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},Vv.prototype.getLength=function(){return this.data.length},Vv.prototype.getBitsLength=function(){return Vv.getBitsLength(this.data.length)},Vv.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);const i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,3*i+1))};var Yv=Vv;const zv=Pv,Wv=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function Zv(e){this.mode=zv.ALPHANUMERIC,this.data=e}Zv.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},Zv.prototype.getLength=function(){return this.data.length},Zv.prototype.getBitsLength=function(){return Zv.getBitsLength(this.data.length)},Zv.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=45*Wv.indexOf(this.data[t]);n+=Wv.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(Wv.indexOf(this.data[t]),6)};var Xv=Zv;const eA=Pv;function tA(e){this.mode=eA.BYTE,this.data="string"==typeof e?(new TextEncoder).encode(e):new Uint8Array(e)}tA.getBitsLength=function(e){return 8*e},tA.prototype.getLength=function(){return this.data.length},tA.prototype.getBitsLength=function(){return tA.getBitsLength(this.data.length)},tA.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)};var nA=tA;const rA=Pv,iA=cv;function oA(e){this.mode=rA.KANJI,this.data=e}oA.getBitsLength=function(e){return 13*e},oA.prototype.getLength=function(){return this.data.length},oA.prototype.getBitsLength=function(){return oA.getBitsLength(this.data.length)},oA.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=iA.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");n-=49472}n=192*(n>>>8&255)+(255&n),e.put(n,13)}};var sA=oA,aA={exports:{}};!function(e){var t={single_source_shortest_paths:function(e,n,r){var i={},o={};o[n]=0;var s,a,l,c,u,d,f,h=t.PriorityQueue.make();for(h.push(n,0);!h.empty();)for(l in a=(s=h.pop()).value,c=s.cost,u=e[a]||{})u.hasOwnProperty(l)&&(d=c+u[l],f=o[l],(void 0===o[l]||f>d)&&(o[l]=d,h.push(l,d),i[l]=a));if(void 0!==r&&void 0===o[r]){var p=["Could not find a path from ",n," to ",r,"."].join("");throw new Error(p)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,n,r){var i=t.single_source_shortest_paths(e,n,r);return t.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var n,r=t.PriorityQueue,i={};for(n in e=e||{},r)r.hasOwnProperty(n)&&(i[n]=r[n]);return i.queue=[],i.sorter=e.sorter||r.default_sorter,i},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t}(aA);var lA=aA.exports;!function(e){const t=Pv,n=Yv,r=Xv,i=nA,o=sA,s=Tv,a=cv,l=lA;function c(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){const r=[];let i;for(;null!==(i=e.exec(n));)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){const n=u(s.NUMERIC,t.NUMERIC,e),r=u(s.ALPHANUMERIC,t.ALPHANUMERIC,e);let i,o;a.isKanjiModeEnabled()?(i=u(s.BYTE,t.BYTE,e),o=u(s.KANJI,t.KANJI,e)):(i=u(s.BYTE_KANJI,t.BYTE,e),o=[]);return n.concat(r,i,o).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,s){switch(s){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return o.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function h(e,s){let l;const c=t.getBestModeForData(e);if(l=t.from(s,c),l!==t.BYTE&&l.bit<c.bit)throw new Error('"'+e+'" cannot be encoded with mode '+t.toString(l)+".\n Suggested mode is: "+t.toString(c));switch(l!==t.KANJI||a.isKanjiModeEnabled()||(l=t.BYTE),l){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new o(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return"string"==typeof t?e.push(h(t,null)):t.data&&e.push(h(t.data,t.mode)),e},[])},e.fromString=function(n,r){const i=function(e){const n=[];for(let r=0;r<e.length;r++){const i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:c(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:c(i.data)}])}}return n}(d(n,a.isKanjiModeEnabled())),o=function(e,n){const r={},i={start:{}};let o=["start"];for(let s=0;s<e.length;s++){const a=e[s],l=[];for(let e=0;e<a.length;e++){const c=a[e],u=""+s+e;l.push(u),r[u]={node:c,lastCount:0},i[u]={};for(let e=0;e<o.length;e++){const s=o[e];r[s]&&r[s].node.mode===c.mode?(i[s][u]=f(r[s].lastCount+c.length,c.mode)-f(r[s].lastCount,c.mode),r[s].lastCount+=c.length):(r[s]&&(r[s].lastCount=c.length),i[s][u]=f(c.length,c.mode)+4+t.getCharCountIndicator(c.mode,n))}}o=l}for(let e=0;e<o.length;e++)i[o[e]].end=0;return{map:i,table:r}}(i,r),s=l.find_path(o.map,"start","end"),u=[];for(let e=1;e<s.length-1;e++)u.push(o.table[s[e]].node);return e.fromArray(function(e){return e.reduce(function(e,t){const n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}(u))},e.rawSplit=function(t){return e.fromArray(d(t,a.isKanjiModeEnabled()))}}(Kv);const cA=cv,uA=hv,dA=gv,fA=yv,hA=wv,pA=vv,gA=bv,mA=kv,yA=Rv,wA=$v,vA=jv,AA=Pv,bA=Kv;function kA(e,t,n){const r=e.size,i=vA.getEncodedBits(t,n);let o,s;for(o=0;o<15;o++)s=1==(i>>o&1),o<6?e.set(o,8,s,!0):o<8?e.set(o+1,8,s,!0):e.set(r-15+o,8,s,!0),o<8?e.set(8,r-o-1,s,!0):o<9?e.set(8,15-o-1+1,s,!0):e.set(8,15-o-1,s,!0);e.set(r-8,8,1,!0)}function IA(e,t,n){const r=new dA;n.forEach(function(t){r.put(t.mode.bit,4),r.put(t.getLength(),AA.getCharCountIndicator(t.mode,e)),t.write(r)});const i=8*(cA.getSymbolTotalCodewords(e)-mA.getTotalCodewordsCount(e,t));for(r.getLengthInBits()+4<=i&&r.put(0,4);r.getLengthInBits()%8!=0;)r.putBit(0);const o=(i-r.getLengthInBits())/8;for(let e=0;e<o;e++)r.put(e%2?17:236,8);return function(e,t,n){const r=cA.getSymbolTotalCodewords(t),i=mA.getTotalCodewordsCount(t,n),o=r-i,s=mA.getBlocksCount(t,n),a=r%s,l=s-a,c=Math.floor(r/s),u=Math.floor(o/s),d=u+1,f=c-u,h=new yA(f);let p=0;const g=new Array(s),m=new Array(s);let y=0;const w=new Uint8Array(e.buffer);for(let e=0;e<s;e++){const t=e<l?u:d;g[e]=w.slice(p,p+t),m[e]=h.encode(g[e]),p+=t,y=Math.max(y,t)}const v=new Uint8Array(r);let A,b,k=0;for(A=0;A<y;A++)for(b=0;b<s;b++)A<g[b].length&&(v[k++]=g[b][A]);for(A=0;A<f;A++)for(b=0;b<s;b++)v[k++]=m[b][A];return v}(r,e,t)}function EA(e,t,n,r){let i;if(Array.isArray(e))i=bA.fromArray(e);else{if("string"!=typeof e)throw new Error("Invalid data");{let r=t;if(!r){const t=bA.rawSplit(e);r=wA.getBestVersionForData(t,n)}i=bA.fromString(e,r||40)}}const o=wA.getBestVersionForData(i,n);if(!o)throw new Error("The amount of data is too big to be stored in a QR Code");if(t){if(t<o)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+o+".\n")}else t=o;const s=IA(t,n,i),a=cA.getSymbolSize(t),l=new fA(a);return function(e,t){const n=e.size,r=pA.getPositions(t);for(let t=0;t<r.length;t++){const i=r[t][0],o=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)o+r<=-1||n<=o+r||(t>=0&&t<=6&&(0===r||6===r)||r>=0&&r<=6&&(0===t||6===t)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,o+r,!0,!0):e.set(i+t,o+r,!1,!0))}}(l,t),function(e){const t=e.size;for(let n=8;n<t-8;n++){const t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}(l),function(e,t){const n=hA.getPositions(t);for(let t=0;t<n.length;t++){const r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)-2===t||2===t||-2===n||2===n||0===t&&0===n?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}(l,t),kA(l,n,0),t>=7&&function(e,t){const n=e.size,r=wA.getEncodedBits(t);let i,o,s;for(let t=0;t<18;t++)i=Math.floor(t/3),o=t%3+n-8-3,s=1==(r>>t&1),e.set(i,o,s,!0),e.set(o,i,s,!0)}(l,t),function(e,t){const n=e.size;let r=-1,i=n-1,o=7,s=0;for(let a=n-1;a>0;a-=2)for(6===a&&a--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,a-n)){let r=!1;s<t.length&&(r=1==(t[s]>>>o&1)),e.set(i,a-n,r),o--,-1===o&&(s++,o=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}(l,s),isNaN(r)&&(r=gA.getBestMask(l,kA.bind(null,l,n))),gA.applyMask(r,l),kA(l,n,r),{modules:l,version:t,errorCorrectionLevel:n,maskPattern:r,segments:i}}lv.create=function(e,t){if(void 0===e||""===e)throw new Error("No input text");let n,r,i=uA.M;return void 0!==t&&(i=uA.from(t.errorCorrectionLevel,uA.M),n=wA.from(t.version),r=gA.from(t.maskPattern),t.toSJISFunc&&cA.setToSJISFunction(t.toSJISFunc)),EA(e,n,i,r)};var CA={},xA={};!function(e){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),6===t.length&&t.push("F","F");const n=parseInt(t.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});const n=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,n){const r=e.getScale(t,n);return Math.floor((t+2*n.margin)*r)},e.qrToImageData=function(t,n,r){const i=n.modules.size,o=n.modules.data,s=e.getScale(i,r),a=Math.floor((i+2*r.margin)*s),l=r.margin*s,c=[r.color.light,r.color.dark];for(let e=0;e<a;e++)for(let n=0;n<a;n++){let u=4*(e*a+n),d=r.color.light;if(e>=l&&n>=l&&e<a-l&&n<a-l){d=c[o[Math.floor((e-l)/s)*i+Math.floor((n-l)/s)]?1:0]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}}(xA),function(e){const t=xA;e.render=function(e,n,r){let i=r,o=n;void 0!==i||n&&n.getContext||(i=n,n=void 0),n||(o=function(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),i=t.getOptions(i);const s=t.getImageWidth(e.modules.size,i),a=o.getContext("2d"),l=a.createImageData(s,s);return t.qrToImageData(l.data,e,i),function(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||(t.style={}),t.height=n,t.width=n,t.style.height=n+"px",t.style.width=n+"px"}(a,o,s),a.putImageData(l,0,0),o},e.renderToDataURL=function(t,n,r){let i=r;void 0!==i||n&&n.getContext||(i=n,n=void 0),i||(i={});const o=e.render(t,n,i),s=i.type||"image/png",a=i.rendererOpts||{};return o.toDataURL(s,a.quality)}}(CA);var BA={};const SA=xA;function FA(e,t){const n=e.a/255,r=t+'="'+e.hex+'"';return n<1?r+" "+t+'-opacity="'+n.toFixed(2).slice(1)+'"':r}function QA(e,t,n){let r=e+t;return void 0!==n&&(r+=" "+n),r}BA.render=function(e,t,n){const r=SA.getOptions(t),i=e.modules.size,o=e.modules.data,s=i+2*r.margin,a=r.color.light.a?"<path "+FA(r.color.light,"fill")+' d="M0 0h'+s+"v"+s+'H0z"/>':"",l="<path "+FA(r.color.dark,"stroke")+' d="'+function(e,t,n){let r="",i=0,o=!1,s=0;for(let a=0;a<e.length;a++){const l=Math.floor(a%t),c=Math.floor(a/t);l||o||(o=!0),e[a]?(s++,a>0&&l>0&&e[a-1]||(r+=o?QA("M",l+n,.5+c+n):QA("m",i,0),i=0,o=!1),l+1<t&&e[a+1]||(r+=QA("h",s),s=0)):i++}return r}(o,i,r.margin)+'"/>',c='viewBox="0 0 '+s+" "+s+'"',u='<svg xmlns="http://www.w3.org/2000/svg" '+(r.width?'width="'+r.width+'" height="'+r.width+'" ':"")+c+' shape-rendering="crispEdges">'+a+l+"</svg>\n";return"function"==typeof n&&n(null,u),u};const DA=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then},RA=lv,$A=CA,PA=BA;function UA(e,t,n,r,i){const o=[].slice.call(arguments,1),s=o.length,a="function"==typeof o[s-1];if(!a&&!DA())throw new Error("Callback required as last argument");if(!a){if(s<1)throw new Error("Too few arguments provided");return 1===s?(n=t,t=r=void 0):2!==s||t.getContext||(r=n,n=t,t=void 0),new Promise(function(i,o){try{const o=RA.create(n,r);i(e(o,t,r))}catch(e){o(e)}})}if(s<2)throw new Error("Too few arguments provided");2===s?(i=n,n=t,t=r=void 0):3===s&&(t.getContext&&void 0===i?(i=r,r=void 0):(i=r,r=n,n=t,t=void 0));try{const o=RA.create(n,r);i(null,e(o,t,r))}catch(e){i(e)}}async function TA(e,t,n,r){if(!e||!t)return console.log("createNIP98Auth: No signer or pubkey available",{hasSigner:!!e,hasPubkey:!!t}),null;try{const t={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",r],["method",n.toUpperCase()]],content:""};console.log("createNIP98Auth: Signing event for",n,r);const i=await e.signEvent(t);console.log("createNIP98Auth: Signed event:",{id:i.id,pubkey:i.pubkey,kind:i.kind,created_at:i.created_at,tags:i.tags,hasSig:!!i.sig});const o=JSON.stringify(i);return btoa(o).replace(/\+/g,"-").replace(/\//g,"_")}catch(e){return console.error("createNIP98Auth: Error:",e),null}}function NA(e,t,n){return e&t^~e&n}function LA(e,t,n){return e&t^e&n^t&n}av.create=RA.create,av.toCanvas=UA.bind(null,$A.render),av.toDataURL=UA.bind(null,$A.renderToDataURL),av.toString=UA.bind(null,function(e,t,n){return PA.render(e,n)});class OA extends Xu{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=Lu(this.buffer)}update(e){Tu(this),Pu(e=Wu(e));const{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let o=0;o<i;){const s=Math.min(r-this.pos,i-o);if(s===r){const t=Lu(e);for(;r<=i-o;o+=r)this.process(t,o);continue}n.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Tu(this),function(e,t){Pu(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:i}=this;let{pos:o}=this;t[o++]=128,Nu(this.buffer.subarray(o)),this.padOffset>r-o&&(this.process(n,0),o=0);for(let e=o;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const i=BigInt(32),o=BigInt(4294967295),s=Number(n>>i&o),a=Number(n&o),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),i),this.process(n,0);const s=Lu(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],i)}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:i,destroyed:o,pos:s}=this;return e.destroyed=o,e.finished=i,e.length=r,e.pos=s,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const MA=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),_A=Uint32Array.from([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]),HA=new Uint32Array(64);class jA extends OA{constructor(e=32){super(64,e,8,!1),this.A=0|MA[0],this.B=0|MA[1],this.C=0|MA[2],this.D=0|MA[3],this.E=0|MA[4],this.F=0|MA[5],this.G=0|MA[6],this.H=0|MA[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:o,G:s,H:a}=this;return[e,t,n,r,i,o,s,a]}set(e,t,n,r,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)HA[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=HA[e-15],n=HA[e-2],r=Ou(t,7)^Ou(t,18)^t>>>3,i=Ou(n,17)^Ou(n,19)^n>>>10;HA[e]=i+HA[e-7]+r+HA[e-16]|0}let{A:n,B:r,C:i,D:o,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(Ou(s,6)^Ou(s,11)^Ou(s,25))+NA(s,a,l)+_A[e]+HA[e]|0,u=(Ou(n,2)^Ou(n,13)^Ou(n,22))+LA(n,r,i)|0;c=l,l=a,a=s,s=o+t|0,o=i,i=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,o=o+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,i,o,s,a,l,c)}roundClean(){Nu(HA)}destroy(){this.set(0,0,0,0,0,0,0,0),Nu(this.buffer)}}const GA=ed(()=>new jA);class qA extends Xu{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Uu(e);const n=Wu(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,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),Nu(i)}update(e){return Tu(this),this.iHash.update(e),this}digestInto(e){Tu(this),Pu(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:i,blockLen:o,outputLen:s}=this;return e.finished=r,e.destroyed=i,e.blockLen=o,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const KA=(e,t,n)=>new qA(e,t).update(n).digest();KA.create=(e,t)=>new qA(e,t);
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const JA=BigInt(0),VA=BigInt(1);function YA(e,t=""){if("boolean"!=typeof e){throw new Error((t&&`"${t}"`)+"expected boolean, got type="+typeof e)}return e}function zA(e,t,n=""){const r=Ru(e),i=e?.length,o=void 0!==t;if(!r||o&&i!==t){throw new Error((n&&`"${n}" `)+"expected Uint8Array"+(o?` of length ${t}`:"")+", got "+(r?`length=${i}`:"type="+typeof e))}return e}function WA(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function ZA(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?JA:BigInt("0x"+e)}function XA(e){return ZA(Hu(e))}function eb(e){return Pu(e),ZA(Hu(Uint8Array.from(e).reverse()))}function tb(e,t){return zu(e.toString(16).padStart(2*t,"0"))}function nb(e,t){return tb(e,t).reverse()}function rb(e,t,n){let r;if("string"==typeof t)try{r=zu(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!Ru(t))throw new Error(e+" must be hex string or Uint8Array");r=Uint8Array.from(t)}const i=r.length;if("number"==typeof n&&i!==n)throw new Error(e+" of length "+n+" expected, got "+i);return r}const ib=e=>"bigint"==typeof e&&JA<=e;function ob(e,t,n,r){if(!function(e,t,n){return ib(e)&&ib(t)&&ib(n)&&t<=e&&e<n}(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function sb(e){let t;for(t=0;e>JA;e>>=VA,t+=1);return t}const ab=e=>(VA<<BigInt(e))-VA;function lb(e,t,n={}){if(!e||"object"!=typeof e)throw new Error("expected valid options object");function r(t,n,r){const i=e[t];if(r&&void 0===i)return;const o=typeof i;if(o!==n||null===i)throw new Error(`param "${t}" is invalid: expected ${n}, got ${o}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(n).forEach(([e,t])=>r(e,t,!0))}function cb(e){const t=new WeakMap;return(n,...r)=>{const i=t.get(n);if(void 0!==i)return i;const o=e(n,...r);return t.set(n,o),o}}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ub=BigInt(0),db=BigInt(1),fb=BigInt(2),hb=BigInt(3),pb=BigInt(4),gb=BigInt(5),mb=BigInt(7),yb=BigInt(8),wb=BigInt(9),vb=BigInt(16);function Ab(e,t){const n=e%t;return n>=ub?n:t+n}function bb(e,t,n){let r=e;for(;t-- >ub;)r*=r,r%=n;return r}function kb(e,t){if(e===ub)throw new Error("invert: expected non-zero number");if(t<=ub)throw new Error("invert: expected positive modulus, got "+t);let n=Ab(e,t),r=t,i=ub,o=db;for(;n!==ub;){const e=r%n,t=i-o*(r/n);r=n,n=e,i=o,o=t}if(r!==db)throw new Error("invert: does not exist");return Ab(i,t)}function Ib(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Eb(e,t){const n=(e.ORDER+db)/pb,r=e.pow(t,n);return Ib(e,r,t),r}function Cb(e,t){const n=(e.ORDER-gb)/yb,r=e.mul(t,fb),i=e.pow(r,n),o=e.mul(t,i),s=e.mul(e.mul(o,fb),i),a=e.mul(o,e.sub(s,e.ONE));return Ib(e,a,t),a}function xb(e){if(e<hb)throw new Error("sqrt is not defined for small field");let t=e-db,n=0;for(;t%fb===ub;)t/=fb,n++;let r=fb;const i=Rb(e);for(;1===Qb(i,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Eb;let o=i.pow(r,t);const s=(t+db)/fb;return function(e,r){if(e.is0(r))return r;if(1!==Qb(e,r))throw new Error("Cannot find square root");let i=n,a=e.mul(e.ONE,o),l=e.pow(r,t),c=e.pow(r,s);for(;!e.eql(l,e.ONE);){if(e.is0(l))return e.ZERO;let t=1,n=e.sqr(l);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const r=db<<BigInt(i-t-1),o=e.pow(a,r);i=t,a=e.sqr(o),l=e.mul(l,a),c=e.mul(c,o)}return c}}function Bb(e){return e%pb===hb?Eb:e%yb===gb?Cb:e%vb===wb?function(e){const t=Rb(e),n=xb(e),r=n(t,t.neg(t.ONE)),i=n(t,r),o=n(t,t.neg(r)),s=(e+mb)/vb;return(e,t)=>{let n=e.pow(t,s),a=e.mul(n,r);const l=e.mul(n,i),c=e.mul(n,o),u=e.eql(e.sqr(a),t),d=e.eql(e.sqr(l),t);n=e.cmov(n,a,u),a=e.cmov(c,l,d);const f=e.eql(e.sqr(a),t),h=e.cmov(n,a,f);return Ib(e,h,t),h}}(e):xb(e)}const Sb=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Fb(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),o=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),o),r}function Qb(e,t){const n=(e.ORDER-db)/fb,r=e.pow(t,n),i=e.eql(r,e.ONE),o=e.eql(r,e.ZERO),s=e.eql(r,e.neg(e.ONE));if(!i&&!o&&!s)throw new Error("invalid Legendre symbol result");return i?1:o?0:-1}function Db(e,t){void 0!==t&&$u(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Rb(e,t,n=!1,r={}){if(e<=ub)throw new Error("invalid field: expected ORDER > 0, got "+e);let i,o,s,a=!1;if("object"==typeof t&&null!=t){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(i=e.BITS),e.sqrt&&(o=e.sqrt),"boolean"==typeof e.isLE&&(n=e.isLE),"boolean"==typeof e.modFromBytes&&(a=e.modFromBytes),s=e.allowedLengths}else"number"==typeof t&&(i=t),r.sqrt&&(o=r.sqrt);const{nBitLength:l,nByteLength:c}=Db(e,i);if(c>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u;const d=Object.freeze({ORDER:e,isLE:n,BITS:l,BYTES:c,MASK:ab(l),ZERO:ub,ONE:db,allowedLengths:s,create:t=>Ab(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return ub<=t&&t<e},is0:e=>e===ub,isValidNot0:e=>!d.is0(e)&&d.isValid(e),isOdd:e=>(e&db)===db,neg:t=>Ab(-t,e),eql:(e,t)=>e===t,sqr:t=>Ab(t*t,e),add:(t,n)=>Ab(t+n,e),sub:(t,n)=>Ab(t-n,e),mul:(t,n)=>Ab(t*n,e),pow:(e,t)=>function(e,t,n){if(n<ub)throw new Error("invalid exponent, negatives unsupported");if(n===ub)return e.ONE;if(n===db)return t;let r=e.ONE,i=t;for(;n>ub;)n&db&&(r=e.mul(r,i)),i=e.sqr(i),n>>=db;return r}(d,e,t),div:(t,n)=>Ab(t*kb(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>kb(t,e),sqrt:o||(t=>(u||(u=Bb(e)),u(d,t))),toBytes:e=>n?nb(e,c):tb(e,c),fromBytes:(t,r=!0)=>{if(s){if(!s.includes(t.length)||t.length>c)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+t.length);const e=new Uint8Array(c);e.set(t,n?0:e.length-t.length),t=e}if(t.length!==c)throw new Error("Field.fromBytes: expected "+c+" bytes, got "+t.length);let i=n?eb(t):XA(t);if(a&&(i=Ab(i,e)),!r&&!d.isValid(i))throw new Error("invalid field element: outside of range 0..ORDER");return i},invertBatch:e=>Fb(d,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(d)}function $b(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 Pb(e){const t=$b(e);return t+Math.ceil(t/2)}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const Ub=BigInt(0),Tb=BigInt(1);function Nb(e,t){const n=t.negate();return e?n:t}function Lb(e,t){const n=Fb(e.Fp,t.map(e=>e.Z));return t.map((t,r)=>e.fromAffine(t.toAffine(n[r])))}function Ob(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Mb(e,t){Ob(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:ab(e),maxNumber:n,shiftBy:BigInt(e)}}function _b(e,t,n){const{windowSize:r,mask:i,maxNumber:o,shiftBy:s}=n;let a=Number(e&i),l=e>>s;a>r&&(a-=o,l+=Tb);const c=t*r;return{nextN:l,offset:c+Math.abs(a)-1,isZero:0===a,isNeg:a<0,isNegF:t%2!=0,offsetF:c}}const Hb=new WeakMap,jb=new WeakMap;function Gb(e){return jb.get(e)||1}function qb(e){if(e!==Ub)throw new Error("invalid wNAF")}class Kb{constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let r=e;for(;t>Ub;)t&Tb&&(n=n.add(r)),r=r.double(),t>>=Tb;return n}precomputeWindow(e,t){const{windows:n,windowSize:r}=Mb(t,this.bits),i=[];let o=e,s=o;for(let e=0;e<n;e++){s=o,i.push(s);for(let e=1;e<r;e++)s=s.add(o),i.push(s);o=s.double()}return i}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let r=this.ZERO,i=this.BASE;const o=Mb(e,this.bits);for(let e=0;e<o.windows;e++){const{nextN:s,offset:a,isZero:l,isNeg:c,isNegF:u,offsetF:d}=_b(n,e,o);n=s,l?i=i.add(Nb(u,t[d])):r=r.add(Nb(c,t[a]))}return qb(n),{p:r,f:i}}wNAFUnsafe(e,t,n,r=this.ZERO){const i=Mb(e,this.bits);for(let e=0;e<i.windows&&n!==Ub;e++){const{nextN:o,offset:s,isZero:a,isNeg:l}=_b(n,e,i);if(n=o,!a){const e=t[s];r=r.add(l?e.negate():e)}}return qb(n),r}getPrecomputes(e,t,n){let r=Hb.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Hb.set(t,r))),r}cached(e,t,n){const r=Gb(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)}unsafe(e,t,n,r){const i=Gb(e);return 1===i?this._unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)}createCache(e,t){Ob(t,this.bits),jb.set(e,t),Hb.delete(e)}hasCache(e){return 1!==Gb(e)}}function Jb(e,t,n,r){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const i=n.length,o=r.length;if(i!==o)throw new Error("arrays of points and scalars must have equal length");const s=e.ZERO,a=sb(BigInt(i));let l=1;a>12?l=a-3:a>4?l=a-2:a>0&&(l=2);const c=ab(l),u=new Array(Number(c)+1).fill(s);let d=s;for(let e=Math.floor((t.BITS-1)/l)*l;e>=0;e-=l){u.fill(s);for(let t=0;t<o;t++){const i=r[t],o=Number(i>>BigInt(e)&c);u[o]=u[o].add(n[t])}let t=s;for(let e=u.length-1,n=s;e>0;e--)n=n.add(u[e]),t=t.add(n);if(d=d.add(t),0!==e)for(let e=0;e<l;e++)d=d.double()}return d}function Vb(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return function(e){const t=Sb.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"});lb(e,t)}(t),t}return Rb(e,{isLE:n})}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const Yb=(e,t)=>(e+(e>=0?t:-t)/nk)/t;function zb(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Wb(e,t){const n={};for(let r of Object.keys(t))n[r]=void 0===e[r]?t[r]:e[r];return YA(n.lowS,"lowS"),YA(n.prehash,"prehash"),void 0!==n.format&&zb(n.format),n}class Zb extends Error{constructor(e=""){super(e)}}const Xb={Err:Zb,_tlv:{encode:(e,t)=>{const{Err:n}=Xb;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,i=WA(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const o=r>127?WA(i.length/2|128):"";return WA(e)+o+i+t},decode(e,t){const{Err:n}=Xb;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[r++];let o=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const s=t.subarray(r,r+e);if(s.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===s[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of s)o=o<<8|e;if(r+=e,o<128)throw new n("tlv.decode(long): not minimal encoding")}else o=i;const s=t.subarray(r,r+o);if(s.length!==o)throw new n("tlv.decode: wrong value length");return{v:s,l:t.subarray(r+o)}}},_int:{encode(e){const{Err:t}=Xb;if(e<ek)throw new t("integer: negative integers are not allowed");let n=WA(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=Xb;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return XA(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Xb,i=rb("signature",e),{v:o,l:s}=r.decode(48,i);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:a,l:l}=r.decode(2,o),{v:c,l:u}=r.decode(2,l);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(c)}},hexFromSig(e){const{_tlv:t,_int:n}=Xb,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},ek=BigInt(0),tk=BigInt(1),nk=BigInt(2),rk=BigInt(3),ik=BigInt(4);function ok(e,t){const{BYTES:n}=e;let r;if("bigint"==typeof t)r=t;else{let i=rb("private key",t);try{r=e.fromBytes(i)}catch(e){throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof t}`)}}if(!e.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function sk(e,t={}){const n=function(e,t,n={},r){if(void 0===r&&(r="edwards"===e),!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const n=t[e];if(!("bigint"==typeof n&&n>Ub))throw new Error(`CURVE.${e} must be positive bigint`)}const i=Vb(t.p,n.Fp,r),o=Vb(t.n,n.Fn,r),s=["Gx","Gy","a","weierstrass"===e?"b":"d"];for(const e of s)if(!i.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{CURVE:t=Object.freeze(Object.assign({},t)),Fp:i,Fn:o}}("weierstrass",e,t),{Fp:r,Fn:i}=n;let o=n.CURVE;const{h:s,n:a}=o;lb(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:l}=t;if(l&&(!r.is0(o.a)||"bigint"!=typeof l.beta||!Array.isArray(l.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const c=lk(r,i);function u(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const d=t.toBytes||function(e,t,n){const{x:i,y:o}=t.toAffine(),s=r.toBytes(i);if(YA(n,"isCompressed"),n){u();return Zu(ak(!r.isOdd(o)),s)}return Zu(Uint8Array.of(4),s,r.toBytes(o))},f=t.fromBytes||function(e){zA(e,void 0,"Point");const{publicKey:t,publicKeyUncompressed:n}=c,i=e.length,o=e[0],s=e.subarray(1);if(i!==t||2!==o&&3!==o){if(i===n&&4===o){const e=r.BYTES,t=r.fromBytes(s.subarray(0,e)),n=r.fromBytes(s.subarray(e,2*e));if(!p(t,n))throw new Error("bad point: is not on curve");return{x:t,y:n}}throw new Error(`bad point: got length ${i}, expected compressed=${t} or uncompressed=${n}`)}{const e=r.fromBytes(s);if(!r.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=h(e);let n;try{n=r.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}u();return!(1&~o)!==r.isOdd(n)&&(n=r.neg(n)),{x:e,y:n}}};function h(e){const t=r.sqr(e),n=r.mul(t,e);return r.add(r.add(n,r.mul(e,o.a)),o.b)}function p(e,t){const n=r.sqr(t),i=h(e);return r.eql(n,i)}if(!p(o.Gx,o.Gy))throw new Error("bad curve params: generator point");const g=r.mul(r.pow(o.a,rk),ik),m=r.mul(r.sqr(o.b),BigInt(27));if(r.is0(r.add(g,m)))throw new Error("bad curve params: a or b");function y(e,t,n=!1){if(!r.isValid(t)||n&&r.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function w(e){if(!(e instanceof I))throw new Error("ProjectivePoint expected")}function v(e){if(!l||!l.basises)throw new Error("no endo");return function(e,t,n){const[[r,i],[o,s]]=t,a=Yb(s*e,n),l=Yb(-i*e,n);let c=e-a*r-l*o,u=-a*i-l*s;const d=c<ek,f=u<ek;d&&(c=-c),f&&(u=-u);const h=ab(Math.ceil(sb(n)/2))+tk;if(c<ek||c>=h||u<ek||u>=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:c,k2neg:f,k2:u}}(e,l.basises,i.ORDER)}const A=cb((e,t)=>{const{X:n,Y:i,Z:o}=e;if(r.eql(o,r.ONE))return{x:n,y:i};const s=e.is0();null==t&&(t=s?r.ONE:r.inv(o));const a=r.mul(n,t),l=r.mul(i,t),c=r.mul(o,t);if(s)return{x:r.ZERO,y:r.ZERO};if(!r.eql(c,r.ONE))throw new Error("invZ was invalid");return{x:a,y:l}}),b=cb(e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.Y))return;throw new Error("bad point: ZERO")}const{x:n,y:i}=e.toAffine();if(!r.isValid(n)||!r.isValid(i))throw new Error("bad point: x or y not field elements");if(!p(n,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function k(e,t,n,i,o){return n=new I(r.mul(n.X,e),n.Y,n.Z),t=Nb(i,t),n=Nb(o,n),t.add(n)}class I{constructor(e,t,n){this.X=y("x",e),this.Y=y("y",t,!0),this.Z=y("z",n),Object.freeze(this)}static CURVE(){return o}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw new Error("invalid affine point");if(e instanceof I)throw new Error("projective point not allowed");return r.is0(t)&&r.is0(n)?I.ZERO:new I(t,n,r.ONE)}static fromBytes(e){const t=I.fromAffine(f(zA(e,void 0,"point")));return t.assertValidity(),t}static fromHex(e){return I.fromBytes(rb("pointHex",e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(e=8,t=!0){return C.createCache(this,e),t||this.multiply(rk),this}assertValidity(){b(this)}hasEvenY(){const{y:e}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(e)}equals(e){w(e);const{X:t,Y:n,Z:i}=this,{X:o,Y:s,Z:a}=e,l=r.eql(r.mul(t,a),r.mul(o,i)),c=r.eql(r.mul(n,a),r.mul(s,i));return l&&c}negate(){return new I(this.X,r.neg(this.Y),this.Z)}double(){const{a:e,b:t}=o,n=r.mul(t,rk),{X:i,Y:s,Z:a}=this;let l=r.ZERO,c=r.ZERO,u=r.ZERO,d=r.mul(i,i),f=r.mul(s,s),h=r.mul(a,a),p=r.mul(i,s);return p=r.add(p,p),u=r.mul(i,a),u=r.add(u,u),l=r.mul(e,u),c=r.mul(n,h),c=r.add(l,c),l=r.sub(f,c),c=r.add(f,c),c=r.mul(l,c),l=r.mul(p,l),u=r.mul(n,u),h=r.mul(e,h),p=r.sub(d,h),p=r.mul(e,p),p=r.add(p,u),u=r.add(d,d),d=r.add(u,d),d=r.add(d,h),d=r.mul(d,p),c=r.add(c,d),h=r.mul(s,a),h=r.add(h,h),d=r.mul(h,p),l=r.sub(l,d),u=r.mul(h,f),u=r.add(u,u),u=r.add(u,u),new I(l,c,u)}add(e){w(e);const{X:t,Y:n,Z:i}=this,{X:s,Y:a,Z:l}=e;let c=r.ZERO,u=r.ZERO,d=r.ZERO;const f=o.a,h=r.mul(o.b,rk);let p=r.mul(t,s),g=r.mul(n,a),m=r.mul(i,l),y=r.add(t,n),v=r.add(s,a);y=r.mul(y,v),v=r.add(p,g),y=r.sub(y,v),v=r.add(t,i);let A=r.add(s,l);return v=r.mul(v,A),A=r.add(p,m),v=r.sub(v,A),A=r.add(n,i),c=r.add(a,l),A=r.mul(A,c),c=r.add(g,m),A=r.sub(A,c),d=r.mul(f,v),c=r.mul(h,m),d=r.add(c,d),c=r.sub(g,d),d=r.add(g,d),u=r.mul(c,d),g=r.add(p,p),g=r.add(g,p),m=r.mul(f,m),v=r.mul(h,v),g=r.add(g,m),m=r.sub(p,m),m=r.mul(f,m),v=r.add(v,m),p=r.mul(g,v),u=r.add(u,p),p=r.mul(A,v),c=r.mul(y,c),c=r.sub(c,p),p=r.mul(y,g),d=r.mul(A,d),d=r.add(d,p),new I(c,u,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(I.ZERO)}multiply(e){const{endo:n}=t;if(!i.isValidNot0(e))throw new Error("invalid scalar: out of range");let r,o;const s=e=>C.cached(this,e,e=>Lb(I,e));if(n){const{k1neg:t,k1:i,k2neg:a,k2:l}=v(e),{p:c,f:u}=s(i),{p:d,f:f}=s(l);o=u.add(f),r=k(n.beta,c,d,t,a)}else{const{p:t,f:n}=s(e);r=t,o=n}return Lb(I,[r,o])[0]}multiplyUnsafe(e){const{endo:n}=t,r=this;if(!i.isValid(e))throw new Error("invalid scalar: out of range");if(e===ek||r.is0())return I.ZERO;if(e===tk)return r;if(C.hasCache(this))return this.multiply(e);if(n){const{k1neg:t,k1:i,k2neg:o,k2:s}=v(e),{p1:a,p2:l}=function(e,t,n,r){let i=t,o=e.ZERO,s=e.ZERO;for(;n>Ub||r>Ub;)n&Tb&&(o=o.add(i)),r&Tb&&(s=s.add(i)),i=i.double(),n>>=Tb,r>>=Tb;return{p1:o,p2:s}}(I,r,i,s);return k(n.beta,a,l,t,o)}return C.unsafe(r,e)}multiplyAndAddUnsafe(e,t,n){const r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return A(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return s===tk||(e?e(I,this):C.unsafe(this,a).is0())}clearCofactor(){const{clearCofactor:e}=t;return s===tk?this:e?e(I,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(e=!0){return YA(e,"isCompressed"),this.assertValidity(),d(I,this,e)}toHex(e=!0){return Hu(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(e=!0){return this.toBytes(e)}_setWindowSize(e){this.precompute(e)}static normalizeZ(e){return Lb(I,e)}static msm(e,t){return Jb(I,i,e,t)}static fromPrivateKey(e){return I.BASE.multiply(ok(i,e))}}I.BASE=new I(o.Gx,o.Gy,r.ONE),I.ZERO=new I(r.ZERO,r.ONE,r.ZERO),I.Fp=r,I.Fn=i;const E=i.BITS,C=new Kb(I,t.endo?Math.ceil(E/2):E);return I.BASE.precompute(8),I}function ak(e){return Uint8Array.of(e?2:3)}function lk(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ck(e,t={}){const{Fn:n}=e,r=t.randomBytes||td,i=Object.assign(lk(e.Fp,n),{seed:Pb(n.ORDER)});function o(e){try{return!!ok(n,e)}catch(e){return!1}}function s(e=r(i.seed)){return function(e,t,n=!1){const r=e.length,i=$b(t),o=Pb(t);if(r<16||r<o||r>1024)throw new Error("expected "+o+"-1024 bytes of input, got "+r);const s=Ab(n?eb(e):XA(e),t-db)+db;return n?nb(s,i):tb(s,i)}(zA(e,i.seed,"seed"),n.ORDER)}function a(t,r=!0){return e.BASE.multiply(ok(n,t)).toBytes(r)}function l(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;const{secretKey:r,publicKey:o,publicKeyUncompressed:s}=i;if(n.allowedLengths||r===o)return;const a=rb("key",t).length;return a===o||a===s}const c={isValidSecretKey:o,isValidPublicKey:function(t,n){const{publicKey:r,publicKeyUncompressed:o}=i;try{const i=t.length;return(!0!==n||i===r)&&((!1!==n||i===o)&&!!e.fromBytes(t))}catch(e){return!1}},randomSecretKey:s,isValidPrivateKey:o,randomPrivateKey:s,normPrivateKeyToScalar:e=>ok(n,e),precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};return Object.freeze({getPublicKey:a,getSharedSecret:function(t,r,i=!0){if(!0===l(t))throw new Error("first arg must be private key");if(!1===l(r))throw new Error("second arg must be public key");const o=ok(n,t);return e.fromHex(r).multiply(o).toBytes(i)},keygen:function(e){const t=s(e);return{secretKey:t,publicKey:a(t)}},Point:e,utils:c,lengths:i})}function uk(e,t,n={}){Uu(t),lb(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||td,i=n.hmac||((e,...n)=>KA(t,e,Zu(...n))),{Fp:o,Fn:s}=e,{ORDER:a,BITS:l}=s,{keygen:c,getPublicKey:u,getSharedSecret:d,utils:f,lengths:h}=ck(e,n),p={prehash:!1,lowS:"boolean"==typeof n.lowS&&n.lowS,format:void 0,extraEntropy:!1},g="compact";function m(e){return e>a>>tk}function y(e,t){if(!s.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..Point.Fn.ORDER`);return t}class w{constructor(e,t,n){this.r=y("r",e),this.s=y("s",t),null!=n&&(this.recovery=n),Object.freeze(this)}static fromBytes(e,t=g){let n;if(function(e,t){zb(t);const n=h.signature;zA(e,"compact"===t?n:"recovered"===t?n+1:void 0,`${t} signature`)}(e,t),"der"===t){const{r:t,s:n}=Xb.toSig(zA(e));return new w(t,n)}"recovered"===t&&(n=e[0],t="compact",e=e.subarray(1));const r=s.BYTES,i=e.subarray(0,r),o=e.subarray(r,2*r);return new w(s.fromBytes(i),s.fromBytes(o),n)}static fromHex(e,t){return this.fromBytes(zu(e),t)}addRecoveryBit(e){return new w(this.r,this.s,e)}recoverPublicKey(t){const n=o.ORDER,{r:r,s:i,recovery:l}=this;if(null==l||![0,1,2,3].includes(l))throw new Error("recovery id invalid");if(a*nk<n&&l>1)throw new Error("recovery id is ambiguous for h>1 curve");const c=2===l||3===l?r+a:r;if(!o.isValid(c))throw new Error("recovery id 2 or 3 invalid");const u=o.toBytes(c),d=e.fromBytes(Zu(ak(!(1&l)),u)),f=s.inv(c),h=A(rb("msgHash",t)),p=s.create(-h*f),g=s.create(i*f),m=e.BASE.multiplyUnsafe(p).add(d.multiplyUnsafe(g));if(m.is0())throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return m(this.s)}toBytes(e=g){if(zb(e),"der"===e)return zu(Xb.hexFromSig(this));const t=s.toBytes(this.r),n=s.toBytes(this.s);if("recovered"===e){if(null==this.recovery)throw new Error("recovery bit must be present");return Zu(Uint8Array.of(this.recovery),t,n)}return Zu(t,n)}toHex(e){return Hu(this.toBytes(e))}assertValidity(){}static fromCompact(e){return w.fromBytes(rb("sig",e),"compact")}static fromDER(e){return w.fromBytes(rb("sig",e),"der")}normalizeS(){return this.hasHighS()?new w(this.r,s.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Hu(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Hu(this.toBytes("compact"))}}const v=n.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=XA(e),n=8*e.length-l;return n>0?t>>BigInt(n):t},A=n.bits2int_modN||function(e){return s.create(v(e))},b=ab(l);function k(e){return ob("num < 2^"+l,e,ek,b),s.toBytes(e)}function I(e,n){return zA(e,void 0,"message"),n?zA(t(e),void 0,"prehashed message"):e}return Object.freeze({keygen:c,getPublicKey:u,getSharedSecret:d,utils:f,lengths:h,Point:e,sign:function(n,o,a={}){n=rb("message",n);const{seed:l,k2sig:c}=function(t,n,i){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{lowS:o,prehash:a,extraEntropy:l}=Wb(i,p);t=I(t,a);const c=A(t),u=ok(s,n),d=[k(u),k(c)];if(null!=l&&!1!==l){const e=!0===l?r(h.secretKey):l;d.push(rb("extraEntropy",e))}const f=Zu(...d),g=c;return{seed:f,k2sig:function(t){const n=v(t);if(!s.isValidNot0(n))return;const r=s.inv(n),i=e.BASE.multiply(n).toAffine(),a=s.create(i.x);if(a===ek)return;const l=s.create(r*s.create(g+a*u));if(l===ek)return;let c=(i.x===a?0:2)|Number(i.y&tk),d=l;return o&&m(l)&&(d=s.neg(l),c^=1),new w(a,d,c)}}}(n,o,a),u=function(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");const r=e=>new Uint8Array(e),i=e=>Uint8Array.of(e);let o=r(e),s=r(e),a=0;const l=()=>{o.fill(1),s.fill(0),a=0},c=(...e)=>n(s,o,...e),u=(e=r(0))=>{s=c(i(0),e),o=c(),0!==e.length&&(s=c(i(1),e),o=c())},d=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){o=c();const t=o.slice();n.push(t),e+=o.length}return Zu(...n)};return(e,t)=>{let n;for(l(),u(e);!(n=t(d()));)u();return l(),n}}(t.outputLen,s.BYTES,i);return u(l,c)},verify:function(t,n,r,i={}){const{lowS:o,prehash:a,format:l}=Wb(i,p);if(r=rb("publicKey",r),n=I(rb("message",n),a),"strict"in i)throw new Error("options.strict was renamed to lowS");const c=void 0===l?function(e){let t;const n="string"==typeof e||Ru(e),r=!n&&null!==e&&"object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s;if(!n&&!r)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(r)t=new w(e.r,e.s);else if(n){try{t=w.fromBytes(rb("sig",e),"der")}catch(e){if(!(e instanceof Xb.Err))throw e}if(!t)try{t=w.fromBytes(rb("sig",e),"compact")}catch(e){return!1}}return t||!1}(t):w.fromBytes(rb("sig",t),l);if(!1===c)return!1;try{const t=e.fromBytes(r);if(o&&c.hasHighS())return!1;const{r:i,s:a}=c,l=A(n),u=s.inv(a),d=s.create(l*u),f=s.create(i*u),h=e.BASE.multiplyUnsafe(d).add(t.multiplyUnsafe(f));if(h.is0())return!1;return s.create(h.x)===i}catch(e){return!1}},recoverPublicKey:function(e,t,n={}){const{prehash:r}=Wb(n,p);return t=I(t,r),w.fromBytes(e,"recovered").recoverPublicKey(t).toBytes()},Signature:w,hash:t})}function dk(e){const{CURVE:t,curveOpts:n}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(e=>Math.ceil(e/2)))):void 0;return{CURVE:t,curveOpts:{Fp:n,Fn:Rb(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function fk(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:i}=dk(e);return function(e,t){const n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,Db(n.Fn.ORDER,n.Fn.BITS))})}(e,uk(sk(t,n),r,i))}
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
||
const hk={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},pk={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},gk=BigInt(2);const mk=Rb(hk.p,{sqrt:function(e){const t=hk.p,n=BigInt(3),r=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),l=BigInt(88),c=e*e*e%t,u=c*c*e%t,d=bb(u,n,t)*u%t,f=bb(d,n,t)*u%t,h=bb(f,gk,t)*c%t,p=bb(h,i,t)*h%t,g=bb(p,o,t)*p%t,m=bb(g,a,t)*g%t,y=bb(m,l,t)*m%t,w=bb(y,a,t)*g%t,v=bb(w,n,t)*u%t,A=bb(v,s,t)*p%t,b=bb(A,r,t)*c%t,k=bb(b,gk,t);if(!mk.eql(mk.sqr(k),e))throw new Error("Cannot find square root");return k}}),yk=function(e,t){const n=t=>fk({...e,hash:t});return{...n(t),create:n}}({...hk,Fp:mk,lowS:!0,endo:pk},GA),wk=GA,vk="nip46";function Ak(e){let t=0n;for(const n of e)t=t<<8n|BigInt(n);return t}function bk(e){const t=yk.utils.randomPrivateKey(),n=yk.ProjectivePoint.fromHex(function(e){const t=(new TextEncoder).encode("Secp256k1_HashToCurve_Cashu_"),n=wk(new Uint8Array([...t,...e]));for(let e=0;e<65536;e++){const t=new Uint8Array(4);new DataView(t.buffer).setUint32(0,e,!0);const r=new Uint8Array([...n,...t]),i=wk(r),o=new Uint8Array([2,...i]);try{if(!yk.ProjectivePoint.fromHex(o).equals(yk.ProjectivePoint.ZERO))return o}catch{}}throw new Error("Failed to hash to curve after 65536 attempts")}(e)),r=yk.ProjectivePoint.BASE.multiply(Ak(t));return{B_:n.add(r).toRawBytes(!0),secret:e,r:t}}function kk(e){const t={k:e.keysetId,s:Hu(e.secret),c:Hu(e.signature),p:Hu(e.pubkey),e:e.expiry,sc:e.scope,kinds:e.kinds,kind_ranges:e.kindRanges},n=JSON.stringify(t);return"cashuA"+btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Ik(e,t,n,r,i,o){const s=bk(crypto.getRandomValues(new Uint8Array(32))),a={blinded_message:Hu(s.B_),scope:t,kinds:i,kind_ranges:o},l=`${e}/cashu/mint`,c=await r(l,"POST"),u=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:c},body:JSON.stringify(a)});if(!u.ok){const e=await u.text();throw new Error(`Mint request failed: ${e}`)}const d=await u.json(),f=zu(d.blinded_signature),h=zu(d.mint_pubkey),p=function(e,t,n){const r=yk.ProjectivePoint.fromHex(e),i=yk.ProjectivePoint.fromHex(n).multiply(Ak(t));return r.subtract(i).toRawBytes(!0)}(f,s.r,h);return{keysetId:d.keyset_id,secret:s.secret,signature:p,pubkey:n,expiry:d.expiry,scope:t,kinds:i,kindRanges:o}}async function Ek(e){let t=e.replace("wss://","https://").replace("ws://","http://").replace(/\/$/,"");try{const e=await fetch(`${t}/cashu/info`);if(!e.ok)return null;const n=await e.json();return n.mintUrl=t,n}catch{return null}}const Ck=[];function xk(t,n=e){let r;const i=new Set;function s(e){if(o(t,e)&&(t=e,r)){const e=!Ck.length;for(const e of i)e[1](),Ck.push(e,t);if(e){for(let e=0;e<Ck.length;e+=2)Ck[e][0](Ck[e+1]);Ck.length=0}}}return{set:s,update:function(e){s(e(t))},subscribe:function(o,a=e){const l=[o,a];return i.add(l),1===i.size&&(r=n(s)||e),o(t),()=>{i.delete(l),0===i.size&&r&&(r(),r=null)}}}}!function(t,n,o){const s=!Array.isArray(t),a=s?[t]:t,c=n.length<2;return u=t=>{let o=!1;const u=[];let d=0,f=e;const h=()=>{if(d)return;f();const r=n(s?u[0]:u,t);c?t(r):f=i(r)?r:e},p=a.map((e,t)=>l(e,e=>{u[t]=e,d&=~(1<<t),o&&h()},()=>{d|=1<<t}));return o=!0,h(),function(){r(p),f(),o=!1}},{subscribe:xk(o,u).subscribe};var u}([xk(""),xk("")],([e,t])=>t||e),xk(localStorage.getItem("selectedTab")||"export");const Bk=xk(null),Sk=xk(!1),Fk=xk(null),Qk=xk([]),Dk=xk(null),Rk=xk([]);let $k=null;function Pk(){return $k||$k||($k=new Worker("/bunker-worker.js"),$k.onmessage=e=>{const{type:t,...n}=e.data;switch(t){case"status":Sk.set("connected"===n.status);break;case"clients":Rk.set(n.clients||[]);break;case"error":console.error("[BunkerStore] Worker error:",n.error);break;case"request":console.log("[BunkerStore] NIP-46 request:",n.method,"from:",n.from?.substring(0,8))}},$k.onerror=e=>{console.error("[BunkerStore] Worker error:",e),Sk.set(!1)},Bk.set($k),$k)}function Uk(){$k&&$k.postMessage({type:"disconnect"}),Sk.set(!1),Fk.set(null),Qk.set([]),Dk.set(null),Rk.set([])}function Tk(e,t,n){const r=e.slice();return r[50]=t[n],r}function Nk(e,t,n){const r=e.slice();return r[54]=t[n],r}function Lk(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in to access remote signing.",i=w(),o=g("button"),o.textContent="Log In",k(r,"class","svelte-13nqrp7"),k(o,"class","login-btn svelte-13nqrp7"),k(n,"class","login-prompt svelte-13nqrp7")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[24]),s=!0)},p:e,d(e){e&&h(n),s=!1,a()}}}function Ok(e){let t,n,r,i,o,s,a,l,c=(e[3]||"read-only")+"";return{c(){t=g("div"),n=g("div"),r=g("h3"),r.textContent="Access Denied",i=w(),o=g("p"),s=y("You need write access to use remote signing. Your current access level: "),a=g("strong"),l=y(c),k(r,"class","svelte-13nqrp7"),k(o,"class","svelte-13nqrp7"),k(n,"class","access-denied svelte-13nqrp7"),k(t,"class","bunker-view svelte-13nqrp7")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(n,i),d(n,o),d(o,s),d(o,a),d(a,l)},p(e,t){8&t[0]&&c!==(c=(e[3]||"read-only")+"")&&E(l,c)},d(e){e&&h(t)}}}function Mk(e){let t,n,r,i,o,s,a,l,c,u,p,m=e[7]?"Loading...":"Refresh",v=e[8]&&Hk(e),b=e[4]?.cashu_enabled&&"none"!==e[4]?.acl_mode&&jk();function I(e,t){return e[7]&&!e[4]?qk:e[4]?Gk:void 0}let C=I(e),x=C&&C(e);return{c(){t=g("div"),n=g("div"),r=g("h3"),r.textContent="Remote Signing (NIP-46 Bunker)",i=w(),o=g("button"),s=y(m),a=w(),v&&v.c(),l=w(),b&&b.c(),c=w(),x&&x.c(),k(r,"class","svelte-13nqrp7"),k(o,"class","refresh-btn svelte-13nqrp7"),o.disabled=e[7],k(n,"class","header-section svelte-13nqrp7"),k(t,"class","bunker-view svelte-13nqrp7")},m(h,g){f(h,t,g),d(t,n),d(n,r),d(n,i),d(n,o),d(o,s),d(t,a),v&&v.m(t,null),d(t,l),b&&b.m(t,null),d(t,c),x&&x.m(t,null),u||(p=A(o,"click",e[21]),u=!0)},p(e,n){128&n[0]&&m!==(m=e[7]?"Loading...":"Refresh")&&E(s,m),128&n[0]&&(o.disabled=e[7]),e[8]?v?v.p(e,n):(v=Hk(e),v.c(),v.m(t,l)):v&&(v.d(1),v=null),e[4]?.cashu_enabled&&"none"!==e[4]?.acl_mode?b||(b=jk(),b.c(),b.m(t,c)):b&&(b.d(1),b=null),C===(C=I(e))&&x?x.p(e,n):(x&&x.d(1),x=C&&C(e),x&&(x.c(),x.m(t,null)))},d(e){e&&h(t),v&&v.d(),b&&b.d(),x&&x.d(),u=!1,p()}}}function _k(t){let n;return{c(){n=g("div"),n.innerHTML='<div class="unavailable-message svelte-13nqrp7"><h3 class="svelte-13nqrp7">Remote Signing Not Available</h3> \n <p class="svelte-13nqrp7">This relay does not have bunker mode enabled, or ACL mode is set to "none".</p> \n <p class="hint svelte-13nqrp7">Remote signing requires the relay operator to enable ACL mode "follows" or "managed".</p></div>',k(n,"class","bunker-view svelte-13nqrp7")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Hk(e){let t,n;return{c(){t=g("div"),n=y(e[8]),k(t,"class","error-message svelte-13nqrp7")},m(e,r){f(e,t,r),d(t,n)},p(e,t){256&t[0]&&E(n,e[8])},d(e){e&&h(t)}}}function jk(e){let t;return{c(){t=g("div"),t.innerHTML="<strong>CAT Required:</strong> This relay requires Cashu Access Tokens (CAT) for bunker connections.\n Your client must support CAT authentication or connections will be rejected.",k(t,"class","cat-warning svelte-13nqrp7")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function Gk(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,Q,D,R,$,P,U,T,N,L,O,M,_,H,j,G,q,K,J,V,Y,z,W,Z=e[11]?"Active":"Inactive",X=e[4].relay_url+"",ee="relay"===e[9]?"Copied!":"Copy";function te(e,t){return e[2]?Kk:Jk}let ne=te(e),re=ne(e),ie=e[6].length>0&&Zk(e);return{c(){t=g("div"),t.innerHTML='<p class="svelte-13nqrp7"><strong>How it works:</strong> Start the bunker service to allow remote apps (like Smesh) to request signatures from your ORLY account.\n Share the QR code or bunker URL with your client app.</p>',n=w(),i=g("div"),o=g("div"),s=g("h4"),s.textContent="Bunker Service",a=w(),l=g("div"),c=g("span"),u=w(),p=y(Z),m=w(),re.c(),v=w(),ie&&ie.c(),b=w(),I=g("div"),C=g("h4"),C.textContent="Connection Details",x=w(),B=g("div"),S=g("span"),S.textContent="Relay:",Q=w(),D=g("code"),R=y(X),$=w(),P=g("button"),U=y(ee),T=w(),N=g("div"),L=g("span"),L.textContent="Your npub:",O=w(),M=g("code"),_=y(e[1]),H=w(),j=g("div"),G=g("span"),G.textContent="Secret:",q=w(),K=g("code"),J=y(e[5]),V=w(),Y=g("button"),Y.textContent="Regenerate",k(t,"class","instructions svelte-13nqrp7"),k(s,"class","svelte-13nqrp7"),k(c,"class","status-dot svelte-13nqrp7"),k(l,"class","service-status svelte-13nqrp7"),F(l,"active",e[11]),k(o,"class","service-header svelte-13nqrp7"),k(i,"class","service-control svelte-13nqrp7"),k(C,"class","svelte-13nqrp7"),k(S,"class","label svelte-13nqrp7"),k(D,"class","svelte-13nqrp7"),k(P,"class","copy-btn svelte-13nqrp7"),k(B,"class","info-row svelte-13nqrp7"),k(L,"class","label svelte-13nqrp7"),k(M,"class","npub svelte-13nqrp7"),k(N,"class","info-row svelte-13nqrp7"),k(G,"class","label svelte-13nqrp7"),k(K,"class","secret svelte-13nqrp7"),k(Y,"class","copy-btn svelte-13nqrp7"),k(j,"class","info-row svelte-13nqrp7"),k(I,"class","connection-info svelte-13nqrp7")},m(r,h){f(r,t,h),f(r,n,h),f(r,i,h),d(i,o),d(o,s),d(o,a),d(o,l),d(l,c),d(l,u),d(l,p),d(i,m),re.m(i,null),f(r,v,h),ie&&ie.m(r,h),f(r,b,h),f(r,I,h),d(I,C),d(I,x),d(I,B),d(B,S),d(B,Q),d(B,D),d(D,R),d(B,$),d(B,P),d(P,U),d(I,T),d(I,N),d(N,L),d(N,O),d(N,M),d(M,_),d(I,H),d(I,j),d(j,G),d(j,q),d(j,K),d(K,J),d(j,V),d(j,Y),z||(W=[A(P,"click",e[41]),A(Y,"click",e[22])],z=!0)},p(e,t){2048&t[0]&&Z!==(Z=e[11]?"Active":"Inactive")&&E(p,Z),2048&t[0]&&F(l,"active",e[11]),ne===(ne=te(e))&&re?re.p(e,t):(re.d(1),re=ne(e),re&&(re.c(),re.m(i,null))),e[6].length>0?ie?ie.p(e,t):(ie=Zk(e),ie.c(),ie.m(b.parentNode,b)):ie&&(ie.d(1),ie=null),16&t[0]&&X!==(X=e[4].relay_url+"")&&E(R,X),512&t[0]&&ee!==(ee="relay"===e[9]?"Copied!":"Copy")&&E(U,ee),2&t[0]&&E(_,e[1]),32&t[0]&&E(J,e[5])},d(e){e&&h(t),e&&h(n),e&&h(i),re.d(),e&&h(v),ie&&ie.d(e),e&&h(b),e&&h(I),z=!1,r(W)}}}function qk(t){let n;return{c(){n=g("div"),n.textContent="Loading bunker information...",k(n,"class","loading svelte-13nqrp7")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Kk(e){let t,n,r;function i(e,t){return e[11]?Yk:Vk}let o=i(e),s=o(e),a=e[11]&&e[13].length>0&&zk(e);return{c(){t=g("div"),s.c(),n=w(),a&&a.c(),r=v(),k(t,"class","service-actions svelte-13nqrp7")},m(e,i){f(e,t,i),s.m(t,null),f(e,n,i),a&&a.m(e,i),f(e,r,i)},p(e,n){o===(o=i(e))&&s?s.p(e,n):(s.d(1),s=o(e),s&&(s.c(),s.m(t,null))),e[11]&&e[13].length>0?a?a.p(e,n):(a=zk(e),a.c(),a.m(r.parentNode,r)):a&&(a.d(1),a=null)},d(e){e&&h(t),s.d(),e&&h(n),a&&a.d(e),e&&h(r)}}}function Jk(t){let n;return{c(){n=g("div"),n.textContent="Bunker service requires nsec login. Please log in with your private key to enable remote signing.",k(n,"class","no-privkey-warning svelte-13nqrp7")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function Vk(e){let t,n,r,i,o=e[10]?"Starting...":"Start Service";return{c(){t=g("button"),n=y(o),k(t,"class","start-btn svelte-13nqrp7"),t.disabled=e[10]},m(o,s){f(o,t,s),d(t,n),r||(i=A(t,"click",e[19]),r=!0)},p(e,r){1024&r[0]&&o!==(o=e[10]?"Starting...":"Start Service")&&E(n,o),1024&r[0]&&(t.disabled=e[10])},d(e){e&&h(t),r=!1,i()}}}function Yk(t){let n,r,i;return{c(){n=g("button"),n.textContent="Stop Service",k(n,"class","stop-btn svelte-13nqrp7")},m(e,o){f(e,n,o),r||(i=A(n,"click",t[20]),r=!0)},p:e,d(e){e&&h(n),r=!1,i()}}}function zk(e){let t,n,r,i,o,s,a=e[13].length+"",l=e[13],c=[];for(let t=0;t<l.length;t+=1)c[t]=Wk(Nk(e,l,t));return{c(){t=g("div"),n=g("h5"),r=y("Connected Clients ("),i=y(a),o=y(")"),s=w();for(let e=0;e<c.length;e+=1)c[e].c();k(n,"class","svelte-13nqrp7"),k(t,"class","connected-clients svelte-13nqrp7")},m(e,a){f(e,t,a),d(t,n),d(n,r),d(n,i),d(n,o),d(t,s);for(let e=0;e<c.length;e+=1)c[e]&&c[e].m(t,null)},p(e,n){if(8192&n[0]&&a!==(a=e[13].length+"")&&E(i,a),8192&n[0]){let r;for(l=e[13],r=0;r<l.length;r+=1){const i=Nk(e,l,r);c[r]?c[r].p(i,n):(c[r]=Wk(i),c[r].c(),c[r].m(t,null))}for(;r<c.length;r+=1)c[r].d(1);c.length=l.length}},d(e){e&&h(t),p(c,e)}}}function Wk(e){let t,n,r,i,o,s,a,l,c,u=e[54].pubkey.substring(0,16)+"",p=new Date(e[54].connectedAt).toLocaleTimeString()+"";return{c(){t=g("div"),n=g("code"),r=y(u),i=y("..."),o=w(),s=g("span"),a=y("Connected "),l=y(p),c=w(),k(n,"class","svelte-13nqrp7"),k(s,"class","client-time svelte-13nqrp7"),k(t,"class","client-entry svelte-13nqrp7")},m(e,u){f(e,t,u),d(t,n),d(n,r),d(n,i),d(t,o),d(t,s),d(s,a),d(s,l),d(t,c)},p(e,t){8192&t[0]&&u!==(u=e[54].pubkey.substring(0,16)+"")&&E(r,u),8192&t[0]&&p!==(p=new Date(e[54].connectedAt).toLocaleTimeString()+"")&&E(l,p)},d(e){e&&h(t)}}}function Zk(e){let t,n,i,o,s,a,l,c,u,p,m,y=[],v=new Map,b=e[6];const I=e=>e[50].id;for(let t=0;t<b.length;t+=1){let n=Tk(e,b,t),r=I(n);v.set(r,y[t]=rI(r,n))}return{c(){t=g("div"),n=g("div"),i=g("h4"),i.textContent="Client Tokens",o=w(),s=g("button"),s.textContent="+ Add Token",a=w(),l=g("p"),l.textContent="Each device/app gets its own token. Tokens can be individually revoked.",c=w(),u=g("div");for(let e=0;e<y.length;e+=1)y[e].c();k(i,"class","svelte-13nqrp7"),k(s,"class","add-token-btn svelte-13nqrp7"),k(n,"class","tokens-header svelte-13nqrp7"),k(l,"class","tokens-desc svelte-13nqrp7"),k(u,"class","tokens-table svelte-13nqrp7"),k(t,"class","tokens-section svelte-13nqrp7")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(t,a),d(t,l),d(t,c),d(t,u);for(let e=0;e<y.length;e+=1)y[e]&&y[e].m(u,null);p||(m=A(s,"click",e[14]),p=!0)},p(e,t){8880754&t[0]&&(b=e[6],y=function(e,t,n,i,o,s,a,l,c,u,d,f){let h=e.length,p=s.length,g=h;const m={};for(;g--;)m[e[g].key]=g;const y=[],w=new Map,v=new Map,A=[];for(g=p;g--;){const e=f(o,s,g),r=n(e);let l=a.get(r);l?i&&A.push(()=>l.p(e,t)):(l=u(r,e),l.c()),w.set(r,y[g]=l),r in m&&v.set(r,Math.abs(g-m[r]))}const b=new Set,k=new Set;function I(e){X(e,1),e.m(l,d),a.set(e.key,e),d=e.first,p--}for(;h&&p;){const t=y[p-1],n=e[h-1],r=t.key,i=n.key;t===n?(d=t.first,h--,p--):w.has(i)?!a.has(r)||b.has(r)?I(t):k.has(i)?h--:v.get(r)>v.get(i)?(k.add(r),I(t)):(b.add(i),h--):(c(n,a),h--)}for(;h--;){const t=e[h];w.has(t.key)||c(t,a)}for(;p;)I(y[p-1]);return r(A),y}(y,t,I,1,e,b,v,u,ne,rI,null,Tk))},d(e){e&&h(t);for(let e=0;e<y.length;e+=1)y[e].d();p=!1,m()}}}function Xk(e){let t,n,r={ctx:e,current:null,token:null,hasCatch:!0,pending:nI,then:tI,catch:eI,value:53};return te(n=e[18](e[50]),r),{c(){t=g("div"),r.block.c(),k(t,"class","token-details svelte-13nqrp7")},m(e,n){f(e,t,n),r.block.m(t,r.anchor=null),r.mount=()=>t,r.anchor=null},p(t,i){e=t,r.ctx=e,64&i[0]&&n!==(n=e[18](e[50]))&&te(n,r)||function(e,t,n){const r=t.slice(),{resolved:i}=e;e.current===e.then&&(r[e.value]=i),e.current===e.catch&&(r[e.error]=i),e.block.p(r,n)}(r,e,i)},d(e){e&&h(t),r.block.d(),r.token=null,r=null}}}function eI(t){let n;return{c(){n=g("div"),n.textContent="Failed to generate QR",k(n,"class","error-message svelte-13nqrp7")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function tI(e){let t,n,i,o,s,l,c,u,p,m,v,b,I,C,x,B,S,Q,D,R,$,P,U,T,N,L,O,M,_,H=new Date(e[50].createdAt).toLocaleString()+"",j=new Date(1e3*e[50].token.expiry).toLocaleString()+"",G=`bunker://${e[1]}?relay=${encodeURIComponent(e[4].relay_url)}${e[5]?`&secret=${e[5]}`:""}&cat=${e[50].encoded}`;function q(){return e[39](e[50])}function K(...t){return e[40](e[50],...t)}return{c(){t=g("div"),n=g("div"),i=g("img"),s=w(),l=g("div"),l.textContent="Copied!",c=w(),u=g("div"),p=g("div"),m=g("span"),m.textContent="Created:",v=w(),b=g("span"),I=y(H),C=w(),x=g("div"),B=g("span"),B.textContent="Expires:",S=w(),Q=g("span"),D=y(j),R=w(),$=g("div"),P=g("span"),P.textContent="Bunker URL:",U=w(),T=g("code"),N=y(G),L=w(),O=g("div"),O.textContent="Click QR code to copy URL",a(i.src,o=e[53])||k(i,"src",o),k(i,"alt","Token QR Code"),k(i,"class","qr-code small svelte-13nqrp7"),k(l,"class","qr-overlay svelte-13nqrp7"),F(l,"visible",e[9]===e[50].id),k(n,"class","qr-container small clickable svelte-13nqrp7"),k(n,"role","button"),k(n,"tabindex","0"),k(n,"title","Click to copy bunker URL"),k(m,"class","label svelte-13nqrp7"),k(p,"class","info-item svelte-13nqrp7"),k(B,"class","label svelte-13nqrp7"),k(x,"class","info-item svelte-13nqrp7"),k(P,"class","label svelte-13nqrp7"),k(T,"class","bunker-url small svelte-13nqrp7"),k($,"class","info-item url-item svelte-13nqrp7"),k(O,"class","copy-hint svelte-13nqrp7"),k(u,"class","token-info svelte-13nqrp7"),k(t,"class","token-detail-content svelte-13nqrp7")},m(e,r){f(e,t,r),d(t,n),d(n,i),d(n,s),d(n,l),d(t,c),d(t,u),d(u,p),d(p,m),d(p,v),d(p,b),d(b,I),d(u,C),d(u,x),d(x,B),d(x,S),d(x,Q),d(Q,D),d(u,R),d(u,$),d($,P),d($,U),d($,T),d(T,N),d(u,L),d(u,O),M||(_=[A(n,"click",q),A(n,"keypress",K)],M=!0)},p(t,n){e=t,64&n[0]&&!a(i.src,o=e[53])&&k(i,"src",o),576&n[0]&&F(l,"visible",e[9]===e[50].id),64&n[0]&&H!==(H=new Date(e[50].createdAt).toLocaleString()+"")&&E(I,H),64&n[0]&&j!==(j=new Date(1e3*e[50].token.expiry).toLocaleString()+"")&&E(D,j),114&n[0]&&G!==(G=`bunker://${e[1]}?relay=${encodeURIComponent(e[4].relay_url)}${e[5]?`&secret=${e[5]}`:""}&cat=${e[50].encoded}`)&&E(N,G)},d(e){e&&h(t),M=!1,r(_)}}}function nI(t){let n;return{c(){n=g("div"),n.textContent="Loading QR...",k(n,"class","qr-placeholder small svelte-13nqrp7")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function rI(e,t){let n,i,o,s,a,l,c,u,p,m,v,I,C,x,B,S,Q,D,R,$,P=t[50].isExpanded?"▼":"▶",U=new Date(t[50].createdAt).toLocaleDateString()+"",T=new Date(1e3*t[50].token.expiry).toLocaleDateString()+"";function N(...e){return t[35](t[50],...e)}function L(){return t[36](t[50])}function O(){return t[37](t[50])}function M(...e){return t[38](t[50],...e)}let _=t[50].isExpanded&&Xk(t);return{key:e,first:null,c(){n=g("div"),i=g("div"),o=g("span"),s=y(P),a=w(),l=g("input"),u=w(),p=g("span"),m=y(U),v=w(),I=g("span"),C=y("Expires: "),x=y(T),B=w(),S=g("button"),S.textContent="Revoke",Q=w(),_&&_.c(),D=w(),k(o,"class","expand-icon svelte-13nqrp7"),k(l,"type","text"),k(l,"class","token-name-input svelte-13nqrp7"),l.value=c=t[50].name,k(l,"placeholder","Token name"),k(p,"class","token-created svelte-13nqrp7"),k(I,"class","token-expiry svelte-13nqrp7"),k(S,"class","revoke-btn svelte-13nqrp7"),k(S,"title","Revoke this token"),k(i,"class","token-main svelte-13nqrp7"),k(i,"role","button"),k(i,"tabindex","0"),k(n,"class","token-row svelte-13nqrp7"),F(n,"expanded",t[50].isExpanded),this.first=n},m(e,r){f(e,n,r),d(n,i),d(i,o),d(o,s),d(i,a),d(i,l),d(i,u),d(i,p),d(p,m),d(i,v),d(i,I),d(I,C),d(I,x),d(i,B),d(i,S),d(n,Q),_&&_.m(n,null),d(n,D),R||($=[A(l,"input",N),A(l,"click",b(t[34])),A(S,"click",b(L)),A(i,"click",O),A(i,"keypress",M)],R=!0)},p(e,r){t=e,64&r[0]&&P!==(P=t[50].isExpanded?"▼":"▶")&&E(s,P),64&r[0]&&c!==(c=t[50].name)&&l.value!==c&&(l.value=c),64&r[0]&&U!==(U=new Date(t[50].createdAt).toLocaleDateString()+"")&&E(m,U),64&r[0]&&T!==(T=new Date(1e3*t[50].token.expiry).toLocaleDateString()+"")&&E(x,T),t[50].isExpanded?_?_.p(t,r):(_=Xk(t),_.c(),_.m(n,D)):_&&(_.d(1),_=null),64&r[0]&&F(n,"expanded",t[50].isExpanded)},d(e){e&&h(n),_&&_.d(),R=!1,r($)}}}function iI(t){let n;function r(e,t){return e[4]?.available?e[12]?Mk:e[0]?Ok:Lk:_k}let i=r(t),o=i(t);return{c(){o.c(),n=v()},m(e,t){o.m(e,t),f(e,n,t)},p(e,t){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n.parentNode,n)))},i:e,o:e,d(e){o.d(e),e&&h(n)}}}function oI(){const e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}function sI(e,t,n){let r,i,o,s,a,l,u,d,f,h,p,g;c(e,Dk,e=>n(30,f=e)),c(e,Rk,e=>n(31,h=e)),c(e,Qk,e=>n(32,p=e)),c(e,Sk,e=>n(33,g=e));let{isLoggedIn:m=!1}=t,{userPubkey:y=""}=t,{userSigner:w=null}=t,{userPrivkey:v=null}=t,{currentEffectiveRole:A=""}=t;const b=U();let k=null,I=!1,E="",C="",x="",B=!1;const S=["brave","calm","clever","cosmic","cozy","daring","eager","fancy","gentle","happy","jolly","keen","lively","merry","nimble","peppy","quick","rustic","shiny","swift","tender","vivid","witty","zesty"],F=["badger","bunny","coral","dolphin","falcon","gecko","heron","iguana","jaguar","koala","lemur","mango","narwhal","otter","panda","quail","rabbit","salmon","turtle","urchin","viper","walrus","yak","zebra"];async function Q(e,t){const n=await Ik(e.mintUrl,vk,zu(y),t,[24133]),r=kk(n),i=crypto.randomUUID().split("-")[0],o={id:i,name:`${S[Math.floor(Math.random()*S.length)]}-${F[Math.floor(Math.random()*F.length)]}`,token:n,encoded:r,createdAt:Date.now(),isExpanded:!1};return Qk.update(e=>[...e,o]),f||Dk.set(i),console.log(`Client token "${o.name}" created, expires:`,new Date(1e3*n.expiry).toISOString()),o}function D(e){n(6,i=i.filter(t=>t.id!==e)),o===e&&n(29,o=i.length>0?i[0].id:null),L()}function R(e){n(6,i=i.map(t=>t.id===e?{...t,isExpanded:!t.isExpanded}:t))}function P(e,t){n(6,i=i.map(n=>n.id===e?{...n,name:t}:n))}async function N(){n(7,I=!0),n(8,E="");try{n(4,k=await async function(){const e=`${window.location.origin}/api/bunker/info`,t=await fetch(e);if(!t.ok){const e=await t.text();throw new Error(e||`Failed to get bunker info: ${t.statusText}`)}return await t.json()}()),x||n(5,x=oI()),await L()}catch(e){console.error("Error loading bunker info:",e),n(8,E=e.message||"Failed to load bunker information")}finally{n(7,I=!1)}}async function L(){u&&await av.toDataURL(u,{width:280,margin:2,color:{dark:"#000000",light:"#ffffff"}}),d&&await av.toDataURL(d,{width:280,margin:2,color:{dark:"#000000",light:"#ffffff"}})}function O(e,t){navigator.clipboard.writeText(e),n(9,C=t),setTimeout(()=>{n(9,C="")},2e3)}$(async()=>{await N(),$k&&$k.postMessage({type:"getStatus"})});return e.$$set=e=>{"isLoggedIn"in e&&n(0,m=e.isLoggedIn),"userPubkey"in e&&n(1,y=e.userPubkey),"userSigner"in e&&n(25,w=e.userSigner),"userPrivkey"in e&&n(2,v=e.userPrivkey),"currentEffectiveRole"in e&&n(3,A=e.currentEffectiveRole)},e.$$.update=()=>{4&e.$$.dirty[1]&&n(11,r=g),2&e.$$.dirty[1]&&n(6,i=p),1073741824&e.$$.dirty[0]&&n(29,o=f),1&e.$$.dirty[1]&&n(13,s=h),11&e.$$.dirty[0]&&n(12,a=m&&y&&("write"===A||"admin"===A||"owner"===A)),536870976&e.$$.dirty[0]&&n(28,l=i.find(e=>e.id===o)),268435506&e.$$.dirty[0]&&n(27,u=k&&y&&l?`bunker://${y}?relay=${encodeURIComponent(k.relay_url)}${x?`&secret=${x}`:""}&cat=${l.encoded}`:""),16&e.$$.dirty[0]&&n(26,d=k?`nostr+connect://${k.relay_url}`:""),201326592&e.$$.dirty[0]&&(u||d)&&L()},[m,y,v,A,k,x,i,I,E,C,B,r,a,s,async function(){if(k?.cashu_enabled)try{const e=await Ek(k.relay_url);if(!e)return;const t=async(e,t)=>`Nostr ${await TA(w,y,t,e)}`;await Q(e,t),await L()}catch(e){console.error("Failed to add token:",e),n(8,E=e.message||"Failed to add token")}},D,R,P,async function(e){if(!k||!y)return null;const t=`bunker://${y}?relay=${encodeURIComponent(k.relay_url)}${x?`&secret=${x}`:""}&cat=${e.encoded}`;return await av.toDataURL(t,{width:200,margin:2,color:{dark:"#000000",light:"#ffffff"}})},async function(){if(r||B)console.log("Service already active or starting, ignoring");else if(v&&y&&k){n(10,B=!0),n(8,E="");try{let e=null;if(k.cashu_enabled){console.log("CAT required, minting tokens...");const t=await Ek(k.relay_url);if(t){const n=async(e,t)=>`Nostr ${await TA(w,y,t,e)}`,r=await Ik(t.mintUrl,vk,zu(y),n,[24133]);e=kk(r),Fk.set(r),console.log("Service CAT token acquired, expires:",new Date(1e3*r.expiry).toISOString()),await Q(t,n)}}const t=v instanceof Uint8Array?Hu(v):v;!function(e){Pk().postMessage({type:"configure",...e})}({userPubkey:y,userPrivkey:t,relayUrl:k.relay_url,catTokenEncoded:e,secrets:x?[x]:[]}),Pk().postMessage({type:"connect"}),await L(),console.log("Bunker worker started successfully")}catch(e){console.error("Failed to start bunker service:",e),n(8,E=e.message||"Failed to start bunker service"),Uk()}finally{n(10,B=!1)}}else n(8,E="Missing private key or bunker info")},function(){Uk(),L()},N,async function(){n(5,x=oI()),await L()},O,function(){b("openLoginModal")},w,d,u,l,o,f,h,p,g,function(t){T.call(this,e,t)},(e,t)=>P(e.id,t.target.value),e=>D(e.id),e=>R(e.id),(e,t)=>"Enter"===t.key&&R(e.id),e=>{O(`bunker://${y}?relay=${encodeURIComponent(k.relay_url)}${x?`&secret=${x}`:""}&cat=${e.encoded}`,e.id)},(e,t)=>{if("Enter"===t.key){O(`bunker://${y}?relay=${encodeURIComponent(k.relay_url)}${x?`&secret=${x}`:""}&cat=${e.encoded}`,e.id)}},()=>O(k.relay_url,"relay")]}class aI extends ce{constructor(e){super(),le(this,e,sI,iI,o,{isLoggedIn:0,userPubkey:1,userSigner:25,userPrivkey:2,currentEffectiveRole:3},null,[-1,-1])}}function lI(e,t,n){const r=e.slice();return r[29]=t[n],r}function cI(e,t,n){const r=e.slice();return r[32]=t[n],r}function uI(e){let t,n,r;function i(e,t){return e[0]?fI:hI}let o=i(e),s=o(e);return{c(){t=g("div"),n=g("p"),n.textContent="Log viewer is only available to relay owners.",r=w(),s.c(),k(n,"class","svelte-w6h7aj"),k(t,"class","login-prompt svelte-w6h7aj")},m(e,i){f(e,t,i),d(t,n),d(t,r),s.m(t,null)},p(e,n){o===(o=i(e))&&s?s.p(e,n):(s.d(1),s=o(e),s&&(s.c(),s.m(t,null)))},d(e){e&&h(t),s.d()}}}function dI(e){let t,n,i,o,s,a,l,c,u,m,v,b,I,C,x,S,F,Q,D,R,$,P,U,T,N,L,O,M,_,H,G,q=e[3]?"Loading...":"Refresh",K=e[2].length+"",J=e[12],V=[];for(let t=0;t<J.length;t+=1)V[t]=pI(cI(e,J,t));let Y=e[7]&&gI(e);function z(e,t){return 0!==e[2].length||e[3]?mI:yI}let W=z(e),Z=W(e);return{c(){t=g("div"),n=g("div"),i=g("h3"),i.textContent="Logs",o=w(),s=g("div"),a=g("div"),l=g("label"),l.textContent="Level:",c=w(),u=g("select");for(let e=0;e<V.length;e+=1)V[e].c();m=w(),v=g("button"),b=y("Clear"),C=w(),x=g("button"),S=y("🔄 "),F=y(q),Q=w(),Y&&Y.c(),D=w(),R=g("div"),$=y("Showing "),P=y(K),U=y(" of "),T=y(e[6]),N=y(" logs (Level: "),L=y(e[8]),O=y(")"),M=w(),_=g("div"),Z.c(),k(i,"class","svelte-w6h7aj"),k(l,"for","log-level"),k(l,"class","svelte-w6h7aj"),k(u,"id","log-level"),k(u,"class","svelte-w6h7aj"),void 0===e[9]&&j(()=>e[18].call(u)),k(a,"class","level-selector svelte-w6h7aj"),k(v,"class","clear-btn svelte-w6h7aj"),v.disabled=I=e[3]||0===e[2].length,k(x,"class","refresh-btn svelte-w6h7aj"),x.disabled=e[3],k(s,"class","header-controls svelte-w6h7aj"),k(n,"class","header-section svelte-w6h7aj"),k(R,"class","log-info svelte-w6h7aj"),k(_,"class","log-list svelte-w6h7aj"),k(t,"class","log-view svelte-w6h7aj")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(a,c),d(a,u);for(let e=0;e<V.length;e+=1)V[e]&&V[e].m(u,null);B(u,e[9],!0),d(s,m),d(s,v),d(v,b),d(s,C),d(s,x),d(x,S),d(x,F),d(t,Q),Y&&Y.m(t,null),d(t,D),d(t,R),d(R,$),d(R,P),d(R,U),d(R,T),d(R,N),d(R,L),d(R,O),d(t,M),d(t,_),Z.m(_,null),e[21](_),H||(G=[A(u,"change",e[18]),A(u,"change",e[14]),A(v,"click",e[15]),A(x,"click",e[19])],H=!0)},p(e,n){if(4096&n[0]){let t;for(J=e[12],t=0;t<J.length;t+=1){const r=cI(e,J,t);V[t]?V[t].p(r,n):(V[t]=pI(r),V[t].c(),V[t].m(u,null))}for(;t<V.length;t+=1)V[t].d(1);V.length=J.length}4608&n[0]&&B(u,e[9]),12&n[0]&&I!==(I=e[3]||0===e[2].length)&&(v.disabled=I),8&n[0]&&q!==(q=e[3]?"Loading...":"Refresh")&&E(F,q),8&n[0]&&(x.disabled=e[3]),e[7]?Y?Y.p(e,n):(Y=gI(e),Y.c(),Y.m(t,D)):Y&&(Y.d(1),Y=null),4&n[0]&&K!==(K=e[2].length+"")&&E(P,K),64&n[0]&&E(T,e[6]),256&n[0]&&E(L,e[8]),W===(W=z(e))&&Z?Z.p(e,n):(Z.d(1),Z=W(e),Z&&(Z.c(),Z.m(_,null)))},d(n){n&&h(t),p(V,n),Y&&Y.d(),Z.d(),e[21](null),H=!1,r(G)}}}function fI(e){let t,n,r,i;return{c(){t=g("p"),n=y("Your role ("),r=y(e[1]),i=y(") does not have access to this feature."),k(t,"class","access-denied svelte-w6h7aj")},m(e,o){f(e,t,o),d(t,n),d(t,r),d(t,i)},p(e,t){2&t[0]&&E(r,e[1])},d(e){e&&h(t)}}}function hI(t){let n,r,i;return{c(){n=g("button"),n.textContent="Log In",k(n,"class","login-btn svelte-w6h7aj")},m(e,o){f(e,n,o),r||(i=A(n,"click",t[16]),r=!0)},p:e,d(e){e&&h(n),r=!1,i()}}}function pI(t){let n,r,i=t[32]+"";return{c(){n=g("option"),r=y(i),n.__value=t[32],n.value=n.__value},m(e,t){f(e,n,t),d(n,r)},p:e,d(e){e&&h(n)}}}function gI(e){let t,n;return{c(){t=g("div"),n=y(e[7]),k(t,"class","error-message svelte-w6h7aj")},m(e,r){f(e,t,r),d(t,n)},p(e,t){128&t[0]&&E(n,e[7])},d(e){e&&h(t)}}}function mI(e){let t,n,r=e[2],i=[];for(let t=0;t<r.length;t+=1)i[t]=vI(lI(e,r,t));function o(e,t){return e[3]?kI:e[5]?bI:AI}let s=o(e),a=s(e);return{c(){for(let e=0;e<i.length;e+=1)i[e].c();t=w(),n=g("div"),a.c(),k(n,"class","load-more-trigger svelte-w6h7aj")},m(r,o){for(let e=0;e<i.length;e+=1)i[e]&&i[e].m(r,o);f(r,t,o),f(r,n,o),a.m(n,null),e[20](n)},p(e,l){if(4&l[0]){let n;for(r=e[2],n=0;n<r.length;n+=1){const o=lI(e,r,n);i[n]?i[n].p(o,l):(i[n]=vI(o),i[n].c(),i[n].m(t.parentNode,t))}for(;n<i.length;n+=1)i[n].d(1);i.length=r.length}s!==(s=o(e))&&(a.d(1),a=s(e),a&&(a.c(),a.m(n,null)))},d(r){p(i,r),r&&h(t),r&&h(n),a.d(),e[20](null)}}}function yI(t){let n;return{c(){n=g("div"),n.innerHTML="<p>No logs available.</p>",k(n,"class","empty-state svelte-w6h7aj")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function wI(e){let t,n,r,i,o=e[29].file+"",s=e[29].line+"";return{c(){t=g("span"),n=y(o),r=y(":"),i=y(s),k(t,"class","log-location svelte-w6h7aj")},m(e,o){f(e,t,o),d(t,n),d(t,r),d(t,i)},p(e,t){4&t[0]&&o!==(o=e[29].file+"")&&E(n,o),4&t[0]&&s!==(s=e[29].line+"")&&E(i,s)},d(e){e&&h(t)}}}function vI(e){let t,n,r,i,o,s,a,l,c,u,p,m=EI(e[29].timestamp)+"",v=e[29].level+"",A=e[29].message+"",b=e[29].file&&wI(e);return{c(){t=g("div"),n=g("span"),r=y(m),i=w(),o=g("span"),s=y(v),l=w(),b&&b.c(),c=w(),u=g("span"),p=y(A),k(n,"class","log-timestamp svelte-w6h7aj"),k(o,"class",a="log-level "+CI(e[29].level)+" svelte-w6h7aj"),k(u,"class","log-message svelte-w6h7aj"),k(t,"class","log-entry svelte-w6h7aj")},m(e,a){f(e,t,a),d(t,n),d(n,r),d(t,i),d(t,o),d(o,s),d(t,l),b&&b.m(t,null),d(t,c),d(t,u),d(u,p)},p(e,n){4&n[0]&&m!==(m=EI(e[29].timestamp)+"")&&E(r,m),4&n[0]&&v!==(v=e[29].level+"")&&E(s,v),4&n[0]&&a!==(a="log-level "+CI(e[29].level)+" svelte-w6h7aj")&&k(o,"class",a),e[29].file?b?b.p(e,n):(b=wI(e),b.c(),b.m(t,c)):b&&(b.d(1),b=null),4&n[0]&&A!==(A=e[29].message+"")&&E(p,A)},d(e){e&&h(t),b&&b.d()}}}function AI(e){let t;return{c(){t=g("span"),t.textContent="End of logs"},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function bI(e){let t;return{c(){t=g("span"),t.textContent="Scroll for more"},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function kI(e){let t;return{c(){t=g("span"),t.textContent="Loading more..."},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function II(t){let n;function r(e,t){return e[4]?dI:uI}let i=r(t),o=i(t);return{c(){o.c(),n=v()},m(e,t){o.m(e,t),f(e,n,t)},p(e,t){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n.parentNode,n)))},i:e,o:e,d(e){o.d(e),e&&h(n)}}}function EI(e){if(!e)return"";return new Date(e).toLocaleString()}function CI(e){switch(e?.toUpperCase()){case"TRC":case"TRACE":return"level-trace";case"DBG":case"DEBUG":return"level-debug";case"INF":case"INFO":default:return"level-info";case"WRN":case"WARN":return"level-warn";case"ERR":case"ERROR":return"level-error";case"FTL":case"FATAL":return"level-fatal"}}function xI(e,t,n){let r,{isLoggedIn:i=!1}=t,{userRole:o=""}=t,{userSigner:s=null}=t;const a=U();let l=[],c=!1,u=!0,d=0,f=0,h="",p="info",g="info";const m=["trace","debug","info","warn","error","fatal"];let y,w,v;async function A(e="GET",t="/api/logs"){if(!s)return null;try{const n={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",`${window.location.origin}${t}`],["method",e]],content:""},r=await s.signEvent(n);return btoa(JSON.stringify(r)).replace(/\+/g,"-").replace(/\//g,"_")}catch(e){return console.error("Error creating auth header:",e),null}}async function b(e=!1){if(!c){n(3,c=!0),n(7,h=""),e&&(d=0,n(2,l=[]));try{const t=`/api/logs?offset=${d}&limit=100`,r=await A("GET",t),i=`${window.location.origin}${t}`,o=await fetch(i,{headers:r?{Authorization:`Nostr ${r}`}:{}});if(!o.ok)throw new Error(`Failed to load logs: ${o.statusText}`);const s=await o.json();n(2,l=e?s.logs||[]:[...l,...s.logs||[]]),n(6,f=s.total||0),n(5,u=s.has_more||!1),d=l.length}catch(e){console.error("Error loading logs:",e),n(7,h=e.message||"Failed to load logs")}finally{n(3,c=!1)}}}async function k(){try{const e=await fetch(`${window.location.origin}/api/logs/level`);if(e.ok){const t=await e.json();n(8,p=t.level||"info"),n(9,g=p)}}catch(e){console.error("Error loading log level:",e)}}$(()=>{r&&(b(!0),k(),function(){if(!w)return;v=new IntersectionObserver(e=>{e[0].isIntersecting&&u&&!c&&u&&!c&&b(!1)},{threshold:.1}),v.observe(w)}())}),P(()=>{v&&v.disconnect()});return e.$$set=e=>{"isLoggedIn"in e&&n(0,i=e.isLoggedIn),"userRole"in e&&n(1,o=e.userRole),"userSigner"in e&&n(17,s=e.userSigner)},e.$$.update=()=>{3&e.$$.dirty[0]&&n(4,r=i&&"owner"===o),28&e.$$.dirty[0]&&r&&0===l.length&&!c&&(b(!0),k())},[i,o,l,c,r,u,f,h,p,g,y,w,m,b,async function(){if(g!==p)try{const e=await A("POST","/api/logs/level"),t=await fetch(`${window.location.origin}/api/logs/level`,{method:"POST",headers:{"Content-Type":"application/json",...e?{Authorization:`Nostr ${e}`}:{}},body:JSON.stringify({level:g})});if(!t.ok)throw new Error(`Failed to set log level: ${t.statusText}`);const r=await t.json();n(8,p=r.level),n(9,g=p)}catch(e){console.error("Error setting log level:",e),n(7,h=e.message||"Failed to set log level"),n(9,g=p)}},async function(){if(confirm("Are you sure you want to clear all logs?"))try{const e=await A("POST","/api/logs/clear"),t=await fetch(`${window.location.origin}/api/logs/clear`,{method:"POST",headers:e?{Authorization:`Nostr ${e}`}:{}});if(!t.ok)throw new Error(`Failed to clear logs: ${t.statusText}`);n(2,l=[]),d=0,n(5,u=!1),n(6,f=0)}catch(e){console.error("Error clearing logs:",e),n(7,h=e.message||"Failed to clear logs")}},function(){a("openLoginModal")},s,function(){g=S(this),n(9,g),n(12,m)},()=>b(!0),function(e){L[e?"unshift":"push"](()=>{w=e,n(11,w)})},function(e){L[e?"unshift":"push"](()=>{y=e,n(10,y)})}]}class BI extends ce{constructor(e){super(),le(this,e,xI,II,o,{isLoggedIn:0,userRole:1,userSigner:17},null,[-1,-1])}}function SI(e){let t,n,r,i,o,s,a,l,c,u,p;return{c(){t=g("div"),n=g("div"),r=g("h3"),r.textContent="Active Filter",i=w(),o=g("button"),o.textContent="🧹 Sweep",s=w(),a=g("div"),l=g("pre"),c=y(e[2]),k(r,"class","svelte-1tyqaa5"),k(o,"class","sweep-btn svelte-1tyqaa5"),k(o,"title","Clear filter"),k(n,"class","filter-display-header svelte-1tyqaa5"),k(l,"class","filter-json svelte-1tyqaa5"),k(a,"class","filter-json-container svelte-1tyqaa5"),k(t,"class","filter-display svelte-1tyqaa5")},m(h,g){f(h,t,g),d(t,n),d(n,r),d(n,i),d(n,o),d(t,s),d(t,a),d(a,l),d(l,c),u||(p=A(o,"click",e[3]),u=!0)},p(e,t){4&t&&E(c,e[2])},d(e){e&&h(t),u=!1,p()}}}function FI(t){let n,r=t[0]&&t[1]&&SI(t);return{c(){r&&r.c(),n=v()},m(e,t){r&&r.m(e,t),f(e,n,t)},p(e,[t]){e[0]&&e[1]?r?r.p(e,t):(r=SI(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&&h(n)}}}function QI(e,t,n){let r,i;const o=U();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,i=Object.keys(s).length>0)},[a,i,r,function(){o("sweep")},s]}class DI extends ce{constructor(e){super(),le(this,e,QI,FI,o,{filter:4,showFilter:0})}}function RI(e){return Fh[e]||`Kind ${e}`}function $I(e){return e?e.slice(0,8)+"..."+e.slice(-8):"unknown"}function PI(e,t=100){return e?e.length>t?e.slice(0,t)+"...":e:""}function UI(e){return e?new Date(1e3*e).toLocaleString():""}class TI{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,i]=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:",i),this.authPromise&&(this.authPromise.reject(new Error(i||"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 i=this.ws.onmessage,o=setTimeout(()=>{this.ws.onmessage=i,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(c)clearTimeout(o),this.ws.onmessage=i,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"))return void console.log("Authentication required, waiting for AUTH challenge...");clearTimeout(o),this.ws.onmessage=i,n(new Error(`Publish failed: ${u}`))}else if("AUTH"===a){this.challenge=s[1],console.log("Received AUTH challenge during publish:",this.challenge);try{await this.authenticate(),console.log("Authentication successful, retrying event publish...");const t=["EVENT",e];this.ws.send(JSON.stringify(t))}catch(e){clearTimeout(o),this.ws.onmessage=i,n(new Error(`Authentication failed: ${e.message}`))}}else await this.handleMessage(s)}catch(e){clearTimeout(o),this.ws.onmessage=i,n(e)}}})}close(){this.ws&&(this.ws.close(),this.ws=null),this.isAuthenticated=!1,this.challenge=null}getAuthenticated(){return this.isAuthenticated}}async function NI(e,t,n,r){const i=new TI(e,n,r);try{await i.connect();return await i.publishEvent(t)}finally{i.close()}}function LI(e,t,n){const r=e.slice();return r[170]=t[n],r}function OI(e,t,n){const r=e.slice();return r[180]=t[n],r}function MI(e,t,n){const r=e.slice();return r[173]=t[n],r}function _I(e,t,n){const r=e.slice();r[173]=t[n];const i=r[53](r[173]);return r[174]=i,r}function HI(e,t,n){const r=e.slice();return r[177]=t[n],r}function jI(t){let n;function r(e,t){return e[1]?rE:nE}let i=r(t),o=i(t);return{c(){n=g("div"),o.c(),k(n,"class","welcome-message svelte-u3u5mw")},m(e,t){f(e,n,t),o.m(n,null)},p(e,t){i===(i=r(e))&&o?o.p(e,t):(o.d(1),o=i(e),o&&(o.c(),o.m(n,null)))},i:e,o:e,d(e){e&&h(n),o.d()}}}function GI(e){let t,n,r=e[6],i=[];for(let t=0;t<r.length;t+=1)i[t]=fE(OI(e,r,t));const o=e=>ee(i[e],1,1,()=>{i[e]=null});return{c(){for(let e=0;e<i.length;e+=1)i[e].c();t=v()},m(e,r){for(let t=0;t<i.length;t+=1)i[t]&&i[t].m(e,r);f(e,t,r),n=!0},p(e,n){if(524404&n[0]|94208&n[1]|3407872&n[2]){let s;for(r=e[6],s=0;s<r.length;s+=1){const o=OI(e,r,s);i[s]?(i[s].p(o,n),X(i[s],1)):(i[s]=fE(o),i[s].c(),X(i[s],1),i[s].m(t.parentNode,t))}for(W(),s=r.length;s<i.length;s+=1)o(s);Z()}},i(e){if(!n){for(let e=0;e<r.length;e+=1)X(i[e]);n=!0}},o(e){i=i.filter(Boolean);for(let e=0;e<i.length;e+=1)ee(i[e]);n=!1},d(e){p(i,e),e&&h(t)}}}function qI(t){let n,i,o,s,a,l,c,u,m,y,v,b,E,x,S,F,Q,D,R=null!==t[36]&&void 0!==t[36]&&t[36]>=0||""!==t[37]&&parseInt(t[37])>=0,$=Sh,P=[];for(let e=0;e<$.length;e+=1)P[e]=hE(HI(t,$,e));let U=R&&pE(t);return{c(){n=g("div"),i=g("div"),i.innerHTML='<h3 class="svelte-u3u5mw">Event Recovery</h3> \n <p class="svelte-u3u5mw">Search and recover old versions of replaceable events</p>',o=w(),s=g("div"),a=g("div"),l=g("div"),c=g("label"),c.textContent="Select Event Kind:",u=w(),m=g("select"),y=g("option"),y.textContent="Choose a replaceable kind...";for(let e=0;e<P.length;e+=1)P[e].c();v=w(),b=g("div"),E=g("label"),E.textContent="Or enter custom kind number:",x=w(),S=g("input"),F=w(),U&&U.c(),k(c,"for","recovery-kind"),k(c,"class","svelte-u3u5mw"),y.__value=null,y.value=y.__value,k(m,"id","recovery-kind"),k(m,"class","svelte-u3u5mw"),void 0===t[36]&&j(()=>t[116].call(m)),k(l,"class","kind-selector svelte-u3u5mw"),k(E,"for","custom-kind"),k(E,"class","svelte-u3u5mw"),k(S,"id","custom-kind"),k(S,"type","number"),k(S,"placeholder","e.g., 10001"),k(S,"min","0"),k(S,"class","svelte-u3u5mw"),k(b,"class","custom-kind-input svelte-u3u5mw"),k(a,"class","recovery-controls svelte-u3u5mw"),k(s,"class","recovery-controls-card svelte-u3u5mw"),k(n,"class","recovery-tab svelte-u3u5mw")},m(e,r){f(e,n,r),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(l,c),d(l,u),d(l,m),d(m,y);for(let e=0;e<P.length;e+=1)P[e]&&P[e].m(m,null);B(m,t[36],!0),d(a,v),d(a,b),d(b,E),d(b,x),d(b,S),C(S,t[37]),d(n,F),U&&U.m(n,null),Q||(D=[A(m,"change",t[116]),A(m,"change",t[51]),A(S,"input",t[117]),A(S,"input",t[52])],Q=!0)},p(e,t){if(0&t){let n;for($=Sh,n=0;n<$.length;n+=1){const r=HI(e,$,n);P[n]?P[n].p(r,t):(P[n]=hE(r),P[n].c(),P[n].m(m,null))}for(;n<P.length;n+=1)P[n].d(1);P.length=$.length}32&t[1]&&B(m,e[36]),64&t[1]&&I(S.value)!==e[37]&&C(S,e[37]),96&t[1]&&(R=null!==e[36]&&void 0!==e[36]&&e[36]>=0||""!==e[37]&&parseInt(e[37])>=0),R?U?U.p(e,t):(U=pE(e),U.c(),U.m(n,null)):U&&(U.d(1),U=null)},i:e,o:e,d(e){e&&h(n),p(P,e),U&&U.d(),Q=!1,r(D)}}}function KI(e){let t,n;return t=new BI({props:{isLoggedIn:e[1],userRole:e[4],userSigner:e[13]}}),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),16&n[0]&&(r.userRole=e[4]),8192&n[0]&&(r.userSigner=e[13]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function JI(e){let t,n,r;function i(t){e[115](t)}let o={isLoggedIn:e[1],userRole:e[4],isPolicyAdmin:LE,policyEnabled:e[8],isLoadingPolicy:e[28],policyMessage:e[29],policyMessageType:e[30],validationErrors:e[31],policyFollows:e[32]};return void 0!==e[27]&&(o.policyJson=e[27]),t=new fw({props:o}),L.push(()=>re(t,"policyJson",i)),t.$on("loadPolicy",e[61]),t.$on("validatePolicy",e[62]),t.$on("savePolicy",e[63]),t.$on("formatJson",e[64]),t.$on("addPolicyAdmin",e[65]),t.$on("removePolicyAdmin",e[66]),t.$on("refreshFollows",e[67]),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,n){oe(t,e,n),r=!0},p(e,r){const i={};2&r[0]&&(i.isLoggedIn=e[1]),16&r[0]&&(i.userRole=e[4]),256&r[0]&&(i.policyEnabled=e[8]),268435456&r[0]&&(i.isLoadingPolicy=e[28]),536870912&r[0]&&(i.policyMessage=e[29]),1073741824&r[0]&&(i.policyMessageType=e[30]),1&r[1]&&(i.validationErrors=e[31]),2&r[1]&&(i.policyFollows=e[32]),!n&&134217728&r[0]&&(n=!0,i.policyJson=e[27],G(()=>n=!1)),t.$set(i)},i(e){r||(X(t.$$.fragment,e),r=!0)},o(e){ee(t.$$.fragment,e),r=!1},d(e){se(t,e)}}}function VI(e){let t,n,r;function i(t){e[112](t)}let o={isLoggedIn:e[1],userRole:e[4],sprocketStatus:e[21],isLoadingSprocket:e[23],sprocketUploadFile:e[26],sprocketMessage:e[24],sprocketMessageType:e[25],sprocketVersions:e[22]};return void 0!==e[20]&&(o.sprocketScript=e[20]),t=new Jy({props:o}),L.push(()=>re(t,"sprocketScript",i)),t.$on("restartSprocket",e[56]),t.$on("deleteSprocket",e[57]),t.$on("sprocketFileSelect",e[68]),t.$on("uploadSprocketScript",e[69]),t.$on("saveSprocket",e[55]),t.$on("loadSprocket",e[54]),t.$on("loadVersions",e[58]),t.$on("loadVersion",e[113]),t.$on("deleteVersion",e[114]),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,n){oe(t,e,n),r=!0},p(e,r){const i={};2&r[0]&&(i.isLoggedIn=e[1]),16&r[0]&&(i.userRole=e[4]),2097152&r[0]&&(i.sprocketStatus=e[21]),8388608&r[0]&&(i.isLoadingSprocket=e[23]),67108864&r[0]&&(i.sprocketUploadFile=e[26]),16777216&r[0]&&(i.sprocketMessage=e[24]),33554432&r[0]&&(i.sprocketMessageType=e[25]),4194304&r[0]&&(i.sprocketVersions=e[22]),!n&&1048576&r[0]&&(n=!0,i.sprocketScript=e[20],G(()=>n=!1)),t.$set(i)},i(e){r||(X(t.$$.fragment,e),r=!0)},o(e){ee(t.$$.fragment,e),r=!1},d(e){se(t,e)}}}function YI(e){let t,n,r,i;const o=[CE,EE,IE],s=[];function a(e,t){return"managed"!==e[9]?0:e[1]&&"owner"===e[4]?1:2}return n=a(e),r=s[n]=o[n](e),{c(){t=g("div"),r.c(),k(t,"class","managed-acl-view svelte-u3u5mw")},m(e,r){f(e,t,r),s[n].m(t,null),i=!0},p(e,i){let l=n;n=a(e),n===l?s[n].p(e,i):(W(),ee(s[l],1,1,()=>{s[l]=null}),Z(),r=s[n],r?r.p(e,i):(r=s[n]=o[n](e),r.c()),X(r,1),r.m(t,null))},i(e){i||(X(r),i=!0)},o(e){ee(r),i=!1},d(e){e&&h(t),s[n].d()}}}function zI(e){let t,n,r;function i(t){e[111](t)}let o={userPubkey:e[2],userRole:e[4],policyEnabled:e[8],publishError:e[35]};return void 0!==e[34]&&(o.composeEventJson=e[34]),t=new Uy({props:o}),L.push(()=>re(t,"composeEventJson",i)),t.$on("reformatJson",e[91]),t.$on("signEvent",e[92]),t.$on("publishEvent",e[93]),t.$on("clearError",e[94]),{c(){ie(t.$$.fragment)},m(e,n){oe(t,e,n),r=!0},p(e,r){const i={};4&r[0]&&(i.userPubkey=e[2]),16&r[0]&&(i.userRole=e[4]),256&r[0]&&(i.policyEnabled=e[8]),16&r[1]&&(i.publishError=e[35]),!n&&8&r[1]&&(n=!0,i.composeEventJson=e[34],G(()=>n=!1)),t.$set(i)},i(e){r||(X(t.$$.fragment,e),r=!0)},o(e){ee(t.$$.fragment,e),r=!1},d(e){se(t,e)}}}function WI(e){let t,n;return t=new aI({props:{isLoggedIn:e[1],userPubkey:e[2],userSigner:e[13],userPrivkey:e[14],currentEffectiveRole:e[10]}}),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),4&n[0]&&(r.userPubkey=e[2]),8192&n[0]&&(r.userSigner=e[13]),16384&n[0]&&(r.userPrivkey=e[14]),1024&n[0]&&(r.currentEffectiveRole=e[10]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function ZI(e){let t,n;return t=new sv({props:{isLoggedIn:e[1],userPubkey:e[2],userSigner:e[13],currentEffectiveRole:e[10]}}),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),4&n[0]&&(r.userPubkey=e[2]),8192&n[0]&&(r.userSigner=e[13]),1024&n[0]&&(r.currentEffectiveRole=e[10]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function XI(e){let t,n;return t=new gy({props:{isLoggedIn:e[1],userRole:e[4],userPubkey:e[2],filteredEvents:e[42],expandedEvents:e[19],isLoadingEvents:e[7],showOnlyMyEvents:NE,showFilterBuilder:e[16]}}),t.$on("scroll",e[90]),t.$on("toggleEventExpansion",e[107]),t.$on("deleteEvent",e[108]),t.$on("copyEventToClipboard",e[109]),t.$on("toggleChange",e[46]),t.$on("loadAllEvents",e[110]),t.$on("toggleFilterBuilder",e[77]),t.$on("filterApply",e[78]),t.$on("filterClear",e[79]),{c(){ie(t.$$.fragment)},m(e,r){oe(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]),2048&n[1]&&(r.filteredEvents=e[42]),524288&n[0]&&(r.expandedEvents=e[19]),128&n[0]&&(r.isLoadingEvents=e[7]),65536&n[0]&&(r.showFilterBuilder=e[16]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function eE(e){let t,n;return t=new gm({props:{isLoggedIn:e[1],currentEffectiveRole:e[10],selectedFile:e[17],aclMode:e[9],importMessage:e[18]}}),t.$on("fileSelect",e[87]),t.$on("importEvents",e[88]),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),1024&n[0]&&(r.currentEffectiveRole=e[10]),131072&n[0]&&(r.selectedFile=e[17]),512&n[0]&&(r.aclMode=e[9]),262144&n[0]&&(r.importMessage=e[18]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function tE(e){let t,n;return t=new lm({props:{isLoggedIn:e[1],currentEffectiveRole:e[10],aclMode:e[9]}}),t.$on("exportMyEvents",e[86]),t.$on("exportAllEvents",e[85]),t.$on("openLoginModal",e[71]),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),1024&n[0]&&(r.currentEffectiveRole=e[10]),512&n[0]&&(r.aclMode=e[9]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function nE(t){let n;return{c(){n=g("p"),n.textContent="Log in to access your user dashboard",k(n,"class","svelte-u3u5mw")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function rE(e){let t,n,r,i=(e[3]?.name||e[2].slice(0,8)+"...")+"";return{c(){t=g("p"),n=y("Welcome "),r=y(i),k(t,"class","svelte-u3u5mw")},m(e,i){f(e,t,i),d(t,n),d(t,r)},p(e,t){12&t[0]&&i!==(i=(e[3]?.name||e[2].slice(0,8)+"...")+"")&&E(r,i)},d(e){e&&h(t)}}}function iE(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,F,Q,D,R=e[180].label+"",$=e[43].get(e[180].id)?.isLoading,P=!e[43].get(e[180].id)?.hasMore&&e[43].get(e[180].id)?.events?.length>0;function U(){return e[121](e[180])}function T(e,t){return 64&t[0]&&(I=null),64&t[0]&&(C=null),null==I&&(I=!!(e[43].get(e[180].id)?.events?.length>0)),I?sE:(null==C&&(C=!e[43].get(e[180].id)?.isLoading),C?oE:void 0)}m=new DI({props:{filter:e[43].get(e[180].id)?.filter||{}}}),m.$on("sweep",function(){return e[122](e[180])});let N=T(e,[-1,-1,-1,-1,-1,-1]),L=N&&N(e),O=$&&uE(),M=P&&dE();function _(...t){return e[127](e[180],...t)}return{c(){t=g("div"),n=g("div"),i=g("h2"),o=y("🔍 "),s=y(R),a=w(),l=g("button"),c=y("🔄 Refresh"),p=w(),ie(m.$$.fragment),v=w(),b=g("div"),L&&L.c(),x=w(),O&&O.c(),B=w(),M&&M.c(),S=w(),k(i,"class","svelte-u3u5mw"),k(l,"class","refresh-btn svelte-u3u5mw"),l.disabled=u=e[43].get(e[180].id)?.isLoading,k(n,"class","search-results-header svelte-u3u5mw"),k(b,"class","search-results-content svelte-u3u5mw"),k(t,"class","search-results-view svelte-u3u5mw")},m(e,r){f(e,t,r),d(t,n),d(n,i),d(i,o),d(i,s),d(n,a),d(n,l),d(l,c),d(t,p),oe(m,t,null),d(t,v),d(t,b),L&&L.m(b,null),d(b,x),O&&O.m(b,null),d(b,B),M&&M.m(b,null),d(t,S),F=!0,Q||(D=[A(l,"click",U),A(b,"scroll",_)],Q=!0)},p(t,n){e=t,(!F||64&n[0])&&R!==(R=e[180].label+"")&&E(s,R),(!F||64&n[0]&&u!==(u=e[43].get(e[180].id)?.isLoading))&&(l.disabled=u);const r={};64&n[0]&&(r.filter=e[43].get(e[180].id)?.filter||{}),m.$set(r),N===(N=T(e,n))&&L?L.p(e,n):(L&&L.d(1),L=N&&N(e),L&&(L.c(),L.m(b,x))),64&n[0]&&($=e[43].get(e[180].id)?.isLoading),$?O||(O=uE(),O.c(),O.m(b,B)):O&&(O.d(1),O=null),64&n[0]&&(P=!e[43].get(e[180].id)?.hasMore&&e[43].get(e[180].id)?.events?.length>0),P?M||(M=dE(),M.c(),M.m(b,null)):M&&(M.d(1),M=null)},i(e){F||(X(m.$$.fragment,e),F=!0)},o(e){ee(m.$$.fragment,e),F=!1},d(e){e&&h(t),se(m),L&&L.d(),O&&O.d(),M&&M.d(),Q=!1,r(D)}}}function oE(t){let n;return{c(){n=g("div"),n.innerHTML='<p class="svelte-u3u5mw">No search results found.</p>',k(n,"class","no-search-results svelte-u3u5mw")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function sE(e){let t,n=e[43].get(e[180].id).events,r=[];for(let t=0;t<n.length;t+=1)r[t]=cE(MI(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=v()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);f(e,t,n)},p(e,i){if(524372&i[0]|94208&i[1]){let o;for(n=e[43].get(e[180].id).events,o=0;o<n.length;o+=1){const s=MI(e,n,o);r[o]?r[o].p(s,i):(r[o]=cE(s),r[o].c(),r[o].m(t.parentNode,t))}for(;o<r.length;o+=1)r[o].d(1);r.length=n.length}},d(e){p(r,e),e&&h(t)}}}function aE(e){let t,n,r;function i(){return e[123](e[173])}return{c(){t=g("button"),t.textContent="🗑️",k(t,"class","delete-btn svelte-u3u5mw")},m(e,o){f(e,t,o),n||(r=A(t,"click",b(i)),n=!0)},p(t,n){e=t},d(e){e&&h(t),n=!1,r()}}}function lE(e){let t,n,r,i,o,s,a,l,c=JSON.stringify(e[173],null,2)+"";function u(...t){return e[126](e[173],...t)}return{c(){t=g("div"),n=g("div"),r=g("pre"),i=y(c),o=w(),s=g("button"),s.textContent="📋",k(r,"class","event-json svelte-u3u5mw"),k(s,"class","copy-json-btn svelte-u3u5mw"),k(s,"title","Copy minified JSON to clipboard"),k(n,"class","json-container svelte-u3u5mw"),k(t,"class","search-result-details svelte-u3u5mw")},m(e,c){f(e,t,c),d(t,n),d(n,r),d(r,i),d(n,o),d(n,s),a||(l=A(s,"click",b(u)),a=!0)},p(t,n){e=t,64&n[0]&&c!==(c=JSON.stringify(e[173],null,2)+"")&&E(i,c)},d(e){e&&h(t),a=!1,l()}}}function cE(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S,Q,D,R,$,P,U,T,N,L=$I(e[173].pubkey)+"",O=e[173].kind+"",M=RI(e[173].kind)+"",_=UI(e[173].created_at)+"",H=PI(e[173].content)+"",j=e[19].has(e[173].id),G=5!==e[173].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[173].pubkey&&e[173].pubkey===e[2])&&aE(e);function q(){return e[124](e[173])}function K(...t){return e[125](e[173],...t)}let J=j&&lE(e);return{c(){t=g("div"),n=g("div"),i=g("div"),i.innerHTML='<div class="avatar-placeholder svelte-u3u5mw">👤</div>',o=w(),s=g("div"),a=g("div"),l=y(L),c=w(),u=g("div"),p=g("span"),m=y(O),v=w(),b=g("span"),I=y(M),C=w(),x=g("div"),B=g("div"),S=y(_),Q=w(),D=g("div"),R=y(H),$=w(),G&&G.c(),P=w(),J&&J.c(),U=w(),k(i,"class","search-result-avatar svelte-u3u5mw"),k(a,"class","search-result-author svelte-u3u5mw"),k(p,"class","kind-number svelte-u3u5mw"),k(b,"class","kind-name svelte-u3u5mw"),k(u,"class","search-result-kind svelte-u3u5mw"),k(s,"class","search-result-info svelte-u3u5mw"),k(B,"class","event-timestamp svelte-u3u5mw"),k(D,"class","event-content-single-line svelte-u3u5mw"),k(x,"class","search-result-content svelte-u3u5mw"),k(n,"class","search-result-row svelte-u3u5mw"),k(n,"role","button"),k(n,"tabindex","0"),k(t,"class","search-result-item svelte-u3u5mw"),F(t,"expanded",e[19].has(e[173].id))},m(e,r){f(e,t,r),d(t,n),d(n,i),d(n,o),d(n,s),d(s,a),d(a,l),d(s,c),d(s,u),d(u,p),d(p,m),d(u,v),d(u,b),d(b,I),d(n,C),d(n,x),d(x,B),d(B,S),d(x,Q),d(x,D),d(D,R),d(n,$),G&&G.m(n,null),d(t,P),J&&J.m(t,null),d(t,U),T||(N=[A(n,"click",q),A(n,"keydown",K)],T=!0)},p(r,i){e=r,64&i[0]&&L!==(L=$I(e[173].pubkey)+"")&&E(l,L),64&i[0]&&O!==(O=e[173].kind+"")&&E(m,O),64&i[0]&&M!==(M=RI(e[173].kind)+"")&&E(I,M),64&i[0]&&_!==(_=UI(e[173].created_at)+"")&&E(S,_),64&i[0]&&H!==(H=PI(e[173].content)+"")&&E(R,H),5!==e[173].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[173].pubkey&&e[173].pubkey===e[2])?G?G.p(e,i):(G=aE(e),G.c(),G.m(n,null)):G&&(G.d(1),G=null),524352&i[0]&&(j=e[19].has(e[173].id)),j?J?J.p(e,i):(J=lE(e),J.c(),J.m(t,U)):J&&(J.d(1),J=null),524352&i[0]|4096&i[1]&&F(t,"expanded",e[19].has(e[173].id))},d(e){e&&h(t),G&&G.d(),J&&J.d(),T=!1,r(N)}}}function uE(e){let t;return{c(){t=g("div"),t.innerHTML='<div class="loading-spinner svelte-u3u5mw"></div> \n <p class="svelte-u3u5mw">Searching...</p>',k(t,"class","loading-search-results svelte-u3u5mw")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function dE(e){let t;return{c(){t=g("div"),t.innerHTML='<p class="svelte-u3u5mw">No more search results to load.</p>',k(t,"class","end-of-search-results svelte-u3u5mw")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function fE(e){let t,n,r=e[180].id===e[5]&&iE(e);return{c(){r&&r.c(),t=v()},m(e,i){r&&r.m(e,i),f(e,t,i),n=!0},p(e,n){e[180].id===e[5]?r?(r.p(e,n),96&n[0]&&X(r,1)):(r=iE(e),r.c(),X(r,1),r.m(t.parentNode,t)):r&&(W(),ee(r,1,1,()=>{r=null}),Z())},i(e){n||(X(r),n=!0)},o(e){ee(r),n=!1},d(e){r&&r.d(e),e&&h(t)}}}function hE(t){let n,r,i=t[177].label+"";return{c(){n=g("option"),r=y(i),n.__value=t[177].value,n.value=n.__value},m(e,t){f(e,n,t),d(n,r)},p:e,d(e){e&&h(n)}}}function pE(e){let t;function n(e,t){return e[39]?yE:0===e[38].length?mE:gE}let r=n(e),i=r(e);return{c(){t=g("div"),i.c(),k(t,"class","recovery-results svelte-u3u5mw")},m(e,n){f(e,t,n),i.m(t,null)},p(e,o){r===(r=n(e))&&i?i.p(e,o):(i.d(1),i=r(e),i&&(i.c(),i.m(t,null)))},d(e){e&&h(t),i.d()}}}function gE(e){let t,n,r,i=e[38],o=[];for(let t=0;t<i.length;t+=1)o[t]=bE(_I(e,i,t));let s=e[40]&&kE(e);return{c(){t=g("div");for(let e=0;e<o.length;e+=1)o[e].c();n=w(),s&&s.c(),r=v(),k(t,"class","events-list svelte-u3u5mw")},m(e,i){f(e,t,i);for(let e=0;e<o.length;e+=1)o[e]&&o[e].m(t,null);f(e,n,i),s&&s.m(e,i),f(e,r,i)},p(e,n){if(1024&n[0]|4997248&n[1]){let r;for(i=e[38],r=0;r<i.length;r+=1){const s=_I(e,i,r);o[r]?o[r].p(s,n):(o[r]=bE(s),o[r].c(),o[r].m(t,null))}for(;r<o.length;r+=1)o[r].d(1);o.length=i.length}e[40]?s?s.p(e,n):(s=kE(e),s.c(),s.m(r.parentNode,r)):s&&(s.d(1),s=null)},d(e){e&&h(t),p(o,e),e&&h(n),s&&s.d(e),e&&h(r)}}}function mE(t){let n;return{c(){n=g("div"),n.textContent="No events found for this kind",k(n,"class","no-events svelte-u3u5mw")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function yE(t){let n;return{c(){n=g("div"),n.textContent="Loading events...",k(n,"class","loading svelte-u3u5mw")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function wE(e){let t;return{c(){t=y("Current Version")},m(e,n){f(e,t,n)},d(e){e&&h(t)}}}function vE(e){let t,n,r,i,o;function s(){return e[118](e[173])}let a="read"!==e[10]&&AE(e);return{c(){t=g("button"),t.textContent="🌐 Repost to All",n=w(),a&&a.c(),r=v(),k(t,"class","repost-all-button svelte-u3u5mw")},m(e,l){f(e,t,l),f(e,n,l),a&&a.m(e,l),f(e,r,l),i||(o=A(t,"click",s),i=!0)},p(t,n){"read"!==(e=t)[10]?a?a.p(e,n):(a=AE(e),a.c(),a.m(r.parentNode,r)):a&&(a.d(1),a=null)},d(e){e&&h(t),e&&h(n),a&&a.d(e),e&&h(r),i=!1,o()}}}function AE(e){let t,n,r;function i(){return e[119](e[173])}return{c(){t=g("button"),t.textContent="🔄 Repost",k(t,"class","repost-button svelte-u3u5mw")},m(e,o){f(e,t,o),n||(r=A(t,"click",i),n=!0)},p(t,n){e=t},d(e){e&&h(t),n=!1,r()}}}function bE(e){let t,n,r,i,o,s,a,l,c,u,p,m,v,I,C,x,B,S,Q=new Date(1e3*e[173].created_at).toLocaleString()+"",D=JSON.stringify(e[173],null,2)+"",R=e[174]&&wE(),$=!e[174]&&vE(e);function P(...t){return e[120](e[173],...t)}return{c(){t=g("div"),n=g("div"),r=g("div"),i=g("span"),R&&R.c(),o=w(),s=g("span"),a=y(Q),l=w(),c=g("div"),$&&$.c(),u=w(),p=g("button"),p.textContent="📋 Copy JSON",m=w(),v=g("div"),I=g("pre"),C=y(D),x=w(),k(i,"class","event-kind svelte-u3u5mw"),k(s,"class","event-timestamp svelte-u3u5mw"),k(r,"class","event-header-left svelte-u3u5mw"),k(p,"class","copy-json-btn svelte-u3u5mw"),k(c,"class","event-header-actions svelte-u3u5mw"),k(n,"class","event-header svelte-u3u5mw"),k(I,"class","event-json svelte-u3u5mw"),k(v,"class","event-content svelte-u3u5mw"),k(t,"class","event-item svelte-u3u5mw"),F(t,"old-version",!e[174])},m(e,h){f(e,t,h),d(t,n),d(n,r),d(r,i),R&&R.m(i,null),d(r,o),d(r,s),d(s,a),d(n,l),d(n,c),$&&$.m(c,null),d(c,u),d(c,p),d(t,m),d(t,v),d(v,I),d(I,C),d(t,x),B||(S=A(p,"click",b(P)),B=!0)},p(n,r){(e=n)[174]?R||(R=wE(),R.c(),R.m(i,null)):R&&(R.d(1),R=null),128&r[1]&&Q!==(Q=new Date(1e3*e[173].created_at).toLocaleString()+"")&&E(a,Q),e[174]?$&&($.d(1),$=null):$?$.p(e,r):($=vE(e),$.c(),$.m(c,u)),128&r[1]&&D!==(D=JSON.stringify(e[173],null,2)+"")&&E(C,D),4194432&r[1]&&F(t,"old-version",!e[174])},d(e){e&&h(t),R&&R.d(),$&&$.d(),B=!1,S()}}}function kE(e){let t,n,r,i;return{c(){t=g("button"),n=y("Load More Events"),k(t,"class","load-more svelte-u3u5mw"),t.disabled=e[39]},m(o,s){f(o,t,s),d(t,n),r||(i=A(t,"click",e[48]),r=!0)},p(e,n){256&n[1]&&(t.disabled=e[39])},d(e){e&&h(t),r=!1,i()}}}function IE(t){let n,r,i,o,s,a;return{c(){n=g("div"),r=g("p"),r.textContent="Please log in with owner permissions to access\n managed ACL configuration.",i=w(),o=g("button"),o.textContent="Log In",k(o,"class","login-btn svelte-u3u5mw"),k(n,"class","access-denied")},m(e,l){f(e,n,l),d(n,r),d(n,i),d(n,o),s||(a=A(o,"click",t[71]),s=!0)},p:e,i:e,o:e,d(e){e&&h(n),s=!1,a()}}}function EE(e){let t,n;return t=new Mg({props:{userSigner:e[13],userPubkey:e[2]}}),{c(){ie(t.$$.fragment)},m(e,r){oe(t,e,r),n=!0},p(e,n){const r={};8192&n[0]&&(r.userSigner=e[13]),4&n[0]&&(r.userPubkey=e[2]),t.$set(r)},i(e){n||(X(t.$$.fragment,e),n=!0)},o(e){ee(t.$$.fragment,e),n=!1},d(e){se(t,e)}}}function CE(t){let n,r,i,o,s,a,l,c,u,p,m,v=(t[9]||"unknown")+"";return{c(){n=g("div"),r=g("h3"),r.textContent="⚠️ Managed ACL Mode Not Active",i=w(),o=g("p"),o.textContent='To use the Managed ACL interface, you need to set\n the ACL mode to "managed" in your relay\n configuration.',s=w(),a=g("p"),l=y("Current ACL mode: "),c=g("strong"),u=y(v),p=w(),m=g("p"),m.innerHTML='Please set <code class="svelte-u3u5mw">ORLY_ACL_MODE=managed</code> in your\n environment variables and restart the relay.',k(r,"class","svelte-u3u5mw"),k(o,"class","svelte-u3u5mw"),k(a,"class","svelte-u3u5mw"),k(m,"class","svelte-u3u5mw"),k(n,"class","acl-mode-warning svelte-u3u5mw")},m(e,t){f(e,n,t),d(n,r),d(n,i),d(n,o),d(n,s),d(n,a),d(a,l),d(a,c),d(c,u),d(n,p),d(n,m)},p(e,t){512&t[0]&&v!==(v=(e[9]||"unknown")+"")&&E(u,v)},i:e,o:e,d(e){e&&h(n)}}}function xE(e){let t,n,i,o,s,a,l,c,u,p;function m(e,t){return e[3]?SE:e[1]&&e[2]?BE:void 0}let y=m(e),v=y&&y(e);return{c(){t=g("div"),n=g("div"),i=g("div"),o=g("h2"),o.textContent="Settings",s=w(),a=g("button"),a.textContent="✕",l=w(),c=g("div"),v&&v.c(),k(o,"class","svelte-u3u5mw"),k(a,"class","close-btn svelte-u3u5mw"),k(i,"class","drawer-header svelte-u3u5mw"),k(c,"class","drawer-content"),k(n,"class","settings-drawer svelte-u3u5mw"),F(n,"dark-theme",e[0]),k(t,"class","drawer-overlay svelte-u3u5mw"),k(t,"role","button"),k(t,"tabindex","0")},m(r,h){f(r,t,h),d(t,n),d(n,i),d(i,o),d(i,s),d(i,a),d(n,l),d(n,c),v&&v.m(c,null),u||(p=[A(a,"click",e[76]),A(n,"click",b(e[102])),A(n,"keydown",b(e[103])),A(t,"click",e[76]),A(t,"keydown",e[129])],u=!0)},p(e,t){y===(y=m(e))&&v?v.p(e,t):(v&&v.d(1),v=y&&y(e),v&&(v.c(),v.m(c,null))),1&t[0]&&F(n,"dark-theme",e[0])},d(e){e&&h(t),v&&v.d(),u=!1,r(p)}}}function BE(e){let t,n,i,o,s,a,l,c,u,p,m,v,b,I,C,x,B,S=e[2].slice(0,16)+"",F=e[2].slice(-8)+"";return{c(){t=g("div"),n=g("button"),n.textContent="Log out",i=w(),o=g("h3"),o.textContent="Profile Loading",s=w(),a=g("p"),a.textContent="Your profile metadata is being loaded...",l=w(),c=g("button"),c.textContent="Retry Loading Profile",u=w(),p=g("div"),m=g("strong"),m.textContent="Public Key:",v=w(),b=y(S),I=y("..."),C=y(F),k(n,"class","logout-btn floating svelte-u3u5mw"),k(o,"class","svelte-u3u5mw"),k(a,"class","svelte-u3u5mw"),k(c,"class","retry-profile-btn svelte-u3u5mw"),k(p,"class","user-pubkey-display svelte-u3u5mw"),k(t,"class","profile-loading-section svelte-u3u5mw")},m(r,h){f(r,t,h),d(t,n),d(t,i),d(t,o),d(t,s),d(t,a),d(t,l),d(t,c),d(t,u),d(t,p),d(p,m),d(p,v),d(p,b),d(p,I),d(p,C),x||(B=[A(n,"click",e[73]),A(c,"click",e[84])],x=!0)},p(e,t){4&t[0]&&S!==(S=e[2].slice(0,16)+"")&&E(b,S),4&t[0]&&F!==(F=e[2].slice(-8)+"")&&E(C,F)},d(e){e&&h(t),x=!1,r(B)}}}function SE(e){let t,n,r,i,o,s,a,l,c,u,p,m,b,I,C,x=(e[3].name||"Unknown User")+"",B=e[3].banner&&FE(e);function S(e,t){return e[3].picture?DE:QE}let F=S(e),Q=F(e),D=e[3].nip05&&RE(e),R=e[3].about&&$E(e),$=e[4]&&"read"!==e[4]&&PE(e);return{c(){t=g("div"),n=g("div"),B&&B.c(),r=w(),i=g("button"),i.textContent="Log out",o=w(),Q.c(),s=w(),a=g("div"),l=g("h3"),c=y(x),u=w(),D&&D.c(),p=w(),R&&R.c(),m=w(),$&&$.c(),b=v(),k(i,"class","logout-btn floating svelte-u3u5mw"),k(l,"class","profile-username svelte-u3u5mw"),k(a,"class","name-row svelte-u3u5mw"),k(n,"class","profile-hero svelte-u3u5mw"),k(t,"class","profile-section svelte-u3u5mw")},m(h,g){f(h,t,g),d(t,n),B&&B.m(n,null),d(n,r),d(n,i),d(n,o),Q.m(n,null),d(n,s),d(n,a),d(a,l),d(l,c),d(a,u),D&&D.m(a,null),d(t,p),R&&R.m(t,null),f(h,m,g),$&&$.m(h,g),f(h,b,g),I||(C=A(i,"click",e[73]),I=!0)},p(e,i){e[3].banner?B?B.p(e,i):(B=FE(e),B.c(),B.m(n,r)):B&&(B.d(1),B=null),F===(F=S(e))&&Q?Q.p(e,i):(Q.d(1),Q=F(e),Q&&(Q.c(),Q.m(n,s))),8&i[0]&&x!==(x=(e[3].name||"Unknown User")+"")&&E(c,x),e[3].nip05?D?D.p(e,i):(D=RE(e),D.c(),D.m(a,null)):D&&(D.d(1),D=null),e[3].about?R?R.p(e,i):(R=$E(e),R.c(),R.m(t,null)):R&&(R.d(1),R=null),e[4]&&"read"!==e[4]?$?$.p(e,i):($=PE(e),$.c(),$.m(b.parentNode,b)):$&&($.d(1),$=null)},d(e){e&&h(t),B&&B.d(),Q.d(),D&&D.d(),R&&R.d(),e&&h(m),$&&$.d(e),e&&h(b),I=!1,C()}}}function FE(e){let t,n;return{c(){t=g("img"),a(t.src,n=e[3].banner)||k(t,"src",n),k(t,"alt","Profile banner"),k(t,"class","profile-banner svelte-u3u5mw")},m(e,n){f(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].banner)&&k(t,"src",n)},d(e){e&&h(t)}}}function QE(t){let n;return{c(){n=g("div"),n.textContent="👤",k(n,"class","profile-avatar-placeholder overlap svelte-u3u5mw")},m(e,t){f(e,n,t)},p:e,d(e){e&&h(n)}}}function DE(e){let t,n;return{c(){t=g("img"),a(t.src,n=e[3].picture)||k(t,"src",n),k(t,"alt","User avatar"),k(t,"class","profile-avatar overlap svelte-u3u5mw")},m(e,n){f(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].picture)&&k(t,"src",n)},d(e){e&&h(t)}}}function RE(e){let t,n,r=e[3].nip05+"";return{c(){t=g("span"),n=y(r),k(t,"class","profile-nip05-inline svelte-u3u5mw")},m(e,r){f(e,t,r),d(t,n)},p(e,t){8&t[0]&&r!==(r=e[3].nip05+"")&&E(n,r)},d(e){e&&h(t)}}}function $E(e){let t,n;return{c(){t=g("div"),n=g("p"),k(n,"class","profile-about svelte-u3u5mw"),k(t,"class","about-card svelte-u3u5mw")},m(r,i){f(r,t,i),d(t,n),n.innerHTML=e[41]},p(e,t){1024&t[1]&&(n.innerHTML=e[41])},d(e){e&&h(t)}}}function PE(e){let t,n,r,i,o,s,a=e[96](),l=[];for(let t=0;t<a.length;t+=1)l[t]=UE(LI(e,a,t));return{c(){t=g("div"),n=g("h3"),n.textContent="View as Role",r=w(),i=g("p"),i.textContent="See the interface as it appears for different\n permission levels:",o=w(),s=g("div");for(let e=0;e<l.length;e+=1)l[e].c();k(n,"class","svelte-u3u5mw"),k(i,"class","svelte-u3u5mw"),k(s,"class","radio-group svelte-u3u5mw"),k(t,"class","view-as-section svelte-u3u5mw")},m(e,a){f(e,t,a),d(t,n),d(t,r),d(t,i),d(t,o),d(t,s);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(s,null)},p(e,t){if(1040&t[0]|12&t[3]){let n;for(a=e[96](),n=0;n<a.length;n+=1){const r=LI(e,a,n);l[n]?l[n].p(r,t):(l[n]=UE(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&&h(t),p(l,e)}}}function UE(e){let t,n,r,i,o,s,a,l,c,u=e[170].charAt(0).toUpperCase()+e[170].slice(1)+"",p=e[170]===e[4]?" (Default)":"";function m(){return e[128](e[170])}return{c(){t=g("label"),n=g("input"),i=w(),o=y(u),s=y(p),a=w(),k(n,"type","radio"),k(n,"name","viewAsRole"),n.value=e[170],n.checked=r=e[10]===e[170],k(n,"class","svelte-u3u5mw"),k(t,"class","radio-label svelte-u3u5mw")},m(e,r){f(e,t,r),d(t,n),d(t,i),d(t,o),d(t,s),d(t,a),l||(c=A(n,"change",m),l=!0)},p(t,i){e=t,1024&i[0]&&r!==(r=e[10]===e[170])&&(n.checked=r),16&i[0]&&p!==(p=e[170]===e[4]?" (Default)":"")&&E(s,p)},d(e){e&&h(t),l=!1,c()}}}function TE(e){let t,n,r,i,o,s,a,l,c,u,p,m,y,v;t=new Vg({props:{isDarkTheme:e[0],isLoggedIn:e[1],userRole:e[4],currentEffectiveRole:e[10],userProfile:e[3],userPubkey:e[2]}}),t.$on("openSettingsDrawer",e[75]),t.$on("openLoginModal",e[71]),i=new tm({props:{isDarkTheme:e[0],tabs:e[11],selectedTab:e[5],version:e[33]}}),i.$on("selectTab",e[105]),i.$on("closeSearchTab",e[106]);const A=[tE,eE,XI,ZI,WI,zI,YI,VI,JI,KI,qI,GI,jI],b=[];function I(e,t){return 96&t[0]&&(a=null),"export"===e[5]?0:"import"===e[5]?1:"events"===e[5]?2:"blossom"===e[5]?3:"bunker"===e[5]?4:"compose"===e[5]?5:"managed-acl"===e[5]?6:"sprocket"===e[5]?7:"policy"===e[5]?8:"logs"===e[5]?9:"recovery"===e[5]?10:(null==a&&(a=!!e[6].some(e[104])),a?11:12)}l=I(e,[-1,-1,-1,-1,-1,-1]),c=b[l]=A[l](e);let E=e[15]&&xE(e);function C(t){e[130](t)}let x={isDarkTheme:e[0]};return void 0!==e[12]&&(x.showModal=e[12]),m=new Yp({props:x}),L.push(()=>re(m,"showModal",C)),m.$on("login",e[72]),m.$on("close",e[74]),{c(){ie(t.$$.fragment),n=w(),r=g("div"),ie(i.$$.fragment),o=w(),s=g("main"),c.c(),u=w(),E&&E.c(),p=w(),ie(m.$$.fragment),k(s,"class","main-content svelte-u3u5mw"),k(r,"class","app-container svelte-u3u5mw"),F(r,"dark-theme",e[0])},m(e,a){oe(t,e,a),f(e,n,a),f(e,r,a),oe(i,r,null),d(r,o),d(r,s),b[l].m(s,null),f(e,u,a),E&&E.m(e,a),f(e,p,a),oe(m,e,a),v=!0},p(e,n){const o={};1&n[0]&&(o.isDarkTheme=e[0]),2&n[0]&&(o.isLoggedIn=e[1]),16&n[0]&&(o.userRole=e[4]),1024&n[0]&&(o.currentEffectiveRole=e[10]),8&n[0]&&(o.userProfile=e[3]),4&n[0]&&(o.userPubkey=e[2]),t.$set(o);const a={};1&n[0]&&(a.isDarkTheme=e[0]),2048&n[0]&&(a.tabs=e[11]),32&n[0]&&(a.selectedTab=e[5]),4&n[1]&&(a.version=e[33]),i.$set(a);let u=l;l=I(e,n),l===u?b[l].p(e,n):(W(),ee(b[u],1,1,()=>{b[u]=null}),Z(),c=b[l],c?c.p(e,n):(c=b[l]=A[l](e),c.c()),X(c,1),c.m(s,null)),(!v||1&n[0])&&F(r,"dark-theme",e[0]),e[15]?E?E.p(e,n):(E=xE(e),E.c(),E.m(p.parentNode,p)):E&&(E.d(1),E=null);const d={};1&n[0]&&(d.isDarkTheme=e[0]),!y&&4096&n[0]&&(y=!0,d.showModal=e[12],G(()=>y=!1)),m.$set(d)},i(e){v||(X(t.$$.fragment,e),X(i.$$.fragment,e),X(c),X(m.$$.fragment,e),v=!0)},o(e){ee(t.$$.fragment,e),ee(i.$$.fragment,e),ee(c),ee(m.$$.fragment,e),v=!1},d(e){se(t,e),e&&h(n),e&&h(r),se(i),b[l].d(),e&&h(u),E&&E.d(e),e&&h(p),se(m,e)}}}let NE=!1,LE=!1;function OE(e,t,n){let r,i,o,s,a;"undefined"!=typeof window&&(window.debugIndexedDB=Vh);let l=!1,c=!1,u=!1,d="",f="",h=null,p="",g=null,m=null,y=!1,w=localStorage.getItem("selectedTab")||"export",v=!1,A={},b=[],k=[],E=null,C="",x=new Set,B=!1,F=!0,Q=null,D="",R=new Map,$=[],P=0,U=[],N=!0,L=null,O="",M=null,_=[],H=!1,j="",G="info",q=!1,K=null,J="",V=!1,Y=!1,z="",W="info",Z=[],X=[],ee="",te="",ne="",re="",ie=null,oe="",se=[],ae=!1,le=!0,ce=null;function ue(e){x.has(e)?x.delete(e):x.add(e),n(19,x)}async function de(e,t){const n=JSON.stringify(e),r=await async function(e){try{return await navigator.clipboard.writeText(e),!0}catch(t){console.error("Failed to copy to clipboard:",t);try{const t=document.createElement("textarea");return t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),!0}catch(e){return console.error("Fallback copy also failed:",e),!1}}}(n);!function(e,t=!0){if(!e)return;const n=e.textContent,r=e.style.backgroundColor;t?(e.textContent="",e.style.backgroundColor="#4CAF50"):(e.textContent="L",e.style.backgroundColor="#f44336"),setTimeout(()=>{e.textContent=n,e.style.backgroundColor=r},2e3)}(t.target.closest(".copy-json-btn"),r),r||alert("Failed to copy to clipboard. Please copy manually.")}async function fe(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 i=await g.signEvent(r);console.log("Signed delete event:",i),console.log("Signed delete event pubkey:",i.pubkey),console.log("Delete event tags:",i.tags);const o=`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${window.location.host}/`;try{const e=await NI(o,i,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 Rh.publish(i);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 qh(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(97,k=k.filter(t=>t.id!==e)),U=U.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));me(),console.log("Reloading events to show delete event...");const r=NE&&u&&d?[d]:null;await Te(!0,r),alert(`Event deleted successfully (accepted by ${t.okCount} relay(s))`)}}else{const t=`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${window.location.host}/`,r=new Dh;await r.connectToRelay(t);const o=await r.publish(i);if(console.log("Delete event published to local relay only:",o),!(o.success&&o.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 ${o.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 qh(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(97,k=k.filter(t=>t.id!==e)),U=U.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));me(),console.log("Reloading events to show delete event...");const t=NE&&u&&d?[d]:null;await Te(!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 he(){const e=oe?parseInt(oe):ie;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(39,ae=!0);try{const t=[{kinds:[e],authors:[d],limit:100}];ce&&(t[0].until=ce),console.log("Recovery filters:",t);const r=await Jh(t,{timeout:3e4,cacheFirst:!0});console.log("Recovery events received:",r.length),console.log("Recovery events kinds:",r.map(e=>e.kind)),n(38,se=ce?[...se,...r]:r),r.length>0?(ce=Math.min(...r.map(e=>e.created_at)),n(40,le=100===r.length)):n(40,le=!1)}catch(e){console.error("Failed to load recovery events:",e)}finally{n(39,ae=!1)}}else console.log("Not logged in, cannot load recovery events")}async function pe(e){if(confirm("Are you sure you want to repost this event?"))try{const t=`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${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 i=await Rh.publish(e,[t]);console.log("Repost publish result:",i),i.success&&i.okCount>0?(alert("Event reposted successfully!"),n(40,le=!1),await he()):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 ge(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 Oh([{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=`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${window.location.host}/`,i=[r,...t.filter(e=>e!==r)];1===i.length&&alert("No write relays found in your relay list. Only posting to local relay."),console.log("Reposting event to all relays:",i,e);const o={...e};if(o.created_at=Math.floor(Date.now()/1e3),o.id="",o.sig="",e.kind>=3e4&&e.kind<=39999){const t=e.tags.find(e=>"d"===e[0]);t&&(o.tags=o.tags.filter(e=>"d"!==e[0]),o.tags.push(t))}if(g){const e=await g.signEvent(o);console.log("Signed event for repost to all:",e);const t=await Rh.publish(e,i);console.log("Repost to all publish result:",t),t.success&&t.okCount>0?(alert(`Event reposted successfully to ${i.length} relays!`),n(40,le=!1),await he()):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 window&&window.matchMedia){const e=window.matchMedia("(prefers-color-scheme: dark)");l=e.matches,e.addEventListener("change",e=>{n(0,l=e.matches)})}if("undefined"!=typeof localStorage){const e=localStorage.getItem("nostr_auth_method"),t=localStorage.getItem("nostr_pubkey");e&&t&&(u=!0,d=t,f=e,"extension"===e&&window.nostr&&(g=window.nostr),$e(),Pe()),function(){if("undefined"==typeof localStorage)return;try{const t=localStorage.getItem("app_state");if(t){const r=JSON.parse(t);r.selectedTab&&Ce.some(e=>e.id===r.selectedTab)&&n(5,w=r.selectedTab),r.expandedEvents&&n(19,x=new Set(r.expandedEvents)),r.globalEventsCache&&($=r.globalEventsCache),r.globalCacheTimestamp&&(P=r.globalCacheTimestamp),void 0!==r.hasMoreEvents&&(F=r.hasMoreEvents),r.oldestEventTimestamp&&(Q=r.oldestEventTimestamp),void 0!==r.hasMoreMyEvents&&(N=r.hasMoreMyEvents),r.oldestMyEventTimestamp&&(L=r.oldestMyEventTimestamp),$.length>0&&((e=P)&&Date.now()-e<Qh)&&n(97,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(99,q=t.enabled)}}catch(e){console.error("Error loading sprocket config:",e)}}(),async function(){try{const e=await fetch("/api/policy/config",{method:"GET",headers:{"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(8,V=t.enabled||!1)}}catch(e){console.error("Error loading policy config:",e),n(8,V=!1)}}(),async function(){try{const e=await async function(){try{const e=await fetch(window.location.origin,{headers:{Accept:"application/nostr+json"}});if(e.ok)return await e.json()}catch(e){console.error("Error fetching relay info:",e)}return null}();e&&e.version&&n(33,te=e.version)}catch(e){console.error("Error fetching relay version:",e)}}()}function me(){if("undefined"==typeof localStorage)return;const e={selectedTab:w,expandedEvents:Array.from(x),globalEventsCache:$,globalCacheTimestamp:P,hasMoreEvents:F,oldestEventTimestamp:Q};localStorage.setItem("app_state",JSON.stringify(e))}function ye(e){$=e.sort((e,t)=>t.created_at-e.created_at),P=Date.now(),me()}async function we(){if(u&&"owner"===p&&q)try{n(23,H=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Me("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});e.ok?n(21,M=await e.json()):ke("Failed to load sprocket status","error")}catch(e){ke(`Error loading sprocket status: ${e.message}`,"error")}finally{n(23,H=!1)}}async function ve(){if(u&&"owner"===p)try{n(23,H=!0);const e=await fetch("/api/sprocket/versions",{method:"GET",headers:{Authorization:`Nostr ${await Me("GET","/api/sprocket/versions")}`,"Content-Type":"application/json"}});e.ok?n(22,_=await e.json()):ke("Failed to load versions","error")}catch(e){ke(`Error loading versions: ${e.message}`,"error")}finally{n(23,H=!1)}}async function Ae(e){u&&"owner"===p&&(n(20,O=e.content),ke(`Loaded version: ${e.name}`,"success"))}async function be(e){if(u&&"owner"===p&&confirm(`Are you sure you want to delete version ${e}?`))try{n(23,H=!0);const t=await fetch("/api/sprocket/delete-version",{method:"POST",headers:{Authorization:`Nostr ${await Me("POST","/api/sprocket/delete-version")}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e})});if(t.ok)ke(`Version ${e} deleted successfully`,"success"),await ve();else{ke(`Failed to delete version: ${await t.text()}`,"error")}}catch(e){ke(`Error deleting version: ${e.message}`,"error")}finally{n(23,H=!1)}}function ke(e,t="info"){n(24,j=e),n(25,G=t),setTimeout(()=>{n(24,j="")},5e3)}function Ie(e,t="info"){n(29,z=e),n(30,W=t),"error"!==t&&setTimeout(()=>{n(29,z="")},5e3)}async function Ee(){if(n(31,Z=[]),!J.trim())return n(31,Z=["Policy JSON is empty"]),Ie("Validation failed","error"),!1;try{const e=JSON.parse(J);if("object"!=typeof e||null===e)return n(31,Z=["Policy must be a JSON object"]),Ie("Validation failed","error"),!1;if(e.policy_admins)if(Array.isArray(e.policy_admins))for(const t of e.policy_admins)"string"==typeof t&&/^[0-9a-fA-F]{64}$/.test(t)||Z.push(`Invalid policy_admin pubkey: ${t}`);else Z.push("policy_admins must be an array");if(e.rules)if("object"!=typeof e.rules)Z.push("rules must be an object");else for(const[t,n]of Object.entries(e.rules))if(/^\d+$/.test(t)||Z.push(`Invalid kind number: ${t}`),n.tag_validation&&"object"==typeof n.tag_validation)for(const[e,t]of Object.entries(n.tag_validation))try{new RegExp(t)}catch(n){Z.push(`Invalid regex for tag '${e}': ${t}`)}return e.default_policy&&!["allow","deny"].includes(e.default_policy)&&Z.push("default_policy must be 'allow' or 'deny'"),Z.length>0?(Ie("Validation failed - see errors below","error"),!1):(Ie("Validation passed","success"),!0)}catch(e){return n(31,Z=[`JSON parse error: ${e.message}`]),Ie("Invalid JSON syntax","error"),!1}}const Ce=[{id:"export",icon:"📤",label:"Export"},{id:"import",icon:"💾",label:"Import",requiresAdmin:!0},{id:"events",icon:"📡",label:"Events"},{id:"blossom",icon:"🌸",label:"Blossom"},{id:"bunker",icon:"🔐",label:"Bunker",requiresWrite:!0},{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},{id:"policy",icon:"📜",label:"Policy",requiresOwner:!0},{id:"logs",icon:"📋",label:"Logs",requiresOwner:!0}];function xe(e){n(5,w=e),"sprocket"===e&&u&&"owner"===p&&q&&(we(),ve()),me()}function Be(){n(15,y=!1)}function Se(e){Fe(e)}function Fe(e){n(6,b=b.filter(t=>t.id!==e)),R.delete(e),w===e&&n(5,w="export")}async function Qe(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 i=await jh([r],{timeout:3e4});if(console.log("Received search results:",i.length,"events"),n.events=t?i.sort((e,t)=>t.created_at-e.created_at):[...n.events,...i].sort((e,t)=>t.created_at-e.created_at),i.length>0){const e=Math.min(...i.map(e=>e.created_at));(!n.oldestTimestamp||e<n.oldestTimestamp)&&(n.oldestTimestamp=e)}n.hasMore=i.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 De(e,t){const{scrollTop:n,scrollHeight:r,clientHeight:i}=e.target;if(r-n-i<100){const e=R.get(t);e&&!e.isLoading&&e.hasMore&&async function(e){await Qe(e,!1)}(t)}}async function Re(){if(u&&d&&!h)try{console.log("Auto-fetching profile for:",d),await Kh(),n(3,h=await _h(d)),console.log("Profile auto-loaded:",h)}catch(e){console.error("Failed to auto-load profile:",e)}}async function $e(){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 Pe(){try{const e=await fetch("/api/acl-mode");if(e.ok){const t=await e.json();n(9,ee=t.acl_mode||""),console.log("ACL mode loaded:",ee)}else console.error("Failed to fetch ACL mode:",e.status),n(9,ee="")}catch(e){console.error("Error fetching ACL mode:",e),n(9,ee="")}}async function Ue(e=[]){if("none"===ee||u)if("none"===ee||0!==e.length||"admin"===a||"owner"===a)try{const t={"Content-Type":"application/json"};"none"!==ee&&u&&(t.Authorization=await Oe("/api/export","POST"));const n=await fetch("/api/export",{method:"POST",headers:t,body:JSON.stringify({pubkeys:e})});if(!n.ok)throw new Error(`Export failed: ${n.status} ${n.statusText}`);const r=await n.blob(),i=window.URL.createObjectURL(r),o=document.createElement("a");o.href=i;const s=n.headers.get("Content-Disposition");let a="events.jsonl";if(s){const e=s.match(/filename="([^"]+)"/);e&&(a=e[1])}o.download=a,document.body.appendChild(o),o.click(),document.body.removeChild(o),window.URL.revokeObjectURL(i)}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 Te(e=!1,t=null){if(!u||"read"!==p&&"write"!==p&&"admin"!==p&&"owner"!==p)alert("Read, write, admin, or owner permission required");else if(!B){n(7,B=!0),e&&(Q=null);try{console.log("Loading events with authors filter:",t,"including delete events");const r=e?Math.floor(Date.now()/1e3):Q,i=A.authors||t,o=await async function(e={}){const{limit:t=100,since:n=null,until:r=null,authors:i=null,kinds:o=null,...s}=e,a=[{...s}];return n&&(a[0].since=n),r&&(a[0].until=r),i&&(a[0].authors=i),o&&(a[0].kinds=o),t&&(a[0].limit=t),await jh(a,{timeout:3e4})}({...A,limit:e?100:200,until:A.until||r,authors:i});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(97,k=o.sort((e,t)=>t.created_at-e.created_at)),ye(o)):(n(97,k=[...k,...o].sort((e,t)=>t.created_at-e.created_at)),ye(k)),o.length>0){const e=Math.min(...o.map(e=>e.created_at));(!Q||e<Q)&&(Q=e)}F=o.length===(e?1e3:200),e&&F&&setTimeout(()=>{if("events"===w){const e=document.querySelectorAll(".events-view-content")[0];e&&e.scrollHeight<=e.clientHeight&&Ne()}},100)}catch(e){console.error("Failed to load events:",e),alert("Failed to load events: "+e.message)}finally{n(7,B=!1)}}}async function Ne(){await Te(!1)}let Le=!1;async function Oe(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 i=JSON.stringify(r);return`Nostr ${btoa(i)}`}async function Me(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 i=JSON.stringify(r);return btoa(i)}function _e(e,t){const n=e.toLowerCase();if(n.includes("policy")||n.includes("blocked")||n.includes("denied")){let n=`Policy Error: ${e}`;return null!==t&&(n+=`\n\nKind ${t} may be restricted by the relay's policy configuration.`),V&&(n+="\n\nThe relay has policy enforcement enabled. Contact a relay administrator to allow this event kind or adjust your permissions."),n}if(n.includes("auth")||n.includes("permission")||n.includes("unauthorized"))return`Permission Error: ${e}\n\nYour current permissions may not allow publishing this type of event. Current role: ${p||"unknown"}. Contact a relay administrator to upgrade your permissions.`;if(n.includes("kind")||n.includes("not allowed")||n.includes("restricted")){let n=`Event Type Error: ${e}`;return null!==t&&(n+=`\n\nKind ${t} is not currently allowed on this relay.`),n+="\n\nThe relay administrator may need to update the policy configuration to allow this event kind.",n}return n.includes("rate")||n.includes("limit")||n.includes("too many")?`Rate Limit Error: ${e}\n\nPlease wait a moment before trying again.`:n.includes("size")||n.includes("too large")||n.includes("content")?`Size Limit Error: ${e}\n\nThe event may exceed the relay's size limits. Try reducing the content length.`:`Publishing failed: ${e}`}function He(e){n(98,D=e),localStorage.setItem("viewAsRole",e),console.log("View as role changed to:",e,"Current effective role:",a)}D=localStorage.getItem("viewAsRole")||"";return e.$$.update=()=>{var t;if(6&e.$$.dirty[0]|16&e.$$.dirty[3]&&n(42,r=k.sort((e,t)=>t.created_at-e.created_at)),8&e.$$.dirty[0]&&n(41,i=h?.about?(t=h.about,t?t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):"").replace(/\n{2,}/g,"<br>"):""),16&e.$$.dirty[0]|32&e.$$.dirty[3]&&n(10,a=D&&""!==D?D:p),1810&e.$$.dirty[0]|96&e.$$.dirty[3]&&n(101,o=Ce.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&&!q)&&(!("policy"===e.id&&!V)&&(("managed-acl"!==e.id||"managed"===ee)&&(console.log(`Tab ${e.id} filter check:`,{isLoggedIn:u,userRole:p,viewAsRole:D,currentRole:t,requiresAdmin:e.requiresAdmin,requiresOwner:e.requiresOwner,requiresWrite:e.requiresWrite,visible:!0}),!0))))))})),64&e.$$.dirty[0]|256&e.$$.dirty[3]&&n(11,s=[...o,...b]),2578&e.$$.dirty[0]|256&e.$$.dirty[3]&&console.log("Tabs debug:",{isLoggedIn:u,userRole:p,aclMode:ee,filteredBaseTabs:o.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&&Re(),182&e.$$.dirty[0]|144&e.$$.dirty[3]&&"events"===w&&u&&("read"===p||"write"===p||"admin"===p||"owner"===p)&&0===k.length&&!Le&&!B){n(100,Le=!0);Te(!0,null)}32&e.$$.dirty[0]|16&e.$$.dirty[3]&&("events"!==w||"events"===w&&k.length>0)&&n(100,Le=!1),32&e.$$.dirty[0]&&localStorage.setItem("selectedTab",w)},[l,u,d,h,p,w,b,B,V,ee,a,s,c,g,m,y,v,E,C,x,O,M,_,H,j,G,K,J,Y,z,W,Z,X,te,ne,re,ie,oe,se,ae,le,i,r,R,ue,de,async function(){console.log("Toggle changed, showOnlyMyEvents:",NE),n(100,Le=!1),await Te(!0,null)},fe,he,pe,ge,function(){console.log("selectRecoveryKind called, recoverySelectedKind:",ie),null!=ie?(n(37,oe=""),n(38,se=[]),ce=null,n(40,le=!0),he()):console.log("No kind selected, skipping load")},function(){console.log("handleCustomKindInput called, recoveryCustomKind:",oe);const e=parseInt(oe);""!==oe&&!isNaN(e)&&e>=0&&(n(36,ie=null),n(38,se=[]),ce=null,n(40,le=!0),he())},function(e){const t=se.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(23,H=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Me("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(20,O=t.script_content||""),n(21,M=t),ke("Script loaded successfully","success")}else ke("Failed to load script","error")}catch(e){ke(`Error loading script: ${e.message}`,"error")}finally{n(23,H=!1)}},async function(){if(u&&"owner"===p)try{n(23,H=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Me("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:O});if(e.ok)ke("Script saved and updated successfully","success"),await we(),await ve();else{ke(`Failed to save script: ${await e.text()}`,"error")}}catch(e){ke(`Error saving script: ${e.message}`,"error")}finally{n(23,H=!1)}},async function(){if(u&&"owner"===p)try{n(23,H=!0);const e=await fetch("/api/sprocket/restart",{method:"POST",headers:{Authorization:`Nostr ${await Me("POST","/api/sprocket/restart")}`,"Content-Type":"application/json"}});if(e.ok)ke("Sprocket restarted successfully","success"),await we();else{ke(`Failed to restart sprocket: ${await e.text()}`,"error")}}catch(e){ke(`Error restarting sprocket: ${e.message}`,"error")}finally{n(23,H=!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(23,H=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Me("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:""});if(e.ok)n(20,O=""),ke("Sprocket script deleted successfully","success"),await we(),await ve();else{ke(`Failed to delete script: ${await e.text()}`,"error")}}catch(e){ke(`Error deleting script: ${e.message}`,"error")}finally{n(23,H=!1)}},ve,Ae,be,async function(){if(u&&("owner"===p||LE))try{n(28,Y=!0),n(31,Z=[]);const e={kinds:[12345],limit:1},t=await Jh(e);if(t&&t.length>0){n(27,J=t[0].content);try{n(27,J=JSON.stringify(JSON.parse(J),null,2))}catch(e){}Ie("Policy loaded successfully","success")}else{const e=await fetch("/api/policy",{method:"GET",headers:{Authorization:`Nostr ${await Me("GET","/api/policy")}`,"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(27,J=JSON.stringify(t,null,2)),Ie("Policy loaded from file","success")}else Ie("No policy configuration found","info"),n(27,J="")}}catch(e){Ie(`Error loading policy: ${e.message}`,"error")}finally{n(28,Y=!1)}},Ee,async function(){if(!u||"owner"!==p&&!LE)return;if(await Ee())try{n(28,Y=!0);const e={kind:12345,created_at:Math.floor(Date.now()/1e3),tags:[],content:J},t=await NI(e,g);t.success?Ie("Policy updated successfully","success"):Ie(`Failed to publish policy: ${t.error||"Unknown error"}`,"error")}catch(e){Ie(`Error saving policy: ${e.message}`,"error")}finally{n(28,Y=!1)}},function(){try{const e=JSON.parse(J);n(27,J=JSON.stringify(e,null,2)),Ie("JSON formatted","success")}catch(e){Ie(`Cannot format: ${e.message}`,"error")}},function(e){const t=e.detail;if(!t)return void Ie("Please enter a pubkey","error");const r=function(e){if(!e)return null;if(/^[0-9a-fA-F]{64}$/.test(e))return e.toLowerCase();if(e.startsWith("npub1"))try{const t="qpzry9x8gf2tvdw0s3jn54khce6mua7l",n=e.slice(5);let r=[];for(const e of n){const n=t.indexOf(e.toLowerCase());if(-1===n)throw new Error("Invalid character in npub");r.push(...[...Array(5)].map((e,t)=>n>>4-t&1))}r=r.slice(0,-30);const i=[];for(let e=0;e+8<=r.length;e+=8){let t=0;for(let n=0;n<8;n++)t=t<<1|r[e+n];i.push(t)}return i.map(e=>e.toString(16).padStart(2,"0")).join("")}catch(e){return console.error("Failed to decode npub:",e),null}return null}(t);if(r&&64===r.length)try{const e=JSON.parse(J||"{}");if(e.policy_admins||(e.policy_admins=[]),e.policy_admins.includes(r))return void Ie("Admin already in list","warning");e.policy_admins.push(r),n(27,J=JSON.stringify(e,null,2)),Ie("Admin added - click 'Save & Publish' to apply","info")}catch(e){Ie(`Error adding admin: ${e.message}`,"error")}else Ie("Invalid pubkey format. Use hex (64 chars) or npub","error")},function(e){const t=e.detail;try{const e=JSON.parse(J||"{}");e.policy_admins&&(e.policy_admins=e.policy_admins.filter(e=>e!==t),n(27,J=JSON.stringify(e,null,2)),Ie("Admin removed - click 'Save & Publish' to apply","info"))}catch(e){Ie(`Error removing admin: ${e.message}`,"error")}},async function(){if(u&&("owner"===p||LE))try{n(28,Y=!0),n(32,X=[]);let e=[];try{e=JSON.parse(J||"{}").policy_admins||[]}catch(e){return void Ie("Cannot parse policy JSON to get admins","error")}if(0===e.length)return void Ie("No policy admins configured","warning");const t={kinds:[3],authors:e,limit:e.length},r=await Jh(t),i=new Set;for(const e of r)if(e.tags)for(const t of e.tags)"p"===t[0]&&t[1]&&64===t[1].length&&i.add(t[1]);n(32,X=Array.from(i)),Ie(`Loaded ${X.length} follows from ${r.length} admin(s)`,"success")}catch(e){Ie(`Error loading follows: ${e.message}`,"error")}finally{n(28,Y=!1)}},function(e){n(26,K=e.target.files[0])},async function(){if(u&&"owner"===p&&K)try{n(23,H=!0);const e=await K.text(),t=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Me("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:e});if(t.ok)n(20,O=e),ke("Script uploaded and updated successfully","success"),await we(),await ve();else{ke(`Failed to upload script: ${await t.text()}`,"error")}}catch(e){ke(`Error uploading script: ${e.message}`,"error")}finally{n(23,H=!1),n(26,K=null);const e=document.getElementById("sprocket-upload-file");e&&(e.value="")}},xe,function(){u||n(12,c=!0)},async function(e){const{method:t,pubkey:r,privateKey:i,signer:o}=e.detail;n(1,u=!0),n(2,d=r),f=t,n(13,g=o),n(12,c=!1),n(14,m="nsec"===t&&i?i:null);try{if(await Kh(),"extension"===t&&o)Rh.setSigner(o);else if("nsec"===t&&i){const e=new Sf(i);Rh.setSigner(e)}n(3,h=await _h(r)),console.log("Profile loaded:",h)}catch(e){console.error("Failed to load profile:",e)}await $e(),await Pe()},function(){n(1,u=!1),n(2,d=""),f="",n(3,h=null),n(4,p=""),n(13,g=null),n(14,m=null),n(15,y=!1),U=[],n(97,k=[]),$=[],P=0,me(),"undefined"!=typeof localStorage&&(localStorage.removeItem("nostr_auth_method"),localStorage.removeItem("nostr_pubkey"),localStorage.removeItem("nostr_privkey"))},function(){n(12,c=!1)},function(){n(15,y=!0)},Be,function(){n(16,v=!v)},function(e){const{searchText:t,selectedKinds:n,pubkeys:r,eventIds:i,tags:o,sinceTimestamp:s,untilTimestamp:a,limit:l}=e.detail,c=function({searchText:e=null,kinds:t=[],authors:n=[],ids:r=[],tags:i=[],since:o=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),i&&i.length>0&&i.forEach(e=>{if(e.name&&e.value){const t=`#${e.name}`;l[t]||(l[t]=[]),l[t].push(e.value)}}),o&&(l.since=o),s&&(l.until=s),a&&a>0&&(l.limit=a),l}({searchText:t,kinds:n,authors:r,ids:i,tags:o,since:s,until:a,limit:l||100});A=c,Te(!0,null)},function(){A={},Te(!0,null)},Se,Fe,Qe,De,Re,async function(){await Ue([])},async function(){await Ue([d])},function(e){n(17,E=e.detail.target.files[0])},async function(){if("none"!==ee&&(!u||"admin"!==p&&"owner"!==p))return n(18,C="Admin or owner permission required"),void setTimeout(()=>{n(18,C="")},5e3);if(!E)return n(18,C="Please select a file"),void setTimeout(()=>{n(18,C="")},5e3);try{n(18,C="Uploading...");const e={};"none"!==ee&&u&&(e.Authorization=await Oe("/api/import","POST"));const t=new FormData;t.append("file",E);const r=await fetch("/api/import",{method:"POST",headers:e,body:t});if(!r.ok)throw new Error(`Import failed: ${r.status} ${r.statusText}`);await r.json();n(18,C="Upload complete"),n(17,E=null),document.getElementById("import-file").value="",setTimeout(()=>{n(18,C="")},5e3)}catch(e){console.error("Import failed:",e),n(18,C="Import failed: "+e.message),setTimeout(()=>{n(18,C="")},5e3)}},Te,function(e){const{scrollTop:t,scrollHeight:n,clientHeight:r}=e.target;n-t-r<100&&Ne()},function(){try{if(!ne.trim())return void alert("Please enter some JSON to reformat");const e=JSON.parse(ne);n(34,ne=JSON.stringify(e,null,2))}catch(e){alert("Invalid JSON: "+e.message)}},async function(){try{if(!ne.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(ne);e.pubkey=d,e.created_at=Math.floor(Date.now()/1e3),delete e.id,delete e.sig;const t=await g.signEvent(e);n(34,ne=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(){n(35,re="");try{if(!ne.trim())return void n(35,re="Please enter an event to publish");if(!u)return void n(35,re="Please log in to publish events");if(!g)return void n(35,re="No signer available. Please log in with a valid authentication method.");let e;try{e=JSON.parse(ne)}catch(e){return void n(35,re=`Invalid JSON: ${e.message}`)}if(!e.id||!e.sig)return void n(35,re='Event must be signed before publishing. Please click "Sign" first.');if("read"===p)return void n(35,re=`Permission denied: Your current role is "${p}" which does not allow publishing events. Contact a relay administrator to upgrade your permissions.`);const t=`${window.location.protocol.startsWith("https")?"wss:":"ws:"}//${window.location.host}/`,r=await NI(t,e,g,d);if(r.success)n(35,re=""),alert("Event published successfully to ORLY relay!");else{const t=r.reason||"Unknown error";n(35,re=_e(t,e.kind))}}catch(e){console.error("Error publishing event:",e);const t=e.message||"Unknown error";n(35,re=_e(t,null))}},function(){n(35,re="")},He,function(){const e=["owner","admin","write","read"],t=e.indexOf(p);return-1===t?["read"]:e.slice(t)},k,D,q,Le,o,function(t){T.call(this,e,t)},function(t){T.call(this,e,t)},e=>e.id===w,e=>xe(e.detail),e=>Fe(e.detail),e=>ue(e.detail),e=>fe(e.detail),e=>de(e.detail.event,e.detail.e),e=>Te(e.detail.refresh,e.detail.authors),function(e){ne=e,n(34,ne)},function(e){O=e,n(20,O)},e=>Ae(e.detail),e=>be(e.detail),function(e){J=e,n(27,J)},function(){ie=S(this),n(36,ie)},function(){oe=I(this.value),n(37,oe)},e=>ge(e),e=>pe(e),(e,t)=>de(e,t),e=>Qe(e.id,!0),e=>Se(e.id),e=>fe(e.id),e=>ue(e.id),(e,t)=>"Enter"===t.key&&ue(e.id),(e,t)=>de(e,t),(e,t)=>De(t,e.id),e=>He(e===p?"":e),e=>"Escape"===e.key&&Be(),function(e){c=e,n(12,c)}]}return new class extends ce{constructor(e){super(),le(this,e,OE,TE,o,{},null,[-1,-1,-1,-1,-1,-1])}}({target:document.body,props:{name:"world"}})}();
|
||
//# sourceMappingURL=bundle.js.map
|