@moneydevkit/core 0.14.0-beta.7 → 0.14.0-beta.8
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/mdk-client.d.ts +2 -1
- package/dist/mdk-client.js +3 -0
- package/dist/mdk-client.js.map +1 -1
- package/dist/mdk402/index.d.ts +2 -2
- package/dist/mdk402/index.js +1 -1
- package/dist/mdk402/index.js.map +1 -1
- package/dist/mdk402/token.d.ts +3 -0
- package/dist/mdk402/token.js +5 -4
- package/dist/mdk402/token.js.map +1 -1
- package/dist/mdk402/with-payment.d.ts +26 -1
- package/dist/mdk402/with-payment.js +124 -51
- package/dist/mdk402/with-payment.js.map +1 -1
- package/package.json +2 -2
package/dist/mdk-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Checkout, CreateCheckout, ConfirmCheckout, RegisterInvoice, PaymentReceived, RedeemL402Input, RedeemL402Output, Product, Subscription, CustomerWithSubscriptions, GetCustomerInput } from '@moneydevkit/api-contract';
|
|
1
|
+
import { Checkout, CreateCheckout, ConfirmCheckout, RegisterInvoice, PaymentReceived, RedeemL402Input, RedeemL402Output, CheckL402Input, CheckL402Output, Product, Subscription, CustomerWithSubscriptions, GetCustomerInput } from '@moneydevkit/api-contract';
|
|
2
2
|
export type MoneyDevKitClientOptions = {
|
|
3
3
|
accessToken: string;
|
|
4
4
|
baseUrl: string;
|
|
@@ -28,6 +28,7 @@ export declare class MoneyDevKitClient {
|
|
|
28
28
|
ok: boolean;
|
|
29
29
|
}>;
|
|
30
30
|
redeemL402: (params: RedeemL402Input) => Promise<RedeemL402Output>;
|
|
31
|
+
checkL402: (params: CheckL402Input) => Promise<CheckL402Output>;
|
|
31
32
|
};
|
|
32
33
|
get products(): {
|
|
33
34
|
list: () => Promise<{
|
package/dist/mdk-client.js
CHANGED
package/dist/mdk-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdk-client.js","sourceRoot":"","sources":["../src/mdk-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mdk-client.js","sourceRoot":"","sources":["../src/mdk-client.ts"],"names":[],"mappings":"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"}
|
package/dist/mdk402/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { withPayment } from './with-payment';
|
|
2
|
-
export type { PaymentConfig } from './with-payment';
|
|
1
|
+
export { withPayment, withDeferredSettlement } from './with-payment';
|
|
2
|
+
export type { PaymentConfig, SettleResult } from './with-payment';
|
package/dist/mdk402/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { withPayment } from './with-payment';
|
|
1
|
+
export { withPayment, withDeferredSettlement } from './with-payment';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/mdk402/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mdk402/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mdk402/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/mdk402/token.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export type VerifyL402CredentialResult = {
|
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Result of parsing an Authorization header.
|
|
33
|
+
* When valid is false, `attempted` indicates whether an L402/LSAT scheme was
|
|
34
|
+
* present but the credentials were malformed (true) vs no L402 auth at all (false).
|
|
33
35
|
*/
|
|
34
36
|
export type ParseAuthResult = {
|
|
35
37
|
valid: true;
|
|
@@ -37,6 +39,7 @@ export type ParseAuthResult = {
|
|
|
37
39
|
preimage: string;
|
|
38
40
|
} | {
|
|
39
41
|
valid: false;
|
|
42
|
+
attempted: boolean;
|
|
40
43
|
};
|
|
41
44
|
/**
|
|
42
45
|
* Derive a domain-specific HMAC key for L402 credentials.
|
package/dist/mdk402/token.js
CHANGED
|
@@ -98,22 +98,23 @@ export function verifyPreimage(preimage, paymentHash) {
|
|
|
98
98
|
*/
|
|
99
99
|
export function parseAuthorizationHeader(header) {
|
|
100
100
|
if (!header) {
|
|
101
|
-
return { valid: false };
|
|
101
|
+
return { valid: false, attempted: false };
|
|
102
102
|
}
|
|
103
103
|
const lower = header.toLowerCase();
|
|
104
104
|
const scheme = L402_SCHEMES.find(s => lower.startsWith(s + ' '));
|
|
105
105
|
if (!scheme) {
|
|
106
|
-
return { valid: false };
|
|
106
|
+
return { valid: false, attempted: false };
|
|
107
107
|
}
|
|
108
|
+
// L402/LSAT scheme detected - any failure from here is a malformed attempt
|
|
108
109
|
const credentials = header.slice(scheme.length + 1).trim();
|
|
109
110
|
const colonIndex = credentials.indexOf(':');
|
|
110
111
|
if (colonIndex === -1) {
|
|
111
|
-
return { valid: false };
|
|
112
|
+
return { valid: false, attempted: true };
|
|
112
113
|
}
|
|
113
114
|
const macaroon = credentials.slice(0, colonIndex);
|
|
114
115
|
const preimage = credentials.slice(colonIndex + 1);
|
|
115
116
|
if (!macaroon || !preimage) {
|
|
116
|
-
return { valid: false };
|
|
117
|
+
return { valid: false, attempted: true };
|
|
117
118
|
}
|
|
118
119
|
return { valid: true, macaroon, preimage };
|
|
119
120
|
}
|
package/dist/mdk402/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/mdk402/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/mdk402/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Currency } from '@moneydevkit/api-contract';
|
|
2
2
|
/**
|
|
3
|
-
* Configuration for the withPayment
|
|
3
|
+
* Configuration for the withPayment and withDeferredConfirmation wrappers.
|
|
4
4
|
* Defines pricing and token expiry for L402-gated endpoints.
|
|
5
5
|
*/
|
|
6
6
|
export type PaymentConfig = {
|
|
@@ -12,6 +12,19 @@ export type PaymentConfig = {
|
|
|
12
12
|
expirySeconds?: number;
|
|
13
13
|
};
|
|
14
14
|
type Handler = (req: Request, context?: any) => Response | Promise<Response>;
|
|
15
|
+
/** Result of calling the settle callback in withDeferredConfirmation. */
|
|
16
|
+
export type SettleResult = {
|
|
17
|
+
settled: true;
|
|
18
|
+
} | {
|
|
19
|
+
settled: false;
|
|
20
|
+
error: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Handler that receives a settle callback for deferred confirmation.
|
|
24
|
+
* Call settle() after successfully delivering the service to mark the credential as used.
|
|
25
|
+
* If settle() is never called, the credential remains valid and the payer can retry.
|
|
26
|
+
*/
|
|
27
|
+
type DeferredHandler = (req: Request, settle: () => Promise<SettleResult>, context?: any) => Response | Promise<Response>;
|
|
15
28
|
/**
|
|
16
29
|
* Wrap a route handler with L402 payment gating.
|
|
17
30
|
*
|
|
@@ -22,4 +35,16 @@ type Handler = (req: Request, context?: any) => Response | Promise<Response>;
|
|
|
22
35
|
* Also accepts the legacy LSAT scheme per bLIP-26 backwards compatibility.
|
|
23
36
|
*/
|
|
24
37
|
export declare function withPayment(config: PaymentConfig, handler: Handler): Handler;
|
|
38
|
+
/**
|
|
39
|
+
* Wrap a route handler with L402 payment gating and deferred confirmation.
|
|
40
|
+
*
|
|
41
|
+
* Like withPayment, but does NOT automatically mark the credential as used.
|
|
42
|
+
* Instead, the handler receives a `settle` callback. The merchant calls
|
|
43
|
+
* settle() after successfully delivering the service. If settle() is never
|
|
44
|
+
* called (e.g. the handler throws or the service fails), the credential
|
|
45
|
+
* remains valid and the payer can retry with the same preimage.
|
|
46
|
+
*
|
|
47
|
+
* settle() is callable only once - subsequent calls return an error.
|
|
48
|
+
*/
|
|
49
|
+
export declare function withDeferredSettlement(config: PaymentConfig, handler: DeferredHandler): Handler;
|
|
25
50
|
export {};
|
|
@@ -3,6 +3,73 @@ import { is_preview_environment } from '../preview';
|
|
|
3
3
|
import { createL402Credential, parseAuthorizationHeader, verifyL402Credential, verifyPreimage, } from './token';
|
|
4
4
|
/** Default credential and invoice expiry: 15 minutes. */
|
|
5
5
|
const DEFAULT_EXPIRY_SECONDS = 900;
|
|
6
|
+
/**
|
|
7
|
+
* Verify the L402 credential from the request.
|
|
8
|
+
* Checks HMAC integrity, resource binding, amount match, and preimage proof.
|
|
9
|
+
* Returns the payment hash on success, or an error Response on failure.
|
|
10
|
+
*/
|
|
11
|
+
async function verifyCredential(req, config, accessToken) {
|
|
12
|
+
const authHeader = req.headers.get('authorization');
|
|
13
|
+
const parsed = parseAuthorizationHeader(authHeader);
|
|
14
|
+
if (!parsed.valid) {
|
|
15
|
+
// L402/LSAT scheme present but malformed - don't issue a new invoice
|
|
16
|
+
if (parsed.attempted) {
|
|
17
|
+
return errorResponse(401, {
|
|
18
|
+
code: 'invalid_credential',
|
|
19
|
+
message: 'Malformed L402 authorization header',
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
// No L402 auth at all - issue a new invoice
|
|
23
|
+
return await create402Response(req, config, accessToken);
|
|
24
|
+
}
|
|
25
|
+
// Verify credential integrity (expiry is NOT checked - a paid credential never expires)
|
|
26
|
+
const credentialResult = verifyL402Credential(parsed.macaroon, accessToken);
|
|
27
|
+
if (!credentialResult.valid) {
|
|
28
|
+
return errorResponse(401, {
|
|
29
|
+
code: 'invalid_credential',
|
|
30
|
+
message: 'Invalid or malformed L402 credential',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// Verify credential was issued for this specific endpoint
|
|
34
|
+
const expectedResource = `${req.method}:${new URL(req.url).pathname}`;
|
|
35
|
+
if (credentialResult.resource !== expectedResource) {
|
|
36
|
+
return errorResponse(403, {
|
|
37
|
+
code: 'resource_mismatch',
|
|
38
|
+
message: 'Credential was not issued for this resource',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// Verify credential was issued for the current price
|
|
42
|
+
let currentAmount;
|
|
43
|
+
try {
|
|
44
|
+
currentAmount = typeof config.amount === 'function'
|
|
45
|
+
? await Promise.resolve(config.amount(req))
|
|
46
|
+
: config.amount;
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
return errorResponse(500, {
|
|
50
|
+
code: 'pricing_error',
|
|
51
|
+
message: 'Failed to determine price',
|
|
52
|
+
details: err instanceof Error ? err.message : String(err),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (credentialResult.amount !== currentAmount || credentialResult.currency !== config.currency) {
|
|
56
|
+
return errorResponse(403, {
|
|
57
|
+
code: 'amount_mismatch',
|
|
58
|
+
message: 'Credential was not issued for this price',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Verify payment proof (skip in preview/sandbox mode)
|
|
62
|
+
const isPreview = is_preview_environment();
|
|
63
|
+
if (!isPreview) {
|
|
64
|
+
if (!verifyPreimage(parsed.preimage, credentialResult.paymentHash)) {
|
|
65
|
+
return errorResponse(401, {
|
|
66
|
+
code: 'invalid_payment_proof',
|
|
67
|
+
message: 'Invalid payment preimage',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { paymentHash: credentialResult.paymentHash };
|
|
72
|
+
}
|
|
6
73
|
/**
|
|
7
74
|
* Wrap a route handler with L402 payment gating.
|
|
8
75
|
*
|
|
@@ -22,72 +89,78 @@ export function withPayment(config, handler) {
|
|
|
22
89
|
suggestion: 'Set the MDK_ACCESS_TOKEN environment variable',
|
|
23
90
|
});
|
|
24
91
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!parsed.valid) {
|
|
29
|
-
// No auth or wrong scheme -> issue a new invoice
|
|
30
|
-
return await create402Response(req, config, accessToken);
|
|
92
|
+
const result = await verifyCredential(req, config, accessToken);
|
|
93
|
+
if (result instanceof Response) {
|
|
94
|
+
return result;
|
|
31
95
|
}
|
|
32
|
-
//
|
|
33
|
-
const
|
|
34
|
-
|
|
96
|
+
// Atomically redeem the L402 credential (one payment = one use)
|
|
97
|
+
const client = createMoneyDevKitClient();
|
|
98
|
+
const redeemResult = await client.checkouts.redeemL402({
|
|
99
|
+
paymentHash: result.paymentHash,
|
|
100
|
+
});
|
|
101
|
+
if (!redeemResult.redeemed) {
|
|
35
102
|
return errorResponse(401, {
|
|
36
|
-
code: '
|
|
37
|
-
message: '
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
// Verify credential was issued for this specific endpoint
|
|
41
|
-
const expectedResource = `${req.method}:${new URL(req.url).pathname}`;
|
|
42
|
-
if (credentialResult.resource !== expectedResource) {
|
|
43
|
-
return errorResponse(403, {
|
|
44
|
-
code: 'resource_mismatch',
|
|
45
|
-
message: 'Credential was not issued for this resource',
|
|
103
|
+
code: 'credential_consumed',
|
|
104
|
+
message: 'This L402 credential has already been used',
|
|
46
105
|
});
|
|
47
106
|
}
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
107
|
+
// Payment verified and redeemed - call the inner handler
|
|
108
|
+
return handler(req, context);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Wrap a route handler with L402 payment gating and deferred confirmation.
|
|
113
|
+
*
|
|
114
|
+
* Like withPayment, but does NOT automatically mark the credential as used.
|
|
115
|
+
* Instead, the handler receives a `settle` callback. The merchant calls
|
|
116
|
+
* settle() after successfully delivering the service. If settle() is never
|
|
117
|
+
* called (e.g. the handler throws or the service fails), the credential
|
|
118
|
+
* remains valid and the payer can retry with the same preimage.
|
|
119
|
+
*
|
|
120
|
+
* settle() is callable only once - subsequent calls return an error.
|
|
121
|
+
*/
|
|
122
|
+
export function withDeferredSettlement(config, handler) {
|
|
123
|
+
return async (req, context) => {
|
|
124
|
+
const accessToken = process.env.MDK_ACCESS_TOKEN;
|
|
125
|
+
if (!accessToken) {
|
|
56
126
|
return errorResponse(500, {
|
|
57
|
-
code: '
|
|
58
|
-
message: '
|
|
59
|
-
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
if (credentialResult.amount !== currentAmount || credentialResult.currency !== config.currency) {
|
|
63
|
-
return errorResponse(403, {
|
|
64
|
-
code: 'amount_mismatch',
|
|
65
|
-
message: 'Credential was not issued for this price',
|
|
127
|
+
code: 'configuration_error',
|
|
128
|
+
message: 'MDK_ACCESS_TOKEN is not configured',
|
|
129
|
+
suggestion: 'Set the MDK_ACCESS_TOKEN environment variable',
|
|
66
130
|
});
|
|
67
131
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (!verifyPreimage(parsed.preimage, credentialResult.paymentHash)) {
|
|
72
|
-
return errorResponse(401, {
|
|
73
|
-
code: 'invalid_payment_proof',
|
|
74
|
-
message: 'Invalid payment preimage',
|
|
75
|
-
});
|
|
76
|
-
}
|
|
132
|
+
const result = await verifyCredential(req, config, accessToken);
|
|
133
|
+
if (result instanceof Response) {
|
|
134
|
+
return result;
|
|
77
135
|
}
|
|
78
|
-
//
|
|
136
|
+
// Check if the credential has already been consumed (without consuming it)
|
|
79
137
|
const client = createMoneyDevKitClient();
|
|
80
|
-
const
|
|
81
|
-
paymentHash:
|
|
138
|
+
const checkResult = await client.checkouts.checkL402({
|
|
139
|
+
paymentHash: result.paymentHash,
|
|
82
140
|
});
|
|
83
|
-
if (
|
|
141
|
+
if (checkResult.redeemed) {
|
|
84
142
|
return errorResponse(401, {
|
|
85
143
|
code: 'credential_consumed',
|
|
86
144
|
message: 'This L402 credential has already been used',
|
|
87
145
|
});
|
|
88
146
|
}
|
|
89
|
-
//
|
|
90
|
-
|
|
147
|
+
// Build the one-shot settle callback
|
|
148
|
+
let settled = false;
|
|
149
|
+
const settle = async () => {
|
|
150
|
+
if (settled) {
|
|
151
|
+
return { settled: false, error: 'already_settled' };
|
|
152
|
+
}
|
|
153
|
+
settled = true;
|
|
154
|
+
const redeemResult = await client.checkouts.redeemL402({
|
|
155
|
+
paymentHash: result.paymentHash,
|
|
156
|
+
});
|
|
157
|
+
if (!redeemResult.redeemed) {
|
|
158
|
+
return { settled: false, error: redeemResult.reason ?? 'redeem_failed' };
|
|
159
|
+
}
|
|
160
|
+
return { settled: true };
|
|
161
|
+
};
|
|
162
|
+
// Payment verified but NOT redeemed - merchant decides when to settle
|
|
163
|
+
return handler(req, settle, context);
|
|
91
164
|
};
|
|
92
165
|
}
|
|
93
166
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-payment.js","sourceRoot":"","sources":["../../src/mdk402/with-payment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"with-payment.js","sourceRoot":"","sources":["../../src/mdk402/with-payment.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneydevkit/core",
|
|
3
|
-
"version": "0.14.0-beta.
|
|
3
|
+
"version": "0.14.0-beta.8",
|
|
4
4
|
"description": "Shared moneydevkit checkout core utilities",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"tailwind-merge": "^3.3.0",
|
|
58
58
|
"vaul": "^1.1.2",
|
|
59
59
|
"zod": "^3.25.42",
|
|
60
|
-
"@moneydevkit/api-contract": "0.1.
|
|
60
|
+
"@moneydevkit/api-contract": "0.1.23"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/node": "^20.10.5",
|