@atxp/server 0.2.21 → 0.3.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 (164) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +8 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/bom-handling.js +4 -0
  4. package/dist/_virtual/bom-handling.js.map +1 -0
  5. package/dist/_virtual/dbcs-codec.js +4 -0
  6. package/dist/_virtual/dbcs-codec.js.map +1 -0
  7. package/dist/_virtual/index.js +8 -0
  8. package/dist/_virtual/index.js.map +1 -0
  9. package/dist/_virtual/index2.js +4 -0
  10. package/dist/_virtual/index2.js.map +1 -0
  11. package/dist/_virtual/index3.js +4 -0
  12. package/dist/_virtual/index3.js.map +1 -0
  13. package/dist/_virtual/index4.js +4 -0
  14. package/dist/_virtual/index4.js.map +1 -0
  15. package/dist/_virtual/index5.js +4 -0
  16. package/dist/_virtual/index5.js.map +1 -0
  17. package/dist/_virtual/inherits.js +4 -0
  18. package/dist/_virtual/inherits.js.map +1 -0
  19. package/dist/_virtual/inherits_browser.js +4 -0
  20. package/dist/_virtual/inherits_browser.js.map +1 -0
  21. package/dist/_virtual/sbcs-codec.js +4 -0
  22. package/dist/_virtual/sbcs-codec.js.map +1 -0
  23. package/dist/_virtual/utf16.js +4 -0
  24. package/dist/_virtual/utf16.js.map +1 -0
  25. package/dist/_virtual/utf32.js +4 -0
  26. package/dist/_virtual/utf32.js.map +1 -0
  27. package/dist/_virtual/utf7.js +4 -0
  28. package/dist/_virtual/utf7.js.map +1 -0
  29. package/dist/atxpContext.js +9 -6
  30. package/dist/atxpContext.js.map +1 -1
  31. package/dist/atxpServer.js +19 -27
  32. package/dist/atxpServer.js.map +1 -1
  33. package/dist/core/mcp.js +39 -0
  34. package/dist/core/mcp.js.map +1 -0
  35. package/dist/{oAuthChallenge.js → core/oauth.js} +21 -12
  36. package/dist/core/oauth.js.map +1 -0
  37. package/dist/{token.js → core/token.js} +13 -7
  38. package/dist/core/token.js.map +1 -0
  39. package/dist/getResource.js +5 -3
  40. package/dist/getResource.js.map +1 -1
  41. package/dist/index.cjs +13727 -0
  42. package/dist/index.cjs.map +1 -0
  43. package/dist/index.d.ts +141 -5
  44. package/dist/index.js +13708 -5
  45. package/dist/index.js.map +1 -1
  46. package/dist/{http.js → node/http.js} +21 -20
  47. package/dist/node/http.js.map +1 -0
  48. package/dist/node/oauth.js +23 -0
  49. package/dist/node/oauth.js.map +1 -0
  50. package/dist/node/token.js +15 -0
  51. package/dist/node/token.js.map +1 -0
  52. package/dist/node_modules/bytes/index.js +181 -0
  53. package/dist/node_modules/bytes/index.js.map +1 -0
  54. package/dist/node_modules/depd/index.js +551 -0
  55. package/dist/node_modules/depd/index.js.map +1 -0
  56. package/dist/node_modules/http-errors/index.js +307 -0
  57. package/dist/node_modules/http-errors/index.js.map +1 -0
  58. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +599 -0
  59. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js.map +1 -0
  60. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +207 -0
  61. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js.map +1 -0
  62. package/dist/node_modules/iconv-lite/encodings/index.js +45 -0
  63. package/dist/node_modules/iconv-lite/encodings/index.js.map +1 -0
  64. package/dist/node_modules/iconv-lite/encodings/internal.js +211 -0
  65. package/dist/node_modules/iconv-lite/encodings/internal.js.map +1 -0
  66. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +84 -0
  67. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js.map +1 -0
  68. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js +461 -0
  69. package/dist/node_modules/iconv-lite/encodings/sbcs-data-generated.js.map +1 -0
  70. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +188 -0
  71. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js.map +1 -0
  72. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json.js +507 -0
  73. package/dist/node_modules/iconv-lite/encodings/tables/big5-added.json.js.map +1 -0
  74. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json.js +2622 -0
  75. package/dist/node_modules/iconv-lite/encodings/tables/cp936.json.js.map +1 -0
  76. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json.js +2381 -0
  77. package/dist/node_modules/iconv-lite/encodings/tables/cp949.json.js.map +1 -0
  78. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json.js +730 -0
  79. package/dist/node_modules/iconv-lite/encodings/tables/cp950.json.js.map +1 -0
  80. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json.js +823 -0
  81. package/dist/node_modules/iconv-lite/encodings/tables/eucjp.json.js.map +1 -0
  82. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json.js +425 -0
  83. package/dist/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json.js.map +1 -0
  84. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json.js +265 -0
  85. package/dist/node_modules/iconv-lite/encodings/tables/gbk-added.json.js.map +1 -0
  86. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json.js +549 -0
  87. package/dist/node_modules/iconv-lite/encodings/tables/shiftjis.json.js.map +1 -0
  88. package/dist/node_modules/iconv-lite/encodings/utf16.js +207 -0
  89. package/dist/node_modules/iconv-lite/encodings/utf16.js.map +1 -0
  90. package/dist/node_modules/iconv-lite/encodings/utf32.js +330 -0
  91. package/dist/node_modules/iconv-lite/encodings/utf32.js.map +1 -0
  92. package/dist/node_modules/iconv-lite/encodings/utf7.js +298 -0
  93. package/dist/node_modules/iconv-lite/encodings/utf7.js.map +1 -0
  94. package/dist/node_modules/iconv-lite/lib/bom-handling.js +62 -0
  95. package/dist/node_modules/iconv-lite/lib/bom-handling.js.map +1 -0
  96. package/dist/node_modules/iconv-lite/lib/index.js +193 -0
  97. package/dist/node_modules/iconv-lite/lib/index.js.map +1 -0
  98. package/dist/node_modules/iconv-lite/lib/streams.js +121 -0
  99. package/dist/node_modules/iconv-lite/lib/streams.js.map +1 -0
  100. package/dist/node_modules/inherits/inherits.js +22 -0
  101. package/dist/node_modules/inherits/inherits.js.map +1 -0
  102. package/dist/node_modules/inherits/inherits_browser.js +39 -0
  103. package/dist/node_modules/inherits/inherits_browser.js.map +1 -0
  104. package/dist/node_modules/raw-body/index.js +352 -0
  105. package/dist/node_modules/raw-body/index.js.map +1 -0
  106. package/dist/node_modules/safer-buffer/safer.js +89 -0
  107. package/dist/node_modules/safer-buffer/safer.js.map +1 -0
  108. package/dist/node_modules/setprototypeof/index.js +27 -0
  109. package/dist/node_modules/setprototypeof/index.js.map +1 -0
  110. package/dist/node_modules/statuses/codes.json.js +68 -0
  111. package/dist/node_modules/statuses/codes.json.js.map +1 -0
  112. package/dist/node_modules/statuses/index.js +158 -0
  113. package/dist/node_modules/statuses/index.js.map +1 -0
  114. package/dist/node_modules/toidentifier/index.js +42 -0
  115. package/dist/node_modules/toidentifier/index.js.map +1 -0
  116. package/dist/node_modules/unpipe/index.js +79 -0
  117. package/dist/node_modules/unpipe/index.js.map +1 -0
  118. package/dist/oAuthMetadata.js +7 -4
  119. package/dist/oAuthMetadata.js.map +1 -1
  120. package/dist/paymentServer.js +5 -20
  121. package/dist/paymentServer.js.map +1 -1
  122. package/dist/protectedResourceMetadata.js +7 -4
  123. package/dist/protectedResourceMetadata.js.map +1 -1
  124. package/dist/requirePayment.js +7 -4
  125. package/dist/requirePayment.js.map +1 -1
  126. package/dist/types.js +4 -2
  127. package/dist/types.js.map +1 -1
  128. package/dist/webapi/mcp.js +25 -0
  129. package/dist/webapi/mcp.js.map +1 -0
  130. package/dist/webapi/oauth.js +21 -0
  131. package/dist/webapi/oauth.js.map +1 -0
  132. package/dist/webapi/token.js +15 -0
  133. package/dist/webapi/token.js.map +1 -0
  134. package/package.json +21 -7
  135. package/dist/atxpContext.d.ts +0 -6
  136. package/dist/atxpContext.d.ts.map +0 -1
  137. package/dist/atxpServer.d.ts +0 -12
  138. package/dist/atxpServer.d.ts.map +0 -1
  139. package/dist/getResource.d.ts +0 -4
  140. package/dist/getResource.d.ts.map +0 -1
  141. package/dist/http.d.ts +0 -7
  142. package/dist/http.d.ts.map +0 -1
  143. package/dist/http.js.map +0 -1
  144. package/dist/index.d.ts.map +0 -1
  145. package/dist/oAuthChallenge.d.ts +0 -4
  146. package/dist/oAuthChallenge.d.ts.map +0 -1
  147. package/dist/oAuthChallenge.js.map +0 -1
  148. package/dist/oAuthMetadata.d.ts +0 -6
  149. package/dist/oAuthMetadata.d.ts.map +0 -1
  150. package/dist/paymentServer.d.ts +0 -62
  151. package/dist/paymentServer.d.ts.map +0 -1
  152. package/dist/protectedResourceMetadata.d.ts +0 -5
  153. package/dist/protectedResourceMetadata.d.ts.map +0 -1
  154. package/dist/requirePayment.d.ts +0 -3
  155. package/dist/requirePayment.d.ts.map +0 -1
  156. package/dist/serverTestHelpers.d.ts +0 -55
  157. package/dist/serverTestHelpers.d.ts.map +0 -1
  158. package/dist/serverTestHelpers.js +0 -88
  159. package/dist/serverTestHelpers.js.map +0 -1
  160. package/dist/token.d.ts +0 -4
  161. package/dist/token.d.ts.map +0 -1
  162. package/dist/token.js.map +0 -1
  163. package/dist/types.d.ts +0 -60
  164. package/dist/types.d.ts.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { parseMcpRequestsCore } from '../core/mcp.js';
