mppx 0.8.13 → 0.8.15

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 (156) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/Errors.d.ts +10 -0
  3. package/dist/Errors.d.ts.map +1 -1
  4. package/dist/Errors.js +11 -2
  5. package/dist/Errors.js.map +1 -1
  6. package/dist/Method.d.ts +105 -3
  7. package/dist/Method.d.ts.map +1 -1
  8. package/dist/Method.js +102 -2
  9. package/dist/Method.js.map +1 -1
  10. package/dist/cli/validate/payment.d.ts.map +1 -1
  11. package/dist/cli/validate/payment.js +18 -4
  12. package/dist/cli/validate/payment.js.map +1 -1
  13. package/dist/client/internal/Fetch.d.ts.map +1 -1
  14. package/dist/client/internal/Fetch.js +98 -5
  15. package/dist/client/internal/Fetch.js.map +1 -1
  16. package/dist/client/internal/MethodChallenge.d.ts +19 -0
  17. package/dist/client/internal/MethodChallenge.d.ts.map +1 -0
  18. package/dist/client/internal/MethodChallenge.js +15 -0
  19. package/dist/client/internal/MethodChallenge.js.map +1 -0
  20. package/dist/client/internal/MethodResponse.d.ts +15 -0
  21. package/dist/client/internal/MethodResponse.d.ts.map +1 -1
  22. package/dist/client/internal/MethodResponse.js +10 -0
  23. package/dist/client/internal/MethodResponse.js.map +1 -1
  24. package/dist/server/Mppx.d.ts +23 -4
  25. package/dist/server/Mppx.d.ts.map +1 -1
  26. package/dist/server/Mppx.js +91 -82
  27. package/dist/server/Mppx.js.map +1 -1
  28. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  29. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  30. package/dist/stripe/server/internal/html.gen.js +1 -1
  31. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  32. package/dist/tempo/client/Methods.d.ts +1 -0
  33. package/dist/tempo/client/Methods.d.ts.map +1 -1
  34. package/dist/tempo/internal/fee-payer.d.ts +1 -0
  35. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  36. package/dist/tempo/internal/fee-payer.js +7 -2
  37. package/dist/tempo/internal/fee-payer.js.map +1 -1
  38. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -1
  39. package/dist/tempo/legacy/client/ChannelOps.js +2 -1
  40. package/dist/tempo/legacy/client/ChannelOps.js.map +1 -1
  41. package/dist/tempo/server/Charge.d.ts +46 -77
  42. package/dist/tempo/server/Charge.d.ts.map +1 -1
  43. package/dist/tempo/server/Charge.js +289 -209
  44. package/dist/tempo/server/Charge.js.map +1 -1
  45. package/dist/tempo/server/Methods.d.ts +12 -1
  46. package/dist/tempo/server/Methods.d.ts.map +1 -1
  47. package/dist/tempo/server/Methods.js +4 -0
  48. package/dist/tempo/server/Methods.js.map +1 -1
  49. package/dist/tempo/server/Relay.d.ts +57 -0
  50. package/dist/tempo/server/Relay.d.ts.map +1 -0
  51. package/dist/tempo/server/Relay.js +179 -0
  52. package/dist/tempo/server/Relay.js.map +1 -0
  53. package/dist/tempo/server/SponsorBudget.d.ts +59 -0
  54. package/dist/tempo/server/SponsorBudget.d.ts.map +1 -0
  55. package/dist/tempo/server/SponsorBudget.js +150 -0
  56. package/dist/tempo/server/SponsorBudget.js.map +1 -0
  57. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  58. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  59. package/dist/tempo/server/internal/html.gen.js +1 -1
  60. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  61. package/dist/tempo/session/client/ChannelOps.d.ts +7 -1
  62. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
  63. package/dist/tempo/session/client/ChannelOps.js +9 -4
  64. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  65. package/dist/tempo/session/client/CredentialState.d.ts +5 -1
  66. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
  67. package/dist/tempo/session/client/CredentialState.js +37 -19
  68. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  69. package/dist/tempo/session/client/Runtime.d.ts +8 -0
  70. package/dist/tempo/session/client/Runtime.d.ts.map +1 -1
  71. package/dist/tempo/session/client/Runtime.js +17 -0
  72. package/dist/tempo/session/client/Runtime.js.map +1 -1
  73. package/dist/tempo/session/client/Session.d.ts +15 -5
  74. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  75. package/dist/tempo/session/client/Session.js +216 -45
  76. package/dist/tempo/session/client/Session.js.map +1 -1
  77. package/dist/tempo/session/client/SessionManager.d.ts +8 -1
  78. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  79. package/dist/tempo/session/client/SessionManager.js +114 -44
  80. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  81. package/dist/tempo/session/client/Transports.d.ts +16 -6
  82. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  83. package/dist/tempo/session/client/Transports.js +84 -37
  84. package/dist/tempo/session/client/Transports.js.map +1 -1
  85. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
  86. package/dist/tempo/session/precompile/Chain.js +96 -8
  87. package/dist/tempo/session/precompile/Chain.js.map +1 -1
  88. package/dist/tempo/session/precompile/Channel.d.ts +2 -0
  89. package/dist/tempo/session/precompile/Channel.d.ts.map +1 -1
  90. package/dist/tempo/session/precompile/Channel.js +4 -0
  91. package/dist/tempo/session/precompile/Channel.js.map +1 -1
  92. package/dist/tempo/session/server/RequestState.js +3 -1
  93. package/dist/tempo/session/server/RequestState.js.map +1 -1
  94. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  95. package/dist/tempo/session/server/Ws.js +3 -0
  96. package/dist/tempo/session/server/Ws.js.map +1 -1
  97. package/dist/tempo/subscription/KeyAuthorization.d.ts +1 -829
  98. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  99. package/dist/tempo/subscription/KeyAuthorization.js +14 -3
  100. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
  101. package/dist/viem/Client.d.ts.map +1 -1
  102. package/dist/viem/Client.js +6 -1
  103. package/dist/viem/Client.js.map +1 -1
  104. package/package.json +2 -2
  105. package/src/Errors.test.ts +23 -0
  106. package/src/Errors.ts +21 -2
  107. package/src/Method.test.ts +102 -1
  108. package/src/Method.ts +241 -5
  109. package/src/cli/validate/payment.ts +18 -4
  110. package/src/cli/validate.test.ts +16 -0
  111. package/src/client/Mppx.test-d.ts +3 -3
  112. package/src/client/internal/Fetch.test.ts +77 -0
  113. package/src/client/internal/Fetch.ts +122 -11
  114. package/src/client/internal/MethodChallenge.ts +35 -0
  115. package/src/client/internal/MethodResponse.ts +28 -0
  116. package/src/server/Mppx.test-d.ts +2 -0
  117. package/src/server/Mppx.test.ts +205 -0
  118. package/src/server/Mppx.ts +167 -103
  119. package/src/stripe/server/internal/html.gen.ts +1 -1
  120. package/src/tempo/PublicExports.test-d.ts +20 -0
  121. package/src/tempo/internal/fee-payer.ts +7 -3
  122. package/src/tempo/legacy/client/ChannelOps.test.ts +7 -0
  123. package/src/tempo/legacy/client/ChannelOps.ts +2 -1
  124. package/src/tempo/server/Charge.test.ts +337 -63
  125. package/src/tempo/server/Charge.ts +443 -267
  126. package/src/tempo/server/Methods.ts +11 -0
  127. package/src/tempo/server/Relay.test.ts +677 -0
  128. package/src/tempo/server/Relay.ts +297 -0
  129. package/src/tempo/server/SponsorBudget.test.ts +154 -0
  130. package/src/tempo/server/SponsorBudget.ts +219 -0
  131. package/src/tempo/server/internal/html.gen.ts +1 -1
  132. package/src/tempo/session/README.md +7 -0
  133. package/src/tempo/session/client/ChannelOps.test.ts +17 -2
  134. package/src/tempo/session/client/ChannelOps.ts +12 -4
  135. package/src/tempo/session/client/CredentialState.ts +61 -20
  136. package/src/tempo/session/client/Runtime.test.ts +12 -0
  137. package/src/tempo/session/client/Runtime.ts +22 -0
  138. package/src/tempo/session/client/Session.test.ts +506 -7
  139. package/src/tempo/session/client/Session.ts +279 -54
  140. package/src/tempo/session/client/SessionManager.test.ts +318 -13
  141. package/src/tempo/session/client/SessionManager.ts +132 -42
  142. package/src/tempo/session/client/Transports.test.ts +54 -1
  143. package/src/tempo/session/client/Transports.ts +137 -57
  144. package/src/tempo/session/precompile/Chain.integration.test.ts +19 -1
  145. package/src/tempo/session/precompile/Chain.test.ts +197 -10
  146. package/src/tempo/session/precompile/Chain.ts +102 -8
  147. package/src/tempo/session/precompile/Channel.test.ts +9 -0
  148. package/src/tempo/session/precompile/Channel.ts +5 -0
  149. package/src/tempo/session/server/RequestState.test.ts +8 -1
  150. package/src/tempo/session/server/RequestState.ts +2 -2
  151. package/src/tempo/session/server/Session.test.ts +66 -4
  152. package/src/tempo/session/server/Ws.ts +3 -0
  153. package/src/tempo/subscription/KeyAuthorization.test.ts +70 -1
  154. package/src/tempo/subscription/KeyAuthorization.ts +14 -3
  155. package/src/viem/Client.test.ts +18 -1
  156. package/src/viem/Client.ts +7 -1
