mppx 0.8.14 → 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 (80) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cli/validate/payment.d.ts.map +1 -1
  3. package/dist/cli/validate/payment.js +18 -4
  4. package/dist/cli/validate/payment.js.map +1 -1
  5. package/dist/client/internal/Fetch.d.ts.map +1 -1
  6. package/dist/client/internal/Fetch.js +93 -10
  7. package/dist/client/internal/Fetch.js.map +1 -1
  8. package/dist/client/internal/MethodChallenge.d.ts +2 -0
  9. package/dist/client/internal/MethodChallenge.d.ts.map +1 -1
  10. package/dist/client/internal/MethodChallenge.js +4 -0
  11. package/dist/client/internal/MethodChallenge.js.map +1 -1
  12. package/dist/client/internal/MethodResponse.d.ts +15 -0
  13. package/dist/client/internal/MethodResponse.d.ts.map +1 -1
  14. package/dist/client/internal/MethodResponse.js +10 -0
  15. package/dist/client/internal/MethodResponse.js.map +1 -1
  16. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  17. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  18. package/dist/stripe/server/internal/html.gen.js +1 -1
  19. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  20. package/dist/tempo/server/Charge.d.ts +9 -1
  21. package/dist/tempo/server/Charge.d.ts.map +1 -1
  22. package/dist/tempo/server/Charge.js.map +1 -1
  23. package/dist/tempo/server/Relay.d.ts +13 -4
  24. package/dist/tempo/server/Relay.d.ts.map +1 -1
  25. package/dist/tempo/server/Relay.js +4 -2
  26. package/dist/tempo/server/Relay.js.map +1 -1
  27. package/dist/tempo/server/SponsorBudget.d.ts.map +1 -1
  28. package/dist/tempo/server/SponsorBudget.js +7 -1
  29. package/dist/tempo/server/SponsorBudget.js.map +1 -1
  30. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  31. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  32. package/dist/tempo/server/internal/html.gen.js +1 -1
  33. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  34. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  35. package/dist/tempo/session/client/Session.js +128 -14
  36. package/dist/tempo/session/client/Session.js.map +1 -1
  37. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  38. package/dist/tempo/session/client/SessionManager.js +62 -20
  39. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  40. package/dist/tempo/session/client/Transports.d.ts +9 -1
  41. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  42. package/dist/tempo/session/client/Transports.js +36 -13
  43. package/dist/tempo/session/client/Transports.js.map +1 -1
  44. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  45. package/dist/tempo/session/server/Ws.js +3 -0
  46. package/dist/tempo/session/server/Ws.js.map +1 -1
  47. package/dist/tempo/subscription/KeyAuthorization.d.ts +1 -829
  48. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  49. package/dist/tempo/subscription/KeyAuthorization.js +14 -3
  50. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
  51. package/dist/viem/Client.d.ts.map +1 -1
  52. package/dist/viem/Client.js +6 -1
  53. package/dist/viem/Client.js.map +1 -1
  54. package/package.json +2 -2
  55. package/src/cli/validate/payment.ts +18 -4
  56. package/src/cli/validate.test.ts +16 -0
  57. package/src/client/internal/Fetch.test.ts +77 -0
  58. package/src/client/internal/Fetch.ts +113 -11
  59. package/src/client/internal/MethodChallenge.ts +5 -0
  60. package/src/client/internal/MethodResponse.ts +28 -0
  61. package/src/stripe/server/internal/html.gen.ts +1 -1
  62. package/src/tempo/server/Charge.ts +9 -1
  63. package/src/tempo/server/Relay.test.ts +156 -2
  64. package/src/tempo/server/Relay.ts +13 -4
  65. package/src/tempo/server/SponsorBudget.test.ts +29 -0
  66. package/src/tempo/server/SponsorBudget.ts +7 -1
  67. package/src/tempo/server/internal/html.gen.ts +1 -1
  68. package/src/tempo/session/README.md +7 -0
  69. package/src/tempo/session/client/Session.test.ts +299 -33
  70. package/src/tempo/session/client/Session.ts +152 -16
  71. package/src/tempo/session/client/SessionManager.test.ts +216 -9
  72. package/src/tempo/session/client/SessionManager.ts +63 -17
  73. package/src/tempo/session/client/Transports.test.ts +22 -0
  74. package/src/tempo/session/client/Transports.ts +58 -22
  75. package/src/tempo/session/server/Session.test.ts +66 -4
  76. package/src/tempo/session/server/Ws.ts +3 -0
  77. package/src/tempo/subscription/KeyAuthorization.test.ts +70 -1
  78. package/src/tempo/subscription/KeyAuthorization.ts +14 -3
  79. package/src/viem/Client.test.ts +18 -1
  80. package/src/viem/Client.ts +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9D,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,eAAe,CAAA;AASpD,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAIvF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjF;AAED,wBAAgB,2BAA2B,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAmB7E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,sBAAsB,CAAA;CACnC,GAAG,MAAM,CAsBT;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,YAAY,GAAG,qBAAqB,CAAC,CAAA;CACzF,QAeA;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;GAW7D;AAED,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;;;GAc7D;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE;IACjE,SAAS,EAAE,qBAAqB,CAAA;IAChC,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE;YAAE,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;KACrF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,IAAI,CACX,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,CAC3F,CAAA;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAqBA;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE;IAC7D,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,6BAA6B,CAAA;IACtC,OAAO,EAAE,mBAAmB,CAAA;CAC7B;;;iBAsBwB,OAAO;;;EAI/B"}
