diff --git a/bot/commands.ts b/bot/commands.ts index 6e998f20..ace76179 100644 --- a/bot/commands.ts +++ b/bot/commands.ts @@ -4,6 +4,7 @@ import { subscribeInvoice, cancelHoldInvoice, settleHoldInvoice, + getInvoice, } from '../ln'; import { Order, User, Dispute } from '../models'; import * as messages from './messages'; @@ -13,12 +14,10 @@ import * as OrderEvents from './modules/events/orders'; import { resolvLightningAddress } from '../lnurl/lnurl-pay'; import { logger } from '../logger'; -import { Telegraf } from 'telegraf'; import { IOrder } from '../models/order'; import { UserDocument } from '../models/user'; import { HasTelegram, MainContext } from './start'; import { CommunityContext } from './modules/community/communityContext'; -import { Types } from 'mongoose'; const waitPayment = async (ctx: MainContext, bot: HasTelegram, buyer: UserDocument, seller: UserDocument, order: IOrder, buyerInvoice: any) => { try { @@ -55,7 +54,7 @@ const waitPayment = async (ctx: MainContext, bot: HasTelegram, buyer: UserDocume fiatAmount: order.fiat_amount, }); const amount = Math.floor(order.amount + order.fee); - const { request, hash, secret } = await createHoldInvoice({ + const { _request, hash, secret } = await createHoldInvoice({ amount, description, }); @@ -74,7 +73,6 @@ const waitPayment = async (ctx: MainContext, bot: HasTelegram, buyer: UserDocume await messages.invoicePaymentRequestMessage( ctx, seller, - request, order, i18nCtx, buyer @@ -618,14 +616,14 @@ const cancelOrder = async (ctx: CommunityContext, orderId: string, user: UserDoc return await cancelAddInvoice(ctx, order); } - // If a seller is taking a buy offer and accidentally touch continue button we - // let the user to cancel - if (order.type === 'buy' && order.status === 'WAITING_PAYMENT') { + // let the user to cancel if the order is waiting for payment + if (order.status === 'WAITING_PAYMENT') { return await cancelShowHoldInvoice(ctx, order); } - if (order.status === 'CANCELED') + if (order.status === 'CANCELED') { return await messages.orderIsAlreadyCanceledMessage(ctx); + } if ( !( @@ -772,6 +770,38 @@ const release = async (ctx: MainContext, orderId: string, user: UserDocument | n } }; +const showQrCode = async (ctx: MainContext, orderId: string, user: UserDocument | null = null) => { + try { + if (!user) { + const tgUser = (ctx.update as any).callback_query.from; + if (!tgUser) return; + + user = await User.findOne({ tg_id: tgUser.id }); + + // If user didn't initialize the bot we can't do anything + if (!user) return; + } + if (user.banned) return await messages.bannedUserErrorMessage(ctx, user); + const order = await ordersActions.getOrder(ctx, user, orderId); + + if (!order) return; + + if (!order.hash) return; + + const invoice = await getInvoice({ hash: order.hash }); + + return await messages.showQRCodeMessage( + ctx, + order, + invoice.request, + user, + ); + + } catch (error) { + logger.error(error); + } +}; + export { rateUser, saveUserReview, @@ -784,4 +814,5 @@ export { cancelOrder, fiatSent, release, + showQrCode, }; diff --git a/bot/messages.ts b/bot/messages.ts index 0df3cbe7..7946ad77 100644 --- a/bot/messages.ts +++ b/bot/messages.ts @@ -61,7 +61,6 @@ const initBotErrorMessage = async (ctx: MainContext, bot: MainContext, user: Use const invoicePaymentRequestMessage = async ( ctx: MainContext, user: UserDocument, - request: string, order: IOrder, i18n: I18nContext, buyer: UserDocument @@ -77,7 +76,8 @@ const invoicePaymentRequestMessage = async ( // We need the buyer rating const stars = getEmojiRate(buyer.total_rating); const roundedRating = decimalRound(buyer.total_rating, -1); - const rate = `${roundedRating} ${stars} (${buyer.total_reviews})`; + let rate = `${roundedRating} ${stars} (${buyer.total_reviews})`; + rate = sanitizeMD(rate); // Extracting the buyer's days in the platform const ageInDays = getUserAge(buyer); @@ -89,8 +89,34 @@ const invoicePaymentRequestMessage = async ( days: ageInDays, }); - await ctx.telegram.sendMessage(user.tg_id, message); + await ctx.telegram.sendMessage(user.tg_id, message, { parse_mode: 'MarkdownV2' }); + + await ctx.telegram.sendMessage(user.tg_id, order._id, { + reply_markup: { + inline_keyboard: [ + [ + { text: ctx.i18n.t('continue'), callback_data: `showqrcode_${order._id}`, }, + { + text: ctx.i18n.t('cancel'), + callback_data: `cancel_${order._id}`, + }, + ], + ], + }, + }); + } catch (error) { + logger.error(error); + } +}; +const showQRCodeMessage = async ( + ctx: MainContext, + order: IOrder, + request: string, + user: UserDocument +) => { + try { + // // Create QR code const qrBytes = await generateQRWithImage(request, order.random_image); // Send payment request in QR and text @@ -121,6 +147,7 @@ const pendingSellMessage = async (ctx: MainContext, user: UserDocument, order: I type: 'photo', media: { source: Buffer.from(order.random_image, 'base64') }, caption: pendingSellCaption, + parse_mode: 'MarkdownV2', }] ); @@ -1774,4 +1801,5 @@ export { showConfirmationButtons, counterPartyCancelOrderMessage, checkInvoiceMessage, + showQRCodeMessage, }; diff --git a/bot/start.ts b/bot/start.ts index 28a21e7e..7d89ad7d 100644 --- a/bot/start.ts +++ b/bot/start.ts @@ -39,6 +39,7 @@ import { cancelOrder, fiatSent, release, + showQrCode, } from './commands'; import { settleHoldInvoice, @@ -828,6 +829,14 @@ const initialize = (botToken: string, options: Partial { + if (ctx.match === null) { + throw new Error("ctx.match should not be null"); + } + ctx.deleteMessage(); + await showQrCode(ctx, ctx.match[1]); + }); + bot.command('paytobuyer', adminMiddleware, async (ctx: MainContext) => { try { const [orderId] = (await validateParams(ctx, 2, '\\<_order id_\\>'))!; diff --git a/locales/de.yaml b/locales/de.yaml index 1829e061..1f27d305 100644 --- a/locales/de.yaml +++ b/locales/de.yaml @@ -34,21 +34,30 @@ start: | init_bot_error: Um diesen Bot zu verwenden, musst du zuerst den Boot mit dem Befehl /start initialisieren non_handle_error: 👤 Um diesen Bot zu nutzen, musst du deinen Telegram-Benutzernamen aktivieren. Um ihn zu aktivieren, öffne das Hamburger-Menü oben links und wähle Einstellungen -> Profil bearbeiten -> Benutzernamen invoice_payment_request: | - Jemand möchte ${order.amount} Sats für ${currency} ${order.fiat_amount} kaufen. + Ein Benutzer möchte ${order.amount} sats für ${currency} ${order.fiat_amount} von dir kaufen - Buyer Reputation: ${rate}, Tage mit dem Bot: ${days} + Ruf des Käufers: ${rate}, Tage der Nutzung des Bots: ${days} - Hinweis: Vergewissern Sie sich vor der Zahlung der Rechnung, dass das beigefügte Bild mit dem bei der Bestellung gesendeten Bild übereinstimmt + 🚨🚨🚨 *ACHTUNG:* 🚨🚨🚨 + *Bevor du auf den Button "Weiter" drückst, GEHE ZURÜCK UND ÜBERPRÜFE NOCH EINMAL DAS BILD, das mit diesem Auftrag verknüpft ist* + + Wenn du auf den Button "Weiter" drückst, wirst du einen QR Code mit einem Bild im Zentrum sehen, bestätige, dass die Bilder übereinstimmen, bevor du die Rechnung bezahlst - Bitte bezahle diese LN-Rechnung, um deinen Verkaufsprozess zu starten. Diese LN-Rechnung läuft in ${expirationTime} Minuten ab + *Wenn sie nicht übereinstimmen, ist diese Rechnung nicht von @lnp2pbot, BEZAHLEN SIE NICHT die Rechnung* + + Entscheide, wie du weiter verfahren möchtest 👇 pending_sell: | - 📝 Dein Angebot wurde im Kanal ${channel} veröffentlicht + 📝 Angebot im ${channel} Kanal veröffentlicht - Du musst warten, bis ein anderer Nutzer deinen Auftrag auswählt. Sie wird für ${orderExpirationWindow} Stunden im Kanal verfügbar sein + Warte darauf, dass jemand deinen Verkauf übernimmt, wenn der Auftrag innerhalb von ${orderExpirationWindow} Stunden nicht übernommen wird, wird er aus dem Kanal gelöscht - Hinweis: Merken Sie sich dieses Bild, da Sie es später in der Zahlungsrechnung wiedersehen werden + *🚨 ERINNERE DICH AN DIESES BILD, da du es erneut in der zu bezahlenden Rechnung sehen wirst* - Bevor ein anderer Benutzer dein Angebot annimmt, kannst du diesen mit dem folgenden Befehl stornieren 👇 + *Weder die Entwickler noch die Streitbeilegungs Schiedsrichter sind verantwortlich für Verluste oder Schäden, die dem Benutzer entstehen, wenn er die Anweisungen nicht befolgt* + + Durch das Starten des Bots akzeptiert der Benutzer die Nutzungsbedingungen sowie die Datenschutzrichtlinie, weitere Informationen findest du unter /disclaimer + + Du kannst diese Bestellung stornieren, bevor sie jemand übernimmt, indem du 👇 ausführst cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/en.yaml b/locales/en.yaml index 1dd1cb3c..c103b6be 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -36,21 +36,30 @@ start: | init_bot_error: to use this bot, you need to first initialize the boot with the command /start non_handle_error: 👤 To use this bot, you need to activate your Telegram Username. To activate it open the hamburger menu on the top left and select settings -> edit profile -> username invoice_payment_request: | - Somebody wants to buy you ${order.amount} sats for ${currency} ${order.fiat_amount}. + A user wants to buy ${order.amount} sats from you for ${currency} ${order.fiat_amount} - Buyer Reputation: ${rate}, days using the bot: ${days} + Buyer's reputation: ${rate}, days using the bot: ${days} - Note: Confirm that the attached image matches the one sent during order creation before paying the invoice + 🚨🚨🚨 *ATTENTION:* 🚨🚨🚨 + *Before pressing the "Continue" button, GO BACK AND CHECK AGAIN THE IMAGE associated with this order* + + By pressing the "Continue" button, you will see a QR code with an image in the center, make sure the images match before paying the invoice - Please pay this invoice to start up your selling process, it will expire in ${expirationTime} minutes + *If they don't match, that invoice is not from @lnp2pbot, DO NOT PAY the invoice* + + Decide how you want to proceed 👇 pending_sell: | - 📝 Your offer has been published in the ${channel} channel + 📝 Offer posted in the ${channel} channel - You have to wait until another user picks your order, it will be available for ${orderExpirationWindow} hours in the channel + Wait for someone to take your sale, if the order is not taken within ${orderExpirationWindow} hours, it will be deleted from the channel - Note: Remember this image because you will see it again inside the invoice to pay + *🚨 REMEMBER THIS IMAGE because you will see it again in the invoice to be paid* - You can cancel this order before another user picks it up by executing the command 👇 + *Neither the developers nor the dispute arbitrators are responsible for any loss or damage the user may suffer if they do not follow the instructions* + + By starting the bot, the user accepts the terms and conditions of its use, as well as the privacy policy, for more information, go to /disclaimer + + You can cancel this order before someone takes it by executing 👇 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/es.yaml b/locales/es.yaml index db719e70..b846b57a 100644 --- a/locales/es.yaml +++ b/locales/es.yaml @@ -34,19 +34,28 @@ start: | init_bot_error: Para usar este Bot primero debes inicializar el bot con el comando /start non_handle_error: 👤 Para usar este bot debes activar tu username de telegram, para activarlo abre el menú de hamburguesa arriba a la izquierda, selecciona ajustes -> editar perfil -> username invoice_payment_request: | - Un usuario quiere comprarte ${order.amount} sats por ${currency} ${order.fiat_amount}. + Un usuario quiere comprarte ${order.amount} sats por ${currency} ${order.fiat_amount} Reputación del comprador: ${rate}, días utilizando el bot: ${days} - Nota: Confirme que la imagen adjunta coincide con la enviada durante la creación del pedido antes de pagar la factura + 🚨🚨🚨 *ATENCIÓN:* 🚨🚨🚨 + *Antes de presionar el botón "Continuar" REGRESA Y MIRA NUEVAMENTE LA IMAGEN asociada a esta orden* + + Al presionar el botón "Continuar" verás un código QR con una imágen en el centro, confirma que las imágenes coincidan antes de pagar la factura + + *Si no coinciden, esa factura no es de @lnp2pbot, NO PAGUES la factura* - Si deseas continuar por favor paga esta factura, esta factura expira en ${expirationTime} minutos + Decide cómo quieres proceder 👇 pending_sell: | 📝 Publicada la oferta en el canal ${channel} - Espera que alguien tome tu venta, si la orden no es tomada en ${orderExpirationWindow} horas será borrada del canal. + Espera que alguien tome tu venta, si la orden no es tomada en ${orderExpirationWindow} horas será borrada del canal - Nota: Recuerde esta imagen porque la verá nuevamente dentro de la factura a pagar + *🚨 RECUERDA ESTA IMAGEN porque la verás nuevamente dentro de la factura a pagar* + + *Ni los desarrolladores ni los árbitros de disputas son responsables de las pérdidas o daños que el usuario pueda sufrir si no sigue las instrucciones* + + Al iniciar el bot el usuario acepta los términos y condiciones de su uso, así como la política de privacidad, para más información ve a /disclaimer Puedes cancelar esta orden antes de que alguien la tome ejecutando 👇 cancel_order_cmd: | diff --git a/locales/fa.yaml b/locales/fa.yaml index 9139bf29..c2baddfd 100644 --- a/locales/fa.yaml +++ b/locales/fa.yaml @@ -36,21 +36,30 @@ start: | init_bot_error: برای استفاده از این ربات، ابتدا باید دستور /start را وارد کنید non_handle_error: 👤 برای استفاده از این ربات باید نام کاربری تلگرام خود را فعال کنید. جهت فعالسازی نام کاربری از سه‌خط بالا سمت راست تلگرام وارد بخش تنظیمات--ویرایش پروفایل شده و یک نام‌کاربری اضافه کنید invoice_payment_request: | - یک نفر میخواهد از شما ${order.amount} ساتوشی در ازا ${currency} ${order.fiat_amount} بخرد. + یک کاربر می‌خواهد ${order.amount} sats را به ${currency} ${order.fiat_amount} از شما بخرد - Buyer Reputation: ${rate}, days using the bot: ${days} + شهرت خریدار: ${rate} ، روزهای استفاده از ربات: ${days} - توجه: قبل از پرداخت فاکتور، تأیید کنید که تصویر پیوست شده با تصویر ارسال شده در هنگام ایجاد سفارش مطابقت دارد + 🚨🚨🚨 *توجه:* 🚨🚨🚨 + *قبل از فشار دادن دکمه "ادامه"، به عقب بازگشته و دوباره تصویر مربوط به این سفارش را بررسی کنید* + + وقتی دکمه "ادامه" را فشار می‌دهید، یک کد QR با تصویری در مرکز مشاهده خواهید کرد، قبل از پرداخت فاکتور، مطمئن شوید که تصاویر مطابقت دارند + + *اگر تطابق نداشته باشند، این فاکتور متعلق به @lnp2pbot نیست، فاکتور را پرداخت نکنید* - لطفاً برای شروع فرآیند فروش خود، این فاکتور را بپردازید، این درخواست در ${expirationTime} دقیقه منقضی می شود + تصمیم بگیرید که چگونه می‌خواهید ادامه دهید 👇 pending_sell: | - 📝 سفارش فروش sat شما در کانال ${channel} منتشر شده است + 📝 پیشنهاد در کانال ${channel} منتشر شد - باید منتظر بمانید تا کاربر دیگری سفارش شما را انتخاب کند، این سفارش برای ${orderExpirationWindow} ساعت در کانال در دسترس خواهد بود. + منتظر بمانید تا کسی فروش شما را قبول کند، اگر سفارش در ${orderExpirationWindow} ساعت گرفته نشود، از کانال حذف خواهد شد - توجه: این تصویر را به خاطر بسپارید زیرا آن را دوباره در فاکتور پرداخت خواهید دید + *🚨 این تصویر را به خاطر بسپارید، زیرا آن را دوباره در صورتحساب قابل پرداخت خواهید دید* + + *نه توسعه‌دهندگان و نه داوران اختلافات مسئول خسارت یا آسیبی نیستند که کاربر ممکن است در صورت عدم پیروی از دستورالعمل‌ها متحمل شود* + + با شروع استفاده از ربات، کاربر شرایط و ضوابط استفاده از آن و همچنین سیاست حفظ حریم خصوصی را می‌پذیرد، برای اطلاعات بیشتر به /disclaimer مراجعه کنید - شما می توانید این سفارش را قبل از اینکه کاربر دیگری آن را انتخاب کند با اجرای دستور زیر لغو کنید 👇 + شما می‌توانید این سفارش را قبل از آنکه کسی آن را بپذیرد با اجرای 👇 لغو کنید cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/fr.yaml b/locales/fr.yaml index b59174f2..8e91b65f 100644 --- a/locales/fr.yaml +++ b/locales/fr.yaml @@ -36,21 +36,30 @@ start: | init_bot_error: pour utiliser ce bot, tu dois d'abord initialiser le démarrage avec la commande /start non_handle_error: 👤 Pour utiliser ce bot, tu dois d'abord activer ton nom d'utilisateur Telegram. Pour ce faire, ouvre le menu en haut à gauche et sélectionne Paramètres -> Nom d'utilisateur invoice_payment_request: | - Quelqu'un veut t'acheter ${order.amount} sats à ${order.fiat_amount} ${currency}. + Un utilisateur veut vous acheter ${order.amount} sats pour ${currency} ${order.fiat_amount} - Buyer Reputation: ${rate}, jours d'utilisation du bot: ${days} + Réputation de l'acheteur : ${rate}, jours d'utilisation du bot : ${days} - Note : Vérifiez que l'image jointe correspond à celle envoyée lors de la création de la commande avant de payer la facture + 🚨🚨🚨 *ATTENTION :* 🚨🚨🚨 + *Avant de presser le bouton "Continuer", RETOURNEZ ET VÉRIFIEZ À NOUVEAU L'IMAGE associée à cette commande* + + En appuyant sur le bouton "Continuer", vous verrez un code QR avec une image au centre, confirmez que les images correspondent avant de payer la facture + + *Si elles ne correspondent pas, cette facture ne provient pas de @lnp2pbot, NE PAYEZ PAS la facture* - Merci de régler cette facture pour démarrer le processus de vente, elle expirera dans ${expirationTime} minutes + Décidez de la manière dont vous souhaitez procéder 👇 pending_sell: | - 📝 Ton offre a été publiée dans le canal ${channel} + 📝 Offre publiée dans le canal ${channel} - Tu dois attendre jusqu'à ce que quelqu'un récupère ton offre, elle sera visible pendant ${orderExpirationWindow} heures dans le canal + Attendez qu'un utilisateur prenne votre vente, si la commande n'est pas prise dans ${orderExpirationWindow} heures, elle sera supprimée du canal - Note : Mémorisez cette image car vous la reverrez dans la facture à payer + *🚨 RAPPELEZ VOUS DE CETTE IMAGE car vous la verrez à nouveau dans la facture à payer* + + *Ni les développeurs ni les arbitres de litiges ne sont responsables des pertes ou dommages que l'utilisateur pourrait subir s'il ne suit pas les instructions* + + En démarrant le bot, l'utilisateur accepte les termes et conditions d'utilisation, ainsi que la politique de confidentialité, pour plus d'informations, allez sur /disclaimer - Tu peux annuler cette offre avant qu'un autre utilisateur ne la prenne en exécutant la commande 👇 + Vous pouvez annuler cette commande avant qu'elle soit prise en exécutant 👇 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/it.yaml b/locales/it.yaml index aafe528e..5141ee5f 100644 --- a/locales/it.yaml +++ b/locales/it.yaml @@ -34,21 +34,30 @@ start: | init_bot_error: per utilizzare questo Bot è necessario inizializzare l'avvio con il comando /start non_handle_error: 👤 Per utilizzare questo bot è necessario impostare il proprio nome utente di Telegram; per impostarlo, aprire il menu in alto a sinistra e selezionare impostazioni -> modifica profilo -> nome utente invoice_payment_request: | - Qualcuno richiede di comprare da te ${order.amount} sats per ${currency} ${order.fiat_amount}. + Un utente vuole acquistarti ${order.amount} sats per ${currency} ${order.fiat_amount} - Reputazione del compratore: ${rate}, giorni di utilizzo del bot: ${days} + Reputazione dell'acquirente: ${rate}, giorni di utilizzo del bot: ${days} - Nota: Conferma che l'immagine allegata corrisponda a quella inviata durante la creazione dell'ordine prima di pagare la fattura + 🚨🚨🚨 *ATTENZIONE:* 🚨🚨🚨 + *Prima di premere il pulsante "Continua", TORNA INDIETRO E RIVEDI L'IMMAGINE associata a quest'ordine* + + Premendo il pulsante "Continua", vedrai un codice QR con un'immagine al centro, conferma che le immagini corrispondano prima di pagare la fattura - Si prega di procedere al pagamento di questa invoice per avviare il processo di vendita, la invoice scadrà tra ${expirationTime} minuti + *Se non corrispondono, questa fattura non proviene da @lnp2pbot, NON PAGARE la fattura* + + Decidi come vuoi procedere 👇 pending_sell: | - 📝 La tua offerta è stata pubblicata nel canale ${channel}. + 📝 Offerta pubblicata nel canale ${channel} - È necessario attendere che un altro utente prenda in carico l'ordine, che scadrà tra ${orderExpirationWindow} ore. + Aspetta che qualcuno prenda la tua vendita, se l'ordine non viene preso entro ${orderExpirationWindow} ore, verrà eliminato dal canale - Nota: Ricorda questa immagine perché la rivedrai nella fattura da pagare + *🚨 RICORDA QUEST'IMMAGINE perché la vedrai di nuovo nella fattura da pagare* + + *Né gli sviluppatori né gli arbitri delle dispute sono responsabili per perdite o danni che l'utente potrebbe subire se non segue le istruzioni* + + Avviando il bot, l'utente accetta i termini e le condizioni d'uso, nonché la politica sulla privacy, per maggiori informazioni, vai su /disclaimer - È possibile annullare l'ordine prima che un altro utente lo prenda eseguendo il comando 👇 + Puoi annullare questo ordine prima che qualcuno lo prenda eseguendo 👇 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/ko.yaml b/locales/ko.yaml index 484921fd..58b96d49 100644 --- a/locales/ko.yaml +++ b/locales/ko.yaml @@ -35,21 +35,30 @@ start: | init_bot_error: 봇을 이용하기 위해서는, 먼저 /start 명령어로 봇을 초기화해주어야 합니다. non_handle_error: 👤 봇을 이용하기 위해서는, 당신의 텔레그램 사용자명 (Username)을 활성화해야 합니다. 활성화시키려면, 왼쪽 위에 있는 메뉴를 열고, 설정 (setting) -> 프로필 변경 (edit profile) -> 사용자명 (username)을 선택하세요. invoice_payment_request: | - 누군가 당신에게 ${order.amount} sats를 ${currency} ${order.fiat_amount}로 구매하기를 희망합니다. + 사용자가 ${order.amount} sats를 ${currency} ${order.fiat_amount}에 구매하려고 합니다 - Buyer Reputation: ${rate}, 봇 사용일수: ${days} - - 참고: 청구서 결제 전에 첨부된 이미지가 주문 생성 시 전송된 이미지와 일치하는지 확인하세요 + 구매자의 평판: ${rate}, 봇 사용 일수: ${days} + + 🚨🚨🚨 *주의:* 🚨🚨🚨 + *"계속" 버튼을 누르기 전에 이 주문에 연결된 이미지를 다시 확인하세요* - 판매 프로세스를 시작하려면 이 인보이스에 결제해주세요. 이 인보이스는 ${expirationTime} 분 후에 만료됩니다. + "계속" 버튼을 누르면 중앙에 이미지가 있는 QR 코드가 표시됩니다, 결제 전에 이미지가 일치하는지 확인하세요 + + *일치하지 않으면 이 청구서는 @lnp2pbot의 것이 아니므로 결제하지 마세요* + + 진행 방법을 선택하세요 👇 pending_sell: | - 📝 당신의 주문이 ${channel} 채널에 등록되었습니다. - - 다른 사용자가 당신의 주문을 수락할 때까지 기다려야 합니다. 주문은 ${orderExpirationWindow} 시간 동안 채널에서 보여집니다. - - 참고: 결제 청구서에서 다시 보게 될 이미지이므로 기억해 두세요 + 📝 ${channel} 채널에 오퍼가 게시되었습니다 + + 누군가가 당신의 판매를 인수할 때까지 기다리세요, 만약 ${orderExpirationWindow} 시간 이내에 주문이 인수되지 않으면 채널에서 삭제됩니다 + + *🚨 이 이미지를 기억하세요, 결제할 청구서에서 다시 보게 될 것입니다* + + *개발자나 분쟁 중재자는 사용자가 지침을 따르지 않았을 경우 발생하는 손실이나 손해에 대해 책임을 지지 않습니다* + + 봇을 시작함으로써 사용자는 이용 약관과 개인정보 보호정책에 동의한 것으로 간주됩니다, 자세한 내용은 /disclaimer를 참조하세요 - 당신은 다른 사용자가 이 주문을 수락하기 전에 아래 명령어를 입력하여 취소할 수 있습니다.👇 + 누군가가 이 주문을 인수하기 전에 이 주문을 취소하려면 👇을 실행하세요 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/pt.yaml b/locales/pt.yaml index 343a6aee..2ec044d1 100644 --- a/locales/pt.yaml +++ b/locales/pt.yaml @@ -33,21 +33,30 @@ start: | init_bot_error: Para usar este bot, você deve iniciar com o comando /start non_handle_error: 👤 Para usar este bot, você precisa ativar seu nome de usuário do Telegram, para ativá-lo, abra as configurações e selecione Meu Perfil -> Editar -> Nome de Usuário invoice_payment_request: | - Alguém quer comprar ${order.amount} sats por ${currency} ${order.fiat_amount}. + Um usuário quer comprar de você ${order.amount} sats por ${currency} ${order.fiat_amount} - Reputação do comprador: ${rate}, dias usando o bot: ${days} + Reputação do comprador: ${rate}, dias utilizando o bot: ${days} - Nota: Confirme que a imagem anexada corresponde à enviada durante a criação do pedido antes de pagar a fatura + 🚨🚨🚨 *ATENÇÃO:* 🚨🚨🚨 + *Antes de pressionar o botão "Continuar", VOLTE E VERIFIQUE A IMAGEM associada a este pedido* + + Ao pressionar o botão "Continuar", você verá um código QR com uma imagem no centro, confirme que as imagens coincidem antes de pagar a fatura + + *Se não coincidirem, essa fatura não é de @lnp2pbot, NÃO PAGUE a fatura* - Por favor, pague esta fatura para iniciar seu processo de venda, a fatura expirará em ${expirationTime} minutos + Decida como deseja proceder 👇 pending_sell: | - 📝 Oferta publicada no canal ${channel} + 📝 Oferta publicada no canal ${channel} - Você tem que esperar até que outro usuário aceite sua oferta, ela estará disponível por ${orderExpirationWindow} horas no canal - - Nota: Lembre-se desta imagem porque você a verá novamente dentro da fatura a pagar + Aguarde que alguém aceite sua venda, se o pedido não for aceito dentro de ${orderExpirationWindow} horas, será excluído do canal - Você pode cancelar a oferta antes que outro usuário a aceite executando o comando 👇 + *🚨 LEMBRE SE DESTA IMAGEM porque você a verá novamente na fatura a ser paga* + + *Nem os desenvolvedores nem os árbitros de disputas são responsáveis por perdas ou danos que o usuário possa sofrer se não seguir as instruções* + + Ao iniciar o bot, o usuário aceita os termos e condições de uso, bem como a política de privacidade, para mais informações, acesse /disclaimer + + Você pode cancelar este pedido antes que alguém o aceite executando 👇 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/locales/ru.yaml b/locales/ru.yaml index a7951588..809125e7 100644 --- a/locales/ru.yaml +++ b/locales/ru.yaml @@ -33,21 +33,30 @@ start: | init_bot_error: Чтобы пользоваться Ботом сначала нужно его инициализировать командой /start non_handle_error: 👤 Для пользования этим ботом нужно активировать имя пользователя в Телеграм invoice_payment_request: | - Кто-то хочет купить ваши ${order.amount} сатоши за ${currency} ${order.fiat_amount}. + Пользователь хочет купить у вас ${order.amount} sats за ${currency} ${order.fiat_amount} - Репутация продавца: ${rate}, дней использования бота: ${days} + Репутация покупателя: ${rate}, дней использования бота: ${days} - Примечание: Перед оплатой счета подтвердите, что прикрепленное изображение совпадает с изображением, отправленным при создании заказа + 🚨🚨🚨 *ВНИМАНИЕ:* 🚨🚨🚨 + *Перед нажатием на кнопку "Продолжить" ВЕРНИТЕСЬ И СНОВА ПРОВЕРЬТЕ ИЗОБРАЖЕНИЕ, связанное с этим заказом* + + При нажатии на кнопку "Продолжить" вы увидите QR код с изображением в центре, Подтвердите, что изображения совпадают, прежде чем оплачивать счет + + *Если они не совпадают, этот счет не от @lnp2pbot, НЕ ОПЛАЧИВАЙТЕ счет* - Пожалуйста, оплатите этот счет, чтобы начать продажу. Срок действия этого счета истекает через ${expirationTime} минут + Решите, как вы хотите продолжить 👇 pending_sell: | 📝 Разместил заявку в канале ${channel} - Подождите, пока кто-нибудь примет вашу заявку на продажу. Если заявка не будет принята в течение ${orderExpirationWindow} часов, она будет удалена из канала автоматически. + Подождите, пока ктонибудь примет вашу заявку на продажу, eсли заявка не будет принята в течение ${orderExpirationWindow} часов, она будет удалена из канала автоматически + + *🚨 ПОМНИТЕ ЭТО ИЗОБРАЖЕНИЕ, так как вы увидите его снова в счете, который нужно будет оплатить* + + *Разработчики и арбитры споров не несут ответственности за потери или ущерб, которые пользователь может понести, если он не следует инструкциям* Примечание: Запомните это изображение, так как вы увидите его снова в счете на оплату - Вы можете отменить эту заявку до того, как ее примет кто-то другой, командой 👇 + Вы можете отменить эту заявку до того, как ее примет ктото другой, командой 👇 cancel_order_cmd: /cancel ${orderId} pending_buy: | 📝 Разместил заявку в канале ${channel}. diff --git a/locales/uk.yaml b/locales/uk.yaml index 55ff70ba..fa5abf44 100644 --- a/locales/uk.yaml +++ b/locales/uk.yaml @@ -33,21 +33,30 @@ start: | init_bot_error: Для користування Ботом спочатку потрібно його ініціалізувати командою /start non_handle_error: 👤 Для користування цим ботом потрібно активувати ім'я користувача в Телеграм invoice_payment_request: | - Хтось хоче купити Ваші ${order.amount} Сатоші за ${currency} ${order.fiat_amount}. + Користувач хоче купити у вас ${order.amount} sats за ${currency} ${order.fiat_amount} - Репутація продавця: ${rate}, днів використання бота: ${days} - - Примітка: Перед оплатою рахунку підтвердьте, що прикріплене зображення збігається із зображенням, надісланим під час створення замовлення + Репутація покупця: ${rate}, днів використання бота: ${days} + + 🚨🚨🚨 *УВАГА:* 🚨🚨🚨 + *Перед натисканням кнопки "Продовжити", ПОВЕРНІТЬСЯ І ПЕРЕВІРТЕ ІЗОБРАЖЕННЯ, яке пов'язане з цим замовленням* + + Коли ви натискаєте кнопку "Продовжити", ви побачите QR код із зображенням у центрі, підтверджуйте, що зображення збігаються, перш ніж сплачувати рахунок - Будь ласка, сплатіть цей рахунок, щоб почати продаж. Термін дії цього рахунку закінчується через ${expirationTime} хвилин + *Якщо вони не збігаються, цей рахунок не від @lnp2pbot, НЕ ПЛАТІТЬ рахунок* + + Вирішіть, як ви хочете діяти далі 👇 pending_sell: | - 📝Вашу заявку розміщено на каналі ${channel} + 📝 Пропозиція опублікована в каналі ${channel} - Зачекайте, поки хтось прийме Вашу заявку на продаж. Якщо заявка не буде прийнята протягом ${orderExpirationWindow} годин, вона буде видалена з каналу автоматично. + Чекайте, поки хтось забере вашу продажу, Якщо замовлення не буде прийнято протягом ${orderExpirationWindow} годин, воно буде видалено з каналу - Примітка: Запам'ятайте це зображення, оскільки ви побачите його знову в рахунку на оплату + *🚨 ПАМ'ЯТАЙТЕ ЦЮ ЗОБРАЖЕННЯ, оскільки ви побачите його знову в рахунку, який потрібно буде оплатити* - Ви можете скасувати цю заявку до того, як її прийме хтось інший командою 👇 + *Розробники та арбітри спорів не несуть відповідальності за збитки чи втрати, які користувач може понести, якщо не дотримується інструкцій* + + Почавши використовувати бота, користувач погоджується з умовами використання та політикою конфіденційності, Для отримання додаткової інформації перейдіть на /disclaimer + + Ви можете скасувати це замовлення до того, як хтось його прийме, виконавши 👇 cancel_order_cmd: | /cancel ${orderId} pending_buy: | diff --git a/package-lock.json b/package-lock.json index a7b4285f..2c521ab7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,12 +11,12 @@ "dependencies": { "@grammyjs/i18n": "^0.5.1", "@grammyjs/ratelimiter": "^1.1.5", - "axios": "^1.8.2", + "axios": "1.9.0", "canvas": "^3.0.0", "crypto": "^1.0.1", "dotenv": "^10.0.0", "invoices": "2.0.6", - "lightning": "9.8.1", + "lightning": "10.25.0", "mongoose": "6.13.6", "node-schedule": "^2.0.0", "nostr-tools": "^2.5.2", @@ -827,26 +827,27 @@ "integrity": "sha512-xBkH/ATJsuv5JgVYX9yQM9DNg75Qqjw+gh82lVsBn4j+d0DkxxC+kuy6WFoB96Cb6oifQfaBJL8CTikdYG4v0A==" }, "node_modules/@grpc/grpc-js": { - "version": "1.8.17", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.17.tgz", - "integrity": "sha512-DGuSbtMFbaRsyffMf+VEkVu8HkSXEUfO3UyGJNtqxW9ABdtTIA+2UXAJpwbJS+xfQxuwqLUeELmL6FuZkOqPxw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.1.tgz", + "integrity": "sha512-z5nNuIs75S73ZULjPDe5QCNTiCv7FyBZXEVWOyAHtcebnuJf0g1SuueI3U1/z/KK39XyAQRUC+C9ZQJOtgHynA==", + "license": "Apache-2.0", "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=12.10.0" } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.7.tgz", - "integrity": "sha512-1TIeXOi8TuSCQprPItwoMymZXxWT0CPxUhkrkeCUH+D8U7QDwQ6b7SUz2MaLuWM2llT+J/TVFLmQI5KtML3BhQ==", + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", "dependencies": { - "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", "yargs": "^17.7.2" }, "bin": { @@ -994,6 +995,16 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@mongodb-js/saslprep": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.0.tgz", @@ -1094,27 +1105,32 @@ "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -1123,27 +1139,32 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@rtsao/scc": { "version": "1.1.0", @@ -1846,54 +1867,11 @@ "node": ">=18.0.0" } }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, "node_modules/@types/caseless": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -1901,16 +1879,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" - }, "node_modules/@types/mocha": { "version": "10.0.9", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.9.tgz", @@ -1943,20 +1911,11 @@ "@types/node": "*" } }, - "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, "node_modules/@types/request": { - "version": "2.48.8", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", - "integrity": "sha512-whjk1EDJPcAR2kYHRbFl/lKeeKYTi05A15K9bnLInCVroNDCtXce57xKdI0/rQaA3K+6q0eFyUBPmqfSndUZdQ==", + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", "dependencies": { "@types/caseless": "*", "@types/node": "*", @@ -1965,42 +1924,26 @@ } }, "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", - "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", + "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.35", "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" } }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" }, "node_modules/@types/triple-beam": { "version": "1.3.5", @@ -2024,9 +1967,10 @@ } }, "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -2052,6 +1996,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -2177,7 +2122,8 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "node_modules/array-includes": { "version": "3.1.8", @@ -2320,9 +2266,9 @@ } }, "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -2389,17 +2335,16 @@ } }, "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "dependencies": { - "safe-buffer": "^5.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-2.0.0.tgz", + "integrity": "sha512-kBG+hSpgvZBrkIm9dt5T1Hd/7xGCPEX2npoxAWZfsK1FvjgaxySEh2WizjyIstWXriKo9K9uJ4u0OnsyLDUPXQ==", + "license": "MIT" }, "node_modules/bitcoin-ops": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==", + "license": "MIT" }, "node_modules/bitcoinjs-lib": { "version": "6.0.1", @@ -2434,42 +2379,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/bolt07": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/bolt07/-/bolt07-1.8.1.tgz", @@ -2630,6 +2539,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -2638,6 +2548,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2652,6 +2563,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2688,17 +2612,6 @@ "node": "^18.12.0 || >= 20.9.0" } }, - "node_modules/cbor": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.0.tgz", - "integrity": "sha512-87cFgOKxjUOnGpNeQMBVER4Mc/rZAk9xC+Ygfx5FLCAUt/tpVHphuZC5fJmp/KSDsEsBEDIPtEt0YbD/GFQw8Q==", - "dependencies": { - "nofilter": "^3.1.0" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/chai": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", @@ -2882,6 +2795,7 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, "dependencies": { "safe-buffer": "5.2.1" }, @@ -2893,14 +2807,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -2908,7 +2815,8 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true }, "node_modules/create-hash": { "version": "1.2.0", @@ -3086,6 +2994,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3123,23 +3032,6 @@ "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -3184,6 +3076,20 @@ "node": ">=10" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3192,22 +3098,67 @@ "license": "MIT" }, "node_modules/ecpair": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ecpair/-/ecpair-2.1.0.tgz", - "integrity": "sha512-cL/mh3MtJutFOvFc27GPZE2pWL3a3k4YvzUWEOvilnfZVlH3Jwgx/7d6tlD7/75tNk8TG2m+7Kgtz0SI1tWcqw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ecpair/-/ecpair-3.0.0.tgz", + "integrity": "sha512-kf4JxjsRQoD4EBzpYjGAcR0t9i/4oAeRPtyCpKvSwyotgkc6oA4E4M0/e+kep7cXe+mgxAvoeh/jdgH9h5+Wxw==", + "license": "MIT", "dependencies": { - "randombytes": "^2.1.0", - "typeforce": "^1.18.0", - "wif": "^2.0.6" + "uint8array-tools": "^0.0.8", + "valibot": "^0.37.0", + "wif": "^5.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/ecpair/node_modules/base-x": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", + "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "license": "MIT" + }, + "node_modules/ecpair/node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", + "dependencies": { + "base-x": "^5.0.0" + } + }, + "node_modules/ecpair/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" + } + }, + "node_modules/ecpair/node_modules/uint8array-tools": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.8.tgz", + "integrity": "sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ecpair/node_modules/wif": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/wif/-/wif-5.0.0.tgz", + "integrity": "sha512-iFzrC/9ne740qFbNjTZ2FciSRJlHIXoxqk/Y5EnE08QOXu1WjJyCCswwDTYbohAOEnlCtLaAAQBhyaLRFh2hMA==", + "license": "MIT", + "dependencies": { + "bs58check": "^4.0.0" } }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -3223,6 +3174,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -3297,12 +3249,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -3316,10 +3266,10 @@ } }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -3328,14 +3278,15 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -3415,7 +3366,8 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "node_modules/escape-string-regexp": { "version": "4.0.0", @@ -3865,6 +3817,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -3895,97 +3848,6 @@ "node": ">=6" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -4086,36 +3948,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4228,6 +4060,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -4236,6 +4069,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -4305,15 +4139,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4322,6 +4162,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -4410,11 +4263,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4448,6 +4302,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -4459,6 +4314,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -4467,9 +4323,10 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4481,7 +4338,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "dependencies": { "has-symbols": "^1.0.3" }, @@ -4525,21 +4381,6 @@ "he": "bin/he" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-shutdown": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", @@ -4554,6 +4395,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -4688,6 +4530,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, "engines": { "node": ">= 0.10" } @@ -5134,39 +4977,46 @@ } }, "node_modules/lightning": { - "version": "9.8.1", - "resolved": "https://registry.npmjs.org/lightning/-/lightning-9.8.1.tgz", - "integrity": "sha512-wVCTvUrokANT0kkdTUu7RtRZLy1SCiU1LMeifOQDy7GNK7ZhTusJcTobXR7Xua9THm7fZm8lvfmUGwMxsLBlxA==", - "dependencies": { - "@grpc/grpc-js": "1.8.17", - "@grpc/proto-loader": "0.7.7", - "@types/express": "4.17.17", - "@types/node": "20.4.1", - "@types/request": "2.48.8", - "@types/ws": "8.5.5", - "async": "3.2.4", + "version": "10.25.0", + "resolved": "https://registry.npmjs.org/lightning/-/lightning-10.25.0.tgz", + "integrity": "sha512-0gqHuxiL8OsQOT0Me6XDrfDYPPFsP7ZSvVSe7vUeP9JisixMS5VWEaSyihgB4oB/dLAIX13Kc5uFVcT9c/fGZg==", + "license": "MIT", + "dependencies": { + "@grpc/grpc-js": "1.13.1", + "@grpc/proto-loader": "0.7.13", + "@types/node": "22.13.13", + "@types/request": "2.48.12", + "@types/ws": "8.18.0", + "async": "3.2.6", "asyncjs-util": "1.2.12", - "bitcoinjs-lib": "6.1.3", + "bitcoinjs-lib": "6.1.7", "bn.js": "5.2.1", - "body-parser": "1.20.2", - "bolt07": "1.8.4", - "bolt09": "1.0.0", - "cbor": "9.0.0", - "ecpair": "2.1.0", - "express": "4.18.2", + "bolt07": "1.9.4", + "bolt09": "2.1.0", + "ecpair": "3.0.0", "invoices": "3.0.0", - "psbt": "3.0.0", + "psbt": "4.0.0", "tiny-secp256k1": "2.2.3", - "type-fest": "3.12.0" + "type-fest": "4.38.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/lightning/node_modules/@types/node": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", - "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" + "version": "22.13.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz", + "integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/lightning/node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" }, "node_modules/lightning/node_modules/base-x": { "version": "4.0.0", @@ -5174,13 +5024,14 @@ "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "node_modules/lightning/node_modules/bitcoinjs-lib": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", - "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz", + "integrity": "sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg==", + "license": "MIT", "dependencies": { "@noble/hashes": "^1.2.0", "bech32": "^2.0.0", - "bip174": "^2.1.0", + "bip174": "^2.1.1", "bs58check": "^3.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.1.2" @@ -5195,19 +5046,21 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/lightning/node_modules/bolt07": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/bolt07/-/bolt07-1.8.4.tgz", - "integrity": "sha512-UyZRSYmVE8K++Jg1BiJrUkxQak03aS/s7ESKDsBdBPzaTlk2E09Y0JYa9HhWN7MRn48Y2K1doOzkb1Hn6XixZw==", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bolt07/-/bolt07-1.9.4.tgz", + "integrity": "sha512-zt+PZPoD8DN/ZaqqKen0B/NiAvWOgbPkj1/XS39CcAdwqGQSW9KG8Cf28m7fzFw+amZAvgG+jzRA1rGj/lDdwA==", + "license": "MIT", "dependencies": { "bn.js": "5.2.1" } }, "node_modules/lightning/node_modules/bolt09": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bolt09/-/bolt09-1.0.0.tgz", - "integrity": "sha512-J8wh6mRTNnYJuC43iSJRvM2Te0RtO4+Cn0JCgF6q2xWXKWjZjdPV5AGamD8R8C39/Ei6L0I780aFvIZu+bATWw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bolt09/-/bolt09-2.1.0.tgz", + "integrity": "sha512-aSLhKEWFUKGFOsQWRXcmiNzVVBCK+Tz4RUYGQZ8U1HFllHzCC68z/iJAYmPgEmyKNuyHz2twS/uku2HKFiWBRg==", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/lightning/node_modules/bs58": { @@ -5243,6 +5096,41 @@ "node": ">=16" } }, + "node_modules/lightning/node_modules/invoices/node_modules/bitcoinjs-lib": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", + "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bech32": "^2.0.0", + "bip174": "^2.1.0", + "bs58check": "^3.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/lightning/node_modules/invoices/node_modules/bolt07": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/bolt07/-/bolt07-1.8.4.tgz", + "integrity": "sha512-UyZRSYmVE8K++Jg1BiJrUkxQak03aS/s7ESKDsBdBPzaTlk2E09Y0JYa9HhWN7MRn48Y2K1doOzkb1Hn6XixZw==", + "license": "MIT", + "dependencies": { + "bn.js": "5.2.1" + } + }, + "node_modules/lightning/node_modules/invoices/node_modules/bolt09": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bolt09/-/bolt09-1.0.0.tgz", + "integrity": "sha512-J8wh6mRTNnYJuC43iSJRvM2Te0RtO4+Cn0JCgF6q2xWXKWjZjdPV5AGamD8R8C39/Ei6L0I780aFvIZu+bATWw==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, "node_modules/lightning/node_modules/invoices/node_modules/tiny-secp256k1": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-2.2.2.tgz", @@ -5266,16 +5154,23 @@ } }, "node_modules/lightning/node_modules/type-fest": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.12.0.tgz", - "integrity": "sha512-qj9wWsnFvVEMUDbESiilKeXeHL7FwwiFcogfhfyjmvT968RXSvnl23f1JOClTHYItsi7o501C/7qVllscUP3oA==", + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.38.0.tgz", + "integrity": "sha512-2dBz5D5ycHIoliLYLi0Q2V7KRaDlH0uWIvmk7TYlAg5slqwiPv1ezJdZm1QEM0xgk29oYWMCbIG7E6gHpvChlg==", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lightning/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5294,7 +5189,8 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", @@ -5341,9 +5237,10 @@ } }, "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" }, "node_modules/long-timeout": { "version": "0.1.1", @@ -5374,6 +5271,15 @@ "node": ">=12" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -5388,6 +5294,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -5402,12 +5309,14 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -5416,6 +5325,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, "bin": { "mime": "cli.js" }, @@ -5702,6 +5612,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -5916,14 +5827,6 @@ "node": ">=4" } }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", - "engines": { - "node": ">=12.19" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5967,6 +5870,7 @@ "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -6050,17 +5954,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -6163,6 +6056,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -6219,7 +6113,8 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true }, "node_modules/pathval": { "version": "1.1.1", @@ -6362,10 +6257,11 @@ } }, "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.1.tgz", + "integrity": "sha512-3qx3IRjR9WPQKagdwrKjO3Gu8RgQR2qqw+1KnigWhoVjFqegIj1K3bP11sGqhxrO46/XL7lekuG4jmjL+4cLsw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -6384,15 +6280,11 @@ "node": ">=12.0.0" } }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -6418,34 +6310,37 @@ } }, "node_modules/psbt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/psbt/-/psbt-3.0.0.tgz", - "integrity": "sha512-Gg35WfXAdbVqION9AJ4cO7cdgqR2iL1Dyq00AmvKCosTbm7EQrrMmHGjkWACb7ue9+aaHjMi/UdDG1SZwqA6bg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/psbt/-/psbt-4.0.0.tgz", + "integrity": "sha512-LvkQDDCUlU3ISeE1olEpE/reaY8hjt14CuUk6F1gm6yNMv4suyYcm+CnZWGKFLvg2NNuqpOQN9wy6eosWu8d4A==", + "license": "MIT", "dependencies": { - "bip66": "1.1.5", + "bip66": "2.0.0", "bitcoin-ops": "1.4.1", - "bitcoinjs-lib": "6.1.3", + "bitcoinjs-lib": "6.1.7", "bn.js": "5.2.1", "pushdata-bitcoin": "1.0.1", "varuint-bitcoin": "1.1.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/psbt/node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" }, "node_modules/psbt/node_modules/bitcoinjs-lib": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", - "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz", + "integrity": "sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg==", + "license": "MIT", "dependencies": { "@noble/hashes": "^1.2.0", "bech32": "^2.0.0", - "bip174": "^2.1.0", + "bip174": "^2.1.1", "bs58check": "^3.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.1.2" @@ -6457,12 +6352,14 @@ "node_modules/psbt/node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/psbt/node_modules/bs58": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { "base-x": "^4.0.0" } @@ -6471,6 +6368,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "license": "MIT", "dependencies": { "@noble/hashes": "^1.2.0", "bs58": "^5.0.0" @@ -6504,6 +6402,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", "integrity": "sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==", + "license": "MIT", "dependencies": { "bitcoin-ops": "^1.3.0" } @@ -6649,20 +6548,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6687,6 +6572,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -6695,24 +6581,11 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -6962,7 +6835,8 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/sandwich-stream": { "version": "2.0.2", @@ -6981,42 +6855,6 @@ "semver": "bin/semver.js" } }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -7027,20 +6865,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -7050,6 +6874,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -7080,7 +6905,8 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "node_modules/sha.js": { "version": "2.4.11", @@ -7119,6 +6945,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -7292,14 +7119,6 @@ "node": "*" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7850,6 +7669,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, "engines": { "node": ">=0.6" } @@ -7961,6 +7781,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -8112,6 +7933,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -8146,6 +7968,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, "engines": { "node": ">= 0.4.0" } @@ -8164,6 +7987,20 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/valibot": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.37.0.tgz", + "integrity": "sha512-FQz52I8RXgFgOHym3XHYSREbNtkgSjF9prvMFH1nBsRyfL6SfCzoT1GuSDTlbsuPubM7/6Kbw0ZMQb8A+V+VsQ==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/varuint-bitcoin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", @@ -8176,6 +8013,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, "engines": { "node": ">= 0.8" } diff --git a/package.json b/package.json index 5956f0ff..a7df395f 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,12 @@ "dependencies": { "@grammyjs/i18n": "^0.5.1", "@grammyjs/ratelimiter": "^1.1.5", - "axios": "^1.8.2", + "axios": "1.9.0", "canvas": "^3.0.0", "crypto": "^1.0.1", "dotenv": "^10.0.0", "invoices": "2.0.6", - "lightning": "9.8.1", + "lightning": "10.25.0", "mongoose": "6.13.6", "node-schedule": "^2.0.0", "nostr-tools": "^2.5.2",