mppx 0.6.28 → 0.6.29

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 (272) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/Challenge.d.ts.map +1 -1
  3. package/dist/Challenge.js +16 -10
  4. package/dist/Challenge.js.map +1 -1
  5. package/dist/Method.d.ts +1 -1
  6. package/dist/Method.d.ts.map +1 -1
  7. package/dist/client/Methods.d.ts +1 -0
  8. package/dist/client/Methods.d.ts.map +1 -1
  9. package/dist/client/Methods.js +1 -0
  10. package/dist/client/Methods.js.map +1 -1
  11. package/dist/client/Mppx.d.ts +3 -3
  12. package/dist/client/Mppx.d.ts.map +1 -1
  13. package/dist/client/Mppx.js +1 -0
  14. package/dist/client/Mppx.js.map +1 -1
  15. package/dist/client/Transport.d.ts +10 -3
  16. package/dist/client/Transport.d.ts.map +1 -1
  17. package/dist/client/Transport.js +60 -7
  18. package/dist/client/Transport.js.map +1 -1
  19. package/dist/client/index.d.ts +1 -1
  20. package/dist/client/index.d.ts.map +1 -1
  21. package/dist/client/index.js +1 -1
  22. package/dist/client/index.js.map +1 -1
  23. package/dist/client/internal/Fetch.d.ts +3 -0
  24. package/dist/client/internal/Fetch.d.ts.map +1 -1
  25. package/dist/client/internal/Fetch.js +12 -20
  26. package/dist/client/internal/Fetch.js.map +1 -1
  27. package/dist/evm/Assets.d.ts +2 -0
  28. package/dist/evm/Assets.d.ts.map +1 -0
  29. package/dist/evm/Assets.js +2 -0
  30. package/dist/evm/Assets.js.map +1 -0
  31. package/dist/evm/Chains.d.ts +5 -0
  32. package/dist/evm/Chains.d.ts.map +1 -0
  33. package/dist/evm/Chains.js +5 -0
  34. package/dist/evm/Chains.js.map +1 -0
  35. package/dist/evm/Methods.d.ts +68 -0
  36. package/dist/evm/Methods.d.ts.map +1 -0
  37. package/dist/evm/Methods.js +28 -0
  38. package/dist/evm/Methods.js.map +1 -0
  39. package/dist/evm/Types.d.ts +143 -0
  40. package/dist/evm/Types.d.ts.map +1 -0
  41. package/dist/evm/Types.js +102 -0
  42. package/dist/evm/Types.js.map +1 -0
  43. package/dist/evm/client/Charge.d.ts +102 -0
  44. package/dist/evm/client/Charge.d.ts.map +1 -0
  45. package/dist/evm/client/Charge.js +141 -0
  46. package/dist/evm/client/Charge.js.map +1 -0
  47. package/dist/evm/client/Methods.d.ts +81 -0
  48. package/dist/evm/client/Methods.d.ts.map +1 -0
  49. package/dist/evm/client/Methods.js +16 -0
  50. package/dist/evm/client/Methods.js.map +1 -0
  51. package/dist/evm/client/index.d.ts +6 -0
  52. package/dist/evm/client/index.d.ts.map +1 -0
  53. package/dist/evm/client/index.js +6 -0
  54. package/dist/evm/client/index.js.map +1 -0
  55. package/dist/evm/index.d.ts +9 -0
  56. package/dist/evm/index.d.ts.map +1 -0
  57. package/dist/evm/index.js +8 -0
  58. package/dist/evm/index.js.map +1 -0
  59. package/dist/evm/server/Charge.d.ts +62 -0
  60. package/dist/evm/server/Charge.d.ts.map +1 -0
  61. package/dist/evm/server/Charge.js +172 -0
  62. package/dist/evm/server/Charge.js.map +1 -0
  63. package/dist/evm/server/Methods.d.ts +80 -0
  64. package/dist/evm/server/Methods.d.ts.map +1 -0
  65. package/dist/evm/server/Methods.js +16 -0
  66. package/dist/evm/server/Methods.js.map +1 -0
  67. package/dist/evm/server/index.d.ts +6 -0
  68. package/dist/evm/server/index.d.ts.map +1 -0
  69. package/dist/evm/server/index.js +6 -0
  70. package/dist/evm/server/index.js.map +1 -0
  71. package/dist/index.d.ts +2 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +2 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/internal/HeaderCodec.d.ts +18 -0
  76. package/dist/internal/HeaderCodec.d.ts.map +1 -0
  77. package/dist/internal/HeaderCodec.js +31 -0
  78. package/dist/internal/HeaderCodec.js.map +1 -0
  79. package/dist/middlewares/elysia.d.ts.map +1 -1
  80. package/dist/middlewares/elysia.js +2 -3
  81. package/dist/middlewares/elysia.js.map +1 -1
  82. package/dist/middlewares/express.js +2 -1
  83. package/dist/middlewares/express.js.map +1 -1
  84. package/dist/proxy/internal/Headers.d.ts.map +1 -1
  85. package/dist/proxy/internal/Headers.js +11 -1
  86. package/dist/proxy/internal/Headers.js.map +1 -1
  87. package/dist/proxy/services/openai.d.ts.map +1 -1
  88. package/dist/proxy/services/openai.js +2 -0
  89. package/dist/proxy/services/openai.js.map +1 -1
  90. package/dist/server/Methods.d.ts +1 -0
  91. package/dist/server/Methods.d.ts.map +1 -1
  92. package/dist/server/Methods.js +1 -0
  93. package/dist/server/Methods.js.map +1 -1
  94. package/dist/server/Mppx.d.ts.map +1 -1
  95. package/dist/server/Mppx.js +90 -12
  96. package/dist/server/Mppx.js.map +1 -1
  97. package/dist/server/Transport.d.ts +10 -0
  98. package/dist/server/Transport.d.ts.map +1 -1
  99. package/dist/server/Transport.js +9 -0
  100. package/dist/server/Transport.js.map +1 -1
  101. package/dist/server/index.d.ts +1 -1
  102. package/dist/server/index.d.ts.map +1 -1
  103. package/dist/server/index.js +1 -1
  104. package/dist/server/index.js.map +1 -1
  105. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  106. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  107. package/dist/stripe/server/internal/html.gen.js +1 -1
  108. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  109. package/dist/tempo/client/ChannelOps.d.ts +3 -3
  110. package/dist/tempo/client/ChannelOps.d.ts.map +1 -1
  111. package/dist/tempo/client/ChannelOps.js +13 -6
  112. package/dist/tempo/client/ChannelOps.js.map +1 -1
  113. package/dist/tempo/client/Charge.d.ts.map +1 -1
  114. package/dist/tempo/client/Charge.js +8 -5
  115. package/dist/tempo/client/Charge.js.map +1 -1
  116. package/dist/tempo/client/Methods.d.ts +0 -1
  117. package/dist/tempo/client/Methods.d.ts.map +1 -1
  118. package/dist/tempo/client/Session.d.ts +2 -4
  119. package/dist/tempo/client/Session.d.ts.map +1 -1
  120. package/dist/tempo/client/Session.js +10 -12
  121. package/dist/tempo/client/Session.js.map +1 -1
  122. package/dist/tempo/client/SessionManager.d.ts +3 -3
  123. package/dist/tempo/client/SessionManager.d.ts.map +1 -1
  124. package/dist/tempo/client/SessionManager.js +1 -1
  125. package/dist/tempo/client/SessionManager.js.map +1 -1
  126. package/dist/tempo/internal/account.d.ts +5 -0
  127. package/dist/tempo/internal/account.d.ts.map +1 -1
  128. package/dist/tempo/internal/account.js +8 -0
  129. package/dist/tempo/internal/account.js.map +1 -1
  130. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  131. package/dist/tempo/internal/fee-payer.js +5 -2
  132. package/dist/tempo/internal/fee-payer.js.map +1 -1
  133. package/dist/tempo/server/Charge.d.ts.map +1 -1
  134. package/dist/tempo/server/Charge.js +23 -1
  135. package/dist/tempo/server/Charge.js.map +1 -1
  136. package/dist/tempo/server/Session.d.ts.map +1 -1
  137. package/dist/tempo/server/Session.js +13 -12
  138. package/dist/tempo/server/Session.js.map +1 -1
  139. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  140. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  141. package/dist/tempo/server/internal/html.gen.js +1 -1
  142. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  143. package/dist/tempo/session/Chain.d.ts +2 -0
  144. package/dist/tempo/session/Chain.d.ts.map +1 -1
  145. package/dist/tempo/session/Chain.js +8 -8
  146. package/dist/tempo/session/Chain.js.map +1 -1
  147. package/dist/tempo/session/Voucher.d.ts +4 -3
  148. package/dist/tempo/session/Voucher.d.ts.map +1 -1
  149. package/dist/tempo/session/Voucher.js +71 -44
  150. package/dist/tempo/session/Voucher.js.map +1 -1
  151. package/dist/tempo/session/Ws.d.ts.map +1 -1
  152. package/dist/tempo/session/Ws.js +15 -0
  153. package/dist/tempo/session/Ws.js.map +1 -1
  154. package/dist/tempo/subscription/KeyAuthorization.d.ts +2 -2
  155. package/dist/x402/Assets.d.ts +29 -0
  156. package/dist/x402/Assets.d.ts.map +1 -0
  157. package/dist/x402/Assets.js +46 -0
  158. package/dist/x402/Assets.js.map +1 -0
  159. package/dist/x402/Header.d.ts +14 -0
  160. package/dist/x402/Header.d.ts.map +1 -0
  161. package/dist/x402/Header.js +18 -0
  162. package/dist/x402/Header.js.map +1 -0
  163. package/dist/x402/Types.d.ts +289 -0
  164. package/dist/x402/Types.d.ts.map +1 -0
  165. package/dist/x402/Types.js +139 -0
  166. package/dist/x402/Types.js.map +1 -0
  167. package/dist/x402/client/Exact.d.ts +38 -0
  168. package/dist/x402/client/Exact.d.ts.map +1 -0
  169. package/dist/x402/client/Exact.js +141 -0
  170. package/dist/x402/client/Exact.js.map +1 -0
  171. package/dist/x402/index.d.ts +6 -0
  172. package/dist/x402/index.d.ts.map +1 -0
  173. package/dist/x402/index.js +6 -0
  174. package/dist/x402/index.js.map +1 -0
  175. package/dist/x402/internal/ChallengeBrand.d.ts +5 -0
  176. package/dist/x402/internal/ChallengeBrand.d.ts.map +1 -0
  177. package/dist/x402/internal/ChallengeBrand.js +13 -0
  178. package/dist/x402/internal/ChallengeBrand.js.map +1 -0
  179. package/dist/x402/internal/RouteBinding.d.ts +8 -0
  180. package/dist/x402/internal/RouteBinding.d.ts.map +1 -0
  181. package/dist/x402/internal/RouteBinding.js +12 -0
  182. package/dist/x402/internal/RouteBinding.js.map +1 -0
  183. package/dist/x402/server/EvmCharge.d.ts +50 -0
  184. package/dist/x402/server/EvmCharge.d.ts.map +1 -0
  185. package/dist/x402/server/EvmCharge.js +301 -0
  186. package/dist/x402/server/EvmCharge.js.map +1 -0
  187. package/dist/x402/server/Facilitator.d.ts +12 -0
  188. package/dist/x402/server/Facilitator.d.ts.map +1 -0
  189. package/dist/x402/server/Facilitator.js +42 -0
  190. package/dist/x402/server/Facilitator.js.map +1 -0
  191. package/package.json +41 -21
  192. package/src/Challenge.test.ts +28 -0
  193. package/src/Challenge.ts +17 -10
  194. package/src/Method.ts +1 -1
  195. package/src/client/Methods.ts +1 -0
  196. package/src/client/Mppx.ts +4 -3
  197. package/src/client/Transport.test.ts +165 -30
  198. package/src/client/Transport.ts +76 -8
  199. package/src/client/index.ts +1 -1
  200. package/src/client/internal/Fetch.test.ts +31 -2
  201. package/src/client/internal/Fetch.ts +26 -19
  202. package/src/evm/Assets.ts +1 -0
  203. package/src/evm/Chains.ts +5 -0
  204. package/src/evm/Methods.ts +44 -0
  205. package/src/evm/PublicInterface.test-d.ts +109 -0
  206. package/src/evm/Types.ts +140 -0
  207. package/src/evm/client/Charge.test.ts +99 -0
  208. package/src/evm/client/Charge.ts +198 -0
  209. package/src/evm/client/Methods.ts +19 -0
  210. package/src/evm/client/index.ts +5 -0
  211. package/src/evm/index.ts +13 -0
  212. package/src/evm/server/Charge.test.ts +199 -0
  213. package/src/evm/server/Charge.ts +283 -0
  214. package/src/evm/server/Methods.ts +22 -0
  215. package/src/evm/server/index.ts +5 -0
  216. package/src/index.ts +2 -0
  217. package/src/internal/HeaderCodec.ts +36 -0
  218. package/src/middlewares/elysia.test.ts +25 -0
  219. package/src/middlewares/elysia.ts +1 -2
  220. package/src/middlewares/express.test.ts +28 -0
  221. package/src/middlewares/express.ts +1 -1
  222. package/src/middlewares/hono.test.ts +138 -2
  223. package/src/middlewares/nextjs.test.ts +22 -0
  224. package/src/proxy/internal/Headers.test.ts +20 -0
  225. package/src/proxy/internal/Headers.ts +12 -1
  226. package/src/proxy/services/openai.test.ts +57 -1
  227. package/src/proxy/services/openai.ts +2 -0
  228. package/src/server/Methods.ts +1 -0
  229. package/src/server/Mppx.test.ts +244 -1
  230. package/src/server/Mppx.ts +124 -11
  231. package/src/server/NodeListener.test.ts +28 -1
  232. package/src/server/Transport.test.ts +19 -0
  233. package/src/server/Transport.ts +20 -0
  234. package/src/server/index.ts +1 -1
  235. package/src/stripe/server/internal/html.gen.ts +1 -1
  236. package/src/tempo/AccessKeyAuthorization.test.ts +231 -0
  237. package/src/tempo/client/ChannelOps.test.ts +61 -7
  238. package/src/tempo/client/ChannelOps.ts +18 -7
  239. package/src/tempo/client/Charge.test.ts +126 -0
  240. package/src/tempo/client/Charge.ts +10 -6
  241. package/src/tempo/client/Session.test.ts +130 -1
  242. package/src/tempo/client/Session.ts +12 -19
  243. package/src/tempo/client/SessionManager.test.ts +69 -2
  244. package/src/tempo/client/SessionManager.ts +4 -4
  245. package/src/tempo/internal/account.ts +13 -0
  246. package/src/tempo/internal/fee-payer.test.ts +32 -2
  247. package/src/tempo/internal/fee-payer.ts +6 -2
  248. package/src/tempo/server/Charge.test.ts +69 -0
  249. package/src/tempo/server/Charge.ts +32 -0
  250. package/src/tempo/server/Session.test.ts +30 -0
  251. package/src/tempo/server/Session.ts +15 -16
  252. package/src/tempo/server/internal/html.gen.ts +1 -1
  253. package/src/tempo/session/Chain.test.ts +4 -4
  254. package/src/tempo/session/Chain.ts +10 -6
  255. package/src/tempo/session/Voucher.test.ts +230 -1
  256. package/src/tempo/session/Voucher.ts +96 -48
  257. package/src/tempo/session/Ws.test.ts +71 -0
  258. package/src/tempo/session/Ws.ts +13 -0
  259. package/src/x402/Assets.ts +65 -0
  260. package/src/x402/Exact.e2e.test.ts +448 -0
  261. package/src/x402/Header.test.ts +73 -0
  262. package/src/x402/Header.ts +34 -0
  263. package/src/x402/PublicInterface.test-d.ts +39 -0
  264. package/src/x402/Types.ts +248 -0
  265. package/src/x402/client/Exact.test.ts +180 -0
  266. package/src/x402/client/Exact.ts +198 -0
  267. package/src/x402/index.ts +5 -0
  268. package/src/x402/internal/ChallengeBrand.ts +14 -0
  269. package/src/x402/internal/RouteBinding.ts +18 -0
  270. package/src/x402/server/EvmCharge.ts +394 -0
  271. package/src/x402/server/Facilitator.test.ts +111 -0
  272. package/src/x402/server/Facilitator.ts +56 -0