@@ -120,8 +120,14 @@ export async function signSubscriptionKeyAuthorization(parameters) {
120
120
  const signature = await account.sign({
121
121
  hash: KeyAuthorization.getSignPayload(authorization),
122
122
  });
123
+ const signatureEnvelope = SignatureEnvelope.from(signature);
124
+ if (signatureEnvelope.type === 'keychain' || signatureEnvelope.type === 'multisig') {
125
+ throw new VerificationFailedError({
126
+ reason: 'keyAuthorization must use a primitive signature',
127
+ });
128
+ }
123
129
  return KeyAuthorization.from(authorization, {
124
- signature: SignatureEnvelope.from(signature),
130
+ signature,
125
131
  });
126
132
  }
127
133
  /**
@@ -173,13 +179,18 @@ function deserializeAuthorization(signature) {
173
179
  try {
174
180
  return KeyAuthorization.deserialize(signature);
175
181
  }
176
- catch {
182
+ catch (error) {
183
+ if (error instanceof KeyAuthorization.InvalidSignatureTypeError) {
184
+ throw new VerificationFailedError({
185
+ reason: 'keyAuthorization must use a primitive signature',
186
+ });
187
+ }
177
188
  throw new VerificationFailedError({ reason: 'invalid keyAuthorization payload' });
178
189
  }
179
190
  }
180
191
  function getPrimitiveSignature(authorization) {
181
192
  const signature = authorization.signature;
182
- if (!signature || signature.type === 'keychain') {
193
+ if (!signature) {
183
194
  throw new VerificationFailedError({
184
195
  reason: 'keyAuthorization must use a primitive signature',
185
196
  });
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/viem/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAA+C,MAAM,MAAM,CAAA;AAG3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,wBAAgB,WAAW,CACzB,UAAU,EAAE,WAAW,CAAC,UAAU,GAAG;IACnC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IACzB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,kCAAkC;IAClC,MAAM,CAAC,EAAE,CAAC;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,GAAG,SAAS,CAAA;CAC9D,GACA,CAAC,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAAK,YAAY,CAAC,MAAM,CAAC,CAiExE;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;KACjG,CAAA;CACF"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/viem/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAA+C,MAAM,MAAM,CAAA;AAI3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,wBAAgB,WAAW,CACzB,UAAU,EAAE,WAAW,CAAC,UAAU,GAAG;IACnC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;IACzB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,kCAAkC;IAClC,MAAM,CAAC,EAAE,CAAC;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,GAAG,SAAS,CAAA;CAC9D,GACA,CAAC,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAAK,YAAY,CAAC,MAAM,CAAC,CAiExE;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;KACjG,CAAA;CACF"}
@@ -1,5 +1,10 @@
1
1
  import { createClient, createTransport, custom, http } from 'viem';
2
2
  import { withFeePayer } from 'viem/tempo';
3
+ import { tempo as tempoMainnetChain, tempoModerato } from 'viem/tempo/chains';
4
+ const knownTempoChains = {
5
+ [tempoMainnetChain.id]: tempoMainnetChain,
6
+ [tempoModerato.id]: tempoModerato,
7
+ };
3
8
  export function getResolver(parameters) {
4
9
  const { chain, feePayerUrl, getClient, rpcUrl } = parameters;
5
10
  if (getClient) {
@@ -53,7 +58,7 @@ export function getResolver(parameters) {
53
58
  throw new Error(`No \`rpcUrl\` configured for \`chainId\` (${resolvedChainId}).`);
54
59
  const transport = feePayerUrl ? withFeePayer(http(url), http(feePayerUrl)) : http(url);
55
60
  return createClient({
56
- chain: { ...chain, id: resolvedChainId },
61
+ chain: (knownTempoChains[resolvedChainId] ?? { ...chain, id: resolvedChainId }),
57
62
  transport,
58
63
  });
59
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/viem/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/viem/Client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.8.14",
4
+ "version": "0.8.15",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/wevm/mppx#readme",
@@ -170,7 +170,7 @@
170
170
  "@stripe/stripe-js": "9.9.0",
171
171
  "eventsource-parser": "3.1.0",
172
172
  "incur": "^0.4.10",
173
- "ox": "0.14.30",
173
+ "ox": "0.14.33",
174
174
  "zod": "^4.4.3"
175
175
  },
176
176
  "repository": {
@@ -46,6 +46,20 @@ async function provisionAndPayTestnet(
46
46
  await Promise.all(hashes.map((hash) => waitForTransactionReceipt(client, { hash })))
47
47
  if (!silent) console.log(pc.dim(` Using wallet: ${account.address}`))
48
48
 
49
+ // The faucet tx receipt can land before the RPC's balance reads are
50
+ // consistent with it, so poll briefly for the funded balance to appear
51
+ // rather than racing straight into the charge.
52
+ const currency = (challenge.request as Record<string, unknown>).currency
53
+ if (typeof currency === 'string') {
54
+ for (let attempt = 0; attempt < 10; attempt++) {
55
+ const balance = await Actions.token
56
+ .getBalance(client, { account: account.address, token: currency as Address })
57
+ .catch(() => undefined)
58
+ if (balance && balance.amount > 0n) break
59
+ await new Promise((resolve) => setTimeout(resolve, 500))
60
+ }
61
+ }
62
+
49
63
  const methods = [...tempoMethods({ account })]
50
64
  return { methods }
51
65
  } catch (error) {
@@ -198,7 +212,7 @@ export async function validatePaymentFlow(
198
212
  const mppx = Mppx.create({ methods: provisioned.methods, polyfill: false })
199
213
  const cred = await mppx.createCredential(fakeResp)
200
214
  results.push(check('Payment: submitted', 'ephemeral testnet wallet'))
201
- return await sendAndValidateResponse(
215
+ await sendAndValidateResponse(
202
216
  results,
203
217
  url,
204
218
  endpoint,
@@ -210,17 +224,17 @@ export async function validatePaymentFlow(
210
224
  )
211
225
  } catch (error) {
212
226
  results.push(fail('Payment: create credential', (error as Error).message))
213
- return results
214
227
  }
215
228
  } else {
216
229
  results.push(
217
230
  fail('Payment: auto-provision wallet', 'Failed to create and fund testnet wallet'),
218
231
  )
219
- return results
220
232
  }
233
+ options.onResults?.(results)
221
234
  }
222
235
 
223
- // Try each challenge method (skip testnet challenge already handled above)
236
+ // Try each remaining challenge method (tempo testnet already handled above),
237
+ // so validate exercises every payment method the server offers, same as mainnet.
224
238
  const loaded = await loadConfig().catch(() => undefined)
225
239
  const isInteractive = options.interactive
226
240
  const stripeKey = process.env.MPPX_STRIPE_SECRET_KEY ?? resolveStripeKey(verbose)
@@ -707,6 +707,22 @@ describe('validate: multi-challenge', () => {
707
707
  const { output } = await serve(['validate', server.url])
708
708
  expect(output).toContain('Amount is valid integer string (Got: 1.50)')
709
709
  })
710
+
711
+ test("tempo doesn't block other testnet methods", { timeout: 15_000 }, async () => {
712
+ // makeChallenge() defaults to a tempo testnet challenge (chainId 42431),
713
+ // which takes the ephemeral-wallet fast path. That path used to return
714
+ // immediately, so a server offering evm/stripe alongside tempo would
715
+ // never have those methods exercised. It should now fall through and
716
+ // try them too, same as it does for tempo mainnet challenges.
717
+ const server = await multiChallengeServer([makeChallenge(), makeEvmChallenge()])
718
+ const { output } = await serve(['validate', server.url, '--outputJson', '--yes'])
719
+ const jsonStart = output.indexOf('{')
720
+ const jsonEnd = output.lastIndexOf('}')
721
+ const result = JSON.parse(output.slice(jsonStart, jsonEnd + 1))
722
+ const paymentLabels = result.endpoints[0].payment.map((r: { label: string }) => r.label)
723
+ expect(paymentLabels).toContain('Payment: submitted')
724
+ expect(paymentLabels.some((l: string) => l.includes('[evm]'))).toBe(true)
725
+ })
710
726
  })
711
727
 
712
728
  describe('validate: payment methods coverage', () => {
@@ -10,6 +10,7 @@ import { rpcUrl } from '~test/tempo/rpc.js'
10
10
  import { accounts, asset, chain, client, http } from '~test/tempo/viem.js'
11
11
 
12
12
  import * as Fetch from './Fetch.js'
13
+ import * as MethodChallenge from './MethodChallenge.js'
13
14
  import * as MethodResponse from './MethodResponse.js'
14
15
 
15
16
  const realm = 'api.example.com'
@@ -337,6 +338,23 @@ const noopMethod = {
337
338
  createCredential: async () => 'credential',
338
339
  } as any
339
340
 
341
+ function trackedMethod(settlements: MethodResponse.AttemptOutcome['status'][]) {
342
+ const method = {
343
+ ...noopMethod,
344
+ async createCredential(parameters: object) {
345
+ const attempt = MethodResponse.getAttempt(parameters)
346
+ if (attempt)
347
+ attempt.settle = (outcome) => {
348
+ settlements.push(outcome.status)
349
+ return outcome.status !== 'pending'
350
+ }
351
+ return 'credential'
352
+ },
353
+ }
354
+ MethodChallenge.register(method, () => undefined)
355
+ return MethodResponse.register(method, ({ response }) => response)
356
+ }
357
+
340
358
  const x402PaymentRequired = {
341
359
  accepts: [
342
360
  {
@@ -418,6 +436,30 @@ describe('Fetch.from: method responses', () => {
418
436
  expect(handle).toHaveBeenCalledWith(expect.objectContaining({ credential: 'credential' }))
419
437
  expect(paidResponse?.clone).not.toHaveBeenCalled()
420
438
  })
439
+
440
+ test.each([
441
+ ['a rejected paid response', () => new Response('rejected', { status: 500 }), 500, undefined],
442
+ ['the final payment retry', () => make402(), 402, 1],
443
+ [
444
+ 'the paid request throwing',
445
+ () => Promise.reject(new Error('paid request failed')),
446
+ undefined,
447
+ undefined,
448
+ ],
449
+ ])('settles credential state after %s', async (_name, paidRequest, status, maxPaymentRetries) => {
450
+ const settlements: MethodResponse.AttemptOutcome['status'][] = []
451
+ let calls = 0
452
+ const fetch = Fetch.from({
453
+ fetch: async () => (++calls === 1 ? make402() : paidRequest()),
454
+ maxPaymentRetries,
455
+ methods: [trackedMethod(settlements)],
456
+ })
457
+
458
+ const result = fetch('https://example.com/paid')
459
+ if (status) expect((await result).status).toBe(status)
460
+ else await expect(result).rejects.toThrow('paid request failed')
461
+ expect(settlements).toEqual(['rejected'])
462
+ })
421
463
  })
422
464
 
423
465
  describe('Fetch.from: init passthrough (non-402)', () => {
@@ -1873,6 +1915,41 @@ describe('Fetch.from: 402 retry path', () => {
1873
1915
  ).toEqual(['credential-first', 'credential-second', 'credential-third'])
1874
1916
  })
1875
1917
 
1918
+ test('invalidates a prepared credential across a generic challenge', async () => {
1919
+ const firstCredential = vi.fn(async () => 'first')
1920
+ const first = { ...noopMethod, name: 'first', createCredential: firstCredential }
1921
+ const second = { ...noopMethod, name: 'second', createCredential: async () => 'second' }
1922
+ MethodChallenge.register(first, () => undefined)
1923
+ const responses = [
1924
+ make402({ id: 'first', method: 'first' }),
1925
+ make402({ id: 'second', method: 'second' }),
1926
+ make402({ id: 'first', method: 'first' }),
1927
+ new Response('OK'),
1928
+ ]
1929
+ const mockFetch = vi.fn(async () => responses.shift()!)
1930
+ const fetch = Fetch.from({ fetch: mockFetch, methods: [first, second] })
1931
+
1932
+ expect((await fetch('https://example.com/api')).status).toBe(200)
1933
+ expect(firstCredential).toHaveBeenCalledTimes(2)
1934
+ })
1935
+
1936
+ test('invalidates a prepared credential after an explicit context', async () => {
1937
+ const createCredential = vi.fn(async () => 'credential')
1938
+ const method = { ...noopMethod, createCredential }
1939
+ MethodChallenge.register(method, () => undefined)
1940
+ let challenges = 0
1941
+ const mockFetch = vi.fn(async () => (++challenges <= 3 ? make402() : new Response('OK')))
1942
+ const fetch = Fetch.from({
1943
+ fetch: mockFetch as typeof globalThis.fetch,
1944
+ methods: [method],
1945
+ onChallenge: async (_challenge, { createCredential: create }) =>
1946
+ challenges === 2 ? create({ override: true } as never) : undefined,
1947
+ })
1948
+
1949
+ expect((await fetch('https://example.com/api')).status).toBe(200)
1950
+ expect(createCredential).toHaveBeenCalledTimes(3)
1951
+ })
1952
+
1876
1953
  test('caps repeated 402 retries at three', async () => {
1877
1954
  let callCount = 0
1878
1955
  const createCredential = vi.fn(async () => 'credential')
@@ -19,9 +19,33 @@ type WrappedFetch = typeof globalThis.fetch & {
19
19
  [MPPX_FETCH_WRAPPER]?: typeof globalThis.fetch
20
20
  }
21
21
 
22
+ /** Credential state retained between payment retries until its method settles it. */
23
+ type PreparedCredential = {
24
+ /** Method-owned preparation and settlement hooks. */
25
+ attempt: MethodResponse.Attempt
26
+ /** Serialized challenge used to recognize the same retry. */
27
+ key?: string | undefined
28
+ /** Method that prepared the credential. */
29
+ method: Method.AnyClient
30
+ /** Memoized credential reused for the same retry. */
31
+ promise: Promise<string>
32
+ }
33
+
22
34
  let originalFetch: typeof globalThis.fetch | undefined
