@atxp/client 0.2.5 → 0.2.7
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/package.json +3 -3
- package/dist/src/atxpClient.d.ts +0 -14
- package/dist/src/atxpClient.d.ts.map +0 -1
- package/dist/src/atxpClient.js +0 -62
- package/dist/src/atxpClient.js.map +0 -1
- package/dist/src/atxpFetcher.d.ts +0 -71
- package/dist/src/atxpFetcher.d.ts.map +0 -1
- package/dist/src/atxpFetcher.js +0 -347
- package/dist/src/atxpFetcher.js.map +0 -1
- package/dist/src/clientTestHelpers.d.ts +0 -6
- package/dist/src/clientTestHelpers.d.ts.map +0 -1
- package/dist/src/clientTestHelpers.js +0 -94
- package/dist/src/clientTestHelpers.js.map +0 -1
- package/dist/src/index.d.ts +0 -7
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -7
- package/dist/src/index.js.map +0 -1
- package/dist/src/oAuth.d.ts +0 -44
- package/dist/src/oAuth.d.ts.map +0 -1
- package/dist/src/oAuth.js +0 -274
- package/dist/src/oAuth.js.map +0 -1
- package/dist/src/setup.expo.d.ts +0 -2
- package/dist/src/setup.expo.d.ts.map +0 -1
- package/dist/src/setup.expo.js +0 -42
- package/dist/src/setup.expo.js.map +0 -1
- package/dist/src/solanaAccount.d.ts +0 -9
- package/dist/src/solanaAccount.d.ts.map +0 -1
- package/dist/src/solanaAccount.js +0 -19
- package/dist/src/solanaAccount.js.map +0 -1
- package/dist/src/solanaPaymentMaker.d.ts +0 -17
- package/dist/src/solanaPaymentMaker.d.ts.map +0 -1
- package/dist/src/solanaPaymentMaker.js +0 -62
- package/dist/src/solanaPaymentMaker.js.map +0 -1
- package/dist/src/types.d.ts +0 -58
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atxp/client",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "ATXP Client - MCP client with OAuth authentication and payment processing",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/atxp-dev/sdk.git",
|
|
9
9
|
"directory": "packages/atxp-client"
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"test": "vitest run"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@atxp/common": "0.2.
|
|
25
|
+
"@atxp/common": "0.2.7",
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
|
27
27
|
"@solana/pay": "^0.2.5",
|
|
28
28
|
"@solana/web3.js": "^1.98.1",
|
package/dist/src/atxpClient.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ClientConfig } from "./types.js";
|
|
2
|
-
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
3
|
-
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
|
-
type RequiredClientConfigFields = 'mcpServer' | 'account';
|
|
5
|
-
type RequiredClientConfig = Pick<ClientConfig, RequiredClientConfigFields>;
|
|
6
|
-
type OptionalClientConfig = Omit<ClientConfig, RequiredClientConfigFields>;
|
|
7
|
-
export type ClientArgs = RequiredClientConfig & Partial<OptionalClientConfig>;
|
|
8
|
-
type BuildableClientConfigFields = 'oAuthDb' | 'logger';
|
|
9
|
-
export declare const DEFAULT_CLIENT_CONFIG: Required<Omit<OptionalClientConfig, BuildableClientConfigFields>>;
|
|
10
|
-
export declare function buildClientConfig(args: ClientArgs): ClientConfig;
|
|
11
|
-
export declare function buildStreamableTransport(args: ClientArgs): StreamableHTTPClientTransport;
|
|
12
|
-
export declare function atxpClient(args: ClientArgs): Promise<Client>;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=atxpClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atxpClient.d.ts","sourceRoot":"","sources":["../../src/atxpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,KAAK,0BAA0B,GAAG,WAAW,GAAG,SAAS,CAAC;AAC1D,KAAK,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAC3E,KAAK,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAC3E,MAAM,MAAM,UAAU,GAAG,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC9E,KAAK,2BAA2B,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,CAiBnG,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAUhE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,6BAA6B,CAoBxF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE"}
|
package/dist/src/atxpClient.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { SqliteOAuthDb, ConsoleLogger, DEFAULT_AUTHORIZATION_SERVER } from "@longrun/atxp-common";
|
|
2
|
-
import { ATXPFetcher } from "./atxpFetcher.js";
|
|
3
|
-
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
4
|
-
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
5
|
-
export const DEFAULT_CLIENT_CONFIG = {
|
|
6
|
-
allowedAuthorizationServers: [DEFAULT_AUTHORIZATION_SERVER],
|
|
7
|
-
approvePayment: async (_p) => true,
|
|
8
|
-
fetchFn: fetch,
|
|
9
|
-
oAuthChannelFetch: fetch,
|
|
10
|
-
allowHttp: process.env.NODE_ENV === 'development',
|
|
11
|
-
clientInfo: {
|
|
12
|
-
name: 'ATXPClient',
|
|
13
|
-
version: '0.0.1'
|
|
14
|
-
},
|
|
15
|
-
clientOptions: {
|
|
16
|
-
capabilities: {}
|
|
17
|
-
},
|
|
18
|
-
onAuthorize: async () => { },
|
|
19
|
-
onAuthorizeFailure: async () => { },
|
|
20
|
-
onPayment: async () => { },
|
|
21
|
-
onPaymentFailure: async () => { }
|
|
22
|
-
};
|
|
23
|
-
export function buildClientConfig(args) {
|
|
24
|
-
// Use fetchFn for oAuthChannelFetch if the latter isn't explicitly set
|
|
25
|
-
if (args.fetchFn && !args.oAuthChannelFetch) {
|
|
26
|
-
args.oAuthChannelFetch = args.fetchFn;
|
|
27
|
-
}
|
|
28
|
-
const withDefaults = { ...DEFAULT_CLIENT_CONFIG, ...args };
|
|
29
|
-
const oAuthDb = withDefaults.oAuthDb ?? new SqliteOAuthDb({ db: ':memory:' });
|
|
30
|
-
const logger = withDefaults.logger ?? new ConsoleLogger();
|
|
31
|
-
const built = { oAuthDb, logger };
|
|
32
|
-
return Object.freeze({ ...withDefaults, ...built });
|
|
33
|
-
}
|
|
34
|
-
;
|
|
35
|
-
export function buildStreamableTransport(args) {
|
|
36
|
-
const config = buildClientConfig(args);
|
|
37
|
-
const fetcher = new ATXPFetcher({
|
|
38
|
-
accountId: args.account.accountId,
|
|
39
|
-
db: config.oAuthDb,
|
|
40
|
-
paymentMakers: args.account.paymentMakers,
|
|
41
|
-
fetchFn: config.fetchFn,
|
|
42
|
-
sideChannelFetch: config.oAuthChannelFetch,
|
|
43
|
-
allowInsecureRequests: config.allowHttp,
|
|
44
|
-
allowedAuthorizationServers: config.allowedAuthorizationServers,
|
|
45
|
-
approvePayment: config.approvePayment,
|
|
46
|
-
logger: config.logger,
|
|
47
|
-
onAuthorize: config.onAuthorize,
|
|
48
|
-
onAuthorizeFailure: config.onAuthorizeFailure,
|
|
49
|
-
onPayment: config.onPayment,
|
|
50
|
-
onPaymentFailure: config.onPaymentFailure
|
|
51
|
-
});
|
|
52
|
-
const transport = new StreamableHTTPClientTransport(new URL(args.mcpServer), { fetch: fetcher.fetch });
|
|
53
|
-
return transport;
|
|
54
|
-
}
|
|
55
|
-
export async function atxpClient(args) {
|
|
56
|
-
const config = buildClientConfig(args);
|
|
57
|
-
const transport = buildStreamableTransport(config);
|
|
58
|
-
const client = new Client(config.clientInfo, config.clientOptions);
|
|
59
|
-
await client.connect(transport);
|
|
60
|
-
return client;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=atxpClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atxpClient.js","sourceRoot":"","sources":["../../src/atxpClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAQnG,MAAM,CAAC,MAAM,qBAAqB,GAAsE;IACtG,2BAA2B,EAAE,CAAC,4BAA4B,CAAC;IAC3D,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI;IAClC,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,KAAK;IACxB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IACjD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB;IACD,aAAa,EAAE;QACb,YAAY,EAAE,EAAE;KACjB;IACD,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;IAC3B,kBAAkB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;IAClC,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;IACzB,gBAAgB,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;CACjC,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,uEAAuE;IACvE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC;IACxC,CAAC;IACD,MAAM,YAAY,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,IAAI,aAAa,CAAC,EAAC,EAAE,EAAE,UAAU,EAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC;AAAA,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,IAAgB;IACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;QAC9B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;QACjC,EAAE,EAAE,MAAM,CAAC,OAAO;QAClB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,gBAAgB,EAAE,MAAM,CAAC,iBAAiB;QAC1C,qBAAqB,EAAE,MAAM,CAAC,SAAS;QACvC,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;QAC/D,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;IACrG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAgB;IAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { OAuthAuthenticationRequiredError, OAuthClient } from './oAuth.js';
|
|
2
|
-
import { AccessToken, AuthorizationServerUrl, FetchLike, OAuthDb, PaymentRequestData, Logger } from '@longrun/atxp-common';
|
|
3
|
-
import type { PaymentMaker, ProspectivePayment } from './types.js';
|
|
4
|
-
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
-
export interface ATXPFetcherConfig {
|
|
6
|
-
accountId: string;
|
|
7
|
-
db: OAuthDb;
|
|
8
|
-
paymentMakers: {
|
|
9
|
-
[key: string]: PaymentMaker;
|
|
10
|
-
};
|
|
11
|
-
fetchFn?: FetchLike;
|
|
12
|
-
sideChannelFetch?: FetchLike;
|
|
13
|
-
strict?: boolean;
|
|
14
|
-
allowInsecureRequests?: boolean;
|
|
15
|
-
allowedAuthorizationServers?: AuthorizationServerUrl[];
|
|
16
|
-
approvePayment?: (payment: ProspectivePayment) => Promise<boolean>;
|
|
17
|
-
logger?: Logger;
|
|
18
|
-
onAuthorize?: (args: {
|
|
19
|
-
authorizationServer: AuthorizationServerUrl;
|
|
20
|
-
userId: string;
|
|
21
|
-
}) => Promise<void>;
|
|
22
|
-
onAuthorizeFailure?: (args: {
|
|
23
|
-
authorizationServer: AuthorizationServerUrl;
|
|
24
|
-
userId: string;
|
|
25
|
-
error: Error;
|
|
26
|
-
}) => Promise<void>;
|
|
27
|
-
onPayment?: (args: {
|
|
28
|
-
payment: ProspectivePayment;
|
|
29
|
-
}) => Promise<void>;
|
|
30
|
-
onPaymentFailure?: (args: {
|
|
31
|
-
payment: ProspectivePayment;
|
|
32
|
-
error: Error;
|
|
33
|
-
}) => Promise<void>;
|
|
34
|
-
}
|
|
35
|
-
export declare function atxpFetch(config: ATXPFetcherConfig): FetchLike;
|
|
36
|
-
export declare class ATXPFetcher {
|
|
37
|
-
protected oauthClient: OAuthClient;
|
|
38
|
-
protected paymentMakers: Map<string, PaymentMaker>;
|
|
39
|
-
protected sideChannelFetch: FetchLike;
|
|
40
|
-
protected db: OAuthDb;
|
|
41
|
-
protected accountId: string;
|
|
42
|
-
protected allowedAuthorizationServers: AuthorizationServerUrl[];
|
|
43
|
-
protected approvePayment: (payment: ProspectivePayment) => Promise<boolean>;
|
|
44
|
-
protected logger: Logger;
|
|
45
|
-
protected onAuthorize: (args: {
|
|
46
|
-
authorizationServer: AuthorizationServerUrl;
|
|
47
|
-
userId: string;
|
|
48
|
-
}) => Promise<void>;
|
|
49
|
-
protected onAuthorizeFailure: (args: {
|
|
50
|
-
authorizationServer: AuthorizationServerUrl;
|
|
51
|
-
userId: string;
|
|
52
|
-
error: Error;
|
|
53
|
-
}) => Promise<void>;
|
|
54
|
-
protected onPayment: (args: {
|
|
55
|
-
payment: ProspectivePayment;
|
|
56
|
-
}) => Promise<void>;
|
|
57
|
-
protected onPaymentFailure: (args: {
|
|
58
|
-
payment: ProspectivePayment;
|
|
59
|
-
error: Error;
|
|
60
|
-
}) => Promise<void>;
|
|
61
|
-
constructor({ accountId, db, paymentMakers, fetchFn, sideChannelFetch, strict, allowInsecureRequests, allowedAuthorizationServers, approvePayment, logger, onAuthorize, onAuthorizeFailure, onPayment, onPaymentFailure }: ATXPFetcherConfig);
|
|
62
|
-
protected handlePaymentRequestError: (paymentRequestError: McpError) => Promise<boolean>;
|
|
63
|
-
protected getPaymentRequestData: (paymentRequestUrl: string) => Promise<PaymentRequestData | null>;
|
|
64
|
-
protected isAllowedAuthServer: (url: string | URL) => boolean;
|
|
65
|
-
protected makeAuthRequestWithPaymentMaker: (authorizationUrl: URL, paymentMaker: PaymentMaker) => Promise<string>;
|
|
66
|
-
protected authToService: (error: OAuthAuthenticationRequiredError) => Promise<void>;
|
|
67
|
-
protected exchangeToken: (myToken: AccessToken, newResourceUrl: string) => Promise<AccessToken>;
|
|
68
|
-
protected checkForATXPResponse: (response: Response) => Promise<void>;
|
|
69
|
-
fetch: FetchLike;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=atxpFetcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atxpFetcher.d.ts","sourceRoot":"","sources":["../../src/atxpFetcher.ts"],"names":[],"mappings":"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"}
|
package/dist/src/atxpFetcher.js
DELETED
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from 'bignumber.js';
|
|
2
|
-
import { OAuthAuthenticationRequiredError, OAuthClient } from './oAuth.js';
|
|
3
|
-
import { PAYMENT_REQUIRED_ERROR_CODE, paymentRequiredError, DEFAULT_AUTHORIZATION_SERVER, parsePaymentRequests, parseMcpMessages, ConsoleLogger, isSSEResponse } from '@longrun/atxp-common';
|
|
4
|
-
import { getIsReactNative, createReactNativeSafeFetch } from '@longrun/atxp-common';
|
|
5
|
-
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
-
export function atxpFetch(config) {
|
|
7
|
-
const fetcher = new ATXPFetcher(config);
|
|
8
|
-
return fetcher.fetch;
|
|
9
|
-
}
|
|
10
|
-
export class ATXPFetcher {
|
|
11
|
-
constructor({ accountId, db, paymentMakers, fetchFn = fetch, sideChannelFetch = fetchFn, strict = true, allowInsecureRequests = process.env.NODE_ENV === 'development', allowedAuthorizationServers = [DEFAULT_AUTHORIZATION_SERVER], approvePayment = async () => true, logger = new ConsoleLogger(), onAuthorize = async () => { }, onAuthorizeFailure = async () => { }, onPayment = async () => { }, onPaymentFailure = async () => { } }) {
|
|
12
|
-
this.handlePaymentRequestError = async (paymentRequestError) => {
|
|
13
|
-
if (paymentRequestError.code !== PAYMENT_REQUIRED_ERROR_CODE) {
|
|
14
|
-
throw new Error(`ATXP: expected payment required error (code ${PAYMENT_REQUIRED_ERROR_CODE}); got code ${paymentRequestError.code}`);
|
|
15
|
-
}
|
|
16
|
-
const paymentRequestUrl = paymentRequestError.data?.paymentRequestUrl;
|
|
17
|
-
if (!paymentRequestUrl) {
|
|
18
|
-
throw new Error(`ATXP: payment requirement error does not contain a payment requirement URL`);
|
|
19
|
-
}
|
|
20
|
-
const paymentRequestId = paymentRequestError.data?.paymentRequestId;
|
|
21
|
-
if (!paymentRequestId) {
|
|
22
|
-
throw new Error(`ATXP: payment requirement error does not contain a payment request ID`);
|
|
23
|
-
}
|
|
24
|
-
if (!this.isAllowedAuthServer(paymentRequestUrl)) {
|
|
25
|
-
this.logger.info(`ATXP: payment requirement is not allowed on this server`);
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
const paymentRequestData = await this.getPaymentRequestData(paymentRequestUrl);
|
|
29
|
-
if (!paymentRequestData) {
|
|
30
|
-
throw new Error(`ATXP: payment request ${paymentRequestId} not found on server ${paymentRequestUrl}`);
|
|
31
|
-
}
|
|
32
|
-
const requestedNetwork = paymentRequestData.network;
|
|
33
|
-
if (!requestedNetwork) {
|
|
34
|
-
throw new Error(`Payment network not provided`);
|
|
35
|
-
}
|
|
36
|
-
const destination = paymentRequestData.destination;
|
|
37
|
-
if (!destination) {
|
|
38
|
-
throw new Error(`destination not provided`);
|
|
39
|
-
}
|
|
40
|
-
let amount = new BigNumber(0);
|
|
41
|
-
if (!paymentRequestData.amount) {
|
|
42
|
-
throw new Error(`amount not provided`);
|
|
43
|
-
}
|
|
44
|
-
try {
|
|
45
|
-
amount = new BigNumber(paymentRequestData.amount);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
throw new Error(`Invalid amount ${paymentRequestData.amount}`);
|
|
49
|
-
}
|
|
50
|
-
if (amount.lte(0)) {
|
|
51
|
-
throw new Error(`Invalid amount ${paymentRequestData.amount}`);
|
|
52
|
-
}
|
|
53
|
-
const currency = paymentRequestData.currency;
|
|
54
|
-
if (!currency) {
|
|
55
|
-
throw new Error(`Currency not provided`);
|
|
56
|
-
}
|
|
57
|
-
const paymentMaker = this.paymentMakers.get(requestedNetwork);
|
|
58
|
-
if (!paymentMaker) {
|
|
59
|
-
this.logger.info(`ATXP: payment network ${requestedNetwork} not set up for this server (available networks: ${Array.from(this.paymentMakers.keys()).join(', ')})`);
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
const prospectivePayment = {
|
|
63
|
-
accountId: this.accountId,
|
|
64
|
-
resourceUrl: paymentRequestData.resource?.toString() ?? '',
|
|
65
|
-
resourceName: paymentRequestData.resourceName ?? '',
|
|
66
|
-
network: requestedNetwork,
|
|
67
|
-
currency,
|
|
68
|
-
amount,
|
|
69
|
-
iss: paymentRequestData.iss ?? '',
|
|
70
|
-
};
|
|
71
|
-
if (!await this.approvePayment(prospectivePayment)) {
|
|
72
|
-
this.logger.info(`ATXP: payment request denied by callback function`);
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
let paymentId;
|
|
76
|
-
try {
|
|
77
|
-
paymentId = await paymentMaker.makePayment(amount, currency, destination, paymentRequestData.iss);
|
|
78
|
-
this.logger.info(`ATXP: made payment of ${amount} ${currency} on ${requestedNetwork}: ${paymentId}`);
|
|
79
|
-
// Call onPayment callback after successful payment
|
|
80
|
-
await this.onPayment({ payment: prospectivePayment });
|
|
81
|
-
}
|
|
82
|
-
catch (paymentError) {
|
|
83
|
-
// Call onPaymentFailure callback if payment fails
|
|
84
|
-
await this.onPaymentFailure({
|
|
85
|
-
payment: prospectivePayment,
|
|
86
|
-
error: paymentError
|
|
87
|
-
});
|
|
88
|
-
throw paymentError;
|
|
89
|
-
}
|
|
90
|
-
const jwt = await paymentMaker.generateJWT({ paymentRequestId, codeChallenge: '' });
|
|
91
|
-
// Make a fetch call to the authorization URL with the payment ID
|
|
92
|
-
// redirect=false is a hack
|
|
93
|
-
// The OAuth spec calls for the authorization url to return with a redirect, but fetch
|
|
94
|
-
// on mobile will automatically follow the redirect (it doesn't support the redirect=manual option)
|
|
95
|
-
// We want the redirect URL so we can extract the code from it, not the contents of the
|
|
96
|
-
// redirect URL (which might not even exist for agentic ATXP clients)
|
|
97
|
-
// So ATXP servers are set up to instead return a 200 with the redirect URL in the body
|
|
98
|
-
// if we pass redirect=false.
|
|
99
|
-
// TODO: Remove the redirect=false hack once we have a way to handle the redirect on mobile
|
|
100
|
-
const response = await this.sideChannelFetch(paymentRequestUrl.toString(), {
|
|
101
|
-
method: 'PUT',
|
|
102
|
-
headers: {
|
|
103
|
-
'Authorization': `Bearer ${jwt}`,
|
|
104
|
-
'Content-Type': 'application/json'
|
|
105
|
-
},
|
|
106
|
-
body: JSON.stringify({
|
|
107
|
-
transactionId: paymentId,
|
|
108
|
-
network: requestedNetwork
|
|
109
|
-
})
|
|
110
|
-
});
|
|
111
|
-
this.logger.debug(`ATXP: payment was ${response.ok ? 'successfully' : 'not successfully'} PUT to ${paymentRequestUrl} : status ${response.status} ${response.statusText}`);
|
|
112
|
-
if (!response.ok) {
|
|
113
|
-
const msg = `ATXP: payment to ${paymentRequestUrl} failed: HTTP ${response.status} ${await response.text()}`;
|
|
114
|
-
this.logger.info(msg);
|
|
115
|
-
throw new Error(msg);
|
|
116
|
-
}
|
|
117
|
-
return true;
|
|
118
|
-
};
|
|
119
|
-
this.getPaymentRequestData = async (paymentRequestUrl) => {
|
|
120
|
-
const prRequest = await this.sideChannelFetch(paymentRequestUrl);
|
|
121
|
-
if (!prRequest.ok) {
|
|
122
|
-
throw new Error(`ATXP: GET ${paymentRequestUrl} failed: ${prRequest.status} ${prRequest.statusText}`);
|
|
123
|
-
}
|
|
124
|
-
const paymentRequest = await prRequest.json();
|
|
125
|
-
return paymentRequest;
|
|
126
|
-
};
|
|
127
|
-
this.isAllowedAuthServer = (url) => {
|
|
128
|
-
const urlObj = typeof url === 'string' ? new URL(url) : url;
|
|
129
|
-
const baseUrl = urlObj.origin;
|
|
130
|
-
return this.allowedAuthorizationServers.includes(baseUrl);
|
|
131
|
-
};
|
|
132
|
-
this.makeAuthRequestWithPaymentMaker = async (authorizationUrl, paymentMaker) => {
|
|
133
|
-
const codeChallenge = authorizationUrl.searchParams.get('code_challenge');
|
|
134
|
-
if (!codeChallenge) {
|
|
135
|
-
throw new Error(`Code challenge not provided`);
|
|
136
|
-
}
|
|
137
|
-
const authToken = await paymentMaker.generateJWT({ paymentRequestId: '', codeChallenge: codeChallenge });
|
|
138
|
-
// Make a fetch call to the authorization URL with the payment ID
|
|
139
|
-
// redirect=false is a hack
|
|
140
|
-
// The OAuth spec calls for the authorization url to return with a redirect, but fetch
|
|
141
|
-
// on mobile will automatically follow the redirect (it doesn't support the redirect=manual option)
|
|
142
|
-
// We want the redirect URL so we can extract the code from it, not the contents of the
|
|
143
|
-
// redirect URL (which might not even exist for agentic ATXP clients)
|
|
144
|
-
// So ATXP servers are set up to instead return a 200 with the redirect URL in the body
|
|
145
|
-
// if we pass redirect=false.
|
|
146
|
-
// TODO: Remove the redirect=false hack once we have a way to handle the redirect on mobile
|
|
147
|
-
const response = await this.sideChannelFetch(authorizationUrl.toString() + '&redirect=false', {
|
|
148
|
-
method: 'GET',
|
|
149
|
-
redirect: 'manual',
|
|
150
|
-
headers: {
|
|
151
|
-
'Authorization': `Bearer ${authToken}`
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
// Check if we got a redirect response (301, 302, etc.) in case the server follows
|
|
155
|
-
// the OAuth spec
|
|
156
|
-
if (response.status >= 300 && response.status < 400) {
|
|
157
|
-
const location = response.headers.get('Location');
|
|
158
|
-
if (location) {
|
|
159
|
-
this.logger.info(`ATXP: got redirect authorization code response - redirect to ${location}`);
|
|
160
|
-
return location;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
this.logger.info(`ATXP: got redirect authorization code response, but no redirect URL in Location header`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// Handle the non-standard ATXP redirect=false hack
|
|
167
|
-
if (response.ok) {
|
|
168
|
-
// Handle the redirect manually
|
|
169
|
-
const body = await response.json();
|
|
170
|
-
const redirectUrl = body.redirect;
|
|
171
|
-
if (redirectUrl) {
|
|
172
|
-
this.logger.info(`ATXP: got response.ok authorization code response - redirect to ${redirectUrl}`);
|
|
173
|
-
return redirectUrl;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
this.logger.info(`ATXP: got authorization code response with response.ok, but no redirect URL in body`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
// If we didn't get a redirect, throw an error
|
|
180
|
-
throw new Error(`Expected redirect response from authorization URL, got ${response.status}`);
|
|
181
|
-
};
|
|
182
|
-
this.authToService = async (error) => {
|
|
183
|
-
// TODO: We need to generalize this - we can't assume that there's a single paymentMaker for the auth flow.
|
|
184
|
-
if (this.paymentMakers.size > 1) {
|
|
185
|
-
throw new Error(`ATXP: multiple payment makers found - cannot determine which one to use for auth`);
|
|
186
|
-
}
|
|
187
|
-
const paymentMaker = Array.from(this.paymentMakers.values())[0];
|
|
188
|
-
if (paymentMaker) {
|
|
189
|
-
// We can do the full OAuth flow - we'll generate a signed JWT and call /authorize on the
|
|
190
|
-
// AS to get a code, then exchange the code for an access token
|
|
191
|
-
const authorizationUrl = await this.oauthClient.makeAuthorizationUrl(error.url, error.resourceServerUrl);
|
|
192
|
-
if (!this.isAllowedAuthServer(authorizationUrl)) {
|
|
193
|
-
throw new Error(`ATXP: resource server ${error.url} is requesting to use ${authorizationUrl} which is not in the allowed list of authorization servers ${this.allowedAuthorizationServers.join(', ')}`);
|
|
194
|
-
}
|
|
195
|
-
try {
|
|
196
|
-
const redirectUrl = await this.makeAuthRequestWithPaymentMaker(authorizationUrl, paymentMaker);
|
|
197
|
-
// Handle the OAuth callback
|
|
198
|
-
await this.oauthClient.handleCallback(redirectUrl);
|
|
199
|
-
// Call onAuthorize callback after successful authorization
|
|
200
|
-
await this.onAuthorize({
|
|
201
|
-
authorizationServer: authorizationUrl.origin,
|
|
202
|
-
userId: this.accountId
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
catch (authError) {
|
|
206
|
-
// Call onAuthorizeFailure callback if authorization fails
|
|
207
|
-
await this.onAuthorizeFailure({
|
|
208
|
-
authorizationServer: authorizationUrl.origin,
|
|
209
|
-
userId: this.accountId,
|
|
210
|
-
error: authError
|
|
211
|
-
});
|
|
212
|
-
throw authError;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
else {
|
|
216
|
-
// Else, we'll see if we've already got an OAuth token from OUR caller (if any).
|
|
217
|
-
// If we do, we'll use it to auth to the downstream resource
|
|
218
|
-
// (In pass-through scenarios, the atxpServer() middleware stores the incoming
|
|
219
|
-
// token in the DB under the '' resource URL).
|
|
220
|
-
const existingToken = await this.db.getAccessToken(this.accountId, '');
|
|
221
|
-
if (!existingToken) {
|
|
222
|
-
this.logger.info(`ATXP: no token found for the current server - we can't exchange a token if we don't have one`);
|
|
223
|
-
throw error;
|
|
224
|
-
}
|
|
225
|
-
const newToken = await this.exchangeToken(existingToken, error.resourceServerUrl);
|
|
226
|
-
this.db.saveAccessToken(this.accountId, error.resourceServerUrl, newToken);
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
this.exchangeToken = async (myToken, newResourceUrl) => {
|
|
230
|
-
// TODO: Do token-exchange rather than passing through our own token
|
|
231
|
-
const token = Object.assign({}, myToken);
|
|
232
|
-
token.resourceUrl = newResourceUrl;
|
|
233
|
-
return token;
|
|
234
|
-
};
|
|
235
|
-
this.checkForATXPResponse = async (response) => {
|
|
236
|
-
const clonedResponse = response.clone();
|
|
237
|
-
const body = await clonedResponse.text();
|
|
238
|
-
if (body.length === 0) {
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
let paymentRequests = [];
|
|
242
|
-
try {
|
|
243
|
-
// Check if the response is SSE formatted
|
|
244
|
-
if (isSSEResponse(body)) {
|
|
245
|
-
this.logger.debug('Detected SSE-formatted response, parsing SSE messages for payment requirements');
|
|
246
|
-
const messages = await parseMcpMessages(body);
|
|
247
|
-
paymentRequests = messages.flatMap(message => parsePaymentRequests(message)).filter(pr => pr !== null);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
// Handle regular JSON responses
|
|
251
|
-
const json = JSON.parse(body);
|
|
252
|
-
const messages = await parseMcpMessages(json);
|
|
253
|
-
paymentRequests = messages.flatMap(message => parsePaymentRequests(message)).filter(pr => pr !== null);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
catch (error) {
|
|
257
|
-
this.logger.error(`ATXP: error checking for payment requirements in MCP response: ${error}`);
|
|
258
|
-
this.logger.debug(body);
|
|
259
|
-
}
|
|
260
|
-
if (paymentRequests.length > 1) {
|
|
261
|
-
throw new Error(`ATXP: multiple payment requirements found in MCP response. The client does not support multiple payment requirements. ${paymentRequests.map(pr => pr.url).join(', ')}`);
|
|
262
|
-
}
|
|
263
|
-
for (const { url, id } of paymentRequests) {
|
|
264
|
-
this.logger.info(`ATXP: payment requirement found in MCP response - ${url} - throwing payment required error`);
|
|
265
|
-
throw paymentRequiredError(url, id);
|
|
266
|
-
}
|
|
267
|
-
};
|
|
268
|
-
this.fetch = async (url, init) => {
|
|
269
|
-
let response = null;
|
|
270
|
-
let fetchError = null;
|
|
271
|
-
try {
|
|
272
|
-
// Try to fetch the resource
|
|
273
|
-
response = await this.oauthClient.fetch(url, init);
|
|
274
|
-
await this.checkForATXPResponse(response);
|
|
275
|
-
return response;
|
|
276
|
-
}
|
|
277
|
-
catch (error) {
|
|
278
|
-
fetchError = error;
|
|
279
|
-
// If we get an OAuth authentication required error, handle it
|
|
280
|
-
if (error instanceof OAuthAuthenticationRequiredError) {
|
|
281
|
-
this.logger.info(`OAuth authentication required - ATXP client starting oauth flow for resource metadata ${error.resourceServerUrl}`);
|
|
282
|
-
await this.authToService(error);
|
|
283
|
-
try {
|
|
284
|
-
// Retry the request once - we should be auth'd now
|
|
285
|
-
response = await this.oauthClient.fetch(url, init);
|
|
286
|
-
await this.checkForATXPResponse(response);
|
|
287
|
-
return response;
|
|
288
|
-
}
|
|
289
|
-
catch (eTwo) {
|
|
290
|
-
// If we throw an error again, it could be a payment error - don't just fail, see
|
|
291
|
-
// if we can handle it in the payment flow below
|
|
292
|
-
fetchError = eTwo;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
const mcpError = error instanceof McpError ? fetchError : null;
|
|
296
|
-
if (mcpError && mcpError.code === PAYMENT_REQUIRED_ERROR_CODE) {
|
|
297
|
-
this.logger.info(`Payment required - ATXP client starting payment flow ${mcpError?.data?.paymentRequestUrl}`);
|
|
298
|
-
if (await this.handlePaymentRequestError(mcpError)) {
|
|
299
|
-
// Retry the request once - we should be auth'd now
|
|
300
|
-
response = await this.oauthClient.fetch(url, init);
|
|
301
|
-
await this.checkForATXPResponse(response);
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
this.logger.info(`ATXP: payment request was not completed successfully`);
|
|
305
|
-
}
|
|
306
|
-
if (response) {
|
|
307
|
-
return response;
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
throw new Error(`ATXP: no response was generated by the fetch`);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// If it's not an authentication or payment error, rethrow
|
|
314
|
-
throw error;
|
|
315
|
-
}
|
|
316
|
-
};
|
|
317
|
-
// Use React Native safe fetch if in React Native environment
|
|
318
|
-
const safeFetchFn = getIsReactNative() ? createReactNativeSafeFetch(fetchFn) : fetchFn;
|
|
319
|
-
const safeSideChannelFetch = getIsReactNative() ? createReactNativeSafeFetch(sideChannelFetch) : sideChannelFetch;
|
|
320
|
-
// ATXPClient should never actually use the callback url - instead of redirecting the user to
|
|
321
|
-
// an authorization url which redirects back to the callback url, ATXPClient posts the payment
|
|
322
|
-
// directly to the authorization server, then does the token exchange itself
|
|
323
|
-
this.oauthClient = new OAuthClient({
|
|
324
|
-
userId: accountId,
|
|
325
|
-
db,
|
|
326
|
-
callbackUrl: 'http://localhost:3000/unused-dummy-atxp-callback',
|
|
327
|
-
isPublic: false,
|
|
328
|
-
fetchFn: safeFetchFn,
|
|
329
|
-
sideChannelFetch: safeSideChannelFetch,
|
|
330
|
-
strict,
|
|
331
|
-
allowInsecureRequests,
|
|
332
|
-
logger: logger
|
|
333
|
-
});
|
|
334
|
-
this.paymentMakers = new Map(Object.entries(paymentMakers));
|
|
335
|
-
this.sideChannelFetch = safeSideChannelFetch;
|
|
336
|
-
this.db = db;
|
|
337
|
-
this.accountId = accountId;
|
|
338
|
-
this.allowedAuthorizationServers = allowedAuthorizationServers;
|
|
339
|
-
this.approvePayment = approvePayment;
|
|
340
|
-
this.logger = logger;
|
|
341
|
-
this.onAuthorize = onAuthorize;
|
|
342
|
-
this.onAuthorizeFailure = onAuthorizeFailure;
|
|
343
|
-
this.onPayment = onPayment;
|
|
344
|
-
this.onPaymentFailure = onPaymentFailure;
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
//# sourceMappingURL=atxpFetcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"atxpFetcher.js","sourceRoot":"","sources":["../../src/atxpFetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { FetchMock } from 'fetch-mock';
|
|
2
|
-
export declare function mockResourceServer(mock: FetchMock, baseUrl?: string, resourcePath?: string, authServerUrl?: string): FetchMock;
|
|
3
|
-
export declare function mockAuthorizationServer(mock: FetchMock, baseUrl?: string, paymentRequests?: {
|
|
4
|
-
[key: string]: BigNumber;
|
|
5
|
-
}): FetchMock;
|
|
6
|
-
//# sourceMappingURL=clientTestHelpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clientTestHelpers.d.ts","sourceRoot":"","sources":["../../src/clientTestHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,MAA8B,EAAE,YAAY,GAAE,MAAe,EAAE,aAAa,GAAE,MAAqC,aAqB/K;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,MAAqC,EAAE,eAAe,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAM,aAqExJ"}
|