mppx 0.8.9 → 0.8.11

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 (98) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli/validate/challenge.d.ts +2 -0
  3. package/dist/cli/validate/challenge.d.ts.map +1 -1
  4. package/dist/cli/validate/challenge.js +21 -9
  5. package/dist/cli/validate/challenge.js.map +1 -1
  6. package/dist/cli/validate/discovery.d.ts.map +1 -1
  7. package/dist/cli/validate/discovery.js +50 -19
  8. package/dist/cli/validate/discovery.js.map +1 -1
  9. package/dist/cli/validate/helpers.d.ts +1 -0
  10. package/dist/cli/validate/helpers.d.ts.map +1 -1
  11. package/dist/cli/validate/helpers.js +11 -0
  12. package/dist/cli/validate/helpers.js.map +1 -1
  13. package/dist/cli/validate/index.d.ts +1 -0
  14. package/dist/cli/validate/index.d.ts.map +1 -1
  15. package/dist/cli/validate/index.js +4 -0
  16. package/dist/cli/validate/index.js.map +1 -1
  17. package/dist/cli/validate/payment.d.ts +1 -0
  18. package/dist/cli/validate/payment.d.ts.map +1 -1
  19. package/dist/cli/validate/payment.js +2 -2
  20. package/dist/cli/validate/payment.js.map +1 -1
  21. package/dist/tempo/internal/fee-payer.d.ts +39 -2
  22. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  23. package/dist/tempo/internal/fee-payer.js +45 -1
  24. package/dist/tempo/internal/fee-payer.js.map +1 -1
  25. package/dist/tempo/internal/fee-token.d.ts +8 -0
  26. package/dist/tempo/internal/fee-token.d.ts.map +1 -1
  27. package/dist/tempo/internal/fee-token.js +19 -6
  28. package/dist/tempo/internal/fee-token.js.map +1 -1
  29. package/dist/tempo/legacy/session/Chain.d.ts.map +1 -1
  30. package/dist/tempo/legacy/session/Chain.js +53 -50
  31. package/dist/tempo/legacy/session/Chain.js.map +1 -1
  32. package/dist/tempo/server/Charge.d.ts +8 -0
  33. package/dist/tempo/server/Charge.d.ts.map +1 -1
  34. package/dist/tempo/server/Charge.js +49 -45
  35. package/dist/tempo/server/Charge.js.map +1 -1
  36. package/dist/tempo/server/Methods.d.ts +7 -0
  37. package/dist/tempo/server/Methods.d.ts.map +1 -1
  38. package/dist/tempo/server/Methods.js.map +1 -1
  39. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  40. package/dist/tempo/server/Subscription.js +24 -16
  41. package/dist/tempo/server/Subscription.js.map +1 -1
  42. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  43. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  44. package/dist/tempo/server/internal/html.gen.js +1 -1
  45. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  46. package/dist/tempo/session/client/SessionManager.d.ts +3 -0
  47. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  48. package/dist/tempo/session/client/SessionManager.js +1 -0
  49. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  50. package/dist/tempo/session/client/Transports.d.ts +20 -0
  51. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  52. package/dist/tempo/session/client/Transports.js +23 -11
  53. package/dist/tempo/session/client/Transports.js.map +1 -1
  54. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
  55. package/dist/tempo/session/precompile/Chain.js +25 -19
  56. package/dist/tempo/session/precompile/Chain.js.map +1 -1
  57. package/dist/tempo/session/server/index.d.ts +2 -0
  58. package/dist/tempo/session/server/index.d.ts.map +1 -1
  59. package/dist/tempo/session/server/index.js +2 -0
  60. package/dist/tempo/session/server/index.js.map +1 -1
  61. package/dist/validation/core.d.ts +1 -0
  62. package/dist/validation/core.d.ts.map +1 -1
  63. package/dist/validation/core.js +5 -0
  64. package/dist/validation/core.js.map +1 -1
  65. package/dist/x402/Header.js +1 -1
  66. package/dist/x402/Header.js.map +1 -1
  67. package/package.json +1 -1
  68. package/src/cli/validate/challenge.ts +20 -8
  69. package/src/cli/validate/discovery.test.ts +128 -0
  70. package/src/cli/validate/discovery.ts +50 -15
  71. package/src/cli/validate/helpers.ts +10 -0
  72. package/src/cli/validate/index.ts +4 -0
  73. package/src/cli/validate/payment.ts +4 -1
  74. package/src/cli/validate.test.ts +23 -2
  75. package/src/client/Mppx.test-d.ts +3 -1
  76. package/src/tempo/PublicExports.test-d.ts +5 -0
  77. package/src/tempo/internal/fee-payer.test.ts +93 -0
  78. package/src/tempo/internal/fee-payer.ts +64 -2
  79. package/src/tempo/internal/fee-token.test.ts +37 -0
  80. package/src/tempo/internal/fee-token.ts +26 -5
  81. package/src/tempo/legacy/session/Chain.test.ts +78 -2
  82. package/src/tempo/legacy/session/Chain.ts +56 -52
  83. package/src/tempo/server/Charge.test.ts +121 -6
  84. package/src/tempo/server/Charge.ts +61 -48
  85. package/src/tempo/server/Methods.ts +6 -0
  86. package/src/tempo/server/Subscription.test.ts +79 -4
  87. package/src/tempo/server/Subscription.ts +24 -16
  88. package/src/tempo/server/internal/html.gen.ts +1 -1
  89. package/src/tempo/session/client/SessionManager.test.ts +12 -1
  90. package/src/tempo/session/client/SessionManager.ts +3 -0
  91. package/src/tempo/session/client/Transports.test.ts +34 -0
  92. package/src/tempo/session/client/Transports.ts +47 -20
  93. package/src/tempo/session/precompile/Chain.test.ts +9 -0
  94. package/src/tempo/session/precompile/Chain.ts +28 -20
  95. package/src/tempo/session/server/Session.test.ts +23 -3
  96. package/src/tempo/session/server/index.ts +2 -0
  97. package/src/validation/core.ts +6 -0
  98. package/src/x402/Header.ts +1 -1