23
35
  const eventObserverChecks = new WeakMap<object, (name: keyof ClientEventMap) => boolean>()
24
36
 
37
+ async function settleAttempt(
38
+ prepared: PreparedCredential | undefined,
39
+ outcome: MethodResponse.AttemptOutcome,
40
+ ): Promise<boolean> {
41
+ const settle = prepared?.attempt.settle
42
+ if (!settle) return outcome.status !== 'pending'
43
+ prepared.attempt.settle = undefined
44
+ const settled = await settle(outcome)
45
+ if (!settled) prepared.attempt.settle = settle
46
+ return settled
47
+ }
48
+
25
49
  export type ClientEventMap<
26
50
  methods extends readonly Method.AnyClient[] = readonly Method.AnyClient[],
27
51
  response = Response,
@@ -210,6 +234,7 @@ export function from<const methods extends readonly Method.AnyClient[]>(
210
234
  let challenge: Challenge.Challenge | undefined
211
235
  let challenges: readonly Challenge.Challenge[] | undefined
212
236
  let mi: methods[number] | undefined
237
+ let preparedCredential: PreparedCredential | undefined
213
238
 
214
239
  try {
215
240
  for (let retry = 0; retry < maxPaymentRetries; retry++) {
@@ -229,6 +254,11 @@ export function from<const methods extends readonly Method.AnyClient[]>(
229
254
  )
230
255
  const selected = orderedCandidates[0]
231
256
  if (!selected) {
257
+ await settleAttempt(preparedCredential, {
258
+ challenges,
259
+ response,
260
+ status: 'rejected',
261
+ })
232
262
  // A post-payment 402 with no actionable challenge (e.g. rejected credential)
233
263
  // is the server's final answer, not a new challenge round.
234
264
  if (retry > 0) return response
@@ -247,16 +277,54 @@ export function from<const methods extends readonly Method.AnyClient[]>(
247
277
  initialRequest.input,
248
278
  initialRequest.input,
249
279
  )
280
+ const previousCredential = preparedCredential
281
+ const key = Challenge.serialize(selectedChallenge)
282
+ const sameAttempt =
283
+ previousCredential?.method === selected.method && previousCredential?.key === key
284
+ let canReusePrevious = false
285
+ if (previousCredential) {
286
+ const settled = await settleAttempt(previousCredential, {
287
+ challenges,
288
+ response,
289
+ status: sameAttempt ? 'pending' : 'rejected',
290
+ })
291
+ canReusePrevious = sameAttempt && !settled
292
+ }
293
+ preparedCredential = canReusePrevious ? previousCredential : undefined
250
294
  const createCredential = memoizeCreateCredential(
251
295
  async (overrideContext?: AnyContextFor<methods>) => {
296
+ if (overrideContext === undefined && canReusePrevious && previousCredential) {
297
+ return previousCredential.promise
298
+ }
299
+ if (canReusePrevious && previousCredential) {
300
+ await settleAttempt(previousCredential, { status: 'rejected' })
301
+ preparedCredential = undefined
302
+ }
303
+
252
304
  const credentialContext = overrideContext ?? context
253
- await MethodChallenge.handle(selected.method, {
254
- challenge: selectedChallenge,
255
- context: credentialContext,
256
- fetch: baseFetch,
257
- input: paymentInput,
258
- })
259
- return resolveCredential(selectedChallenge, selected.method, credentialContext)
305
+ if (!MethodChallenge.has(selected.method))
306
+ return resolveCredential(selectedChallenge, selected.method, credentialContext)
307
+ const attempt: MethodResponse.Attempt = {
308
+ prepare: () =>
309
+ MethodChallenge.handle(selected.method, {
310
+ challenge: selectedChallenge,
311
+ context: credentialContext,
312
+ fetch: baseFetch,
313
+ input: paymentInput,
314
+ }),
315
+ }
316
+ const promise = attempt
317
+ .prepare()
318
+ .then(() =>
319
+ resolveCredential(selectedChallenge, selected.method, credentialContext, attempt),
320
+ )
321
+ preparedCredential = {
322
+ attempt,
323
+ key: overrideContext === undefined ? key : undefined,
324
+ method: selected.method,
325
+ promise,
326
+ }
327
+ return promise
260
328
  },
261
329
  )
262
330
  const eventCredential = await events.emit(
@@ -279,6 +347,11 @@ export function from<const methods extends readonly Method.AnyClient[]>(
279
347
  })
280
348
  : undefined)
281
349
  const credential = onChallengeCredential ?? (await createCredential())
350
+ const prepared = preparedCredential
351
+ if (prepared && (await prepared.promise.catch(() => undefined)) !== credential) {
352
+ await settleAttempt(prepared, { status: 'rejected' })
353
+ preparedCredential = undefined
354
+ }
282
355
  validateCredentialHeaderValue(credential)
283
356
  await events.emit(
284
357
  'credential.created',
@@ -303,6 +376,17 @@ export function from<const methods extends readonly Method.AnyClient[]>(
303
376
  { challenge: selectedChallenge },
304
377
  ),
305
378
  )
379
+ const paymentRequired = await transport.isPaymentRequired(
380
+ response,
381
+ transportRequest as never,
382
+ )
383
+ if (!paymentRequired) {
384
+ await settleAttempt(prepared, {
385
+ response,
386
+ status: response.ok ? 'accepted' : 'rejected',
387
+ })
388
+ preparedCredential = undefined
389
+ }
306
390
  // Cloning an unobserved stream would tee and buffer it indefinitely.
307
391
  if (response.ok && hasEventObservers(events, 'payment.response'))
308
392
  await events.emit(
@@ -316,7 +400,7 @@ export function from<const methods extends readonly Method.AnyClient[]>(
316
400
  response,
317
401
  }),
318
402
  )
319
- if (!(await transport.isPaymentRequired(response, transportRequest as never))) {
403
+ if (!paymentRequired) {
320
404
  if (!response.ok) return response
321
405
  return MethodResponse.handle(selected.method, {
322
406
  challenge: selectedChallenge,
@@ -334,8 +418,24 @@ export function from<const methods extends readonly Method.AnyClient[]>(
334
418
  })
335
419
  }
336
420
  }
421
+ challenges = undefined
422
+ try {
423
+ challenges = transport.getChallenges
424
+ ? await transport.getChallenges(response, transportRequest as never)
425
+ : [await transport.getChallenge(response, transportRequest as never)]
426
+ } catch {}
427
+ await settleAttempt(preparedCredential, {
428
+ challenges,
429
+ response,
430
+ status: 'rejected',
431
+ })
337
432
  return response
338
433
  } catch (error) {
434
+ await settleAttempt(preparedCredential, {
435
+ challenges,
436
+ response,
437
+ status: 'rejected',
438
+ })
339
439
  await events.emit(
340
440
  'payment.failed',
341
441
  createPaymentFailedPayload({
@@ -884,11 +984,13 @@ async function resolveCredential(
884
984
  challenge: Challenge.Challenge,
885
985
  mi: Method.AnyClient,
886
986
  context: unknown,
987
+ attempt?: MethodResponse.Attempt | undefined,
887
988
  ): Promise<string> {
888
989
  const parsedContext = mi.context && context !== undefined ? mi.context.parse(context) : undefined
889
- return mi.createCredential(
890
- parsedContext !== undefined ? { challenge, context: parsedContext } : ({ challenge } as never),
891
- )
990
+ const parameters =
991
+ parsedContext !== undefined ? { challenge, context: parsedContext } : { challenge }
992
+ if (attempt) MethodResponse.attachAttempt(mi, parameters, attempt)
993
+ return mi.createCredential(parameters as never)
892
994
  }
893
995
 
894
996
  function resolvePaymentPreferences<methods extends readonly Method.AnyClient[]>(
@@ -24,6 +24,11 @@ export function register<const method extends Method.AnyClient>(
24
24
  return method
25
25
  }
26
26
 
27
+ /** Returns whether a method registered pre-credential work. */
28
+ export function has(method: Method.AnyClient): boolean {
29
+ return handlers.has(method)
30
+ }
31
+
27
32
  /** Runs method-specific work before creating a challenge credential. */
28
33
  export function handle(method: Method.AnyClient, parameters: HandlerParameters): Promise<void> {
29
34
  return Promise.resolve(handlers.get(method)?.(parameters))
@@ -3,6 +3,20 @@ import type { MaybePromise } from '../../internal/types.js'
3
3
  import type * as Method from '../../Method.js'
4
4
 
5
5
  const handlers = new WeakMap<Method.AnyClient, Handler>()
6
+ const attempts = new WeakMap<object, Attempt>()
7
+
8
+ export type AttemptOutcome = {
9
+ challenges?: readonly Challenge.Challenge[] | undefined
10
+ response?: Response | undefined
11
+ status: 'accepted' | 'pending' | 'rejected'
12
+ }
13
+
14
+ export type Attempt = {
15
+ /** Re-runs method preparation when serialized state changed before signing. */
16
+ prepare: () => Promise<void>
17
+ /** Settles state created for one credential attempt. */
18
+ settle?: ((outcome: AttemptOutcome) => MaybePromise<boolean>) | undefined
19
+ }
6
20
 
7
21
  /** Inputs available when a client method handles a successful paid response. */
8
22
  export type HandlerParameters = {
@@ -33,6 +47,20 @@ export function unregister(method: Method.AnyClient): void {
33
47
  handlers.delete(method)
34
48
  }
35
49
 
50
+ /** Adds response lifecycle state to internal credential parameters. */
51
+ export function attachAttempt(
52
+ method: Method.AnyClient,
53
+ parameters: object,
54
+ attempt: Attempt,
55
+ ): void {
56
+ if (handlers.has(method)) attempts.set(parameters, attempt)
57
+ }
58
+
59
+ /** Reads response lifecycle state when Fetch owns this credential. */
60
+ export function getAttempt(parameters: object): Attempt | undefined {
61
+ return attempts.get(parameters)
62
+ }
63
+
36
64
  /** Lets the selected client method handle a successful paid response. */
37
65
  export function handle(method: Method.AnyClient, parameters: HandlerParameters): Promise<Response> {
38
66
  return Promise.resolve(handlers.get(method)?.(parameters) ?? parameters.response)