@moneydevkit/nextjs 0.1.0 → 0.1.2
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/dist/components/Checkout.d.ts +1 -7
- package/dist/components/Checkout.js +47 -58
- package/dist/components/Checkout.js.map +1 -1
- package/dist/components/checkout/ExpiredCheckout.d.ts +2 -1
- package/dist/components/checkout/ExpiredCheckout.js +2 -2
- package/dist/components/checkout/ExpiredCheckout.js.map +1 -1
- package/dist/components/checkout/PaymentReceivedCheckout.d.ts +1 -1
- package/dist/components/checkout/PaymentReceivedCheckout.js +1 -6
- package/dist/components/checkout/PaymentReceivedCheckout.js.map +1 -1
- package/dist/components/checkout/PendingPaymentCheckout.js +2 -8
- package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -1
- package/dist/hooks/useCheckout.d.ts +1 -15
- package/dist/hooks/useCheckout.js +6 -21
- package/dist/hooks/useCheckout.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/next-plugin.d.ts +0 -6
- package/dist/next-plugin.js +2 -19
- package/dist/next-plugin.js.map +1 -1
- package/dist/server/actions.d.ts +5 -2
- package/dist/server/actions.js +26 -19
- package/dist/server/actions.js.map +1 -1
- package/dist/server/handlers/balance.js +3 -3
- package/dist/server/handlers/balance.js.map +1 -1
- package/dist/server/handlers/list_channels.d.ts +1 -0
- package/dist/server/handlers/list_channels.js +15 -0
- package/dist/server/handlers/list_channels.js.map +1 -0
- package/dist/server/handlers/pay_bolt_11.d.ts +1 -0
- package/dist/server/handlers/pay_bolt_11.js +19 -0
- package/dist/server/handlers/pay_bolt_11.js.map +1 -0
- package/dist/server/handlers/pay_bolt_12.js +3 -3
- package/dist/server/handlers/pay_bolt_12.js.map +1 -1
- package/dist/server/handlers/pay_ln_url.d.ts +1 -0
- package/dist/server/handlers/pay_ln_url.js +25 -0
- package/dist/server/handlers/pay_ln_url.js.map +1 -0
- package/dist/server/handlers/ping.js +3 -3
- package/dist/server/handlers/ping.js.map +1 -1
- package/dist/server/handlers/webhooks.js +5 -4
- package/dist/server/handlers/webhooks.js.map +1 -1
- package/dist/server/lightning-node.d.ts +43 -0
- package/dist/server/lightning-node.js +140 -0
- package/dist/server/lightning-node.js.map +1 -0
- package/dist/server/mdk-client.d.ts +3342 -0
- package/dist/server/mdk-client.js +38 -0
- package/dist/server/mdk-client.js.map +1 -0
- package/dist/server/mdk-config.d.ts +18 -0
- package/dist/server/mdk-config.js +19 -0
- package/dist/server/mdk-config.js.map +1 -0
- package/dist/server/mdk.d.ts +5 -6
- package/dist/server/mdk.js +28 -40
- package/dist/server/mdk.js.map +1 -1
- package/dist/server/money-dev-kit.d.ts +6 -3369
- package/dist/server/money-dev-kit.js +2 -164
- package/dist/server/money-dev-kit.js.map +1 -1
- package/dist/server/route.d.ts +1 -1
- package/dist/server/route.js +7 -1
- package/dist/server/route.js.map +1 -1
- package/dist/server/runtime.d.ts +2 -2
- package/dist/server/runtime.js +2 -2
- package/dist/server/runtime.js.map +1 -1
- package/dist/server/undici-dispatcher.d.ts +4 -0
- package/dist/server/undici-dispatcher.js +13 -0
- package/dist/server/undici-dispatcher.js.map +1 -0
- package/package.json +6 -5
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createORPCClient } from '@orpc/client';
|
|
2
|
+
import { RPCLink } from '@orpc/client/fetch';
|
|
3
|
+
import './undici-dispatcher';
|
|
4
|
+
export class MoneyDevKitClient {
|
|
5
|
+
client;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
const link = new RPCLink({
|
|
8
|
+
url: options.baseUrl,
|
|
9
|
+
headers: () => ({
|
|
10
|
+
'x-api-key': options.accessToken,
|
|
11
|
+
}),
|
|
12
|
+
});
|
|
13
|
+
this.client = createORPCClient(link);
|
|
14
|
+
}
|
|
15
|
+
get checkouts() {
|
|
16
|
+
return {
|
|
17
|
+
get: async (params) => {
|
|
18
|
+
return await this.client.checkout.get(params);
|
|
19
|
+
},
|
|
20
|
+
create: async (fields, nodeId) => {
|
|
21
|
+
return await this.client.checkout.create({
|
|
22
|
+
...fields,
|
|
23
|
+
nodeId,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
confirm: async (params) => {
|
|
27
|
+
return await this.client.checkout.confirm(params);
|
|
28
|
+
},
|
|
29
|
+
registerInvoice: async (params) => {
|
|
30
|
+
return await this.client.checkout.registerInvoice(params);
|
|
31
|
+
},
|
|
32
|
+
paymentReceived: async (params) => {
|
|
33
|
+
return await this.client.checkout.paymentReceived(params);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=mdk-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdk-client.js","sourceRoot":"","sources":["../../src/server/mdk-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAI5C,OAAO,qBAAqB,CAAA;AAO5B,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAuC;IAErD,YAAY,OAAiC;QAC3C,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC;YACvB,GAAG,EAAE,OAAO,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC;SACH,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,SAAS;QACX,OAAO;YACL,GAAG,EAAE,KAAK,EAAE,MAAsD,EAAE,EAAE;gBACpE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,EAAE,KAAK,EACX,MAAyE,EACzE,MAAc,EACd,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvC,GAAG,MAAM;oBACT,MAAM;iBACP,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAA0D,EAAE,EAAE;gBAC5E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnD,CAAC;YACD,eAAe,EAAE,KAAK,EACpB,MAAkE,EAClE,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;YACD,eAAe,EAAE,KAAK,EACpB,MAAkE,EAClE,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;SACF,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const MAINNET_MDK_BASE_URL = "https://moneydevkit.com/rpc";
|
|
2
|
+
export declare const SIGNET_MDK_BASE_URL = "https://staging.moneydevkit.com/rpc";
|
|
3
|
+
export declare const MAINNET_MDK_NODE_OPTIONS: {
|
|
4
|
+
readonly network: "mainnet";
|
|
5
|
+
readonly vssUrl: "https://vss.moneydevkit.com/vss";
|
|
6
|
+
readonly esploraUrl: "https://esplora.moneydevkit.com/api";
|
|
7
|
+
readonly rgsUrl: "https://rapidsync.lightningdevkit.org/snapshot";
|
|
8
|
+
readonly lspNodeId: "02a63339cc6b913b6330bd61b2f469af8785a6011a6305bb102298a8e76697473b";
|
|
9
|
+
readonly lspAddress: "lsp.moneydevkit.com:9735";
|
|
10
|
+
};
|
|
11
|
+
export declare const SIGNET_MDK_NODE_OPTIONS: {
|
|
12
|
+
readonly network: "signet";
|
|
13
|
+
readonly vssUrl: "https://vss.staging.moneydevkit.com/vss";
|
|
14
|
+
readonly esploraUrl: "https://mutinynet.com/api";
|
|
15
|
+
readonly rgsUrl: "https://rgs.mutinynet.com/snapshot";
|
|
16
|
+
readonly lspNodeId: "03fd9a377576df94cc7e458471c43c400630655083dee89df66c6ad38d1b7acffd";
|
|
17
|
+
readonly lspAddress: "lsp.staging.moneydevkit.com:9735";
|
|
18
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const MAINNET_MDK_BASE_URL = 'https://moneydevkit.com/rpc';
|
|
2
|
+
export const SIGNET_MDK_BASE_URL = 'https://staging.moneydevkit.com/rpc';
|
|
3
|
+
export const MAINNET_MDK_NODE_OPTIONS = {
|
|
4
|
+
network: 'mainnet',
|
|
5
|
+
vssUrl: 'https://vss.moneydevkit.com/vss',
|
|
6
|
+
esploraUrl: 'https://esplora.moneydevkit.com/api',
|
|
7
|
+
rgsUrl: 'https://rapidsync.lightningdevkit.org/snapshot',
|
|
8
|
+
lspNodeId: '02a63339cc6b913b6330bd61b2f469af8785a6011a6305bb102298a8e76697473b',
|
|
9
|
+
lspAddress: 'lsp.moneydevkit.com:9735',
|
|
10
|
+
};
|
|
11
|
+
export const SIGNET_MDK_NODE_OPTIONS = {
|
|
12
|
+
network: 'signet',
|
|
13
|
+
vssUrl: 'https://vss.staging.moneydevkit.com/vss',
|
|
14
|
+
esploraUrl: 'https://mutinynet.com/api',
|
|
15
|
+
rgsUrl: 'https://rgs.mutinynet.com/snapshot',
|
|
16
|
+
lspNodeId: '03fd9a377576df94cc7e458471c43c400630655083dee89df66c6ad38d1b7acffd',
|
|
17
|
+
lspAddress: 'lsp.staging.moneydevkit.com:9735',
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=mdk-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdk-config.js","sourceRoot":"","sources":["../../src/server/mdk-config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,6BAA6B,CAAA;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qCAAqC,CAAA;AAExE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,iCAAiC;IACzC,UAAU,EAAE,qCAAqC;IACjD,MAAM,EAAE,gDAAgD;IACxD,SAAS,EAAE,oEAAoE;IAC/E,UAAU,EAAE,0BAA0B;CAC9B,CAAA;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,yCAAyC;IACjD,UAAU,EAAE,2BAA2B;IACvC,MAAM,EAAE,oCAAoC;IAC5C,SAAS,EAAE,oEAAoE;IAC/E,UAAU,EAAE,kCAAkC;CACtC,CAAA"}
|
package/dist/server/mdk.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export declare const DEFAULT_MDK_NODE_OPTIONS: NodeOptions;
|
|
1
|
+
import { MoneyDevKitNode } from './lightning-node';
|
|
2
|
+
import { MoneyDevKitClient } from './mdk-client';
|
|
3
|
+
import type { MoneyDevKitOptions } from './money-dev-kit';
|
|
5
4
|
export declare function resolveMoneyDevKitOptions(): MoneyDevKitOptions;
|
|
6
|
-
export declare function
|
|
7
|
-
export
|
|
5
|
+
export declare function createMoneyDevKitClient(): MoneyDevKitClient;
|
|
6
|
+
export declare function createMoneyDevKitNode(): MoneyDevKitNode;
|
package/dist/server/mdk.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const DEFAULT_MDK_NODE_OPTIONS = {
|
|
5
|
-
network: 'signet',
|
|
6
|
-
vssUrl: 'https://vss.staging.moneydevkit.com/vss',
|
|
7
|
-
esploraUrl: 'https://mutinynet.com/api',
|
|
8
|
-
rgsUrl: 'https://rgs.mutinynet.com/snapshot',
|
|
9
|
-
lspNodeId: '03fd9a377576df94cc7e458471c43c400630655083dee89df66c6ad38d1b7acffd',
|
|
10
|
-
lspAddress: '3.21.138.98:9735',
|
|
11
|
-
};
|
|
12
|
-
function getGlobalState() {
|
|
13
|
-
const globalObject = globalThis;
|
|
14
|
-
if (!globalObject[globalKey]) {
|
|
15
|
-
globalObject[globalKey] = { instance: null, optionsSignature: null };
|
|
16
|
-
}
|
|
17
|
-
return globalObject[globalKey];
|
|
18
|
-
}
|
|
1
|
+
import { MoneyDevKitNode } from './lightning-node';
|
|
2
|
+
import { MoneyDevKitClient } from './mdk-client';
|
|
3
|
+
import { MAINNET_MDK_BASE_URL, MAINNET_MDK_NODE_OPTIONS, SIGNET_MDK_BASE_URL, SIGNET_MDK_NODE_OPTIONS, } from './mdk-config';
|
|
19
4
|
function readEnv() {
|
|
20
5
|
const nodeOptions = {};
|
|
21
6
|
if (process.env.MDK_NETWORK) {
|
|
@@ -43,39 +28,42 @@ function readEnv() {
|
|
|
43
28
|
nodeOptions: Object.keys(nodeOptions).length > 0 ? nodeOptions : undefined,
|
|
44
29
|
};
|
|
45
30
|
}
|
|
46
|
-
function serializeOptions(options) {
|
|
47
|
-
const { accessToken, mnemonic, ...rest } = options;
|
|
48
|
-
return JSON.stringify({
|
|
49
|
-
accessToken,
|
|
50
|
-
mnemonic,
|
|
51
|
-
...rest,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
31
|
export function resolveMoneyDevKitOptions() {
|
|
55
32
|
const env = readEnv();
|
|
56
33
|
const { accessToken, mnemonic, baseUrl, nodeOptions } = env;
|
|
57
34
|
if (!accessToken || !mnemonic) {
|
|
58
35
|
throw new Error('MoneyDevKit requires MDK_ACCESS_TOKEN and MDK_MNEMONIC environment variables to be configured.');
|
|
59
36
|
}
|
|
37
|
+
const overrides = nodeOptions ?? {};
|
|
38
|
+
const networkOverride = overrides.network ?? MAINNET_MDK_NODE_OPTIONS.network;
|
|
39
|
+
const defaultNodeOptions = networkOverride === 'signet' ? SIGNET_MDK_NODE_OPTIONS : MAINNET_MDK_NODE_OPTIONS;
|
|
40
|
+
const mergedNodeOptions = {
|
|
41
|
+
...defaultNodeOptions,
|
|
42
|
+
...overrides,
|
|
43
|
+
};
|
|
44
|
+
const network = mergedNodeOptions.network ?? defaultNodeOptions.network;
|
|
45
|
+
mergedNodeOptions.network = network;
|
|
46
|
+
const resolvedBaseUrl = baseUrl ?? (network === 'signet' ? SIGNET_MDK_BASE_URL : MAINNET_MDK_BASE_URL);
|
|
60
47
|
return {
|
|
61
48
|
accessToken,
|
|
62
49
|
mnemonic,
|
|
63
|
-
baseUrl,
|
|
64
|
-
nodeOptions:
|
|
65
|
-
...DEFAULT_MDK_NODE_OPTIONS,
|
|
66
|
-
...nodeOptions,
|
|
67
|
-
},
|
|
50
|
+
baseUrl: resolvedBaseUrl,
|
|
51
|
+
nodeOptions: mergedNodeOptions,
|
|
68
52
|
};
|
|
69
53
|
}
|
|
70
|
-
export function
|
|
71
|
-
const state = getGlobalState();
|
|
54
|
+
export function createMoneyDevKitClient() {
|
|
72
55
|
const resolved = resolveMoneyDevKitOptions();
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
56
|
+
return new MoneyDevKitClient({
|
|
57
|
+
accessToken: resolved.accessToken,
|
|
58
|
+
baseUrl: resolved.baseUrl ?? MAINNET_MDK_BASE_URL,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export function createMoneyDevKitNode() {
|
|
62
|
+
const resolved = resolveMoneyDevKitOptions();
|
|
63
|
+
return new MoneyDevKitNode({
|
|
64
|
+
accessToken: resolved.accessToken,
|
|
65
|
+
mnemonic: resolved.mnemonic,
|
|
66
|
+
nodeOptions: resolved.nodeOptions,
|
|
67
|
+
});
|
|
79
68
|
}
|
|
80
|
-
export { MoneyDevKit };
|
|
81
69
|
//# sourceMappingURL=mdk.js.map
|
package/dist/server/mdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdk.js","sourceRoot":"","sources":["../../src/server/mdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mdk.js","sourceRoot":"","sources":["../../src/server/mdk.ts"],"names":[],"mappings":"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"}
|