mppx 0.8.12 → 0.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +16 -1
- package/dist/Errors.d.ts +10 -0
- package/dist/Errors.d.ts.map +1 -1
- package/dist/Errors.js +11 -2
- package/dist/Errors.js.map +1 -1
- package/dist/Method.d.ts +105 -3
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js +102 -2
- package/dist/Method.js.map +1 -1
- package/dist/cli/account.d.ts +88 -0
- package/dist/cli/account.d.ts.map +1 -1
- package/dist/cli/account.js +39 -9
- package/dist/cli/account.js.map +1 -1
- package/dist/cli/cli.d.ts +2 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +59 -2
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/sessions/Manager.d.ts +31 -0
- package/dist/cli/sessions/Manager.d.ts.map +1 -0
- package/dist/cli/sessions/Manager.js +56 -0
- package/dist/cli/sessions/Manager.js.map +1 -0
- package/dist/cli/sessions/commands.d.ts +36 -0
- package/dist/cli/sessions/commands.d.ts.map +1 -0
- package/dist/cli/sessions/commands.js +407 -0
- package/dist/cli/sessions/commands.js.map +1 -0
- package/dist/cli/sessions/request.d.ts +35 -0
- package/dist/cli/sessions/request.d.ts.map +1 -0
- package/dist/cli/sessions/request.js +271 -0
- package/dist/cli/sessions/request.js.map +1 -0
- package/dist/cli/sessions/store.d.ts +134 -0
- package/dist/cli/sessions/store.d.ts.map +1 -0
- package/dist/cli/sessions/store.js +723 -0
- package/dist/cli/sessions/store.js.map +1 -0
- package/dist/cli/utils.d.ts +2 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +12 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/cli/validate/index.d.ts.map +1 -1
- package/dist/cli/validate/index.js +12 -6
- package/dist/cli/validate/index.js.map +1 -1
- package/dist/cli/validate/messages.d.ts +2 -0
- package/dist/cli/validate/messages.d.ts.map +1 -0
- package/dist/cli/validate/messages.js +8 -0
- package/dist/cli/validate/messages.js.map +1 -0
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +12 -2
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/client/internal/MethodChallenge.d.ts +17 -0
- package/dist/client/internal/MethodChallenge.d.ts.map +1 -0
- package/dist/client/internal/MethodChallenge.js +11 -0
- package/dist/client/internal/MethodChallenge.js.map +1 -0
- package/dist/client/node.d.ts +29 -0
- package/dist/client/node.d.ts.map +1 -0
- package/dist/client/node.js +177 -0
- package/dist/client/node.js.map +1 -0
- package/dist/internal/types.d.ts +24 -0
- package/dist/internal/types.d.ts.map +1 -1
- package/dist/server/Mppx.d.ts +23 -4
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +91 -82
- package/dist/server/Mppx.js.map +1 -1
- package/dist/stripe/server/Charge.d.ts +8 -4
- package/dist/stripe/server/Charge.d.ts.map +1 -1
- package/dist/stripe/server/Charge.js.map +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +2 -1
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +1 -0
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +7 -2
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/internal/types.d.ts +10 -1
- package/dist/tempo/internal/types.d.ts.map +1 -1
- package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -1
- package/dist/tempo/legacy/client/ChannelOps.js +2 -1
- package/dist/tempo/legacy/client/ChannelOps.js.map +1 -1
- package/dist/tempo/legacy/client/Session.d.ts +2 -2
- package/dist/tempo/legacy/server/Session.d.ts +3 -3
- package/dist/tempo/legacy/server/Session.d.ts.map +1 -1
- package/dist/tempo/legacy/server/Session.js.map +1 -1
- package/dist/tempo/server/Charge.d.ts +40 -78
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +289 -209
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +13 -23
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +6 -2
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Relay.d.ts +48 -0
- package/dist/tempo/server/Relay.d.ts.map +1 -0
- package/dist/tempo/server/Relay.js +177 -0
- package/dist/tempo/server/Relay.js.map +1 -0
- package/dist/tempo/server/SponsorBudget.d.ts +59 -0
- package/dist/tempo/server/SponsorBudget.d.ts.map +1 -0
- package/dist/tempo/server/SponsorBudget.js +144 -0
- package/dist/tempo/server/SponsorBudget.js.map +1 -0
- package/dist/tempo/server/Subscription.d.ts +3 -2
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/Subscription.js.map +1 -1
- package/dist/tempo/server/index.d.ts +1 -1
- package/dist/tempo/server/index.d.ts.map +1 -1
- package/dist/tempo/server/index.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/session/Snapshot.d.ts +9 -0
- package/dist/tempo/session/Snapshot.d.ts.map +1 -1
- package/dist/tempo/session/Snapshot.js +6 -0
- package/dist/tempo/session/Snapshot.js.map +1 -1
- package/dist/tempo/session/client/ChannelOps.d.ts +7 -1
- package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
- package/dist/tempo/session/client/ChannelOps.js +17 -3
- package/dist/tempo/session/client/ChannelOps.js.map +1 -1
- package/dist/tempo/session/client/CredentialState.d.ts +26 -2
- package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
- package/dist/tempo/session/client/CredentialState.js +99 -16
- package/dist/tempo/session/client/CredentialState.js.map +1 -1
- package/dist/tempo/session/client/Runtime.d.ts +8 -0
- package/dist/tempo/session/client/Runtime.d.ts.map +1 -1
- package/dist/tempo/session/client/Runtime.js +17 -0
- package/dist/tempo/session/client/Runtime.js.map +1 -1
- package/dist/tempo/session/client/Session.d.ts +16 -6
- package/dist/tempo/session/client/Session.d.ts.map +1 -1
- package/dist/tempo/session/client/Session.js +93 -36
- package/dist/tempo/session/client/Session.js.map +1 -1
- package/dist/tempo/session/client/SessionManager.d.ts +10 -3
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/session/client/SessionManager.js +176 -50
- package/dist/tempo/session/client/SessionManager.js.map +1 -1
- package/dist/tempo/session/client/Transports.d.ts +18 -7
- package/dist/tempo/session/client/Transports.d.ts.map +1 -1
- package/dist/tempo/session/client/Transports.js +81 -33
- package/dist/tempo/session/client/Transports.js.map +1 -1
- package/dist/tempo/session/client/internal/SessionManager.d.ts +19 -0
- package/dist/tempo/session/client/internal/SessionManager.d.ts.map +1 -0
- package/dist/tempo/session/client/internal/SessionManager.js +13 -0
- package/dist/tempo/session/client/internal/SessionManager.js.map +1 -0
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Chain.js +109 -12
- package/dist/tempo/session/precompile/Chain.js.map +1 -1
- package/dist/tempo/session/precompile/Channel.d.ts +2 -0
- package/dist/tempo/session/precompile/Channel.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Channel.js +4 -0
- package/dist/tempo/session/precompile/Channel.js.map +1 -1
- package/dist/tempo/session/server/CredentialVerification.d.ts +3 -0
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
- package/dist/tempo/session/server/CredentialVerification.js +14 -0
- package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
- package/dist/tempo/session/server/MeteredStream.d.ts +7 -1
- package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -1
- package/dist/tempo/session/server/MeteredStream.js +5 -4
- package/dist/tempo/session/server/MeteredStream.js.map +1 -1
- package/dist/tempo/session/server/RequestState.d.ts +5 -1
- package/dist/tempo/session/server/RequestState.d.ts.map +1 -1
- package/dist/tempo/session/server/RequestState.js +13 -5
- package/dist/tempo/session/server/RequestState.js.map +1 -1
- package/dist/tempo/session/server/Session.d.ts +21 -6
- package/dist/tempo/session/server/Session.d.ts.map +1 -1
- package/dist/tempo/session/server/Session.js +4 -1
- package/dist/tempo/session/server/Session.js.map +1 -1
- package/dist/tempo/session/server/Settlement.d.ts +20 -0
- package/dist/tempo/session/server/Settlement.d.ts.map +1 -1
- package/dist/tempo/session/server/Settlement.js +20 -0
- package/dist/tempo/session/server/Settlement.js.map +1 -1
- package/dist/tempo/session/server/Ws.d.ts +2 -0
- package/dist/tempo/session/server/Ws.d.ts.map +1 -1
- package/dist/tempo/session/server/Ws.js.map +1 -1
- package/dist/tempo/session/server/index.d.ts +1 -1
- package/dist/tempo/session/server/index.d.ts.map +1 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts +21 -21
- package/dist/validation/core.d.ts.map +1 -1
- package/dist/validation/core.js +6 -2
- package/dist/validation/core.js.map +1 -1
- package/dist/viem/Client.d.ts.map +1 -1
- package/dist/viem/Client.js +24 -17
- package/dist/viem/Client.js.map +1 -1
- package/package.json +6 -1
- package/src/Errors.test.ts +23 -0
- package/src/Errors.ts +21 -2
- package/src/Method.test.ts +102 -1
- package/src/Method.ts +241 -5
- package/src/cli/account.ts +45 -10
- package/src/cli/cli.test.ts +165 -70
- package/src/cli/cli.ts +67 -2
- package/src/cli/mcp.test.ts +11 -0
- package/src/cli/sessions/Manager.test.ts +249 -0
- package/src/cli/sessions/Manager.ts +93 -0
- package/src/cli/sessions/commands.ts +444 -0
- package/src/cli/sessions/request.test.ts +51 -0
- package/src/cli/sessions/request.ts +353 -0
- package/src/cli/sessions/store.test.ts +581 -0
- package/src/cli/sessions/store.ts +940 -0
- package/src/cli/utils.test.ts +23 -0
- package/src/cli/utils.ts +10 -0
- package/src/cli/validate/index.ts +12 -14
- package/src/cli/validate/messages.ts +7 -0
- package/src/cli/validate.test.ts +38 -5
- package/src/client/Mppx.test-d.ts +3 -3
- package/src/client/internal/Fetch.ts +16 -7
- package/src/client/internal/MethodChallenge.ts +30 -0
- package/src/client/node.test.ts +115 -0
- package/src/client/node.ts +247 -0
- package/src/internal/types.test-d.ts +21 -0
- package/src/internal/types.ts +33 -0
- package/src/server/Mppx.test-d.ts +44 -0
- package/src/server/Mppx.test.ts +205 -0
- package/src/server/Mppx.ts +167 -103
- package/src/stripe/Methods.test.ts +10 -0
- package/src/stripe/server/Charge.test-d.ts +66 -0
- package/src/stripe/server/Charge.ts +8 -5
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/PublicExports.test-d.ts +20 -0
- package/src/tempo/internal/fee-payer.ts +7 -3
- package/src/tempo/internal/types.ts +13 -2
- package/src/tempo/legacy/client/ChannelOps.test.ts +7 -0
- package/src/tempo/legacy/client/ChannelOps.ts +2 -1
- package/src/tempo/legacy/server/Defaults.test-d.ts +9 -0
- package/src/tempo/legacy/server/Session.ts +6 -5
- package/src/tempo/server/Charge.test.ts +337 -63
- package/src/tempo/server/Charge.ts +440 -270
- package/src/tempo/server/Methods.ts +16 -4
- package/src/tempo/server/Relay.test.ts +523 -0
- package/src/tempo/server/Relay.ts +288 -0
- package/src/tempo/server/SponsorBudget.test.ts +125 -0
- package/src/tempo/server/SponsorBudget.ts +213 -0
- package/src/tempo/server/Subscription.ts +6 -4
- package/src/tempo/server/index.ts +5 -1
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/session/README.md +201 -0
- package/src/tempo/session/Snapshot.ts +21 -0
- package/src/tempo/session/client/ChannelOps.test.ts +55 -0
- package/src/tempo/session/client/ChannelOps.ts +21 -3
- package/src/tempo/session/client/CredentialState.test.ts +2 -2
- package/src/tempo/session/client/CredentialState.ts +159 -16
- package/src/tempo/session/client/Runtime.test.ts +12 -0
- package/src/tempo/session/client/Runtime.ts +22 -0
- package/src/tempo/session/client/Session.test.ts +238 -5
- package/src/tempo/session/client/Session.ts +130 -41
- package/src/tempo/session/client/SessionManager.test.ts +239 -8
- package/src/tempo/session/client/SessionManager.ts +204 -54
- package/src/tempo/session/client/Transports.test.ts +181 -8
- package/src/tempo/session/client/Transports.ts +127 -45
- package/src/tempo/session/client/internal/SessionManager.ts +36 -0
- package/src/tempo/session/precompile/Chain.integration.test.ts +19 -1
- package/src/tempo/session/precompile/Chain.test.ts +223 -10
- package/src/tempo/session/precompile/Chain.ts +119 -12
- package/src/tempo/session/precompile/Channel.test.ts +9 -0
- package/src/tempo/session/precompile/Channel.ts +5 -0
- package/src/tempo/session/server/CredentialVerification.ts +18 -1
- package/src/tempo/session/server/MeteredStream.ts +12 -5
- package/src/tempo/session/server/RequestState.test.ts +47 -4
- package/src/tempo/session/server/RequestState.ts +15 -8
- package/src/tempo/session/server/Session.test.ts +461 -0
- package/src/tempo/session/server/Session.ts +31 -8
- package/src/tempo/session/server/Settlement.ts +45 -0
- package/src/tempo/session/server/Ws.test.ts +113 -0
- package/src/tempo/session/server/Ws.ts +2 -0
- package/src/tempo/session/server/index.ts +2 -0
- package/src/validation/core.ts +7 -1
- package/src/viem/Client.test.ts +44 -1
- package/src/viem/Client.ts +31 -17
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
import { parseUnits } from 'viem';
|
|
2
|
+
import { tempo as tempo_chain } from 'viem/chains';
|
|
2
3
|
import * as Challenge from '../../../Challenge.js';
|
|
3
4
|
import * as Fetch from '../../../client/internal/Fetch.js';
|
|
5
|
+
import * as MethodChallenge from '../../../client/internal/MethodChallenge.js';
|
|
4
6
|
import * as MethodResponse from '../../../client/internal/MethodResponse.js';
|
|
5
7
|
import * as Constants from '../../../Constants.js';
|
|
8
|
+
import * as Account from '../../../viem/Account.js';
|
|
9
|
+
import * as Client from '../../../viem/Client.js';
|
|
6
10
|
import { charge as chargePlugin } from '../../client/Charge.js';
|
|
11
|
+
import * as defaults from '../../internal/defaults.js';
|
|
7
12
|
import { createChannelStore, entryKey } from '../client/ChannelStore.js';
|
|
13
|
+
import { hydrateSessionSnapshot } from '../client/CredentialState.js';
|
|
8
14
|
import { session as sessionPlugin } from '../client/Session.js';
|
|
15
|
+
import * as Channel from '../precompile/Channel.js';
|
|
9
16
|
import { deserializeSessionReceipt } from '../precompile/Protocol.js';
|
|
10
|
-
import { readSessionChallengeAmount } from '../precompile/Protocol.js';
|
|
11
17
|
import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot, } from '../Snapshot.js';
|
|
18
|
+
import { registerSessionManagerInternals } from './internal/SessionManager.js';
|
|
12
19
|
import { createSessionReceiptCoordinator } from './ReceiptCoordinator.js';
|
|
13
20
|
import { resolveCloseTarget } from './Runtime.js';
|
|
14
21
|
import { assertVoucherWithinLocalLimit as assertVoucherWithinLocalAuthorization } from './Runtime.js';
|
|
15
|
-
import { applySessionReceiptToRuntime, captureRuntimeSnapshot as captureRuntimeStateSnapshot, computeFallbackCloseAmount, createSessionManagerRuntime, dispatchSessionEvent, restoreCumulativeAuthorization, restoreRuntimeSnapshot as restoreRuntimeStateSnapshot, } from './Runtime.js';
|
|
22
|
+
import { applySessionReceiptToRuntime, captureRuntimeSnapshot as captureRuntimeStateSnapshot, computeFallbackCloseAmount, createSessionManagerRuntime, dispatchSessionEvent, restoreCumulativeAuthorization, restoreRuntimeSnapshot as restoreRuntimeStateSnapshot, resolveAutomaticTopUp, } from './Runtime.js';
|
|
16
23
|
import { closeSocketSession } from './Runtime.js';
|
|
17
|
-
import { closeHttpSession,
|
|
24
|
+
import { closeHttpSession, getSessionSnapshot, isTempoSessionChallenge, postTopUp, retryHttpPaymentRequired, webSocketProbeUrl, } from './Transports.js';
|
|
18
25
|
import { WebSocketReadyState, } from './Transports.js';
|
|
19
|
-
import { openSseSession } from './Transports.js';
|
|
26
|
+
import { consumeSseSessionResponse, openSseSession } from './Transports.js';
|
|
20
27
|
import { applyTopUpResult, resolveManualTopUp } from './Transports.js';
|
|
21
28
|
import { openWebSocketSession, prepareWebSocketSession, } from './Transports.js';
|
|
22
29
|
export { computeFallbackCloseAmount } from './Runtime.js';
|
|
@@ -35,18 +42,6 @@ function isZeroAmountChargeChallenge(challenge) {
|
|
|
35
42
|
return false;
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
|
-
/** Builds a reusable channel entry from a server session snapshot header. */
|
|
39
|
-
function entryFromSnapshot(snapshot) {
|
|
40
|
-
return {
|
|
41
|
-
channelId: snapshot.channelId,
|
|
42
|
-
cumulativeAmount: BigInt(snapshot.acceptedCumulative),
|
|
43
|
-
deposit: BigInt(snapshot.deposit),
|
|
44
|
-
descriptor: snapshot.descriptor,
|
|
45
|
-
escrow: snapshot.escrow,
|
|
46
|
-
chainId: snapshot.chainId,
|
|
47
|
-
opened: true,
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
45
|
function requestInitWithSessionHint(input, init, channelId) {
|
|
51
46
|
if (!channelId)
|
|
52
47
|
return init;
|
|
@@ -73,6 +68,7 @@ function resolveSessionManagerConfig(parameters) {
|
|
|
73
68
|
decimals,
|
|
74
69
|
fetch: parameters.fetch ?? globalThis.fetch.bind(globalThis),
|
|
75
70
|
maxVoucherCumulative: parameters.maxDeposit !== undefined ? parseUnits(parameters.maxDeposit, decimals) : null,
|
|
71
|
+
topUpAmount: parameters.topUpAmount !== undefined ? parseUnits(parameters.topUpAmount, decimals) : null,
|
|
76
72
|
WebSocket,
|
|
77
73
|
};
|
|
78
74
|
}
|
|
@@ -88,6 +84,12 @@ function resolveSessionManagerConfig(parameters) {
|
|
|
88
84
|
*/
|
|
89
85
|
export function sessionManager(parameters) {
|
|
90
86
|
const config = resolveSessionManagerConfig(parameters);
|
|
87
|
+
const getClient = Client.getResolver({
|
|
88
|
+
chain: tempo_chain,
|
|
89
|
+
getClient: parameters.client ? () => parameters.client : parameters.getClient,
|
|
90
|
+
rpcUrl: defaults.rpcUrl,
|
|
91
|
+
});
|
|
92
|
+
const getAccount = Account.getResolver({ account: parameters.account });
|
|
91
93
|
const runtime = createSessionManagerRuntime();
|
|
92
94
|
const receipts = createSessionReceiptCoordinator({
|
|
93
95
|
getSocketSession: () => runtime.socketSession,
|
|
@@ -107,7 +109,7 @@ export function sessionManager(parameters) {
|
|
|
107
109
|
const entry = await getReusable(key);
|
|
108
110
|
if (entry && channelUse) {
|
|
109
111
|
channelUse.seenExisting.add(key);
|
|
110
|
-
if (!channelUse.created.has(key))
|
|
112
|
+
if (!channelUse.committed && !channelUse.created.has(key))
|
|
111
113
|
channelUse.resumed ??= entry;
|
|
112
114
|
}
|
|
113
115
|
return entry;
|
|
@@ -154,13 +156,29 @@ export function sessionManager(parameters) {
|
|
|
154
156
|
function dispatch(event) {
|
|
155
157
|
return dispatchSessionEvent(runtime, event);
|
|
156
158
|
}
|
|
159
|
+
function commitDurableTopUp(entry) {
|
|
160
|
+
const use = channelUse;
|
|
161
|
+
const baseline = use?.committed?.channel?.entry ?? use?.resumed;
|
|
162
|
+
if (!use ||
|
|
163
|
+
baseline?.channelId.toLowerCase() !== entry.channelId.toLowerCase() ||
|
|
164
|
+
entry.deposit <= baseline.deposit)
|
|
165
|
+
return;
|
|
166
|
+
use.resumed = undefined;
|
|
167
|
+
use.committed = captureRuntimeStateSnapshot({
|
|
168
|
+
channel: runtime.channel,
|
|
169
|
+
spent: runtime.spent,
|
|
170
|
+
state: runtime.state,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
157
173
|
const method = sessionPlugin({
|
|
158
174
|
account: parameters.account,
|
|
175
|
+
autoSwap: parameters.autoSwap,
|
|
159
176
|
getClient: parameters.client ? () => parameters.client : parameters.getClient,
|
|
160
177
|
resolveAccount: parameters.resolveAccount,
|
|
161
178
|
escrow: parameters.escrow,
|
|
162
179
|
decimals: config.decimals,
|
|
163
180
|
maxDeposit: parameters.maxDeposit,
|
|
181
|
+
topUpAmount: parameters.topUpAmount,
|
|
164
182
|
channelStore: store,
|
|
165
183
|
onChannelUpdate(entry) {
|
|
166
184
|
if (entry.channelId !== runtime.channel?.channelId)
|
|
@@ -175,6 +193,7 @@ export function sessionManager(parameters) {
|
|
|
175
193
|
units: 0,
|
|
176
194
|
});
|
|
177
195
|
}
|
|
196
|
+
commitDurableTopUp(entry);
|
|
178
197
|
},
|
|
179
198
|
});
|
|
180
199
|
MethodResponse.unregister(method);
|
|
@@ -200,16 +219,6 @@ export function sessionManager(parameters) {
|
|
|
200
219
|
use.challengesReceived++;
|
|
201
220
|
runtime.lastChallenge = challenge;
|
|
202
221
|
dispatch({ type: 'challengeReceived', challengeId: challenge.id });
|
|
203
|
-
if (runtime.channel?.opened && runtime.lastUrl) {
|
|
204
|
-
const requiredCumulative = runtime.channel.cumulativeAmount + readSessionChallengeAmount(challenge);
|
|
205
|
-
await topUpIfNeeded({
|
|
206
|
-
challenge,
|
|
207
|
-
input: runtime.lastUrl,
|
|
208
|
-
channelId: runtime.channel.channelId,
|
|
209
|
-
deposit: runtime.channel.deposit,
|
|
210
|
-
requiredCumulative,
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
222
|
return undefined;
|
|
214
223
|
},
|
|
215
224
|
});
|
|
@@ -243,8 +252,22 @@ export function sessionManager(parameters) {
|
|
|
243
252
|
const header = response.headers.get(Constants.Headers.paymentSessionSnapshot);
|
|
244
253
|
if (!header)
|
|
245
254
|
return undefined;
|
|
246
|
-
const
|
|
255
|
+
const snapshot = deserializeSessionSnapshot(header);
|
|
256
|
+
const client = await getClient({ chainId: snapshot.chainId });
|
|
257
|
+
const defaultAccount = getAccount(client);
|
|
258
|
+
const account = (await parameters.resolveAccount?.({
|
|
259
|
+
account: defaultAccount,
|
|
260
|
+
chainId: snapshot.chainId,
|
|
261
|
+
operation: {
|
|
262
|
+
authority: Channel.resolveAuthorizedSigner(snapshot.descriptor),
|
|
263
|
+
kind: 'authorizePaymentChannel',
|
|
264
|
+
},
|
|
265
|
+
})) ?? defaultAccount;
|
|
266
|
+
const { entry, spent } = await hydrateSessionSnapshot({ account, client, snapshot });
|
|
267
|
+
assertVoucherWithinLocalLimit(entry.cumulativeAmount);
|
|
247
268
|
await Promise.resolve(store.set(entry)).catch(() => undefined);
|
|
269
|
+
runtime.channel = entry;
|
|
270
|
+
runtime.spent = spent;
|
|
248
271
|
return entry;
|
|
249
272
|
}
|
|
250
273
|
async function bootstrapSession(input, init) {
|
|
@@ -306,8 +329,53 @@ export function sessionManager(parameters) {
|
|
|
306
329
|
tickCost: currentSocket?.tickCost,
|
|
307
330
|
});
|
|
308
331
|
}
|
|
309
|
-
function
|
|
310
|
-
const
|
|
332
|
+
function validateCloseSnapshot(channel, challenge) {
|
|
333
|
+
const snapshot = getSessionSnapshot(challenge);
|
|
334
|
+
if (!snapshot)
|
|
335
|
+
return undefined;
|
|
336
|
+
const computedSnapshotId = Channel.computeId({
|
|
337
|
+
...snapshot.descriptor,
|
|
338
|
+
chainId: snapshot.chainId,
|
|
339
|
+
escrow: snapshot.escrow,
|
|
340
|
+
});
|
|
341
|
+
if (computedSnapshotId.toLowerCase() !== snapshot.channelId.toLowerCase()) {
|
|
342
|
+
throw new Error('close snapshot descriptor does not match its channel ID');
|
|
343
|
+
}
|
|
344
|
+
if (snapshot.channelId.toLowerCase() !== channel.channelId.toLowerCase()) {
|
|
345
|
+
throw new Error('close snapshot channel ID does not match local session');
|
|
346
|
+
}
|
|
347
|
+
if (snapshot.chainId !== channel.chainId ||
|
|
348
|
+
snapshot.escrow.toLowerCase() !== channel.escrow.toLowerCase()) {
|
|
349
|
+
throw new Error('close snapshot payment scope does not match local session');
|
|
350
|
+
}
|
|
351
|
+
const acceptedCumulative = BigInt(snapshot.acceptedCumulative);
|
|
352
|
+
const snapshotSpent = BigInt(snapshot.spent);
|
|
353
|
+
if (acceptedCumulative < 0n || snapshotSpent < 0n) {
|
|
354
|
+
throw new Error('close snapshot amounts must not be negative');
|
|
355
|
+
}
|
|
356
|
+
if (snapshotSpent > acceptedCumulative) {
|
|
357
|
+
throw new Error('close snapshot spent exceeds accepted cumulative amount');
|
|
358
|
+
}
|
|
359
|
+
if (acceptedCumulative > channel.cumulativeAmount) {
|
|
360
|
+
throw new Error('close snapshot accepted cumulative exceeds local voucher state');
|
|
361
|
+
}
|
|
362
|
+
return { acceptedCumulative, spent: snapshotSpent };
|
|
363
|
+
}
|
|
364
|
+
function applyCloseSnapshot(target, challenge) {
|
|
365
|
+
const snapshot = validateCloseSnapshot(target.channel, challenge);
|
|
366
|
+
if (!snapshot)
|
|
367
|
+
return;
|
|
368
|
+
const { acceptedCumulative, spent } = snapshot;
|
|
369
|
+
if (runtime.spent > acceptedCumulative) {
|
|
370
|
+
throw new Error('close snapshot accepted cumulative is below locally confirmed spend');
|
|
371
|
+
}
|
|
372
|
+
if (spent > runtime.spent)
|
|
373
|
+
runtime.spent = spent;
|
|
374
|
+
}
|
|
375
|
+
function getValidatedFallbackCloseAmount(target, challenge = target.challenge, applySnapshot = false) {
|
|
376
|
+
if (applySnapshot)
|
|
377
|
+
applyCloseSnapshot(target, challenge);
|
|
378
|
+
const closeAmount = getFallbackCloseAmount(challenge, target.channelId);
|
|
311
379
|
if (closeAmount > target.channel.cumulativeAmount) {
|
|
312
380
|
throw new Error('fallback close amount exceeds local voucher state');
|
|
313
381
|
}
|
|
@@ -321,8 +389,9 @@ export function sessionManager(parameters) {
|
|
|
321
389
|
});
|
|
322
390
|
}
|
|
323
391
|
async function postTopUpAndApply(parameters) {
|
|
392
|
+
const { knownDeposit, ...topUp } = parameters;
|
|
324
393
|
const receipt = await postTopUp({
|
|
325
|
-
...
|
|
394
|
+
...topUp,
|
|
326
395
|
channel: runtime.channel,
|
|
327
396
|
createSessionCredential,
|
|
328
397
|
fetch: config.fetch,
|
|
@@ -334,10 +403,12 @@ export function sessionManager(parameters) {
|
|
|
334
403
|
channelId: parameters.channelId,
|
|
335
404
|
challengeId: runtime.lastChallenge?.id,
|
|
336
405
|
currentState: runtime.state,
|
|
406
|
+
knownDeposit,
|
|
337
407
|
receipt,
|
|
338
408
|
spent: runtime.spent,
|
|
339
409
|
});
|
|
340
410
|
if (applied?.channel && runtime.lastChallenge) {
|
|
411
|
+
await store.set(applied.channel);
|
|
341
412
|
dispatch({
|
|
342
413
|
type: 'activated',
|
|
343
414
|
challengeId: runtime.lastChallenge.id,
|
|
@@ -345,18 +416,30 @@ export function sessionManager(parameters) {
|
|
|
345
416
|
spent: runtime.spent.toString(),
|
|
346
417
|
units: runtime.state.status === 'active' ? runtime.state.units : 0,
|
|
347
418
|
});
|
|
419
|
+
commitDurableTopUp(applied.channel);
|
|
348
420
|
}
|
|
349
421
|
return receipt;
|
|
350
422
|
}
|
|
351
423
|
async function topUpIfNeeded(parameters) {
|
|
352
|
-
|
|
424
|
+
const channelDeposit = runtime.channel?.channelId === parameters.channelId ? runtime.channel.deposit : 0n;
|
|
425
|
+
const deposit = channelDeposit > parameters.deposit ? channelDeposit : parameters.deposit;
|
|
426
|
+
const additionalDeposit = resolveAutomaticTopUp({
|
|
427
|
+
deposit,
|
|
428
|
+
maxDeposit: config.maxVoucherCumulative,
|
|
429
|
+
requiredCumulative: parameters.requiredCumulative,
|
|
430
|
+
suggestedDeposit: parameters.challenge.request.suggestedDeposit === undefined
|
|
431
|
+
? undefined
|
|
432
|
+
: BigInt(parameters.challenge.request.suggestedDeposit),
|
|
433
|
+
topUpAmount: config.topUpAmount,
|
|
434
|
+
});
|
|
435
|
+
if (additionalDeposit === 0n)
|
|
353
436
|
return;
|
|
354
|
-
assertVoucherWithinLocalLimit(parameters.requiredCumulative);
|
|
355
437
|
await postTopUpAndApply({
|
|
356
438
|
challenge: parameters.challenge,
|
|
357
439
|
input: parameters.input,
|
|
358
440
|
channelId: parameters.channelId,
|
|
359
|
-
additionalDeposit
|
|
441
|
+
additionalDeposit,
|
|
442
|
+
knownDeposit: deposit,
|
|
360
443
|
});
|
|
361
444
|
}
|
|
362
445
|
function restoreCumulative(channelId, cumulativeAmount) {
|
|
@@ -409,6 +492,7 @@ export function sessionManager(parameters) {
|
|
|
409
492
|
});
|
|
410
493
|
const use = {
|
|
411
494
|
challengesReceived: 0,
|
|
495
|
+
committed: undefined,
|
|
412
496
|
created: new Map(),
|
|
413
497
|
previous,
|
|
414
498
|
seenExisting: new Set(),
|
|
@@ -439,7 +523,7 @@ export function sessionManager(parameters) {
|
|
|
439
523
|
response = await wrappedFetch(input, effectiveInit);
|
|
440
524
|
}
|
|
441
525
|
catch (error) {
|
|
442
|
-
restoreRuntime(previous);
|
|
526
|
+
restoreRuntime(use.committed ?? previous);
|
|
443
527
|
if (await retryWithoutResumed())
|
|
444
528
|
continue;
|
|
445
529
|
throw error;
|
|
@@ -466,7 +550,7 @@ export function sessionManager(parameters) {
|
|
|
466
550
|
}
|
|
467
551
|
}
|
|
468
552
|
if (!attemptedHttpManagement && !paymentResponse.ok && !paymentResponse.receipt) {
|
|
469
|
-
restoreRuntime(previous);
|
|
553
|
+
restoreRuntime(use.committed ?? previous);
|
|
470
554
|
if (await retryWithoutResumed())
|
|
471
555
|
continue;
|
|
472
556
|
return paymentResponse;
|
|
@@ -483,6 +567,7 @@ export function sessionManager(parameters) {
|
|
|
483
567
|
createSessionCredential,
|
|
484
568
|
fetch: config.fetch,
|
|
485
569
|
lastUrl: runtime.lastUrl,
|
|
570
|
+
resolveSignedCloseAmount: (challenge) => getValidatedFallbackCloseAmount(target, challenge, true),
|
|
486
571
|
signedCloseAmount: getValidatedFallbackCloseAmount(target),
|
|
487
572
|
setChallenge(challenge) {
|
|
488
573
|
runtime.lastChallenge = challenge;
|
|
@@ -496,6 +581,18 @@ export function sessionManager(parameters) {
|
|
|
496
581
|
}
|
|
497
582
|
return receipt;
|
|
498
583
|
}
|
|
584
|
+
const sseDriver = {
|
|
585
|
+
createSessionCredential,
|
|
586
|
+
doFetch,
|
|
587
|
+
fetch: config.fetch,
|
|
588
|
+
getChannel: () => runtime.channel,
|
|
589
|
+
getChallenge: () => runtime.lastChallenge,
|
|
590
|
+
assertVoucherWithinLocalLimit,
|
|
591
|
+
acceptReceipt(receipt) {
|
|
592
|
+
updateSpentFromReceipt(receipt);
|
|
593
|
+
},
|
|
594
|
+
topUpIfNeeded,
|
|
595
|
+
};
|
|
499
596
|
const self = {
|
|
500
597
|
get channelId() {
|
|
501
598
|
return runtime.channel?.channelId;
|
|
@@ -527,19 +624,7 @@ export function sessionManager(parameters) {
|
|
|
527
624
|
});
|
|
528
625
|
},
|
|
529
626
|
async sse(input, init) {
|
|
530
|
-
return openSseSession(input, init,
|
|
531
|
-
createSessionCredential,
|
|
532
|
-
doFetch,
|
|
533
|
-
fetch: config.fetch,
|
|
534
|
-
getChannel: () => runtime.channel,
|
|
535
|
-
getChallenge: () => runtime.lastChallenge,
|
|
536
|
-
assertVoucherWithinLocalLimit,
|
|
537
|
-
managementInput,
|
|
538
|
-
acceptReceipt(receipt) {
|
|
539
|
-
updateSpentFromReceipt(receipt);
|
|
540
|
-
},
|
|
541
|
-
topUpIfNeeded,
|
|
542
|
-
});
|
|
627
|
+
return openSseSession(input, init, sseDriver);
|
|
543
628
|
},
|
|
544
629
|
async ws(input, init) {
|
|
545
630
|
if (!config.WebSocket) {
|
|
@@ -551,7 +636,16 @@ export function sessionManager(parameters) {
|
|
|
551
636
|
// Cold starts resume from `channelStore` after the probe's 402.
|
|
552
637
|
const liveHint = runtime.channel?.opened ? runtime.channel.channelId : undefined;
|
|
553
638
|
const prepared = await prepareWebSocketSession({
|
|
554
|
-
createSessionCredential,
|
|
639
|
+
async createSessionCredential(challenge, context) {
|
|
640
|
+
runtime.lastChallenge = challenge;
|
|
641
|
+
await MethodChallenge.handle(method, {
|
|
642
|
+
challenge,
|
|
643
|
+
context,
|
|
644
|
+
fetch: config.fetch,
|
|
645
|
+
input: probeUrl,
|
|
646
|
+
});
|
|
647
|
+
return createSessionCredential(challenge, context);
|
|
648
|
+
},
|
|
555
649
|
fetch: config.fetch,
|
|
556
650
|
input,
|
|
557
651
|
onProbeUrl(httpUrl) {
|
|
@@ -612,6 +706,38 @@ export function sessionManager(parameters) {
|
|
|
612
706
|
return closeHttpSessionAndApply(target);
|
|
613
707
|
},
|
|
614
708
|
};
|
|
709
|
+
registerSessionManagerInternals(self, {
|
|
710
|
+
consumeSseResponse(input, response, options) {
|
|
711
|
+
return consumeSseSessionResponse(input, response, options, sseDriver);
|
|
712
|
+
},
|
|
713
|
+
rehydrate({ channel, challenge, input, spent }) {
|
|
714
|
+
if (!channel.opened)
|
|
715
|
+
throw new Error('Cannot restore a closed session channel.');
|
|
716
|
+
if (!isTempoSessionChallenge(challenge)) {
|
|
717
|
+
throw new Error('Cannot restore session: challenge is not tempo/session.');
|
|
718
|
+
}
|
|
719
|
+
if (spent < 0n)
|
|
720
|
+
throw new Error('Cannot restore session: spent must not be negative.');
|
|
721
|
+
if (spent > channel.cumulativeAmount) {
|
|
722
|
+
throw new Error('Cannot restore session: spent exceeds local voucher state.');
|
|
723
|
+
}
|
|
724
|
+
assertVoucherWithinLocalLimit(channel.cumulativeAmount);
|
|
725
|
+
const snapshot = validateCloseSnapshot(channel, challenge);
|
|
726
|
+
const restoredSpent = snapshot && snapshot.spent > spent ? snapshot.spent : spent;
|
|
727
|
+
runtime.lastUrl = input;
|
|
728
|
+
runtime.lastChallenge = challenge;
|
|
729
|
+
runtime.channel = channel;
|
|
730
|
+
runtime.spent = restoredSpent;
|
|
731
|
+
dispatch({ type: 'challengeReceived', challengeId: challenge.id });
|
|
732
|
+
dispatch({
|
|
733
|
+
type: 'activated',
|
|
734
|
+
challengeId: challenge.id,
|
|
735
|
+
entry: channel,
|
|
736
|
+
spent: restoredSpent.toString(),
|
|
737
|
+
units: 0,
|
|
738
|
+
});
|
|
739
|
+
},
|
|
740
|
+
});
|
|
615
741
|
return self;
|
|
616
742
|
}
|
|
617
743
|
/** Type helpers for `sessionManager()`. */
|
|
@@ -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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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Hex } from 'ox';
|
|
2
2
|
import * as Challenge from '../../../Challenge.js';
|
|
3
3
|
import * as Constants from '../../../Constants.js';
|
|
4
4
|
import * as z from '../../../zod.js';
|
|
@@ -119,6 +119,8 @@ export type ApplyTopUpResultParameters = {
|
|
|
119
119
|
challengeId?: string | undefined;
|
|
120
120
|
/** Current active machine state, used to preserve paid unit count when possible. */
|
|
121
121
|
currentState: SessionState;
|
|
122
|
+
/** Highest deposit known before the top-up. */
|
|
123
|
+
knownDeposit?: bigint | undefined;
|
|
122
124
|
/** Receipt returned by the top-up POST, when present. */
|
|
123
125
|
receipt?: SessionReceipt | undefined;
|
|
124
126
|
/** Latest locally observed spend in raw units. */
|
|
@@ -176,8 +178,8 @@ export declare function resolveManualTopUp(parameters: ResolveManualTopUpParamet
|
|
|
176
178
|
/**
|
|
177
179
|
* Applies local deposit and state bookkeeping for a top-up response.
|
|
178
180
|
*
|
|
179
|
-
*
|
|
180
|
-
* update accepted spend authorization; they do not replace deposit.
|
|
181
|
+
* Deposit advances from the highest known baseline. Receipt cumulative values
|
|
182
|
+
* only update accepted spend authorization; they do not replace deposit.
|
|
181
183
|
*/
|
|
182
184
|
export declare function applyTopUpResult(parameters: ApplyTopUpResultParameters): AppliedTopUpResult | undefined;
|
|
183
185
|
/**
|
|
@@ -244,6 +246,8 @@ export type CloseHttpSessionParameters = {
|
|
|
244
246
|
fetch: typeof globalThis.fetch;
|
|
245
247
|
/** Last paid resource URL; used as the management endpoint base. */
|
|
246
248
|
lastUrl: RequestInfo | URL | null;
|
|
249
|
+
/** Resolves the close amount again when the server refreshes the challenge. */
|
|
250
|
+
resolveSignedCloseAmount?: ((challenge: TempoSessionChallenge) => string) | undefined;
|
|
247
251
|
/** Final cumulative amount the client is willing to sign. */
|
|
248
252
|
signedCloseAmount: string;
|
|
249
253
|
/** Stores a fresh close challenge when the first close credential expired. */
|
|
@@ -253,11 +257,13 @@ export type CloseHttpSessionParameters = {
|
|
|
253
257
|
};
|
|
254
258
|
/** Returns true when a payment challenge is the built-in `tempo/session` method. */
|
|
255
259
|
export declare function isTempoSessionChallenge(challenge: Challenge.Challenge): challenge is TempoSessionChallenge;
|
|
260
|
+
/** Returns true when a challenge selects the TIP-1034 session protocol. */
|
|
261
|
+
export declare function isTip1034SessionChallenge(challenge: Challenge.Challenge): challenge is TempoSessionChallenge;
|
|
256
262
|
/** Reads a server-provided session snapshot from challenge method details. */
|
|
257
263
|
export declare function getSessionSnapshot(challenge: TempoSessionChallenge): SessionSnapshot | undefined;
|
|
258
264
|
/** Merges request headers and sets the payment authorization header for a retry. */
|
|
259
265
|
export declare function requestInitWithAuthorization(input: RequestInfo | URL, init: RequestInit | undefined, credential: string): RequestInit;
|
|
260
|
-
/** Returns the URL used for out-of-band management POSTs,
|
|
266
|
+
/** Returns the exact resource URL used for out-of-band management POSTs, without its fragment. */
|
|
261
267
|
export declare function managementInput(input: RequestInfo | URL): RequestInfo | URL;
|
|
262
268
|
/** Converts a WebSocket URL into the HTTP URL used for its payment challenge probe. */
|
|
263
269
|
export declare function webSocketProbeUrl(input: string | URL): URL;
|
|
@@ -281,6 +287,11 @@ export type SseDriverOptions = RequestInit & {
|
|
|
281
287
|
/** Abort signal used to cancel the stream. */
|
|
282
288
|
signal?: AbortSignal | undefined;
|
|
283
289
|
};
|
|
290
|
+
/** @internal Options used when consuming an already-paid SSE response. */
|
|
291
|
+
export type SseResponseOptions = {
|
|
292
|
+
onReceipt?: ((receipt: SessionReceipt) => void) | undefined;
|
|
293
|
+
signal?: AbortSignal | undefined;
|
|
294
|
+
};
|
|
284
295
|
/** Dependencies the SSE driver needs from `SessionManager`. */
|
|
285
296
|
export type OpenSseSessionParameters = {
|
|
286
297
|
/** Creates a session credential for the selected challenge/context. */
|
|
@@ -295,15 +306,13 @@ export type OpenSseSessionParameters = {
|
|
|
295
306
|
getChallenge(): TempoSessionChallenge | null;
|
|
296
307
|
/** Validates a cumulative amount against local client policy. */
|
|
297
308
|
assertVoucherWithinLocalLimit(cumulativeAmount: bigint): void;
|
|
298
|
-
/** Converts a resource URL to the server's session management URL. */
|
|
299
|
-
managementInput(input: RequestInfo | URL): RequestInfo | URL;
|
|
300
309
|
/** Applies an incoming receipt to manager state. */
|
|
301
310
|
acceptReceipt(receipt: SessionReceipt): void;
|
|
302
311
|
/** Performs an automatic channel top-up when deposit is insufficient. */
|
|
303
312
|
topUpIfNeeded(parameters: TopUpRequirement): Promise<void>;
|
|
304
313
|
};
|
|
305
314
|
/** Session payment operations shared with fetch-backed streams. */
|
|
306
|
-
export type SsePaymentDriver = Pick<OpenSseSessionParameters, 'assertVoucherWithinLocalLimit' | 'createSessionCredential' | 'fetch' | 'getChannel' | '
|
|
315
|
+
export type SsePaymentDriver = Pick<OpenSseSessionParameters, 'assertVoucherWithinLocalLimit' | 'createSessionCredential' | 'fetch' | 'getChannel' | 'topUpIfNeeded'>;
|
|
307
316
|
/**
|
|
308
317
|
* Opens an auto-driving paid SSE stream.
|
|
309
318
|
*
|
|
@@ -311,6 +320,8 @@ export type SsePaymentDriver = Pick<OpenSseSessionParameters, 'assertVoucherWith
|
|
|
311
320
|
* credential creation, and top-up policy stay in `SessionManager`.
|
|
312
321
|
*/
|
|
313
322
|
export declare function openSseSession(input: RequestInfo | URL, init: SseDriverOptions | undefined, driver: OpenSseSessionParameters): Promise<AsyncIterable<string>>;
|
|
323
|
+
/** @internal Consumes an already-paid SSE response with the session transport driver. */
|
|
324
|
+
export declare function consumeSseSessionResponse(input: RequestInfo | URL, response: Response, options: SseResponseOptions | undefined, driver: OpenSseSessionParameters): AsyncIterable<string>;
|
|
314
325
|
/** Application SSE frame emitted after session payment events are handled. */
|
|
315
326
|
export type SseResponseFrame = {
|
|
316
327
|
/** Parsed application data, when present. */
|