x402-proxy 0.10.7 → 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/CHANGELOG.md +23 -1
- package/README.md +7 -1
- package/dist/Credential-COZQnr1-.js +2055 -0
- package/dist/Mcp-CrCEqLqO.js +10 -0
- package/dist/Sse-ChldYgU7.js +9742 -0
- package/dist/Sse-kCB38G56.js +16482 -0
- package/dist/accounts-DsuvWwph.js +232 -0
- package/dist/accounts-DzvAlQRn.js +5 -0
- package/dist/accounts-IG-Cmrwy.js +229 -0
- package/dist/api-CUzmQvTQ.js +2802 -0
- package/dist/auth-DTzQmnZ_.js +1196 -0
- package/dist/bin/cli.js +585 -242
- package/dist/ccip-Bx-zoUCJ.js +240 -0
- package/dist/ccip-C2k1DD1T.js +153 -0
- package/dist/ccip-C6CQOJYv.js +152 -0
- package/dist/ccip-RZzsZ5Mv.js +156 -0
- package/dist/chain-CafcHffR.js +1997 -0
- package/dist/chain-DwfP5RGZ.js +1968 -0
- package/dist/chunk-DBEY4PJZ.js +16 -0
- package/dist/chunk-DjEMn6fM.js +36 -0
- package/dist/client-Blw2V7LF.js +657 -0
- package/dist/client-C37gWJOZ.js +102 -0
- package/dist/client-CEc4NYAA.js +6388 -0
- package/dist/client-CVDTUY0l.js +5152 -0
- package/dist/config-BUQsit4s.js +3 -0
- package/dist/config-DR1Fs_wL.js +6600 -0
- package/dist/{config-D9wIR3xc.js → config-rvKA3SYT.js} +10 -5
- package/dist/decodeFunctionData-DuFcwhC_.js +4510 -0
- package/dist/decodeFunctionData-JPOUdvil.js +4394 -0
- package/dist/derive-DNUl8LU9.js +9109 -0
- package/dist/dist-C2YO6HSQ.js +6581 -0
- package/dist/dist-DM5_F3r5.js +4 -0
- package/dist/dist-DxJCYyL5.js +1388 -0
- package/dist/hashTypedData-BHmP9dBd.js +859 -0
- package/dist/hashTypedData-CtEdfx4y.js +846 -0
- package/dist/helpers-CuUSw-tH.js +7125 -0
- package/dist/hmac-59IlS_by.js +648 -0
- package/dist/http-BAtucMbS.js +2060 -0
- package/dist/index.d.ts +1903 -9
- package/dist/index.js +18006 -50
- package/dist/index.node-CxkL0OFh.js +3592 -0
- package/dist/index.node-DvmeuZBj.js +3 -0
- package/dist/isAddressEqual-BLrd1Hg1.js +9 -0
- package/dist/isAddressEqual-DsAqfQOD.js +10 -0
- package/dist/localBatchGatewayRequest-C-RPJyDO.js +6260 -0
- package/dist/localBatchGatewayRequest-DOdQ9bR7.js +93 -0
- package/dist/localBatchGatewayRequest-DQkbZaSy.js +6261 -0
- package/dist/parseUnits-CApwcKSD.js +49 -0
- package/dist/parseUnits-cMO2udMe.js +48 -0
- package/dist/schemas-BxMFYNbH.js +1270 -0
- package/dist/secp256k1-BZpiyffY.js +2525 -0
- package/dist/secp256k1-BjenrLl5.js +1877 -0
- package/dist/secp256k1-CLPUX17u.js +3 -0
- package/dist/sendRawTransactionSync-DvSkhZtW.js +3612 -0
- package/dist/server-CSq0IuUq.js +565 -0
- package/dist/setup-BY4J49Lv.js +1110 -0
- package/dist/setup-wMOAgrsN.js +3 -0
- package/dist/sha256-FAs0qeni.js +17 -0
- package/dist/sha3-CYkWM8Xa.js +195 -0
- package/dist/sha3-DbMJRJ3C.js +194 -0
- package/dist/sse-B4LLqBQm.js +408 -0
- package/dist/status-Bu23RjW6.js +3 -0
- package/dist/{status-DihAcUSC.js → status-X21VnGUO.js} +16 -15
- package/dist/stdio-BADqxZdZ.js +85 -0
- package/dist/streamableHttp-BHkJypcI.js +358 -0
- package/dist/tempo-3nttrxgQ.js +17 -0
- package/dist/tempo-DER0P-ul.js +18 -0
- package/dist/types-BEKUz-Mf.js +1240 -0
- package/dist/types-DatK5vR5.js +3 -0
- package/dist/utils-BYjkXZDF.js +444 -0
- package/dist/utils-SeGHMW9O.js +445 -0
- package/dist/wallet-DKVlrR1S.js +3 -0
- package/dist/wallet-DSyht15_.js +17759 -0
- package/package.json +18 -71
- package/dist/config-B_upkJeK.js +0 -66
- package/dist/config-Be35NM5s.js +0 -3
- package/dist/config-J1m-CWXT.js +0 -27
- package/dist/derive-CL6e8K0Z.js +0 -81
- package/dist/openclaw/plugin.d.ts +0 -15
- package/dist/openclaw/plugin.js +0 -2067
- package/dist/openclaw.plugin.json +0 -93
- package/dist/setup-CNyMLnM-.js +0 -197
- package/dist/setup-DTIxPe58.js +0 -3
- package/dist/status-DZlJ4pS7.js +0 -3
- package/dist/wallet-B0S-rma9.js +0 -544
- package/dist/wallet-DBrVZJqe.js +0 -3
- package/openclaw.plugin.json +0 -93
- package/skills/SKILL.md +0 -183
- package/skills/references/library.md +0 -85
- package/skills/references/openclaw-plugin.md +0 -145
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { n as __exportAll } from "./chunk-DjEMn6fM.js";
|
|
3
|
+
import { t as deserialize } from "./Credential-COZQnr1-.js";
|
|
4
|
+
import { r as receiptMetaKey, t as credentialMetaKey } from "./Mcp-CrCEqLqO.js";
|
|
5
|
+
//#region node_modules/.pnpm/mppx@0.5.1_@modelcontextprotocol+sdk@1.28.0_zod@4.3.6__express@5.2.1_hono@4.12.9_openap_d8babfcabcc768186151f117bc0e35e5/node_modules/mppx/dist/mcp-sdk/client/McpClient.js
|
|
6
|
+
var McpClient_exports = /* @__PURE__ */ __exportAll({
|
|
7
|
+
isPaymentRequiredError: () => isPaymentRequiredError,
|
|
8
|
+
wrap: () => wrap
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Creates a payment-aware wrapper around an MCP SDK client.
|
|
12
|
+
*
|
|
13
|
+
* Similar to `Fetch.from()` for HTTP, this wraps an MCP client's `callTool`
|
|
14
|
+
* method to automatically handle payment challenges.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { Client } from '@modelcontextprotocol/sdk/client'
|
|
19
|
+
* import { McpClient, tempo } from 'mppx/mcp-sdk/client'
|
|
20
|
+
* import { privateKeyToAccount } from 'viem/accounts'
|
|
21
|
+
*
|
|
22
|
+
* const client = new Client({ name: 'my-client', version: '1.0.0' })
|
|
23
|
+
* await client.connect(transport)
|
|
24
|
+
*
|
|
25
|
+
* const mcp = McpClient.wrap(client, {
|
|
26
|
+
* methods: [
|
|
27
|
+
* tempo({
|
|
28
|
+
* account: privateKeyToAccount('0x...'),
|
|
29
|
+
* }),
|
|
30
|
+
* ],
|
|
31
|
+
* })
|
|
32
|
+
*
|
|
33
|
+
* // Automatically handles payment challenges
|
|
34
|
+
* const result = await mcp.callTool({ name: 'premium_tool', arguments: {} })
|
|
35
|
+
* console.log(result.content, result.receipt)
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
function wrap(client, config) {
|
|
39
|
+
const { methods } = config;
|
|
40
|
+
return {
|
|
41
|
+
...client,
|
|
42
|
+
async callTool(params, options) {
|
|
43
|
+
const context = options?.context;
|
|
44
|
+
const timeout = options?.timeout;
|
|
45
|
+
try {
|
|
46
|
+
const result = await client.callTool(params, void 0, timeout !== void 0 ? { timeout } : void 0);
|
|
47
|
+
return {
|
|
48
|
+
...result,
|
|
49
|
+
receipt: result._meta?.[receiptMetaKey]
|
|
50
|
+
};
|
|
51
|
+
} catch (error) {
|
|
52
|
+
if (!isPaymentRequiredError(error)) throw error;
|
|
53
|
+
const challenges = error.data?.challenges;
|
|
54
|
+
if (!challenges?.length) throw error;
|
|
55
|
+
const challenge = challenges.find((c) => methods.some((m) => m.name === c.method && m.intent === c.intent));
|
|
56
|
+
if (!challenge) {
|
|
57
|
+
const available = challenges.map((c) => `${c.method}.${c.intent}`).join(", ");
|
|
58
|
+
const installed = methods.map((m) => `${m.name}.${m.intent}`).join(", ");
|
|
59
|
+
throw new Error(`No compatible payment method. Server offers: ${available}. Client has: ${installed}`, { cause: error });
|
|
60
|
+
}
|
|
61
|
+
const parsed = deserialize(await createCredential(challenge, {
|
|
62
|
+
context,
|
|
63
|
+
methods
|
|
64
|
+
}));
|
|
65
|
+
const retryResult = await client.callTool({
|
|
66
|
+
...params,
|
|
67
|
+
_meta: {
|
|
68
|
+
...params._meta,
|
|
69
|
+
[credentialMetaKey]: parsed
|
|
70
|
+
}
|
|
71
|
+
}, void 0, timeout !== void 0 ? { timeout } : void 0);
|
|
72
|
+
return {
|
|
73
|
+
...retryResult,
|
|
74
|
+
receipt: retryResult._meta?.[receiptMetaKey]
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Checks if an error is a payment required error.
|
|
82
|
+
*/
|
|
83
|
+
function isPaymentRequiredError(error) {
|
|
84
|
+
if (typeof error !== "object" || error === null) return false;
|
|
85
|
+
if (!("code" in error) || !("message" in error)) return false;
|
|
86
|
+
if (error.code !== -32042) return false;
|
|
87
|
+
const data = error.data;
|
|
88
|
+
return Array.isArray(data?.challenges) && data.challenges.length > 0;
|
|
89
|
+
}
|
|
90
|
+
/** @internal */
|
|
91
|
+
async function createCredential(challenge, config) {
|
|
92
|
+
const { context, methods } = config;
|
|
93
|
+
const mi = methods.find((m) => m.name === challenge.method && m.intent === challenge.intent);
|
|
94
|
+
if (!mi) throw new Error(`No method found for "${challenge.method}.${challenge.intent}". Available: ${methods.map((m) => `${m.name}.${m.intent}`).join(", ")}`);
|
|
95
|
+
const parsedContext = mi.context && context !== void 0 ? mi.context.parse(context) : void 0;
|
|
96
|
+
return mi.createCredential(parsedContext !== void 0 ? {
|
|
97
|
+
challenge,
|
|
98
|
+
context: parsedContext
|
|
99
|
+
} : { challenge });
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { McpClient_exports as McpClient };
|