mppx 0.7.0 → 0.8.1

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 (290) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +20 -11
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +18 -6
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Mcp.d.ts +3 -0
  7. package/dist/Mcp.d.ts.map +1 -1
  8. package/dist/Mcp.js +2 -0
  9. package/dist/Mcp.js.map +1 -1
  10. package/dist/PaymentRequest.d.ts +10 -10
  11. package/dist/PaymentRequest.js +8 -8
  12. package/dist/cli/internal.d.ts +1 -0
  13. package/dist/cli/internal.d.ts.map +1 -1
  14. package/dist/cli/internal.js +1 -15
  15. package/dist/cli/internal.js.map +1 -1
  16. package/dist/client/Mppx.js +2 -2
  17. package/dist/client/Mppx.js.map +1 -1
  18. package/dist/client/Transport.d.ts +11 -16
  19. package/dist/client/Transport.d.ts.map +1 -1
  20. package/dist/client/Transport.js +55 -75
  21. package/dist/client/Transport.js.map +1 -1
  22. package/dist/client/index.d.ts +3 -0
  23. package/dist/client/index.d.ts.map +1 -1
  24. package/dist/client/index.js +1 -0
  25. package/dist/client/index.js.map +1 -1
  26. package/dist/client/internal/Fetch.d.ts.map +1 -1
  27. package/dist/client/internal/Fetch.js +46 -7
  28. package/dist/client/internal/Fetch.js.map +1 -1
  29. package/dist/client/internal/protocols/Mcp.d.ts +7 -0
  30. package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
  31. package/dist/client/internal/protocols/Mcp.js +159 -0
  32. package/dist/client/internal/protocols/Mcp.js.map +1 -0
  33. package/dist/client/internal/protocols/Mpp.d.ts +4 -0
  34. package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
  35. package/dist/client/internal/protocols/Mpp.js +18 -0
  36. package/dist/client/internal/protocols/Mpp.js.map +1 -0
  37. package/dist/client/internal/protocols/Protocol.d.ts +10 -0
  38. package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
  39. package/dist/client/internal/protocols/Protocol.js +2 -0
  40. package/dist/client/internal/protocols/Protocol.js.map +1 -0
  41. package/dist/client/internal/protocols/Shared.d.ts +5 -0
  42. package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
  43. package/dist/client/internal/protocols/Shared.js +20 -0
  44. package/dist/client/internal/protocols/Shared.js.map +1 -0
  45. package/dist/client/internal/protocols/X402.d.ts +8 -0
  46. package/dist/client/internal/protocols/X402.d.ts.map +1 -0
  47. package/dist/client/internal/protocols/X402.js +39 -0
  48. package/dist/client/internal/protocols/X402.js.map +1 -0
  49. package/dist/evm/client/index.d.ts +1 -0
  50. package/dist/evm/client/index.d.ts.map +1 -1
  51. package/dist/evm/client/index.js +1 -0
  52. package/dist/evm/client/index.js.map +1 -1
  53. package/dist/evm/index.d.ts +2 -0
  54. package/dist/evm/index.d.ts.map +1 -1
  55. package/dist/evm/index.js +2 -0
  56. package/dist/evm/index.js.map +1 -1
  57. package/dist/evm/server/index.d.ts +1 -0
  58. package/dist/evm/server/index.d.ts.map +1 -1
  59. package/dist/evm/server/index.js +1 -0
  60. package/dist/evm/server/index.js.map +1 -1
  61. package/dist/mcp/client/McpClient.d.ts +101 -0
  62. package/dist/mcp/client/McpClient.d.ts.map +1 -0
  63. package/dist/mcp/client/McpClient.js +162 -0
  64. package/dist/mcp/client/McpClient.js.map +1 -0
  65. package/dist/mcp/client/index.d.ts.map +1 -0
  66. package/dist/mcp/client/index.js.map +1 -0
  67. package/dist/mcp/server/Transport.d.ts.map +1 -0
  68. package/dist/mcp/server/Transport.js.map +1 -0
  69. package/dist/mcp/server/index.d.ts.map +1 -0
  70. package/dist/mcp/server/index.js.map +1 -0
  71. package/dist/server/Mppx.d.ts +1 -1
  72. package/dist/server/Mppx.d.ts.map +1 -1
  73. package/dist/server/Mppx.js +9 -0
  74. package/dist/server/Mppx.js.map +1 -1
  75. package/dist/server/Transport.d.ts +1 -1
  76. package/dist/server/Transport.d.ts.map +1 -1
  77. package/dist/server/Transport.js +1 -1
  78. package/dist/server/Transport.js.map +1 -1
  79. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  80. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  81. package/dist/stripe/server/internal/html.gen.js +1 -1
  82. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  83. package/dist/tempo/Proof.d.ts +85 -1
  84. package/dist/tempo/Proof.d.ts.map +1 -1
  85. package/dist/tempo/Proof.js +35 -0
  86. package/dist/tempo/Proof.js.map +1 -1
  87. package/dist/tempo/client/Charge.d.ts +13 -1
  88. package/dist/tempo/client/Charge.d.ts.map +1 -1
  89. package/dist/tempo/client/Charge.js +38 -25
  90. package/dist/tempo/client/Charge.js.map +1 -1
  91. package/dist/tempo/client/Methods.d.ts +5 -3
  92. package/dist/tempo/client/Methods.d.ts.map +1 -1
  93. package/dist/tempo/client/Methods.js +4 -2
  94. package/dist/tempo/client/Methods.js.map +1 -1
  95. package/dist/tempo/client/ResolveAccount.d.ts +40 -0
  96. package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
  97. package/dist/tempo/client/ResolveAccount.js +2 -0
  98. package/dist/tempo/client/ResolveAccount.js.map +1 -0
  99. package/dist/tempo/internal/fee-payer.d.ts +26 -1
  100. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  101. package/dist/tempo/internal/fee-payer.js +83 -30
  102. package/dist/tempo/internal/fee-payer.js.map +1 -1
  103. package/dist/tempo/internal/proof.d.ts +71 -5
  104. package/dist/tempo/internal/proof.d.ts.map +1 -1
  105. package/dist/tempo/internal/proof.js +42 -6
  106. package/dist/tempo/internal/proof.js.map +1 -1
  107. package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -1
  108. package/dist/tempo/legacy/client/SessionManager.js +10 -3
  109. package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
  110. package/dist/tempo/server/Charge.d.ts.map +1 -1
  111. package/dist/tempo/server/Charge.js +46 -18
  112. package/dist/tempo/server/Charge.js.map +1 -1
  113. package/dist/tempo/server/Methods.d.ts +4 -2
  114. package/dist/tempo/server/Methods.d.ts.map +1 -1
  115. package/dist/tempo/server/Methods.js +4 -2
  116. package/dist/tempo/server/Methods.js.map +1 -1
  117. package/dist/tempo/server/Subscription.d.ts +10 -0
  118. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  119. package/dist/tempo/server/Subscription.js +135 -23
  120. package/dist/tempo/server/Subscription.js.map +1 -1
  121. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  122. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  123. package/dist/tempo/server/internal/html.gen.js +1 -1
  124. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  125. package/dist/tempo/session/client/ChannelOps.d.ts +2 -3
  126. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
  127. package/dist/tempo/session/client/ChannelOps.js +7 -10
  128. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  129. package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
  130. package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
  131. package/dist/tempo/session/client/ChannelStore.js +63 -0
  132. package/dist/tempo/session/client/ChannelStore.js.map +1 -0
  133. package/dist/tempo/session/client/CredentialState.d.ts +7 -24
  134. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
  135. package/dist/tempo/session/client/CredentialState.js +51 -49
  136. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  137. package/dist/tempo/session/client/Session.d.ts +8 -2
  138. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  139. package/dist/tempo/session/client/Session.js +22 -8
  140. package/dist/tempo/session/client/Session.js.map +1 -1
  141. package/dist/tempo/session/client/SessionManager.d.ts +4 -40
  142. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  143. package/dist/tempo/session/client/SessionManager.js +124 -174
  144. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  145. package/dist/tempo/session/client/index.d.ts +3 -4
  146. package/dist/tempo/session/client/index.d.ts.map +1 -1
  147. package/dist/tempo/session/client/index.js +1 -0
  148. package/dist/tempo/session/client/index.js.map +1 -1
  149. package/dist/tempo/session/precompile/Voucher.d.ts +3 -3
  150. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
  151. package/dist/tempo/session/precompile/Voucher.js +24 -25
  152. package/dist/tempo/session/precompile/Voucher.js.map +1 -1
  153. package/dist/tempo/session/server/CredentialVerification.d.ts +6 -0
  154. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
  155. package/dist/tempo/session/server/CredentialVerification.js +13 -0
  156. package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
  157. package/dist/tempo/session/server/Settlement.d.ts.map +1 -1
  158. package/dist/tempo/session/server/Settlement.js +4 -2
  159. package/dist/tempo/session/server/Settlement.js.map +1 -1
  160. package/dist/tempo/session/server/Sse.d.ts.map +1 -1
  161. package/dist/tempo/session/server/Sse.js.map +1 -1
  162. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  163. package/dist/tempo/session/server/Ws.js.map +1 -1
  164. package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
  165. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  166. package/dist/tempo/subscription/Store.d.ts +2 -0
  167. package/dist/tempo/subscription/Store.d.ts.map +1 -1
  168. package/dist/tempo/subscription/Store.js +16 -1
  169. package/dist/tempo/subscription/Store.js.map +1 -1
  170. package/dist/x402/index.d.ts +1 -0
  171. package/dist/x402/index.d.ts.map +1 -1
  172. package/dist/x402/index.js +1 -0
  173. package/dist/x402/index.js.map +1 -1
  174. package/package.json +21 -10
  175. package/src/Challenge.test.ts +40 -0
  176. package/src/Challenge.ts +19 -6
  177. package/src/Mcp.ts +4 -0
  178. package/src/PaymentRequest.ts +10 -10
  179. package/src/cli/cli.test.ts +15 -15
  180. package/src/cli/config.test.ts +13 -7
  181. package/src/cli/internal.ts +1 -16
  182. package/src/client/Mppx.test-d.ts +21 -1
  183. package/src/client/Mppx.test.ts +1 -1
  184. package/src/client/Mppx.ts +2 -2
  185. package/src/client/Transport.test.ts +225 -178
  186. package/src/client/Transport.ts +77 -83
  187. package/src/client/index.ts +14 -0
  188. package/src/client/internal/Fetch.test.ts +207 -2
  189. package/src/client/internal/Fetch.ts +52 -6
  190. package/src/client/internal/protocols/Mcp.test.ts +220 -0
  191. package/src/client/internal/protocols/Mcp.ts +162 -0
  192. package/src/client/internal/protocols/Mpp.ts +21 -0
  193. package/src/client/internal/protocols/Protocol.ts +10 -0
  194. package/src/client/internal/protocols/Shared.ts +25 -0
  195. package/src/client/internal/protocols/X402.ts +42 -0
  196. package/src/discovery/OpenApi.test.ts +1 -1
  197. package/src/evm/PublicInterface.test-d.ts +1 -1
  198. package/src/evm/client/index.ts +1 -0
  199. package/src/evm/index.ts +2 -0
  200. package/src/evm/server/Charge.test.ts +1 -1
  201. package/src/evm/server/index.ts +1 -0
  202. package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +10 -4
  203. package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -18
  204. package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
  205. package/src/mcp/client/McpClient.ts +307 -0
  206. package/src/{mcp-sdk → mcp}/client/McpClient.unit.test.ts +9 -5
  207. package/src/middlewares/elysia.test.ts +1 -1
  208. package/src/middlewares/express.test.ts +1 -1
  209. package/src/middlewares/hono.test.ts +1 -1
  210. package/src/middlewares/internal/mppx.test.ts +1 -1
  211. package/src/middlewares/nextjs.test.ts +1 -1
  212. package/src/proxy/Proxy.test.ts +1 -1
  213. package/src/proxy/services/anthropic.test.ts +1 -1
  214. package/src/proxy/services/openai.test.ts +1 -1
  215. package/src/proxy/services/stripe.test.ts +1 -1
  216. package/src/server/Mppx.authorize.test.ts +1 -1
  217. package/src/server/Mppx.test-d.ts +1 -1
  218. package/src/server/Mppx.test.ts +20 -2
  219. package/src/server/Mppx.ts +14 -1
  220. package/src/server/Transport.test.ts +6 -6
  221. package/src/server/Transport.ts +1 -1
  222. package/src/stripe/Charge.integration.test.ts +1 -1
  223. package/src/stripe/client/Charge.test.ts +1 -1
  224. package/src/stripe/server/Charge.test.ts +1 -1
  225. package/src/stripe/server/internal/html/package.json +1 -1
  226. package/src/stripe/server/internal/html.gen.ts +1 -1
  227. package/src/tempo/Proof.conformance.test.ts +146 -0
  228. package/src/tempo/Proof.test-d.ts +15 -0
  229. package/src/tempo/Proof.ts +52 -1
  230. package/src/tempo/Subscription.integration.test.ts +1 -1
  231. package/src/tempo/client/Charge.test.ts +173 -0
  232. package/src/tempo/client/Charge.ts +65 -36
  233. package/src/tempo/client/Methods.ts +4 -2
  234. package/src/tempo/client/ResolveAccount.ts +46 -0
  235. package/src/tempo/internal/fee-payer.test.ts +89 -10
  236. package/src/tempo/internal/fee-payer.ts +128 -41
  237. package/src/tempo/internal/proof.test.ts +12 -4
  238. package/src/tempo/internal/proof.ts +55 -6
  239. package/src/tempo/legacy/client/SessionManager.ts +11 -3
  240. package/src/tempo/legacy/server/Session.test.ts +91 -26
  241. package/src/tempo/server/Charge.test.ts +388 -17
  242. package/src/tempo/server/Charge.ts +50 -24
  243. package/src/tempo/server/Methods.ts +4 -2
  244. package/src/tempo/server/Subscription.test.ts +465 -3
  245. package/src/tempo/server/Subscription.ts +174 -19
  246. package/src/tempo/server/internal/html/package.json +2 -2
  247. package/src/tempo/server/internal/html.gen.ts +1 -1
  248. package/src/tempo/session/client/ChannelOps.ts +5 -19
  249. package/src/tempo/session/client/ChannelStore.ts +111 -0
  250. package/src/tempo/session/client/CredentialState.test.ts +206 -62
  251. package/src/tempo/session/client/CredentialState.ts +58 -73
  252. package/src/tempo/session/client/Session.test.ts +41 -1
  253. package/src/tempo/session/client/Session.ts +36 -10
  254. package/src/tempo/session/client/SessionManager.test.ts +154 -65
  255. package/src/tempo/session/client/SessionManager.ts +141 -235
  256. package/src/tempo/session/client/index.ts +8 -5
  257. package/src/tempo/session/precompile/Voucher.test.ts +45 -7
  258. package/src/tempo/session/precompile/Voucher.ts +27 -25
  259. package/src/tempo/session/server/CredentialVerification.test.ts +36 -0
  260. package/src/tempo/session/server/CredentialVerification.ts +18 -0
  261. package/src/tempo/session/server/Session.test.ts +4 -4
  262. package/src/tempo/session/server/Settlement.test.ts +88 -1
  263. package/src/tempo/session/server/Settlement.ts +2 -1
  264. package/src/tempo/session/server/Sse.ts +0 -2
  265. package/src/tempo/session/server/Ws.ts +0 -4
  266. package/src/tempo/subscription/Store.ts +27 -9
  267. package/src/x402/Exact.e2e.test.ts +1 -1
  268. package/src/x402/PublicInterface.test-d.ts +1 -1
  269. package/src/x402/index.ts +1 -0
  270. package/dist/mcp-sdk/client/McpClient.d.ts +0 -85
  271. package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
  272. package/dist/mcp-sdk/client/McpClient.js +0 -118
  273. package/dist/mcp-sdk/client/McpClient.js.map +0 -1
  274. package/dist/mcp-sdk/client/index.d.ts.map +0 -1
  275. package/dist/mcp-sdk/client/index.js.map +0 -1
  276. package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
  277. package/dist/mcp-sdk/server/Transport.js.map +0 -1
  278. package/dist/mcp-sdk/server/index.d.ts.map +0 -1
  279. package/dist/mcp-sdk/server/index.js.map +0 -1
  280. package/src/mcp-sdk/client/McpClient.ts +0 -228
  281. /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
  282. /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
  283. /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
  284. /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
  285. /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
  286. /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
  287. /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
  288. /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
  289. /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
  290. /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
