@moneydevkit/nextjs 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -0
- package/dist/components/Checkout.d.ts +12 -0
- package/dist/components/Checkout.js +133 -0
- package/dist/components/Checkout.js.map +1 -0
- package/dist/components/checkout/ExpiredCheckout.d.ts +10 -0
- package/dist/components/checkout/ExpiredCheckout.js +25 -0
- package/dist/components/checkout/ExpiredCheckout.js.map +1 -0
- package/dist/components/checkout/PaymentReceivedCheckout.d.ts +6 -0
- package/dist/components/checkout/PaymentReceivedCheckout.js +31 -0
- package/dist/components/checkout/PaymentReceivedCheckout.js.map +1 -0
- package/dist/components/checkout/PendingPaymentCheckout.d.ts +9 -0
- package/dist/components/checkout/PendingPaymentCheckout.js +69 -0
- package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -0
- package/dist/components/checkout/UnconfirmedCheckout.d.ts +9 -0
- package/dist/components/checkout/UnconfirmedCheckout.js +54 -0
- package/dist/components/checkout/UnconfirmedCheckout.js.map +1 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.js +32 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.js +25 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/collapsible.js +14 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +15 -0
- package/dist/components/ui/dialog.js +37 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +13 -0
- package/dist/components/ui/drawer.js +36 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/form.d.ts +24 -0
- package/dist/components/ui/form.js +60 -0
- package/dist/components/ui/form.js.map +1 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/input.js +7 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +4 -0
- package/dist/components/ui/label.js +9 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/select.d.ts +15 -0
- package/dist/components/ui/select.js +39 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/textarea.js +7 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -0
- package/dist/hooks/useCheckout.d.ts +19 -0
- package/dist/hooks/useCheckout.js +42 -0
- package/dist/hooks/useCheckout.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/mdk-styles.css +2436 -0
- package/dist/next-plugin.d.ts +31 -0
- package/dist/next-plugin.js +107 -0
- package/dist/next-plugin.js.map +1 -0
- package/dist/providers.d.ts +7 -0
- package/dist/providers.js +17 -0
- package/dist/providers.js.map +1 -0
- package/dist/server/actions.d.ts +2507 -0
- package/dist/server/actions.js +71 -0
- package/dist/server/actions.js.map +1 -0
- package/dist/server/handlers/balance.d.ts +1 -0
- package/dist/server/handlers/balance.js +19 -0
- package/dist/server/handlers/balance.js.map +1 -0
- package/dist/server/handlers/pay_bolt_12.d.ts +1 -0
- package/dist/server/handlers/pay_bolt_12.js +19 -0
- package/dist/server/handlers/pay_bolt_12.js.map +1 -0
- package/dist/server/handlers/ping.d.ts +1 -0
- package/dist/server/handlers/ping.js +13 -0
- package/dist/server/handlers/ping.js.map +1 -0
- package/dist/server/handlers/webhooks.d.ts +1 -0
- package/dist/server/handlers/webhooks.js +44 -0
- package/dist/server/handlers/webhooks.js.map +1 -0
- package/dist/server/index.d.ts +2501 -0
- package/dist/server/index.js +15 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/lightning-logs.d.ts +5 -0
- package/dist/server/lightning-logs.js +170 -0
- package/dist/server/lightning-logs.js.map +1 -0
- package/dist/server/logging.d.ts +3 -0
- package/dist/server/logging.js +17 -0
- package/dist/server/logging.js.map +1 -0
- package/dist/server/mdk.d.ts +7 -0
- package/dist/server/mdk.js +81 -0
- package/dist/server/mdk.js.map +1 -0
- package/dist/server/money-dev-kit.d.ts +3374 -0
- package/dist/server/money-dev-kit.js +165 -0
- package/dist/server/money-dev-kit.js.map +1 -0
- package/dist/server/payment-state.d.ts +3 -0
- package/dist/server/payment-state.js +32 -0
- package/dist/server/payment-state.js.map +1 -0
- package/dist/server/route.d.ts +8 -0
- package/dist/server/route.js +98 -0
- package/dist/server/route.js.map +1 -0
- package/dist/server/runtime.d.ts +3 -0
- package/dist/server/runtime.js +4 -0
- package/dist/server/runtime.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use server';
|
|
2
|
+
import { log } from './logging';
|
|
3
|
+
import { getMoneyDevKit } from './mdk';
|
|
4
|
+
import { hasPaymentBeenReceived, markPaymentReceived } from './payment-state';
|
|
5
|
+
export async function getCheckout(checkoutId) {
|
|
6
|
+
const mdk = getMoneyDevKit();
|
|
7
|
+
return await mdk.checkouts.get({ id: checkoutId });
|
|
8
|
+
}
|
|
9
|
+
export async function confirmCheckout(confirm) {
|
|
10
|
+
const mdk = getMoneyDevKit();
|
|
11
|
+
const confirmedCheckout = await mdk.checkouts.confirm(confirm);
|
|
12
|
+
const invoice = confirmedCheckout.invoiceScid
|
|
13
|
+
? mdk.invoices.createWithScid(confirmedCheckout.invoiceScid, confirmedCheckout.invoiceAmountSats)
|
|
14
|
+
: mdk.invoices.create(confirmedCheckout.invoiceAmountSats);
|
|
15
|
+
const pendingPaymentCheckout = await mdk.checkouts.registerInvoice({
|
|
16
|
+
paymentHash: invoice.paymentHash,
|
|
17
|
+
invoice: invoice.invoice,
|
|
18
|
+
invoiceExpiresAt: invoice.expiresAt,
|
|
19
|
+
checkoutId: confirmedCheckout.id,
|
|
20
|
+
nodeId: mdk.getNodeId(),
|
|
21
|
+
scid: invoice.scid,
|
|
22
|
+
});
|
|
23
|
+
return pendingPaymentCheckout;
|
|
24
|
+
}
|
|
25
|
+
export async function createCheckout(params) {
|
|
26
|
+
const amount = params.amount ?? 200;
|
|
27
|
+
const currency = params.currency ?? 'USD';
|
|
28
|
+
const metadataOverrides = params.metadata ?? {};
|
|
29
|
+
const mdk = getMoneyDevKit();
|
|
30
|
+
const checkout = await mdk.checkouts.create({
|
|
31
|
+
amount,
|
|
32
|
+
currency,
|
|
33
|
+
metadata: { prompt: params.prompt, ...metadataOverrides },
|
|
34
|
+
});
|
|
35
|
+
if (checkout.status === 'CONFIRMED') {
|
|
36
|
+
const invoice = checkout.invoiceScid
|
|
37
|
+
? mdk.invoices.createWithScid(checkout.invoiceScid, checkout.invoiceAmountSats)
|
|
38
|
+
: mdk.invoices.create(checkout.invoiceAmountSats);
|
|
39
|
+
const pendingPaymentCheckout = await mdk.checkouts.registerInvoice({
|
|
40
|
+
paymentHash: invoice.paymentHash,
|
|
41
|
+
invoice: invoice.invoice,
|
|
42
|
+
invoiceExpiresAt: invoice.expiresAt,
|
|
43
|
+
checkoutId: checkout.id,
|
|
44
|
+
nodeId: mdk.getNodeId(),
|
|
45
|
+
scid: invoice.scid,
|
|
46
|
+
});
|
|
47
|
+
return pendingPaymentCheckout;
|
|
48
|
+
}
|
|
49
|
+
return checkout;
|
|
50
|
+
}
|
|
51
|
+
export async function payInvoice(paymentHash, amountSats) {
|
|
52
|
+
const mdk = getMoneyDevKit();
|
|
53
|
+
const result = await mdk.checkouts.paymentReceived({
|
|
54
|
+
payments: [
|
|
55
|
+
{
|
|
56
|
+
paymentHash,
|
|
57
|
+
amountSats,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
});
|
|
61
|
+
markPaymentReceived(paymentHash);
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
export async function paymentHasBeenReceived(paymentHash) {
|
|
65
|
+
if (!paymentHash) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
log('Checking payment received for', paymentHash);
|
|
69
|
+
return hasPaymentBeenReceived(paymentHash);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/server/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handleBalance(_request: Request): Promise<Response>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getMoneyDevKit } from "../mdk";
|
|
2
|
+
function jsonResponse(status, payload) {
|
|
3
|
+
return new Response(JSON.stringify(payload ?? null), {
|
|
4
|
+
status,
|
|
5
|
+
headers: { "content-type": "application/json" },
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export async function handleBalance(_request) {
|
|
9
|
+
try {
|
|
10
|
+
const mdk = getMoneyDevKit();
|
|
11
|
+
const balance = await mdk.getBalance();
|
|
12
|
+
return jsonResponse(200, balance);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error(error);
|
|
16
|
+
return jsonResponse(500, { error: "Internal Server Error" });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/server/handlers/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,SAAS,YAAY,CAAC,MAAc,EAAE,OAAgB;IACpD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;QACnD,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAiB;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handlePayBolt12(_request: Request): Promise<Response>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { log } from "../logging";
|
|
2
|
+
import { getMoneyDevKit } from "../mdk";
|
|
3
|
+
export async function handlePayBolt12(_request) {
|
|
4
|
+
try {
|
|
5
|
+
const mdk = getMoneyDevKit();
|
|
6
|
+
const bolt12Offer = process.env.WITHDRAWAL_BOLT_12;
|
|
7
|
+
log("Initiating Bolt 12 payment flow");
|
|
8
|
+
if (!bolt12Offer) {
|
|
9
|
+
return new Response("Bolt 12 offer not configured", { status: 500 });
|
|
10
|
+
}
|
|
11
|
+
mdk.payBolt12Offer(bolt12Offer);
|
|
12
|
+
return new Response("OK", { status: 200 });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error(error);
|
|
16
|
+
return new Response("Internal Server Error", { status: 500 });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=pay_bolt_12.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay_bolt_12.js","sourceRoot":"","sources":["../../../src/server/handlers/pay_bolt_12.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiB;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAEnD,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAEvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,QAAQ,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEhC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handlePing(_request: Request): Promise<Response>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getMoneyDevKit } from "../mdk";
|
|
2
|
+
export async function handlePing(_request) {
|
|
3
|
+
try {
|
|
4
|
+
const mdk = getMoneyDevKit();
|
|
5
|
+
await mdk.syncWallets();
|
|
6
|
+
return new Response("OK", { status: 200 });
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
console.error(error);
|
|
10
|
+
return new Response("Internal Server Error", { status: 500 });
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/server/handlers/ping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAiB;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;QAC7B,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function handleMdkWebhook(request: Request): Promise<Response>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { warn } from "../logging";
|
|
3
|
+
import { getMoneyDevKit } from "../mdk";
|
|
4
|
+
import { markPaymentReceived } from "../payment-state";
|
|
5
|
+
const webhookSchema = z.object({
|
|
6
|
+
event: z.enum(["incoming-payment"]),
|
|
7
|
+
nodeId: z.string(),
|
|
8
|
+
});
|
|
9
|
+
async function handleIncomingPayment() {
|
|
10
|
+
const mdk = getMoneyDevKit();
|
|
11
|
+
const payments = mdk.receivePayments();
|
|
12
|
+
if (payments.length === 0) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
payments.forEach((payment) => {
|
|
16
|
+
markPaymentReceived(payment.paymentHash);
|
|
17
|
+
});
|
|
18
|
+
try {
|
|
19
|
+
await mdk.checkouts.paymentReceived({
|
|
20
|
+
payments: payments.map((payment) => ({
|
|
21
|
+
paymentHash: payment.paymentHash,
|
|
22
|
+
amountSats: payment.amount,
|
|
23
|
+
})),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
warn("Failed to notify MoneyDevKit checkout about received payments. Will rely on local state and retry on next webhook.", error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function handleMdkWebhook(request) {
|
|
31
|
+
try {
|
|
32
|
+
const body = await request.json();
|
|
33
|
+
const parsed = webhookSchema.parse(body);
|
|
34
|
+
if (parsed.event === "incoming-payment") {
|
|
35
|
+
await handleIncomingPayment();
|
|
36
|
+
}
|
|
37
|
+
return new Response("OK", { status: 200 });
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error(error);
|
|
41
|
+
return new Response("Internal Server Error", { status: 500 });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../../src/server/handlers/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,KAAK,UAAU,qBAAqB;IAClC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC;YAClC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACnC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,MAAM;aAC3B,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CACF,oHAAoH,EACpH,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;YACxC,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,IAAI,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|