@absol-labs/agent 0.10.0 → 0.11.0
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/README.md +107 -23
- package/dist/capability/invocation-capability.d.ts +18 -6
- package/dist/capability/invocation-capability.d.ts.map +1 -1
- package/dist/capability/invocation-capability.js.map +1 -1
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +20 -4
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.d.ts.map +1 -1
- package/dist/cli/commands/close.js +16 -4
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/invoke.d.ts.map +1 -1
- package/dist/cli/commands/invoke.js +1 -0
- package/dist/cli/commands/invoke.js.map +1 -1
- package/dist/cli/commands/open.d.ts.map +1 -1
- package/dist/cli/commands/open.js +63 -11
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
- package/dist/cli/commands/reclaim-unverified.js +12 -4
- package/dist/cli/commands/reclaim-unverified.js.map +1 -1
- package/dist/cli/commands/reclaim.d.ts.map +1 -1
- package/dist/cli/commands/reclaim.js +16 -5
- package/dist/cli/commands/reclaim.js.map +1 -1
- package/dist/cli/commands/streams.js +1 -1
- package/dist/cli/commands/streams.js.map +1 -1
- package/dist/cli/deps.d.ts +53 -7
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +65 -15
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/privy.d.ts +83 -0
- package/dist/cli/privy.d.ts.map +1 -0
- package/dist/cli/privy.js +230 -0
- package/dist/cli/privy.js.map +1 -0
- package/dist/cli/spend-policy.d.ts +60 -0
- package/dist/cli/spend-policy.d.ts.map +1 -0
- package/dist/cli/spend-policy.js +65 -0
- package/dist/cli/spend-policy.js.map +1 -0
- package/dist/cli/wallet.d.ts +108 -39
- package/dist/cli/wallet.d.ts.map +1 -1
- package/dist/cli/wallet.js +108 -43
- package/dist/cli/wallet.js.map +1 -1
- package/dist/gateway/caller-auth-gateway.d.ts +38 -3
- package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
- package/dist/gateway/caller-auth-gateway.js +25 -1
- package/dist/gateway/caller-auth-gateway.js.map +1 -1
- package/dist/gateway/http-server.d.ts +53 -0
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +189 -4
- package/dist/gateway/http-server.js.map +1 -1
- package/dist/gateway/x402-mode.d.ts +123 -0
- package/dist/gateway/x402-mode.d.ts.map +1 -0
- package/dist/gateway/x402-mode.js +212 -0
- package/dist/gateway/x402-mode.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/mandates/env.d.ts +3 -2
- package/dist/mandates/env.d.ts.map +1 -1
- package/dist/mandates/env.js +3 -2
- package/dist/mandates/env.js.map +1 -1
- package/dist/mcp/server.d.ts +49 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +513 -24
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/service-invoker.d.ts +97 -0
- package/dist/mcp/service-invoker.d.ts.map +1 -0
- package/dist/mcp/service-invoker.js +167 -0
- package/dist/mcp/service-invoker.js.map +1 -0
- package/dist/sdk/invoke.d.ts +19 -4
- package/dist/sdk/invoke.d.ts.map +1 -1
- package/dist/sdk/invoke.js +69 -5
- package/dist/sdk/invoke.js.map +1 -1
- package/dist/x402/delivery-oracle.d.ts +108 -0
- package/dist/x402/delivery-oracle.d.ts.map +1 -0
- package/dist/x402/delivery-oracle.js +174 -0
- package/dist/x402/delivery-oracle.js.map +1 -0
- package/dist/x402/facilitator-server-entry.d.ts +3 -0
- package/dist/x402/facilitator-server-entry.d.ts.map +1 -0
- package/dist/x402/facilitator-server-entry.js +27 -0
- package/dist/x402/facilitator-server-entry.js.map +1 -0
- package/dist/x402/facilitator-server.d.ts +73 -0
- package/dist/x402/facilitator-server.d.ts.map +1 -0
- package/dist/x402/facilitator-server.js +305 -0
- package/dist/x402/facilitator-server.js.map +1 -0
- package/dist/x402/facilitator.d.ts +69 -17
- package/dist/x402/facilitator.d.ts.map +1 -1
- package/dist/x402/facilitator.js +76 -33
- package/dist/x402/facilitator.js.map +1 -1
- package/dist/x402/payment-requirements.d.ts +106 -0
- package/dist/x402/payment-requirements.d.ts.map +1 -0
- package/dist/x402/payment-requirements.js +138 -0
- package/dist/x402/payment-requirements.js.map +1 -0
- package/dist/x402/relayer.d.ts +41 -0
- package/dist/x402/relayer.d.ts.map +1 -0
- package/dist/x402/relayer.js +64 -0
- package/dist/x402/relayer.js.map +1 -0
- package/dist/x402/resource-index.d.ts +75 -0
- package/dist/x402/resource-index.d.ts.map +1 -0
- package/dist/x402/resource-index.js +126 -0
- package/dist/x402/resource-index.js.map +1 -0
- package/dist/x402/verified-delivery-facilitator.d.ts +285 -0
- package/dist/x402/verified-delivery-facilitator.d.ts.map +1 -0
- package/dist/x402/verified-delivery-facilitator.js +423 -0
- package/dist/x402/verified-delivery-facilitator.js.map +1 -0
- package/dist/zktls/t2-delivery-proof.d.ts +6 -6
- package/docs/agent-layer.md +12 -8
- package/docs/cli.md +158 -22
- package/docs/mcp-hosted.md +4 -3
- package/docs/mcp-reference.md +175 -0
- package/docs/quickstart.md +18 -4
- package/docs/threat-model.md +4 -3
- package/docs/x402.md +648 -0
- package/package.json +18 -7
- package/src/capability/invocation-capability.ts +17 -1
- package/src/cli/commands/claim.ts +30 -4
- package/src/cli/commands/close.ts +20 -4
- package/src/cli/commands/invoke.ts +1 -0
- package/src/cli/commands/open.ts +76 -10
- package/src/cli/commands/reclaim-unverified.ts +16 -4
- package/src/cli/commands/reclaim.ts +22 -5
- package/src/cli/commands/streams.ts +1 -1
- package/src/cli/deps.ts +115 -24
- package/src/cli/privy.ts +396 -0
- package/src/cli/spend-policy.ts +139 -0
- package/src/cli/wallet.ts +188 -57
- package/src/gateway/caller-auth-gateway.ts +77 -6
- package/src/gateway/http-server.ts +280 -6
- package/src/gateway/x402-mode.ts +350 -0
- package/src/index.ts +40 -5
- package/src/mandates/env.ts +3 -2
- package/src/mcp/server.ts +681 -29
- package/src/mcp/service-invoker.ts +285 -0
- package/src/sdk/invoke.ts +90 -12
- package/src/x402/delivery-oracle.ts +285 -0
- package/src/x402/facilitator-server-entry.ts +35 -0
- package/src/x402/facilitator-server.ts +445 -0
- package/src/x402/facilitator.ts +125 -46
- package/src/x402/payment-requirements.ts +231 -0
- package/src/x402/relayer.ts +122 -0
- package/src/x402/resource-index.ts +228 -0
- package/src/x402/verified-delivery-facilitator.ts +744 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caller-auth-gateway.js","sourceRoot":"","sources":["../../src/gateway/caller-auth-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAC;AAEhE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,4BAA4B,EAC5B,iCAAiC,GAGlC,MAAM,wCAAwC,CAAC;AA8DhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,CAAC;AAEtD,uFAAuF;AACvF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;;;GAIG;AACH,MAAM,iBAAiB,GAAsC;IAC3D,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;CACnB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,gBAAgB,GAAwC,IAAI,GAAG,CAAC;IACpE,mBAAmB;IACnB,mBAAmB;CACpB,CAAC,CAAC;AAoDH;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IAGT;IAFZ,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IAErE,YAA6B,aAAa,MAAM;QAAnB,eAAU,GAAV,UAAU,CAAS;IAAG,CAAC;IAEpD,GAAG,CAAC,QAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,QAAa,EAAE,MAA8B;QAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe,EAAE,OAAsC;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,iGAAiG;AACjG,MAAM,UAAU,qBAAqB,CAAC,OAGrC;IACC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;QACtC,MAAM,EAAE,OAAO,CAAC,aAAa;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,QAAQ;YACtB,IAAI,CAAC;gBACH,qEAAqE;gBACrE,6DAA6D;gBAC7D,uEAAuE;gBACvE,oEAAoE;gBACpE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACxC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5B,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;iBACrD,CAAC,CAAC;gBACH,OAAO;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,UAAU,EAAE;wBACV,WAAW,EAAE,KAAK,CAAC,MAAM;wBACzB,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;qBACxC;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,yBAAyB,CACjC,yBAAyB,QAAQ,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9F,EAAE,KAAK,EAAE,CACV,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IAClB,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,OAAO,CAAC,KAAU,EAAE,gBAAwB;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,gBAAgB,GAAG,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAqDD;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACX,aAAa,CAA0B;IACvC,wBAAwB,CAAS;IACjC,aAAa,CAAsB;IACnC,UAAU,CAAmB;IAC7B,UAAU,CAAS;IACnB,MAAM,CAAkC;IACxC,WAAW,CAAsB;IACjC,GAAG,CAAe;IAEnC,YAAY,MAA+B;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,GAAG,CAChB,MAAM,CAAC,UAAU,IAAI,sBAAsB,CAC5C,CAAC,WAAW,EAAE,CAAC;QAChB,MAAM,aAAa,GACjB,MAAM,CAAC,YAAY;YACnB,qBAAqB,CAAC;gBACpB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,MAAM,EAAE,MAAM,CAAC,MAAgB;aAChC,CAAC,CAAC;QACL,MAAM,aAAa,GACjB,MAAM,CAAC,0BAA0B;YACjC,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,qBAAqB,CAAC;gBACpB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,MAAM;aACP,CAAC,CACH,CAAC;QACJ,IAAI,aAAa,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,WAAW,gCAAgC,gEAAgE,CAC5G,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;QAEvD,MAAM,YAAY,GAChB,MAAM,CAAC,wBAAwB,IAAI,mCAAmC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,YAAY,CAAC;QAC7C,IAAI,CAAC,aAAa;YAChB,MAAM,CAAC,aAAa,IAAI,IAAI,2BAA2B,EAAE,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,wBAAwB,EAAE,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;YAChC,iBAAiB,EAAE,MAAM,CAAC,aAAa;SACxC,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAA+B;QAE/B,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,UAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,UAAU,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,4BAA4B,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,iCAAiC,CAC9C,UAAU,EACV,IAAI,CAAC,MAAM,EACX,UAAU,CAAC,SAAgB,CAC5B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,sEAAsE;QACtE,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAY,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAe,CAAC;QAE5C,wEAAwE;QACxE,0EAA0E;QAC1E,gBAAgB;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,4EAA4E;QAC5E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAC/D,CAAC;QAEF,0EAA0E;QAC1E,uEAAuE;QACvE,8CAA8C;QAC9C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACvE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,uDAAuD;QACvD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACvE,CAAC;IAED,4FAA4F;IACpF,YAAY,CAClB,MAAyB,EACzB,UAAsC,EACtC,UAAkB;QAElB,2EAA2E;QAC3E,qDAAqD;QACrD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc;gBAC3C,IAAI,CAAC,wBAAwB,EAC/B,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IACE,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,EACvE,CAAC;YACD,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,IAAI,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/C,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,SAAS,aAAa,CAAC,MAA8B;IACnD,OAAO,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,CAAC;AAED,SAAS,eAAe,CACtB,OAA0C;IAE1C,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAA2B,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,KAAmC;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAsB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QAC/C,IACE,SAAS,KAAK,SAAS;YACvB,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,GAAG,OAAO,CAAC,EAC9C,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,IAAI,CACX,MAA8B,EAC9B,UAAqB,EACrB,UAAuC;IAEvC,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,MAAM;QACN,UAAU;QACV,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAAqD,EACrD,IAAY;IAEZ,+EAA+E;IAC/E,mEAAmE;IACnE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"caller-auth-gateway.js","sourceRoot":"","sources":["../../src/gateway/caller-auth-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { type Server } from "node:http";
|
|
2
2
|
import { type Address, type Hex } from "viem";
|
|
3
3
|
import { CallerAuthGateway } from "./caller-auth-gateway.js";
|
|
4
|
+
import { type GatewayX402Mode } from "./x402-mode.js";
|
|
4
5
|
export interface CallerAuthGatewayServerConfig {
|
|
5
6
|
readonly gateway: CallerAuthGateway;
|
|
6
7
|
/** Base URL of the real service this gateway fronts (e.g. `https://svc.example.com`). */
|
|
7
8
|
readonly upstreamUrl: string;
|
|
8
9
|
/** Extra request-timeout for the upstream fetch, in ms. Default 30000. */
|
|
9
10
|
readonly upstreamTimeoutMs?: number;
|
|
11
|
+
/**
|
|
12
|
+
* The same {@link GatewayX402Mode} given to the gateway. Required for the
|
|
13
|
+
* x402 path: the gateway VERIFIES a payment, this server SETTLES it once the
|
|
14
|
+
* upstream has produced a response.
|
|
15
|
+
*/
|
|
16
|
+
readonly x402?: GatewayX402Mode;
|
|
10
17
|
}
|
|
11
18
|
export interface CallerAuthGatewayServer {
|
|
12
19
|
readonly httpServer: Server;
|
|
@@ -17,6 +24,11 @@ export interface CallerAuthGatewayServer {
|
|
|
17
24
|
close(): Promise<void>;
|
|
18
25
|
}
|
|
19
26
|
export declare function createCallerAuthGatewayServer(config: CallerAuthGatewayServerConfig): CallerAuthGatewayServer;
|
|
27
|
+
/**
|
|
28
|
+
* The upstream budget, capped so the signed authorization is still settleable
|
|
29
|
+
* when the call returns. Returns <= 0 when there is no usable window at all.
|
|
30
|
+
*/
|
|
31
|
+
export declare function boundedUpstreamTimeoutMs(upstreamTimeoutMs: number, validBeforeSeconds: number | undefined, nowSeconds?: number): number;
|
|
20
32
|
export interface CallerAuthGatewayEnvConfig {
|
|
21
33
|
readonly host: string;
|
|
22
34
|
readonly port: number;
|
|
@@ -31,6 +43,21 @@ export interface CallerAuthGatewayEnvConfig {
|
|
|
31
43
|
readonly corroboratingRpcUrls: readonly string[];
|
|
32
44
|
/** Freshness bound for on-chain stream state, in seconds. */
|
|
33
45
|
readonly maxStateStalenessSeconds: number;
|
|
46
|
+
/** Set only when standard-x402 mode is enabled. */
|
|
47
|
+
readonly x402?: CallerAuthGatewayX402EnvConfig;
|
|
48
|
+
}
|
|
49
|
+
export interface CallerAuthGatewayX402EnvConfig {
|
|
50
|
+
/** Per-call price in the asset's base units (micro-USDC). Seller-set, unsigned. */
|
|
51
|
+
readonly pricePerCallBaseUnits: bigint;
|
|
52
|
+
/** A facilitator exposing `/verify` and `/settle` — e.g. Metrik's own. */
|
|
53
|
+
readonly facilitatorUrl: string;
|
|
54
|
+
/** The public origin buyers reach this gateway on. Becomes `resource`. */
|
|
55
|
+
readonly resourceBaseUrl: string;
|
|
56
|
+
/** Listing source used to derive `payTo` from the operator-signed descriptor. */
|
|
57
|
+
readonly registryUrl?: string;
|
|
58
|
+
readonly maxTimeoutSeconds?: number;
|
|
59
|
+
/** Bearer token for the facilitator's `/settle`. Required by Metrik's own. */
|
|
60
|
+
readonly facilitatorToken?: string;
|
|
34
61
|
}
|
|
35
62
|
/**
|
|
36
63
|
* Parses the gateway's env contract:
|
|
@@ -56,6 +83,32 @@ export interface CallerAuthGatewayEnvConfig {
|
|
|
56
83
|
* Fail-closed: throws if any required var is missing or malformed.
|
|
57
84
|
*/
|
|
58
85
|
export declare function parseCallerAuthGatewayEnvConfig(env?: NodeJS.ProcessEnv): CallerAuthGatewayEnvConfig;
|
|
86
|
+
/**
|
|
87
|
+
* x402 mode is OFF unless `METRIK_GATEWAY_X402_PRICE_BASE_UNITS` is set. Once
|
|
88
|
+
* on, every other x402 var is required: a half-configured paywall would answer
|
|
89
|
+
* `402` with a quote it cannot settle.
|
|
90
|
+
*
|
|
91
|
+
* Note what is NOT here: `payTo`. It is never configurable — it is resolved at
|
|
92
|
+
* startup from the operator-signed descriptor for this gateway's `serviceRef`
|
|
93
|
+
* (see {@link resolveSignedListingPayee}), and the gateway refuses to start if
|
|
94
|
+
* that lookup fails.
|
|
95
|
+
*/
|
|
96
|
+
export declare function parseGatewayX402EnvConfig(env?: NodeJS.ProcessEnv): CallerAuthGatewayX402EnvConfig | undefined;
|
|
97
|
+
export declare class UnresolvedListingPayeeError extends Error {
|
|
98
|
+
constructor(serviceRef: string);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Resolves `{serviceRef, operator}` from the registry. `discoverServices`
|
|
102
|
+
* re-derives `serviceRef` from the signed content and recovers the operator's
|
|
103
|
+
* EIP-712 signature, dropping anything that fails — so what comes back here is
|
|
104
|
+
* signed, not merely served.
|
|
105
|
+
*/
|
|
106
|
+
export declare function resolveSignedListingPayee(serviceRef: Hex, registryUrl?: string): Promise<{
|
|
107
|
+
readonly serviceRef: Hex;
|
|
108
|
+
readonly operator: Address;
|
|
109
|
+
}>;
|
|
110
|
+
/** Builds the gateway's x402 mode, deriving `payTo` from the signed listing. */
|
|
111
|
+
export declare function buildGatewayX402Mode(config: CallerAuthGatewayEnvConfig): Promise<GatewayX402Mode | undefined>;
|
|
59
112
|
/** Builds and starts the reference gateway server entirely from the environment. */
|
|
60
113
|
export declare function startCallerAuthGatewayServerFromEnv(env?: NodeJS.ProcessEnv): Promise<CallerAuthGatewayServer & {
|
|
61
114
|
readonly boundPort: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EAEZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAoB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { createServer, } from "node:http";
|
|
2
2
|
import { isAddress, isHex } from "viem";
|
|
3
3
|
import { CallerAuthGateway, DEFAULT_MAX_STATE_STALENESS_SECONDS, MAX_CORROBORATING_STREAM_READERS, } from "./caller-auth-gateway.js";
|
|
4
|
+
import { createHttpFacilitatorClient, createListingPriceQuoter, encodeSettleResponseHeader, X402_PAYMENT_RESPONSE_HEADER, X402_SETTLEMENT_HEADROOM_SECONDS, } from "./x402-mode.js";
|
|
5
|
+
import { discoverServices } from "../discovery/registry.js";
|
|
4
6
|
/**
|
|
5
7
|
* Reference standalone reverse-proxy gateway server (metrik-agent#63).
|
|
6
8
|
*
|
|
@@ -30,7 +32,7 @@ export function createCallerAuthGatewayServer(config) {
|
|
|
30
32
|
const upstreamBase = new URL(config.upstreamUrl);
|
|
31
33
|
const upstreamTimeoutMs = config.upstreamTimeoutMs ?? 30_000;
|
|
32
34
|
const httpServer = createServer((req, res) => {
|
|
33
|
-
handleRequest(req, res, config.gateway, upstreamBase, upstreamTimeoutMs).catch((error) => {
|
|
35
|
+
handleRequest(req, res, config.gateway, upstreamBase, upstreamTimeoutMs, config.x402).catch((error) => {
|
|
34
36
|
logError("unhandled request error", error);
|
|
35
37
|
if (!res.headersSent) {
|
|
36
38
|
writeJsonError(res, 500, "internal-error");
|
|
@@ -56,7 +58,7 @@ export function createCallerAuthGatewayServer(config) {
|
|
|
56
58
|
}),
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
|
-
async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs) {
|
|
61
|
+
async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs, x402) {
|
|
60
62
|
const requestUrl = new URL(req.url ?? "/", "http://localhost");
|
|
61
63
|
const method = req.method ?? "GET";
|
|
62
64
|
const headers = normalizeIncomingHeaders(req.headers);
|
|
@@ -66,6 +68,14 @@ async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs)
|
|
|
66
68
|
path: requestUrl.pathname,
|
|
67
69
|
});
|
|
68
70
|
if (!decision.authorized) {
|
|
71
|
+
// The x402 challenge is a PROTOCOL body, not Metrik's `{authorized,reason}`
|
|
72
|
+
// shape: `x402-fetch` parses `{x402Version, accepts}` and nothing else.
|
|
73
|
+
if (decision.x402PaymentRequired !== undefined) {
|
|
74
|
+
res
|
|
75
|
+
.writeHead(402, { "Content-Type": "application/json" })
|
|
76
|
+
.end(JSON.stringify(decision.x402PaymentRequired));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
69
79
|
writeJsonError(res, decision.httpStatus ?? 403, decision.reason ?? "unauthorized");
|
|
70
80
|
return;
|
|
71
81
|
}
|
|
@@ -81,8 +91,19 @@ async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs)
|
|
|
81
91
|
upstreamHeaders.set(key, value);
|
|
82
92
|
}
|
|
83
93
|
const upstreamUrl = new URL(requestUrl.pathname + requestUrl.search, upstreamBase);
|
|
94
|
+
// Bound the upstream by the payment's OWN deadline, not just by the server's
|
|
95
|
+
// timeout. Settlement happens after the upstream returns, so an upstream that
|
|
96
|
+
// outlives the signed authorization would produce its side effects and then
|
|
97
|
+
// be unsettleable — the caller would get the work for free (never the response
|
|
98
|
+
// body, which is only flushed after settlement, but the side effects are
|
|
99
|
+
// real). Aborting early turns that into an ordinary 502.
|
|
100
|
+
const effectiveTimeoutMs = boundedUpstreamTimeoutMs(upstreamTimeoutMs, decision.x402Payment?.validBefore);
|
|
101
|
+
if (effectiveTimeoutMs <= 0) {
|
|
102
|
+
writeJsonError(res, 402, "x402-authorization-too-short");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
84
105
|
const controller = new AbortController();
|
|
85
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
106
|
+
const timeout = setTimeout(() => controller.abort(), effectiveTimeoutMs);
|
|
86
107
|
try {
|
|
87
108
|
const upstreamResponse = await fetch(upstreamUrl, {
|
|
88
109
|
method,
|
|
@@ -90,8 +111,24 @@ async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs)
|
|
|
90
111
|
...(body === undefined ? {} : { body }),
|
|
91
112
|
signal: controller.signal,
|
|
92
113
|
});
|
|
93
|
-
res.writeHead(upstreamResponse.status, headersToObject(upstreamResponse.headers));
|
|
94
114
|
const buffer = Buffer.from(await upstreamResponse.arrayBuffer());
|
|
115
|
+
const responseHeaders = headersToObject(upstreamResponse.headers);
|
|
116
|
+
// Settle AFTER the upstream produced a response and BEFORE that response is
|
|
117
|
+
// flushed. Buyer-favouring on both edges: a call that never produced a
|
|
118
|
+
// response is never charged for, and a payment that cannot be settled
|
|
119
|
+
// returns `402` instead of handing over the goods for free.
|
|
120
|
+
if (decision.x402Payment !== undefined) {
|
|
121
|
+
const settled = await settleX402(decision, x402);
|
|
122
|
+
if (settled === undefined) {
|
|
123
|
+
writeJsonError(res, 402, "x402-settlement-failed");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
responseHeaders[X402_PAYMENT_RESPONSE_HEADER] =
|
|
127
|
+
encodeSettleResponseHeader(settled);
|
|
128
|
+
responseHeaders["access-control-expose-headers"] =
|
|
129
|
+
X402_PAYMENT_RESPONSE_HEADER;
|
|
130
|
+
}
|
|
131
|
+
res.writeHead(upstreamResponse.status, responseHeaders);
|
|
95
132
|
res.end(buffer);
|
|
96
133
|
}
|
|
97
134
|
catch (error) {
|
|
@@ -102,6 +139,45 @@ async function handleRequest(req, res, gateway, upstreamBase, upstreamTimeoutMs)
|
|
|
102
139
|
clearTimeout(timeout);
|
|
103
140
|
}
|
|
104
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* The upstream budget, capped so the signed authorization is still settleable
|
|
144
|
+
* when the call returns. Returns <= 0 when there is no usable window at all.
|
|
145
|
+
*/
|
|
146
|
+
export function boundedUpstreamTimeoutMs(upstreamTimeoutMs, validBeforeSeconds, nowSeconds = Math.floor(Date.now() / 1000)) {
|
|
147
|
+
if (validBeforeSeconds === undefined) {
|
|
148
|
+
return upstreamTimeoutMs;
|
|
149
|
+
}
|
|
150
|
+
const remainingSeconds = validBeforeSeconds - nowSeconds - X402_SETTLEMENT_HEADROOM_SECONDS;
|
|
151
|
+
if (remainingSeconds <= 0) {
|
|
152
|
+
return 0;
|
|
153
|
+
}
|
|
154
|
+
return Math.min(upstreamTimeoutMs, remainingSeconds * 1000);
|
|
155
|
+
}
|
|
156
|
+
/** Returns the settlement result, or `undefined` if nothing was settled. */
|
|
157
|
+
async function settleX402(decision, x402) {
|
|
158
|
+
const payment = decision.x402Payment;
|
|
159
|
+
if (payment === undefined) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
if (x402 === undefined) {
|
|
163
|
+
// The gateway accepted an x402 payment but this server was given no
|
|
164
|
+
// facilitator to settle it with. Refuse: serving here would be free service.
|
|
165
|
+
logError("x402 settlement", new Error("gateway accepted an x402 payment but the server has no x402 facilitator configured"));
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
const settled = await x402.facilitator.settle(payment.payload, payment.requirements);
|
|
170
|
+
if (settled.success !== true) {
|
|
171
|
+
logError("x402 settlement", new Error(settled.errorReason ?? "facilitator reported failure"));
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
return settled;
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
logError("x402 settlement", error);
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
105
181
|
function normalizeIncomingHeaders(headers) {
|
|
106
182
|
const normalized = {};
|
|
107
183
|
for (const [key, value] of Object.entries(headers)) {
|
|
@@ -230,6 +306,7 @@ export function parseCallerAuthGatewayEnvConfig(env = process.env) {
|
|
|
230
306
|
maxStateStalenessSeconds <= 0) {
|
|
231
307
|
throw new Error(`invalid METRIK_GATEWAY_MAX_STATE_STALENESS_SECONDS: ${stalenessRaw}`);
|
|
232
308
|
}
|
|
309
|
+
const x402 = parseGatewayX402EnvConfig(env);
|
|
233
310
|
return {
|
|
234
311
|
host,
|
|
235
312
|
port,
|
|
@@ -244,6 +321,105 @@ export function parseCallerAuthGatewayEnvConfig(env = process.env) {
|
|
|
244
321
|
corroboratingRpcUrls,
|
|
245
322
|
maxStateStalenessSeconds,
|
|
246
323
|
...(headerName === undefined ? {} : { headerName }),
|
|
324
|
+
...(x402 === undefined ? {} : { x402 }),
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* x402 mode is OFF unless `METRIK_GATEWAY_X402_PRICE_BASE_UNITS` is set. Once
|
|
329
|
+
* on, every other x402 var is required: a half-configured paywall would answer
|
|
330
|
+
* `402` with a quote it cannot settle.
|
|
331
|
+
*
|
|
332
|
+
* Note what is NOT here: `payTo`. It is never configurable — it is resolved at
|
|
333
|
+
* startup from the operator-signed descriptor for this gateway's `serviceRef`
|
|
334
|
+
* (see {@link resolveSignedListingPayee}), and the gateway refuses to start if
|
|
335
|
+
* that lookup fails.
|
|
336
|
+
*/
|
|
337
|
+
export function parseGatewayX402EnvConfig(env = process.env) {
|
|
338
|
+
const rawPrice = env.METRIK_GATEWAY_X402_PRICE_BASE_UNITS?.trim();
|
|
339
|
+
if (rawPrice === undefined || rawPrice.length === 0) {
|
|
340
|
+
return undefined;
|
|
341
|
+
}
|
|
342
|
+
let pricePerCallBaseUnits;
|
|
343
|
+
try {
|
|
344
|
+
pricePerCallBaseUnits = BigInt(rawPrice);
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
throw new Error(`invalid METRIK_GATEWAY_X402_PRICE_BASE_UNITS: ${rawPrice} (integer base units, e.g. 1000 = 0.001 USDC)`);
|
|
348
|
+
}
|
|
349
|
+
if (pricePerCallBaseUnits <= 0n) {
|
|
350
|
+
throw new Error("METRIK_GATEWAY_X402_PRICE_BASE_UNITS must be positive");
|
|
351
|
+
}
|
|
352
|
+
const facilitatorUrl = requireEnv(env, "METRIK_GATEWAY_X402_FACILITATOR_URL");
|
|
353
|
+
const resourceBaseUrl = requireEnv(env, "METRIK_GATEWAY_X402_RESOURCE_BASE_URL");
|
|
354
|
+
for (const candidate of [facilitatorUrl, resourceBaseUrl]) {
|
|
355
|
+
// eslint-disable-next-line no-new -- validates the URL is well-formed.
|
|
356
|
+
new URL(candidate);
|
|
357
|
+
}
|
|
358
|
+
const registryUrl = env.METRIK_GATEWAY_X402_REGISTRY_URL;
|
|
359
|
+
const facilitatorToken = env.METRIK_GATEWAY_X402_FACILITATOR_TOKEN?.trim();
|
|
360
|
+
const rawTimeout = env.METRIK_GATEWAY_X402_MAX_TIMEOUT_SECONDS;
|
|
361
|
+
let maxTimeoutSeconds;
|
|
362
|
+
if (rawTimeout !== undefined && rawTimeout.trim().length > 0) {
|
|
363
|
+
maxTimeoutSeconds = Number(rawTimeout);
|
|
364
|
+
if (!Number.isInteger(maxTimeoutSeconds) || maxTimeoutSeconds <= 0) {
|
|
365
|
+
throw new Error(`invalid METRIK_GATEWAY_X402_MAX_TIMEOUT_SECONDS: ${rawTimeout}`);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return {
|
|
369
|
+
pricePerCallBaseUnits,
|
|
370
|
+
facilitatorUrl,
|
|
371
|
+
resourceBaseUrl,
|
|
372
|
+
...(registryUrl === undefined ? {} : { registryUrl }),
|
|
373
|
+
...(maxTimeoutSeconds === undefined ? {} : { maxTimeoutSeconds }),
|
|
374
|
+
...(facilitatorToken === undefined || facilitatorToken.length === 0
|
|
375
|
+
? {}
|
|
376
|
+
: { facilitatorToken }),
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
export class UnresolvedListingPayeeError extends Error {
|
|
380
|
+
constructor(serviceRef) {
|
|
381
|
+
super(`no operator-signed listing found for serviceRef ${serviceRef}. ` +
|
|
382
|
+
"x402 mode refuses to start: payTo is derived from the signed descriptor and " +
|
|
383
|
+
"is never taken from configuration, so an unresolved listing has no payee.");
|
|
384
|
+
this.name = "UnresolvedListingPayeeError";
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Resolves `{serviceRef, operator}` from the registry. `discoverServices`
|
|
389
|
+
* re-derives `serviceRef` from the signed content and recovers the operator's
|
|
390
|
+
* EIP-712 signature, dropping anything that fails — so what comes back here is
|
|
391
|
+
* signed, not merely served.
|
|
392
|
+
*/
|
|
393
|
+
export async function resolveSignedListingPayee(serviceRef, registryUrl) {
|
|
394
|
+
const listings = await discoverServices(registryUrl === undefined ? {} : { registryUrl });
|
|
395
|
+
const match = listings.find((listing) => listing.serviceRef.toLowerCase() === serviceRef.toLowerCase());
|
|
396
|
+
if (match === undefined) {
|
|
397
|
+
throw new UnresolvedListingPayeeError(serviceRef);
|
|
398
|
+
}
|
|
399
|
+
return { serviceRef: match.serviceRef, operator: match.operator };
|
|
400
|
+
}
|
|
401
|
+
/** Builds the gateway's x402 mode, deriving `payTo` from the signed listing. */
|
|
402
|
+
export async function buildGatewayX402Mode(config) {
|
|
403
|
+
if (config.x402 === undefined) {
|
|
404
|
+
return undefined;
|
|
405
|
+
}
|
|
406
|
+
const listing = await resolveSignedListingPayee(config.serviceRef, config.x402.registryUrl);
|
|
407
|
+
return {
|
|
408
|
+
quote: createListingPriceQuoter({
|
|
409
|
+
listing,
|
|
410
|
+
resourceBaseUrl: config.x402.resourceBaseUrl,
|
|
411
|
+
pricePerCallBaseUnits: config.x402.pricePerCallBaseUnits,
|
|
412
|
+
chainId: config.chainId,
|
|
413
|
+
...(config.x402.maxTimeoutSeconds === undefined
|
|
414
|
+
? {}
|
|
415
|
+
: { maxTimeoutSeconds: config.x402.maxTimeoutSeconds }),
|
|
416
|
+
}),
|
|
417
|
+
facilitator: createHttpFacilitatorClient({
|
|
418
|
+
url: config.x402.facilitatorUrl,
|
|
419
|
+
...(config.x402.facilitatorToken === undefined
|
|
420
|
+
? {}
|
|
421
|
+
: { token: config.x402.facilitatorToken }),
|
|
422
|
+
}),
|
|
247
423
|
};
|
|
248
424
|
}
|
|
249
425
|
function requireEnv(env, name) {
|
|
@@ -256,6 +432,7 @@ function requireEnv(env, name) {
|
|
|
256
432
|
/** Builds and starts the reference gateway server entirely from the environment. */
|
|
257
433
|
export async function startCallerAuthGatewayServerFromEnv(env = process.env) {
|
|
258
434
|
const config = parseCallerAuthGatewayEnvConfig(env);
|
|
435
|
+
const x402 = await buildGatewayX402Mode(config);
|
|
259
436
|
const gateway = new CallerAuthGateway({
|
|
260
437
|
escrowAddress: config.escrowAddress,
|
|
261
438
|
rpcUrl: config.rpcUrl,
|
|
@@ -267,6 +444,7 @@ export async function startCallerAuthGatewayServerFromEnv(env = process.env) {
|
|
|
267
444
|
...(config.headerName === undefined
|
|
268
445
|
? {}
|
|
269
446
|
: { headerName: config.headerName }),
|
|
447
|
+
...(x402 === undefined ? {} : { x402 }),
|
|
270
448
|
});
|
|
271
449
|
if (config.corroboratingRpcUrls.length === 0) {
|
|
272
450
|
console.error("[metrik-caller-auth-gateway] WARNING: no METRIK_GATEWAY_CORROBORATING_RPC_URLS " +
|
|
@@ -275,9 +453,16 @@ export async function startCallerAuthGatewayServerFromEnv(env = process.env) {
|
|
|
275
453
|
`${config.maxStateStalenessSeconds}s by the freshness check). Configure at least ` +
|
|
276
454
|
"one INDEPENDENT provider to close that window.");
|
|
277
455
|
}
|
|
456
|
+
if (x402 !== undefined && config.x402 !== undefined) {
|
|
457
|
+
console.error("[metrik-caller-auth-gateway] standard x402 mode ENABLED: callers with no Metrik " +
|
|
458
|
+
`capability are quoted ${config.x402.pricePerCallBaseUnits} base units per call, ` +
|
|
459
|
+
`settled through ${config.x402.facilitatorUrl}. This is a per-call payment with NO ` +
|
|
460
|
+
"escrow and NO recoverability — the stream path remains the only recoverable one.");
|
|
461
|
+
}
|
|
278
462
|
const server = createCallerAuthGatewayServer({
|
|
279
463
|
gateway,
|
|
280
464
|
upstreamUrl: config.upstreamUrl,
|
|
465
|
+
...(x402 === undefined ? {} : { x402 }),
|
|
281
466
|
});
|
|
282
467
|
const { port } = await server.listen(config.port, config.host);
|
|
283
468
|
return Object.assign(server, { boundPort: port });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,SAAS,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAC;AAEhE,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,gCAAgC,GAEjC,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,IAAI;IACJ,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,MAAM;IACN,gBAAgB;CACjB,CAAC,CAAC;AAgBH,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAE7D,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,aAAa,CACX,GAAG,EACH,GAAG,EACH,MAAM,CAAC,OAAO,EACd,YAAY,EACZ,iBAAiB,CAClB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,EAAE,CACjC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACjC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAiB,CAAC;gBACpD,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACJ,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAoB,EACpB,GAAmB,EACnB,OAA0B,EAC1B,YAAiB,EACjB,iBAAyB;IAEzB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;QACvC,OAAO;QACP,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,cAAc,CACZ,GAAG,EACH,QAAQ,CAAC,UAAU,IAAI,GAAG,EAC1B,QAAQ,CAAC,MAAM,IAAI,cAAc,CAClC,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,EACvC,YAAY,CACb,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACxE,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YAChD,MAAM;YACN,OAAO,EAAE,eAAe;YACxB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,CACX,gBAAgB,CAAC,MAAM,EACvB,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAC1C,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC3C,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAmC;IAEnC,MAAM,UAAU,GAAuC,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AAExC,KAAK,UAAU,QAAQ,CAAC,GAAoB;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAe,CAAC;QAC/B,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CACrB,GAAmB,EACnB,MAAc,EACd,MAI0B;IAE1B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,GAAG;SACA,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;SACzD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAc;IAC/C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;AACvE,CAAC;AAoBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC;SACxD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACnE,uEAAuE;IACvE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAElD,MAAM,oBAAoB,GAAG;QAC3B,GAAG,IAAI,GAAG,CACR,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC;aAC9C,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC;KACF,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,uEAAuE;YACvE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,2EAA2E,SAAS,GAAG,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,oBAAoB,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,yDAAyD,gCAAgC,0BAA0B,CACpH,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAChB,GAAG,CAAC,0CAA0C;QAC9C,MAAM,CAAC,mCAAmC,CAAC,CAAC;IAC9C,MAAM,wBAAwB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACtD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAC3C,wBAAwB,IAAI,CAAC,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uDAAuD,YAAY,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,aAAa;QACb,MAAM;QACN,UAAU;QACV,WAAW,EAAE;YACX,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SACnD;QACV,OAAO;QACP,WAAW;QACX,oBAAoB;QACpB,wBAAwB;QACxB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAsB,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;QACzD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KACvC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,iFAAiF;YAC/E,+EAA+E;YAC/E,+DAA+D;YAC/D,GAAG,MAAM,CAAC,wBAAwB,gDAAgD;YAClF,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,6BAA6B,CAAC;QAC3C,OAAO;QACP,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAIb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,SAAS,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAC;AAEhE,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,gCAAgC,GAGjC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,GAEjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,YAAY;IACZ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,IAAI;IACJ,SAAS;IACT,mBAAmB;IACnB,SAAS;IACT,MAAM;IACN,gBAAgB;CACjB,CAAC,CAAC;AAsBH,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAE7D,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,aAAa,CACX,GAAG,EACH,GAAG,EACH,MAAM,CAAC,OAAO,EACd,YAAY,EACZ,iBAAiB,EACjB,MAAM,CAAC,IAAI,CACZ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,EAAE,CACjC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACjC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAiB,CAAC;gBACpD,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACJ,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAoB,EACpB,GAAmB,EACnB,OAA0B,EAC1B,YAAiB,EACjB,iBAAyB,EACzB,IAAiC;IAEjC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;QACvC,OAAO;QACP,MAAM;QACN,IAAI,EAAE,UAAU,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,QAAQ,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG;iBACA,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;iBACtD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,cAAc,CACZ,GAAG,EACH,QAAQ,CAAC,UAAU,IAAI,GAAG,EAC1B,QAAQ,CAAC,MAAM,IAAI,cAAc,CAClC,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,EACvC,YAAY,CACb,CAAC;IAEF,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,kBAAkB,GAAG,wBAAwB,CACjD,iBAAiB,EACjB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAClC,CAAC;IACF,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;QAC5B,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YAChD,MAAM;YACN,OAAO,EAAE,eAAe;YACxB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAElE,4EAA4E;QAC5E,uEAAuE;QACvE,sEAAsE;QACtE,4DAA4D;QAC5D,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,eAAe,CAAC,4BAA4B,CAAC;gBAC3C,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACtC,eAAe,CAAC,+BAA+B,CAAC;gBAC9C,4BAA4B,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACxD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC3C,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,iBAAyB,EACzB,kBAAsC,EACtC,aAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAElD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,MAAM,gBAAgB,GACpB,kBAAkB,GAAG,UAAU,GAAG,gCAAgC,CAAC;IACrE,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,UAAU,CACvB,QAA4B,EAC5B,IAAiC;IAIjC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,oEAAoE;QACpE,6EAA6E;QAC7E,QAAQ,CACN,iBAAiB,EACjB,IAAI,KAAK,CACP,oFAAoF,CACrF,CACF,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3C,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,YAAY,CACrB,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,QAAQ,CACN,iBAAiB,EACjB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,8BAA8B,CAAC,CACjE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAmC;IAEnC,MAAM,UAAU,GAAuC,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AAExC,KAAK,UAAU,QAAQ,CAAC,GAAoB;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAe,CAAC;QAC/B,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CACrB,GAAmB,EACnB,MAAc,EACd,MAMkC;IAElC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,GAAG;SACA,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;SACzD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAc;IAC/C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;AACvE,CAAC;AAoCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC;SACxD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IACnE,uEAAuE;IACvE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,GAAG,CAAC,0BAA0B,CAAC;IAElD,MAAM,oBAAoB,GAAG;QAC3B,GAAG,IAAI,GAAG,CACR,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC;aAC9C,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CACvC;KACF,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,uEAAuE;YACvE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,2EAA2E,SAAS,GAAG,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,oBAAoB,CAAC,MAAM,GAAG,gCAAgC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,yDAAyD,gCAAgC,0BAA0B,CACpH,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAChB,GAAG,CAAC,0CAA0C;QAC9C,MAAM,CAAC,mCAAmC,CAAC,CAAC;IAC9C,MAAM,wBAAwB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IACtD,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC;QAC3C,wBAAwB,IAAI,CAAC,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,uDAAuD,YAAY,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,aAAa;QACb,MAAM;QACN,UAAU;QACV,WAAW,EAAE;YACX,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SACnD;QACV,OAAO;QACP,WAAW;QACX,oBAAoB;QACpB,wBAAwB;QACxB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,GAAG,CAAC,oCAAoC,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,qBAA6B,CAAC;IAClC,IAAI,CAAC;QACH,qBAAqB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,iDAAiD,QAAQ,+CAA+C,CACzG,CAAC;IACJ,CAAC;IACD,IAAI,qBAAqB,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,UAAU,CAChC,GAAG,EACH,uCAAuC,CACxC,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,CAAC;QAC1D,uEAAuE;QACvE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC;IACzD,MAAM,gBAAgB,GAAG,GAAG,CAAC,qCAAqC,EAAE,IAAI,EAAE,CAAC;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,uCAAuC,CAAC;IAC/D,IAAI,iBAAqC,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,oDAAoD,UAAU,EAAE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACrD,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjE,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YACjE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,UAAkB;QAC5B,KAAK,CACH,mDAAmD,UAAU,IAAI;YAC/D,8EAA8E;YAC9E,2EAA2E,CAC9E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAe,EACf,WAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CACjD,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAC3E,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAkC;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,IAAI,CAAC,WAAW,CACxB,CAAC;IACF,OAAO;QACL,KAAK,EAAE,wBAAwB,CAAC;YAC9B,OAAO;YACP,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;YAC5C,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB;YACxD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAC7C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1D,CAAC;QACF,WAAW,EAAE,2BAA2B,CAAC;YACvC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;YAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBAC5C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC7C,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,GAAsB,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;QACzD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CACX,iFAAiF;YAC/E,+EAA+E;YAC/E,+DAA+D;YAC/D,GAAG,MAAM,CAAC,wBAAwB,gDAAgD;YAClF,gDAAgD,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CACX,kFAAkF;YAChF,yBAAyB,MAAM,CAAC,IAAI,CAAC,qBAAqB,wBAAwB;YAClF,mBAAmB,MAAM,CAAC,IAAI,CAAC,cAAc,uCAAuC;YACpF,kFAAkF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,6BAA6B,CAAC;QAC3C,OAAO;QACP,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { PaymentRequirements, SettleResponse, VerifyResponse } from "x402/types";
|
|
2
|
+
import { type SignedListingPayee, type X402AssetConfig, type X402PaymentRequiredBody } from "../x402/payment-requirements.js";
|
|
3
|
+
/**
|
|
4
|
+
* Standard x402 mode for the seller-side gateway (Tier 1).
|
|
5
|
+
*
|
|
6
|
+
* The gateway already authorizes requests that carry a Metrik
|
|
7
|
+
* `InvocationCapability` — a buyer with an open, funded, verified stream. That
|
|
8
|
+
* path is untouched. This module adds a SECOND, independent way in: a request
|
|
9
|
+
* with no capability gets an ordinary HTTP `402` carrying real x402
|
|
10
|
+
* `PaymentRequirements`, so an agent holding nothing but `x402-fetch` can pay
|
|
11
|
+
* per call without knowing Metrik exists.
|
|
12
|
+
*
|
|
13
|
+
* ## The two paths never overlap
|
|
14
|
+
*
|
|
15
|
+
* - capability header present -> stream path, exactly as before;
|
|
16
|
+
* - capability header absent, x402 mode on -> `402` + `PaymentRequirements`;
|
|
17
|
+
* - BOTH present -> rejected. A request that looks like both is ambiguous about
|
|
18
|
+
* which one is paying for it, and the failure mode of guessing is charging the
|
|
19
|
+
* caller twice for one call. Better a loud `400` than a silent double charge.
|
|
20
|
+
*
|
|
21
|
+
* ## The per-call price is the seller's, and is not signed
|
|
22
|
+
*
|
|
23
|
+
* `payTo` comes from the operator-signed descriptor (see
|
|
24
|
+
* `../x402/payment-requirements.ts`). The price does not — the descriptor has no
|
|
25
|
+
* per-call price field. It is the seller's own number on the seller's own
|
|
26
|
+
* gateway, which is legitimate, but a buyer cannot cross-check it against the
|
|
27
|
+
* registry the way they can cross-check the payee.
|
|
28
|
+
*/
|
|
29
|
+
/** Request header carrying the x402 payment payload (x402 v1). */
|
|
30
|
+
export declare const X402_PAYMENT_HEADER: "x-payment";
|
|
31
|
+
/** Response header carrying the settlement result (x402 v1). */
|
|
32
|
+
export declare const X402_PAYMENT_RESPONSE_HEADER: "x-payment-response";
|
|
33
|
+
/** The facilitator the gateway delegates verify/settle to. */
|
|
34
|
+
export interface X402FacilitatorClient {
|
|
35
|
+
verify(payload: unknown, requirements: PaymentRequirements): Promise<VerifyResponse>;
|
|
36
|
+
settle(payload: unknown, requirements: PaymentRequirements): Promise<SettleResponse>;
|
|
37
|
+
}
|
|
38
|
+
export interface HttpFacilitatorClientOptions {
|
|
39
|
+
/** Base URL of a facilitator exposing `/verify` and `/settle`. */
|
|
40
|
+
readonly url: string;
|
|
41
|
+
/**
|
|
42
|
+
* Shared secret for the facilitator's `/settle`. Sent as
|
|
43
|
+
* `Authorization: Bearer`. Metrik's own facilitator refuses to start a
|
|
44
|
+
* settling deployment without one, because `/settle` spends its gas.
|
|
45
|
+
*/
|
|
46
|
+
readonly token?: string;
|
|
47
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
48
|
+
readonly timeoutMs?: number;
|
|
49
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Talks to any x402 facilitator over HTTP — including Metrik's own
|
|
53
|
+
* (`../x402/facilitator-server.ts`), which is the point: a seller who wires this
|
|
54
|
+
* gateway to the Metrik facilitator gets a paywall whose payments stop when
|
|
55
|
+
* their own delivery stops being verifiable.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createHttpFacilitatorClient(options: HttpFacilitatorClientOptions): X402FacilitatorClient;
|
|
58
|
+
/** Builds the `PaymentRequirements` quoted for a given request. */
|
|
59
|
+
export type X402Quoter = (request: {
|
|
60
|
+
readonly method: string;
|
|
61
|
+
readonly path: string;
|
|
62
|
+
}) => readonly PaymentRequirements[] | Promise<readonly PaymentRequirements[]>;
|
|
63
|
+
export interface ListingPriceQuoterOptions {
|
|
64
|
+
/** Projected from the OPERATOR-SIGNED descriptor. `payTo` comes from here. */
|
|
65
|
+
readonly listing: SignedListingPayee;
|
|
66
|
+
/** Public origin buyers reach this gateway on, e.g. `https://svc.example.com`. */
|
|
67
|
+
readonly resourceBaseUrl: string;
|
|
68
|
+
/** Per-call price in the asset's base units (micro-USDC). Seller-set, unsigned. */
|
|
69
|
+
readonly pricePerCallBaseUnits: bigint;
|
|
70
|
+
readonly chainId: number;
|
|
71
|
+
readonly description?: string;
|
|
72
|
+
readonly mimeType?: string;
|
|
73
|
+
readonly maxTimeoutSeconds?: number;
|
|
74
|
+
readonly asset?: X402AssetConfig;
|
|
75
|
+
}
|
|
76
|
+
/** One flat price per call, quoted against the request's own path. */
|
|
77
|
+
export declare function createListingPriceQuoter(options: ListingPriceQuoterOptions): X402Quoter;
|
|
78
|
+
export interface GatewayX402Mode {
|
|
79
|
+
readonly quote: X402Quoter;
|
|
80
|
+
readonly facilitator: X402FacilitatorClient;
|
|
81
|
+
}
|
|
82
|
+
/** Decoded, still-untrusted `X-PAYMENT` payload plus the quote it answers. */
|
|
83
|
+
export interface AcceptedX402Payment {
|
|
84
|
+
readonly payload: unknown;
|
|
85
|
+
readonly requirements: PaymentRequirements;
|
|
86
|
+
readonly payer?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Unix seconds after which the signed authorization is no longer settleable
|
|
89
|
+
* (`validBefore`), when the payload carried one.
|
|
90
|
+
*
|
|
91
|
+
* The upstream runs BEFORE settlement, so an upstream slower than this window
|
|
92
|
+
* would produce its side effects and then fail to be paid for. The server
|
|
93
|
+
* bounds the upstream call by this instead of letting that happen.
|
|
94
|
+
*/
|
|
95
|
+
readonly validBefore?: number;
|
|
96
|
+
}
|
|
97
|
+
export type X402EvaluationOutcome = {
|
|
98
|
+
readonly outcome: "payment-required";
|
|
99
|
+
readonly body: X402PaymentRequiredBody;
|
|
100
|
+
} | {
|
|
101
|
+
readonly outcome: "accepted";
|
|
102
|
+
readonly payment: AcceptedX402Payment;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Evaluates the x402 half of a request. Returns either the `402` body to send or
|
|
106
|
+
* an accepted payment to settle after the upstream has been called.
|
|
107
|
+
*/
|
|
108
|
+
export declare function evaluateX402Request(request: {
|
|
109
|
+
readonly method: string;
|
|
110
|
+
readonly path: string;
|
|
111
|
+
}, paymentHeader: string | undefined, mode: GatewayX402Mode): Promise<X402EvaluationOutcome>;
|
|
112
|
+
/**
|
|
113
|
+
* Seconds of headroom the settlement leg needs after the upstream returns.
|
|
114
|
+
*
|
|
115
|
+
* The x402 `exact` verifier rejects an authorization whose `validBefore` is less
|
|
116
|
+
* than 6 s away, so an upstream allowed to run right up to the deadline would
|
|
117
|
+
* hand back a response that can never be settled. This leaves room for that
|
|
118
|
+
* check plus the settle round trip.
|
|
119
|
+
*/
|
|
120
|
+
export declare const X402_SETTLEMENT_HEADROOM_SECONDS = 10;
|
|
121
|
+
export declare function decodePaymentHeader(header: string): unknown;
|
|
122
|
+
export declare function encodeSettleResponseHeader(response: SettleResponse): string;
|
|
123
|
+
//# sourceMappingURL=x402-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402-mode.d.ts","sourceRoot":"","sources":["../../src/gateway/x402-mode.ts"],"names":[],"mappings":"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"}
|