Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion examples/albyPayment.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import axios from 'axios';
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

// Configure Alby client
const ALBY_API_URL = 'https://api.getalby.com';
Expand All @@ -11,7 +12,7 @@ const client = axios.create({
}
});

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("Paying using Alby:");
try {
// Pay the invoice using Alby's API
Expand Down
3 changes: 2 additions & 1 deletion examples/basicUsage.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("⚡ Lightning payment required");
console.log(`Amount: ${offer.amount} ${offer.currency}`);
console.log(`Description: ${offer.description}`);
Expand Down
3 changes: 2 additions & 1 deletion examples/downloadToFile.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("Paying manually:");
console.log(offer.payment_request);
await new Promise(resolve => { process.stdin.once("data", () => resolve(undefined)); });
Expand Down
3 changes: 2 additions & 1 deletion examples/fewsatsPayment.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';
import { Fewsats } from 'fewsats';
// Configure the SDK
const client = new Fewsats({ apiKey: process.env.FEWSATS_API_KEY });

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("Paying using Fewsats:");
console.log(offer);

Expand Down
3 changes: 2 additions & 1 deletion examples/inMemoryExample.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("Pay invoice and press Enter:");
console.log(offer.payment_request);
await new Promise(resolve => { process.stdin.once("data", () => resolve(undefined)); });
Expand Down
45 changes: 45 additions & 0 deletions examples/lnbitsPayment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import axios from "axios";
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

// Constants
const LN_BITS_URL = "https://demo.lnbits.com/api/v1/payments";
const ADMIN_KEY = process.env.LNBITS_ADMIN_KEY as string; // Set in your env

async function pay(offer: OfferDetails) {
console.log("Paying using lnbits:");

try {
const response = await axios.post(
LN_BITS_URL,
{
out: true,
bolt11: offer.payment_request
},
{
headers: {
"X-Api-Key": ADMIN_KEY,
"Content-Type": "application/json"
}
}
);

console.log("Payment successful:", response.data);
} catch (error) {
if (axios.isAxiosError(error)) {
console.error("Payment failed:", error.response?.data || error.message);
} else {
console.error("Unexpected error:", error);
}
}
}

async function main() {
const path = await convertMarkdownToPdf("# Save this one using LNbits", {
downloadPath: "output.pdf",
onPaymentRequest: pay
});
console.log("Saved PDF to:", path);
}

main().catch(console.error);
3 changes: 2 additions & 1 deletion examples/randomMarkdown.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { convertMarkdownToPdf } from "@serendipityai/markdown2pdf-typescript";
import { OpenAI } from "openai"; // npm install openai
import type { OfferDetails } from '@serendipityai/markdown2pdf-typescript';

const openai = new OpenAI();

Expand Down Expand Up @@ -46,7 +47,7 @@ Start now.
return (response.choices[0]?.message?.content || "");
}

async function pay(offer: any) {
async function pay(offer: OfferDetails) {
console.log("Paying using Alby:");
// const payment = new Payment();
// const payResult = await payment.bolt11_payment(offer.payment_request);
Expand Down