@@ -0,0 +1,102 @@
1
+ import type { Account } from 'viem';
2
+ import * as Method from '../../Method.js';
3
+ import * as z from '../../zod.js';
4
+ import * as Assets from '../Assets.js';
5
+ import * as Types from '../Types.js';
6
+ /**
7
+ * Creates an EVM charge client method.
8
+ *
9
+ * Signs native Payment-auth `authorization` credentials for EVM charges. It
10
+ * also keeps x402 exact signing for x402 compatibility challenges.
11
+ */
12
+ export declare function charge(parameters: charge.Parameters): Method.Client<{
13
+ readonly name: "evm";
14
+ readonly intent: "charge";
15
+ readonly schema: {
16
+ readonly credential: {
17
+ readonly payload: z.ZodMiniObject<{
18
+ from: z.ZodMiniString<string>;
19
+ nonce: z.ZodMiniString<string>;
20
+ signature: z.ZodMiniString<string>;
21
+ to: z.ZodMiniString<string>;
22
+ type: z.ZodMiniLiteral<"authorization">;
23
+ validAfter: z.ZodMiniString<string>;
24
+ validBefore: z.ZodMiniString<string>;
25
+ value: z.ZodMiniString<string>;
26
+ }, z.core.$strip>;
27
+ };
28
+ readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
29
+ amount: z.ZodMiniString<string>;
30
+ chainId: z.ZodMiniNumber<number>;
31
+ currency: z.ZodMiniString<string>;
32
+ credentialTypes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
33
+ authorization: "authorization";
34
+ }>>>;
35
+ decimals: z.ZodMiniNumber<number>;
36
+ description: z.ZodMiniOptional<z.ZodMiniString<string>>;
37
+ externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
38
+ permit2Address: z.ZodMiniOptional<z.ZodMiniString<string>>;
39
+ recipient: z.ZodMiniString<string>;
40
+ splits: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
41
+ amount: z.ZodMiniString<string>;
42
+ recipient: z.ZodMiniString<string>;
43
+ }, z.core.$strip>>>;
44
+ }, z.core.$strip>, z.ZodMiniTransform<{
45
+ amount: string;
46
+ currency: `0x${string}`;
47
+ methodDetails: {
48
+ splits?: {
49
+ amount: string;
50
+ recipient: string;
51
+ }[] | undefined;
52
+ permit2Address?: `0x${string}` | undefined;
53
+ chainId: number;
54
+ credentialTypes: string[];
55
+ decimals: number;
56
+ };
57
+ recipient: `0x${string}`;
58
+ description?: string | undefined;
59
+ externalId?: string | undefined;
60
+ }, {
61
+ amount: string;
62
+ chainId: number;
63
+ currency: string;
64
+ decimals: number;
65
+ recipient: string;
66
+ credentialTypes?: "authorization"[] | undefined;
67
+ description?: string | undefined;
68
+ externalId?: string | undefined;
69
+ permit2Address?: string | undefined;
70
+ splits?: {
71
+ amount: string;
72
+ recipient: string;
73
+ }[] | undefined;
74
+ }>>;
75
+ };
76
+ }, z.ZodMiniObject<{
77
+ account: z.ZodMiniOptional<z.ZodMiniCustom<Account, Account>>;
78
+ }, z.core.$strip>>;
79
+ export declare namespace charge {
80
+ type Signer = Account & {
81
+ signTypedData?: (parameters: any) => Promise<`0x${string}`>;
82
+ };
83
+ type Parameters = {
84
+ /** Account used to sign EVM charge credentials. */
85
+ account: Account;
86
+ /** EIP-3009 token domain metadata for custom currencies. */
87
+ authorization?: Types.AuthorizationConfig | undefined;
88
+ /** Optional token decimals used to parse `maxAmount` when currency metadata is not provided. */
89
+ decimals?: number | undefined;
90
+ /** Optional maximum display-unit amount the client is willing to pay. */
91
+ maxAmount?: string | undefined;
92
+ /** Optional maximum atomic amount the client is willing to pay. */
93
+ maxAtomicAmount?: string | undefined;
94
+ /** Optional allowlist of supported EVM chain IDs. */
95
+ networks?: readonly number[] | undefined;
96
+ /** Optional allowlist of supported currencies. */
97
+ currencies?: readonly (`0x${string}` | Assets.KnownAsset)[] | undefined;
98
+ /** Legacy alias for `currencies`. */
99
+ assets?: readonly (`0x${string}` | Assets.KnownAsset)[] | undefined;
100
+ };
101
+ }
102
+ //# sourceMappingURL=Charge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAqEnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG,OAAO,GAAG;QACtB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;KAC5D,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,mDAAmD;QACnD,OAAO,EAAE,OAAO,CAAA;QAChB,4DAA4D;QAC5D,aAAa,CAAC,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACrD,gGAAgG;QAChG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,mEAAmE;QACnE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,qDAAqD;QACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACxC,kDAAkD;QAClD,UAAU,CAAC,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,CAAA;QACvE,qCAAqC;QACrC,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,SAAS,CAAA;KACpE,CAAA;CACF"}
@@ -0,0 +1,141 @@
1
+ import { getAddress, parseUnits } from 'viem';
2
+ import * as Credential from '../../Credential.js';
3
+ import * as Method from '../../Method.js';
4
+ import * as x402_Exact from '../../x402/client/Exact.js';
5
+ import * as x402_ChallengeBrand from '../../x402/internal/ChallengeBrand.js';
6
+ import * as z from '../../zod.js';
7
+ import * as Assets from '../Assets.js';
8
+ import * as Methods from '../Methods.js';
9
+ import * as Types from '../Types.js';
10
+ /**
11
+ * Creates an EVM charge client method.
12
+ *
13
+ * Signs native Payment-auth `authorization` credentials for EVM charges. It
14
+ * also keeps x402 exact signing for x402 compatibility challenges.
15
+ */
16
+ export function charge(parameters) {
17
+ return Method.toClient(Methods.charge, {
18
+ context: z.object({
19
+ account: z.optional(z.custom()),
20
+ }),
21
+ async createCredential({ challenge, context }) {
22
+ if (isX402Challenge(challenge))
23
+ return x402_Exact.createCredential({
24
+ challenge: challenge,
25
+ config: parameters,
26
+ context,
27
+ });
28
+ const account = (context?.account ?? parameters.account);
29
+ if (!account.signTypedData)
30
+ throw new Error('EVM authorization requires a typed-data signer.');
31
+ const request = challenge.request;
32
+ assertPolicy(parameters, request);
33
+ if (!request.methodDetails.credentialTypes?.includes('authorization')) {
34
+ throw new Error('EVM authorization is not accepted by this challenge.');
35
+ }
36
+ if (request.methodDetails.splits?.length) {
37
+ throw new Error('EVM authorization does not support payment splits.');
38
+ }
39
+ const authorization = resolveAuthorization(parameters, request);
40
+ const validBefore = challenge.expires
41
+ ? Math.floor(new Date(challenge.expires).getTime() / 1000).toString()
42
+ : (Math.floor(Date.now() / 1000) + 300).toString();
43
+ const payload = {
44
+ from: getAddress(account.address),
45
+ nonce: Types.challengeHash(challenge),
46
+ signature: await account.signTypedData({
47
+ domain: Types.authorizationDomain({
48
+ authorization,
49
+ chainId: request.methodDetails.chainId,
50
+ currency: request.currency,
51
+ }),
52
+ message: {
53
+ from: getAddress(account.address),
54
+ nonce: Types.challengeHash(challenge),
55
+ to: getAddress(request.recipient),
56
+ validAfter: 0n,
57
+ validBefore: BigInt(validBefore),
58
+ value: BigInt(request.amount),
59
+ },
60
+ primaryType: 'TransferWithAuthorization',
61
+ types: Types.authorizationTypes,
62
+ }),
63
+ to: getAddress(request.recipient),
64
+ type: 'authorization',
65
+ validAfter: '0',
66
+ validBefore,
67
+ value: request.amount,
68
+ };
69
+ return Credential.serialize(Credential.from({
70
+ challenge,
71
+ payload,
72
+ source: Types.toSource({
73
+ address: getAddress(account.address),
74
+ chainId: request.methodDetails.chainId,
75
+ }),
76
+ }));
77
+ },
78
+ });
79
+ }
80
+ function isX402Challenge(challenge) {
81
+ return (x402_ChallengeBrand.is(challenge) &&
82
+ challenge.request.scheme === 'exact' &&
83
+ typeof challenge.request.network === 'string');
84
+ }
85
+ function assertPolicy(parameters, request) {
86
+ const chainId = request.methodDetails.chainId;
87
+ const network = Types.networkOf(chainId);
88
+ if (parameters.networks && !parameters.networks.includes(chainId))
89
+ throw new Error(`EVM chain ID is not allowed: ${chainId}.`);
90
+ const currencies = parameters.currencies ?? parameters.assets;
91
+ if (currencies?.some((currency) => !Assets.isAsset(currency)) && !parameters.networks?.length)
92
+ throw new Error('EVM raw currency allowlists require networks.');
93
+ if (currencies) {
94
+ const acceptedCurrency = getAddress(request.currency);
95
+ const allowed = currencies.some((currency) => currencyMatches(currency, acceptedCurrency, network));
96
+ if (!allowed)
97
+ throw new Error(`EVM currency is not allowed: ${acceptedCurrency}.`);
98
+ }
99
+ if (parameters.maxAtomicAmount !== undefined &&
100
+ BigInt(request.amount) > BigInt(parameters.maxAtomicAmount))
101
+ throw new Error('EVM charge amount exceeds maxAtomicAmount.');
102
+ if (parameters.maxAmount !== undefined) {
103
+ const decimals = decimalsOfAcceptedCurrency(parameters, request);
104
+ if (decimals === undefined)
105
+ throw new Error('EVM charge maxAmount requires currency decimals.');
106
+ if (BigInt(request.amount) > parseUnits(parameters.maxAmount, decimals))
107
+ throw new Error('EVM charge amount exceeds maxAmount.');
108
+ }
109
+ }
110
+ function resolveAuthorization(parameters, request) {
111
+ const currencies = parameters.currencies ?? parameters.assets;
112
+ const acceptedCurrency = getAddress(request.currency);
113
+ const network = Types.networkOf(request.methodDetails.chainId);
114
+ const currency = currencies?.find((currency) => currencyMatches(currency, acceptedCurrency, network));
115
+ if (currency && Assets.isAsset(currency) && currency.transfer.type === Types.eip3009)
116
+ return {
117
+ name: currency.transfer.name,
118
+ version: currency.transfer.version,
119
+ };
120
+ if (parameters.authorization)
121
+ return parameters.authorization;
122
+ throw new Error('EVM authorization requires token name and version.');
123
+ }
124
+ function addressOf(currency) {
125
+ return Assets.isAsset(currency) ? currency.address : currency;
126
+ }
127
+ function currencyMatches(currency, acceptedCurrency, network) {
128
+ if (getAddress(addressOf(currency)) !== acceptedCurrency)
129
+ return false;
130
+ return !Assets.isAsset(currency) || currency.network === network;
131
+ }
132
+ function decimalsOfAcceptedCurrency(parameters, request) {
133
+ const currencies = parameters.currencies ?? parameters.assets;
134
+ const acceptedCurrency = getAddress(request.currency);
135
+ const network = Types.networkOf(request.methodDetails.chainId);
136
+ const currency = currencies?.find((currency) => currencyMatches(currency, acceptedCurrency, network));
137
+ if (currency && Assets.isAsset(currency))
138
+ return currency.decimals;
139
+ return parameters.decimals;
140
+ }
141
+ //# sourceMappingURL=Charge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import * as Assets from '../Assets.js';
2
+ import * as Chains from '../Chains.js';
3
+ import { charge as charge_ } from './Charge.js';
4
+ /** Creates EVM client methods from shared charge parameters. */
5
+ export declare function evm(parameters: evm.Parameters): readonly [import("../../Method.js").Client<{
6
+ readonly name: "evm";
7
+ readonly intent: "charge";
8
+ readonly schema: {
9
+ readonly credential: {
10
+ readonly payload: import("zod/mini").ZodMiniObject<{
11
+ from: import("zod/mini").ZodMiniString<string>;
12
+ nonce: import("zod/mini").ZodMiniString<string>;
13
+ signature: import("zod/mini").ZodMiniString<string>;
14
+ to: import("zod/mini").ZodMiniString<string>;
15
+ type: import("zod/mini").ZodMiniLiteral<"authorization">;
16
+ validAfter: import("zod/mini").ZodMiniString<string>;
17
+ validBefore: import("zod/mini").ZodMiniString<string>;
18
+ value: import("zod/mini").ZodMiniString<string>;
19
+ }, import("zod/v4/core").$strip>;
20
+ };
21
+ readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
22
+ amount: import("zod/mini").ZodMiniString<string>;
23
+ chainId: import("zod/mini").ZodMiniNumber<number>;
24
+ currency: import("zod/mini").ZodMiniString<string>;
25
+ credentialTypes: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniEnum<{
26
+ authorization: "authorization";
27
+ }>>>;
28
+ decimals: import("zod/mini").ZodMiniNumber<number>;
29
+ description: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
30
+ externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
31
+ permit2Address: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
32
+ recipient: import("zod/mini").ZodMiniString<string>;
33
+ splits: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniObject<{
34
+ amount: import("zod/mini").ZodMiniString<string>;
35
+ recipient: import("zod/mini").ZodMiniString<string>;
36
+ }, import("zod/v4/core").$strip>>>;
37
+ }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
38
+ amount: string;
39
+ currency: `0x${string}`;
40
+ methodDetails: {
41
+ splits?: {
42
+ amount: string;
43
+ recipient: string;
44
+ }[] | undefined;
45
+ permit2Address?: `0x${string}` | undefined;
46
+ chainId: number;
47
+ credentialTypes: string[];
48
+ decimals: number;
49
+ };
50
+ recipient: `0x${string}`;
51
+ description?: string | undefined;
52
+ externalId?: string | undefined;
53
+ }, {
54
+ amount: string;
55
+ chainId: number;
56
+ currency: string;
57
+ decimals: number;
58
+ recipient: string;
59
+ credentialTypes?: "authorization"[] | undefined;
60
+ description?: string | undefined;
61
+ externalId?: string | undefined;
62
+ permit2Address?: string | undefined;
63
+ splits?: {
64
+ amount: string;
65
+ recipient: string;
66
+ }[] | undefined;
67
+ }>>;
68
+ };
69
+ }, import("zod/mini").ZodMiniObject<{
70
+ account: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("viem").Account, import("viem").Account>>;
71
+ }, import("zod/v4/core").$strip>>];
72
+ export declare namespace evm {
73
+ type Parameters = charge_.Parameters;
74
+ /** Creates an EVM `charge` client method. */
75
+ const charge: typeof charge_;
76
+ /** Known EVM asset metadata for public config. */
77
+ const assets: typeof Assets;
78
+ /** Common EVM chain IDs for public config. */
79
+ const chains: typeof Chains;
80
+ }
81
+ //# sourceMappingURL=Methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/evm/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C,gEAAgE;AAChE,wBAAgB,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAE7C;AAED,yBAAiB,GAAG,CAAC;IACnB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAE3C,6CAA6C;IACtC,MAAM,MAAM,gBAAU,CAAA;IAC7B,kDAAkD;IAC3C,MAAM,MAAM,eAAS,CAAA;IAC5B,8CAA8C;IACvC,MAAM,MAAM,eAAS,CAAA;CAC7B"}
@@ -0,0 +1,16 @@
1
+ import * as Assets from '../Assets.js';
2
+ import * as Chains from '../Chains.js';
3
+ import { charge as charge_ } from './Charge.js';
4
+ /** Creates EVM client methods from shared charge parameters. */
5
+ export function evm(parameters) {
6
+ return [evm.charge(parameters)];
7
+ }
8
+ (function (evm) {
9
+ /** Creates an EVM `charge` client method. */
10
+ evm.charge = charge_;
11
+ /** Known EVM asset metadata for public config. */
12
+ evm.assets = Assets;
13
+ /** Common EVM chain IDs for public config. */
14
+ evm.chains = Chains;
15
+ })(evm || (evm = {}));
16
+ //# sourceMappingURL=Methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/evm/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C,gEAAgE;AAChE,MAAM,UAAU,GAAG,CAAC,UAA0B;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAU,CAAA;AAC1C,CAAC;AAED,WAAiB,GAAG;IAGlB,6CAA6C;IAChC,UAAM,GAAG,OAAO,CAAA;IAC7B,kDAAkD;IACrC,UAAM,GAAG,MAAM,CAAA;IAC5B,8CAA8C;IACjC,UAAM,GAAG,MAAM,CAAA;AAC9B,CAAC,EATgB,GAAG,KAAH,GAAG,QASnB"}
@@ -0,0 +1,6 @@
1
+ export * as assets from '../Assets.js';
2
+ export * as Chains from '../Chains.js';
3
+ export * as chains from '../Chains.js';
4
+ export { charge } from './Charge.js';
5
+ export { evm } from './Methods.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * as assets from '../Assets.js';
2
+ export * as Chains from '../Chains.js';
3
+ export * as chains from '../Chains.js';
4
+ export { charge } from './Charge.js';
5
+ export { evm } from './Methods.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/evm/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,9 @@
1
+ export * as Assets from './Assets.js';
2
+ export * as Chains from './Chains.js';
3
+ export * as Methods from './Methods.js';
4
+ export * as Types from './Types.js';
5
+ export * as assets from './Assets.js';
6
+ export * as chains from './Chains.js';
7
+ export * from './Types.js';
8
+ export type { ExactEip3009Transfer, ExactPermit2Transfer, ExactTransfer, ResourceInfo, } from '../x402/Types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,8 @@
1
+ export * as Assets from './Assets.js';
2
+ export * as Chains from './Chains.js';
3
+ export * as Methods from './Methods.js';
4
+ export * as Types from './Types.js';
5
+ export * as assets from './Assets.js';
6
+ export * as chains from './Chains.js';
7
+ export * from './Types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,62 @@
1
+ import type * as Credential from '../../Credential.js';
2
+ import * as Method from '../../Method.js';
3
+ import * as X402 from '../../x402/server/EvmCharge.js';
4
+ import * as Assets from '../Assets.js';
5
+ import * as Methods from '../Methods.js';
6
+ import * as Types from '../Types.js';
7
+ /**
8
+ * Creates an EVM charge server method.
9
+ *
10
+ * Speaks the native Payment-auth `evm/charge` wire format.
11
+ */
12
+ export declare function charge(parameters: charge.NativeConfig): Method.Server<typeof Methods.charge, charge.Defaults>;
13
+ export declare namespace charge {
14
+ type Parameters = NativeConfig;
15
+ type Native = Method.Server<typeof Methods.charge, Defaults>;
16
+ type NativeConfig = BaseConfig & CurrencyConfig & RecipientConfig;
17
+ type BaseConfig = {
18
+ /** EIP-3009 token domain metadata. Required for custom currency addresses; inferred for known assets. */
19
+ authorization?: Types.AuthorizationConfig | undefined;
20
+ /** EVM chain ID. Required for custom currency addresses; inferred for known assets. */
21
+ chainId?: number | undefined;
22
+ /** Token decimal places. Required for custom currency addresses; inferred for known assets. */
23
+ decimals?: number | undefined;
24
+ /** Custom settlement override. If omitted, `x402.facilitator` is used. */
25
+ settle?: SettleAuthorization | undefined;
26
+ /** x402 compatibility options. */
27
+ x402?: X402.Options | undefined;
28
+ };
29
+ type CurrencyConfig = {
30
+ /** Token contract address or known EVM asset metadata. */
31
+ currency: `0x${string}` | Assets.KnownAsset;
32
+ };
33
+ type RecipientConfig = {
34
+ /** Recipient wallet address. */
35
+ recipient: `0x${string}`;
36
+ };
37
+ type RouteOptions = {
38
+ /** Required display-unit token amount. */
39
+ amount: string;
40
+ /** Optional human-readable payment description. */
41
+ description?: string | undefined;
42
+ /** Optional external correlation ID. */
43
+ externalId?: string | undefined;
44
+ };
45
+ type SettleAuthorization = (parameters: {
46
+ credential: Credential.Credential<Types.AuthorizationPayload>;
47
+ payload: Types.AuthorizationPayload;
48
+ request: Types.ChargeRequest;
49
+ source: ReturnType<typeof Types.toSource>;
50
+ }) => Promise<{
51
+ reference: string;
52
+ timestamp?: string | undefined;
53
+ }>;
54
+ type Defaults = {
55
+ chainId: number;
56
+ currency: `0x${string}`;
57
+ credentialTypes: ['authorization'];
58
+ decimals: number;
59
+ recipient: `0x${string}`;
60
+ };
61
+ }
62
+ //# sourceMappingURL=Charge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/server/Charge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,CAAC,YAAY,GAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AAsFxD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG,YAAY,CAAA;IAC9B,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE5D,KAAK,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAA;IAEjE,KAAK,UAAU,GAAG;QAChB,yGAAyG;QACzG,aAAa,CAAC,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACrD,uFAAuF;QACvF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,+FAA+F;QAC/F,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,0EAA0E;QAC1E,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;QACxC,kCAAkC;QAClC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;KAChC,CAAA;IAED,KAAK,cAAc,GAAG;QACpB,0DAA0D;QAC1D,QAAQ,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;KAC5C,CAAA;IAED,KAAK,eAAe,GAAG;QACrB,gCAAgC;QAChC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;KACzB,CAAA;IAED,KAAK,YAAY,GAAG;QAClB,0CAA0C;QAC1C,MAAM,EAAE,MAAM,CAAA;QACd,mDAAmD;QACnD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,wCAAwC;QACxC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,CAAA;IAED,KAAK,mBAAmB,GAAG,CAAC,UAAU,EAAE;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC7D,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAA;QACnC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAA;QAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAA;KAC1C,KAAK,OAAO,CAAC;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAC,CAAA;IAEF,KAAK,QAAQ,GAAG;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;QACvB,eAAe,EAAE,CAAC,eAAe,CAAC,CAAA;QAClC,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;KACzB,CAAA;CACF"}