@atxp/server 0.3.0 → 0.5.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/dist/core/mcp.js.map +1 -1
- package/dist/getResource.js +19 -2
- package/dist/getResource.js.map +1 -1
- package/dist/index.cjs +450 -13436
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +101 -17
- package/dist/index.js +425 -13439
- package/dist/index.js.map +1 -1
- package/dist/node/getRawBody.js +35 -0
- package/dist/node/getRawBody.js.map +1 -0
- package/dist/node/http.js +4 -7
- package/dist/node/http.js.map +1 -1
- package/dist/node/oauth.js +19 -1
- package/dist/node/oauth.js.map +1 -1
- package/dist/oAuthMetadata.js +1 -10
- package/dist/oAuthMetadata.js.map +1 -1
- package/dist/paymentDestination.js +85 -0
- package/dist/paymentDestination.js.map +1 -0
- package/dist/protectedResourceMetadata.js +6 -15
- package/dist/protectedResourceMetadata.js.map +1 -1
- package/dist/requirePayment.js +7 -2
- package/dist/requirePayment.js.map +1 -1
- package/dist/serverConfig.js +36 -0
- package/dist/serverConfig.js.map +1 -0
- package/dist/serverTestHelpers.d.ts +116 -0
- package/dist/serverTestHelpers.js +131 -0
- package/dist/serverTestHelpers.js.map +1 -0
- package/dist/webapi/mcp.js.map +1 -1
- package/dist/webapi/oauth.js +23 -1
- package/dist/webapi/oauth.js.map +1 -1
- package/package.json +8 -8
- package/dist/_virtual/_commonjsHelpers.js +0 -8
- package/dist/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/_virtual/bom-handling.js +0 -4
- package/dist/_virtual/bom-handling.js.map +0 -1
- package/dist/_virtual/dbcs-codec.js +0 -4
- package/dist/_virtual/dbcs-codec.js.map +0 -1
- package/dist/_virtual/index.js +0 -8
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/index2.js +0 -4
- package/dist/_virtual/index2.js.map +0 -1
- package/dist/_virtual/index3.js +0 -4
- package/dist/_virtual/index3.js.map +0 -1
- package/dist/_virtual/index4.js +0 -4
- package/dist/_virtual/index4.js.map +0 -1
- package/dist/_virtual/index5.js +0 -4
- package/dist/_virtual/index5.js.map +0 -1
- package/dist/_virtual/inherits.js +0 -4
- package/dist/_virtual/inherits.js.map +0 -1
- package/dist/_virtual/inherits_browser.js +0 -4
- package/dist/_virtual/inherits_browser.js.map +0 -1
- package/dist/_virtual/sbcs-codec.js +0 -4
- package/dist/_virtual/sbcs-codec.js.map +0 -1
- package/dist/_virtual/utf16.js +0 -4
- package/dist/_virtual/utf16.js.map +0 -1
- package/dist/_virtual/utf32.js +0 -4
- package/dist/_virtual/utf32.js.map +0 -1
- package/dist/_virtual/utf7.js +0 -4
- package/dist/_virtual/utf7.js.map +0 -1
- package/dist/atxpServer.js +0 -93
- package/dist/atxpServer.js.map +0 -1
- package/dist/node_modules/bytes/index.js +0 -181
- package/dist/node_modules/bytes/index.js.map +0 -1
- package/dist/node_modules/depd/index.js +0 -551
- package/dist/node_modules/depd/index.js.map +0 -1
- package/dist/node_modules/http-errors/index.js +0 -307
- package/dist/node_modules/http-errors/index.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +0 -599
- package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +0 -207
- package/dist/node_modules/iconv-lite/encodings/dbcs-data.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/index.js +0 -45
- package/dist/node_modules/iconv-lite/encodings/index.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/internal.js +0 -211
- package/dist/node_modules/iconv-lite/encodings/internal.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +0 -84
- package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +0 -461
- package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +0 -188
- package/dist/node_modules/iconv-lite/encodings/sbcs-data.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json.js +0 -507
- package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/cp936.json.js +0 -2622
- package/dist/node_modules/iconv-lite/encodings/tables/cp936.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/cp949.json.js +0 -2381
- package/dist/node_modules/iconv-lite/encodings/tables/cp949.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/cp950.json.js +0 -730
- package/dist/node_modules/iconv-lite/encodings/tables/cp950.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json.js +0 -823
- package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json.js +0 -425
- package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json.js +0 -265
- package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json.js +0 -549
- package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/utf16.js +0 -207
- package/dist/node_modules/iconv-lite/encodings/utf16.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/utf32.js +0 -330
- package/dist/node_modules/iconv-lite/encodings/utf32.js.map +0 -1
- package/dist/node_modules/iconv-lite/encodings/utf7.js +0 -298
- package/dist/node_modules/iconv-lite/encodings/utf7.js.map +0 -1
- package/dist/node_modules/iconv-lite/lib/bom-handling.js +0 -62
- package/dist/node_modules/iconv-lite/lib/bom-handling.js.map +0 -1
- package/dist/node_modules/iconv-lite/lib/index.js +0 -193
- package/dist/node_modules/iconv-lite/lib/index.js.map +0 -1
- package/dist/node_modules/iconv-lite/lib/streams.js +0 -121
- package/dist/node_modules/iconv-lite/lib/streams.js.map +0 -1
- package/dist/node_modules/inherits/inherits.js +0 -22
- package/dist/node_modules/inherits/inherits.js.map +0 -1
- package/dist/node_modules/inherits/inherits_browser.js +0 -39
- package/dist/node_modules/inherits/inherits_browser.js.map +0 -1
- package/dist/node_modules/raw-body/index.js +0 -352
- package/dist/node_modules/raw-body/index.js.map +0 -1
- package/dist/node_modules/safer-buffer/safer.js +0 -89
- package/dist/node_modules/safer-buffer/safer.js.map +0 -1
- package/dist/node_modules/setprototypeof/index.js +0 -27
- package/dist/node_modules/setprototypeof/index.js.map +0 -1
- package/dist/node_modules/statuses/codes.json.js +0 -68
- package/dist/node_modules/statuses/codes.json.js.map +0 -1
- package/dist/node_modules/statuses/index.js +0 -158
- package/dist/node_modules/statuses/index.js.map +0 -1
- package/dist/node_modules/toidentifier/index.js +0 -42
- package/dist/node_modules/toidentifier/index.js.map +0 -1
- package/dist/node_modules/unpipe/index.js +0 -79
- package/dist/node_modules/unpipe/index.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,39 @@
|
|
|
1
|
-
import { Currency, Network, AuthorizationServerUrl, UrlString,
|
|
2
|
-
import
|
|
1
|
+
import { Currency, Network, FetchLike, Logger, PaymentRequestData, AuthorizationServerUrl, UrlString, OAuthDb, OAuthResourceClient, TokenData, RequirePaymentConfig } from '@atxp/common';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
3
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
4
|
+
import * as oauth from 'oauth4webapi';
|
|
4
5
|
import { IncomingMessage as IncomingMessage$1 } from 'node:http';
|
|
5
6
|
import { JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
6
7
|
|
|
8
|
+
type FundingAmount = {
|
|
9
|
+
amount: BigNumber;
|
|
10
|
+
currency: Currency;
|
|
11
|
+
};
|
|
12
|
+
type PaymentAddress = {
|
|
13
|
+
destination: string;
|
|
14
|
+
network: Network;
|
|
15
|
+
};
|
|
16
|
+
interface PaymentDestination {
|
|
17
|
+
destination(fundingAmount: FundingAmount, buyerAddress: string): Promise<PaymentAddress>;
|
|
18
|
+
}
|
|
19
|
+
declare class ChainPaymentDestination implements PaymentDestination {
|
|
20
|
+
private readonly address;
|
|
21
|
+
private readonly network;
|
|
22
|
+
constructor(address: string, network: Network);
|
|
23
|
+
destination(_fundingAmount: FundingAmount, _buyerAddress: string): Promise<PaymentAddress>;
|
|
24
|
+
}
|
|
25
|
+
declare class ATXPPaymentDestination implements PaymentDestination {
|
|
26
|
+
private accountServerURL;
|
|
27
|
+
private token;
|
|
28
|
+
private fetchFn;
|
|
29
|
+
private logger;
|
|
30
|
+
constructor(connectionString: string, opts?: {
|
|
31
|
+
fetchFn?: FetchLike;
|
|
32
|
+
logger?: Logger;
|
|
33
|
+
});
|
|
34
|
+
destination(fundingAmount: FundingAmount, buyerAddress: string): Promise<PaymentAddress>;
|
|
35
|
+
}
|
|
36
|
+
|
|
7
37
|
type McpMethod = 'notifications/cancelled' | 'initialize' | 'ping' | 'notifications/progress' | 'resources/list' | 'resources/templates/list' | 'resources/read' | 'notifications/resources/list_changed' | 'resources/subscribe' | 'resources/unsubscribe' | 'notifications/resources/updated' | 'prompts/list' | 'prompts/get' | 'notifications/prompts/list_changed' | 'tools/list' | 'tools/call' | 'notifications/tools/list_changed' | 'logging/setLevel' | 'notifications/message' | 'sampling/createMessage' | 'elicitation/create' | 'completion/complete' | 'roots/list' | 'notifications/roots/list_changed';
|
|
8
38
|
type McpName = string;
|
|
9
39
|
type McpNamePattern = McpName | '*';
|
|
@@ -20,10 +50,9 @@ type PaymentServer = {
|
|
|
20
50
|
createPaymentRequest: (args: Charge) => Promise<string>;
|
|
21
51
|
};
|
|
22
52
|
type ATXPConfig = {
|
|
23
|
-
|
|
53
|
+
paymentDestination: PaymentDestination;
|
|
24
54
|
mountPath: string;
|
|
25
55
|
currency: Currency;
|
|
26
|
-
network: Network;
|
|
27
56
|
server: AuthorizationServerUrl;
|
|
28
57
|
payeeName: string;
|
|
29
58
|
resource: UrlString | null;
|
|
@@ -62,15 +91,6 @@ type ProtectedResourceMetadata = {
|
|
|
62
91
|
scopes_supported: string[];
|
|
63
92
|
};
|
|
64
93
|
|
|
65
|
-
type RequiredATXPConfigFields = 'destination';
|
|
66
|
-
type RequiredATXPConfig = Pick<ATXPConfig, RequiredATXPConfigFields>;
|
|
67
|
-
type OptionalATXPConfig = Omit<ATXPConfig, RequiredATXPConfigFields>;
|
|
68
|
-
type ATXPArgs = RequiredATXPConfig & Partial<OptionalATXPConfig>;
|
|
69
|
-
type BuildableATXPConfigFields = 'oAuthDb' | 'oAuthClient' | 'paymentServer' | 'logger';
|
|
70
|
-
declare const DEFAULT_CONFIG: Required<Omit<OptionalATXPConfig, BuildableATXPConfigFields>>;
|
|
71
|
-
declare function buildServerConfig(args: ATXPArgs): ATXPConfig;
|
|
72
|
-
declare function atxpServer(args: ATXPArgs): Router;
|
|
73
|
-
|
|
74
94
|
declare function getATXPConfig(): ATXPConfig | null;
|
|
75
95
|
declare function getATXPResource(): URL | null;
|
|
76
96
|
declare function atxpAccountId(): string | null;
|
|
@@ -96,7 +116,7 @@ declare function createOAuthChallengeResponseCore(tokenCheck: TokenCheck): {
|
|
|
96
116
|
* Core platform-agnostic MCP request parsing logic
|
|
97
117
|
* Takes parsed JSON and request metadata instead of platform-specific request objects
|
|
98
118
|
*/
|
|
99
|
-
declare function parseMcpRequestsCore(config: ATXPConfig, requestUrl: URL, method: string, parsedBody: unknown):
|
|
119
|
+
declare function parseMcpRequestsCore(config: ATXPConfig, requestUrl: URL, method: string, parsedBody: unknown): unknown[];
|
|
100
120
|
|
|
101
121
|
/**
|
|
102
122
|
* Node.js HTTP implementation of token checking
|
|
@@ -109,6 +129,8 @@ declare function checkToken(config: ATXPConfig, resourceURL: URL, req: IncomingM
|
|
|
109
129
|
* Uses Node.js ServerResponse and delegates to core logic
|
|
110
130
|
*/
|
|
111
131
|
declare function sendOAuthChallenge(res: ServerResponse, tokenCheck: TokenCheck): boolean;
|
|
132
|
+
declare function sendProtectedResourceMetadata$1(res: ServerResponse, metadata: ProtectedResourceMetadata | null): boolean;
|
|
133
|
+
declare function sendOAuthMetadata$1(res: ServerResponse, metadata: oauth.AuthorizationServer | null): boolean;
|
|
112
134
|
|
|
113
135
|
/**
|
|
114
136
|
* Node.js HTTP implementation of MCP request parsing
|
|
@@ -128,14 +150,76 @@ declare function checkTokenWebApi(config: ATXPConfig, resourceURL: URL, request:
|
|
|
128
150
|
* Uses Web API Response and delegates to core logic
|
|
129
151
|
*/
|
|
130
152
|
declare function sendOAuthChallengeWebApi(tokenCheck: TokenCheck): Response | null;
|
|
153
|
+
declare function sendProtectedResourceMetadata(metadata: ProtectedResourceMetadata | null): Response | null;
|
|
154
|
+
declare function sendOAuthMetadata(metadata: oauth.AuthorizationServer | null): Response | null;
|
|
131
155
|
|
|
132
156
|
/**
|
|
133
157
|
* Web API implementation of MCP request parsing for Cloudflare Workers, Deno, etc.
|
|
134
158
|
* Handles Web API Request parsing and delegates to core logic
|
|
135
159
|
*/
|
|
136
|
-
declare function parseMcpRequestsWebApi(config: ATXPConfig, request: Request): Promise<
|
|
160
|
+
declare function parseMcpRequestsWebApi(config: ATXPConfig, request: Request): Promise<JSONRPCRequest[]>;
|
|
137
161
|
|
|
138
162
|
declare function requirePayment(paymentConfig: RequirePaymentConfig): Promise<void>;
|
|
139
163
|
|
|
140
|
-
|
|
141
|
-
|
|
164
|
+
type RequiredATXPConfigFields = 'paymentDestination';
|
|
165
|
+
type RequiredATXPConfig = Pick<ATXPConfig, RequiredATXPConfigFields>;
|
|
166
|
+
type OptionalATXPConfig = Omit<ATXPConfig, RequiredATXPConfigFields>;
|
|
167
|
+
type ATXPArgs = RequiredATXPConfig & Partial<OptionalATXPConfig>;
|
|
168
|
+
type BuildableATXPConfigFields = 'oAuthDb' | 'oAuthClient' | 'paymentServer' | 'logger';
|
|
169
|
+
declare const DEFAULT_CONFIG: Required<Omit<OptionalATXPConfig, BuildableATXPConfigFields>>;
|
|
170
|
+
declare function buildServerConfig(args: ATXPArgs): ATXPConfig;
|
|
171
|
+
|
|
172
|
+
declare function getResource(config: ATXPConfig, requestUrl: URL, headers?: Record<string, string | string[] | undefined>): URL;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* ATXP Payment Server implementation
|
|
176
|
+
*
|
|
177
|
+
* This class handles payment operations with the ATXP authorization server.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* const paymentServer = new ATXPPaymentServer(
|
|
182
|
+
* 'https://auth.atxp.ai',
|
|
183
|
+
* logger
|
|
184
|
+
* );
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
declare class ATXPPaymentServer implements PaymentServer {
|
|
188
|
+
private readonly server;
|
|
189
|
+
private readonly logger;
|
|
190
|
+
private readonly fetchFn;
|
|
191
|
+
constructor(server: AuthorizationServerUrl, logger: Logger, fetchFn?: FetchLike);
|
|
192
|
+
charge: ({ source, destination, network, currency, amount }: {
|
|
193
|
+
source: string;
|
|
194
|
+
destination: string;
|
|
195
|
+
network: Network;
|
|
196
|
+
currency: Currency;
|
|
197
|
+
amount: BigNumber;
|
|
198
|
+
}) => Promise<ChargeResponse>;
|
|
199
|
+
createPaymentRequest: (charge: Charge) => Promise<string>;
|
|
200
|
+
/**
|
|
201
|
+
* Makes authenticated requests to the ATXP authorization server
|
|
202
|
+
*
|
|
203
|
+
* @param method - HTTP method ('GET' or 'POST')
|
|
204
|
+
* @param path - API endpoint path
|
|
205
|
+
* @param body - Request body (for POST requests)
|
|
206
|
+
* @returns Promise<Response> - The HTTP response from the server
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* const response = await paymentServer.makeRequest('POST', '/charge', {
|
|
211
|
+
* source: 'user123',
|
|
212
|
+
* destination: 'merchant456',
|
|
213
|
+
* amount: new BigNumber('0.01')
|
|
214
|
+
* });
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
protected makeRequest: (method: "GET" | "POST", path: string, body: unknown) => Promise<Response>;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
declare function getOAuthMetadata(config: ATXPConfig, requestUrl: URL): Promise<oauth.AuthorizationServer | null>;
|
|
221
|
+
|
|
222
|
+
declare function getProtectedResourceMetadata(config: ATXPConfig, requestUrl: URL, headers?: Record<string, string | string[] | undefined>): ProtectedResourceMetadata | null;
|
|
223
|
+
|
|
224
|
+
export { ATXPPaymentDestination, ATXPPaymentServer, ChainPaymentDestination, DEFAULT_CONFIG, TokenProblem, atxpAccountId, 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 };
|
|
225
|
+
export type { ATXPArgs, ATXPConfig, Charge, ChargeResponse, FundingAmount, McpMethod, McpName, McpNamePattern, McpOperation, McpOperationPattern, PaymentAddress, PaymentDestination, PaymentServer, ProtectedResourceMetadata, RefundErrors, TokenCheck, TokenCheckFail, TokenCheckPass };
|