2
+
3
+ /**
4
+ * Web API implementation of MCP request parsing for Cloudflare Workers, Deno, etc.
5
+ * Handles Web API Request parsing and delegates to core logic
6
+ */
7
+ async function parseMcpRequestsWebApi(config, request) {
8
+ const requestUrl = new URL(request.url);
9
+ try {
10
+ const text = await request.text();
11
+ if (!text) {
12
+ return [];
13
+ }
14
+ const parsedBody = JSON.parse(text);
15
+ // Use the shared core logic
16
+ return parseMcpRequestsCore(config, requestUrl, request.method, parsedBody);
17
+ }
18
+ catch (error) {
19
+ config.logger.debug(`Error parsing MCP request: ${error instanceof Error ? error.message : String(error)}`);
20
+ return [];
21
+ }
22
+ }
23
+
24
+ export { parseMcpRequestsWebApi };
25
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sources":["../../src/webapi/mcp.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;AAGG;AACI,eAAe,sBAAsB,CAC1C,MAAkB,EAClB,OAAgB,EAAA;IAEhB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAEvC,IAAA,IAAI;AACF,QAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;QACjC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE;QACX;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;AAGnC,QAAA,OAAO,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7E;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC;AAC3G,QAAA,OAAO,EAAE;IACX;AACF;;;;"}
@@ -0,0 +1,21 @@
1
+ import { createOAuthChallengeResponseCore } from '../core/oauth.js';
2
+
3
+ /**
4
+ * Web API implementation of OAuth challenge sending for Cloudflare Workers, Deno, etc.
5
+ * Uses Web API Response and delegates to core logic
6
+ */
7
+ function sendOAuthChallengeWebApi(tokenCheck) {
8
+ // Use the shared core logic to get response data
9
+ const responseData = createOAuthChallengeResponseCore(tokenCheck);
10
+ if (!responseData) {
11
+ return null;
12
+ }
13
+ // Convert to Web API Response
14
+ return new Response(responseData.body, {
15
+ status: responseData.status,
16
+ headers: responseData.headers
17
+ });
18
+ }
19
+
20
+ export { sendOAuthChallengeWebApi };
21
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sources":["../../src/webapi/oauth.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;AAGG;AACG,SAAU,wBAAwB,CAAC,UAAsB,EAAA;;AAE7D,IAAA,MAAM,YAAY,GAAG,gCAAgC,CAAC,UAAU,CAAC;IAEjE,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,OAAO,IAAI;IACb;;AAGA,IAAA,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE;QACrC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,OAAO,EAAE,YAAY,CAAC;AACvB,KAAA,CAAC;AACJ;;;;"}
@@ -0,0 +1,15 @@
1
+ import { checkTokenCore } from '../core/token.js';
2
+
3
+ /**
4
+ * Web API implementation of token checking for Cloudflare Workers, Deno, etc.
5
+ * Extracts data from Web API Request and delegates to core logic
6
+ */
7
+ async function checkTokenWebApi(config, resourceURL, request) {
8
+ // Extract authorization header from Web API request
9
+ const authorizationHeader = request.headers.get('authorization');
10
+ // Use the shared core logic
11
+ return checkTokenCore(config, resourceURL, authorizationHeader);
12
+ }
13
+
14
+ export { checkTokenWebApi };
15
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sources":["../../src/webapi/token.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;AAGG;AACI,eAAe,gBAAgB,CACpC,MAAkB,EAClB,WAAgB,EAChB,OAAgB,EAAA;;IAGhB,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;;IAGhE,OAAO,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC;AACjE;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atxp/server",
3
- "version": "0.2.21",
3
+ "version": "0.3.0",
4
4
  "description": "ATXP Server - MCP server implementation with payment processing capabilities",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,33 +9,47 @@
