@atxp/server 0.2.22 → 0.4.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.
Files changed (75) hide show
  1. package/dist/atxpContext.js +9 -6
  2. package/dist/atxpContext.js.map +1 -1
  3. package/dist/core/mcp.js +39 -0
  4. package/dist/core/mcp.js.map +1 -0
  5. package/dist/{oAuthChallenge.js → core/oauth.js} +21 -12
  6. package/dist/core/oauth.js.map +1 -0
  7. package/dist/{token.js → core/token.js} +13 -7
  8. package/dist/core/token.js.map +1 -0
  9. package/dist/getResource.js +23 -4
  10. package/dist/getResource.js.map +1 -1
  11. package/dist/index.cjs +654 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.d.ts +197 -5
  14. package/dist/index.js +609 -5
  15. package/dist/index.js.map +1 -1
  16. package/dist/node/getRawBody.js +35 -0
  17. package/dist/node/getRawBody.js.map +1 -0
  18. package/dist/node/http.js +49 -0
  19. package/dist/node/http.js.map +1 -0
  20. package/dist/node/oauth.js +41 -0
  21. package/dist/node/oauth.js.map +1 -0
  22. package/dist/node/token.js +15 -0
  23. package/dist/node/token.js.map +1 -0
  24. package/dist/oAuthMetadata.js +6 -12
  25. package/dist/oAuthMetadata.js.map +1 -1
  26. package/dist/paymentServer.js +5 -20
  27. package/dist/paymentServer.js.map +1 -1
  28. package/dist/protectedResourceMetadata.js +10 -16
  29. package/dist/protectedResourceMetadata.js.map +1 -1
  30. package/dist/requirePayment.js +7 -4
  31. package/dist/requirePayment.js.map +1 -1
  32. package/dist/serverConfig.js +37 -0
  33. package/dist/serverConfig.js.map +1 -0
  34. package/dist/serverTestHelpers.d.ts +70 -21
  35. package/dist/serverTestHelpers.js +55 -24
  36. package/dist/serverTestHelpers.js.map +1 -1
  37. package/dist/types.js +4 -2
  38. package/dist/types.js.map +1 -1
  39. package/dist/webapi/mcp.js +25 -0
  40. package/dist/webapi/mcp.js.map +1 -0
  41. package/dist/webapi/oauth.js +43 -0
  42. package/dist/webapi/oauth.js.map +1 -0
  43. package/dist/webapi/token.js +15 -0
  44. package/dist/webapi/token.js.map +1 -0
  45. package/package.json +24 -10
  46. package/dist/atxpContext.d.ts +0 -6
  47. package/dist/atxpContext.d.ts.map +0 -1
  48. package/dist/atxpServer.d.ts +0 -12
  49. package/dist/atxpServer.d.ts.map +0 -1
  50. package/dist/atxpServer.js +0 -101
  51. package/dist/atxpServer.js.map +0 -1
  52. package/dist/getResource.d.ts +0 -4
  53. package/dist/getResource.d.ts.map +0 -1
  54. package/dist/http.d.ts +0 -7
  55. package/dist/http.d.ts.map +0 -1
  56. package/dist/http.js +0 -51
  57. package/dist/http.js.map +0 -1
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/oAuthChallenge.d.ts +0 -4
  60. package/dist/oAuthChallenge.d.ts.map +0 -1
  61. package/dist/oAuthChallenge.js.map +0 -1
  62. package/dist/oAuthMetadata.d.ts +0 -6
  63. package/dist/oAuthMetadata.d.ts.map +0 -1
  64. package/dist/paymentServer.d.ts +0 -62
  65. package/dist/paymentServer.d.ts.map +0 -1
  66. package/dist/protectedResourceMetadata.d.ts +0 -5
  67. package/dist/protectedResourceMetadata.d.ts.map +0 -1
  68. package/dist/requirePayment.d.ts +0 -3
  69. package/dist/requirePayment.d.ts.map +0 -1
  70. package/dist/serverTestHelpers.d.ts.map +0 -1
  71. package/dist/token.d.ts +0 -4
  72. package/dist/token.d.ts.map +0 -1
  73. package/dist/token.js.map +0 -1
  74. package/dist/types.d.ts +0 -60
  75. package/dist/types.d.ts.map +0 -1