@@ -3,6 +3,7 @@ import * as Challenge from '../../../Challenge.js';
3
3
  import * as Fetch from '../../../client/internal/Fetch.js';
4
4
  import * as Constants from '../../../Constants.js';
5
5
  import { charge as chargePlugin } from '../../client/Charge.js';
6
+ import { createChannelStore, entryKey } from '../client/ChannelStore.js';
6
7
  import { session as sessionPlugin } from '../client/Session.js';
7
8
  import { deserializeSessionReceipt } from '../precompile/Protocol.js';
8
9
  import { readSessionChallengeAmount } from '../precompile/Protocol.js';
@@ -12,7 +13,7 @@ import { resolveCloseTarget } from './Runtime.js';
12
13
  import { assertVoucherWithinLocalLimit as assertVoucherWithinLocalAuthorization } from './Runtime.js';
13
14
  import { applySessionReceiptToRuntime, captureRuntimeSnapshot as captureRuntimeStateSnapshot, computeFallbackCloseAmount, createSessionManagerRuntime, dispatchSessionEvent, restoreCumulativeAuthorization, restoreRuntimeSnapshot as restoreRuntimeStateSnapshot, } from './Runtime.js';
14
15
  import { closeSocketSession } from './Runtime.js';
15
- import { closeHttpSession, getSessionSnapshot, isTempoSessionChallenge, managementInput, postTopUp, retryHttpPaymentRequired, webSocketProbeUrl, } from './Transports.js';
16
+ import { closeHttpSession, isTempoSessionChallenge, managementInput, postTopUp, retryHttpPaymentRequired, webSocketProbeUrl, } from './Transports.js';
16
17
  import { WebSocketReadyState, } from './Transports.js';
