1eeb9b415fe31eb6273dd5a384267edc3db5df262a14bff853a803140f139220.json raw
1 {"ast":null,"code":"import _asyncToGenerator from \"/home/mleku/src/orly.dev/next/signer/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport browser from 'webextension-polyfill';\n/**\n * Decode base64 string to UTF-8 using native browser APIs.\n * This avoids race conditions with the Buffer polyfill initialization.\n */\nfunction base64ToUtf8(base64) {\n const binaryString = atob(base64);\n const bytes = Uint8Array.from(binaryString, char => char.charCodeAt(0));\n return new TextDecoder('utf-8').decode(bytes);\n}\nconst params = new URLSearchParams(location.search);\nconst id = params.get('id');\nconst method = params.get('method');\nconst host = params.get('host');\nconst nick = params.get('nick');\nlet event = '{}';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet eventParsed = {};\ntry {\n event = base64ToUtf8(params.get('event'));\n eventParsed = JSON.parse(event);\n} catch (e) {\n console.error('Failed to parse event:', e);\n}\nlet title = '';\nswitch (method) {\n case 'getPublicKey':\n title = 'Get Public Key';\n break;\n case 'signEvent':\n title = 'Sign Event';\n break;\n case 'nip04.encrypt':\n title = 'Encrypt';\n break;\n case 'nip44.encrypt':\n title = 'Encrypt';\n break;\n case 'nip04.decrypt':\n title = 'Decrypt';\n break;\n case 'nip44.decrypt':\n title = 'Decrypt';\n break;\n case 'getRelays':\n title = 'Get Relays';\n break;\n case 'webln.enable':\n title = 'Enable WebLN';\n break;\n case 'webln.getInfo':\n title = 'Wallet Info';\n break;\n case 'webln.sendPayment':\n title = 'Send Payment';\n break;\n case 'webln.makeInvoice':\n title = 'Create Invoice';\n break;\n case 'webln.keysend':\n title = 'Keysend Payment';\n break;\n default:\n break;\n}\nconst titleSpanElement = document.getElementById('titleSpan');\nif (titleSpanElement) {\n titleSpanElement.innerText = title;\n}\nArray.from(document.getElementsByClassName('nick-INSERT')).forEach(element => {\n element.innerText = nick;\n});\nArray.from(document.getElementsByClassName('host-INSERT')).forEach(element => {\n element.innerText = host;\n});\nconst kindSpanElement = document.getElementById('kindSpan');\nif (kindSpanElement && eventParsed.kind !== undefined) {\n kindSpanElement.innerText = eventParsed.kind;\n}\nconst cardGetPublicKeyElement = document.getElementById('cardGetPublicKey');\nif (cardGetPublicKeyElement) {\n if (method === 'getPublicKey') {\n // Do nothing.\n } else {\n cardGetPublicKeyElement.style.display = 'none';\n }\n}\nconst cardGetRelaysElement = document.getElementById('cardGetRelays');\nif (cardGetRelaysElement) {\n if (method === 'getRelays') {\n // Do nothing.\n } else {\n cardGetRelaysElement.style.display = 'none';\n }\n}\nconst cardSignEventElement = document.getElementById('cardSignEvent');\nconst card2SignEventElement = document.getElementById('card2SignEvent');\nif (cardSignEventElement && card2SignEventElement) {\n if (method === 'signEvent') {\n const card2SignEvent_jsonElement = document.getElementById('card2SignEvent_json');\n if (card2SignEvent_jsonElement) {\n card2SignEvent_jsonElement.innerText = event;\n }\n } else {\n cardSignEventElement.style.display = 'none';\n card2SignEventElement.style.display = 'none';\n }\n}\nconst cardNip04EncryptElement = document.getElementById('cardNip04Encrypt');\nconst card2Nip04EncryptElement = document.getElementById('card2Nip04Encrypt');\nif (cardNip04EncryptElement && card2Nip04EncryptElement) {\n if (method === 'nip04.encrypt') {\n const card2Nip04Encrypt_textElement = document.getElementById('card2Nip04Encrypt_text');\n if (card2Nip04Encrypt_textElement) {\n const eventObject = eventParsed;\n card2Nip04Encrypt_textElement.innerText = eventObject.plaintext || '';\n }\n } else {\n cardNip04EncryptElement.style.display = 'none';\n card2Nip04EncryptElement.style.display = 'none';\n }\n}\nconst cardNip44EncryptElement = document.getElementById('cardNip44Encrypt');\nconst card2Nip44EncryptElement = document.getElementById('card2Nip44Encrypt');\nif (cardNip44EncryptElement && card2Nip44EncryptElement) {\n if (method === 'nip44.encrypt') {\n const card2Nip44Encrypt_textElement = document.getElementById('card2Nip44Encrypt_text');\n if (card2Nip44Encrypt_textElement) {\n const eventObject = eventParsed;\n card2Nip44Encrypt_textElement.innerText = eventObject.plaintext || '';\n }\n } else {\n cardNip44EncryptElement.style.display = 'none';\n card2Nip44EncryptElement.style.display = 'none';\n }\n}\nconst cardNip04DecryptElement = document.getElementById('cardNip04Decrypt');\nconst card2Nip04DecryptElement = document.getElementById('card2Nip04Decrypt');\nif (cardNip04DecryptElement && card2Nip04DecryptElement) {\n if (method === 'nip04.decrypt') {\n const card2Nip04Decrypt_textElement = document.getElementById('card2Nip04Decrypt_text');\n if (card2Nip04Decrypt_textElement) {\n const eventObject = eventParsed;\n card2Nip04Decrypt_textElement.innerText = eventObject.ciphertext || '';\n }\n } else {\n cardNip04DecryptElement.style.display = 'none';\n card2Nip04DecryptElement.style.display = 'none';\n }\n}\nconst cardNip44DecryptElement = document.getElementById('cardNip44Decrypt');\nconst card2Nip44DecryptElement = document.getElementById('card2Nip44Decrypt');\nif (cardNip44DecryptElement && card2Nip44DecryptElement) {\n if (method === 'nip44.decrypt') {\n const card2Nip44Decrypt_textElement = document.getElementById('card2Nip44Decrypt_text');\n if (card2Nip44Decrypt_textElement) {\n const eventObject = eventParsed;\n card2Nip44Decrypt_textElement.innerText = eventObject.ciphertext || '';\n }\n } else {\n cardNip44DecryptElement.style.display = 'none';\n card2Nip44DecryptElement.style.display = 'none';\n }\n}\n// WebLN card visibility\nconst cardWeblnEnableElement = document.getElementById('cardWeblnEnable');\nif (cardWeblnEnableElement) {\n if (method !== 'webln.enable') {\n cardWeblnEnableElement.style.display = 'none';\n }\n}\nconst cardWeblnGetInfoElement = document.getElementById('cardWeblnGetInfo');\nif (cardWeblnGetInfoElement) {\n if (method !== 'webln.getInfo') {\n cardWeblnGetInfoElement.style.display = 'none';\n }\n}\nconst cardWeblnSendPaymentElement = document.getElementById('cardWeblnSendPayment');\nconst card2WeblnSendPaymentElement = document.getElementById('card2WeblnSendPayment');\nif (cardWeblnSendPaymentElement && card2WeblnSendPaymentElement) {\n if (method === 'webln.sendPayment') {\n // Display amount in sats\n const paymentAmountSpan = document.getElementById('paymentAmountSpan');\n if (paymentAmountSpan && eventParsed.amountSats !== undefined) {\n paymentAmountSpan.innerText = `${eventParsed.amountSats.toLocaleString()} sats`;\n } else if (paymentAmountSpan) {\n paymentAmountSpan.innerText = 'unknown amount';\n }\n // Show invoice in json card\n const card2WeblnSendPayment_jsonElement = document.getElementById('card2WeblnSendPayment_json');\n if (card2WeblnSendPayment_jsonElement && eventParsed.paymentRequest) {\n card2WeblnSendPayment_jsonElement.innerText = eventParsed.paymentRequest;\n }\n } else {\n cardWeblnSendPaymentElement.style.display = 'none';\n card2WeblnSendPaymentElement.style.display = 'none';\n }\n}\nconst cardWeblnMakeInvoiceElement = document.getElementById('cardWeblnMakeInvoice');\nif (cardWeblnMakeInvoiceElement) {\n if (method === 'webln.makeInvoice') {\n const invoiceAmountSpan = document.getElementById('invoiceAmountSpan');\n if (invoiceAmountSpan) {\n const amount = eventParsed.amount ?? eventParsed.defaultAmount;\n if (amount) {\n invoiceAmountSpan.innerText = ` for ${Number(amount).toLocaleString()} sats`;\n }\n }\n } else {\n cardWeblnMakeInvoiceElement.style.display = 'none';\n }\n}\nconst cardWeblnKeysendElement = document.getElementById('cardWeblnKeysend');\nif (cardWeblnKeysendElement) {\n if (method !== 'webln.keysend') {\n cardWeblnKeysendElement.style.display = 'none';\n }\n}\n//\n// Functions\n//\nfunction deliver(_x) {\n return _deliver.apply(this, arguments);\n}\nfunction _deliver() {\n _deliver = _asyncToGenerator(function* (response) {\n const message = {\n id,\n response\n };\n try {\n yield browser.runtime.sendMessage(message);\n } catch (error) {\n console.error('Failed to send message:', error);\n }\n window.close();\n });\n return _deliver.apply(this, arguments);\n}\ndocument.addEventListener('DOMContentLoaded', function () {\n const rejectOnceButton = document.getElementById('rejectOnceButton');\n rejectOnceButton?.addEventListener('click', () => {\n deliver('reject-once');\n });\n const rejectAlwaysButton = document.getElementById('rejectAlwaysButton');\n rejectAlwaysButton?.addEventListener('click', () => {\n deliver('reject');\n });\n const approveOnceButton = document.getElementById('approveOnceButton');\n approveOnceButton?.addEventListener('click', () => {\n deliver('approve-once');\n });\n const approveAlwaysButton = document.getElementById('approveAlwaysButton');\n approveAlwaysButton?.addEventListener('click', () => {\n deliver('approve');\n });\n const rejectAllButton = document.getElementById('rejectAllButton');\n rejectAllButton?.addEventListener('click', () => {\n deliver('reject-all');\n });\n const approveAllButton = document.getElementById('approveAllButton');\n approveAllButton?.addEventListener('click', () => {\n deliver('approve-all');\n });\n // Show/hide \"All Queued\" row based on queue size\n const queueSize = parseInt(params.get('queueSize') || '0', 10);\n const allQueuedRow = document.getElementById('allQueuedRow');\n if (allQueuedRow && queueSize <= 1) {\n allQueuedRow.style.display = 'none';\n }\n});","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}