9
9
  "directory": "packages/atxp-server"
10
10
  },
11
11
  "type": "module",
12
- "main": "./dist/index.js",
12
+ "sideEffects": false,
13
+ "main": "./dist/index.cjs",
14
+ "module": "./dist/index.js",
13
15
  "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js",
20
+ "require": "./dist/index.cjs"
21
+ }
22
+ },
14
23
  "files": [
15
24
  "dist"
16
25
  ],
17
26
  "scripts": {
18
- "build": "tsc",
27
+ "build": "rollup -c",
19
28
  "typecheck": "tsc --noEmit",
20
29
  "lint": "eslint . --ext .ts",
21
30
  "lint:fix": "eslint . --ext .ts --fix",
22
- "test": "vitest run"
31
+ "test": "vitest run",
32
+ "prepack": "npm run build && npm run typecheck",
33
+ "pack:dry": "npm pack --dry-run"
23
34
  },
24
35
  "dependencies": {
25
- "@atxp/common": "0.2.21",
36
+ "@atxp/common": "0.3.0",
26
37
  "@modelcontextprotocol/sdk": "^1.15.0",
27
- "@types/express": "^5.0.0",
28
38
  "bignumber.js": "^9.3.0",
29
39
  "content-type": "^1.0.5",
30
- "express": "^5.0.0",
31
40
  "oauth4webapi": "^3.5.0"
32
41
  },