@@ -3,6 +3,8 @@ import * as Method from '../../../Method.js';
3
3
  import * as Account from '../../../viem/Account.js';
4
4
  import * as Client from '../../../viem/Client.js';
5
5
  import type { ResolveAccount as ResolveAccount_, ResolveAccountInfo as ResolveAccountInfo_ } from '../../client/ResolveAccount.js';
6
+ import * as AutoSwap from '../../internal/auto-swap.js';
7
+ import * as Channel from '../precompile/Channel.js';
6
8
  import { type ChannelEntry } from './ChannelOps.js';
7
9
  import { type ChannelStore } from './ChannelStore.js';
8
10
  export { sessionContextSchema, type SessionContext } from './CredentialState.js';
@@ -23,7 +25,7 @@ export declare function session(parameters?: session.Parameters): Method.Client<
23
25
  authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
24
26
  channelId: import("zod/mini").ZodMiniString<string>;
25
27
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
26
- descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
28
+ descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
27
29
  signature: import("zod/mini").ZodMiniString<string>;
28
30
  transaction: import("zod/mini").ZodMiniString<string>;
29
31
  type: import("zod/mini").ZodMiniLiteral<"transaction">;
@@ -31,20 +33,20 @@ export declare function session(parameters?: session.Parameters): Method.Client<
31
33
  action: import("zod/mini").ZodMiniLiteral<"topUp">;
