@moneydevkit/core 0.0.1

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.
Files changed (131) hide show
  1. package/dist/actions.d.ts +2510 -0
  2. package/dist/actions.js +77 -0
  3. package/dist/actions.js.map +1 -0
  4. package/dist/client-actions.d.ts +1665 -0
  5. package/dist/client-actions.js +28 -0
  6. package/dist/client-actions.js.map +1 -0
  7. package/dist/client.d.ts +4 -0
  8. package/dist/client.js +5 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/components/Checkout.d.ts +6 -0
  11. package/dist/components/Checkout.js +135 -0
  12. package/dist/components/Checkout.js.map +1 -0
  13. package/dist/components/checkout/ExpiredCheckout.d.ts +11 -0
  14. package/dist/components/checkout/ExpiredCheckout.js +24 -0
  15. package/dist/components/checkout/ExpiredCheckout.js.map +1 -0
  16. package/dist/components/checkout/PaymentReceivedCheckout.d.ts +6 -0
  17. package/dist/components/checkout/PaymentReceivedCheckout.js +25 -0
  18. package/dist/components/checkout/PaymentReceivedCheckout.js.map +1 -0
  19. package/dist/components/checkout/PendingPaymentCheckout.d.ts +9 -0
  20. package/dist/components/checkout/PendingPaymentCheckout.js +62 -0
  21. package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -0
  22. package/dist/components/checkout/UnconfirmedCheckout.d.ts +9 -0
  23. package/dist/components/checkout/UnconfirmedCheckout.js +53 -0
  24. package/dist/components/checkout/UnconfirmedCheckout.js.map +1 -0
  25. package/dist/components/ui/button.d.ts +10 -0
  26. package/dist/components/ui/button.js +32 -0
  27. package/dist/components/ui/button.js.map +1 -0
  28. package/dist/components/ui/card.d.ts +9 -0
  29. package/dist/components/ui/card.js +25 -0
  30. package/dist/components/ui/card.js.map +1 -0
  31. package/dist/components/ui/collapsible.d.ts +5 -0
  32. package/dist/components/ui/collapsible.js +14 -0
  33. package/dist/components/ui/collapsible.js.map +1 -0
  34. package/dist/components/ui/dialog.d.ts +15 -0
  35. package/dist/components/ui/dialog.js +37 -0
  36. package/dist/components/ui/dialog.js.map +1 -0
  37. package/dist/components/ui/drawer.d.ts +13 -0
  38. package/dist/components/ui/drawer.js +36 -0
  39. package/dist/components/ui/drawer.js.map +1 -0
  40. package/dist/components/ui/form.d.ts +24 -0
  41. package/dist/components/ui/form.js +60 -0
  42. package/dist/components/ui/form.js.map +1 -0
  43. package/dist/components/ui/input.d.ts +3 -0
  44. package/dist/components/ui/input.js +7 -0
  45. package/dist/components/ui/input.js.map +1 -0
  46. package/dist/components/ui/label.d.ts +4 -0
  47. package/dist/components/ui/label.js +9 -0
  48. package/dist/components/ui/label.js.map +1 -0
  49. package/dist/components/ui/select.d.ts +15 -0
  50. package/dist/components/ui/select.js +39 -0
  51. package/dist/components/ui/select.js.map +1 -0
  52. package/dist/components/ui/textarea.d.ts +3 -0
  53. package/dist/components/ui/textarea.js +7 -0
  54. package/dist/components/ui/textarea.js.map +1 -0
  55. package/dist/constants.d.ts +1 -0
  56. package/dist/constants.js +2 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/handlers/balance.d.ts +1 -0
  59. package/dist/handlers/balance.js +19 -0
  60. package/dist/handlers/balance.js.map +1 -0
  61. package/dist/handlers/checkout.d.ts +2 -0
  62. package/dist/handlers/checkout.js +62 -0
  63. package/dist/handlers/checkout.js.map +1 -0
  64. package/dist/handlers/index.d.ts +7 -0
  65. package/dist/handlers/index.js +8 -0
  66. package/dist/handlers/index.js.map +1 -0
  67. package/dist/handlers/list_channels.d.ts +1 -0
  68. package/dist/handlers/list_channels.js +15 -0
  69. package/dist/handlers/list_channels.js.map +1 -0
  70. package/dist/handlers/pay_bolt_11.d.ts +1 -0
  71. package/dist/handlers/pay_bolt_11.js +19 -0
  72. package/dist/handlers/pay_bolt_11.js.map +1 -0
  73. package/dist/handlers/pay_bolt_12.d.ts +1 -0
  74. package/dist/handlers/pay_bolt_12.js +25 -0
  75. package/dist/handlers/pay_bolt_12.js.map +1 -0
  76. package/dist/handlers/pay_ln_url.d.ts +1 -0
  77. package/dist/handlers/pay_ln_url.js +25 -0
  78. package/dist/handlers/pay_ln_url.js.map +1 -0
  79. package/dist/handlers/ping.d.ts +1 -0
  80. package/dist/handlers/ping.js +13 -0
  81. package/dist/handlers/ping.js.map +1 -0
  82. package/dist/handlers/webhooks.d.ts +1 -0
  83. package/dist/handlers/webhooks.js +45 -0
  84. package/dist/handlers/webhooks.js.map +1 -0
  85. package/dist/hooks/useCheckout.d.ts +5 -0
  86. package/dist/hooks/useCheckout.js +26 -0
  87. package/dist/hooks/useCheckout.js.map +1 -0
  88. package/dist/hooks/useCheckoutSuccess.d.ts +5 -0
  89. package/dist/hooks/useCheckoutSuccess.js +69 -0
  90. package/dist/hooks/useCheckoutSuccess.js.map +1 -0
  91. package/dist/index.d.ts +9 -0
  92. package/dist/index.js +10 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/lib/utils.d.ts +2 -0
  95. package/dist/lib/utils.js +6 -0
  96. package/dist/lib/utils.js.map +1 -0
  97. package/dist/lightning-logs.d.ts +5 -0
  98. package/dist/lightning-logs.js +170 -0
  99. package/dist/lightning-logs.js.map +1 -0
  100. package/dist/lightning-node.d.ts +42 -0
  101. package/dist/lightning-node.js +141 -0
  102. package/dist/lightning-node.js.map +1 -0
  103. package/dist/logging.d.ts +3 -0
  104. package/dist/logging.js +17 -0
  105. package/dist/logging.js.map +1 -0
  106. package/dist/mdk-client.d.ts +3341 -0
  107. package/dist/mdk-client.js +39 -0
  108. package/dist/mdk-client.js.map +1 -0
  109. package/dist/mdk-config.d.ts +18 -0
  110. package/dist/mdk-config.js +19 -0
  111. package/dist/mdk-config.js.map +1 -0
  112. package/dist/mdk-styles.css +2436 -0
  113. package/dist/mdk.d.ts +6 -0
  114. package/dist/mdk.js +69 -0
  115. package/dist/mdk.js.map +1 -0
  116. package/dist/money-dev-kit.d.ts +11 -0
  117. package/dist/money-dev-kit.js +3 -0
  118. package/dist/money-dev-kit.js.map +1 -0
  119. package/dist/payment-state.d.ts +3 -0
  120. package/dist/payment-state.js +32 -0
  121. package/dist/payment-state.js.map +1 -0
  122. package/dist/providers.d.ts +7 -0
  123. package/dist/providers.js +16 -0
  124. package/dist/providers.js.map +1 -0
  125. package/dist/route.d.ts +9 -0
  126. package/dist/route.js +133 -0
  127. package/dist/route.js.map +1 -0
  128. package/dist/undici-dispatcher.d.ts +4 -0
  129. package/dist/undici-dispatcher.js +13 -0
  130. package/dist/undici-dispatcher.js.map +1 -0
  131. package/package.json +71 -0