@@ -1,4 +1,6 @@
1
1
  export { charge, session, settle, settleBatch } from './Session.js';
2
+ /** SSE helpers and types for Tempo session streams. */
3
+ export * as Sse from './Sse.js';
2
4
  /** Server-side automatic settlement schedule. */
3
5
  export type { ResolveSessionChannelId, ResolveSessionChannelIdParameters, SessionChannelIdRequest, SettlementSchedule, } from './Session.js';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,iDAAiD;AACjD,YAAY,EACV,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,uDAAuD;AACvD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,iDAAiD;AACjD,YAAY,EACV,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA"}
@@ -1,2 +1,4 @@
1
1
  export { charge, session, settle, settleBatch } from './Session.js';
2
+ /** SSE helpers and types for Tempo session streams. */
3
+ export * as Sse from './Sse.js';
2
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tempo/session/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tempo/session/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,uDAAuD;AACvD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA"}
@@ -7,6 +7,7 @@ export type ValidateOptions = {
7
7
  endpoint?: string | undefined;
8
8
  body?: string | undefined;
9
9
  query?: string[] | undefined;
10
+ headers?: string[] | undefined;
10
11
  verbose?: boolean | undefined;
11
12
  yes?: boolean | undefined;
12
13
  skipPayment?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/validation/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/validation/core.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export async function* validateStream(options) {
14
14
  for (const endpoint of discovery.endpoints) {
15
15
  yield { phase: 'endpoint', endpoint };
16
16
  let body;
17
+ let bodyIsAutogenerated = false;
17
18
  if (options.endpoint) {
18
19
  body = options.body;
19
20
  }
@@ -21,11 +22,14 @@ export async function* validateStream(options) {
21
22
  body = resolveBodyForEndpoint(options.body, endpoint.path);
22
23
  if (!body && discovery.doc) {
23
24
  body = extractRequestBodyFromDiscovery(discovery.doc, endpoint);
25
+ bodyIsAutogenerated = !!body;
24
26
  }
25
27
  }
26
28
  const { results: challengeResults, resolvedBody, challenges: parsedChallenges, } = await validateChallenge(baseUrl, endpoint, verbose, {
27
29
  body,
30
+ bodyIsAutogenerated,
28
31
  query: options.query,
32
+ extraHeaders: options.headers,
29
33
  discoveryDoc: discovery.doc ?? undefined,
30
34
  });
31
35
  const effectiveBody = resolvedBody ?? body;
@@ -63,6 +67,7 @@ export async function* validateStream(options) {
63
67
  const paymentResults = await validatePaymentFlow(baseUrl, endpoint, verbose, {
64
68
  body: effectiveBody,
65
69
  query: options.query,
70
+ extraHeaders: options.headers,
66
71
  yes: options.yes,
67
72
  silent: !onResults,
68
73
  interactive: options.interactive,
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/validation/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/validation/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACvF,OAAO,EACL,QAAQ,EACR,6BAA6B,EAC7B,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAE3E,OAAO,EAAE,QAAQ,EAAE,CAAA;AAgEnB,0DAA0D;AAC1D,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CAAC,OAAwB;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;IAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAA;IAExC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAA;IAElE,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;QAErC,IAAI,IAAwB,CAAA;QAC5B,IAAI,mBAAmB,GAAG,KAAK,CAAA;QAC/B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC1D,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,GAAG,+BAA+B,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC/D,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,EACJ,OAAO,EAAE,gBAAgB,EACzB,YAAY,EACZ,UAAU,EAAE,gBAAgB,GAC7B,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;YACtD,IAAI;YACJ,mBAAmB;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,YAAY,EAAE,SAAS,CAAC,GAAG,IAAI,SAAS;SACzC,CAAC,CAAA;QACF,MAAM,aAAa,GAAG,YAAY,IAAI,IAAI,CAAA;QAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAClE,CAAA;QACD,MAAM,QAAQ,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;aACtC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC;aACtC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAG,EAAE,CAAC,OAAmC,CAAC,aAAqB,EAAE,OAAO,CAAC;aACpF,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAA;QACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,MAAM,eAAe,GACnB,CAAC,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAAC,CAAA;QAC3E,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,iCAAiC,CAC9E,CAAA;QACD,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAClE,CAAA;QACD,MAAM,oBAAoB,GAAG,CAAC,KAAK,IAAI,gBAAgB,IAAI,eAAe,CAAA;QAE1E,MAAM,OAAO,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAE5D,MAAM;YACJ,KAAK,EAAE,WAAW;YAClB,QAAQ;YACR,OAAO,EAAE,gBAAgB;YACzB,KAAK;YACL,SAAS;YACT,SAAS;YACT,eAAe;YACf,oBAAoB;YACpB,OAAO;SACR,CAAA;QAED,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE;gBAClE,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAA;YACF,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;YAEjE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAA;gBAC1C,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;oBAC3E,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,YAAY,EAAE,OAAO,CAAC,OAAO;oBAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,MAAM,EAAE,CAAC,SAAS;oBAClB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;iBAChC,CAAC,CAAA;gBACF,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAClE,CAAA;gBACD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAA;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;IAC/E,IAAI,SAAsC,CAAA;IAC1C,MAAM,eAAe,GAA+B,EAAE,CAAA;IACtD,IAAI,OAA6C,CAAA;IAEjD,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;gBAC3B,MAAK;YACP,KAAK,UAAU;gBACb,OAAO,GAAG;oBACR,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;oBAC7B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;oBACzB,SAAS,EAAE,EAAE;oBACb,aAAa,EAAE,EAAE;oBACjB,OAAO,EAAE,EAAE;iBACZ,CAAA;gBACD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC7B,MAAK;YACP,KAAK,WAAW;gBACd,IAAI,OAAO;oBAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAA;gBAC9C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,KAAK,CAAC,SAAS;wBAAE,UAAU,GAAG,IAAI,CAAA;oBACtC,IAAI,KAAK,CAAC,SAAS;wBAAE,UAAU,GAAG,IAAI,CAAA;gBACxC,CAAC;gBACD,MAAK;YACP,KAAK,eAAe;gBAClB,IAAI,OAAO;oBAAE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAA;gBAClD,MAAK;YACP,KAAK,SAAS;gBACZ,IAAI,OAAO;oBAAE,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;gBAC5C,MAAK;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IACjE,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,EAAE,CAAA;iBACtC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,EAAE,CAAA;iBAC3C,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;iBAC7C,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,EAAE,CAAA;iBACtC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,EAAE,CAAA;iBAC3C,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,QAAQ,EAAE,CAAA;iBAC7C,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAEnE,MAAM,WAAW,GAAG,kBAAkB,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;IAEnF,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,SAAS;QACT,SAAS,EAAE,eAAe;QAC1B,OAAO;QACP,WAAW;KACZ,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAqC,EACrC,KAAmD;IAEnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAE9E,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAA;IACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAA;IACzC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CACpE,CAAA;IAED,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CACR,wGAAwG,CACzG,CAAA;IACH,CAAC;SAAM,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAA;IACtF,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,mGAAmG,CACpG,CAAA;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAY,CAAA;AAEtD,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAAwB;IACnE,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,IAAI,SAAS,GAAmB,EAAE,CAAA;IAClC,IAAI,YAAY,GAAmC,IAAI,CAAA;IACvD,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,IAAI,KAAK,GAAG,KAAK,CAAA;IAEjB,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IACtC,IAAI,UAAoB,CAAA;IACxB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,UAAU,GAAG;YACX,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SACpF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,CAAA;QAC/C,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,eAA0E,CAAA;IAC9E,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,eAAe,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAA;QACpD,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;YAC/B,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,kBAAkB,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7E,CAAC;aAAM,CAAC;YACN,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,EAAE,6FAA6F;YACnG,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,IAAI,CAAA;QACZ,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAExE,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAA;QAE/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,yBAAyB;gBAChC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,WAAW;gBACnC,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAA;YACF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAA;YACZ,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,YAAY,GAAG,eAAe,CAAC,GAA8B,CAAA;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;SAAM,IAAI,YAAY,EAAE,CAAC;QACxB,SAAS,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAA;QAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC3E,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC3E,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,cAAc;gBACzC,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,sBAAsB;gBAC7B,MAAM,EAAE,kCAAkC;gBAC1C,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,CAAA;AAC/D,CAAC"}
@@ -33,7 +33,7 @@ const parsePaymentRequiredEnvelope = (value) => {
33
33
  if (record.x402Version !== 2 || !Array.isArray(record.accepts))
34
34
  throw new HeaderCodec.InvalidJsonHeaderError();
35
35
  const resource = ResourceInfoSchema.parse(record.resource);
36
- const extensions = record.extensions === undefined ? undefined : ExtensionsSchema.parse(record.extensions);
36
+ const extensions = record.extensions !== undefined ? ExtensionsSchema.safeParse(record.extensions).data : undefined;
37
37
  return {
38
38
  accepts: record.accepts,
39
39
  ...(extensions ? { extensions } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/x402/Header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAE3B,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GAOrB,MAAM,YAAY,CAAA;AAEnB,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACrE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAEpE,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAChC,eAAe,CAAC,MAAM,CAAA;AAExB,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAuC,eAAe,CAAC,MAAM,CAAA;AAU/F,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAY,CAAA;QAC5D,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAChD,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GACjC,gBAAgB,CAAC,MAAM,CAAA;AAEzB,wDAAwD;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAsC,gBAAgB,CAAC,MAAM,CAAA;AAEhG,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAChC,eAAe,CAAC,MAAM,CAAA;AAExB,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAsC,eAAe,CAAC,MAAM,CAAA;AAE9F,MAAM,4BAA4B,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC/E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAEhD,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5D,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAEhD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAEzF,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,QAAQ;QACR,WAAW,EAAE,CAAC;KACf,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/x402/Header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAE3B,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GAOrB,MAAM,YAAY,CAAA;AAEnB,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAA;AACrE,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACrE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;AAEpE,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAChC,eAAe,CAAC,MAAM,CAAA;AAExB,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAuC,eAAe,CAAC,MAAM,CAAA;AAU/F,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAY,CAAA;QAC5D,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAChD,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GACjC,gBAAgB,CAAC,MAAM,CAAA;AAEzB,wDAAwD;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAsC,gBAAgB,CAAC,MAAM,CAAA;AAEhG,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAChC,eAAe,CAAC,MAAM,CAAA;AAExB,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAsC,eAAe,CAAC,MAAM,CAAA;AAE9F,MAAM,4BAA4B,GAAG,CAAC,KAAc,EAA2B,EAAE;IAC/E,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAEhD,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC5D,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAA;IAEhD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAElG,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,QAAQ;QACR,WAAW,EAAE,CAAC;KACf,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.8.9",
4
+ "version": "0.8.11",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/wevm/mppx#readme",
@@ -13,6 +13,7 @@ import {
13
13
  fetchWithTimeout,
14
14
  isValidAddress,
15
15
  isValidIntegerAmount,
16
+ parseHeaders,
16
17
  skip,
17
18
  warn,
18
19
  } from './helpers.js'
@@ -32,7 +33,9 @@ export async function validateChallenge(
32
33
  verbose: boolean,
33
34
  options?: {
34
35
  body?: string | undefined
36
+ bodyIsAutogenerated?: boolean | undefined
35
37
  query?: string[] | undefined
38
+ extraHeaders?: string[] | undefined
36
39
  discoveryDoc?: Record<string, unknown> | undefined
37
40
  },
38
41
  ): Promise<{
@@ -42,20 +45,28 @@ export async function validateChallenge(
42
45
  }> {
43
46
  const results: CheckResult[] = []
44
47
  const url = buildUrl(baseUrl, endpoint, options?.query)
45
- const fetchHeaders: Record<string, string> = {}
48
+ const fetchHeaders: Record<string, string> = parseHeaders(options?.extraHeaders)
46
49
  let fetchBody: string | undefined
47
50
 
48
- // Make bare unauthenticated request first (no body)
51
+ // If the user explicitly provided a body, include it on the first request
52
+ if (options?.body && !options.bodyIsAutogenerated) {
53
+ fetchBody = options.body
54
+ if (!fetchHeaders['content-type']) fetchHeaders['content-type'] = 'application/json'
55
+ }
56
+
49
57
  let response: Response
50
58
  try {
51
- response = await fetchWithTimeout(url, { method: endpoint.method })
59
+ const init: RequestInit = { method: endpoint.method }
60
+ if (Object.keys(fetchHeaders).length > 0) init.headers = fetchHeaders
61
+ if (fetchBody) init.body = fetchBody
62
+ response = await fetchWithTimeout(url, init)
52
63
  } catch (error) {
53
64
  results.push(fail('Request failed', (error as Error).message))
54
65
  return { results }
55
66
  }
56
67
 
57
- // If we got 400, retry with body (explicit --body or auto-generated from schema)
58
- if (response.status === 400) {
68
+ // If we got 400/422, retry with body (explicit --body or auto-generated from schema)
69
+ if (!fetchBody && (response.status === 400 || response.status === 422)) {
59
70
  const bodyToTry =
60
71
  options?.body ??
61
72
  (options?.discoveryDoc
@@ -99,7 +110,7 @@ export async function validateChallenge(
99
110
  fail(
100
111
  'Returns 402 without credentials',
101
112
  `Got ${response.status} instead`,
102
- response.status === 400
113
+ response.status === 400 || response.status === 422
103
114
  ? 'Server requires a valid request body before returning 402. Add a requestBody schema with examples to your OpenAPI doc, or use --body.'
104
115
  : 'Endpoints that require payment must return HTTP 402 with a WWW-Authenticate: Payment header when no valid credential is provided.',
105
116
  ),
@@ -111,8 +122,8 @@ export async function validateChallenge(
111
122
 
112
123
  // Check WWW-Authenticate header
113
124
  const wwwAuth = response.headers.get(Constants.Headers.wwwAuthenticate)
125
+ const x402Results = checkX402Headers(response)
114
126
  if (!wwwAuth) {
115
- const x402Results = checkX402Headers(response)
116
127
  if (x402Results.length > 0) {
117
128
  results.push(
118
129
  skip('Not an MPP endpoint', 'No WWW-Authenticate header — x402 protocol detected'),
@@ -125,6 +136,7 @@ export async function validateChallenge(
125
136
  }
126
137
  return { results }
127
138
  }
139
+ if (x402Results.length > 0) results.push(...x402Results)
128
140
  if (!wwwAuth.startsWith(`${Constants.Schemes.payment} `)) {
129
141
  results.push(skip('Not an MPP endpoint', `WWW-Authenticate scheme is not Payment`))
130
142
  return { results }
@@ -533,7 +545,7 @@ function checkX402Headers(response: Response): CheckResult[] {
533
545
  : 'X-Payment-Required'
534
546
 
535
547
  try {
536
- const decoded = x402Header.decodePaymentRequired(paymentRequiredRaw)
548
+ const decoded = x402Header.decodePaymentRequiredEnvelope(paymentRequiredRaw)
537
549
  results.push(
538
550
  check(
539
551
  'x402 payment challenge',
@@ -304,4 +304,132 @@ describe('extractRequestBodyFromDiscovery', () => {
304
304
  })
305
305
  expect(JSON.parse(body!)).toEqual({ model: 'gpt-4' })
306
306
  })
307
+
308
+ test('resolves $ref to components/schemas', () => {
309
+ const doc = {
310
+ paths: {
311
+ '/api/orders': {
312
+ post: {
313
+ requestBody: {
314
+ content: {
315
+ 'application/json': {
316
+ schema: { $ref: '#/components/schemas/OrderRequest' },
317
+ },
318
+ },
319
+ },
320
+ },
321
+ },
322
+ },
323
+ components: {
324
+ schemas: {
325
+ OrderRequest: {
326
+ type: 'object',
327
+ required: ['product', 'quantity'],
328
+ properties: {
329
+ product: { type: 'string', example: 'widget' },
330
+ quantity: { type: 'integer', minimum: 1 },
331
+ },
332
+ },
333
+ },
334
+ },
335
+ }
336
+ const body = extractRequestBodyFromDiscovery(doc as Record<string, unknown>, {
337
+ method: 'POST',
338
+ path: '/api/orders',
339
+ })
340
+ expect(JSON.parse(body!)).toEqual({ product: 'widget', quantity: 1 })
341
+ })
342
+
343
+ test('resolves nested $ref in properties', () => {
344
+ const doc = {
345
+ paths: {
346
+ '/api/orders': {
347
+ post: {
348
+ requestBody: {
349
+ content: {
350
+ 'application/json': {
351
+ schema: { $ref: '#/components/schemas/OrderRequest' },
352
+ },
353
+ },
354
+ },
355
+ },
356
+ },
357
+ },
358
+ components: {
359
+ schemas: {
360
+ OrderRequest: {
361
+ type: 'object',
362
+ required: ['customer'],
363
+ properties: {
364
+ customer: { $ref: '#/components/schemas/Customer' },
365
+ },
366
+ },
367
+ Customer: {
368
+ type: 'object',
369
+ required: ['name', 'email'],
370
+ properties: {
371
+ name: { type: 'string' },
372
+ email: { type: 'string', format: 'email' },
373
+ },
374
+ },
375
+ },
376
+ },
377
+ }
378
+ const body = extractRequestBodyFromDiscovery(doc as Record<string, unknown>, {
379
+ method: 'POST',
380
+ path: '/api/orders',
381
+ })
382
+ expect(JSON.parse(body!)).toEqual({ customer: { name: 'test', email: 'test@example.com' } })
383
+ })
384
+
385
+ test('uses first named example from examples map', () => {
386
+ const doc = {
387
+ paths: {
388
+ '/api/test': {
389
+ post: {
390
+ requestBody: {
391
+ content: {
392
+ 'application/json': {
393
+ examples: {
394
+ basic: { value: { prompt: 'hello', model: 'gpt-4' } },
395
+ advanced: { value: { prompt: 'complex', model: 'gpt-4', temp: 0.9 } },
396
+ },
397
+ schema: { type: 'object' },
398
+ },
399
+ },
400
+ },
401
+ },
402
+ },
403
+ },
404
+ }
405
+ const body = extractRequestBodyFromDiscovery(doc as Record<string, unknown>, {
406
+ method: 'POST',
407
+ path: '/api/test',
408
+ })
409
+ expect(JSON.parse(body!)).toEqual({ prompt: 'hello', model: 'gpt-4' })
410
+ })
411
+
412
+ test('returns undefined for unresolvable $ref', () => {
413
+ const doc = {
414
+ paths: {
415
+ '/api/test': {
416
+ post: {
417
+ requestBody: {
418
+ content: {
419
+ 'application/json': {
420
+ schema: { $ref: '#/components/schemas/DoesNotExist' },
421
+ },
422
+ },
423
+ },
424
+ },
425
+ },
426
+ },
427
+ components: { schemas: {} },
428
+ }
429
+ const body = extractRequestBodyFromDiscovery(doc as Record<string, unknown>, {
430
+ method: 'POST',
431
+ path: '/api/test',
432
+ })
433
+ expect(body).toBeUndefined()
434
+ })
307
435
  })
@@ -77,10 +77,19 @@ export function extractRequestBodyFromDiscovery(
77
77
 
78
78
  if (jsonContent.example) return JSON.stringify(jsonContent.example)
79
79
 
80
- const schema = jsonContent.schema as Record<string, unknown> | undefined
80
+ if (jsonContent.examples && typeof jsonContent.examples === 'object') {
81
+ const first = Object.values(jsonContent.examples as Record<string, unknown>)[0] as
82
+ | Record<string, unknown>
83
+ | undefined
84
+ if (first?.value) return JSON.stringify(first.value)
85
+ }
86
+
87
+ let schema = jsonContent.schema as Record<string, unknown> | undefined
88
+ const seen = new Set<string>()
89
+ schema = resolveRef(schema, doc, seen)
81
90
  if (!schema || schema.type !== 'object') return undefined
82
91
 
83
- const result = generateValueFromSchema(schema)
92
+ const result = generateValueFromSchema(schema, doc, seen)
84
93
  if (result && typeof result === 'object' && Object.keys(result as object).length > 0) {
85
94
  return JSON.stringify(result)
86
95
  }
@@ -149,34 +158,60 @@ function substitutePathParams(path: string, params: PathParameter[]): string {
149
158
  })
150
159
  }
151
160
 
152
- function generateValueFromSchema(schema: Record<string, unknown>): unknown {
153
- if (schema.const !== undefined) return schema.const
154
- if (schema.example !== undefined) return schema.example
155
- if (schema.default !== undefined) return schema.default
161
+ // Dereferences a JSON Schema $ref (e.g. "#/components/schemas/Foo") against the root doc.
162
+ function resolveRef(
163
+ schema: Record<string, unknown> | undefined,
164
+ doc: Record<string, unknown>,
165
+ seen?: Set<string>,
166
+ ): Record<string, unknown> | undefined {
167
+ if (!schema || typeof schema.$ref !== 'string') return schema
168
+ if (seen?.has(schema.$ref)) return undefined
169
+ const path = schema.$ref.replace(/^#\//, '').split('/')
170
+ let resolved: unknown = doc
171
+ for (const segment of path) {
172
+ if (resolved && typeof resolved === 'object') resolved = (resolved as any)[segment]
173
+ else return undefined
174
+ }
175
+ return resolved as Record<string, unknown> | undefined
176
+ }
156
177
 
157
- switch (schema.type) {
178
+ // Generates a plausible value for a JSON Schema node (required fields only for objects).
179
+ function generateValueFromSchema(
180
+ schema: Record<string, unknown>,
181
+ doc: Record<string, unknown>,
182
+ seen?: Set<string>,
183
+ ): unknown {
184
+ const resolved = resolveRef(schema, doc, seen) ?? schema
185
+ if (resolved.const !== undefined) return resolved.const
186
+ if (resolved.example !== undefined) return resolved.example
187
+ if (resolved.default !== undefined) return resolved.default
188
+
189
+ switch (resolved.type) {
158
190
  case 'string': {
159
- if (schema.enum && Array.isArray(schema.enum)) return schema.enum[0]
160
- if (schema.format === 'email') return 'test@example.com'
161
- if (schema.format === 'uuid') return '00000000-0000-0000-0000-000000000000'
162
- if (schema.format === 'uri' || schema.format === 'url') return 'https://example.com'
191
+ if (resolved.enum && Array.isArray(resolved.enum)) return resolved.enum[0]
192
+ if (resolved.format === 'email') return 'test@example.com'
193
+ if (resolved.format === 'uuid') return '00000000-0000-0000-0000-000000000000'
194
+ if (resolved.format === 'uri' || resolved.format === 'url') return 'https://example.com'
195
+ if (resolved.format === 'date') return '2026-01-01'
196
+ if (resolved.pattern === '^\\d{5}(?:-\\d{4})?$') return '10001'
197
+ if (resolved.pattern === '^[A-Z]{2}$') return 'US'
163
198
  return 'test'
164
199
  }
165
200
  case 'number':
166
201
  case 'integer':
167
- return (schema.minimum as number) ?? 1
202
+ return (resolved.minimum as number) ?? 1
168
203
  case 'boolean':
169
204
  return true
170
205
  case 'array':
171
206
  return []
172
207
  case 'object': {
173
- const properties = schema.properties as Record<string, Record<string, unknown>> | undefined
208
+ const properties = resolved.properties as Record<string, Record<string, unknown>> | undefined
174
209
  if (!properties) return {}
175
- const required = (schema.required as string[]) || []
210
+ const required = (resolved.required as string[]) || []
176
211
  const obj: Record<string, unknown> = {}
177
212
  for (const key of required) {
178
213
  const prop = properties[key]
179
- if (prop) obj[key] = generateValueFromSchema(prop)
214
+ if (prop) obj[key] = generateValueFromSchema(prop, doc, seen)
180
215
  }
181
216
  return obj
182
217
  }
@@ -154,3 +154,13 @@ export function resolveBodyForEndpoint(
154
154
  } catch {}
155
155
  return rawBody
156
156
  }
157
+
158
+ export function parseHeaders(raw: string[] | undefined): Record<string, string> {
159
+ if (!raw) return {}
160
+ const headers: Record<string, string> = {}
161
+ for (const h of raw) {
162
+ const idx = h.indexOf(':')
163
+ if (idx > 0) headers[h.slice(0, idx).trim().toLowerCase()] = h.slice(idx + 1).trim()
164
+ }
165
+ return headers
166
+ }
@@ -19,12 +19,14 @@ const validate = Cli.create('validate', {
19
19
  'Request body. With --endpoint, used directly. In discovery mode, JSON with / keys is a per-path mapping.',
20
20
  ),
21
21
  query: z.array(z.string()).optional().describe('Query parameter (key=value, repeatable)'),
22
+ header: z.array(z.string()).optional().describe('Request header (key:value, repeatable)'),
22
23
  verbose: z.number().default(0).meta({ count: true }).describe('Verbosity level'),
23
24
  yes: z.boolean().default(false).describe('Auto-approve mainnet payments'),
24
25
  outputJson: z.boolean().default(false).describe('Output results as JSON'),
25
26
  }),
26
27
  alias: {
27
28
  endpoint: 'e',
29
+ header: 'H',
28
30
  verbose: 'v',
29
31
  yes: 'y',
30
32
  outputJson: 'j',
@@ -37,6 +39,7 @@ const validate = Cli.create('validate', {
37
39
  endpoint: c.options.endpoint,
38
40
  body: c.options.body,
39
41
  query: c.options.query,
42
+ headers: c.options.header,
40
43
  verbose: c.options.verbose > 0,
41
44
  yes: c.options.yes,
42
45
  interactive: false,
@@ -66,6 +69,7 @@ const validate = Cli.create('validate', {
66
69
  endpoint: c.options.endpoint,
67
70
  body: c.options.body,
68
71
  query: c.options.query,
72
+ headers: c.options.header,
69
73
  verbose: c.options.verbose > 0,
70
74
  yes: c.options.yes,
71
75
  interactive: !!process.stdin.isTTY,
@@ -26,6 +26,7 @@ import {
26
26
  fetchWithTimeout,
27
27
  formatBytes,
28
28
  isValidIntegerAmount,
29
+ parseHeaders,
29
30
  skip,
30
31
  warn,
31
32
  } from './helpers.js'
@@ -129,6 +130,7 @@ export async function validatePaymentFlow(
129
130
  options: {
130
131
  body?: string | undefined
131
132
  query?: string[] | undefined
133
+ extraHeaders?: string[] | undefined
132
134
  yes?: boolean | undefined
133
135
  silent?: boolean | undefined
134
136
  interactive?: boolean | undefined
@@ -137,7 +139,7 @@ export async function validatePaymentFlow(
137
139
  ): Promise<CheckResult[]> {
138
140
  const results: CheckResult[] = []
139
141
  const url = buildUrl(baseUrl, endpoint, options.query)
140
- const fetchHeaders: Record<string, string> = {}
142
+ const fetchHeaders: Record<string, string> = parseHeaders(options.extraHeaders)
141
143
  let fetchBody: string | undefined
142
144
  if (options.body) {
143
145
  fetchBody = options.body
@@ -293,6 +295,7 @@ type PaymentContext = {
293
295
  options: {
294
296
  body?: string | undefined
295
297
  query?: string[] | undefined
298
+ extraHeaders?: string[] | undefined
296
299
  yes?: boolean | undefined
297
300
  silent?: boolean | undefined
298
301
  interactive?: boolean | undefined
@@ -1,12 +1,32 @@
1
1
  import type * as http from 'node:http'
2
2
 
3
- import { afterEach, describe, expect, test } from 'vp/test'
3
+ import { afterEach, describe, expect, test, vi } from 'vp/test'
4
4
  import * as Http from '~test/Http.js'
5
5
 
6
6
  import * as Challenge from '../Challenge.js'
7
7
  import * as Constants from '../Constants.js'
8
8
  import * as Receipt from '../Receipt.js'
9
- import validate from './validate/index.js'
9
+
10
+ // Keep CLI orchestration tests independent of the public Tempo RPC and faucet.
11
+ vi.doMock('viem/tempo', async () => {
12
+ const actual = await vi.importActual<typeof import('viem/tempo')>('viem/tempo')
13
+ return {
14
+ ...actual,
15
+ Actions: {
16
+ ...actual.Actions,
17
+ faucet: { ...actual.Actions.faucet, fund: vi.fn(async () => []) },
18
+ },
19
+ }
20
+ })
21
+
22
+ vi.doMock('viem/actions', async () => {
23
+ const actual = await vi.importActual<typeof import('viem/actions')>('viem/actions')
24
+ return {
25
+ ...actual,
26
+ prepareTransactionRequest: vi.fn(async () => ({})),
27
+ signTransaction: vi.fn(async () => '0xdeadbeef'),
28
+ }
29
+ })
10
30
 
11
31
  // Auto-cleanup for test servers
12
32
  const servers: Http.TestServer[] = []
@@ -22,6 +42,7 @@ async function testServer(handler: http.RequestListener) {
22
42
  }
23
43
 
24
44
  async function serve(argv: string[]) {
45
+ const { default: validate } = await import('./validate/index.js')
25
46
  let output = ''
26
47
  let exitCode: number | undefined
27
48
  const origLog = console.log
@@ -19,7 +19,9 @@ describe('Mppx', () => {
19
19
  test('exports low-level session method and explicit managed session helper', () => {
20
20
  expectTypeOf(session({ account: {} as Account })).toMatchTypeOf<Method.AnyClient>()
21
21
  expectTypeOf(session.manager({ account: {} as Account })).toHaveProperty('fetch')
22
- expectTypeOf(sessionManager({ account: {} as Account })).toHaveProperty('fetch')
22
+ expectTypeOf(
23
+ sessionManager({ account: {} as Account, resolveAccount: ({ account }) => account }),
24
+ ).toHaveProperty('fetch')
23
25
  expectTypeOf(sessionMethod({ account: {} as Account })).toMatchTypeOf<Method.AnyClient>()
24
26
  expectTypeOf(tempo.session({ account: {} as Account })).toMatchTypeOf<Method.AnyClient>()
25
27
  expectTypeOf(tempo.session.manager({ account: {} as Account })).toHaveProperty('fetch')
@@ -1,3 +1,4 @@
1
+ import { tempo as serverTempo } from 'mppx/server'
1
2
  import { expectTypeOf, test } from 'vp/test'
2
3
 
3
4
  import type {
@@ -22,6 +23,7 @@ import type { SessionTransition as MachineSessionTransition } from './session/cl
22
23
  import type { ChannelTransactionOptions } from './session/precompile/Chain.js'
23
24
  import type { RawAmountString } from './session/precompile/index.js'
24
25
  import type { SettlementSchedule as SessionSettlementSchedule } from './session/server/index.js'
26
+ import type { SessionController } from './session/server/Sse.js'
25
27
 
26
28
  test('tempo session public barrels expose manager and schedule interfaces', () => {
27
29
  expectTypeOf(Tempo.Session).toBeObject()
@@ -43,6 +45,8 @@ test('tempo session public barrels expose manager and schedule interfaces', () =
43
45
  units?: number | undefined
44
46
  }>()
45
47
  expectTypeOf<RawAmountString>().toEqualTypeOf<string>()
48
+ expectTypeOf<serverTempo.Sse.SessionController>().toEqualTypeOf<SessionController>()
49
+ expectTypeOf<Tempo.Session.Server.Sse.SessionController>().toEqualTypeOf<SessionController>()
46
50
  expectTypeOf<ActiveSessionState['status']>().toEqualTypeOf<'active'>()
47
51
  expectTypeOf<VoucherNeededSessionState['status']>().toEqualTypeOf<'voucherNeeded'>()
48
52
  expectTypeOf<ClosedSessionState['status']>().toEqualTypeOf<'closed'>()
@@ -83,6 +87,7 @@ test('tempo session public barrel hides internal session drivers', () => {
83
87
  expectTypeOf<SessionPublic>().not.toHaveProperty('settle')
84
88
  expectTypeOf<SessionClientPublic>().not.toHaveProperty('ChannelOps')
85
89
  expectTypeOf<SessionClientPublic>().not.toHaveProperty('Chain')
90
+ expectTypeOf<SessionClientPublic>().not.toHaveProperty('driveSseResponse')
86
91
  expectTypeOf<SessionServerPublic>().not.toHaveProperty('ChannelOps')
87
92
  expectTypeOf<SessionServerPublic>().not.toHaveProperty('Chain')
88
93
  })