32
34
  additionalDeposit: import("zod/mini").ZodMiniString<string>;
33
35
  channelId: import("zod/mini").ZodMiniString<string>;
34
- descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
36
+ descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
35
37
  transaction: import("zod/mini").ZodMiniString<string>;
36
38
  type: import("zod/mini").ZodMiniLiteral<"transaction">;
37
39
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
38
40
  action: import("zod/mini").ZodMiniLiteral<"voucher">;
39
41
  channelId: import("zod/mini").ZodMiniString<string>;
40
42
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
41
- descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
43
+ descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
42
44
  signature: import("zod/mini").ZodMiniString<string>;
43
45
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
44
46
  action: import("zod/mini").ZodMiniLiteral<"close">;
45
47
  channelId: import("zod/mini").ZodMiniString<string>;
46
48
  cumulativeAmount: import("zod/mini").ZodMiniString<string>;
47
- descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
49
+ descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
48
50
  signature: import("zod/mini").ZodMiniString<string>;
49
51
  }, import("zod/v4/core").$strip>], "action">;
50
52
  };
@@ -101,6 +103,7 @@ export declare function session(parameters?: session.Parameters): Method.Client<
101
103
  };
102
104
  }, import("zod/mini").ZodMiniObject<{
103
105
  account: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
106
+ autoSwap: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<AutoSwap.resolve.Value, AutoSwap.resolve.Value>>;
104
107
  action: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniEnum<{
105
108
  open: "open";
106
109
  topUp: "topUp";
@@ -111,7 +114,7 @@ export declare function session(parameters?: session.Parameters): Method.Client<
111
114
  cumulativeAmount: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
112
115
  cumulativeAmountRaw: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
113
116
  transaction: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<`0x${string}`, `0x${string}`>>;
114
- descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
117
+ descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<Channel.ChannelDescriptor, Channel.ChannelDescriptor>>;
115
118
  additionalDeposit: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
116
119
  additionalDepositRaw: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
117
120
  depositRaw: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
@@ -121,6 +124,8 @@ export declare namespace session {
121
124
  type ResolveAccount = ResolveAccount_;
122
125
  type ResolveAccountInfo = ResolveAccountInfo_;
123
126
  type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
127
+ /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
128
+ autoSwap?: AutoSwap.resolve.Value | undefined;
124
129
  /** Pluggable persistence for reusable channels. Defaults to an in-memory store. */
125
130
  channelStore?: ChannelStore | undefined;
126
131
  /** Token decimals for parsing human-readable amounts (default: 6). */
@@ -129,6 +134,11 @@ export declare namespace session {
129
134
  escrow?: Address | undefined;
130
135
  /** Maximum channel deposit in human-readable units. Caps server-suggested opens and automatic top-ups. */
131
136
  maxDeposit?: string | undefined;
137
+ /**
138
+ * Preferred automatic top-up size in human-readable units. When omitted,
139
+ * a bounded server `suggestedDeposit` is preferred, then the exact shortfall.
140
+ */
141
+ topUpAmount?: string | undefined;
132
142
  /** Called whenever channel state changes. */
133
143
  onChannelUpdate?: ((entry: ChannelEntry) => void) | undefined;
134
144
  /** Selects the account that signs this session credential after the challenge is known. */
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/Session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,MAAM,CAAA;AAM/C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EACV,cAAc,IAAI,eAAe,EACjC,kBAAkB,IAAI,mBAAmB,EAC1C,MAAM,gCAAgC,CAAA;AAIvC,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAkBzE,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEhF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,UAAU,GAAE,OAAO,CAAC,UAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAgI1D;AAED,qEAAqE;AACrE,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,cAAc,GAAG,eAAe,CAAA;IACrC,KAAK,kBAAkB,GAAG,mBAAmB,CAAA;IAE7C,KAAK,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,mFAAmF;QACnF,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACvC,sEAAsE;QACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,2CAA2C;QAC3C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC5B,0GAA0G;QAC1G,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,6CAA6C;QAC7C,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;QAC7D,2FAA2F;QAC3F,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;KAC5C,CAAA;CACJ"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/Session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,MAAM,CAAA;AAO/C,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EACV,cAAc,IAAI,eAAe,EACjC,kBAAkB,IAAI,mBAAmB,EAC1C,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAA;AAGvD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AAOnD,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAuBzE,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA+DhF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,UAAU,GAAE,OAAO,CAAC,UAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAgR1D;AAED,qEAAqE;AACrE,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,cAAc,GAAG,eAAe,CAAA;IACrC,KAAK,kBAAkB,GAAG,mBAAmB,CAAA;IAE7C,KAAK,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,+FAA+F;QAC/F,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;QAC7C,mFAAmF;QACnF,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACvC,sEAAsE;QACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,2CAA2C;QAC3C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC5B,0GAA0G;QAC1G,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,6CAA6C;QAC7C,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;QAC7D,2FAA2F;QAC3F,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;KAC5C,CAAA;CACJ"}
@@ -1,20 +1,74 @@
1
1
  import { parseUnits } from 'viem';
2
2
  import { tempo as tempo_chain } from 'viem/chains';
3
+ import * as MethodChallenge from '../../../client/internal/MethodChallenge.js';
3
4
  import * as MethodResponse from '../../../client/internal/MethodResponse.js';
4
5
  import * as Constants from '../../../Constants.js';
5
6
  import * as Credential from '../../../Credential.js';
6
7
  import * as Method from '../../../Method.js';
7
8
  import * as Account from '../../../viem/Account.js';
8
9
  import * as Client from '../../../viem/Client.js';
10
+ import * as AutoSwap from '../../internal/auto-swap.js';
9
11
  import * as defaults from '../../internal/defaults.js';
10
12
  import * as Methods from '../../Methods.js';
11
- import { isEventStream, requireSessionCredentialContext } from '../precompile/Protocol.js';
13
+ import * as Channel from '../precompile/Channel.js';
14
+ import { deserializeSessionReceipt, isEventStream, readSessionChallengeAmount, requireSessionCredentialContext, } from '../precompile/Protocol.js';
12
15
  import { serializeCredential } from './ChannelOps.js';
13
16
  import { createChannelStore } from './ChannelStore.js';
14
- import { executeCredentialPlan, planCredential, resolveChallengeContext, resolveRecoverContext, sessionContextSchema, } from './CredentialState.js';
15
- import { assertWithinMaxDeposit } from './Runtime.js';
16
- import { handleSseNeedVoucher, isTempoSessionChallenge, managementInput, postTopUp, wrapSseResponse, } from './Transports.js';
17
+ import { canSignDescriptor, executeCredentialPlan, hasSessionAction, planCredential, resolveChallengeContext, resolveRecoverContext, sessionContextSchema, } from './CredentialState.js';
18
+ import { assertWithinMaxDeposit, resolveAutomaticTopUp } from './Runtime.js';
19
+ import { getSessionSnapshot, handleSseNeedVoucher, isTip1034SessionChallenge, postTopUp, wrapSseResponse, } from './Transports.js';
17
20
  export { sessionContextSchema } from './CredentialState.js';
21
+ /** Tail promise for each payment scope, used to serialize automatic opens per store. */
22
+ const channelTails = new WeakMap();
23
+ /** Serializes automatic opens for one payment scope across methods sharing a store. */
24
+ async function lockChannel(store, key) {
25
+ const tails = channelTails.get(store) ?? new Map();
26
+ channelTails.set(store, tails);
27
+ const previous = tails.get(key);
28
+ let unlock;
29
+ const current = new Promise((resolve) => {
30
+ unlock = resolve;
31
+ });
32
+ tails.set(key, current);
33
+ await previous;
34
+ return () => {
35
+ unlock();
36
+ if (tails.get(key) === current)
37
+ tails.delete(key);
38
+ };
39
+ }
40
+ function matchesOpen(opened, acknowledgement) {
41
+ try {
42
+ return (acknowledgement?.channelId.toLowerCase() === opened.channelId.toLowerCase() &&
43
+ BigInt(acknowledgement.acceptedCumulative) === opened.cumulativeAmount);
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ }
49
+ /**
50
+ * Returns whether the server acknowledged an open.
51
+ *
52
+ * Receipts must match the originating challenge, channel, and cumulative amount.
53
+ * Replacement challenges may acknowledge the same channel and amount through a
54
+ * session snapshot. Malformed acknowledgements are ignored.
55
+ */
56
+ function acknowledgesOpen(outcome, challenge, opened) {
57
+ try {
58
+ const receiptHeader = outcome.response?.headers.get(Constants.Headers.paymentReceipt);
59
+ if (receiptHeader) {
60
+ const receipt = deserializeSessionReceipt(receiptHeader);
61
+ if (receipt.challengeId === challenge.id && matchesOpen(opened, receipt))
62
+ return true;
63
+ }
64
+ }
65
+ catch { }
66
+ return (outcome.challenges?.some((candidate) => {
67
+ if (!isTip1034SessionChallenge(candidate))
68
+ return false;
69
+ return matchesOpen(opened, getSessionSnapshot(candidate));
70
+ }) ?? false);
71
+ }
18
72
  /**
19
73
  * Creates the low-level TIP-1034 session payment method for use with `Mppx.create()`.
20
74
  *
@@ -23,7 +77,7 @@ export { sessionContextSchema } from './CredentialState.js';
23
77
  * channel descriptor).
24
78
  */
25
79
  export function session(parameters = {}) {
26
- const { account, channelStore, decimals = defaults.decimals, escrow: escrowOverride, getClient: getClientParameter, maxDeposit: maxDepositParameter, onChannelUpdate, resolveAccount, } = parameters;
80
+ const { account, autoSwap: autoSwapParameter, channelStore, decimals = defaults.decimals, escrow: escrowOverride, getClient: getClientParameter, maxDeposit: maxDepositParameter, topUpAmount: topUpAmountParameter, onChannelUpdate, resolveAccount, } = parameters;
27
81
  const getClient = Client.getResolver({
28
82
  chain: tempo_chain,
29
83
  getClient: getClientParameter,
@@ -31,47 +85,170 @@ export function session(parameters = {}) {
31
85
  });
32
86
  const getAccount = Account.getResolver({ account });
33
87
  const maxDeposit = maxDepositParameter !== undefined ? parseUnits(maxDepositParameter, decimals) : undefined;
88
+ const topUpAmount = topUpAmountParameter !== undefined ? parseUnits(topUpAmountParameter, decimals) : undefined;
34
89
  const store = channelStore ?? createChannelStore();
35
90
  const sink = { store, notifyUpdate: (entry) => onChannelUpdate?.(entry) };
91
+ const resolveCredentialAccount = async (resolved, context, entry) => {
92
+ const defaultAccount = getAccount(resolved.client, context);
93
+ const descriptor = context?.action
94
+ ? context.descriptor
95
+ : (entry?.descriptor ??
96
+ resolveRecoverContext({ context, snapshot: resolved.snapshot })?.descriptor);
97
+ return ((await resolveAccount?.({
98
+ account: defaultAccount,
99
+ chainId: resolved.chainId,
100
+ operation: {
101
+ kind: 'authorizePaymentChannel',
102
+ ...(descriptor ? { authority: Channel.resolveAuthorizedSigner(descriptor) } : {}),
103
+ },
104
+ })) ?? defaultAccount);
105
+ };
106
+ const resolveCredentialPlan = async (resolved, context, entry) => planCredential({
107
+ account: await resolveCredentialAccount(resolved, context, entry),
108
+ entry,
109
+ context,
110
+ decimals,
111
+ maxDeposit,
112
+ resolved,
113
+ });
36
114
  const method = Method.toClient(Methods.session, {
37
- canHandleChallenge({ challenge }) {
38
- return (Constants.getMethodDetail(challenge.request.methodDetails, Constants.MethodDetailKeys.sessionProtocol) === Constants.SessionProtocols.v2);
39
- },
115
+ canHandleChallenge: ({ challenge }) => isTip1034SessionChallenge(challenge),
40
116
  context: sessionContextSchema,
41
- async createCredential({ challenge, context }) {
117
+ async createCredential(parameters) {
118
+ const { challenge, context } = parameters;
42
119
  const resolved = await resolveChallengeContext({
43
120
  challenge,
44
121
  escrowOverride,
45
122
  getClient,
46
123
  });
47
- const defaultAccount = getAccount(resolved.client, context);
48
- const entry = await store.get(resolved.key);
49
- // Resolve recovery hints early so account selection can satisfy an existing channel authority.
50
- const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot });
51
- const descriptor = context?.action
52
- ? context.descriptor
53
- : (entry?.descriptor ?? recoverContext?.descriptor);
54
- const account = (await resolveAccount?.({
55
- account: defaultAccount,
56
- chainId: resolved.chainId,
57
- operation: {
58
- kind: 'authorizePaymentChannel',
59
- ...(descriptor ? { authority: descriptor.authorizedSigner } : {}),
60
- },
61
- })) ?? defaultAccount;
62
- const payload = await executeCredentialPlan(planCredential({
63
- account,
64
- entry,
65
- context,
66
- decimals,
67
- maxDeposit,
68
- resolved,
69
- }), sink);
70
- return serializeCredential(challenge, payload, resolved.chainId, account);
124
+ const attempt = MethodResponse.getAttempt(parameters);
125
+ let release = () => { };
126
+ try {
127
+ let entry = await store.get(resolved.key);
128
+ let plan = await resolveCredentialPlan(resolved, context, entry);
129
+ if (attempt && plan.type === 'open') {
130
+ release = await lockChannel(store, resolved.key);
131
+ const nextEntry = await store.get(resolved.key);
132
+ if (nextEntry?.channelId !== entry?.channelId) {
133
+ entry = nextEntry;
134
+ if (entry?.opened) {
135
+ await attempt.prepare();
136
+ entry = await store.get(resolved.key);
137
+ }
138
+ plan = await resolveCredentialPlan(resolved, context, entry);
139
+ }
140
+ }
141
+ let pendingOpen;
142
+ // Defer opens only when low-level Fetch owns the response lifecycle.
143
+ // SessionManager unregisters this hook and keeps its existing transaction boundary.
144
+ const credentialSink = attempt && plan.type === 'open'
145
+ ? {
146
+ store: {
147
+ get: (key) => store.get(key),
148
+ async set(next) {
149
+ pendingOpen = next;
150
+ },
151
+ delete: (key) => store.delete(key),
152
+ },
153
+ notifyUpdate() { },
154
+ }
155
+ : sink;
156
+ const payload = await executeCredentialPlan(plan, credentialSink, AutoSwap.resolve(context?.autoSwap ?? autoSwapParameter, AutoSwap.defaultCurrencies));
157
+ const credential = await serializeCredential(challenge, payload, resolved.chainId, plan.account);
158
+ if (attempt && pendingOpen) {
159
+ const opened = pendingOpen;
160
+ attempt.settle = async (outcome) => {
161
+ const accepted = outcome.status === 'accepted' || acknowledgesOpen(outcome, challenge, opened);
162
+ if (!accepted && outcome.status === 'pending')
163
+ return false;
164
+ try {
165
+ if (accepted) {
166
+ const current = await store.get(resolved.key);
167
+ if (!current?.opened ||
168
+ current.channelId.toLowerCase() !== opened.channelId.toLowerCase()) {
169
+ await store.set(opened);
170
+ sink.notifyUpdate(opened);
171
+ }
172
+ }
173
+ return true;
174
+ }
175
+ finally {
176
+ release();
177
+ }
178
+ };
179
+ }
180
+ else
181
+ release();
182
+ return credential;
183
+ }
184
+ catch (error) {
185
+ release();
186
+ throw error;
187
+ }
71
188
  },
72
189
  });
190
+ const topUpChannelIfNeeded = async ({ challenge, channel, deposit, fetch, input, requiredCumulative, }) => {
191
+ const knownDeposit = channel.deposit > deposit ? channel.deposit : deposit;
192
+ const additionalDeposit = resolveAutomaticTopUp({
193
+ deposit: knownDeposit,
194
+ maxDeposit,
195
+ requiredCumulative,
196
+ suggestedDeposit: challenge.request.suggestedDeposit === undefined
197
+ ? undefined
198
+ : BigInt(challenge.request.suggestedDeposit),
199
+ topUpAmount,
200
+ });
201
+ if (additionalDeposit > 0n)
202
+ await postTopUp({
203
+ additionalDeposit,
204
+ challenge,
205
+ channel,
206
+ channelId: channel.channelId,
207
+ createSessionCredential: (challenge, context) => method.createCredential({ challenge, context }),
208
+ fetch,
209
+ input,
210
+ });
211
+ const nextDeposit = knownDeposit + additionalDeposit;
212
+ if (nextDeposit === channel.deposit)
213
+ return;
214
+ const updated = { ...channel, deposit: nextDeposit };
215
+ await store.set(updated);
216
+ sink.notifyUpdate(updated);
217
+ };
218
+ MethodChallenge.register(method, async ({ challenge, context, fetch, input }) => {
219
+ if (!isTip1034SessionChallenge(challenge))
220
+ return;
221
+ const sessionContext = context === undefined ? undefined : sessionContextSchema.parse(context);
222
+ if (hasSessionAction(sessionContext))
223
+ return;
224
+ const resolved = await resolveChallengeContext({ challenge, escrowOverride, getClient });
225
+ const channel = await store.get(resolved.key);
226
+ if (!channel?.opened)
227
+ return;
228
+ const snapshot = resolved.snapshot?.channelId.toLowerCase() === channel.channelId.toLowerCase()
229
+ ? resolved.snapshot
230
+ : undefined;
231
+ const nextCumulative = channel.cumulativeAmount + readSessionChallengeAmount(challenge);
232
+ const snapshotRequired = snapshot ? BigInt(snapshot.requiredCumulative) : nextCumulative;
233
+ const requiredCumulative = snapshotRequired > nextCumulative ? snapshotRequired : nextCumulative;
234
+ const snapshotDeposit = snapshot ? BigInt(snapshot.deposit) : channel.deposit;
235
+ const deposit = snapshotDeposit > channel.deposit ? snapshotDeposit : channel.deposit;
236
+ if (requiredCumulative <= deposit && deposit === channel.deposit)
237
+ return;
238
+ const account = await resolveCredentialAccount(resolved, sessionContext, channel);
239
+ if (!canSignDescriptor(account, channel.descriptor))
240
+ return;
241
+ await topUpChannelIfNeeded({
242
+ challenge,
243
+ channel,
244
+ deposit,
245
+ fetch,
246
+ input,
247
+ requiredCumulative,
248
+ });
249
+ });
73
250
  return MethodResponse.register(method, async ({ challenge, credential, fetch, headers, input, refetch, response, signal }) => {
74
- if (!isTempoSessionChallenge(challenge))
251
+ if (!isTip1034SessionChallenge(challenge))
75
252
  return response;
76
253
  if (!isEventStream(response)) {
77
254
  const credentialContext = requireSessionCredentialContext(Credential.deserialize(credential).payload);
@@ -91,23 +268,17 @@ export function session(parameters = {}) {
91
268
  createSessionCredential: (challenge, context) => method.createCredential({ challenge, context }),
92
269
  fetch,
93
270
  getChannel: () => channel ?? null,
94
- managementInput,
95
- async topUpIfNeeded({ channelId, deposit, requiredCumulative }) {
96
- if (requiredCumulative <= deposit || !channel)
271
+ async topUpIfNeeded({ deposit, requiredCumulative }) {
272
+ if (!channel)
97
273
  return;
98
- const additionalDeposit = requiredCumulative - deposit;
99
- await postTopUp({
100
- additionalDeposit,
274
+ await topUpChannelIfNeeded({
101
275
  challenge,
102
276
  channel,
103
- channelId,
104
- createSessionCredential: (challenge, context) => method.createCredential({ challenge, context }),
277
+ deposit: channel.deposit > deposit ? channel.deposit : deposit,
105
278
  fetch,
106
279
  input,
280
+ requiredCumulative,
107
281
  });
108
- channel.deposit += additionalDeposit;
109
- await store.set(channel);
110
- sink.notifyUpdate(channel);
111
282
  },
112
283
  };
113
284
  return wrapSseResponse({
@@ -1 +1 @@
1
- {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/Session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,KAAK,eAAe,MAAM,6CAA6C,CAAA;AAC9E,OAAO,KAAK,cAAc,MAAM,4CAA4C,CAAA;AAC5E,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAKjD,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,SAAS,EACT,eAAe,GAGhB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAA;AAEhF,wFAAwF;AACxF,MAAM,YAAY,GAAG,IAAI,OAAO,EAA4C,CAAA;AAE5E,uFAAuF;AACvF,KAAK,UAAU,WAAW,CAAC,KAAmB,EAAE,GAAW;IACzD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAyB,CAAA;IACzE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,MAAmB,CAAA;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,GAAG,OAAO,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACvB,MAAM,QAAQ,CAAA;IACd,OAAO,GAAG,EAAE;QACV,MAAM,EAAE,CAAA;QACR,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,MAAoB,EACpB,eAAqF;IAErF,IAAI,CAAC;QACH,OAAO,CACL,eAAe,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;YAC3E,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC,gBAAgB,CACvE,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,OAAsC,EACtC,SAAgC,EAChC,MAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACrF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;YACxD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAA;QACvF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,CACL,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACrC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAA;QACvD,OAAO,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,CAAC,CAAC,IAAI,KAAK,CACZ,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,aAAiC,EAAE;IACzD,MAAM,EACJ,OAAO,EACP,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EACZ,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAC5B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,mBAAmB,EAC/B,WAAW,EAAE,oBAAoB,EACjC,eAAe,EACf,cAAc,GACf,GAAG,UAAU,CAAA;IACd,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QACnC,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACnD,MAAM,UAAU,GACd,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3F,MAAM,WAAW,GACf,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7F,MAAM,KAAK,GAAG,YAAY,IAAI,kBAAkB,EAAE,CAAA;IAClD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;IAEvF,MAAM,wBAAwB,GAAG,KAAK,EACpC,QAA0B,EAC1B,OAAsC,EACtC,KAA+B,EAC/B,EAAE;QACF,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC3D,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM;YAChC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU;gBAClB,qBAAqB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;QAChF,OAAO,CACL,CAAC,MAAM,cAAc,EAAE,CAAC;YACtB,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClF;SACF,CAAC,CAAC,IAAI,cAAc,CACtB,CAAA;IACH,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EACjC,QAA0B,EAC1B,OAAsC,EACtC,KAA+B,EAC/B,EAAE,CACF,cAAc,CAAC;QACb,OAAO,EAAE,MAAM,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;QACjE,KAAK;QACL,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;KACT,CAAC,CAAA;IAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;QAC9C,kBAAkB,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC;QAC3E,OAAO,EAAE,oBAAoB;QAC7B,KAAK,CAAC,gBAAgB,CAAC,UAAU;YAC/B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;YACzC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC;gBAC7C,SAAS;gBACT,cAAc;gBACd,SAAS;aACV,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YACtB,IAAI,CAAC;gBACH,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACzC,IAAI,IAAI,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;gBAChE,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpC,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;oBAChD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;oBAC/C,IAAI,SAAS,EAAE,SAAS,KAAK,KAAK,EAAE,SAAS,EAAE,CAAC;wBAC9C,KAAK,GAAG,SAAS,CAAA;wBACjB,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;4BAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;4BACvB,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;wBACvC,CAAC;wBACD,IAAI,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC9D,CAAC;gBACH,CAAC;gBACD,IAAI,WAAqC,CAAA;gBACzC,qEAAqE;gBACrE,oFAAoF;gBACpF,MAAM,cAAc,GAClB,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;oBAC7B,CAAC,CAAC;wBACE,KAAK,EAAE;4BACL,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;4BACpC,KAAK,CAAC,GAAG,CAAC,IAAkB;gCAC1B,WAAW,GAAG,IAAI,CAAA;4BACpB,CAAC;4BACD,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;yBAC3C;wBACD,YAAY,KAAI,CAAC;qBAClB;oBACH,CAAC,CAAC,IAAI,CAAA;gBACV,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,IAAI,EACJ,cAAc,EACd,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CACrF,CAAA;gBACD,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,SAAS,EACT,OAAO,EACP,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,OAAO,CACb,CAAA;gBACD,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,WAAW,CAAA;oBAC1B,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;wBACjC,MAAM,QAAQ,GACZ,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;wBAC/E,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;4BAAE,OAAO,KAAK,CAAA;wBAC3D,IAAI,CAAC;4BACH,IAAI,QAAQ,EAAE,CAAC;gCACb,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gCAC7C,IACE,CAAC,OAAO,EAAE,MAAM;oCAChB,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,EAClE,CAAC;oCACD,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oCACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gCAC3B,CAAC;4BACH,CAAC;4BACD,OAAO,IAAI,CAAA;wBACb,CAAC;gCAAS,CAAC;4BACT,OAAO,EAAE,CAAA;wBACX,CAAC;oBACH,CAAC,CAAA;gBACH,CAAC;;oBAAM,OAAO,EAAE,CAAA;gBAChB,OAAO,UAAU,CAAA;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAA;gBACT,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAClC,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,KAAK,EACL,kBAAkB,GAQnB,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QAC1E,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;YAC9C,OAAO,EAAE,YAAY;YACrB,UAAU;YACV,kBAAkB;YAClB,gBAAgB,EACd,SAAS,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;gBAC9C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAChD,WAAW;SACZ,CAAC,CAAA;QACF,IAAI,iBAAiB,GAAG,EAAE;YACxB,MAAM,SAAS,CAAC;gBACd,iBAAiB;gBACjB,SAAS;gBACT,OAAO;gBACP,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,uBAAuB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAC9C,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;gBACjD,KAAK;gBACL,KAAK;aACN,CAAC,CAAA;QACJ,MAAM,WAAW,GAAG,YAAY,GAAG,iBAAiB,CAAA;QACpD,IAAI,WAAW,KAAK,OAAO,CAAC,OAAO;YAAE,OAAM;QAC3C,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;QACpD,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9E,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;YAAE,OAAM;QACjD,MAAM,cAAc,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC9F,IAAI,gBAAgB,CAAC,cAAc,CAAC;YAAE,OAAM;QAC5C,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAA;QACxF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAM;QAC5B,MAAM,QAAQ,GACZ,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;YAC5E,CAAC,CAAC,QAAQ,CAAC,QAAQ;YACnB,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAA;QACvF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QACxF,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAA;QAChG,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;QAC7E,MAAM,OAAO,GAAG,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;QACrF,IAAI,kBAAkB,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO;YAAE,OAAM;QACxE,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;QACjF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;YAAE,OAAM;QAC3D,MAAM,oBAAoB,CAAC;YACzB,SAAS;YACT,OAAO;YACP,OAAO;YACP,KAAK;YACL,KAAK;YACL,kBAAkB;SACnB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,cAAc,CAAC,QAAQ,CAC5B,MAAM,EACN,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QACpF,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAA;QAC1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,+BAA+B,CACvD,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAC3C,CAAA;YACD,IACE,iBAAiB,CAAC,MAAM,KAAK,MAAM;gBACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAElE,OAAO,CAAC,MAAM,OAAO,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAA;YACxC,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,MAAM,UAAU,GAAG,CACjB,MAAM,uBAAuB,CAAC;YAC5B,SAAS;YACT,cAAc;YACd,SAAS;SACV,CAAC,CACH,CAAC,GAAG,CAAA;QACL,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG;YACb,6BAA6B,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAClD,sBAAsB,CAAC,gBAAgB,EAAE,UAAU,CAAC;YACtD,uBAAuB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAC9C,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YACjD,KAAK;YACL,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI;YACjC,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE;gBACjD,IAAI,CAAC,OAAO;oBAAE,OAAM;gBACpB,MAAM,oBAAoB,CAAC;oBACzB,SAAS;oBACT,OAAO;oBACP,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;oBAC9D,KAAK;oBACL,KAAK;oBACL,kBAAkB;iBACnB,CAAC,CAAA;YACJ,CAAC;SACyB,CAAA;QAE5B,OAAO,eAAe,CAAC;YACrB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;YACnF,SAAS,KAAI,CAAC;YACd,QAAQ;YACR,MAAM;SACP,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -4,7 +4,7 @@ import * as Account from '../../../viem/Account.js';
4
4
  import * as Client from '../../../viem/Client.js';
5
5
  import { type ChannelStore } from '../client/ChannelStore.js';
6
6
  import { session as sessionPlugin } from '../client/Session.js';
7
- import { type SessionReceipt } from '../precompile/Protocol.js';
7
+ import type { SessionReceipt } from '../precompile/Protocol.js';
8
8
  import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot } from '../Snapshot.js';
9
9
  import type { SessionState } from './Runtime.js';
10
10
  import { type TempoSessionChallenge } from './Transports.js';
@@ -64,6 +64,8 @@ export declare namespace sessionManager {
64
64
  const serializeSnapshot: typeof serializeSessionSnapshot;
65
65
  const deserializeSnapshot: typeof deserializeSessionSnapshot;
66
66
  type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
67
+ /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
68
+ autoSwap?: sessionPlugin.Parameters['autoSwap'];
67
69
  /** Enables same-route HEAD bootstrap from a server session snapshot before opening a new channel. */
68
70
  bootstrap?: boolean | undefined;
69
71
  /** Viem client instance. Shorthand for `getClient: () => client`. */
@@ -76,6 +78,11 @@ export declare namespace sessionManager {
76
78
  fetch?: typeof globalThis.fetch | undefined;
77
79
  /** Maximum deposit in human-readable units (e.g. `'10'` for 10 tokens). Converted to raw units via `decimals`. */
78
80
  maxDeposit?: string | undefined;
81
+ /**
82
+ * Preferred automatic top-up size in human-readable units. When omitted,
83
+ * a bounded server `suggestedDeposit` is preferred, then the exact shortfall.
84
+ */
85
+ topUpAmount?: string | undefined;
79
86
  /** Selects the account that signs session credentials. */
80
87
  resolveAccount?: sessionPlugin.ResolveAccount | undefined;
81
88
  /** Store for reusable session channels. Defaults to in-memory. */
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAO/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAIjD,OAAO,EAAgC,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE3F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAG/D,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC3F,OAAO,EACL,mBAAmB,IAAI,0BAA0B,EACjD,iBAAiB,IAAI,wBAAwB,EAC9C,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAYhD,OAAO,EAOL,KAAK,qBAAqB,EAE3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAA6C,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElG,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,0BAA0B,EAAE,KAAK,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAE7F,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACvC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAE5B,oGAAoG;IACpG,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7E,sGAAsG;IACtG,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9F,uGAAuG;IACvG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAChG,6HAA6H;IAC7H,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;IACnE,kGAAkG;IAClG,KAAK,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;CAC7C,CAAA;AAED,0CAA0C;AAC1C,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAA;AAEvD,yCAAyC;AACzC,MAAM,MAAM,8BAA8B,GAAG,sBAAsB,CAAA;AAEnE,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,8DAA8D;IAC9D,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,sDAAsD;IACtD,SAAS,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACvC,yCAAyC;IACzC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA;IACzB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAuED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,GAAG,cAAc,CAqrBpF;AAED,2CAA2C;AAC3C,yBAAiB,cAAc,CAAC;IACvB,MAAM,iBAAiB,iCAA2B,CAAA;IAClD,MAAM,mBAAmB,mCAA6B,CAAA;IAE7D,KAAY,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GACrD,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,qGAAqG;QACrG,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC/B,qEAAqE;QACrE,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1C,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,sDAAsD;QACtD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC5B,qFAAqF;QACrF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAC3C,kHAAkH;QAClH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,0DAA0D;QAC1D,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,GAAG,SAAS,CAAA;QACzD,kEAAkE;QAClE,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACvC,8EAA8E;QAC9E,SAAS,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAA;KAC7C,CAAA;CACJ"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/SessionManager.ts"],"names":[],"mappings":"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"}