@moneydevkit/core 0.7.0-beta.1 → 0.7.0-beta.10

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 (42) hide show
  1. package/dist/actions.d.ts +26 -10
  2. package/dist/actions.js +14 -6
  3. package/dist/actions.js.map +1 -1
  4. package/dist/client-actions.d.ts +2 -1
  5. package/dist/client-actions.js +7 -0
  6. package/dist/client-actions.js.map +1 -1
  7. package/dist/client.d.ts +1 -0
  8. package/dist/client.js +1 -0
  9. package/dist/client.js.map +1 -1
  10. package/dist/components/Checkout.d.ts +1 -1
  11. package/dist/components/Checkout.js +36 -1
  12. package/dist/components/Checkout.js.map +1 -1
  13. package/dist/components/checkout/PendingPaymentCheckout.js +27 -7
  14. package/dist/components/checkout/PendingPaymentCheckout.js.map +1 -1
  15. package/dist/components/checkout/UnconfirmedCheckout.js +46 -1
  16. package/dist/components/checkout/UnconfirmedCheckout.js.map +1 -1
  17. package/dist/handlers/checkout.d.ts +52 -0
  18. package/dist/handlers/checkout.js +191 -4
  19. package/dist/handlers/checkout.js.map +1 -1
  20. package/dist/handlers/products.d.ts +1 -0
  21. package/dist/handlers/products.js +18 -0
  22. package/dist/handlers/products.js.map +1 -0
  23. package/dist/hooks/useCheckout.d.ts +18 -0
  24. package/dist/hooks/useCheckout.js +18 -0
  25. package/dist/hooks/useCheckout.js.map +1 -1
  26. package/dist/hooks/useProducts.d.ts +17 -0
  27. package/dist/hooks/useProducts.js +34 -0
  28. package/dist/hooks/useProducts.js.map +1 -0
  29. package/dist/lightning-node.js +3 -3
  30. package/dist/lightning-node.js.map +1 -1
  31. package/dist/mdk-client.d.ts +18 -2
  32. package/dist/mdk-client.js +10 -1
  33. package/dist/mdk-client.js.map +1 -1
  34. package/dist/preview.js +10 -1
  35. package/dist/preview.js.map +1 -1
  36. package/dist/route.d.ts +17 -2
  37. package/dist/route.js +67 -1
  38. package/dist/route.js.map +1 -1
  39. package/dist/startup-validation.d.ts +3 -3
  40. package/dist/startup-validation.js +4 -30
  41. package/dist/startup-validation.js.map +1 -1
  42. package/package.json +3 -4
@@ -1,3 +1,55 @@
1
+ import type { CreateCheckoutParams } from '../actions';
1
2
  export declare function handleCreateCheckout(request: Request): Promise<Response>;
2
3
  export declare function handleGetCheckout(request: Request): Promise<Response>;
3
4
  export declare function handleConfirmCheckout(request: Request): Promise<Response>;
5
+ export interface CreateCheckoutUrlOptions {
6
+ basePath?: string;
7
+ }
8
+ /**
9
+ * Generate a signed checkout URL for URL-based checkout creation.
10
+ * All params are HMAC-signed using MDK_ACCESS_TOKEN to prevent tampering.
11
+ *
12
+ * @example
13
+ * const url = createCheckoutUrl({
14
+ * title: 'Product',
15
+ * description: 'Payment for product',
16
+ * amount: 2999,
17
+ * currency: 'USD',
18
+ * })
19
+ * // Returns: /api/mdk?action=createCheckout&amount=2999&...&signature=abc123
20
+ */
21
+ export declare function createCheckoutUrl(params: CreateCheckoutParams, options?: CreateCheckoutUrlOptions): string;
22
+ /**
23
+ * Verify the HMAC signature of checkout URL params.
24
+ * Uses constant-time comparison to prevent timing attacks.
25
+ */
26
+ export declare function verifyCheckoutSignature(params: URLSearchParams, signature: string): boolean;
27
+ /**
28
+ * Parse URL query params into checkout params.
29
+ * Handles JSON parsing for nested objects (metadata, customer, requireCustomerData).
30
+ */
31
+ export declare function parseCheckoutQueryParams(params: URLSearchParams): Record<string, unknown>;
32
+ /**
33
+ * Validates and sanitizes checkoutPath to prevent open redirect attacks.
34
+ * Returns a safe relative path or the default '/checkout'.
35
+ *
36
+ * Security considerations:
37
+ * - Must start with / (relative path)
38
+ * - Must not contain :// or // (prevents protocol-relative URLs and absolute URLs)
39
+ */
40
+ export declare function sanitizeCheckoutPath(checkoutPath: string | null): string;
41
+ /**
42
+ * Create a checkout from parsed query params.
43
+ * Validates against the same schema as handleCreateCheckout.
44
+ */
45
+ export declare function handleCreateCheckoutFromUrl(params: Record<string, unknown>): Promise<{
46
+ error: {
47
+ code: string;
48
+ message: string;
49
+ };
50
+ } | {
51
+ data: {
52
+ id: string;
53
+ checkoutPath: string;
54
+ };
55
+ }>;
@@ -1,3 +1,4 @@
1
+ import { createHmac, timingSafeEqual } from 'crypto';
1
2
  import { z } from 'zod';
