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.
- package/CHANGELOG.md +17 -0
- package/dist/cli/validate/challenge.d.ts +2 -0
- package/dist/cli/validate/challenge.d.ts.map +1 -1
- package/dist/cli/validate/challenge.js +21 -9
- package/dist/cli/validate/challenge.js.map +1 -1
- package/dist/cli/validate/discovery.d.ts.map +1 -1
- package/dist/cli/validate/discovery.js +50 -19
- package/dist/cli/validate/discovery.js.map +1 -1
- package/dist/cli/validate/helpers.d.ts +1 -0
- package/dist/cli/validate/helpers.d.ts.map +1 -1
- package/dist/cli/validate/helpers.js +11 -0
- package/dist/cli/validate/helpers.js.map +1 -1
- package/dist/cli/validate/index.d.ts +1 -0
- package/dist/cli/validate/index.d.ts.map +1 -1
- package/dist/cli/validate/index.js +4 -0
- package/dist/cli/validate/index.js.map +1 -1
- package/dist/cli/validate/payment.d.ts +1 -0
- package/dist/cli/validate/payment.d.ts.map +1 -1
- package/dist/cli/validate/payment.js +2 -2
- package/dist/cli/validate/payment.js.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +39 -2
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +45 -1
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/internal/fee-token.d.ts +8 -0
- package/dist/tempo/internal/fee-token.d.ts.map +1 -1
- package/dist/tempo/internal/fee-token.js +19 -6
- package/dist/tempo/internal/fee-token.js.map +1 -1
- package/dist/tempo/legacy/session/Chain.d.ts.map +1 -1
- package/dist/tempo/legacy/session/Chain.js +53 -50
- package/dist/tempo/legacy/session/Chain.js.map +1 -1
- package/dist/tempo/server/Charge.d.ts +8 -0
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +49 -45
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +7 -0
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/Subscription.js +24 -16
- package/dist/tempo/server/Subscription.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/client/SessionManager.d.ts +3 -0
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/session/client/SessionManager.js +1 -0
- package/dist/tempo/session/client/SessionManager.js.map +1 -1
- package/dist/tempo/session/client/Transports.d.ts +20 -0
- package/dist/tempo/session/client/Transports.d.ts.map +1 -1
- package/dist/tempo/session/client/Transports.js +23 -11
- package/dist/tempo/session/client/Transports.js.map +1 -1
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Chain.js +25 -19
- package/dist/tempo/session/precompile/Chain.js.map +1 -1
- package/dist/tempo/session/server/index.d.ts +2 -0
- package/dist/tempo/session/server/index.d.ts.map +1 -1
- package/dist/tempo/session/server/index.js +2 -0
- package/dist/tempo/session/server/index.js.map +1 -1
- package/dist/validation/core.d.ts +1 -0
- package/dist/validation/core.d.ts.map +1 -1
- package/dist/validation/core.js +5 -0
- package/dist/validation/core.js.map +1 -1
- package/dist/x402/Header.js +1 -1
- package/dist/x402/Header.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/validate/challenge.ts +20 -8
- package/src/cli/validate/discovery.test.ts +128 -0
- package/src/cli/validate/discovery.ts +50 -15
- package/src/cli/validate/helpers.ts +10 -0
- package/src/cli/validate/index.ts +4 -0
- package/src/cli/validate/payment.ts +4 -1
- package/src/cli/validate.test.ts +23 -2
- package/src/client/Mppx.test-d.ts +3 -1
- package/src/tempo/PublicExports.test-d.ts +5 -0
- package/src/tempo/internal/fee-payer.test.ts +93 -0
- package/src/tempo/internal/fee-payer.ts +64 -2
- package/src/tempo/internal/fee-token.test.ts +37 -0
- package/src/tempo/internal/fee-token.ts +26 -5
- package/src/tempo/legacy/session/Chain.test.ts +78 -2
- package/src/tempo/legacy/session/Chain.ts +56 -52
- package/src/tempo/server/Charge.test.ts +121 -6
- package/src/tempo/server/Charge.ts +61 -48
- package/src/tempo/server/Methods.ts +6 -0
- package/src/tempo/server/Subscription.test.ts +79 -4
- package/src/tempo/server/Subscription.ts +24 -16
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/session/client/SessionManager.test.ts +12 -1
- package/src/tempo/session/client/SessionManager.ts +3 -0
- package/src/tempo/session/client/Transports.test.ts +34 -0
- package/src/tempo/session/client/Transports.ts +47 -20
- package/src/tempo/session/precompile/Chain.test.ts +9 -0
- package/src/tempo/session/precompile/Chain.ts +28 -20
- package/src/tempo/session/server/Session.test.ts +23 -3
- package/src/tempo/session/server/index.ts +2 -0
- package/src/validation/core.ts +6 -0
- 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 +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"}
|
|
@@ -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":"AAIA,OAAO,EACL,QAAQ,EAIT,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAS1F,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AAExD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC9B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,aAAa,EAAE,WAAW,EAAE,CAAA;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,eAAe,CAAA;IAC1B,SAAS,EAAE,wBAAwB,EAAE,CAAA;IACrC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9E,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,GAC1E;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC7C;IACE,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,GACD;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,GAC1E;IACE,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B,CAAA;AAEL,0DAA0D;AAC1D,wBAAuB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC,aAAa,CAAC,CA4F7F;AAED,yEAAyE;AACzE,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAqEhF"}
|
package/dist/validation/core.js
CHANGED
|
@@ -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":"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"}
|
package/dist/x402/Header.js
CHANGED
|
@@ -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
|
|
36
|
+
const extensions = record.extensions !== undefined ? ExtensionsSchema.safeParse(record.extensions).data : undefined;
|
|
37
37
|
return {
|
|
38
38
|
accepts: record.accepts,
|
|
39
39
|
...(extensions ? { extensions } : {}),
|
package/dist/x402/Header.js.map
CHANGED
|
@@ -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,
|
|
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
|
@@ -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
|
-
//
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
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 (
|
|
160
|
-
if (
|
|
161
|
-
if (
|
|
162
|
-
if (
|
|
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 (
|
|
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 =
|
|
208
|
+
const properties = resolved.properties as Record<string, Record<string, unknown>> | undefined
|
|
174
209
|
if (!properties) return {}
|
|
175
|
-
const required = (
|
|
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
|
package/src/cli/validate.test.ts
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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
|
})
|