17
18
  import { openSseSession } from './Transports.js';
18
19
  import { applyTopUpResult, resolveManualTopUp } from './Transports.js';
@@ -33,48 +34,16 @@ function isZeroAmountChargeChallenge(challenge) {
33
34
  return false;
34
35
  }
35
36
  }
36
- function storedChannelFromEntry(entry) {
37
- return {
38
- channelId: entry.channelId,
39
- cumulativeAmount: entry.cumulativeAmount.toString(),
40
- deposit: entry.deposit.toString(),
41
- descriptor: entry.descriptor,
42
- escrow: entry.escrow,
43
- chainId: entry.chainId,
44
- opened: entry.opened,
45
- updatedAt: Date.now(),
46
- };
47
- }
48
- function storedChannelContext(channel) {
49
- return {
50
- channelId: channel.channelId,
51
- cumulativeAmountRaw: channel.cumulativeAmount,
52
- descriptor: channel.descriptor,
53
- };
54
- }
55
- function storedChannelFromSnapshot(snapshot) {
37
+ /** Builds a reusable channel entry from a server session snapshot header. */
38
+ function entryFromSnapshot(snapshot) {
56
39
  return {
57
40
  channelId: snapshot.channelId,
58
- cumulativeAmount: snapshot.acceptedCumulative,
59
- deposit: snapshot.deposit,
41
+ cumulativeAmount: BigInt(snapshot.acceptedCumulative),
42
+ deposit: BigInt(snapshot.deposit),
60
43
  descriptor: snapshot.descriptor,
61
44
  escrow: snapshot.escrow,
62
45
  chainId: snapshot.chainId,
63
46
  opened: true,
64
- updatedAt: Date.now(),
65
- };
66
- }
67
- function resolveCredentialContext(parameters) {
68
- const { channel, challenge, context, storedChannel } = parameters;
69
- if (context.action ||
70
- channel?.opened ||
71
- !storedChannel?.opened ||
72
- getSessionSnapshot(challenge)) {
73
- return { context, usedStoredChannel: false };
74
- }
75
- return {
76
- context: { ...context, ...storedChannelContext(storedChannel) },
77
- usedStoredChannel: true,
78
47
  };
79
48
  }
80
49
  function requestInitWithSessionHint(input, init, channelId) {
@@ -114,39 +83,63 @@ function resolveSessionManagerConfig(parameters) {
114
83
  * channel state management and credential creation, and to `Fetch.from`
115
84
  * for the 402 challenge/retry flow.
116
85
  *
117
- * ## Session resumption
118
- *
119
- * The manager only keeps active client transport state in memory. Channel
120
- * descriptors and cumulative voucher state are hydrated from server snapshots
121
- * when challenges include them; otherwise the next request opens a fresh
122
- * TIP-1034 channel. `maxDeposit` remains the local cap for all automatic
123
- * voucher and top-up decisions.
86
+ * `channelStore` can persist reusable channels between manager instances.
124
87
  */
125
88
  export function sessionManager(parameters) {
126
89
  const config = resolveSessionManagerConfig(parameters);
127
- const sessionStore = parameters.sessionStore;
128
- let storedChannel = null;
129
- let bootstrapChannelId = null;
130
- const ignoredStoredChannelIds = new Set();
131
90
  const runtime = createSessionManagerRuntime();
132
91
  const receipts = createSessionReceiptCoordinator({
133
92
  getSocketSession: () => runtime.socketSession,
134
93
  });
94
+ const backing = parameters.channelStore ?? createChannelStore();
95
+ const ignoredChannelIds = new Set();
96
+ let channelUse;
97
+ /** Returns the backing entry for `key` only when it is open and not ignored. */
98
+ async function getReusable(key) {
99
+ const entry = await backing.get(key);
100
+ if (entry?.opened && !ignoredChannelIds.has(entry.channelId))
101
+ return entry;
102
+ return undefined;
103
+ }
104
+ const store = {
105
+ async get(key) {
106
+ const entry = await getReusable(key);
107
+ if (entry && channelUse) {
108
+ channelUse.seenExisting.add(key);
109
+ if (!channelUse.createdKeys.has(key))
110
+ channelUse.resumed ??= entry;
111
+ }
112
+ return entry;
113
+ },
114
+ async set(entry) {
115
+ const key = entryKey(entry);
116
+ if (entry.opened)
117
+ ignoredChannelIds.delete(entry.channelId);
118
+ if (channelUse && !channelUse.seenExisting.has(key))
119
+ channelUse.createdKeys.add(key);
120
+ await backing.set(entry);
121
+ },
122
+ delete: (key) => backing.delete(key),
123
+ };
124
+ /** Removes a failed channel from candidacy for the rest of this manager's life. */
125
+ async function ignoreChannel(entry) {
126
+ ignoredChannelIds.add(entry.channelId);
127
+ await Promise.resolve(backing.delete(entryKey(entry))).catch(() => undefined);
128
+ }
135
129
  function dispatch(event) {
136
130
  return dispatchSessionEvent(runtime, event);
137
131
  }
138
132
  const method = sessionPlugin({
139
133
  account: parameters.account,
140
- authorizedSigner: parameters.authorizedSigner,
141
134
  getClient: parameters.client ? () => parameters.client : parameters.getClient,
142
135
  escrow: parameters.escrow,
143
136
  decimals: config.decimals,
144
137
  maxDeposit: parameters.maxDeposit,
138
+ channelStore: store,
145
139
  onChannelUpdate(entry) {
146
140
  if (entry.channelId !== runtime.channel?.channelId)
147
141
  runtime.spent = 0n;
148
142
  runtime.channel = entry;
149
- persistStoredChannel(entry);
150
143
  if (runtime.lastChallenge) {
151
144
  dispatch({
152
145
  type: 'activated',
@@ -180,28 +173,11 @@ export function sessionManager(parameters) {
180
173
  requiredCumulative,
181
174
  });
182
175
  }
183
- const resolved = resolveCredentialContext({
184
- challenge,
185
- channel: runtime.channel,
186
- context: {},
187
- storedChannel,
188
- });
189
- if (resolved.usedStoredChannel)
190
- return _helpers.createCredential(resolved.context);
191
176
  return undefined;
192
177
  },
193
178
  });
194
179
  function createSessionCredential(challenge, context) {
195
- const resolved = resolveCredentialContext({
196
- challenge,
197
- channel: runtime.channel,
198
- context,
199
- storedChannel,
200
- });
201
- return method.createCredential({
202
- challenge,
203
- context: resolved.context,
204
- });
180
+ return method.createCredential({ challenge, context });
205
181
  }
206
182
  function updateSpentFromReceipt(receipt) {
207
183
  applySessionReceiptToRuntime({
@@ -225,53 +201,20 @@ export function sessionManager(parameters) {
225
201
  units,
226
202
  });
227
203
  }
228
- async function getStoredChannel() {
229
- if (!sessionStore)
230
- return null;
231
- if (storedChannel)
232
- return storedChannel;
233
- const channel = await sessionStore.get();
234
- storedChannel =
235
- channel?.opened && !ignoredStoredChannelIds.has(channel.channelId) ? channel : null;
236
- return storedChannel;
237
- }
238
- async function clearStoredChannel() {
239
- if (!sessionStore) {
240
- storedChannel = null;
241
- bootstrapChannelId = null;
242
- return;
243
- }
244
- const channel = storedChannel;
245
- if (channel)
246
- ignoredStoredChannelIds.add(channel.channelId);
247
- storedChannel = null;
248
- bootstrapChannelId = null;
249
- if (sessionStore.delete) {
250
- await Promise.resolve(sessionStore.delete()).catch(() => undefined);
251
- return;
252
- }
253
- if (channel) {
254
- await Promise.resolve(sessionStore.set({ ...channel, opened: false, updatedAt: Date.now() })).catch(() => undefined);
255
- }
256
- }
204
+ /** Persists a server snapshot into the channel store and returns the entry. */
257
205
  async function storeSnapshotHeader(response) {
258
206
  const header = response.headers.get(Constants.Headers.paymentSessionSnapshot);
259
207
  if (!header)
260
- return;
261
- const snapshot = deserializeSessionSnapshot(header);
262
- bootstrapChannelId = snapshot.channelId;
263
- const channel = storedChannelFromSnapshot(snapshot);
264
- storedChannel = channel;
265
- if (sessionStore)
266
- await Promise.resolve(sessionStore.set(channel)).catch(() => undefined);
208
+ return undefined;
209
+ const entry = entryFromSnapshot(deserializeSessionSnapshot(header));
210
+ await Promise.resolve(store.set(entry)).catch(() => undefined);
211
+ return entry;
267
212
  }
268
213
  async function bootstrapSession(input, init) {
269
214
  if (!parameters.bootstrap)
270
- return;
215
+ return undefined;
271
216
  if (runtime.channel?.opened)
272
- return;
273
- if (await getStoredChannel())
274
- return;
217
+ return undefined;
275
218
  const requestHeaders = input instanceof Request ? input.headers : undefined;
276
219
  const { body: _body, method: _method, ...bootstrapInit } = init ?? {};
277
220
  const bootstrapInput = input instanceof Request ? input.url : input;
@@ -286,15 +229,13 @@ export function sessionManager(parameters) {
286
229
  };
287
230
  try {
288
231
  const challengeResponse = await config.fetch(bootstrapInput, headInit);
289
- if (challengeResponse.status !== 402) {
290
- await storeSnapshotHeader(challengeResponse);
291
- return;
292
- }
232
+ if (challengeResponse.status !== 402)
233
+ return await storeSnapshotHeader(challengeResponse);
293
234
  const challenge = Challenge.fromResponseList(challengeResponse).find(isTempoChargeChallenge);
294
235
  if (!challenge)
295
- return;
236
+ return undefined;
296
237
  if (!isZeroAmountChargeChallenge(challenge))
297
- return;
238
+ return undefined;
298
239
  const credential = await chargeMethod.createCredential({
299
240
  challenge: challenge,
300
241
  context: {},
@@ -307,21 +248,13 @@ export function sessionManager(parameters) {
307
248
  },
308
249
  });
309
250
  if (response.ok)
310
- await storeSnapshotHeader(response);
251
+ return await storeSnapshotHeader(response);
252
+ return undefined;
311
253
  }
312
254
  catch {
313
- return;
255
+ return undefined;
314
256
  }
315
257
  }
316
- function persistStoredChannel(entry) {
317
- if (!sessionStore)
318
- return;
319
- const channel = storedChannelFromEntry(entry);
320
- ignoredStoredChannelIds.delete(channel.channelId);
321
- const operation = entry.opened || !sessionStore.delete ? sessionStore.set(channel) : sessionStore.delete();
322
- void Promise.resolve(operation).catch(() => undefined);
323
- storedChannel = entry.opened ? channel : null;
324
- }
325
258
  function getFallbackCloseAmount(challenge, channelId) {
326
259
  const currentSocket = runtime.socketSession;
327
260
  return computeFallbackCloseAmount({
@@ -426,64 +359,78 @@ export function sessionManager(parameters) {
426
359
  });
427
360
  }
428
361
  async function doFetch(input, init) {
362
+ // The manager drives one shared `runtime` state machine, so requests are
363
+ // single-flight. Reject overlap loudly instead of letting concurrent calls
364
+ // corrupt each other's runtime and channel tracking.
365
+ if (channelUse)
366
+ throw new Error('SessionManager: a request is already in flight; concurrent requests on one manager are not supported');
367
+ const use = { seenExisting: new Set(), createdKeys: new Set(), resumed: undefined };
368
+ channelUse = use;
429
369
  runtime.lastUrl = input;
430
- const stored = await getStoredChannel();
431
- await bootstrapSession(input, init);
432
- const hintedInit = requestInitWithSessionHint(input, init, (await getStoredChannel())?.channelId ?? bootstrapChannelId ?? stored?.channelId);
433
370
  const previous = captureRuntimeStateSnapshot({
434
371
  channel: runtime.channel,
435
372
  spent: runtime.spent,
436
373
  state: runtime.state,
437
374
  });
438
- let effectiveInit = hintedInit;
439
- let canRetryWithoutStoredHint = Boolean(stored?.opened && !previous.channel?.opened);
440
- for (;;) {
441
- let response;
442
- try {
443
- response = await wrappedFetch(input, effectiveInit);
375
+ // Cold starts resume from `channelStore` after the 402 reveals the scope.
376
+ const liveHint = runtime.channel?.opened ? runtime.channel.channelId : undefined;
377
+ try {
378
+ await bootstrapSession(input, init);
379
+ let effectiveInit = requestInitWithSessionHint(input, init, liveHint);
380
+ // Stored channels may be stale, so retry once after evicting the resumed entry.
381
+ let canRetryResumed = !previous.channel?.opened;
382
+ async function retryWithoutResumed() {
383
+ const resumed = use.resumed;
384
+ if (!canRetryResumed || !resumed)
385
+ return false;
386
+ canRetryResumed = false;
387
+ await ignoreChannel(resumed);
388
+ effectiveInit = requestInitWithSessionHint(input, init, undefined);
389
+ return true;
444
390
  }
445
- catch (error) {
446
- restoreRuntime(previous);
447
- if (!canRetryWithoutStoredHint)
391
+ for (;;) {
392
+ let response;
393
+ try {
394
+ response = await wrappedFetch(input, effectiveInit);
395
+ }
396
+ catch (error) {
397
+ restoreRuntime(previous);
398
+ if (await retryWithoutResumed())
399
+ continue;
448
400
  throw error;
449
- canRetryWithoutStoredHint = false;
450
- await clearStoredChannel();
451
- await bootstrapSession(input, init);
452
- effectiveInit = requestInitWithSessionHint(input, init, bootstrapChannelId ?? undefined);
453
- continue;
454
- }
455
- let paymentResponse = toPaymentResponse(response);
456
- let attemptedHttpManagement = false;
457
- if (paymentResponse.status === 402) {
458
- const retry = await retryHttpPaymentRequired({
459
- input,
460
- init: effectiveInit,
461
- response: paymentResponse,
462
- createSessionCredential,
463
- fetch: config.fetch,
464
- getChannel: () => runtime.channel,
465
- restoreCumulative,
466
- setChallenge(challenge) {
467
- runtime.lastChallenge = challenge;
468
- },
469
- topUpIfNeeded,
470
- });
471
- if (retry) {
472
- attemptedHttpManagement = true;
473
- paymentResponse = toPaymentResponse(retry);
474
401
  }
475
- }
476
- if (!attemptedHttpManagement && !paymentResponse.ok && !paymentResponse.receipt) {
477
- restoreRuntime(previous);
478
- if (!canRetryWithoutStoredHint)
402
+ let paymentResponse = toPaymentResponse(response);
403
+ let attemptedHttpManagement = false;
404
+ if (paymentResponse.status === 402) {
405
+ const retry = await retryHttpPaymentRequired({
406
+ input,
407
+ init: effectiveInit,
408
+ response: paymentResponse,
409
+ createSessionCredential,
410
+ fetch: config.fetch,
411
+ getChannel: () => runtime.channel,
412
+ restoreCumulative,
413
+ setChallenge(challenge) {
414
+ runtime.lastChallenge = challenge;
415
+ },
416
+ topUpIfNeeded,
417
+ });
418
+ if (retry) {
419
+ attemptedHttpManagement = true;
420
+ paymentResponse = toPaymentResponse(retry);
421
+ }
422
+ }
423
+ if (!attemptedHttpManagement && !paymentResponse.ok && !paymentResponse.receipt) {
424
+ restoreRuntime(previous);
425
+ if (await retryWithoutResumed())
426
+ continue;
479
427
  return paymentResponse;
480
- canRetryWithoutStoredHint = false;
481
- await clearStoredChannel();
482
- await bootstrapSession(input, init);
483
- effectiveInit = requestInitWithSessionHint(input, init, bootstrapChannelId ?? undefined);
484
- continue;
428
+ }
429
+ return paymentResponse;
485
430
  }
486
- return paymentResponse;
431
+ }
432
+ finally {
433
+ channelUse = undefined;
487
434
  }
488
435
  }
489
436
  async function closeHttpSessionAndApply(target) {
@@ -554,7 +501,10 @@ export function sessionManager(parameters) {
554
501
  throw new Error('No WebSocket implementation available. Pass `webSocket` to sessionManager() in this runtime.');
555
502
  }
556
503
  const probeUrl = webSocketProbeUrl(input);
557
- await bootstrapSession(probeUrl, init?.signal ? { signal: init.signal } : undefined);
504
+ const signalInit = init?.signal ? { signal: init.signal } : undefined;
505
+ await bootstrapSession(probeUrl, signalInit);
506
+ // Cold starts resume from `channelStore` after the probe's 402.
507
+ const liveHint = runtime.channel?.opened ? runtime.channel.channelId : undefined;
558
508
  const prepared = await prepareWebSocketSession({
559
509
  createSessionCredential,
560
510
  fetch: config.fetch,
@@ -562,7 +512,7 @@ export function sessionManager(parameters) {
562
512
  onProbeUrl(httpUrl) {
563
513
  runtime.lastUrl = httpUrl.toString();
564
514
  },
565
- probeInit: requestInitWithSessionHint(probeUrl, init?.signal ? { signal: init.signal } : undefined, (await getStoredChannel())?.channelId ?? bootstrapChannelId ?? undefined),
515
+ probeInit: requestInitWithSessionHint(probeUrl, signalInit, liveHint),
566
516
  signal: init?.signal,
567
517
  });
568
518
  const { challenge, credential, httpUrl, wsUrl } = prepared;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/SessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/SessionManager.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,10 @@ export { session } from './Session.js';
2
2
  export { sessionManager } from './SessionManager.js';
3
3
  export * as Machine from './Runtime.js';
4
4
  export { deserializeSnapshot, serializeSnapshot } from '../Snapshot.js';
5
- /** Public client session manager types. */
6
- export type { PaymentResponse, SessionStore, SessionManager, SessionManagerSseOptions, SessionManagerWebSocketOptions, StoredSessionChannel, } from './SessionManager.js';
7
- /** Public managed WebSocket facade returned by `sessionManager().ws()`. */
5
+ export { createChannelStore, createJsonChannelStore, entryKey, type ChannelStore, type JsonChannelKv, } from './ChannelStore.js';
6
+ export type { PaymentResponse, SessionManager, SessionManagerSseOptions, SessionManagerWebSocketOptions, } from './SessionManager.js';
8
7
  export type { SessionManagedWebSocket } from './Transports.js';
9
- /** Public pure state-machine types. */
10
8
  export type { ActiveSessionState, ChallengedSessionState, ClosedSessionState, ClosingSessionState, CloseRequestedSessionState, CreateActiveStateParameters, HydratingSessionState, IdleSessionState, NeedVoucherSessionState, OpeningSessionState, SessionEffect, SessionEvent, SessionState, SessionTransition, SettlingSessionState, ToppingUpSessionState, VoucherNeededSessionState, WithdrawableSessionState, } from './Runtime.js';
11
9
  export type { SessionSnapshot } from '../Snapshot.js';
10
+ export type { ResolveAccount, ResolveAccountInfo } from '../../client/ResolveAccount.js';
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvE,2CAA2C;AAC3C,YAAY,EACV,eAAe,EACf,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,2EAA2E;AAC3E,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,uCAAuC;AACvC,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA"}
@@ -2,4 +2,5 @@ export { session } from './Session.js';
2
2
  export { sessionManager } from './SessionManager.js';
3
3
  export * as Machine from './Runtime.js';
4
4
  export { deserializeSnapshot, serializeSnapshot } from '../Snapshot.js';
5
+ export { createChannelStore, createJsonChannelStore, entryKey, } from './ChannelStore.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,GAGT,MAAM,mBAAmB,CAAA"}
@@ -25,12 +25,12 @@ export declare const voucherTypes: {
25
25
  /**
26
26
  * Sign a voucher with an account.
27
27
  */
28
- export declare function signVoucher(client: Client, account: Account, voucher: Voucher, verifyingContract: Address, chainId: number, _authorizedSigner?: Address | undefined): Promise<Hex>;
28
+ export declare function signVoucher(client: Client, account: Account, voucher: Voucher, verifyingContract: Address, chainId: number): Promise<Hex>;
29
29
  /**
30
30
  * Verify a voucher signature matches the expected signer.
31
31
  *
32
- * Only accepts raw secp256k1 signatures the escrow contract verifies
33
- * via ecrecover. Keychain, p256, and webAuthn signatures are rejected.
32
+ * Accepts canonical TIP-1020 primitive signatures. Keychain wrappers,
33
+ * multisig signatures, and magic-suffixed encodings are rejected.
34
34
  */
35
35
  export declare function verifyVoucher(escrowContract: Address, chainId: number, voucher: SignedVoucher, expectedSigner: Address): boolean;
36
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Voucher.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Voucher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAQ3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;;;;;EAOxE;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAKf,CAAA;AA4BV;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,GACtC,OAAO,CAAC,GAAG,CAAC,CA2Bd;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,OAAO,GACtB,OAAO,CA6BT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,GAAG,EACd,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,GAAG,GACb,aAAa,CAMf"}
1
+ {"version":3,"file":"Voucher.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Voucher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAQ3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;;;;;EAOxE;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAKf,CAAA;AA8CV;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,CA2Bd;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,OAAO,GACtB,OAAO,CAeT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,GAAG,EACd,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,GAAG,GACb,aAAa,CAMf"}