2
3
  import { confirmCheckout, createCheckout, getCheckout } from '../actions';
3
4
  import { validateMetadata } from '@moneydevkit/api-contract';
@@ -10,10 +11,7 @@ const customerInputSchema = z.object({
10
11
  email: z.string().email().optional().or(z.literal('')),
11
12
  externalId: z.string().optional(),
12
13
  }).catchall(z.string());
13
- const createCheckoutSchema = z.object({
14
- title: z.string(),
15
- description: z.string(),
16
- amount: z.number(),
14
+ const commonCheckoutFields = {
17
15
  currency: z.enum(['USD', 'SAT']).optional(),
18
16
  successUrl: z.string().optional(),
19
17
  checkoutPath: z.string().optional(),
@@ -32,10 +30,30 @@ const createCheckoutSchema = z.object({
32
30
  }),
33
31
  customer: customerInputSchema.optional(),
34
32
  requireCustomerData: z.array(z.string()).optional(),
33
+ };
34
+ const amountCheckoutSchema = z.object({
35
+ type: z.literal('AMOUNT'),
36
+ amount: z.number(),
37
+ title: z.string().optional(),
38
+ description: z.string().optional(),
39
+ ...commonCheckoutFields,
40
+ });
41
+ const productCheckoutSchema = z.object({
42
+ type: z.literal('PRODUCTS'),
43
+ product: z.string(),
44
+ ...commonCheckoutFields,
35
45
  });
46
+ const createCheckoutSchema = z.discriminatedUnion('type', [
47
+ amountCheckoutSchema,
48
+ productCheckoutSchema,
49
+ ]);
36
50
  const confirmCheckoutSchema = z.object({
37
51
  checkoutId: z.string(),
38
52
  customer: customerInputSchema.optional(),
53
+ products: z.array(z.object({
54
+ productId: z.string(),
55
+ priceAmount: z.number().optional(),
56
+ })).max(1).optional(),
39
57
  });
40
58
  function jsonResponse(status, body) {
41
59
  return new Response(JSON.stringify(body), {
@@ -108,4 +126,173 @@ export async function handleConfirmCheckout(request) {
108
126
  return jsonResponse(500, { error: 'Failed to confirm checkout' });
109
127
  }
110
128
  }
129
+ /**
130
+ * Generate a signed checkout URL for URL-based checkout creation.
131
+ * All params are HMAC-signed using MDK_ACCESS_TOKEN to prevent tampering.
132
+ *
133
+ * @example
134
+ * const url = createCheckoutUrl({
135
+ * title: 'Product',
136
+ * description: 'Payment for product',
137
+ * amount: 2999,
138
+ * currency: 'USD',
139
+ * })
140
+ * // Returns: /api/mdk?action=createCheckout&amount=2999&...&signature=abc123
141
+ */
142
+ export function createCheckoutUrl(params, options) {
143
+ const basePath = options?.basePath ?? '/api/mdk';
144
+ const accessToken = process.env.MDK_ACCESS_TOKEN;
145
+ if (!accessToken) {
146
+ throw new Error('MDK_ACCESS_TOKEN is required for creating checkout URLs');
147
+ }
148
+ // Build URL params
149
+ const urlParams = new URLSearchParams();
150
+ urlParams.set('action', 'createCheckout');
151
+ // Add all params, JSON-stringify objects
152
+ for (const [key, value] of Object.entries(params)) {
153
+ if (value === undefined)
154
+ continue;
155
+ if (typeof value === 'object' && value !== null) {
156
+ urlParams.set(key, JSON.stringify(value));
157
+ }
158
+ else {
159
+ urlParams.set(key, String(value));
160
+ }
161
+ }
162
+ // Sort params alphabetically for consistent signature
163
+ urlParams.sort();
164
+ const canonicalString = urlParams.toString();
165
+ // Compute HMAC-SHA256 signature
166
+ const signature = createHmac('sha256', accessToken)
167
+ .update(canonicalString)
168
+ .digest('hex');
169
+ urlParams.set('signature', signature);
170
+ return `${basePath}?${urlParams.toString()}`;
171
+ }
172
+ /**
173
+ * Verify the HMAC signature of checkout URL params.
174
+ * Uses constant-time comparison to prevent timing attacks.
175
+ */
176
+ export function verifyCheckoutSignature(params, signature) {
177
+ const accessToken = process.env.MDK_ACCESS_TOKEN;
178
+ if (!accessToken)
179
+ return false;
180
+ // Clone params and remove signature for verification
181
+ const paramsToVerify = new URLSearchParams(params);
182
+ paramsToVerify.delete('signature');
183
+ paramsToVerify.sort();
184
+ const canonicalString = paramsToVerify.toString();
185
+ const expectedSignature = createHmac('sha256', accessToken)
186
+ .update(canonicalString)
187
+ .digest('hex');
188
+ // Constant-time comparison to prevent timing attacks
189
+ try {
190
+ const sigBuffer = Buffer.from(signature, 'hex');
191
+ const expectedBuffer = Buffer.from(expectedSignature, 'hex');
192
+ if (sigBuffer.length !== expectedBuffer.length) {
193
+ return false;
194
+ }
195
+ return timingSafeEqual(sigBuffer, expectedBuffer);
196
+ }
197
+ catch {
198
+ return false;
199
+ }
200
+ }
201
+ /**
202
+ * Parse URL query params into checkout params.
203
+ * Handles JSON parsing for nested objects (metadata, customer, requireCustomerData).
204
+ */
205
+ export function parseCheckoutQueryParams(params) {
206
+ const raw = {};
207
+ for (const [key, value] of params) {
208
+ // Skip action and signature - they're not checkout params
209
+ if (key === 'action' || key === 'signature')
210
+ continue;
211
+ // JSON parse for objects/arrays
212
+ if (key === 'metadata' || key === 'customer' || key === 'requireCustomerData' || key === 'products') {
213
+ try {
214
+ raw[key] = JSON.parse(value);
215
+ }
216
+ catch {
217
+ // If JSON parsing fails, keep as string
218
+ raw[key] = value;
219
+ }
220
+ }
221
+ else if (key === 'amount') {
222
+ // Parse amount as number
223
+ raw[key] = Number(value);
224
+ }
225
+ else {
226
+ raw[key] = value;
227
+ }
228
+ }
229
+ return raw;
230
+ }
231
+ /**
232
+ * Validates and sanitizes checkoutPath to prevent open redirect attacks.
233
+ * Returns a safe relative path or the default '/checkout'.
234
+ *
235
+ * Security considerations:
236
+ * - Must start with / (relative path)
237
+ * - Must not contain :// or // (prevents protocol-relative URLs and absolute URLs)
238
+ */
239
+ export function sanitizeCheckoutPath(checkoutPath) {
240
+ const defaultPath = '/checkout';
241
+ if (!checkoutPath) {
242
+ return defaultPath;
243
+ }
244
+ // Must start with / (relative path)
245
+ if (!checkoutPath.startsWith('/')) {
246
+ return defaultPath;
247
+ }
248
+ // Must not contain :// or // (prevents protocol-relative URLs and absolute URLs)
249
+ if (checkoutPath.includes('://') || checkoutPath.includes('//')) {
250
+ return defaultPath;
251
+ }
252
+ // Strip query string and hash - they would break URL construction when appending /{id}
253
+ // e.g., /checkout?foo=bar + /abc123 would become /checkout?foo=bar/abc123 (broken)
254
+ const queryIndex = checkoutPath.indexOf('?');
255
+ const hashIndex = checkoutPath.indexOf('#');
256
+ let endIndex = checkoutPath.length;
257
+ if (queryIndex !== -1)
258
+ endIndex = Math.min(endIndex, queryIndex);
259
+ if (hashIndex !== -1)
260
+ endIndex = Math.min(endIndex, hashIndex);
261
+ return checkoutPath.slice(0, endIndex);
262
+ }
263
+ /**
264
+ * Create a checkout from parsed query params.
265
+ * Validates against the same schema as handleCreateCheckout.
266
+ */
267
+ export async function handleCreateCheckoutFromUrl(params) {
268
+ // Infer type if not provided - the schema requires it for discriminated union
269
+ if (!params.type) {
270
+ params.type = params.products ? 'PRODUCTS' : 'AMOUNT';
271
+ }
272
+ const parsed = createCheckoutSchema.safeParse(params);
273
+ if (!parsed.success) {
274
+ const firstError = parsed.error.issues[0];
275
+ return {
276
+ error: {
277
+ code: 'validation_error',
278
+ message: firstError?.message ?? 'Invalid checkout parameters',
279
+ },
280
+ };
281
+ }
282
+ const result = await createCheckout(parsed.data);
283
+ if (result.error) {
284
+ return {
285
+ error: {
286
+ code: result.error.code,
287
+ message: result.error.message,
288
+ },
289
+ };
290
+ }
291
+ return {
292
+ data: {
293
+ id: result.data.checkout.id,
294
+ checkoutPath: parsed.data.checkoutPath ?? '/checkout',
295
+ },
296
+ };
297
+ }
111
298
  //# sourceMappingURL=checkout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/handlers/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/handlers/checkout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function handleListProducts(_request: Request): Promise<Response>;
@@ -0,0 +1,18 @@
1
+ import { listProducts } from '../actions';
2
+ function jsonResponse(status, body) {
3
+ return new Response(JSON.stringify(body), {
4
+ status,
5
+ headers: { 'content-type': 'application/json' },
6
+ });
7
+ }
8
+ export async function handleListProducts(_request) {
9
+ try {
10
+ const products = await listProducts();
11
+ return jsonResponse(200, { data: { products } });
12
+ }
13
+ catch (error) {
14
+ console.error(error);
15
+ return jsonResponse(500, { error: 'Failed to list products' });
16
+ }
17
+ }
18
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/handlers/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,SAAS,YAAY,CAAC,MAAc,EAAE,IAA6B;IACjE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAiB;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QACrC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAA;IAChE,CAAC;AACH,CAAC"}
@@ -1,5 +1,23 @@
1
1
  import type { CreateCheckoutParams } from '../actions';
2
2
  import type { MdkError, Result } from '../types';
3
+ /**
4
+ * Hook for creating checkout sessions.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * const { createCheckout } = useCheckout()
9
+ *
10
+ * // Amount-based checkout (donations, tips)
11
+ * await createCheckout({ type: 'AMOUNT', amount: 1000, title: 'Donation' })
12
+ *
13
+ * // Product checkout
14
+ * await createCheckout({ type: 'PRODUCTS', product: 'prod_123' })
15
+ *
16
+ * // With useProducts hook
17
+ * const { products } = useProducts()
18
+ * await createCheckout({ type: 'PRODUCTS', product: products[0].id })
19
+ * ```
20
+ */
3
21
  export declare function useCheckout(): {
4
22
  /** Create a checkout and return the URL. Does not redirect automatically. */
5
23
  createCheckout: (params: CreateCheckoutParams) => Promise<Result<{
@@ -2,6 +2,24 @@ import { useCallback, useState } from 'react';
2
2
  import { clientCreateCheckout } from '../client-actions';
3
3
  import { log } from '../logging';
4
4
  import { failure, success } from '../types';
5
+ /**
6
+ * Hook for creating checkout sessions.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * const { createCheckout } = useCheckout()
11
+ *
12
+ * // Amount-based checkout (donations, tips)
13
+ * await createCheckout({ type: 'AMOUNT', amount: 1000, title: 'Donation' })
14
+ *
15
+ * // Product checkout
16
+ * await createCheckout({ type: 'PRODUCTS', product: 'prod_123' })
17
+ *
18
+ * // With useProducts hook
19
+ * const { products } = useProducts()
20
+ * await createCheckout({ type: 'PRODUCTS', product: products[0].id })
21
+ * ```
22
+ */
5
23
  export function useCheckout() {
6
24
  const [isLoading, setIsLoading] = useState(false);
7
25
  const [error, setError] = useState(null);
@@ -1 +1 @@
1
- {"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../src/hooks/useCheckout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAG3C,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAA;IAEzD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,MAA4B,EAA4C,EAAE;QAClH,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEjD,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,WAAW,CAAA;QACvD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;QAEvD,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN;;;OAGG;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,MAA4B,EAAiB,EAAE;QACjF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAA;IAChD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,OAAO;QACL,6EAA6E;QAC7E,cAAc;QACd;;WAEG;QACH,QAAQ;QACR,kDAAkD;QAClD,SAAS;QACT;;WAEG;QACH,YAAY,EAAE,SAAS;QACvB,2CAA2C;QAC3C,KAAK;KACN,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../src/hooks/useCheckout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAA;IAEzD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,MAA4B,EAA4C,EAAE;QAClH,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAEjD,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,WAAW,CAAA;QACvD,MAAM,WAAW,GAAG,GAAG,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;QAEvD,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IACjC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN;;;OAGG;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,MAA4B,EAAiB,EAAE;QACjF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAA;IAChD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,OAAO;QACL,6EAA6E;QAC7E,cAAc;QACd;;WAEG;QACH,QAAQ;QACR,kDAAkD;QAClD,SAAS;QACT;;WAEG;QACH,YAAY,EAAE,SAAS;QACvB,2CAA2C;QAC3C,KAAK;KACN,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare function useProducts(): {
2
+ products: {
3
+ id: string;
4
+ name: string;
5
+ description: string | null;
6
+ recurringInterval: "MONTH" | "QUARTER" | "YEAR" | null;
7
+ prices: {
8
+ id: string;
9
+ currency: "USD" | "SAT";
10
+ amountType: "FIXED" | "CUSTOM";
11
+ priceAmount: number | null;
12
+ }[];
13
+ }[];
14
+ isLoading: boolean;
15
+ error: Error | null;
16
+ refetch: () => Promise<void>;
17
+ };
@@ -0,0 +1,34 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { clientListProducts } from '../client-actions';
3
+ import { log } from '../logging';
4
+ export function useProducts() {
5
+ const [products, setProducts] = useState([]);
6
+ const [isLoading, setIsLoading] = useState(true);
7
+ const [error, setError] = useState(null);
8
+ const fetchProducts = useCallback(async () => {
9
+ try {
10
+ setIsLoading(true);
11
+ setError(null);
12
+ const result = await clientListProducts();
13
+ setProducts(result);
14
+ }
15
+ catch (err) {
16
+ const error = err instanceof Error ? err : new Error('Failed to fetch products');
17
+ log('Products fetch error:', error);
18
+ setError(error);
19
+ }
20
+ finally {
21
+ setIsLoading(false);
22
+ }
23
+ }, []);
24
+ useEffect(() => {
25
+ fetchProducts();
26
+ }, [fetchProducts]);
27
+ return {
28
+ products,
29
+ isLoading,
30
+ error,
31
+ refetch: fetchProducts,
32
+ };
33
+ }
34
+ //# sourceMappingURL=useProducts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProducts.js","sourceRoot":"","sources":["../../src/hooks/useProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAA;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAA;IAEtD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3C,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAA;YACzC,WAAW,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAChF,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;YACnC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAA;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,OAAO;QACL,QAAQ;QACR,SAAS;QACT,KAAK;QACL,OAAO,EAAE,aAAa;KACvB,CAAA;AACH,CAAC"}
@@ -55,8 +55,8 @@ const loadLightningModule = () => {
55
55
  }
56
56
  return cachedLightningModule;
57
57
  };
58
- const RECEIVE_PAYMENTS_MIN_THRESHOLD_MS = 15000;
59
- const RECEIVE_PAYMENTS_QUIET_THRESHOLD_MS = 5000;
58
+ const RECEIVE_PAYMENTS_MIN_THRESHOLD_MS = 6000;
59
+ const RECEIVE_PAYMENTS_QUIET_THRESHOLD_MS = 4000;
60
60
  export class MoneyDevKitNode {
61
61
  node;
62
62
  constructor(options) {
@@ -94,7 +94,7 @@ export class MoneyDevKitNode {
94
94
  return this.node.payBolt11(bolt11);
95
95
  }
96
96
  payLNUrl(lnurl, amountMsat) {
97
- return this.node.payLnurl(lnurl, amountMsat, 15);
97
+ return this.node.payLnurl(lnurl, amountMsat, 30);
98
98
  }
99
99
  listChannels() {
100
100
  return this.node.listChannels();
@@ -1 +1 @@
1
- {"version":3,"file":"lightning-node.js","sourceRoot":"","sources":["../src/lightning-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAEhF,OAAO,CAAC,GAAG,CAAC,QAAQ;IAClB,sHAAsH,CAAA;AASxH,MAAM,2BAA2B,GAAG;IAClC,yCAAyC;IACzC,0CAA0C;IAC1C,2CAA2C;IAC3C,4CAA4C;IAC5C,+CAA+C;IAC/C,yCAAyC;IACzC,4CAA4C;IAC5C,0CAA0C;IAC1C,2CAA2C;IAC3C,4CAA4C;IAC5C,sCAAsC;IACtC,wCAAwC;IACxC,uCAAuC;CACxC,CAAA;AAED,IAAI,qBAAkD,CAAA;AAEtD,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE,CAAC;QAClD,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAED,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iCAAiC,GAAG,GAAG,EAAE;IAC7C,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,CAAC,2BAA2B,EAAE,GAAG,2BAA2B,CAAC,CAAA;IAEhF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACjD,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;QACvF,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,iCAAiC,EAAE,CAAA;AAEnC,MAAM,mBAAmB,GAAG,GAAoB,EAAE;IAChD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,qBAAqB,GAAG,cAAc,CAAC,2BAA2B,CAAoB,CAAA;IACxF,CAAC;IAED,OAAO,qBAAqB,CAAA;AAC9B,CAAC,CAAA;AAeD,MAAM,iCAAiC,GAAG,KAAK,CAAA;AAC/C,MAAM,mCAAmC,GAAG,IAAI,CAAA;AAEhD,MAAM,OAAO,eAAe;IAClB,IAAI,CAAuB;IAEnC,YAAY,OAA+B;QACzC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,mBAAmB,EAAE,CACtD;QAAE,cAAsB,CAAC,CAAC,GAAY,EAAE,KAAc,EAAE,EAAE;YACzD,IAAI,GAAG,EAAE,CAAC;gBACR,wBAAwB,CAAC,GAAG,CAAC,CAAA;gBAC7B,OAAM;YACR,CAAC;YAED,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC,EAAE,OAAO,CAAC,CAAA;QAEb,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,wBAAwB,CAAC,OAAQ,CAAA;QACjF,MAAM,kBAAkB,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAAA;QAEpG,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC;YACtB,OAAO;YACP,SAAS,EAAE,OAAO,CAAC,WAAW;YAC9B,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,kBAAkB,CAAC,MAAO;YACjE,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAW;YAC7E,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,kBAAkB,CAAC,MAAO;YACjE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,IAAI,kBAAkB,CAAC,SAAU;YAC1E,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,IAAI,kBAAkB,CAAC,UAAW;SAC9E,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IAC9B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAC7B,iCAAiC,EACjC,mCAAmC,CACpC,CAAA;IACH,CAAC;IAED,cAAc,CAAC,MAAc,EAAE,UAAkB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,UAAkB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;IACjC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IAChC,CAAC;IAED,OAAO,CAAC,UAAmB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO;YACL,MAAM,EAAE,CAAC,UAAyB,EAAE,EAAE;gBACpC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,CAAA;gBAC1B,MAAM,WAAW,GAAG,aAAa,CAAA;gBAEjC,MAAM,OAAO,GACX,UAAU,KAAK,IAAI;oBACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,UAAU,CAAC;oBAChE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;gBAEtE,OAAO;oBACL,OAAO,EAAE,OAAO,CAAC,MAAM;oBACvB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;iBAC9C,CAAA;YACH,CAAC;YACD,cAAc,EAAE,CAAC,IAAY,EAAE,UAAyB,EAAE,EAAE;gBAC1D,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,CAAA;gBAC1B,MAAM,WAAW,GAAG,aAAa,CAAA;gBACjC,MAAM,OAAO,GACX,UAAU,KAAK,IAAI;oBACjB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;oBAC9E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;gBAEpF,OAAO;oBACL,OAAO,EAAE,OAAO,CAAC,MAAM;oBACvB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;iBAC9C,CAAA;YACH,CAAC;SACF,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"lightning-node.js","sourceRoot":"","sources":["../src/lightning-node.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
- import { Checkout, CreateCheckout, ConfirmCheckout, RegisterInvoice, PaymentReceived } from '@moneydevkit/api-contract';
1
+ import { Checkout, CreateCheckout, ConfirmCheckout, RegisterInvoice, PaymentReceived, Product } from '@moneydevkit/api-contract';
2
2
  export type MoneyDevKitClientOptions = {
3
3
  accessToken: string;
4
4
  baseUrl: string;
5
5
  };
6
+ /**
7
+ * SDK-level checkout creation options.
8
+ * Uses `product` (singular) for simplicity - multi-product support coming soon.
9
+ */
10
+ export type CreateCheckoutOptions = Omit<CreateCheckout, 'nodeId' | 'products'> & {
11
+ /**
12
+ * Product ID to include in this checkout.
13
+ * @example 'prod_123abc'
14
+ */
15
+ product?: string;
16
+ };
6
17
  export declare class MoneyDevKitClient {
7
18
  private client;
8
19
  constructor(options: MoneyDevKitClientOptions);
@@ -10,11 +21,16 @@ export declare class MoneyDevKitClient {
10
21
  get: (params: {
11
22
  id: string;
12
23
  }) => Promise<Checkout>;
13
- create: (fields: Omit<CreateCheckout, "nodeId">, nodeId: string) => Promise<Checkout>;
24
+ create: (fields: CreateCheckoutOptions, nodeId: string) => Promise<Checkout>;
14
25
  confirm: (params: ConfirmCheckout) => Promise<Checkout>;
15
26
  registerInvoice: (params: RegisterInvoice) => Promise<Checkout>;
16
27
  paymentReceived: (params: PaymentReceived) => Promise<{
17
28
  ok: boolean;
18
29
  }>;
19
30
  };
31
+ get products(): {
32
+ list: () => Promise<{
33
+ products: Product[];
34
+ }>;
35
+ };
20
36
  }
@@ -17,8 +17,10 @@ export class MoneyDevKitClient {
17
17
  return await this.client.checkout.get(params);
18
18
  },
19
19
  create: async (fields, nodeId) => {
20
+ const { product, ...rest } = fields;
20
21
  return await this.client.checkout.create({
21
- ...fields,
22
+ ...rest,
23
+ products: product ? [product] : undefined,
22
24
  nodeId,
23
25
  });
24
26
  },
@@ -33,5 +35,12 @@ export class MoneyDevKitClient {
33
35
  },
34
36
  };
35
37
  }
38
+ get products() {
39
+ return {
40
+ list: async () => {
41
+ return await this.client.products.list({});
42
+ },
43
+ };
44
+ }
36
45
  }
37
46
  //# sourceMappingURL=mdk-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdk-client.js","sourceRoot":"","sources":["../src/mdk-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAU5C,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,MAAsB,EAAqB,EAAE;gBACvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,EAAE,KAAK,EACX,MAAsC,EACtC,MAAc,EACK,EAAE;gBACrB,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,MAAuB,EAAqB,EAAE;gBAC5D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnD,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,MAAuB,EAAqB,EAAE;gBACpE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,MAAuB,EAA4B,EAAE;gBAC3E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;SACF,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mdk-client.js","sourceRoot":"","sources":["../src/mdk-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAsB5C,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,MAAsB,EAAqB,EAAE;gBACvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,EAAE,KAAK,EACX,MAA6B,EAC7B,MAAc,EACK,EAAE;gBACrB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;gBACnC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvC,GAAG,IAAI;oBACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBACzC,MAAM;iBACP,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAuB,EAAqB,EAAE;gBAC5D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACnD,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,MAAuB,EAAqB,EAAE;gBACpE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,MAAuB,EAA4B,EAAE;gBAC3E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAC3D,CAAC;SACF,CAAA;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO;YACL,IAAI,EAAE,KAAK,IAAsC,EAAE;gBACjD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5C,CAAC;SACF,CAAA;IACH,CAAC;CACF"}
package/dist/preview.js CHANGED
@@ -1,4 +1,6 @@
1
+ // Helper to get env var - Next.js requires direct access for client-side inlining
1
2
  function getEnvFlag(key) {
3
+ // For server-side or non-Next.js environments, dynamic access works
2
4
  if (typeof process !== 'undefined' && typeof process.env !== 'undefined') {
3
5
  const value = process.env[key];
4
6
  if (value !== undefined) {
@@ -18,7 +20,14 @@ function isTruthyFlag(value) {
18
20
  return value === '1' || value === 'true';
19
21
  }
20
22
  export function is_preview_environment() {
21
- // Explicit preview/sandbox flag (check both MDK_PREVIEW and NEXT_PUBLIC_MDK_PREVIEW)
23
+ // Explicit preview/sandbox flag - use direct access for Next.js client-side inlining
24
+ // Next.js only inlines NEXT_PUBLIC_* vars when accessed directly (not via process.env[key])
25
+ if (typeof process !== 'undefined' && typeof process.env !== 'undefined') {
26
+ if (isTruthyFlag(process.env.NEXT_PUBLIC_MDK_PREVIEW)) {
27
+ return true;
28
+ }
29
+ }
30
+ // Fallback to dynamic access for server-side and non-Next.js environments (e.g., Vite)
22
31
  if (isTruthyFlag(getEnvFlag('MDK_PREVIEW')) || isTruthyFlag(getEnvFlag('NEXT_PUBLIC_MDK_PREVIEW'))) {
23
32
  return true;
24
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAK,MAAM,CAAC,IAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACxF,OAAQ,MAAM,CAAC,IAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAkB,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAChF,OAAQ,UAAkB,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,qFAAqF;IACrF,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,+DAA+D;IAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+EAA+E;IAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAA;QAEhD,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,SAAS,UAAU,CAAC,GAAW;IAC7B,oEAAoE;IACpE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAK,MAAM,CAAC,IAAY,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACxF,OAAQ,MAAM,CAAC,IAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAkB,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAChF,OAAQ,UAAkB,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,qFAAqF;IACrF,4FAA4F;IAC5F,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QACzE,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,+DAA+D;IAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IACjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+EAA+E;IAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAA;QAEhD,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
package/dist/route.d.ts CHANGED
@@ -1,9 +1,24 @@
1
1
  import { z } from 'zod';
2
+ export { createCheckoutUrl } from './handlers/checkout';
3
+ export type { CreateCheckoutUrlOptions } from './handlers/checkout';
2
4
  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", "confirm_checkout", "pay_invoice", "sync_rgs"]>;
5
+ declare const routeSchema: z.ZodEnum<["webhook", "webhooks", "pay_bolt_12", "balance", "ping", "pay_ln_url", "list_channels", "pay_bolt11", "create_checkout", "get_checkout", "confirm_checkout", "pay_invoice", "sync_rgs", "list_products"]>;
4
6
  export type UnifiedRoute = z.infer<typeof routeSchema>;
5
7
  export declare function __setHandlerForTest(route: UnifiedRoute, handler: RouteHandler | null): void;
6
8
  export declare function __resetHandlersForTest(): void;
7
9
  export declare function createUnifiedHandler(): (request: Request) => Promise<Response>;
8
10
  export declare function POST(request: Request): Promise<Response>;
9
- export {};
11
+ /**
12
+ * GET handler for URL-based checkout creation.
13
+ *
14
+ * Creates a checkout from signed URL query params and redirects to the checkout page.
15
+ *
16
+ * @example
17
+ * GET /api/mdk?action=createCheckout&title=Product&amount=2999&signature=abc123
18
+ * -> Verifies signature
19
+ * -> Creates checkout
20
+ * -> 302 redirect to /checkout/{id}
21
+ *
22
+ * Users should generate URLs using the `createCheckoutUrl` helper to ensure proper signing.
23
+ */
24
+ export declare function GET(request: Request): Promise<Response>;