smesh-signer-extension.js raw
1 (()=>{"use strict";function y(e,n,r,d,o,c,u){try{var p=e[c](u),l=p.value}catch(w){return void r(w)}p.done?n(l):Promise.resolve(l).then(d,o)}function s(e){return function(){var n=this,r=arguments;return new Promise(function(d,o){var c=e.apply(n,r);function u(l){y(c,d,o,u,p,"next",l)}function p(l){y(c,d,o,u,p,"throw",l)}u(void 0)})}}const i={messenger:new class f{#e=new Map;constructor(){window.addEventListener("message",this.#n.bind(this))}request(n,r){var d=this;return s(function*(){const o=function m(){if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=15&e[6]|64,e[8]=63&e[8]|128;const n=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}();return new Promise((c,u)=>{d.#e.set(o,{resolve:c,reject:u}),window.postMessage({id:o,ext:"smesh-signer",method:n,params:r},"*")})})()}#n(n){!n.data||null==n.data.response||"smesh-signer"!==n.data.ext||!this.#e.has(n.data.id)||(n.data.response.error?this.#e.get(n.data.id)?.reject(n.data.response.error):this.#e.get(n.data.id)?.resolve(n.data.response),this.#e.delete(n.data.id))}},getPublicKey(){var e=this;return s(function*(){t("getPublicKey received");const n=yield e.messenger.request("getPublicKey",{});return t("getPublicKey response:"),t(n),n})()},signEvent(e){var n=this;return s(function*(){t("signEvent received");const r=yield n.messenger.request("signEvent",e);return t("signEvent response:"),t(r),r})()},getRelays(){var e=this;return s(function*(){t("getRelays received");const n=yield e.messenger.request("getRelays",{});return t("getRelays response:"),t(n),n})()},nip04:{that:void 0,encrypt:(e,n)=>s(function*(){t("nip04.encrypt received");const r=yield i.messenger.request("nip04.encrypt",{peerPubkey:e,plaintext:n});return t("nip04.encrypt response:"),t(r),r})(),decrypt:(e,n)=>s(function*(){t("nip04.decrypt received");const r=yield i.messenger.request("nip04.decrypt",{peerPubkey:e,ciphertext:n});return t("nip04.decrypt response:"),t(r),r})()},nip44:{encrypt:(e,n)=>s(function*(){t("nip44.encrypt received");const r=yield i.messenger.request("nip44.encrypt",{peerPubkey:e,plaintext:n});return t("nip44.encrypt response:"),t(r),r})(),decrypt:(e,n)=>s(function*(){t("nip44.decrypt received");const r=yield i.messenger.request("nip44.decrypt",{peerPubkey:e,ciphertext:n});return t("nip44.decrypt response:"),t(r),r})()},mls:{init:(e,n)=>s(function*(){t("mls.init received"),window._nostrMlsRelays=e,window.dispatchEvent(new CustomEvent("nostr-mls",{detail:{cmd:"relays",relays:e}}));const r=yield i.messenger.request("mls.init",{relayURLs:e,lastEventTS:n||0});return t("mls.init result: "+r),r})(),sendDM:(e,n)=>s(function*(){t("mls.sendDM received: "+e.slice(0,8)+"...");const r=yield i.messenger.request("mls.sendDM",{recipient:e,content:n});return t("mls.sendDM result: "+r),r})(),subscribe:()=>s(function*(){return t("mls.subscribe received"),yield i.messenger.request("mls.subscribe",{})})(),publishKP:()=>s(function*(){return t("mls.publishKP received"),yield i.messenger.request("mls.publishKP",{})})(),listGroups:()=>s(function*(){return yield i.messenger.request("mls.listGroups",{})})(),deliverEvent:(e,n)=>s(function*(){return yield i.messenger.request("mls.deliverEvent",{subId:e,eventJSON:n})})(),backupGroups:()=>s(function*(){return yield i.messenger.request("mls.backupGroups",{})})(),restoreGroups:()=>s(function*(){return yield i.messenger.request("mls.restoreGroups",{})})(),ratchetGroup:e=>s(function*(){return yield i.messenger.request("mls.ratchetGroup",{peerHex:e})})()}};window.nostr=i;const a=i.messenger,v={enabled:!1,enable(){var e=this;return s(function*(){t("webln.enable received"),yield a.request("webln.enable",{}),e.enabled=!0,t("webln.enable completed"),window.dispatchEvent(new Event("webln:enabled"))})()},getInfo:()=>s(function*(){t("webln.getInfo received");const e=yield a.request("webln.getInfo",{});return t("webln.getInfo response:"),t(e),e})(),sendPayment:e=>s(function*(){t("webln.sendPayment received");const n=yield a.request("webln.sendPayment",{paymentRequest:e});return t("webln.sendPayment response:"),t(n),n})(),keysend:e=>s(function*(){t("webln.keysend received");const n=yield a.request("webln.keysend",e);return t("webln.keysend response:"),t(n),n})(),makeInvoice:e=>s(function*(){let n;t("webln.makeInvoice received"),n="string"==typeof e||"number"==typeof e?{amount:e}:e;const r=yield a.request("webln.makeInvoice",n);return t("webln.makeInvoice response:"),t(r),r})(),signMessage(){throw new Error("signMessage is not supported - NWC does not provide node signing capabilities")},verifyMessage(){throw new Error("verifyMessage is not supported - NWC does not provide message verification")}};window.webln=v,document.dispatchEvent(new Event("webln:ready")),window.addEventListener("message",e=>{"smesh-signer"!==e.data?.ext||"mls-push"!==e.data?.type||window.dispatchEvent(new CustomEvent("nostr-mls",{detail:e.data.data}))});const t=function(e){console.log("[signer]","string"==typeof e?e:JSON.stringify(e))}})();