@@ -1,62 +0,0 @@
1
- import { PaymentServer, ChargeResponse, Charge } from "./types.js";
2
- import { Network, Currency, AuthorizationServerUrl, FetchLike, Logger } from "@atxp/common";
3
- import BigNumber from "bignumber.js";
4
- /**
5
- * ATXP Payment Server implementation
6
- *
7
- * This class handles payment operations with the ATXP authorization server.
8
- *
9
- * **Required Environment Variable:**
10
- * - `ATXP_AUTH_CLIENT_TOKEN`: Authentication token for the ATXP authorization server.
11
- * This token is used to authenticate API calls to the ATXP server for payment operations.
12
- * Must be set when using this class, otherwise an error will be thrown.
13
- *
14
- * @example
15
- * ```typescript
16
- * // Ensure ATXP_AUTH_CLIENT_TOKEN is set in your environment
17
- * const paymentServer = new ATXPPaymentServer(
18
- * 'https://auth.atxp.ai',
19
- * oAuthDb,
20
- * logger
21
- * );
22
- * ```
23
- */
24
- export declare class ATXPPaymentServer implements PaymentServer {
25
- private readonly server;
26
- private readonly authCredentials;
27
- private readonly logger;
28
- private readonly fetchFn;
29
- constructor(server: AuthorizationServerUrl, authCredentials: string, logger: Logger, fetchFn?: FetchLike);
30
- charge: ({ source, destination, network, currency, amount }: {
31
- source: string;
32
- destination: string;
33
- network: Network;
34
- currency: Currency;
35
- amount: BigNumber;
36
- }) => Promise<ChargeResponse>;
37
- createPaymentRequest: (charge: Charge) => Promise<string>;
38
- /**
39
- * Makes authenticated requests to the ATXP authorization server
40
- *
41
- * This method automatically includes the `ATXP_AUTH_CLIENT_TOKEN` from environment variables
42
- * in the Authorization header for all requests.
43
- *
44
- * @param method - HTTP method ('GET' or 'POST')
45
- * @param path - API endpoint path
46
- * @param body - Request body (for POST requests)
47
- * @returns Promise<Response> - The HTTP response from the server
48
- * @throws {Error} When `ATXP_AUTH_CLIENT_TOKEN` environment variable is not set
49
- *
50
- * @example
51
- * ```typescript
52
- * // Ensure ATXP_AUTH_CLIENT_TOKEN is set in your environment
53
- * const response = await paymentServer.makeRequest('POST', '/charge', {
54
- * source: 'user123',
55
- * destination: 'merchant456',
56
- * amount: new BigNumber('0.01')
57
- * });
58
- * ```
59
- */
60
- protected makeRequest: (method: "GET" | "POST", path: string, body: unknown) => Promise<Response>;
61
- }
62
- //# sourceMappingURL=paymentServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paymentServer.d.ts","sourceRoot":"","sources":["../src/paymentServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AAChH,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,MAAM,EAAE,sBAAsB,EAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,SAAiB;IAM7C,MAAM,GAAS,oDACb;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAC,KAAG,OAAO,CAAC,cAAc,CAAC,CAczH;IAED,oBAAoB,GAAS,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAY5D;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,WAAW,GAAS,QAAQ,KAAK,GAAG,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAWpG;CACF"}
@@ -1,5 +0,0 @@
1
- import { ATXPConfig, ProtectedResourceMetadata } from "./types.js";
2
- import { ServerResponse } from "http";
3
- export declare function sendProtectedResourceMetadata(res: ServerResponse, metadata: ProtectedResourceMetadata | null): boolean;
4
- export declare function getProtectedResourceMetadata(config: ATXPConfig, requestUrl: URL): ProtectedResourceMetadata | null;
5
- //# sourceMappingURL=protectedResourceMetadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protectedResourceMetadata.d.ts","sourceRoot":"","sources":["../src/protectedResourceMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGtC,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,yBAAyB,GAAG,IAAI,GAAG,OAAO,CAQtH;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,yBAAyB,GAAG,IAAI,CAYlH"}
@@ -1,3 +0,0 @@
1
- import { RequirePaymentConfig } from "@atxp/common";
2
- export declare function requirePayment(paymentConfig: RequirePaymentConfig): Promise<void>;
3
- //# sourceMappingURL=requirePayment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requirePayment.d.ts","sourceRoot":"","sources":["../src/requirePayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAwB,MAAM,cAAc,CAAC;AAG1E,wBAAsB,cAAc,CAAC,aAAa,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverTestHelpers.d.ts","sourceRoot":"","sources":["../src/serverTestHelpers.ts"],"names":[],"mappings":"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"}
package/dist/token.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { IncomingMessage } from "http";
2
- import { ATXPConfig, TokenCheck } from "./types.js";
3
- export declare function checkToken(config: ATXPConfig, resourceURL: URL, req: IncomingMessage): Promise<TokenCheck>;
4
- //# sourceMappingURL=token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAElE,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAsChH"}
package/dist/token.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,YAAY,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB,EAAE,WAAgB,EAAE,GAAoB;IACzF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,4BAA4B,GAAG,GAAG,QAAQ,KAAK,IAAI,wCAAwC,QAAQ,EAAE,CAAC;IAE5G,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,KAAc;QACtB,mBAAmB,EAAE,4BAA4B;KAClD,CAAC;IAEF,yDAAyD;IACzD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;IAC9E,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAA;IAC5F,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE3F,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,CAAA;QAC7E,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,mBAAmB;YACzB,KAAK;SACN,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QAClE,OAAO,EAAC,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,60 +0,0 @@
1
- import { AuthorizationServerUrl, Currency, Logger, PaymentRequestData, Network, UrlString, OAuthDb, TokenData, OAuthResourceClient } from "@atxp/common";
2
- export 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';
3
- export type McpName = string;
4
- export type McpNamePattern = McpName | '*';
5
- export type McpOperation = `${McpMethod}` | `${McpMethod}:${McpName}`;
6
- export type McpOperationPattern = McpOperation | '*' | `${McpMethod}:*`;
7
- export type RefundErrors = boolean | 'nonMcpOnly';
8
- export type Charge = Omit<PaymentRequestData, 'resource' | 'resourceName' | 'iss'>;
9
- export type ChargeResponse = {
10
- success: boolean;
11
- requiredPayment: PaymentRequestData | null;
12
- };
13
- export type PaymentServer = {
14
- charge: (args: Charge) => Promise<ChargeResponse>;
15
- createPaymentRequest: (args: Charge) => Promise<string>;
16
- };
17
- export type ATXPConfig = {
18
- destination: string;
19
- mountPath: string;
20
- currency: Currency;
21
- network: Network;
22
- server: AuthorizationServerUrl;
23
- payeeName: string;
24
- resource: UrlString | null;
25
- allowHttp: boolean;
26
- logger: Logger;
27
- oAuthDb: OAuthDb;
28
- oAuthClient: OAuthResourceClient;
29
- paymentServer: PaymentServer;
30
- atxpAuthClientToken: string | undefined;
31
- };
32
- export declare enum TokenProblem {
33
- NO_TOKEN = "NO-TOKEN",
34
- NON_BEARER_AUTH_HEADER = "NON-BEARER-AUTH-HEADER",
35
- INVALID_TOKEN = "INVALID-TOKEN",
36
- INVALID_AUDIENCE = "INVALID-AUDIENCE",
37
- NON_SUFFICIENT_FUNDS = "NON-SUFFICIENT-FUNDS",
38
- INTROSPECT_ERROR = "INTROSPECT-ERROR"
39
- }
40
- export type TokenCheckPass = {
41
- passes: true;
42
- token: string;
43
- data: TokenData;
44
- };
45
- export type TokenCheckFail = {
46
- passes: false;
47
- problem: TokenProblem;
48
- token: string | null;
49
- data: TokenData | null;
50
- resourceMetadataUrl: string | null;
51
- };
52
- export type TokenCheck = TokenCheckPass | TokenCheckFail;
53
- export type ProtectedResourceMetadata = {
54
- resource: URL;
55
- resource_name: string;
56
- authorization_servers: string[];
57
- bearer_methods_supported: string[];
58
- scopes_supported: string[];
59
- };
60
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}