package/dist/mdk.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { MoneyDevKitNode } from './lightning-node';
2
+ import { MoneyDevKitClient } from './mdk-client';
3
+ import type { MoneyDevKitOptions } from './money-dev-kit';
4
+ export declare function resolveMoneyDevKitOptions(): MoneyDevKitOptions;
5
+ export declare function createMoneyDevKitClient(): MoneyDevKitClient;
6
+ export declare function createMoneyDevKitNode(): MoneyDevKitNode;
package/dist/mdk.js ADDED
@@ -0,0 +1,69 @@
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';
4
+ function readEnv() {
5
+ const nodeOptions = {};
6
+ if (process.env.MDK_NETWORK) {
7
+ nodeOptions.network = process.env.MDK_NETWORK;
8
+ }
9
+ if (process.env.MDK_VSS_URL) {
10
+ nodeOptions.vssUrl = process.env.MDK_VSS_URL;
11
+ }
12
+ if (process.env.MDK_ESPLORA_URL) {
13
+ nodeOptions.esploraUrl = process.env.MDK_ESPLORA_URL;
14
+ }
15
+ if (process.env.MDK_RGS_URL) {
16
+ nodeOptions.rgsUrl = process.env.MDK_RGS_URL;
17
+ }
18
+ if (process.env.MDK_LSP_NODE_ID) {
19
+ nodeOptions.lspNodeId = process.env.MDK_LSP_NODE_ID;
20
+ }
21
+ if (process.env.MDK_LSP_ADDRESS) {
22
+ nodeOptions.lspAddress = process.env.MDK_LSP_ADDRESS;
23
+ }
24
+ return {
25
+ accessToken: process.env.MDK_ACCESS_TOKEN,
26
+ mnemonic: process.env.MDK_MNEMONIC,
27
+ baseUrl: process.env.MDK_API_BASE_URL,
28
+ nodeOptions: Object.keys(nodeOptions).length > 0 ? nodeOptions : undefined,
29
+ };
30
+ }
31
+ export function resolveMoneyDevKitOptions() {
32
+ const env = readEnv();
33
+ const { accessToken, mnemonic, baseUrl, nodeOptions } = env;
34
+ if (!accessToken || !mnemonic) {
35
+ throw new Error('MoneyDevKit requires MDK_ACCESS_TOKEN and MDK_MNEMONIC environment variables to be configured.');
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);
47
+ return {
48
+ accessToken,
49
+ mnemonic,
50
+ baseUrl: resolvedBaseUrl,
51
+ nodeOptions: mergedNodeOptions,
52
+ };
53
+ }
54
+ export function createMoneyDevKitClient() {
55
+ const resolved = resolveMoneyDevKitOptions();
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
+ });
68
+ }
69
+ //# sourceMappingURL=mdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdk.js","sourceRoot":"","sources":["../src/mdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { MoneyDevKitClient } from './mdk-client';
2
+ export type { MoneyDevKitClientOptions } from './mdk-client';
3
+ export { MoneyDevKitNode } from './lightning-node';
4
+ import type { MoneyDevKitNodeOptions } from './lightning-node';
5
+ export type { MoneyDevKitNodeOptions };
6
+ export interface MoneyDevKitOptions {
7
+ accessToken: string;
8
+ mnemonic: string;
9
+ baseUrl?: string;
10
+ nodeOptions?: MoneyDevKitNodeOptions['nodeOptions'];
11
+ }
@@ -0,0 +1,3 @@
1
+ export { MoneyDevKitClient } from './mdk-client';
2
+ export { MoneyDevKitNode } from './lightning-node';
3
+ //# sourceMappingURL=money-dev-kit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money-dev-kit.js","sourceRoot":"","sources":["../src/money-dev-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function markPaymentReceived(paymentHash: string): void;
2
+ export declare function hasPaymentBeenReceived(paymentHash: string): boolean;
3
+ export declare function clearPayment(paymentHash: string): void;
@@ -0,0 +1,32 @@
1
+ import { log } from './logging';
2
+ const globalKey = Symbol.for('mdk-checkout:payment-state');
3
+ function getGlobalPaymentState() {
4
+ const globalObject = globalThis;
5
+ if (!globalObject[globalKey]) {
6
+ globalObject[globalKey] = {
7
+ receivedPaymentHashes: new Set(),
8
+ };
9
+ }
10
+ return globalObject[globalKey];
11
+ }
12
+ export function markPaymentReceived(paymentHash) {
13
+ if (!paymentHash)
14
+ return;
15
+ const state = getGlobalPaymentState();
16
+ state.receivedPaymentHashes.add(paymentHash);
17
+ }
18
+ export function hasPaymentBeenReceived(paymentHash) {
19
+ if (!paymentHash)
20
+ return false;
21
+ log('hasPaymentBeenReceived. Checking payment received for', paymentHash);
22
+ const state = getGlobalPaymentState();
23
+ log('hasPaymentBeenReceived. Current received payments:', Array.from(state.receivedPaymentHashes));
24
+ return state.receivedPaymentHashes.has(paymentHash);
25
+ }
26
+ export function clearPayment(paymentHash) {
27
+ if (!paymentHash)
28
+ return;
29
+ const state = getGlobalPaymentState();
30
+ state.receivedPaymentHashes.delete(paymentHash);
31
+ }
32
+ //# sourceMappingURL=payment-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-state.js","sourceRoot":"","sources":["../src/payment-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAM1D,SAAS,qBAAqB;IAC5B,MAAM,YAAY,GAAG,UAEpB,CAAA;IAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,YAAY,CAAC,SAAS,CAAC,GAAG;YACxB,qBAAqB,EAAE,IAAI,GAAG,EAAU;SACzC,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAC,SAAS,CAAE,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAA;IACrC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IAC9B,GAAG,CAAC,uDAAuD,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAA;IACrC,GAAG,CAAC,oDAAoD,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAClG,OAAO,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAA;IACrC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACjD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type QueryClient } from '@tanstack/react-query';
3
+ export interface MdkCheckoutProviderProps {
4
+ children: ReactNode;
5
+ queryClient?: QueryClient;
6
+ }
7
+ export declare function MdkCheckoutProvider({ children, queryClient }: MdkCheckoutProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { QueryClient as ReactQueryClient, QueryClientProvider, } from '@tanstack/react-query';
4
+ const DEFAULT_QUERY_CLIENT_CONFIG = {
5
+ defaultOptions: {
6
+ queries: {
7
+ staleTime: 60 * 1000,
8
+ gcTime: 10 * 60 * 1000,
9
+ },
10
+ },
11
+ };
12
+ export function MdkCheckoutProvider({ children, queryClient }) {
13
+ const [client] = useState(() => queryClient ?? new ReactQueryClient(DEFAULT_QUERY_CLIENT_CONFIG));
14
+ return (_jsx(QueryClientProvider, { client: client, children: _jsx("div", { className: "mdk-checkout", children: children }) }));
15
+ }
16
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAChD,OAAO,EACL,WAAW,IAAI,gBAAgB,EAC/B,mBAAmB,GAGpB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,2BAA2B,GAAsB;IACrD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,SAAS,EAAE,EAAE,GAAG,IAAI;YACpB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;SACvB;KACF;CACF,CAAA;AAOD,MAAM,UAAU,mBAAmB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAA4B;IACrF,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,IAAI,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAEjG,OAAO,CACL,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,YACjC,cAAK,SAAS,EAAC,cAAc,YAAE,QAAQ,GAAO,GAC1B,CACvB,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export type RouteHandler = (request: Request) => Promise<Response>;
3
+ declare const routeSchema: z.ZodEnum<["webhook", "webhooks", "pay_bolt_12", "balance", "ping", "pay_ln_url", "list_channels", "pay_bolt11", "create_checkout", "get_checkout"]>;
4
+ export type UnifiedRoute = z.infer<typeof routeSchema>;
5
+ export declare function __setHandlerForTest(route: UnifiedRoute, handler: RouteHandler | null): void;
6
+ export declare function __resetHandlersForTest(): void;
7
+ export declare function createUnifiedHandler(): (request: Request) => Promise<Response>;
8
+ export declare function POST(request: Request): Promise<Response>;
9
+ export {};
package/dist/route.js ADDED
@@ -0,0 +1,133 @@
1
+ import { z } from 'zod';
2
+ import { handleBalance } from './handlers/balance';
3
+ import { handleCreateCheckout, handleGetCheckout } from './handlers/checkout';
4
+ import { listChannels } from './handlers/list_channels';
5
+ import { handlePayBolt11 } from './handlers/pay_bolt_11';
6
+ import { handlePayBolt12 } from './handlers/pay_bolt_12';
7
+ import { handlePayLNUrl } from './handlers/pay_ln_url';
8
+ import { handlePing } from './handlers/ping';
9
+ import { handleMdkWebhook } from './handlers/webhooks';
10
+ import { log } from './logging';
11
+ const WEBHOOK_SECRET_HEADER = 'x-moneydevkit-webhook-secret';
12
+ const routeSchema = z.enum([
13
+ 'webhook',
14
+ 'webhooks',
15
+ 'pay_bolt_12',
16
+ 'balance',
17
+ 'ping',
18
+ 'pay_ln_url',
19
+ 'list_channels',
20
+ 'pay_bolt11',
21
+ 'create_checkout',
22
+ 'get_checkout',
23
+ ]);
24
+ const HANDLERS = {};
25
+ function assignDefaultHandlers() {
26
+ HANDLERS.webhook = handleMdkWebhook;
27
+ HANDLERS.webhooks = handleMdkWebhook;
28
+ HANDLERS.pay_bolt_12 = handlePayBolt12;
29
+ HANDLERS.balance = handleBalance;
30
+ HANDLERS.ping = handlePing;
31
+ HANDLERS.pay_ln_url = handlePayLNUrl;
32
+ HANDLERS.list_channels = listChannels;
33
+ HANDLERS.pay_bolt11 = handlePayBolt11;
34
+ HANDLERS.create_checkout = handleCreateCheckout;
35
+ HANDLERS.get_checkout = handleGetCheckout;
36
+ }
37
+ assignDefaultHandlers();
38
+ const ROUTE_BODY_KEYS = ['handler', 'route', 'target'];
39
+ function jsonResponse(status, body) {
40
+ return new Response(JSON.stringify(body), {
41
+ status,
42
+ headers: { 'content-type': 'application/json' },
43
+ });
44
+ }
45
+ function validateWebhookSecret(request) {
46
+ const expectedSecret = process.env.MDK_WEBHOOK_SECRET;
47
+ if (!expectedSecret) {
48
+ console.error('MDK_WEBHOOK_SECRET environment variable is not configured.');
49
+ return jsonResponse(500, { error: 'Webhook secret is not configured.' });
50
+ }
51
+ const providedSecret = request.headers.get(WEBHOOK_SECRET_HEADER);
52
+ if (!providedSecret || providedSecret !== expectedSecret) {
53
+ log('Unauthorized webhook request received.');
54
+ log(`Expected secret: ${expectedSecret}`);
55
+ log(`Provided secret: ${providedSecret}`);
56
+ return jsonResponse(401, { error: 'Unauthorized' });
57
+ }
58
+ return null;
59
+ }
60
+ export function __setHandlerForTest(route, handler) {
61
+ if (handler) {
62
+ HANDLERS[route] = handler;
63
+ }
64
+ else {
65
+ delete HANDLERS[route];
66
+ }
67
+ }
68
+ export function __resetHandlersForTest() {
69
+ assignDefaultHandlers();
70
+ }
71
+ async function resolveRoute(request) {
72
+ const contentType = request.headers.get('content-type') ?? '';
73
+ if (!contentType.includes('application/json')) {
74
+ return null;
75
+ }
76
+ try {
77
+ const body = (await request.clone().json());
78
+ for (const key of ROUTE_BODY_KEYS) {
79
+ const value = body?.[key];
80
+ if (typeof value === 'string') {
81
+ const parsed = routeSchema.safeParse(value.toLowerCase());
82
+ if (parsed.success) {
83
+ return parsed.data;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ catch {
89
+ // Ignore JSON parse errors; downstream handlers will try again if needed.
90
+ }
91
+ return null;
92
+ }
93
+ function routeRequiresSecret(route) {
94
+ if (route === 'create_checkout' || route === 'get_checkout') {
95
+ return false;
96
+ }
97
+ return true;
98
+ }
99
+ async function handleRequest(request) {
100
+ const route = await resolveRoute(request);
101
+ if (!route) {
102
+ return jsonResponse(400, {
103
+ error: `Missing or invalid handler. Include a JSON body with a "handler" property set to one of ${routeSchema.options.join(', ')}.`,
104
+ });
105
+ }
106
+ if (routeRequiresSecret(route)) {
107
+ const authError = validateWebhookSecret(request);
108
+ if (authError) {
109
+ return authError;
110
+ }
111
+ }
112
+ const handler = HANDLERS[route];
113
+ if (!handler) {
114
+ return jsonResponse(501, {
115
+ error: `Handler "${route}" not found.`,
116
+ });
117
+ }
118
+ try {
119
+ return await handler(request);
120
+ }
121
+ catch (error) {
122
+ console.error(error);
123
+ return jsonResponse(500, { error: 'Internal Server Error' });
124
+ }
125
+ }
126
+ export function createUnifiedHandler() {
127
+ return (request) => handleRequest(request);
128
+ }
129
+ export async function POST(request) {
130
+ const handler = createUnifiedHandler();
131
+ return handler(request);
132
+ }
133
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../src/route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare global {
2
+ var __mdkUndiciDispatcherConfigured: boolean | undefined;
3
+ }
4
+ export declare const ensureUndiciDispatcher: () => void;
@@ -0,0 +1,13 @@
1
+ import { Agent, setGlobalDispatcher } from 'undici';
2
+ export const ensureUndiciDispatcher = () => {
3
+ if (globalThis.__mdkUndiciDispatcherConfigured) {
4
+ return;
5
+ }
6
+ setGlobalDispatcher(new Agent({
7
+ keepAliveTimeout: 1,
8
+ keepAliveTimeoutThreshold: 1,
9
+ }));
10
+ globalThis.__mdkUndiciDispatcherConfigured = true;
11
+ };
12
+ ensureUndiciDispatcher();
13
+ //# sourceMappingURL=undici-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undici-dispatcher.js","sourceRoot":"","sources":["../src/undici-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAOnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,IAAI,UAAU,CAAC,+BAA+B,EAAE,CAAC;QAC/C,OAAM;IACR,CAAC;IAED,mBAAmB,CACjB,IAAI,KAAK,CAAC;QACR,gBAAgB,EAAE,CAAC;QACnB,yBAAyB,EAAE,CAAC;KAC7B,CAAC,CACH,CAAA;IAED,UAAU,CAAC,+BAA+B,GAAG,IAAI,CAAA;AACnD,CAAC,CAAA;AAED,sBAAsB,EAAE,CAAA"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@moneydevkit/core",
3
+ "version": "0.0.1",
4
+ "description": "Shared moneydevkit checkout core utilities",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./client": {
15
+ "types": "./dist/client.d.ts",
16
+ "import": "./dist/client.js",
17
+ "default": "./dist/client.js"
18
+ },
19
+ "./server": {
20
+ "types": "./dist/server.d.ts",
21
+ "import": "./dist/server.js",
22
+ "default": "./dist/server.js"
23
+ },
24
+ "./mdk-styles.css": "./dist/mdk-styles.css",
25
+ "./route": {
26
+ "types": "./dist/route.d.ts",
27
+ "import": "./dist/route.js",
28
+ "default": "./dist/route.js"
29
+ },
30
+ "./package.json": "./package.json"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "scripts": {
36
+ "build": "rm -rf dist && tsc -p tsconfig.json && npm run copy-css",
37
+ "copy-css": "node scripts/copy-styles.mjs",
38
+ "clean": "rm -rf dist",
39
+ "typecheck": "tsc --noEmit"
40
+ },
41
+ "dependencies": {
42
+ "@hookform/resolvers": "^5.0.1",
43
+ "@moneydevkit/api-contract": "^0.1.10",
44
+ "@moneydevkit/lightning-js": "^0.1.51",
45
+ "@orpc/client": "1.3.0",
46
+ "@orpc/contract": "1.3.0",
47
+ "@radix-ui/react-collapsible": "^1.1.11",
48
+ "@radix-ui/react-dialog": "^1.1.14",
49
+ "@radix-ui/react-label": "^2.1.7",
50
+ "@radix-ui/react-select": "^2.2.5",
51
+ "@radix-ui/react-slot": "^1.2.3",
52
+ "@tanstack/react-query": "^5.79.0",
53
+ "class-variance-authority": "^0.7.1",
54
+ "clsx": "^2.1.1",
55
+ "lucide-react": "^0.511.0",
56
+ "qrcode.react": "^4.2.0",
57
+ "react-hook-form": "^7.56.4",
58
+ "tailwind-merge": "^3.3.0",
59
+ "undici": "^7.16.0",
60
+ "vaul": "^1.1.2",
61
+ "zod": "^3.25.42"
62
+ },
63
+ "devDependencies": {
64
+ "@types/node": "^20.10.5",
65
+ "typescript": "^5.6.3"
66
+ },
67
+ "peerDependencies": {
68
+ "react": "^18 || ^19",
69
+ "react-dom": "^18 || ^19"
70
+ }
71
+ }