42
+ "peerDependencies": {
43
+ "express": "^5.0.0"
44
+ },
33
45
  "devDependencies": {
46
+ "@types/express": "^5.0.0",
34
47
  "@types/node": "^22.13.0",
35
48
  "@types/supertest": "^6.0.3",
36
49
  "@typescript-eslint/eslint-plugin": "^8.38.0",
37
50
  "@typescript-eslint/parser": "^8.38.0",
38
51
  "eslint": "^9.32.0",
52
+ "express": "^5.0.0",
39
53
  "node-mocks-http": "^1.17.2",
40
54
  "supertest": "^7.1.4",
41
55
  "typescript": "^5.7.3",
@@ -1,6 +0,0 @@
1
- import { ATXPConfig, TokenCheck } from "./types.js";
2
- export declare function getATXPConfig(): ATXPConfig | null;
3
- export declare function getATXPResource(): URL | null;
4
- export declare function atxpAccountId(): string | null;
5
- export declare function withATXPContext(config: ATXPConfig, resource: URL, tokenInfo: Pick<TokenCheck, 'token' | 'data'> | null, next: () => void): Promise<void>;
6
- //# sourceMappingURL=atxpContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atxpContext.d.ts","sourceRoot":"","sources":["../src/atxpContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWpD,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAGjD;AAED,wBAAgB,eAAe,IAAI,GAAG,GAAG,IAAI,CAG5C;AAGD,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAG7C;AAGD,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB9J"}
@@ -1,12 +0,0 @@
1
- import { ATXPConfig } from "./types.js";
2
- import { Router } from "express";
3
- type RequiredATXPConfigFields = 'destination';
4
- type RequiredATXPConfig = Pick<ATXPConfig, RequiredATXPConfigFields>;
5
- type OptionalATXPConfig = Omit<ATXPConfig, RequiredATXPConfigFields>;
6
- export type ATXPArgs = RequiredATXPConfig & Partial<OptionalATXPConfig>;
7
- type BuildableATXPConfigFields = 'oAuthDb' | 'oAuthClient' | 'paymentServer' | 'logger';
8
- export declare const DEFAULT_CONFIG: Required<Omit<OptionalATXPConfig, BuildableATXPConfigFields>>;
9
- export declare function buildServerConfig(args: ATXPArgs): ATXPConfig;
10
- export declare function atxpServer(args: ATXPArgs): Router;
11
- export {};
12
- //# sourceMappingURL=atxpServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atxpServer.d.ts","sourceRoot":"","sources":["../src/atxpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAKvD,OAAO,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAC;AAMlE,KAAK,wBAAwB,GAAG,aAAa,CAAC;AAC9C,KAAK,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACrE,KAAK,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACrE,MAAM,MAAM,QAAQ,GAAG,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACxE,KAAK,yBAAyB,GAAG,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,QAAQ,CAAC;AAExF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CASxF,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CA8B5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAyDjD"}
@@ -1,4 +0,0 @@
1
- import { ATXPConfig } from "./types.js";
2
- export declare function getPath(url: URL): string;
3
- export declare function getResource(config: ATXPConfig, requestUrl: URL): URL;
4
- //# sourceMappingURL=getResource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getResource.d.ts","sourceRoot":"","sources":["../src/getResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGxC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,CAapE"}
package/dist/http.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import { IncomingMessage } from "node:http";
2
- import { JSONRPCRequest } from "@modelcontextprotocol/sdk/types.js";
3
- import { ATXPConfig } from "./types.js";
4
- import { Logger } from "@atxp/common";
5
- export declare function parseMcpRequests(config: ATXPConfig, requestUrl: URL, req: IncomingMessage, parsedBody?: unknown): Promise<JSONRPCRequest[]>;
6
- export declare function parseBody(req: IncomingMessage, logger: Logger): Promise<unknown>;
7
- //# sourceMappingURL=http.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,cAAc,EAAoB,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAoB,MAAM,EAAE,MAAM,cAAc,CAAC;AAQxD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA0BjJ;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBtF"}
package/dist/http.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAkB,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAU,MAAM,cAAc,CAAC;AAExD,6DAA6D;AAC7D,yIAAyI;AAEzI,kCAAkC;AAClC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAkB,EAAE,UAAe,EAAE,GAAoB,EAAE,UAAoB;IACpH,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yFAAyF;IACzF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,SAAS,UAAU,EAAE,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,mCAAmC,SAAS,4BAA4B,CAAC,CAAC;QACnH,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,GAAG,UAAU,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,0CAA0C,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAoB,EAAE,MAAc;IAClE,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEvC,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE;YACjC,KAAK,EAAE,oBAAoB;YAC3B,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { ServerResponse } from "http";
2
- import { TokenCheck } from "./types.js";
3
- export declare function sendOAuthChallenge(res: ServerResponse, tokenCheck: TokenCheck): boolean;
4
- //# sourceMappingURL=oAuthChallenge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthChallenge.d.ts","sourceRoot":"","sources":["../src/oAuthChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAGtD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAsCvF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthChallenge.js","sourceRoot":"","sources":["../src/oAuthChallenge.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,kBAAkB,CAAC,GAAmB,EAAE,UAAsB;IAC5E,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,IAAI,GAAkE,EAAE,CAAC;IAC7E,4DAA4D;IAC5D,QAAQ,UAAU,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,YAAY,CAAC,QAAQ;YACxB,MAAM;QACR,KAAK,YAAY,CAAC,sBAAsB;YACtC,MAAM,GAAG,GAAG,CAAC;YACb,IAAI,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qDAAqD,EAAE,CAAC;YAC9G,MAAM;QACR,KAAK,YAAY,CAAC,aAAa;YAC7B,IAAI,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;YAC5E,MAAM;QACR,KAAK,YAAY,CAAC,gBAAgB;YAChC,IAAI,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,+CAA+C,EAAE,CAAC;YACtG,MAAM;QACR,KAAK,YAAY,CAAC,oBAAoB;YACpC,MAAM,GAAG,GAAG,CAAC;YACb,IAAI,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;YAClF,MAAM;QACR,KAAK,YAAY,CAAC,gBAAgB;YAChC,MAAM,GAAG,GAAG,CAAC;YACb,IAAI,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,CAAC;YACzF,MAAM;QACR;YACE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,6BAA6B,UAAU,CAAC,mBAAmB,GAAG,CAAC,CAAC;IAClG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +0,0 @@
1
- import { ATXPConfig } from "./types.js";
2
- import * as oauth from 'oauth4webapi';
3
- import { ServerResponse } from "http";
4
- export declare function sendOAuthMetadata(res: ServerResponse, metadata: oauth.AuthorizationServer | null): boolean;
5
- export declare function getOAuthMetadata(config: ATXPConfig, requestUrl: URL): Promise<oauth.AuthorizationServer | null>;
6
- //# sourceMappingURL=oAuthMetadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oAuthMetadata.d.ts","sourceRoot":"","sources":["../src/oAuthMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGtC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAQ1G;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAyBrH"}
@@ -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,55 +0,0 @@
1
- import { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
2
- import { JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
3
- import { OAuthResourceClient, TokenData, Logger, Currency, Network } from '@atxp/common';
4
- import { Charge, ATXPConfig, TokenCheck, TokenProblem, McpMethod, McpName, PaymentServer } from './types.js';
5
- import * as oauth from 'oauth4webapi';
6
- export declare const DESTINATION = "testDestination";
7
- export declare const SOURCE = "testSource";
8
- export declare function charge({ amount, currency, network, destination, source }?: {
9
- amount?: BigNumber;
10
- currency?: Currency;
11
- network?: Network;
12
- destination?: string;
13
- source?: string;
14
- }): Charge;
15
- export declare const oneCentCharge: Charge;
16
- export declare const zeroCharge: Charge;
17
- export declare function logger(): Logger;
18
- export declare function config(args?: Partial<ATXPConfig>): ATXPConfig;
19
- export declare function paymentServer({ charge, createPaymentRequest }?: {
20
- charge?: import("vitest").Mock<(...args: any[]) => any> | undefined;
21
- createPaymentRequest?: import("vitest").Mock<(...args: any[]) => any> | undefined;
22
- }): PaymentServer;
23
- export declare function mcpRequest({ method, params, id }?: {
24
- method?: McpMethod;
25
- params?: any;
26
- id?: string;
27
- }): JSONRPCRequest;
28
- export declare function mcpToolRequest({ toolName, args, }?: {
29
- toolName?: McpName;
30
- args?: any;
31
- }): JSONRPCRequest;
32
- export declare function incomingMessage({ body, method, url, headers }?: {
33
- body?: any;
34
- method?: 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS';
35
- url?: string;
36
- headers?: IncomingHttpHeaders;
37
- }): IncomingMessage;
38
- export declare function incomingToolMessage({ authHeader, url, }?: {
39
- authHeader?: string;
40
- url?: string;
41
- }): IncomingMessage;
42
- export declare function oAuthClient({ introspectResult, authorizationServer }?: {
43
- introspectResult?: TokenData;
44
- authorizationServer?: oauth.AuthorizationServer;
45
- }): OAuthResourceClient;
46
- export declare function tokenData({ active, sub, scope, aud }?: Partial<TokenData>): TokenData;
47
- export declare function tokenCheck({ data, token, passes, problem, resourceMetadataUrl }?: {
48
- data?: TokenData;
49
- token?: string | null;
50
- passes?: boolean;
51
- problem?: TokenProblem;
52
- resourceMetadataUrl?: string;
53
- }): TokenCheck;
54
- export declare function serverResponse(): ServerResponse;
55
- //# sourceMappingURL=serverTestHelpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverTestHelpers.d.ts","sourceRoot":"","sources":["../src/serverTestHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any, no-console */
2
- import { Readable } from 'stream';
3
- import { vi } from 'vitest';
4
- import { TokenProblem } from './types.js';
5
- import { buildServerConfig } from './atxpServer.js';
6
- import { BigNumber } from 'bignumber.js';
7
- export const DESTINATION = 'testDestination';
8
- export const SOURCE = 'testSource';
9
- export function charge({ amount = BigNumber(0.01), currency = 'USDC', network = 'solana', destination = DESTINATION, source = SOURCE } = {}) {
10
- return { amount, currency, network, destination, source };
11
- }
12
- export const oneCentCharge = charge({ amount: BigNumber(0.01) });
13
- export const zeroCharge = charge({ amount: BigNumber(0) });
14
- export function logger() {
15
- return {
16
- debug: vi.fn().mockImplementation((msg) => { console.debug(msg); }),
17
- info: vi.fn().mockImplementation((msg) => { console.info(msg); }),
18
- warn: vi.fn().mockImplementation((msg) => { console.warn(msg); }),
19
- error: vi.fn().mockImplementation((msg) => { console.error(msg); }),
20
- };
21
- }
22
- export function config(args = {}) {
23
- return buildServerConfig({
24
- ...args,
25
- destination: args.destination ?? DESTINATION,
26
- atxpAuthClientToken: args.atxpAuthClientToken ?? 'test-auth-token'
27
- });
28
- }
29
- export function paymentServer({ charge = vi.fn().mockResolvedValue({ success: true, requiredPaymentId: null }), createPaymentRequest = vi.fn().mockResolvedValue('test-payment-request-id') } = {}) {
30
- return {
31
- charge,
32
- createPaymentRequest,
33
- };
34
- }
35
- export function mcpRequest({ method = 'tools/call', params = {}, id = 'call-1' } = {}) {
36
- return { jsonrpc: "2.0", method, params, id };
37
- }
38
- export function mcpToolRequest({ toolName = 'testTool', args = { paramOne: 'test' }, } = {}) {
39
- return mcpRequest({ method: 'tools/call', params: { name: toolName, arguments: args } });
40
- }
41
- export function incomingMessage({ body = {}, method = 'POST', url = '/', headers = { 'content-type': 'application/json' } } = {}) {
42
- const bodyString = JSON.stringify(body);
43
- const stream = new Readable({
44
- read() {
45
- this.push(bodyString);
46
- this.push(null);
47
- }
48
- });
49
- stream.method = method;
50
- stream.url = url;
51
- stream.headers = headers;
52
- return stream;
53
- }
54
- export function incomingToolMessage({ authHeader = undefined, url = '/', } = {}) {
55
- return incomingMessage({
56
- body: mcpToolRequest({ toolName: 'testTool' }),
57
- headers: { 'authorization': authHeader, 'content-type': 'application/json' },
58
- url
59
- });
60
- }
61
- export function oAuthClient({ introspectResult = tokenData(), authorizationServer = {
62
- issuer: 'https://auth.atxp.ai',
63
- } } = {}) {
64
- return {
65
- introspectToken: vi.fn().mockResolvedValue(introspectResult),
66
- authorizationServerFromUrl: vi.fn().mockResolvedValue(authorizationServer)
67
- };
68
- }
69
- export function tokenData({ active = true, sub = 'test-user', scope = 'tools:read', aud = 'https://example.com' } = {}) {
70
- return { active, sub, scope, aud };
71
- }
72
- export function tokenCheck({ data = tokenData(), token = 'test-token', passes = true, problem = TokenProblem.NO_TOKEN, resourceMetadataUrl = 'https://example.com/.well-known/oauth-protected-resource' } = {}) {
73
- if (passes) {
74
- return { passes, token, data, };
75
- }
76
- else {
77
- return { passes, token, data, problem, resourceMetadataUrl };
78
- }
79
- }
80
- export function serverResponse() {
81
- return {
82
- getHeader: vi.fn(),
83
- setHeader: vi.fn(),
84
- writeHead: vi.fn(),
85
- end: vi.fn(),
86
- };
87
- }
88
- //# sourceMappingURL=serverTestHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serverTestHelpers.js","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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"}