mppx 0.0.1 → 0.1.0

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 (446) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +195 -0
  3. package/dist/BodyDigest.d.ts +42 -0
  4. package/dist/BodyDigest.d.ts.map +1 -0
  5. package/dist/BodyDigest.js +40 -0
  6. package/dist/BodyDigest.js.map +1 -0
  7. package/dist/Challenge.d.ts +271 -0
  8. package/dist/Challenge.d.ts.map +1 -0
  9. package/dist/Challenge.js +291 -0
  10. package/dist/Challenge.js.map +1 -0
  11. package/dist/Credential.d.ts +91 -0
  12. package/dist/Credential.d.ts.map +1 -0
  13. package/dist/Credential.js +122 -0
  14. package/dist/Credential.js.map +1 -0
  15. package/dist/Errors.d.ts +243 -0
  16. package/dist/Errors.d.ts.map +1 -0
  17. package/dist/Errors.js +201 -0
  18. package/dist/Errors.js.map +1 -0
  19. package/dist/Expires.d.ts +15 -0
  20. package/dist/Expires.d.ts.map +1 -0
  21. package/dist/Expires.js +29 -0
  22. package/dist/Expires.js.map +1 -0
  23. package/dist/Intent.d.ts +101 -0
  24. package/dist/Intent.d.ts.map +1 -0
  25. package/dist/Intent.js +83 -0
  26. package/dist/Intent.js.map +1 -0
  27. package/dist/Mcp.d.ts +74 -0
  28. package/dist/Mcp.d.ts.map +1 -0
  29. package/dist/Mcp.js +9 -0
  30. package/dist/Mcp.js.map +1 -0
  31. package/dist/MethodIntent.d.ts +225 -0
  32. package/dist/MethodIntent.d.ts.map +1 -0
  33. package/dist/MethodIntent.js +156 -0
  34. package/dist/MethodIntent.js.map +1 -0
  35. package/dist/PaymentRequest.d.ts +88 -0
  36. package/dist/PaymentRequest.d.ts.map +1 -0
  37. package/dist/PaymentRequest.js +81 -0
  38. package/dist/PaymentRequest.js.map +1 -0
  39. package/dist/Receipt.d.ts +110 -0
  40. package/dist/Receipt.d.ts.map +1 -0
  41. package/dist/Receipt.js +105 -0
  42. package/dist/Receipt.js.map +1 -0
  43. package/dist/Store.d.ts +28 -0
  44. package/dist/Store.d.ts.map +1 -0
  45. package/dist/Store.js +61 -0
  46. package/dist/Store.js.map +1 -0
  47. package/dist/cli.d.ts +3 -0
  48. package/dist/cli.d.ts.map +1 -0
  49. package/dist/cli.js +1219 -0
  50. package/dist/cli.js.map +1 -0
  51. package/dist/client/Methods.d.ts +4 -0
  52. package/dist/client/Methods.d.ts.map +1 -0
  53. package/dist/client/Methods.js +4 -0
  54. package/dist/client/Methods.js.map +1 -0
  55. package/dist/client/Mppx.d.ts +84 -0
  56. package/dist/client/Mppx.d.ts.map +1 -0
  57. package/dist/client/Mppx.js +64 -0
  58. package/dist/client/Mppx.js.map +1 -0
  59. package/dist/client/Transport.d.ts +56 -0
  60. package/dist/client/Transport.d.ts.map +1 -0
  61. package/dist/client/Transport.js +81 -0
  62. package/dist/client/Transport.js.map +1 -0
  63. package/dist/client/index.d.ts +5 -0
  64. package/dist/client/index.d.ts.map +1 -0
  65. package/dist/client/index.js +5 -0
  66. package/dist/client/index.js.map +1 -0
  67. package/dist/client/internal/Fetch.d.ts +85 -0
  68. package/dist/client/internal/Fetch.d.ts.map +1 -0
  69. package/dist/client/internal/Fetch.js +95 -0
  70. package/dist/client/internal/Fetch.js.map +1 -0
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +13 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/internal/types.d.ts +302 -0
  76. package/dist/internal/types.d.ts.map +1 -0
  77. package/dist/internal/types.js +2 -0
  78. package/dist/internal/types.js.map +1 -0
  79. package/dist/mcp-sdk/client/McpClient.d.ts +78 -0
  80. package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -0
  81. package/dist/mcp-sdk/client/McpClient.js +98 -0
  82. package/dist/mcp-sdk/client/McpClient.js.map +1 -0
  83. package/dist/mcp-sdk/client/index.d.ts +3 -0
  84. package/dist/mcp-sdk/client/index.d.ts.map +1 -0
  85. package/dist/mcp-sdk/client/index.js +3 -0
  86. package/dist/mcp-sdk/client/index.js.map +1 -0
  87. package/dist/mcp-sdk/server/Transport.d.ts +43 -0
  88. package/dist/mcp-sdk/server/Transport.d.ts.map +1 -0
  89. package/dist/mcp-sdk/server/Transport.js +71 -0
  90. package/dist/mcp-sdk/server/Transport.js.map +1 -0
  91. package/dist/mcp-sdk/server/index.d.ts +2 -0
  92. package/dist/mcp-sdk/server/index.d.ts.map +1 -0
  93. package/dist/mcp-sdk/server/index.js +2 -0
  94. package/dist/mcp-sdk/server/index.js.map +1 -0
  95. package/dist/middlewares/elysia.d.ts +51 -0
  96. package/dist/middlewares/elysia.d.ts.map +1 -0
  97. package/dist/middlewares/elysia.js +59 -0
  98. package/dist/middlewares/elysia.js.map +1 -0
  99. package/dist/middlewares/express.d.ts +46 -0
  100. package/dist/middlewares/express.d.ts.map +1 -0
  101. package/dist/middlewares/express.js +69 -0
  102. package/dist/middlewares/express.js.map +1 -0
  103. package/dist/middlewares/hono.d.ts +46 -0
  104. package/dist/middlewares/hono.d.ts.map +1 -0
  105. package/dist/middlewares/hono.js +57 -0
  106. package/dist/middlewares/hono.js.map +1 -0
  107. package/dist/middlewares/internal/mppx.d.ts +16 -0
  108. package/dist/middlewares/internal/mppx.d.ts.map +1 -0
  109. package/dist/middlewares/internal/mppx.js +16 -0
  110. package/dist/middlewares/internal/mppx.js.map +1 -0
  111. package/dist/middlewares/nextjs.d.ts +45 -0
  112. package/dist/middlewares/nextjs.d.ts.map +1 -0
  113. package/dist/middlewares/nextjs.js +57 -0
  114. package/dist/middlewares/nextjs.js.map +1 -0
  115. package/dist/proxy/Proxy.d.ts +47 -0
  116. package/dist/proxy/Proxy.d.ts.map +1 -0
  117. package/dist/proxy/Proxy.js +126 -0
  118. package/dist/proxy/Proxy.js.map +1 -0
  119. package/dist/proxy/Service.d.ts +100 -0
  120. package/dist/proxy/Service.d.ts.map +1 -0
  121. package/dist/proxy/Service.js +147 -0
  122. package/dist/proxy/Service.js.map +1 -0
  123. package/dist/proxy/index.d.ts +7 -0
  124. package/dist/proxy/index.d.ts.map +1 -0
  125. package/dist/proxy/index.js +7 -0
  126. package/dist/proxy/index.js.map +1 -0
  127. package/dist/proxy/internal/Headers.d.ts +3 -0
  128. package/dist/proxy/internal/Headers.d.ts.map +1 -0
  129. package/dist/proxy/internal/Headers.js +41 -0
  130. package/dist/proxy/internal/Headers.js.map +1 -0
  131. package/dist/proxy/internal/Route.d.ts +14 -0
  132. package/dist/proxy/internal/Route.d.ts.map +1 -0
  133. package/dist/proxy/internal/Route.js +47 -0
  134. package/dist/proxy/internal/Route.js.map +1 -0
  135. package/dist/proxy/services/anthropic.d.ts +29 -0
  136. package/dist/proxy/services/anthropic.d.ts.map +1 -0
  137. package/dist/proxy/services/anthropic.js +30 -0
  138. package/dist/proxy/services/anthropic.js.map +1 -0
  139. package/dist/proxy/services/openai.d.ts +29 -0
  140. package/dist/proxy/services/openai.d.ts.map +1 -0
  141. package/dist/proxy/services/openai.js +30 -0
  142. package/dist/proxy/services/openai.js.map +1 -0
  143. package/dist/proxy/services/stripe.d.ts +29 -0
  144. package/dist/proxy/services/stripe.d.ts.map +1 -0
  145. package/dist/proxy/services/stripe.js +30 -0
  146. package/dist/proxy/services/stripe.js.map +1 -0
  147. package/dist/server/Methods.d.ts +3 -0
  148. package/dist/server/Methods.d.ts.map +1 -0
  149. package/dist/server/Methods.js +3 -0
  150. package/dist/server/Methods.js.map +1 -0
  151. package/dist/server/Mppx.d.ts +116 -0
  152. package/dist/server/Mppx.d.ts.map +1 -0
  153. package/dist/server/Mppx.js +207 -0
  154. package/dist/server/Mppx.js.map +1 -0
  155. package/dist/server/NodeListener.d.ts +3 -0
  156. package/dist/server/NodeListener.d.ts.map +1 -0
  157. package/dist/server/NodeListener.js +3 -0
  158. package/dist/server/NodeListener.js.map +1 -0
  159. package/dist/server/Request.d.ts +24 -0
  160. package/dist/server/Request.d.ts.map +1 -0
  161. package/dist/server/Request.js +26 -0
  162. package/dist/server/Request.js.map +1 -0
  163. package/dist/server/Response.d.ts +10 -0
  164. package/dist/server/Response.d.ts.map +1 -0
  165. package/dist/server/Response.js +15 -0
  166. package/dist/server/Response.js.map +1 -0
  167. package/dist/server/Transport.d.ts +93 -0
  168. package/dist/server/Transport.d.ts.map +1 -0
  169. package/dist/server/Transport.js +132 -0
  170. package/dist/server/Transport.js.map +1 -0
  171. package/dist/server/index.d.ts +9 -0
  172. package/dist/server/index.d.ts.map +1 -0
  173. package/dist/server/index.js +9 -0
  174. package/dist/server/index.js.map +1 -0
  175. package/dist/stripe/Intents.d.ts +54 -0
  176. package/dist/stripe/Intents.d.ts.map +1 -0
  177. package/dist/stripe/Intents.js +27 -0
  178. package/dist/stripe/Intents.js.map +1 -0
  179. package/dist/stripe/client/Charge.d.ts +114 -0
  180. package/dist/stripe/client/Charge.d.ts.map +1 -0
  181. package/dist/stripe/client/Charge.js +77 -0
  182. package/dist/stripe/client/Charge.js.map +1 -0
  183. package/dist/stripe/client/MethodIntents.d.ts +80 -0
  184. package/dist/stripe/client/MethodIntents.d.ts.map +1 -0
  185. package/dist/stripe/client/MethodIntents.js +34 -0
  186. package/dist/stripe/client/MethodIntents.js.map +1 -0
  187. package/dist/stripe/client/index.d.ts +3 -0
  188. package/dist/stripe/client/index.d.ts.map +1 -0
  189. package/dist/stripe/client/index.js +3 -0
  190. package/dist/stripe/client/index.js.map +1 -0
  191. package/dist/stripe/index.d.ts +2 -0
  192. package/dist/stripe/index.d.ts.map +1 -0
  193. package/dist/stripe/index.js +2 -0
  194. package/dist/stripe/index.js.map +1 -0
  195. package/dist/stripe/server/Charge.d.ts +74 -0
  196. package/dist/stripe/server/Charge.d.ts.map +1 -0
  197. package/dist/stripe/server/Charge.js +79 -0
  198. package/dist/stripe/server/Charge.js.map +1 -0
  199. package/dist/stripe/server/MethodIntents.d.ts +65 -0
  200. package/dist/stripe/server/MethodIntents.d.ts.map +1 -0
  201. package/dist/stripe/server/MethodIntents.js +21 -0
  202. package/dist/stripe/server/MethodIntents.js.map +1 -0
  203. package/dist/stripe/server/index.d.ts +3 -0
  204. package/dist/stripe/server/index.d.ts.map +1 -0
  205. package/dist/stripe/server/index.js +3 -0
  206. package/dist/stripe/server/index.js.map +1 -0
  207. package/dist/tempo/Attribution.d.ts +101 -0
  208. package/dist/tempo/Attribution.d.ts.map +1 -0
  209. package/dist/tempo/Attribution.js +124 -0
  210. package/dist/tempo/Attribution.js.map +1 -0
  211. package/dist/tempo/Intents.d.ts +132 -0
  212. package/dist/tempo/Intents.d.ts.map +1 -0
  213. package/dist/tempo/Intents.js +81 -0
  214. package/dist/tempo/Intents.js.map +1 -0
  215. package/dist/tempo/client/ChannelOps.d.ts +54 -0
  216. package/dist/tempo/client/ChannelOps.d.ts.map +1 -0
  217. package/dist/tempo/client/ChannelOps.js +138 -0
  218. package/dist/tempo/client/ChannelOps.js.map +1 -0
  219. package/dist/tempo/client/Charge.d.ts +76 -0
  220. package/dist/tempo/client/Charge.d.ts.map +1 -0
  221. package/dist/tempo/client/Charge.js +69 -0
  222. package/dist/tempo/client/Charge.js.map +1 -0
  223. package/dist/tempo/client/MethodIntents.d.ts +157 -0
  224. package/dist/tempo/client/MethodIntents.d.ts.map +1 -0
  225. package/dist/tempo/client/MethodIntents.js +25 -0
  226. package/dist/tempo/client/MethodIntents.js.map +1 -0
  227. package/dist/tempo/client/Session.d.ts +159 -0
  228. package/dist/tempo/client/Session.d.ts.map +1 -0
  229. package/dist/tempo/client/Session.js +263 -0
  230. package/dist/tempo/client/Session.js.map +1 -0
  231. package/dist/tempo/client/SessionManager.d.ts +62 -0
  232. package/dist/tempo/client/SessionManager.d.ts.map +1 -0
  233. package/dist/tempo/client/SessionManager.js +196 -0
  234. package/dist/tempo/client/SessionManager.js.map +1 -0
  235. package/dist/tempo/client/index.d.ts +6 -0
  236. package/dist/tempo/client/index.d.ts.map +1 -0
  237. package/dist/tempo/client/index.js +5 -0
  238. package/dist/tempo/client/index.js.map +1 -0
  239. package/dist/tempo/index.d.ts +3 -0
  240. package/dist/tempo/index.d.ts.map +1 -0
  241. package/dist/tempo/index.js +3 -0
  242. package/dist/tempo/index.js.map +1 -0
  243. package/dist/tempo/internal/account.d.ts +32 -0
  244. package/dist/tempo/internal/account.d.ts.map +1 -0
  245. package/dist/tempo/internal/account.js +33 -0
  246. package/dist/tempo/internal/account.js.map +1 -0
  247. package/dist/tempo/internal/defaults.d.ts +18 -0
  248. package/dist/tempo/internal/defaults.d.ts.map +1 -0
  249. package/dist/tempo/internal/defaults.js +18 -0
  250. package/dist/tempo/internal/defaults.js.map +1 -0
  251. package/dist/tempo/internal/types.d.ts +11 -0
  252. package/dist/tempo/internal/types.d.ts.map +1 -0
  253. package/dist/tempo/internal/types.js +2 -0
  254. package/dist/tempo/internal/types.js.map +1 -0
  255. package/dist/tempo/server/Charge.d.ts +77 -0
  256. package/dist/tempo/server/Charge.d.ts.map +1 -0
  257. package/dist/tempo/server/Charge.js +228 -0
  258. package/dist/tempo/server/Charge.js.map +1 -0
  259. package/dist/tempo/server/MethodIntents.d.ts +140 -0
  260. package/dist/tempo/server/MethodIntents.d.ts.map +1 -0
  261. package/dist/tempo/server/MethodIntents.js +26 -0
  262. package/dist/tempo/server/MethodIntents.js.map +1 -0
  263. package/dist/tempo/server/Session.d.ts +148 -0
  264. package/dist/tempo/server/Session.d.ts.map +1 -0
  265. package/dist/tempo/server/Session.js +529 -0
  266. package/dist/tempo/server/Session.js.map +1 -0
  267. package/dist/tempo/server/internal/transport.d.ts +47 -0
  268. package/dist/tempo/server/internal/transport.d.ts.map +1 -0
  269. package/dist/tempo/server/internal/transport.js +118 -0
  270. package/dist/tempo/server/internal/transport.js.map +1 -0
  271. package/dist/tempo/stream/Chain.d.ts +52 -0
  272. package/dist/tempo/stream/Chain.d.ts.map +1 -0
  273. package/dist/tempo/stream/Chain.js +215 -0
  274. package/dist/tempo/stream/Chain.js.map +1 -0
  275. package/dist/tempo/stream/Channel.d.ts +26 -0
  276. package/dist/tempo/stream/Channel.d.ts.map +1 -0
  277. package/dist/tempo/stream/Channel.js +27 -0
  278. package/dist/tempo/stream/Channel.js.map +1 -0
  279. package/dist/tempo/stream/ChannelStore.d.ts +103 -0
  280. package/dist/tempo/stream/ChannelStore.d.ts.map +1 -0
  281. package/dist/tempo/stream/ChannelStore.js +100 -0
  282. package/dist/tempo/stream/ChannelStore.js.map +1 -0
  283. package/dist/tempo/stream/Receipt.d.ts +22 -0
  284. package/dist/tempo/stream/Receipt.d.ts.map +1 -0
  285. package/dist/tempo/stream/Receipt.js +34 -0
  286. package/dist/tempo/stream/Receipt.js.map +1 -0
  287. package/dist/tempo/stream/Sse.d.ts +134 -0
  288. package/dist/tempo/stream/Sse.d.ts.map +1 -0
  289. package/dist/tempo/stream/Sse.js +288 -0
  290. package/dist/tempo/stream/Sse.js.map +1 -0
  291. package/dist/tempo/stream/Types.d.ts +78 -0
  292. package/dist/tempo/stream/Types.d.ts.map +1 -0
  293. package/dist/tempo/stream/Types.js +2 -0
  294. package/dist/tempo/stream/Types.js.map +1 -0
  295. package/dist/tempo/stream/Voucher.d.ts +20 -0
  296. package/dist/tempo/stream/Voucher.d.ts.map +1 -0
  297. package/dist/tempo/stream/Voucher.js +98 -0
  298. package/dist/tempo/stream/Voucher.js.map +1 -0
  299. package/dist/tempo/stream/escrow.abi.d.ts +598 -0
  300. package/dist/tempo/stream/escrow.abi.d.ts.map +1 -0
  301. package/dist/tempo/stream/escrow.abi.js +760 -0
  302. package/dist/tempo/stream/escrow.abi.js.map +1 -0
  303. package/dist/tempo/stream/index.d.ts +8 -0
  304. package/dist/tempo/stream/index.d.ts.map +1 -0
  305. package/dist/tempo/stream/index.js +8 -0
  306. package/dist/tempo/stream/index.js.map +1 -0
  307. package/dist/viem/Account.d.ts +12 -0
  308. package/dist/viem/Account.d.ts.map +1 -0
  309. package/dist/viem/Account.js +14 -0
  310. package/dist/viem/Account.js.map +1 -0
  311. package/dist/viem/Client.d.ts +21 -0
  312. package/dist/viem/Client.d.ts.map +1 -0
  313. package/dist/viem/Client.js +19 -0
  314. package/dist/viem/Client.js.map +1 -0
  315. package/dist/zod.d.ts +17 -0
  316. package/dist/zod.d.ts.map +1 -0
  317. package/dist/zod.js +35 -0
  318. package/dist/zod.js.map +1 -0
  319. package/package.json +117 -4
  320. package/src/BodyDigest.test.ts +43 -0
  321. package/src/BodyDigest.ts +53 -0
  322. package/src/Challenge.test-d.ts +81 -0
  323. package/src/Challenge.test.ts +414 -0
  324. package/src/Challenge.ts +429 -0
  325. package/src/Credential.test.ts +227 -0
  326. package/src/Credential.ts +154 -0
  327. package/src/Errors.test.ts +402 -0
  328. package/src/Errors.ts +348 -0
  329. package/src/Expires.ts +34 -0
  330. package/src/Intent.test.ts +180 -0
  331. package/src/Intent.ts +109 -0
  332. package/src/Mcp.ts +81 -0
  333. package/src/MethodIntent.test.ts +303 -0
  334. package/src/MethodIntent.ts +388 -0
  335. package/src/PaymentRequest.test.ts +152 -0
  336. package/src/PaymentRequest.ts +107 -0
  337. package/src/Receipt.test.ts +98 -0
  338. package/src/Receipt.ts +129 -0
  339. package/src/Store.ts +84 -0
  340. package/src/cli.test.ts +542 -0
  341. package/src/cli.ts +1319 -0
  342. package/src/client/Methods.ts +3 -0
  343. package/src/client/Mppx.test-d.ts +90 -0
  344. package/src/client/Mppx.test.ts +468 -0
  345. package/src/client/Mppx.ts +149 -0
  346. package/src/client/Transport.test.ts +283 -0
  347. package/src/client/Transport.ts +115 -0
  348. package/src/client/index.ts +4 -0
  349. package/src/client/internal/Fetch.test-d.ts +57 -0
  350. package/src/client/internal/Fetch.test.ts +281 -0
  351. package/src/client/internal/Fetch.ts +157 -0
  352. package/src/env.d.ts +11 -0
  353. package/src/index.ts +12 -0
  354. package/src/internal/types.ts +403 -0
  355. package/src/mcp-sdk/client/McpClient.test-d.ts +109 -0
  356. package/src/mcp-sdk/client/McpClient.test.ts +219 -0
  357. package/src/mcp-sdk/client/McpClient.ts +187 -0
  358. package/src/mcp-sdk/client/index.ts +2 -0
  359. package/src/mcp-sdk/server/Transport.ts +94 -0
  360. package/src/mcp-sdk/server/index.ts +1 -0
  361. package/src/middlewares/elysia.ts +66 -0
  362. package/src/middlewares/express.test.ts +155 -0
  363. package/src/middlewares/express.ts +82 -0
  364. package/src/middlewares/hono.test.ts +148 -0
  365. package/src/middlewares/hono.ts +62 -0
  366. package/src/middlewares/internal/mppx.ts +30 -0
  367. package/src/middlewares/nextjs.test.ts +164 -0
  368. package/src/middlewares/nextjs.ts +66 -0
  369. package/src/proxy/Proxy.test.ts +472 -0
  370. package/src/proxy/Proxy.ts +175 -0
  371. package/src/proxy/Service.test.ts +125 -0
  372. package/src/proxy/Service.ts +227 -0
  373. package/src/proxy/index.ts +6 -0
  374. package/src/proxy/internal/Headers.test.ts +100 -0
  375. package/src/proxy/internal/Headers.ts +40 -0
  376. package/src/proxy/internal/Route.test.ts +143 -0
  377. package/src/proxy/internal/Route.ts +54 -0
  378. package/src/proxy/services/anthropic.ts +45 -0
  379. package/src/proxy/services/openai.test.ts +97 -0
  380. package/src/proxy/services/openai.ts +48 -0
  381. package/src/proxy/services/stripe.ts +49 -0
  382. package/src/server/Methods.ts +2 -0
  383. package/src/server/Mppx.test-d.ts +343 -0
  384. package/src/server/Mppx.test.ts +342 -0
  385. package/src/server/Mppx.ts +378 -0
  386. package/src/server/NodeListener.test.ts +188 -0
  387. package/src/server/NodeListener.ts +3 -0
  388. package/src/server/Request.test.ts +102 -0
  389. package/src/server/Request.ts +33 -0
  390. package/src/server/Response.test.ts +31 -0
  391. package/src/server/Response.ts +27 -0
  392. package/src/server/Transport.test.ts +294 -0
  393. package/src/server/Transport.ts +222 -0
  394. package/src/server/index.ts +8 -0
  395. package/src/stripe/Charge.integration.test.ts +326 -0
  396. package/src/stripe/Intents.test.ts +52 -0
  397. package/src/stripe/Intents.ts +27 -0
  398. package/src/stripe/client/Charge.ts +119 -0
  399. package/src/stripe/client/MethodIntents.ts +37 -0
  400. package/src/stripe/client/index.ts +2 -0
  401. package/src/stripe/index.ts +1 -0
  402. package/src/stripe/server/Charge.ts +121 -0
  403. package/src/stripe/server/MethodIntents.ts +24 -0
  404. package/src/stripe/server/index.ts +2 -0
  405. package/src/tempo/Attribution.test.ts +187 -0
  406. package/src/tempo/Attribution.ts +156 -0
  407. package/src/tempo/Intents.test.ts +84 -0
  408. package/src/tempo/Intents.ts +93 -0
  409. package/src/tempo/client/ChannelOps.ts +233 -0
  410. package/src/tempo/client/Charge.ts +84 -0
  411. package/src/tempo/client/MethodIntents.ts +28 -0
  412. package/src/tempo/client/Session.ts +369 -0
  413. package/src/tempo/client/SessionManager.test.ts +223 -0
  414. package/src/tempo/client/SessionManager.ts +270 -0
  415. package/src/tempo/client/index.ts +5 -0
  416. package/src/tempo/index.ts +2 -0
  417. package/src/tempo/internal/account.ts +47 -0
  418. package/src/tempo/internal/defaults.ts +20 -0
  419. package/src/tempo/internal/types.ts +8 -0
  420. package/src/tempo/server/Charge.test.ts +847 -0
  421. package/src/tempo/server/Charge.ts +309 -0
  422. package/src/tempo/server/MethodIntents.ts +29 -0
  423. package/src/tempo/server/Session.test.ts +1349 -0
  424. package/src/tempo/server/Session.ts +773 -0
  425. package/src/tempo/server/Sse.test.ts +289 -0
  426. package/src/tempo/server/index.ts +5 -0
  427. package/src/tempo/server/internal/transport.ts +153 -0
  428. package/src/tempo/stream/Chain.ts +333 -0
  429. package/src/tempo/stream/Channel.ts +50 -0
  430. package/src/tempo/stream/ChannelStore.test.ts +473 -0
  431. package/src/tempo/stream/ChannelStore.ts +202 -0
  432. package/src/tempo/stream/Receipt.test.ts +84 -0
  433. package/src/tempo/stream/Receipt.ts +45 -0
  434. package/src/tempo/stream/Sse.test.ts +401 -0
  435. package/src/tempo/stream/Sse.ts +375 -0
  436. package/src/tempo/stream/Types.ts +86 -0
  437. package/src/tempo/stream/Voucher.test.ts +134 -0
  438. package/src/tempo/stream/Voucher.ts +123 -0
  439. package/src/tempo/stream/escrow.abi.ts +759 -0
  440. package/src/tempo/stream/index.ts +7 -0
  441. package/src/tsconfig.json +10 -0
  442. package/src/viem/Account.test.ts +71 -0
  443. package/src/viem/Account.ts +30 -0
  444. package/src/viem/Client.test.ts +58 -0
  445. package/src/viem/Client.ts +33 -0
  446. package/src/zod.ts +47 -0
