@atxp/server 0.10.6 → 0.10.9
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/getBalance.d.ts +21 -0
- package/dist/getBalance.d.ts.map +1 -0
- package/dist/getBalance.js +46 -0
- package/dist/getBalance.js.map +1 -0
- package/dist/index.cjs +263 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +204 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +258 -3
- package/dist/index.js.map +1 -1
- package/dist/omniChallenge.d.ts +55 -0
- package/dist/omniChallenge.d.ts.map +1 -0
- package/dist/omniChallenge.js +86 -0
- package/dist/omniChallenge.js.map +1 -0
- package/dist/paymentServer.d.ts +2 -1
- package/dist/paymentServer.d.ts.map +1 -1
- package/dist/paymentServer.js +18 -0
- package/dist/paymentServer.js.map +1 -1
- package/dist/protocol.d.ts +121 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +116 -0
- package/dist/protocol.js.map +1 -0
- package/dist/serverTestHelpers.d.ts +9 -1
- package/dist/serverTestHelpers.d.ts.map +1 -1
- package/dist/serverTestHelpers.js +3 -1
- package/dist/serverTestHelpers.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { McpError } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { AuthorizationServerUrl } from "@atxp/common";
|
|
3
|
+
import type { OmniChallenge, X402PaymentRequirements, AtxpMcpChallengeData } from "./protocol.js";
|
|
4
|
+
/**
|
|
5
|
+
* Build X402 payment requirements from charge options.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildX402Requirements(args: {
|
|
8
|
+
options: Array<{
|
|
9
|
+
network: string;
|
|
10
|
+
currency: string;
|
|
11
|
+
address: string;
|
|
12
|
+
amount: BigNumber;
|
|
13
|
+
}>;
|
|
14
|
+
resource: string;
|
|
15
|
+
payeeName: string;
|
|
16
|
+
}): X402PaymentRequirements;
|
|
17
|
+
/**
|
|
18
|
+
* Build ATXP-MCP challenge data from a payment request.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildAtxpMcpChallenge(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount?: BigNumber): AtxpMcpChallengeData;
|
|
21
|
+
/**
|
|
22
|
+
* Create an omni-challenge MCP error (for MCP SSE transport).
|
|
23
|
+
* Contains both ATXP-MCP challenge data in a single JSON-RPC error.
|
|
24
|
+
*/
|
|
25
|
+
export declare function omniChallengeMcpError(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount: BigNumber | undefined, x402Requirements: X402PaymentRequirements): McpError;
|
|
26
|
+
/**
|
|
27
|
+
* Build an HTTP omni-challenge response for streamable HTTP / plain HTTP.
|
|
28
|
+
*
|
|
29
|
+
* Returns:
|
|
30
|
+
* - status: 402
|
|
31
|
+
* - headers: includes X-ATXP-Payment-Request header with ATXP-MCP data
|
|
32
|
+
* - body: X402 payment requirements JSON
|
|
33
|
+
*/
|
|
34
|
+
export declare function omniChallengeHttpResponse(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount: BigNumber | undefined, x402Requirements: X402PaymentRequirements): {
|
|
35
|
+
status: 402;
|
|
36
|
+
headers: Record<string, string>;
|
|
37
|
+
body: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Build a complete OmniChallenge object from server config and payment details.
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildOmniChallenge(args: {
|
|
43
|
+
server: AuthorizationServerUrl;
|
|
44
|
+
paymentRequestId: string;
|
|
45
|
+
chargeAmount?: BigNumber;
|
|
46
|
+
options: Array<{
|
|
47
|
+
network: string;
|
|
48
|
+
currency: string;
|
|
49
|
+
address: string;
|
|
50
|
+
amount: BigNumber;
|
|
51
|
+
}>;
|
|
52
|
+
resource: string;
|
|
53
|
+
payeeName: string;
|
|
54
|
+
}): OmniChallenge;
|
|
55
|
+
//# sourceMappingURL=omniChallenge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omniChallenge.d.ts","sourceRoot":"","sources":["../src/omniChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAA0D,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE9G,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,EAAqB,MAAM,eAAe,CAAC;AAErH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,uBAAuB,CAe1B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,EAC9B,gBAAgB,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,SAAS,GACvB,oBAAoB,CAUtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,EAC9B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,SAAS,GAAG,SAAS,EACnC,gBAAgB,EAAE,uBAAuB,GACxC,QAAQ,CAkBV;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,sBAAsB,EAC9B,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,SAAS,GAAG,SAAS,EACnC,gBAAgB,EAAE,uBAAuB,GACxC;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,CAWA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAShB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { PAYMENT_REQUIRED_ERROR_CODE, PAYMENT_REQUIRED_PREAMBLE } from '@atxp/common';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Build X402 payment requirements from charge options.
|
|
6
|
+
*/
|
|
7
|
+
function buildX402Requirements(args) {
|
|
8
|
+
const accepts = args.options.map(option => ({
|
|
9
|
+
scheme: 'exact',
|
|
10
|
+
network: option.network === 'base' || option.network === 'base_sepolia' ? 'base' : option.network,
|
|
11
|
+
maxAmountRequired: option.amount.times(1e6).toFixed(0), // Convert to smallest unit (USDC has 6 decimals)
|
|
12
|
+
resource: args.resource,
|
|
13
|
+
description: args.payeeName,
|
|
14
|
+
payTo: option.address,
|
|
15
|
+
maxTimeoutSeconds: 300,
|
|
16
|
+
}));
|
|
17
|
+
return {
|
|
18
|
+
x402Version: 1,
|
|
19
|
+
accepts,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build ATXP-MCP challenge data from a payment request.
|
|
24
|
+
*/
|
|
25
|
+
function buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount) {
|
|
26
|
+
const serverUrl = new URL(server);
|
|
27
|
+
const origin = serverUrl.origin;
|
|
28
|
+
const paymentRequestUrl = `${origin}/payment-request/${paymentRequestId}`;
|
|
29
|
+
return {
|
|
30
|
+
paymentRequestId,
|
|
31
|
+
paymentRequestUrl,
|
|
32
|
+
...(chargeAmount && { chargeAmount: chargeAmount.toString() }),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create an omni-challenge MCP error (for MCP SSE transport).
|
|
37
|
+
* Contains both ATXP-MCP challenge data in a single JSON-RPC error.
|
|
38
|
+
*/
|
|
39
|
+
function omniChallengeMcpError(server, paymentRequestId, chargeAmount, x402Requirements) {
|
|
40
|
+
const atxpMcp = buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount);
|
|
41
|
+
const data = {
|
|
42
|
+
// ATXP-MCP fields (existing, preserved for backwards compatibility)
|
|
43
|
+
paymentRequestId: atxpMcp.paymentRequestId,
|
|
44
|
+
paymentRequestUrl: atxpMcp.paymentRequestUrl,
|
|
45
|
+
chargeAmount: atxpMcp.chargeAmount,
|
|
46
|
+
// X402 fields (new, added for omni-challenge)
|
|
47
|
+
x402: x402Requirements,
|
|
48
|
+
};
|
|
49
|
+
const amountText = chargeAmount ? ` You will be charged ${chargeAmount.toString()}.` : '';
|
|
50
|
+
return new McpError(PAYMENT_REQUIRED_ERROR_CODE, `${PAYMENT_REQUIRED_PREAMBLE}${amountText} Please pay at: ${atxpMcp.paymentRequestUrl} and then try again.`, data);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build an HTTP omni-challenge response for streamable HTTP / plain HTTP.
|
|
54
|
+
*
|
|
55
|
+
* Returns:
|
|
56
|
+
* - status: 402
|
|
57
|
+
* - headers: includes X-ATXP-Payment-Request header with ATXP-MCP data
|
|
58
|
+
* - body: X402 payment requirements JSON
|
|
59
|
+
*/
|
|
60
|
+
function omniChallengeHttpResponse(server, paymentRequestId, chargeAmount, x402Requirements) {
|
|
61
|
+
const atxpMcp = buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount);
|
|
62
|
+
return {
|
|
63
|
+
status: 402,
|
|
64
|
+
headers: {
|
|
65
|
+
'Content-Type': 'application/json',
|
|
66
|
+
'X-ATXP-Payment-Request': JSON.stringify(atxpMcp),
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify(x402Requirements),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build a complete OmniChallenge object from server config and payment details.
|
|
73
|
+
*/
|
|
74
|
+
function buildOmniChallenge(args) {
|
|
75
|
+
return {
|
|
76
|
+
atxpMcp: buildAtxpMcpChallenge(args.server, args.paymentRequestId, args.chargeAmount),
|
|
77
|
+
x402: buildX402Requirements({
|
|
78
|
+
options: args.options,
|
|
79
|
+
resource: args.resource,
|
|
80
|
+
payeeName: args.payeeName,
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export { buildAtxpMcpChallenge, buildOmniChallenge, buildX402Requirements, omniChallengeHttpResponse, omniChallengeMcpError };
|
|
86
|
+
//# sourceMappingURL=omniChallenge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omniChallenge.js","sources":["../src/omniChallenge.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/paymentServer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PaymentServer, Charge } from "./types.js";
|
|
1
|
+
import { PaymentServer, Charge, BalanceRequest } from "./types.js";
|
|
2
2
|
import { AuthorizationServerUrl, FetchLike, Logger, OAuthDb } from "@atxp/common";
|
|
3
3
|
/**
|
|
4
4
|
* ATXP Payment Server implementation
|
|
@@ -23,6 +23,7 @@ export declare class ATXPPaymentServer implements PaymentServer {
|
|
|
23
23
|
constructor(server: AuthorizationServerUrl, logger: Logger, fetchFn?: FetchLike, oAuthDb?: OAuthDb);
|
|
24
24
|
charge: (chargeRequest: Charge) => Promise<boolean>;
|
|
25
25
|
createPaymentRequest: (charge: Charge) => Promise<string>;
|
|
26
|
+
getBalance: (balanceRequest: BalanceRequest) => Promise<BigNumber>;
|
|
26
27
|
/**
|
|
27
28
|
* Makes authenticated requests to the ATXP authorization server
|
|
28
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentServer.d.ts","sourceRoot":"","sources":["../src/paymentServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"paymentServer.d.ts","sourceRoot":"","sources":["../src/paymentServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AAcjG;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAInD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAGf,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,SAAkC,EAC5D,OAAO,CAAC,EAAE,OAAO;IAKnB,MAAM,GAAS,eAAe,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAkCtD;IAED,oBAAoB,GAAS,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAkC5D;IAED,UAAU,GAAS,gBAAgB,cAAc,KAAG,OAAO,CAAC,SAAS,CAAC,CAuBrE;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,WAAW,GAAS,QAAQ,KAAK,GAAG,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CA0BpG;CACF"}
|
package/dist/paymentServer.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BigNumber } from 'bignumber.js';
|
|
1
2
|
import { MemoryOAuthDb } from '@atxp/common';
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -68,6 +69,23 @@ class ATXPPaymentServer {
|
|
|
68
69
|
}
|
|
69
70
|
return json.id;
|
|
70
71
|
};
|
|
72
|
+
this.getBalance = async (balanceRequest) => {
|
|
73
|
+
const response = await this.makeRequest('POST', '/balance', balanceRequest);
|
|
74
|
+
if (response.status === 200) {
|
|
75
|
+
const json = await response.json();
|
|
76
|
+
if (json.balance === undefined) {
|
|
77
|
+
throw new Error('Balance response did not contain a balance field');
|
|
78
|
+
}
|
|
79
|
+
return new BigNumber(json.balance);
|
|
80
|
+
}
|
|
81
|
+
const errorBody = await response.json().catch(() => ({}));
|
|
82
|
+
const errorMessage = errorBody.error?.message || errorBody.message || 'Unknown error';
|
|
83
|
+
this.logger.warn(`Payment server getBalance failed with ${response.status}: ${errorMessage}`);
|
|
84
|
+
const error = new Error(`Payment server returned ${response.status} from /balance: ${errorMessage}`);
|
|
85
|
+
error.statusCode = response.status;
|
|
86
|
+
error.endpoint = '/balance';
|
|
87
|
+
throw error;
|
|
88
|
+
};
|
|
71
89
|
/**
|
|
72
90
|
* Makes authenticated requests to the ATXP authorization server
|
|
73
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentServer.js","sources":["../src/paymentServer.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paymentServer.js","sources":["../src/paymentServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { AuthorizationServerUrl, FetchLike, Logger } from "@atxp/common";
|
|
2
|
+
/**
|
|
3
|
+
* Payment protocol types supported by the omni-challenge system.
|
|
4
|
+
* - 'atxp': ATXP-MCP protocol (JWT-based, existing flow)
|
|
5
|
+
* - 'x402': X402 protocol (Permit2 / X-PAYMENT header)
|
|
6
|
+
*/
|
|
7
|
+
export type PaymentProtocol = 'atxp' | 'x402';
|
|
8
|
+
/**
|
|
9
|
+
* Result of detecting which protocol a client used from its credential.
|
|
10
|
+
*/
|
|
11
|
+
export type CredentialDetection = {
|
|
12
|
+
protocol: PaymentProtocol;
|
|
13
|
+
credential: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* X402 payment requirements included in omni-challenge.
|
|
17
|
+
* This is the standard X402 challenge body format.
|
|
18
|
+
*/
|
|
19
|
+
export type X402PaymentRequirements = {
|
|
20
|
+
x402Version: number;
|
|
21
|
+
accepts: X402PaymentOption[];
|
|
22
|
+
};
|
|
23
|
+
export type X402PaymentOption = {
|
|
24
|
+
scheme: string;
|
|
25
|
+
network: string;
|
|
26
|
+
maxAmountRequired: string;
|
|
27
|
+
resource: string;
|
|
28
|
+
description: string;
|
|
29
|
+
mimeType?: string;
|
|
30
|
+
payTo: string;
|
|
31
|
+
maxTimeoutSeconds?: number;
|
|
32
|
+
extra?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* ATXP-MCP challenge data included in omni-challenge.
|
|
36
|
+
*/
|
|
37
|
+
export type AtxpMcpChallengeData = {
|
|
38
|
+
paymentRequestId: string;
|
|
39
|
+
paymentRequestUrl: string;
|
|
40
|
+
chargeAmount?: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Omni-challenge data combining both protocols.
|
|
44
|
+
* Used to build responses across different transports.
|
|
45
|
+
*/
|
|
46
|
+
export type OmniChallenge = {
|
|
47
|
+
atxpMcp: AtxpMcpChallengeData;
|
|
48
|
+
x402: X402PaymentRequirements;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Context data needed by verify/settle to build protocol-specific request bodies.
|
|
52
|
+
*/
|
|
53
|
+
export type SettlementContext = {
|
|
54
|
+
/** X402: the original payment requirements from the challenge */
|
|
55
|
+
paymentRequirements?: unknown;
|
|
56
|
+
/** ATXP: source account identifier */
|
|
57
|
+
sourceAccountId?: string;
|
|
58
|
+
/** ATXP: destination account identifier */
|
|
59
|
+
destinationAccountId?: string;
|
|
60
|
+
/** ATXP: payment options with network, currency, address, amount */
|
|
61
|
+
options?: unknown[];
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Result of verifying a payment credential.
|
|
65
|
+
*/
|
|
66
|
+
export type VerifyResult = {
|
|
67
|
+
valid: boolean;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Result of settling a payment.
|
|
71
|
+
*/
|
|
72
|
+
export type SettleResult = {
|
|
73
|
+
txHash: string;
|
|
74
|
+
settledAmount: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Detect the payment protocol from inbound credentials on a retry request.
|
|
78
|
+
*
|
|
79
|
+
* Only detects X402 via the X-PAYMENT header. ATXP-MCP payments flow through
|
|
80
|
+
* the MCP token check + requirePayment() path, not through HTTP header
|
|
81
|
+
* detection. Bearer JWTs in non-MCP requests are OAuth access tokens, not
|
|
82
|
+
* payment credentials — detecting them here would misidentify normal auth.
|
|
83
|
+
*
|
|
84
|
+
* Returns null if no payment credential is detected.
|
|
85
|
+
*/
|
|
86
|
+
export declare function detectProtocol(headers: {
|
|
87
|
+
'x-payment'?: string;
|
|
88
|
+
'authorization'?: string;
|
|
89
|
+
}): CredentialDetection | null;
|
|
90
|
+
/**
|
|
91
|
+
* Client for calling auth service verify/settle endpoints.
|
|
92
|
+
* Routes to the appropriate protocol-specific endpoint.
|
|
93
|
+
*/
|
|
94
|
+
export declare class ProtocolSettlement {
|
|
95
|
+
private readonly authServer;
|
|
96
|
+
private readonly logger;
|
|
97
|
+
private readonly fetchFn;
|
|
98
|
+
/** Destination account ID for ATXP settle (the server/LLM's own account) */
|
|
99
|
+
private readonly destinationAccountId?;
|
|
100
|
+
constructor(authServer: AuthorizationServerUrl, logger: Logger, fetchFn?: FetchLike,
|
|
101
|
+
/** Destination account ID for ATXP settle (the server/LLM's own account) */
|
|
102
|
+
destinationAccountId?: string | undefined);
|
|
103
|
+
/**
|
|
104
|
+
* Verify a payment credential at request start.
|
|
105
|
+
* Calls auth `/verify/{protocol}` to check if the credential is valid.
|
|
106
|
+
*
|
|
107
|
+
* For X402: sends { payload, paymentRequirements } (credential is the X-PAYMENT header).
|
|
108
|
+
* For ATXP: sends { sourceAccountId, destinationAccountId, sourceAccountToken, options }.
|
|
109
|
+
*/
|
|
110
|
+
verify(protocol: PaymentProtocol, credential: string, context?: SettlementContext): Promise<VerifyResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Settle a payment at request end.
|
|
113
|
+
* Calls auth `/settle/{protocol}` to finalize the payment.
|
|
114
|
+
*/
|
|
115
|
+
settle(protocol: PaymentProtocol, credential: string, context?: SettlementContext): Promise<SettleResult>;
|
|
116
|
+
/**
|
|
117
|
+
* Build the protocol-specific request body for verify/settle calls.
|
|
118
|
+
*/
|
|
119
|
+
private buildRequestBody;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEzE;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,mBAAmB,GAAG,IAAI,CAQ7B;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,SAAkC;IAC5D,4EAA4E;IAC3D,oBAAoB,CAAC,EAAE,MAAM,YAAA;IAGhD;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB/G;;;OAGG;IACG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuB/G;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAgCzB"}
|
package/dist/protocol.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect the payment protocol from inbound credentials on a retry request.
|
|
3
|
+
*
|
|
4
|
+
* Only detects X402 via the X-PAYMENT header. ATXP-MCP payments flow through
|
|
5
|
+
* the MCP token check + requirePayment() path, not through HTTP header
|
|
6
|
+
* detection. Bearer JWTs in non-MCP requests are OAuth access tokens, not
|
|
7
|
+
* payment credentials — detecting them here would misidentify normal auth.
|
|
8
|
+
*
|
|
9
|
+
* Returns null if no payment credential is detected.
|
|
10
|
+
*/
|
|
11
|
+
function detectProtocol(headers) {
|
|
12
|
+
// X-PAYMENT header indicates X402 protocol
|
|
13
|
+
const xPayment = headers['x-payment'];
|
|
14
|
+
if (xPayment) {
|
|
15
|
+
return { protocol: 'x402', credential: xPayment };
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Client for calling auth service verify/settle endpoints.
|
|
21
|
+
* Routes to the appropriate protocol-specific endpoint.
|
|
22
|
+
*/
|
|
23
|
+
class ProtocolSettlement {
|
|
24
|
+
constructor(authServer, logger, fetchFn = fetch.bind(globalThis),
|
|
25
|
+
/** Destination account ID for ATXP settle (the server/LLM's own account) */
|
|
26
|
+
destinationAccountId) {
|
|
27
|
+
this.authServer = authServer;
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.fetchFn = fetchFn;
|
|
30
|
+
this.destinationAccountId = destinationAccountId;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Verify a payment credential at request start.
|
|
34
|
+
* Calls auth `/verify/{protocol}` to check if the credential is valid.
|
|
35
|
+
*
|
|
36
|
+
* For X402: sends { payload, paymentRequirements } (credential is the X-PAYMENT header).
|
|
37
|
+
* For ATXP: sends { sourceAccountId, destinationAccountId, sourceAccountToken, options }.
|
|
38
|
+
*/
|
|
39
|
+
async verify(protocol, credential, context) {
|
|
40
|
+
const url = new URL(`/verify/${protocol}`, this.authServer);
|
|
41
|
+
this.logger.debug(`Verifying ${protocol} credential at ${url}`);
|
|
42
|
+
const body = this.buildRequestBody(protocol, credential, context);
|
|
43
|
+
const response = await this.fetchFn(url.toString(), {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
headers: { 'Content-Type': 'application/json' },
|
|
46
|
+
body: JSON.stringify(body),
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
this.logger.warn(`Verify ${protocol} failed with status ${response.status}`);
|
|
50
|
+
return { valid: false };
|
|
51
|
+
}
|
|
52
|
+
const result = await response.json();
|
|
53
|
+
this.logger.debug(`Verify ${protocol} result: valid=${result.valid}`);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Settle a payment at request end.
|
|
58
|
+
* Calls auth `/settle/{protocol}` to finalize the payment.
|
|
59
|
+
*/
|
|
60
|
+
async settle(protocol, credential, context) {
|
|
61
|
+
const url = new URL(`/settle/${protocol}`, this.authServer);
|
|
62
|
+
this.logger.debug(`Settling ${protocol} credential at ${url}`);
|
|
63
|
+
const body = this.buildRequestBody(protocol, credential, context);
|
|
64
|
+
const response = await this.fetchFn(url.toString(), {
|
|
65
|
+
method: 'POST',
|
|
66
|
+
headers: { 'Content-Type': 'application/json' },
|
|
67
|
+
body: JSON.stringify(body),
|
|
68
|
+
});
|
|
69
|
+
if (!response.ok) {
|
|
70
|
+
const errorText = await response.text();
|
|
71
|
+
this.logger.error(`Settle ${protocol} failed with status ${response.status}: ${errorText}`);
|
|
72
|
+
throw new Error(`Settlement failed for ${protocol}: ${response.status}`);
|
|
73
|
+
}
|
|
74
|
+
const result = await response.json();
|
|
75
|
+
this.logger.info(`Settled ${protocol}: txHash=${result.txHash}, amount=${result.settledAmount}`);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Build the protocol-specific request body for verify/settle calls.
|
|
80
|
+
*/
|
|
81
|
+
buildRequestBody(protocol, credential, context) {
|
|
82
|
+
if (protocol === 'x402') {
|
|
83
|
+
// X402: auth expects { payload, paymentRequirements }
|
|
84
|
+
// The credential is the base64-encoded X-PAYMENT header containing the payload
|
|
85
|
+
let payload;
|
|
86
|
+
try {
|
|
87
|
+
payload = JSON.parse(Buffer.from(credential, 'base64').toString());
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// If not valid base64 JSON, pass as-is (auth will validate)
|
|
91
|
+
payload = { raw: credential };
|
|
92
|
+
}
|
|
93
|
+
return { payload, paymentRequirements: context?.paymentRequirements };
|
|
94
|
+
}
|
|
95
|
+
// ATXP: auth expects { sourceAccountId, destinationAccountId, sourceAccountToken, options }
|
|
96
|
+
// The credential is a self-contained JSON string from PaymentClient/ATXPAccount.authorize()
|
|
97
|
+
// containing sourceAccountId, sourceAccountToken, and options.
|
|
98
|
+
// destinationAccountId comes from this instance's config (it's the server's own account).
|
|
99
|
+
let parsed = {};
|
|
100
|
+
try {
|
|
101
|
+
parsed = JSON.parse(credential);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
this.logger.warn('ProtocolSettlement: ATXP credential is not valid JSON, using context fallback');
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
sourceAccountId: parsed.sourceAccountId ?? context?.sourceAccountId,
|
|
108
|
+
destinationAccountId: this.destinationAccountId ?? context?.destinationAccountId,
|
|
109
|
+
sourceAccountToken: parsed.sourceAccountToken ?? credential,
|
|
110
|
+
options: parsed.options ?? context?.options ?? [],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export { ProtocolSettlement, detectProtocol };
|
|
116
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sources":["../src/protocol.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -36,10 +36,17 @@ type McpName = string;
|
|
|
36
36
|
type Charge = Pick<PaymentRequest, 'options' | 'sourceAccountId' | 'destinationAccountId' | 'payeeName'> & {
|
|
37
37
|
sourceAccountToken?: string;
|
|
38
38
|
};
|
|
39
|
+
type BalanceRequest = {
|
|
40
|
+
sourceAccountId: string;
|
|
41
|
+
destinationAccountId: string;
|
|
42
|
+
sourceAccountToken?: string;
|
|
43
|
+
};
|
|
39
44
|
type PaymentServer = {
|
|
40
45
|
/** Returns true if the charge succeeded, false if payment is required */
|
|
41
46
|
charge: (args: Charge) => Promise<boolean>;
|
|
42
47
|
createPaymentRequest: (args: Charge) => Promise<string>;
|
|
48
|
+
/** Returns the user's available balance as a BigNumber (USD) */
|
|
49
|
+
getBalance: (args: BalanceRequest) => Promise<BigNumber>;
|
|
43
50
|
};
|
|
44
51
|
type ATXPConfig = {
|
|
45
52
|
destination: PaymentDestination;
|
|
@@ -93,9 +100,10 @@ declare const oneCentCharge: Charge;
|
|
|
93
100
|
declare const zeroCharge: Charge;
|
|
94
101
|
declare function logger(): Logger;
|
|
95
102
|
declare function config(args?: Partial<ATXPConfig>): ATXPConfig;
|
|
96
|
-
declare function paymentServer({ charge, createPaymentRequest }?: {
|
|
103
|
+
declare function paymentServer({ charge, createPaymentRequest, getBalance }?: {
|
|
97
104
|
charge?: vitest.Mock<_vitest_spy.Procedure> | undefined;
|
|
98
105
|
createPaymentRequest?: vitest.Mock<_vitest_spy.Procedure> | undefined;
|
|
106
|
+
getBalance?: vitest.Mock<_vitest_spy.Procedure> | undefined;
|
|
99
107
|
}): PaymentServer;
|
|
100
108
|
declare function mcpRequest({ method, params, id }?: {
|
|
101
109
|
method?: McpMethod;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverTestHelpers.d.ts","sourceRoot":"","sources":["../src/serverTestHelpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAA+C,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/I,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAkC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI7I,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAC7C,eAAO,MAAM,MAAM,eAAe,CAAC;AAGnC,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"serverTestHelpers.d.ts","sourceRoot":"","sources":["../src/serverTestHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,7 @@ function mockAccount(accountId) {
|
|
|
53
53
|
paymentMakers: [],
|
|
54
54
|
getSources: async () => [],
|
|
55
55
|
createSpendPermission: async () => null,
|
|
56
|
+
authorize: async () => ({ protocol: 'atxp', credential: '' }),
|
|
56
57
|
};
|
|
57
58
|
}
|
|
58
59
|
function charge({ amount = BigNumber(0.01), currency = 'USDC', network = 'solana', destinationAddress = DESTINATION, sourceAccountId = `${network}:${SOURCE}`, destinationAccountId = `${network}:${DESTINATION}`, payeeName = 'Test Payee' } = {}) {
|
|
@@ -105,10 +106,11 @@ function config(args = {}) {
|
|
|
105
106
|
};
|
|
106
107
|
return config;
|
|
107
108
|
}
|
|
108
|
-
function paymentServer({ charge = vi.fn().mockResolvedValue(true), createPaymentRequest = vi.fn().mockResolvedValue('test-payment-request-id') } = {}) {
|
|
109
|
+
function paymentServer({ charge = vi.fn().mockResolvedValue(true), createPaymentRequest = vi.fn().mockResolvedValue('test-payment-request-id'), getBalance = vi.fn().mockResolvedValue(new BigNumber('1.00')) } = {}) {
|
|
109
110
|
return {
|
|
110
111
|
charge,
|
|
111
112
|
createPaymentRequest,
|
|
113
|
+
getBalance,
|
|
112
114
|
};
|
|
113
115
|
}
|
|
114
116
|
function mcpRequest({ method = 'tools/call', params = {}, id = 'call-1' } = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverTestHelpers.js","sources":["../src/types.ts","../src/serverTestHelpers.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;AAGA;AACA;AACA,IAAY,aAyBX;AAzBD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,yBAAkD;AAClD,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,0BAAmD;AACnD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,mCAAA,CAAA,GAAA,sCAA0E;AAC1E,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,iCAAiE;AACjE,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC5B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC1B,IAAA,aAAA,CAAA,iCAAA,CAAA,GAAA,oCAAsE;AACtE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AAClE,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC;AACpC,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC;AACxC,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AACpE,CAAC,EAzBW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"serverTestHelpers.js","sources":["../src/types.ts","../src/serverTestHelpers.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -34,10 +34,17 @@ export type RefundErrors = boolean | 'nonMcpOnly';
|
|
|
34
34
|
export type Charge = Pick<PaymentRequest, 'options' | 'sourceAccountId' | 'destinationAccountId' | 'payeeName'> & {
|
|
35
35
|
sourceAccountToken?: string;
|
|
36
36
|
};
|
|
37
|
+
export type BalanceRequest = {
|
|
38
|
+
sourceAccountId: string;
|
|
39
|
+
destinationAccountId: string;
|
|
40
|
+
sourceAccountToken?: string;
|
|
41
|
+
};
|
|
37
42
|
export type PaymentServer = {
|
|
38
43
|
/** Returns true if the charge succeeded, false if payment is required */
|
|
39
44
|
charge: (args: Charge) => Promise<boolean>;
|
|
40
45
|
createPaymentRequest: (args: Charge) => Promise<string>;
|
|
46
|
+
/** Returns the user's available balance as a BigNumber (USD) */
|
|
47
|
+
getBalance: (args: BalanceRequest) => Promise<BigNumber>;
|
|
41
48
|
};
|
|
42
49
|
export type ATXPConfig = {
|
|
43
50
|
destination: PaymentDestination;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKhK,oBAAY,aAAa;IACvB,sBAAsB,4BAA4B;IAClD,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,qBAAqB,2BAA2B;IAChD,aAAa,mBAAmB;IAChC,sBAAsB,6BAA6B;IACnD,aAAa,mBAAmB;IAChC,iCAAiC,yCAAyC;IAC1E,kBAAkB,wBAAwB;IAC1C,oBAAoB,0BAA0B;IAC9C,6BAA6B,oCAAoC;IACjE,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,+BAA+B,uCAAuC;IACtE,SAAS,eAAe;IACxB,SAAS,eAAe;IACxB,6BAA6B,qCAAqC;IAClE,eAAe,qBAAqB;IACpC,oBAAoB,0BAA0B;IAC9C,qBAAqB,2BAA2B;IAChD,iBAAiB,uBAAuB;IACxC,kBAAkB,wBAAwB;IAC1C,SAAS,eAAe;IACxB,6BAA6B,qCAAqC;CACnE;AACD,MAAM,MAAM,SAAS,GAAG,GAAG,aAAa,EAAE,CAAC;AAE3C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,GAAG,CAAC;AAC3C,MAAM,MAAM,YAAY,GAAG,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,GAAG,GAAG,GAAG,SAAS,IAAI,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,YAAY,CAAC;AAKlD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,WAAW,CAAC,GAAG;IAEhH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;AACA;IACY;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,yBAAkD;AAClD,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,0BAAmD;AACnD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,mCAAA,CAAA,GAAA,sCAA0E;AAC1E,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,iCAAiE;AACjE,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC5B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC1B,IAAA,aAAA,CAAA,iCAAA,CAAA,GAAA,oCAAsE;AACtE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AAClE,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC;AACpC,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC;AACxC,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AACpE,CAAC,EAzBW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;AACA;IACY;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,yBAAkD;AAClD,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,wBAAA,CAAA,GAAA,0BAAmD;AACnD,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAChC,IAAA,aAAA,CAAA,mCAAA,CAAA,GAAA,sCAA0E;AAC1E,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,iCAAiE;AACjE,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC5B,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC1B,IAAA,aAAA,CAAA,iCAAA,CAAA,GAAA,oCAAsE;AACtE,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AAClE,IAAA,aAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC;AACpC,IAAA,aAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C;AAC9C,IAAA,aAAA,CAAA,uBAAA,CAAA,GAAA,wBAAgD;AAChD,IAAA,aAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC;AACxC,IAAA,aAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C;AAC1C,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,YAAwB;AACxB,IAAA,aAAA,CAAA,+BAAA,CAAA,GAAA,kCAAkE;AACpE,CAAC,EAzBW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;IA0Eb;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACvC,CAAC,EAPW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atxp/server",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.9",
|
|
4
4
|
"description": "ATXP Server - MCP server implementation with payment processing capabilities",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"pack:dry": "npm pack --dry-run"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@atxp/common": "0.10.
|
|
41
|
+
"@atxp/common": "0.10.8",
|
|
42
42
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
|
43
43
|
"bignumber.js": "^9.3.0",
|
|
44
44
|
"oauth4webapi": "^3.8.3"
|