@atxp/server 0.10.6 → 0.10.9

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/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { ATXPAccount } from '@atxp/common';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import * as oauth from 'oauth4webapi';
5
5
  import { IncomingMessage as IncomingMessage$1 } from 'node:http';
6
- import { JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
6
+ import { JSONRPCRequest, McpError } from '@modelcontextprotocol/sdk/types.js';
7
7
 
8
8
  declare enum McpMethodEnum {
9
9
  NotificationsCancelled = "notifications/cancelled",
@@ -40,10 +40,17 @@ type RefundErrors = boolean | 'nonMcpOnly';
40
40
  type Charge = Pick<PaymentRequest, 'options' | 'sourceAccountId' | 'destinationAccountId' | 'payeeName'> & {
41
41
  sourceAccountToken?: string;
42
42
  };
43
+ type BalanceRequest = {
44
+ sourceAccountId: string;
45
+ destinationAccountId: string;
46
+ sourceAccountToken?: string;
47
+ };
43
48
  type PaymentServer = {
44
49
  /** Returns true if the charge succeeded, false if payment is required */
45
50
  charge: (args: Charge) => Promise<boolean>;
46
51
  createPaymentRequest: (args: Charge) => Promise<string>;
52
+ /** Returns the user's available balance as a BigNumber (USD) */
53
+ getBalance: (args: BalanceRequest) => Promise<BigNumber>;
47
54
  };
48
55
  type ATXPConfig = {
49
56
  destination: PaymentDestination;
@@ -159,6 +166,27 @@ declare function parseMcpRequestsWebApi(config: ATXPConfig, request: Request): P
159
166
 
160
167
  declare function requirePayment(paymentConfig: RequirePaymentConfig): Promise<void>;
161
168
 
169
+ /**
170
+ * Get the current user's available balance.
171
+ *
172
+ * Uses the ATXP context (config, accountId, token) to call the auth server's
173
+ * POST /balance endpoint. Returns the available balance as a BigNumber in USD.
174
+ *
175
+ * @returns The user's available balance
176
+ * @throws Error if no config or user is found, or if the balance lookup fails
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * import { getBalance } from '@atxp/server';
181
+ *
182
+ * const balance = await getBalance();
183
+ * if (balance.lt(requiredAmount)) {
184
+ * // User can't afford this operation
185
+ * }
186
+ * ```
187
+ */
188
+ declare function getBalance(): Promise<BigNumber>;
189
+
162
190
  type RequiredATXPConfigFields = 'destination';
163
191
  type RequiredATXPConfig = Pick<ATXPConfig, RequiredATXPConfigFields>;
164
192
  type OptionalATXPConfig = Omit<ATXPConfig, RequiredATXPConfigFields>;
@@ -192,6 +220,7 @@ declare class ATXPPaymentServer implements PaymentServer {
192
220
  constructor(server: AuthorizationServerUrl, logger: Logger, fetchFn?: FetchLike, oAuthDb?: OAuthDb);
193
221
  charge: (chargeRequest: Charge) => Promise<boolean>;
194
222
  createPaymentRequest: (charge: Charge) => Promise<string>;
223
+ getBalance: (balanceRequest: BalanceRequest) => Promise<BigNumber>;
195
224
  /**
196
225
  * Makes authenticated requests to the ATXP authorization server
197
226
  *
@@ -216,5 +245,177 @@ declare function getOAuthMetadata(config: ATXPConfig, requestUrl: URL): Promise<
216
245
 
217
246
  declare function getProtectedResourceMetadata(config: ATXPConfig, requestUrl: URL, headers?: Record<string, string | string[] | undefined>): ProtectedResourceMetadata | null;
218
247
 
219
- export { ATXPPaymentServer, DEFAULT_CONFIG, McpMethodEnum, TokenProblem, atxpAccountId, atxpToken, buildServerConfig, checkTokenCore, checkToken as checkTokenNode, checkTokenWebApi, createOAuthChallengeResponseCore, getATXPConfig, getATXPResource, getOAuthMetadata, getProtectedResourceMetadata, getResource, parseBody as parseBodyNode, parseMcpRequestsCore, parseMcpRequests as parseMcpRequestsNode, parseMcpRequestsWebApi, requirePayment, sendOAuthChallenge, sendOAuthChallengeWebApi, sendOAuthMetadata$1 as sendOAuthMetadataNode, sendOAuthMetadata as sendOAuthMetadataWebApi, sendProtectedResourceMetadata$1 as sendProtectedResourceMetadataNode, sendProtectedResourceMetadata as sendProtectedResourceMetadataWebApi, withATXPContext };
220
- export type { ATXPArgs, ATXPConfig, Charge, McpMethod, McpName, McpNamePattern, McpOperation, McpOperationPattern, PaymentServer, ProtectedResourceMetadata, RefundErrors, TokenCheck, TokenCheckFail, TokenCheckPass };
248
+ /**
249
+ * Payment protocol types supported by the omni-challenge system.
250
+ * - 'atxp': ATXP-MCP protocol (JWT-based, existing flow)
251
+ * - 'x402': X402 protocol (Permit2 / X-PAYMENT header)
252
+ */
253
+ type PaymentProtocol = 'atxp' | 'x402';
254
+ /**
255
+ * Result of detecting which protocol a client used from its credential.
256
+ */
257
+ type CredentialDetection = {
258
+ protocol: PaymentProtocol;
259
+ credential: string;
260
+ };
261
+ /**
262
+ * X402 payment requirements included in omni-challenge.
263
+ * This is the standard X402 challenge body format.
264
+ */
265
+ type X402PaymentRequirements = {
266
+ x402Version: number;
267
+ accepts: X402PaymentOption[];
268
+ };
269
+ type X402PaymentOption = {
270
+ scheme: string;
271
+ network: string;
272
+ maxAmountRequired: string;
273
+ resource: string;
274
+ description: string;
275
+ mimeType?: string;
276
+ payTo: string;
277
+ maxTimeoutSeconds?: number;
278
+ extra?: Record<string, unknown>;
279
+ };
280
+ /**
281
+ * ATXP-MCP challenge data included in omni-challenge.
282
+ */
283
+ type AtxpMcpChallengeData = {
284
+ paymentRequestId: string;
285
+ paymentRequestUrl: string;
286
+ chargeAmount?: string;
287
+ };
288
+ /**
289
+ * Omni-challenge data combining both protocols.
290
+ * Used to build responses across different transports.
291
+ */
292
+ type OmniChallenge = {
293
+ atxpMcp: AtxpMcpChallengeData;
294
+ x402: X402PaymentRequirements;
295
+ };
296
+ /**
297
+ * Context data needed by verify/settle to build protocol-specific request bodies.
298
+ */
299
+ type SettlementContext = {
300
+ /** X402: the original payment requirements from the challenge */
301
+ paymentRequirements?: unknown;
302
+ /** ATXP: source account identifier */
303
+ sourceAccountId?: string;
304
+ /** ATXP: destination account identifier */
305
+ destinationAccountId?: string;
306
+ /** ATXP: payment options with network, currency, address, amount */
307
+ options?: unknown[];
308
+ };
309
+ /**
310
+ * Result of verifying a payment credential.
311
+ */
312
+ type VerifyResult = {
313
+ valid: boolean;
314
+ };
315
+ /**
316
+ * Result of settling a payment.
317
+ */
318
+ type SettleResult = {
319
+ txHash: string;
320
+ settledAmount: string;
321
+ };
322
+ /**
323
+ * Detect the payment protocol from inbound credentials on a retry request.
324
+ *
325
+ * Only detects X402 via the X-PAYMENT header. ATXP-MCP payments flow through
326
+ * the MCP token check + requirePayment() path, not through HTTP header
327
+ * detection. Bearer JWTs in non-MCP requests are OAuth access tokens, not
328
+ * payment credentials — detecting them here would misidentify normal auth.
329
+ *
330
+ * Returns null if no payment credential is detected.
331
+ */
332
+ declare function detectProtocol(headers: {
333
+ 'x-payment'?: string;
334
+ 'authorization'?: string;
335
+ }): CredentialDetection | null;
336
+ /**
337
+ * Client for calling auth service verify/settle endpoints.
338
+ * Routes to the appropriate protocol-specific endpoint.
339
+ */
340
+ declare class ProtocolSettlement {
341
+ private readonly authServer;
342
+ private readonly logger;
343
+ private readonly fetchFn;
344
+ /** Destination account ID for ATXP settle (the server/LLM's own account) */
345
+ private readonly destinationAccountId?;
346
+ constructor(authServer: AuthorizationServerUrl, logger: Logger, fetchFn?: FetchLike,
347
+ /** Destination account ID for ATXP settle (the server/LLM's own account) */
348
+ destinationAccountId?: string | undefined);
349
+ /**
350
+ * Verify a payment credential at request start.
351
+ * Calls auth `/verify/{protocol}` to check if the credential is valid.
352
+ *
353
+ * For X402: sends { payload, paymentRequirements } (credential is the X-PAYMENT header).
354
+ * For ATXP: sends { sourceAccountId, destinationAccountId, sourceAccountToken, options }.
355
+ */
356
+ verify(protocol: PaymentProtocol, credential: string, context?: SettlementContext): Promise<VerifyResult>;
357
+ /**
358
+ * Settle a payment at request end.
359
+ * Calls auth `/settle/{protocol}` to finalize the payment.
360
+ */
361
+ settle(protocol: PaymentProtocol, credential: string, context?: SettlementContext): Promise<SettleResult>;
362
+ /**
363
+ * Build the protocol-specific request body for verify/settle calls.
364
+ */
365
+ private buildRequestBody;
366
+ }
367
+
368
+ /**
369
+ * Build X402 payment requirements from charge options.
370
+ */
371
+ declare function buildX402Requirements(args: {
372
+ options: Array<{
373
+ network: string;
374
+ currency: string;
375
+ address: string;
376
+ amount: BigNumber;
377
+ }>;
378
+ resource: string;
379
+ payeeName: string;
380
+ }): X402PaymentRequirements;
381
+ /**
382
+ * Build ATXP-MCP challenge data from a payment request.
383
+ */
384
+ declare function buildAtxpMcpChallenge(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount?: BigNumber): AtxpMcpChallengeData;
385
+ /**
386
+ * Create an omni-challenge MCP error (for MCP SSE transport).
387
+ * Contains both ATXP-MCP challenge data in a single JSON-RPC error.
388
+ */
389
+ declare function omniChallengeMcpError(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount: BigNumber | undefined, x402Requirements: X402PaymentRequirements): McpError;
390
+ /**
391
+ * Build an HTTP omni-challenge response for streamable HTTP / plain HTTP.
392
+ *
393
+ * Returns:
394
+ * - status: 402
395
+ * - headers: includes X-ATXP-Payment-Request header with ATXP-MCP data
396
+ * - body: X402 payment requirements JSON
397
+ */
398
+ declare function omniChallengeHttpResponse(server: AuthorizationServerUrl, paymentRequestId: string, chargeAmount: BigNumber | undefined, x402Requirements: X402PaymentRequirements): {
399
+ status: 402;
400
+ headers: Record<string, string>;
401
+ body: string;
402
+ };
403
+ /**
404
+ * Build a complete OmniChallenge object from server config and payment details.
405
+ */
406
+ declare function buildOmniChallenge(args: {
407
+ server: AuthorizationServerUrl;
408
+ paymentRequestId: string;
409
+ chargeAmount?: BigNumber;
410
+ options: Array<{
411
+ network: string;
412
+ currency: string;
413
+ address: string;
414
+ amount: BigNumber;
415
+ }>;
416
+ resource: string;
417
+ payeeName: string;
418
+ }): OmniChallenge;
419
+
420
+ export { ATXPPaymentServer, DEFAULT_CONFIG, McpMethodEnum, ProtocolSettlement, TokenProblem, atxpAccountId, atxpToken, buildAtxpMcpChallenge, buildOmniChallenge, buildServerConfig, buildX402Requirements, checkTokenCore, checkToken as checkTokenNode, checkTokenWebApi, createOAuthChallengeResponseCore, detectProtocol, getATXPConfig, getATXPResource, getBalance, getOAuthMetadata, getProtectedResourceMetadata, getResource, omniChallengeHttpResponse, omniChallengeMcpError, parseBody as parseBodyNode, parseMcpRequestsCore, parseMcpRequests as parseMcpRequestsNode, parseMcpRequestsWebApi, requirePayment, sendOAuthChallenge, sendOAuthChallengeWebApi, sendOAuthMetadata$1 as sendOAuthMetadataNode, sendOAuthMetadata as sendOAuthMetadataWebApi, sendProtectedResourceMetadata$1 as sendProtectedResourceMetadataNode, sendProtectedResourceMetadata as sendProtectedResourceMetadataWebApi, withATXPContext };
421
+ export type { ATXPArgs, ATXPConfig, AtxpMcpChallengeData, BalanceRequest, Charge, CredentialDetection, McpMethod, McpName, McpNamePattern, McpOperation, McpOperationPattern, OmniChallenge, PaymentProtocol, PaymentServer, ProtectedResourceMetadata, RefundErrors, SettleResult, SettlementContext, TokenCheck, TokenCheckFail, TokenCheckPass, VerifyResult, X402PaymentOption, X402PaymentRequirements };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,kBAAkB,EAClB,gBAAgB,IAAI,oBAAoB,EACxC,SAAS,IAAI,aAAa,EAC1B,6BAA6B,IAAI,iCAAiC,EAClE,iBAAiB,IAAI,qBAAqB,GAC3C,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mCAAmC,EACnC,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EACL,KAAK,QAAQ,EACb,cAAc,EACd,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,WAAW,EACZ,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,kBAAkB,EAClB,gBAAgB,IAAI,oBAAoB,EACxC,SAAS,IAAI,aAAa,EAC1B,6BAA6B,IAAI,iCAAiC,EAClE,iBAAiB,IAAI,qBAAqB,GAC3C,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,mCAAmC,EACnC,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,EACL,KAAK,QAAQ,EACb,cAAc,EACd,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACZ,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { AsyncLocalStorage } from 'async_hooks';
2
2
  import * as contentType from 'content-type';
3
- import { isJSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
4
- import { parseMcpMessages, extractNetworkFromAccountId, extractAddressFromAccountId, paymentRequiredError, MemoryOAuthDb, DEFAULT_AUTHORIZATION_SERVER, OAuthResourceClient, ConsoleLogger } from '@atxp/common';
3
+ import { isJSONRPCRequest, McpError } from '@modelcontextprotocol/sdk/types.js';
4
+ import { parseMcpMessages, extractNetworkFromAccountId, extractAddressFromAccountId, paymentRequiredError, MemoryOAuthDb, DEFAULT_AUTHORIZATION_SERVER, OAuthResourceClient, ConsoleLogger, PAYMENT_REQUIRED_ERROR_CODE, PAYMENT_REQUIRED_PREAMBLE } from '@atxp/common';
5
5
  export { ATXPAccount } from '@atxp/common';
6
+ import { BigNumber } from 'bignumber.js';
6
7
 
7
8
  // https://github.com/modelcontextprotocol/typescript-sdk/blob/c6ac083b1b37b222b5bfba5563822daa5d03372e/src/types.ts
8
9
  // ctrl+f "method: z.literal(""
@@ -486,6 +487,48 @@ async function requirePayment(paymentConfig) {
486
487
  throw paymentRequiredError(config.server, paymentId, paymentAmount);
487
488
  }
488
489
 
490
+ /**
491
+ * Get the current user's available balance.
492
+ *
493
+ * Uses the ATXP context (config, accountId, token) to call the auth server's
494
+ * POST /balance endpoint. Returns the available balance as a BigNumber in USD.
495
+ *
496
+ * @returns The user's available balance
497
+ * @throws Error if no config or user is found, or if the balance lookup fails
498
+ *
499
+ * @example
500
+ * ```typescript
501
+ * import { getBalance } from '@atxp/server';
502
+ *
503
+ * const balance = await getBalance();
504
+ * if (balance.lt(requiredAmount)) {
505
+ * // User can't afford this operation
506
+ * }
507
+ * ```
508
+ */
509
+ async function getBalance() {
510
+ const config = getATXPConfig();
511
+ if (!config) {
512
+ throw new Error('No config found');
513
+ }
514
+ const user = atxpAccountId();
515
+ if (!user) {
516
+ config.logger.error('No user found');
517
+ throw new Error('No user found');
518
+ }
519
+ const destinationAccountId = await config.destination.getAccountId();
520
+ const token = atxpToken();
521
+ const balanceRequest = {
522
+ sourceAccountId: user,
523
+ destinationAccountId,
524
+ ...(token && { sourceAccountToken: token }),
525
+ };
526
+ config.logger.debug(`Getting balance for source ${user}`);
527
+ const balance = await config.paymentServer.getBalance(balanceRequest);
528
+ config.logger.debug(`Balance for source ${user}: ${balance}`);
529
+ return balance;
530
+ }
531
+
489
532
  /**
490
533
  * ATXP Payment Server implementation
491
534
  *
@@ -554,6 +597,23 @@ class ATXPPaymentServer {
554
597
  }
555
598
  return json.id;
556
599
  };
600
+ this.getBalance = async (balanceRequest) => {
601
+ const response = await this.makeRequest('POST', '/balance', balanceRequest);
602
+ if (response.status === 200) {
603
+ const json = await response.json();
604
+ if (json.balance === undefined) {
605
+ throw new Error('Balance response did not contain a balance field');
606
+ }
607
+ return new BigNumber(json.balance);
608
+ }
609
+ const errorBody = await response.json().catch(() => ({}));
610
+ const errorMessage = errorBody.error?.message || errorBody.message || 'Unknown error';
611
+ this.logger.warn(`Payment server getBalance failed with ${response.status}: ${errorMessage}`);
612
+ const error = new Error(`Payment server returned ${response.status} from /balance: ${errorMessage}`);
613
+ error.statusCode = response.status;
614
+ error.endpoint = '/balance';
615
+ throw error;
616
+ };
557
617
  /**
558
618
  * Makes authenticated requests to the ATXP authorization server
559
619
  *
@@ -732,5 +792,200 @@ function isProtectedResourceMetadataRequest(config, requestUrl, headers) {
732
792
  return false;
733
793
  }
734
794
 
735
- export { ATXPPaymentServer, DEFAULT_CONFIG, McpMethodEnum, TokenProblem, atxpAccountId, atxpToken, buildServerConfig, checkTokenCore, checkToken as checkTokenNode, checkTokenWebApi, createOAuthChallengeResponseCore, getATXPConfig, getATXPResource, getOAuthMetadata, getProtectedResourceMetadata, getResource, parseBody as parseBodyNode, parseMcpRequestsCore, parseMcpRequests as parseMcpRequestsNode, parseMcpRequestsWebApi, requirePayment, sendOAuthChallenge, sendOAuthChallengeWebApi, sendOAuthMetadata$1 as sendOAuthMetadataNode, sendOAuthMetadata as sendOAuthMetadataWebApi, sendProtectedResourceMetadata$1 as sendProtectedResourceMetadataNode, sendProtectedResourceMetadata as sendProtectedResourceMetadataWebApi, withATXPContext };
795
+ /**
796
+ * Detect the payment protocol from inbound credentials on a retry request.
797
+ *
798
+ * Only detects X402 via the X-PAYMENT header. ATXP-MCP payments flow through
799
+ * the MCP token check + requirePayment() path, not through HTTP header
800
+ * detection. Bearer JWTs in non-MCP requests are OAuth access tokens, not
801
+ * payment credentials — detecting them here would misidentify normal auth.
802
+ *
803
+ * Returns null if no payment credential is detected.
804
+ */
805
+ function detectProtocol(headers) {
806
+ // X-PAYMENT header indicates X402 protocol
807
+ const xPayment = headers['x-payment'];
808
+ if (xPayment) {
809
+ return { protocol: 'x402', credential: xPayment };
810
+ }
811
+ return null;
812
+ }
813
+ /**
814
+ * Client for calling auth service verify/settle endpoints.
815
+ * Routes to the appropriate protocol-specific endpoint.
816
+ */
817
+ class ProtocolSettlement {
818
+ constructor(authServer, logger, fetchFn = fetch.bind(globalThis),
819
+ /** Destination account ID for ATXP settle (the server/LLM's own account) */
820
+ destinationAccountId) {
821
+ this.authServer = authServer;
822
+ this.logger = logger;
823
+ this.fetchFn = fetchFn;
824
+ this.destinationAccountId = destinationAccountId;
825
+ }
826
+ /**
827
+ * Verify a payment credential at request start.
828
+ * Calls auth `/verify/{protocol}` to check if the credential is valid.
829
+ *
830
+ * For X402: sends { payload, paymentRequirements } (credential is the X-PAYMENT header).
831
+ * For ATXP: sends { sourceAccountId, destinationAccountId, sourceAccountToken, options }.
832
+ */
833
+ async verify(protocol, credential, context) {
834
+ const url = new URL(`/verify/${protocol}`, this.authServer);
835
+ this.logger.debug(`Verifying ${protocol} credential at ${url}`);
836
+ const body = this.buildRequestBody(protocol, credential, context);
837
+ const response = await this.fetchFn(url.toString(), {
838
+ method: 'POST',
839
+ headers: { 'Content-Type': 'application/json' },
840
+ body: JSON.stringify(body),
841
+ });
842
+ if (!response.ok) {
843
+ this.logger.warn(`Verify ${protocol} failed with status ${response.status}`);
844
+ return { valid: false };
845
+ }
846
+ const result = await response.json();
847
+ this.logger.debug(`Verify ${protocol} result: valid=${result.valid}`);
848
+ return result;
849
+ }
850
+ /**
851
+ * Settle a payment at request end.
852
+ * Calls auth `/settle/{protocol}` to finalize the payment.
853
+ */
854
+ async settle(protocol, credential, context) {
855
+ const url = new URL(`/settle/${protocol}`, this.authServer);
856
+ this.logger.debug(`Settling ${protocol} credential at ${url}`);
857
+ const body = this.buildRequestBody(protocol, credential, context);
858
+ const response = await this.fetchFn(url.toString(), {
859
+ method: 'POST',
860
+ headers: { 'Content-Type': 'application/json' },
861
+ body: JSON.stringify(body),
862
+ });
863
+ if (!response.ok) {
864
+ const errorText = await response.text();
865
+ this.logger.error(`Settle ${protocol} failed with status ${response.status}: ${errorText}`);
866
+ throw new Error(`Settlement failed for ${protocol}: ${response.status}`);
867
+ }
868
+ const result = await response.json();
869
+ this.logger.info(`Settled ${protocol}: txHash=${result.txHash}, amount=${result.settledAmount}`);
870
+ return result;
871
+ }
872
+ /**
873
+ * Build the protocol-specific request body for verify/settle calls.
874
+ */
875
+ buildRequestBody(protocol, credential, context) {
876
+ if (protocol === 'x402') {
877
+ // X402: auth expects { payload, paymentRequirements }
878
+ // The credential is the base64-encoded X-PAYMENT header containing the payload
879
+ let payload;
880
+ try {
881
+ payload = JSON.parse(Buffer.from(credential, 'base64').toString());
882
+ }
883
+ catch {
884
+ // If not valid base64 JSON, pass as-is (auth will validate)
885
+ payload = { raw: credential };
886
+ }
887
+ return { payload, paymentRequirements: context?.paymentRequirements };
888
+ }
889
+ // ATXP: auth expects { sourceAccountId, destinationAccountId, sourceAccountToken, options }
890
+ // The credential is a self-contained JSON string from PaymentClient/ATXPAccount.authorize()
891
+ // containing sourceAccountId, sourceAccountToken, and options.
892
+ // destinationAccountId comes from this instance's config (it's the server's own account).
893
+ let parsed = {};
894
+ try {
895
+ parsed = JSON.parse(credential);
896
+ }
897
+ catch {
898
+ this.logger.warn('ProtocolSettlement: ATXP credential is not valid JSON, using context fallback');
899
+ }
900
+ return {
901
+ sourceAccountId: parsed.sourceAccountId ?? context?.sourceAccountId,
902
+ destinationAccountId: this.destinationAccountId ?? context?.destinationAccountId,
903
+ sourceAccountToken: parsed.sourceAccountToken ?? credential,
904
+ options: parsed.options ?? context?.options ?? [],
905
+ };
906
+ }
907
+ }
908
+
909
+ /**
910
+ * Build X402 payment requirements from charge options.
911
+ */
912
+ function buildX402Requirements(args) {
913
+ const accepts = args.options.map(option => ({
914
+ scheme: 'exact',
915
+ network: option.network === 'base' || option.network === 'base_sepolia' ? 'base' : option.network,
916
+ maxAmountRequired: option.amount.times(1e6).toFixed(0), // Convert to smallest unit (USDC has 6 decimals)
917
+ resource: args.resource,
918
+ description: args.payeeName,
919
+ payTo: option.address,
920
+ maxTimeoutSeconds: 300,
921
+ }));
922
+ return {
923
+ x402Version: 1,
924
+ accepts,
925
+ };
926
+ }
927
+ /**
928
+ * Build ATXP-MCP challenge data from a payment request.
929
+ */
930
+ function buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount) {
931
+ const serverUrl = new URL(server);
932
+ const origin = serverUrl.origin;
933
+ const paymentRequestUrl = `${origin}/payment-request/${paymentRequestId}`;
934
+ return {
935
+ paymentRequestId,
936
+ paymentRequestUrl,
937
+ ...(chargeAmount && { chargeAmount: chargeAmount.toString() }),
938
+ };
939
+ }
940
+ /**
941
+ * Create an omni-challenge MCP error (for MCP SSE transport).
942
+ * Contains both ATXP-MCP challenge data in a single JSON-RPC error.
943
+ */
944
+ function omniChallengeMcpError(server, paymentRequestId, chargeAmount, x402Requirements) {
945
+ const atxpMcp = buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount);
946
+ const data = {
947
+ // ATXP-MCP fields (existing, preserved for backwards compatibility)
948
+ paymentRequestId: atxpMcp.paymentRequestId,
949
+ paymentRequestUrl: atxpMcp.paymentRequestUrl,
950
+ chargeAmount: atxpMcp.chargeAmount,
951
+ // X402 fields (new, added for omni-challenge)
952
+ x402: x402Requirements,
953
+ };
954
+ const amountText = chargeAmount ? ` You will be charged ${chargeAmount.toString()}.` : '';
955
+ return new McpError(PAYMENT_REQUIRED_ERROR_CODE, `${PAYMENT_REQUIRED_PREAMBLE}${amountText} Please pay at: ${atxpMcp.paymentRequestUrl} and then try again.`, data);
956
+ }
957
+ /**
958
+ * Build an HTTP omni-challenge response for streamable HTTP / plain HTTP.
959
+ *
960
+ * Returns:
961
+ * - status: 402
962
+ * - headers: includes X-ATXP-Payment-Request header with ATXP-MCP data
963
+ * - body: X402 payment requirements JSON
964
+ */
965
+ function omniChallengeHttpResponse(server, paymentRequestId, chargeAmount, x402Requirements) {
966
+ const atxpMcp = buildAtxpMcpChallenge(server, paymentRequestId, chargeAmount);
967
+ return {
968
+ status: 402,
969
+ headers: {
970
+ 'Content-Type': 'application/json',
971
+ 'X-ATXP-Payment-Request': JSON.stringify(atxpMcp),
972
+ },
973
+ body: JSON.stringify(x402Requirements),
974
+ };
975
+ }
976
+ /**
977
+ * Build a complete OmniChallenge object from server config and payment details.
978
+ */
979
+ function buildOmniChallenge(args) {
980
+ return {
981
+ atxpMcp: buildAtxpMcpChallenge(args.server, args.paymentRequestId, args.chargeAmount),
982
+ x402: buildX402Requirements({
983
+ options: args.options,
984
+ resource: args.resource,
985
+ payeeName: args.payeeName,
986
+ }),
987
+ };
988
+ }
989
+
990
+ export { ATXPPaymentServer, DEFAULT_CONFIG, McpMethodEnum, ProtocolSettlement, TokenProblem, atxpAccountId, atxpToken, buildAtxpMcpChallenge, buildOmniChallenge, buildServerConfig, buildX402Requirements, checkTokenCore, checkToken as checkTokenNode, checkTokenWebApi, createOAuthChallengeResponseCore, detectProtocol, getATXPConfig, getATXPResource, getBalance, getOAuthMetadata, getProtectedResourceMetadata, getResource, omniChallengeHttpResponse, omniChallengeMcpError, parseBody as parseBodyNode, parseMcpRequestsCore, parseMcpRequests as parseMcpRequestsNode, parseMcpRequestsWebApi, requirePayment, sendOAuthChallenge, sendOAuthChallengeWebApi, sendOAuthMetadata$1 as sendOAuthMetadataNode, sendOAuthMetadata as sendOAuthMetadataWebApi, sendProtectedResourceMetadata$1 as sendProtectedResourceMetadataNode, sendProtectedResourceMetadata as sendProtectedResourceMetadataWebApi, withATXPContext };
736
991
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types.ts","../src/atxpContext.ts","../src/core/token.ts","../src/core/oauth.ts","../src/core/mcp.ts","../src/node/token.ts","../src/node/oauth.ts","../src/node/getRawBody.ts","../src/node/http.ts","../src/webapi/token.ts","../src/webapi/oauth.ts","../src/webapi/mcp.ts","../src/requirePayment.ts","../src/paymentServer.ts","../src/serverConfig.ts","../src/getResource.ts","../src/oAuthMetadata.ts","../src/protectedResourceMetadata.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["sendProtectedResourceMetadata","sendOAuthMetadata"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types.ts","../src/atxpContext.ts","../src/core/token.ts","../src/core/oauth.ts","../src/core/mcp.ts","../src/node/token.ts","../src/node/oauth.ts","../src/node/getRawBody.ts","../src/node/http.ts","../src/webapi/token.ts","../src/webapi/oauth.ts","../src/webapi/mcp.ts","../src/requirePayment.ts","../src/getBalance.ts","../src/paymentServer.ts","../src/serverConfig.ts","../src/getResource.ts","../src/oAuthMetadata.ts","../src/protectedResourceMetadata.ts","../src/protocol.ts","../src/omniChallenge.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["sendProtectedResourceMetadata","sendOAuthMetadata"],"mappings":"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"}