@@ -0,0 +1,403 @@
1
+ /** Combines members of an intersection into a readable type. */
2
+ // https://twitter.com/mattpocockuk/status/1622730173446557697?s=20&t=NdpAcmEFXY01xkqU3KO0Mg
3
+ export type Compute<type> = { [key in keyof type]: type[key] } & unknown
4
+
5
+ declare const symbol: unique symbol
6
+
7
+ /**
8
+ * Creates a branded type of `T` with the brand `U`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * type Result = Branded<string, 'foo'>
13
+ * // ^? type Result = string & { [symbol]: 'foo' }
14
+ * ```
15
+ */
16
+ export type Branded<T, U> = T & { [symbol]: U }
17
+
18
+ /**
19
+ * Filters out all members of `T` that are not `P`
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * type Result = Filter<['a', 'b', 'c'], 'b'>
24
+ * // ^? type Result = ['a', 'c']
25
+ * ```
26
+ *
27
+ * @internal
28
+ */
29
+ export type Filter<
30
+ T extends readonly unknown[],
31
+ P,
32
+ Acc extends readonly unknown[] = [],
33
+ > = T extends readonly [infer F, ...infer Rest extends readonly unknown[]]
34
+ ? [F] extends [P]
35
+ ? Filter<Rest, P, [...Acc, F]>
36
+ : Filter<Rest, P, Acc>
37
+ : readonly [...Acc]
38
+
39
+ /**
40
+ * Checks if `T` can be narrowed further than `U`
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * type Result = IsNarrowable<'foo', string>
45
+ * // ^? true
46
+ * ```
47
+ */
48
+ export type IsNarrowable<T, U> =
49
+ IsNever<(T extends U ? true : false) & (U extends T ? false : true)> extends true ? false : true
50
+
51
+ /**
52
+ * Checks if `T` is `never`
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * type Result = IsNever<never>
57
+ * // ^? type Result = true
58
+ * ```
59
+ */
60
+ export type IsNever<T> = [T] extends [never] ? true : false
61
+
62
+ /**
63
+ * Removes `readonly` from all properties of an object.
64
+ *
65
+ * @internal
66
+ */
67
+ export type Mutable<type extends object> = {
68
+ -readonly [key in keyof type]: type[key]
69
+ }
70
+
71
+ /**
72
+ * Evaluates boolean "or" condition for `T` properties.
73
+ *
74
+ * * @example
75
+ * ```ts
76
+ * type Result = Or<[false, true, false]>
77
+ * // ^? type Result = true
78
+ * ```
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * type Result = Or<[false, false, false]>
83
+ * // ^? type Result = false
84
+ * ```
85
+ *
86
+ * @internal
87
+ */
88
+ export type Or<T extends readonly unknown[]> = T extends readonly [infer Head, ...infer Tail]
89
+ ? Head extends true
90
+ ? true
91
+ : Or<Tail>
92
+ : false
93
+
94
+ /**
95
+ * Checks if `T` is `undefined`
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * type Result = IsUndefined<undefined>
100
+ * // ^? type Result = true
101
+ * ```
102
+ *
103
+ * @internal
104
+ */
105
+ export type IsUndefined<T> = [undefined] extends [T] ? true : false
106
+
107
+ /**
108
+ * Checks if type `T` is the `unknown` type.
109
+ *
110
+ * @internal
111
+ */
112
+ export type IsUnknown<T> = unknown extends T ? ([T] extends [null] ? false : true) : false
113
+
114
+ /** @internal */
115
+ export type MaybePromise<T> = T | Promise<T>
116
+
117
+ /**
118
+ * Makes attributes on the type T required if required is true.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * MaybeRequired<{ a: string, b?: number }, true>
123
+ * // { a: string, b: number }
124
+ *
125
+ * MaybeRequired<{ a: string, b?: number }, false>
126
+ * // { a: string, b?: number }
127
+ * ```
128
+ *
129
+ * @internal
130
+ */
131
+ export type MaybeRequired<T, required extends boolean> = required extends true
132
+ ? ExactRequired<T>
133
+ : T
134
+
135
+ /**
136
+ * Assigns the properties of U onto T.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * Assign<{ a: string, b: number }, { a: undefined, c: boolean }>
141
+ * // { a: undefined, b: number, c: boolean }
142
+ * ```
143
+ *
144
+ * @internal
145
+ */
146
+ export type Assign<T, U> = Assign_inner<T, U> & U
147
+
148
+ /** @internal */
149
+ export type Assign_inner<T, U> = {
150
+ [K in keyof T as K extends keyof U ? (U[K] extends void ? never : K) : K]: K extends keyof U
151
+ ? U[K]
152
+ : T[K]
153
+ }
154
+
155
+ /**
156
+ * Constructs a type by excluding `undefined` from `T`.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * NoUndefined<string | undefined>
161
+ * // string
162
+ * ```
163
+ *
164
+ * @internal
165
+ */
166
+ export type NoUndefined<T> = T extends undefined ? never : T
167
+
168
+ /**
169
+ * Strict version of built-in Omit type
170
+ *
171
+ * @internal
172
+ */
173
+ export type Omit<type, keys extends keyof type> = Pick<type, Exclude<keyof type, keys>>
174
+
175
+ /**
176
+ * Creates a type that is a partial of T, but with the required keys K.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * PartialBy<{ a: string, b: number }, 'a'>
181
+ * // { a?: string, b: number }
182
+ * ```
183
+ *
184
+ * @internal
185
+ */
186
+ export type PartialBy<T, K extends keyof T> = Omit<T, K> & ExactPartial<Pick<T, K>>
187
+
188
+ export type RecursiveArray<T> = T | readonly RecursiveArray<T>[]
189
+
190
+ /**
191
+ * Creates a type that is T with the required keys K.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * RequiredBy<{ a?: string, b: number }, 'a'>
196
+ * // { a: string, b: number }
197
+ * ```
198
+ *
199
+ * @internal
200
+ */
201
+ export type RequiredBy<T, K extends keyof T> = Omit<T, K> & ExactRequired<Pick<T, K>>
202
+
203
+ /**
204
+ * Returns truthy if `array` contains `value`.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * Some<[1, 2, 3], 2>
209
+ * // true
210
+ * ```
211
+ *
212
+ * @internal
213
+ */
214
+ export type Some<array extends readonly unknown[], value> = array extends readonly [
215
+ value,
216
+ ...unknown[],
217
+ ]
218
+ ? true
219
+ : array extends readonly [unknown, ...infer rest]
220
+ ? Some<rest, value>
221
+ : false
222
+
223
+ /**
224
+ * Prints custom error message
225
+ *
226
+ * @param messages - Error message
227
+ * @returns Custom error message
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * type Result = TypeErrorMessage<'Custom error message'>
232
+ * // ^? type Result = ['Error: Custom error message']
233
+ * ```
234
+ */
235
+ export type TypeErrorMessage<messages extends string | string[]> = messages extends string
236
+ ? [
237
+ // Surrounding with array to prevent `messages` from being widened to `string`
238
+ `Error: ${messages}`,
239
+ ]
240
+ : {
241
+ [key in keyof messages]: messages[key] extends infer message extends string
242
+ ? `Error: ${message}`
243
+ : never
244
+ }
245
+
246
+ /** @internal */
247
+ export type UnionToTuple<
248
+ union,
249
+ ///
250
+ last = LastInUnion<union>,
251
+ > = [union] extends [never] ? [] : [...UnionToTuple<Exclude<union, last>>, last]
252
+
253
+ /** @internal */
254
+ export type LastInUnion<U> =
255
+ UnionToIntersection<U extends unknown ? (x: U) => 0 : never> extends (x: infer l) => 0 ? l : never
256
+
257
+ /** @internal */
258
+ export type UnionToIntersection<union> = (
259
+ union extends unknown
260
+ ? (arg: union) => 0
261
+ : never
262
+ ) extends (arg: infer i) => 0
263
+ ? i
264
+ : never
265
+
266
+ /** @internal */
267
+ export type IsUnion<
268
+ union,
269
+ ///
270
+ union2 = union,
271
+ > = union extends union2 ? ([union2] extends [union] ? false : true) : never
272
+
273
+ /** @internal */
274
+ export type MaybePartial<type, enabled extends boolean | undefined> = enabled extends true
275
+ ? Compute<ExactPartial<type>>
276
+ : type
277
+
278
+ export type ExactPartial<type> = {
279
+ [key in keyof type]?: type[key] | undefined
280
+ }
281
+
282
+ /** @internal */
283
+ export type ExactRequired<type> = {
284
+ [key in keyof type]-?: Exclude<type[key], undefined>
285
+ }
286
+
287
+ export type OneOf<
288
+ union extends object,
289
+ fallback extends object | undefined = undefined,
290
+ ///
291
+ keys extends KeyofUnion<union> = KeyofUnion<union>,
292
+ > = union extends infer item
293
+ ? Compute<
294
+ item & {
295
+ [key in Exclude<keys, keyof item>]?: fallback extends object
296
+ ? key extends keyof fallback
297
+ ? fallback[key]
298
+ : undefined
299
+ : undefined
300
+ }
301
+ >
302
+ : never
303
+
304
+ /** @internal */
305
+ export type KeyofUnion<type> = type extends type ? keyof type : never
306
+
307
+ /** @internal */
308
+ export type Undefined<type> = {
309
+ [key in keyof type]?: undefined
310
+ }
311
+
312
+ ///////////////////////////////////////////////////////////////////////////
313
+ // Loose types
314
+
315
+ /**
316
+ * Loose version of {@link Omit}
317
+ * @internal
318
+ */
319
+ export type LooseOmit<type, keys extends string> = Pick<type, Exclude<keyof type, keys>>
320
+
321
+ ///////////////////////////////////////////////////////////////////////////
322
+ // Union types
323
+
324
+ /** @internal */
325
+ export type UnionCompute<type> = type extends object ? Compute<type> : type
326
+
327
+ /** @internal */
328
+ export type UnionLooseOmit<type, keys extends string> = type extends any
329
+ ? LooseOmit<type, keys>
330
+ : never
331
+
332
+ /**
333
+ * Construct a type with the properties of union type T except for those in type K.
334
+ * @example
335
+ * ```ts
336
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
337
+ * // { b: number } | { b: undefined, c: number }
338
+ * ```
339
+ *
340
+ * @internal
341
+ */
342
+ export type UnionOmit<type, keys extends keyof type> = type extends any ? Omit<type, keys> : never
343
+
344
+ /**
345
+ * Construct a type with the properties of union type T except for those in type K.
346
+ * @example
347
+ * ```ts
348
+ * type Result = UnionOmit<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
349
+ * // { b: number } | { b: undefined, c: number }
350
+ * ```
351
+ *
352
+ * @internal
353
+ */
354
+ export type UnionPick<type, keys extends keyof type> = type extends any ? Pick<type, keys> : never
355
+
356
+ /**
357
+ * Creates a type that is a partial of T, but with the required keys K.
358
+ *
359
+ * @example
360
+ * ```ts
361
+ * PartialBy<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
362
+ * // { a?: string, b: number } | { a?: string, b: undefined, c: number }
363
+ * ```
364
+ *
365
+ * @internal
366
+ */
367
+ export type UnionPartialBy<T, K extends keyof T> = T extends any ? PartialBy<T, K> : never
368
+
369
+ /**
370
+ * Creates a type that is T with the required keys K.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * RequiredBy<{ a?: string, b: number } | { a?: string, c?: number }, 'a'>
375
+ * // { a: string, b: number } | { a: string, c?: number }
376
+ * ```
377
+ *
378
+ * @internal
379
+ */
380
+ export type UnionRequiredBy<T, K extends keyof T> = T extends any ? RequiredBy<T, K> : never
381
+
382
+ /**
383
+ * Merges two object types, creating a union for overlapping properties.
384
+ *
385
+ * @example
386
+ * ```ts
387
+ * type Result = UnionMerge<{ a: string, b: number }, { b: boolean, c: string }>
388
+ * // { a: string, b: number | boolean, c: string }
389
+ * ```
390
+ *
391
+ * @internal
392
+ */
393
+ export type UnionMerge<A, B> = [keyof B] extends [never]
394
+ ? A
395
+ : LooseOmit<A, keyof B & string> & {
396
+ [K in keyof B]: K extends keyof A ? A[K] | B[K] : B[K]
397
+ }
398
+
399
+ /** @internal Distributes union `U` into per-member function overloads returning `R`. */
400
+ export type Distribute<U, R> = U extends infer member ? (response: member) => R : never
401
+
402
+ /** @internal */
403
+ export type Flatten<element> = element extends readonly (infer item)[] ? item : element
@@ -0,0 +1,109 @@
1
+ import type { Client } from '@modelcontextprotocol/sdk/client/index.js'
2
+ import { tempo } from 'mppx/client'
3
+ import type { Account } from 'viem'
4
+ import { describe, expectTypeOf, test } from 'vitest'
5
+ import * as McpClient from './McpClient.js'
6
+
7
+ describe('McpClient.wrap', () => {
8
+ test('returns wrapped client with callTool', () => {
9
+ const client = {} as Client
10
+ const wrapped = McpClient.wrap(client, {
11
+ methods: [
12
+ tempo({
13
+ account: {} as Account,
14
+ }),
15
+ ],
16
+ })
17
+
18
+ expectTypeOf(wrapped.callTool).toBeFunction()
19
+ expectTypeOf(wrapped.callTool).returns.toExtend<Promise<McpClient.CallToolResult>>()
20
+ })
21
+
22
+ test('preserves original client methods', () => {
23
+ const client = {} as Client
24
+ const wrapped = McpClient.wrap(client, {
25
+ methods: [
26
+ tempo({
27
+ account: {} as Account,
28
+ }),
29
+ ],
30
+ })
31
+
32
+ expectTypeOf(wrapped).toHaveProperty('connect')
33
+ expectTypeOf(wrapped).toHaveProperty('close')
34
+ expectTypeOf(wrapped).toHaveProperty('listTools')
35
+ expectTypeOf(wrapped).toHaveProperty('listResources')
36
+ expectTypeOf(wrapped).toHaveProperty('listPrompts')
37
+ })
38
+
39
+ test('preserves custom properties on client', () => {
40
+ const client = { callTool: {} as Client['callTool'], customProp: 'hello' }
41
+ const wrapped = McpClient.wrap(client, {
42
+ methods: [
43
+ tempo({
44
+ account: {} as Account,
45
+ }),
46
+ ],
47
+ })
48
+
49
+ expectTypeOf(wrapped.customProp).toEqualTypeOf<string>()
50
+ })
51
+
52
+ test('callTool accepts context when method has context', () => {
53
+ const client = {} as Client
54
+ const wrapped = McpClient.wrap(client, {
55
+ methods: [tempo({})],
56
+ })
57
+
58
+ expectTypeOf(wrapped.callTool).toBeCallableWith(
59
+ { name: 'tool' },
60
+ { context: { account: {} as Account } },
61
+ )
62
+ })
63
+
64
+ test('callTool context is optional when account provided at creation', () => {
65
+ const client = {} as Client
66
+ const wrapped = McpClient.wrap(client, {
67
+ methods: [
68
+ tempo({
69
+ account: {} as Account,
70
+ }),
71
+ ],
72
+ })
73
+
74
+ expectTypeOf(wrapped.callTool).toBeCallableWith({ name: 'tool' })
75
+ expectTypeOf(wrapped.callTool).toBeCallableWith({ name: 'tool' }, {})
76
+ expectTypeOf(wrapped.callTool).toBeCallableWith({ name: 'tool' }, { timeout: 5000 })
77
+ })
78
+
79
+ test('callTool result includes receipt', () => {
80
+ const client = {} as Client
81
+ const wrapped = McpClient.wrap(client, {
82
+ methods: [
83
+ tempo({
84
+ account: {} as Account,
85
+ }),
86
+ ],
87
+ })
88
+
89
+ expectTypeOf(wrapped.callTool({} as never)).resolves.toHaveProperty('receipt')
90
+ expectTypeOf(wrapped.callTool({} as never)).resolves.toHaveProperty('content')
91
+ })
92
+ })
93
+
94
+ describe('McpClient.wrap.McpClient', () => {
95
+ test('has callTool with correct signature', () => {
96
+ type WrappedClient = McpClient.wrap.McpClient
97
+
98
+ expectTypeOf<WrappedClient>().toHaveProperty('callTool')
99
+ })
100
+ })
101
+
102
+ describe('McpClient.wrap.CallToolOptions', () => {
103
+ test('has context and timeout properties', () => {
104
+ type Options = McpClient.wrap.CallToolOptions
105
+
106
+ expectTypeOf<Options>().toHaveProperty('context')
107
+ expectTypeOf<Options>().toHaveProperty('timeout')
108
+ })
109
+ })