@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,17 +1,27 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any, no-console */
2
1
  import { Readable } from 'stream';
2
+ import { MemoryOAuthDb, DEFAULT_AUTHORIZATION_SERVER } from '@atxp/common';
3
3
  import { vi } from 'vitest';
4
- import { TokenProblem } from './types.js';
5
- import { buildServerConfig } from './atxpServer.js';
6
4
  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 } = {}) {
5
+
6
+ var TokenProblem;
7
+ (function (TokenProblem) {
8
+ TokenProblem["NO_TOKEN"] = "NO-TOKEN";
9
+ TokenProblem["NON_BEARER_AUTH_HEADER"] = "NON-BEARER-AUTH-HEADER";
10
+ TokenProblem["INVALID_TOKEN"] = "INVALID-TOKEN";
11
+ TokenProblem["INVALID_AUDIENCE"] = "INVALID-AUDIENCE";
12
+ TokenProblem["NON_SUFFICIENT_FUNDS"] = "NON-SUFFICIENT-FUNDS";
13
+ TokenProblem["INTROSPECT_ERROR"] = "INTROSPECT-ERROR";
14
+ })(TokenProblem || (TokenProblem = {}));
15
+
16
+ /* eslint-disable @typescript-eslint/no-explicit-any, no-console */
17
+ const DESTINATION = 'testDestination';
18
+ const SOURCE = 'testSource';
19
+ function charge({ amount = BigNumber(0.01), currency = 'USDC', network = 'solana', destination = DESTINATION, source = SOURCE } = {}) {
10
20
  return { amount, currency, network, destination, source };
11
21
  }
12
- export const oneCentCharge = charge({ amount: BigNumber(0.01) });
13
- export const zeroCharge = charge({ amount: BigNumber(0) });
14
- export function logger() {
22
+ const oneCentCharge = charge({ amount: BigNumber(0.01) });
23
+ const zeroCharge = charge({ amount: BigNumber(0) });
24
+ function logger() {
15
25
  return {
16
26
  debug: vi.fn().mockImplementation((msg) => { console.debug(msg); }),
17
27
  info: vi.fn().mockImplementation((msg) => { console.info(msg); }),
@@ -19,26 +29,45 @@ export function logger() {
19
29
  error: vi.fn().mockImplementation((msg) => { console.error(msg); }),
20
30
  };
21
31
  }
22
- export function config(args = {}) {
23
- return buildServerConfig({
24
- ...args,
32
+ function config(args = {}) {
33
+ // Create a basic config without using buildServerConfig to avoid circular dependency
34
+ const mockLogger = logger();
35
+ const oAuthDb = args.oAuthDb ?? new MemoryOAuthDb();
36
+ const oAuthClient = args.oAuthClient ?? {
37
+ introspect: vi.fn().mockResolvedValue(tokenData()),
38
+ validateClientCredentials: vi.fn().mockResolvedValue(true),
39
+ extractAccessToken: vi.fn().mockReturnValue('test-token')
40
+ };
41
+ const config = {
25
42
  destination: args.destination ?? DESTINATION,
26
- atxpAuthClientToken: args.atxpAuthClientToken ?? 'test-auth-token'
27
- });
43
+ mountPath: args.mountPath ?? '/',
44
+ currency: args.currency ?? 'USDC',
45
+ network: args.network ?? 'base',
46
+ server: args.server ?? DEFAULT_AUTHORIZATION_SERVER,
47
+ payeeName: args.payeeName ?? 'Test ATXP Server',
48
+ allowHttp: args.allowHttp ?? true,
49
+ resource: args.resource ?? null,
50
+ oAuthDb,
51
+ oAuthClient,
52
+ paymentServer: args.paymentServer ?? paymentServer(),
53
+ logger: args.logger ?? mockLogger,
54
+ ...args
55
+ };
56
+ return config;
28
57
  }
29
- export function paymentServer({ charge = vi.fn().mockResolvedValue({ success: true, requiredPaymentId: null }), createPaymentRequest = vi.fn().mockResolvedValue('test-payment-request-id') } = {}) {
58
+ function paymentServer({ charge = vi.fn().mockResolvedValue({ success: true, requiredPaymentId: null }), createPaymentRequest = vi.fn().mockResolvedValue('test-payment-request-id') } = {}) {
30
59
  return {
31
60
  charge,
32
61
  createPaymentRequest,
33
62
  };
34
63
  }
35
- export function mcpRequest({ method = 'tools/call', params = {}, id = 'call-1' } = {}) {
64
+ function mcpRequest({ method = 'tools/call', params = {}, id = 'call-1' } = {}) {
36
65
  return { jsonrpc: "2.0", method, params, id };
37
66
  }
38
- export function mcpToolRequest({ toolName = 'testTool', args = { paramOne: 'test' }, } = {}) {
67
+ function mcpToolRequest({ toolName = 'testTool', args = { paramOne: 'test' }, } = {}) {
39
68
  return mcpRequest({ method: 'tools/call', params: { name: toolName, arguments: args } });
40
69
  }
41
- export function incomingMessage({ body = {}, method = 'POST', url = '/', headers = { 'content-type': 'application/json' } } = {}) {
70
+ function incomingMessage({ body = {}, method = 'POST', url = '/', headers = { 'content-type': 'application/json' } } = {}) {
42
71
  const bodyString = JSON.stringify(body);
43
72
  const stream = new Readable({
44
73
  read() {
@@ -51,14 +80,14 @@ export function incomingMessage({ body = {}, method = 'POST', url = '/', headers
51
80
  stream.headers = headers;
52
81
  return stream;
53
82
  }
54
- export function incomingToolMessage({ authHeader = undefined, url = '/', } = {}) {
83
+ function incomingToolMessage({ authHeader = undefined, url = '/', } = {}) {
55
84
  return incomingMessage({
56
85
  body: mcpToolRequest({ toolName: 'testTool' }),
57
86
  headers: { 'authorization': authHeader, 'content-type': 'application/json' },
58
87
  url
59
88
  });
60
89
  }
61
- export function oAuthClient({ introspectResult = tokenData(), authorizationServer = {
90
+ function oAuthClient({ introspectResult = tokenData(), authorizationServer = {
62
91
  issuer: 'https://auth.atxp.ai',
63
92
  } } = {}) {
64
93
  return {
@@ -66,10 +95,10 @@ export function oAuthClient({ introspectResult = tokenData(), authorizationServe
66
95
  authorizationServerFromUrl: vi.fn().mockResolvedValue(authorizationServer)
67
96
  };
68
97
  }
69
- export function tokenData({ active = true, sub = 'test-user', scope = 'tools:read', aud = 'https://example.com' } = {}) {
98
+ function tokenData({ active = true, sub = 'test-user', scope = 'tools:read', aud = 'https://example.com' } = {}) {
70
99
  return { active, sub, scope, aud };
71
100
  }
72
- export function tokenCheck({ data = tokenData(), token = 'test-token', passes = true, problem = TokenProblem.NO_TOKEN, resourceMetadataUrl = 'https://example.com/.well-known/oauth-protected-resource' } = {}) {
101
+ function tokenCheck({ data = tokenData(), token = 'test-token', passes = true, problem = TokenProblem.NO_TOKEN, resourceMetadataUrl = 'https://example.com/.well-known/oauth-protected-resource' } = {}) {
73
102
  if (passes) {
74
103
  return { passes, token, data, };
75
104
  }
@@ -77,7 +106,7 @@ export function tokenCheck({ data = tokenData(), token = 'test-token', passes =
77
106
  return { passes, token, data, problem, resourceMetadataUrl };
78
107
  }
79
108
  }
80
- export function serverResponse() {
109
+ function serverResponse() {
81
110
  return {
82
111
  getHeader: vi.fn(),
83
112
  setHeader: vi.fn(),
@@ -85,4 +114,6 @@ export function serverResponse() {
85
114
  end: vi.fn(),
86
115
  };
87
116
  }
88
- //# sourceMappingURL=serverTestHelpers.js.map
117
+
118
+ export { DESTINATION, SOURCE, charge, config, incomingMessage, incomingToolMessage, logger, mcpRequest, mcpToolRequest, oAuthClient, oneCentCharge, paymentServer, serverResponse, tokenCheck, tokenData, zeroCharge };
119
+ //# sourceMappingURL=serverTestHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverTestHelpers.js","sourceRoot":"","sources":["../src/serverTestHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverTestHelpers.js","sources":["../src/types.ts","../src/serverTestHelpers.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,4 +1,4 @@
1
- export var TokenProblem;
1
+ var TokenProblem;
2
2
  (function (TokenProblem) {
3
3
  TokenProblem["NO_TOKEN"] = "NO-TOKEN";
4
4
  TokenProblem["NON_BEARER_AUTH_HEADER"] = "NON-BEARER-AUTH-HEADER";
@@ -7,4 +7,6 @@ export var TokenProblem;
7
7
  TokenProblem["NON_SUFFICIENT_FUNDS"] = "NON-SUFFICIENT-FUNDS";
8
8
  TokenProblem["INTROSPECT_ERROR"] = "INTROSPECT-ERROR";
9
9
  })(TokenProblem || (TokenProblem = {}));
10
- //# sourceMappingURL=types.js.map
10
+
11
+ export { TokenProblem };
12
+ //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,iEAAiD,CAAA;IACjD,+CAA+B,CAAA;IAC/B,qDAAqC,CAAA;IACrC,6DAA6C,CAAA;IAC7C,qDAAqC,CAAA;AACvC,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"IAmDY;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACvC,CAAC,EAPW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -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":";;AAIA;;;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,CAAqB;IACjG;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,43 @@
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
+ function sendProtectedResourceMetadata(metadata) {
20
+ if (!metadata) {
21
+ return null;
22
+ }
23
+ return new Response(JSON.stringify(metadata), {
24
+ status: 200,
25
+ headers: {
26
+ 'Content-Type': 'application/json'
27
+ }
28
+ });
29
+ }
30
+ function sendOAuthMetadata(metadata) {
31
+ if (!metadata) {
32
+ return null;
33
+ }
34
+ return new Response(JSON.stringify(metadata), {
35
+ status: 200,
36
+ headers: {
37
+ 'Content-Type': 'application/json'
38
+ }
39
+ });
40
+ }
41
+
42
+ export { sendOAuthChallengeWebApi, sendOAuthMetadata, sendProtectedResourceMetadata };
43
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sources":["../../src/webapi/oauth.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;;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;AAEM,SAAU,6BAA6B,CAAC,QAA0C,EAAA;IACtF,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AAC5C,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE;AACP,YAAA,cAAc,EAAE;AACjB;AACF,KAAA,CAAC;AACJ;AAEM,SAAU,iBAAiB,CAAC,QAA0C,EAAA;IAC1E,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AAC5C,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,OAAO,EAAE;AACP,YAAA,cAAc,EAAE;AACjB;AACF,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.22",
3
+ "version": "0.4.0",
4
4
  "description": "ATXP Server - MCP server implementation with payment processing capabilities",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,35 +9,49 @@
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
+ "./serverTestHelpers": {
23
+ "types": "./dist/serverTestHelpers.d.ts",
24
+ "import": "./dist/serverTestHelpers.js",
25
+ "require": "./dist/serverTestHelpers.js"
26
+ }
27
+ },
14
28
  "files": [
15
29
  "dist"
16
30
  ],
17
31
  "scripts": {
18
- "build": "tsc",
32
+ "build": "rollup -c",
19
33
  "typecheck": "tsc --noEmit",
20
34
  "lint": "eslint . --ext .ts",
21
35
  "lint:fix": "eslint . --ext .ts --fix",
22
- "test": "vitest run"
36
+ "test": "vitest run",
37
+ "prepack": "npm run build && npm run typecheck",
38
+ "pack:dry": "npm pack --dry-run"
23
39
  },
24
40
  "dependencies": {
25
- "@atxp/common": "0.2.22",
41
+ "@atxp/common": "0.4.0",
26
42
  "@modelcontextprotocol/sdk": "^1.15.0",
27
- "@types/express": "^5.0.0",
28
43
  "bignumber.js": "^9.3.0",
29
- "content-type": "^1.0.5",
30
- "express": "^5.0.0",
31
44
  "oauth4webapi": "^3.5.0"
32
45
  },
46
+ "peerDependencies": {
47
+ "content-type": "^1.0.5"
48
+ },
33
49
  "devDependencies": {
34
50
  "@types/node": "^22.13.0",
35
- "@types/supertest": "^6.0.3",
36
51
  "@typescript-eslint/eslint-plugin": "^8.38.0",
37
52
  "@typescript-eslint/parser": "^8.38.0",
38
53
  "eslint": "^9.32.0",
39
54
  "node-mocks-http": "^1.17.2",
40
- "supertest": "^7.1.4",
41
55
  "typescript": "^5.7.3",
42
56
  "vitest": "^3.0.9"
43
57
  }
@@ -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,101 +0,0 @@
1
- import { ConsoleLogger, OAuthResourceClient, DEFAULT_AUTHORIZATION_SERVER, MemoryOAuthDb } from "@atxp/common";
2
- import { checkToken } from "./token.js";
3
- import { sendOAuthChallenge } from "./oAuthChallenge.js";
4
- import { withATXPContext } from "./atxpContext.js";
5
- import { parseMcpRequests } from "./http.js";
6
- import { Router } from "express";
7
- import { getProtectedResourceMetadata as getPRMResponse, sendProtectedResourceMetadata } from "./protectedResourceMetadata.js";
8
- import { getResource } from "./getResource.js";
9
- import { ATXPPaymentServer } from "./paymentServer.js";
10
- import { getOAuthMetadata, sendOAuthMetadata } from "./oAuthMetadata.js";
11
- export const DEFAULT_CONFIG = {
12
- mountPath: '/',
13
- currency: 'USDC',
14
- network: 'base',
15
- server: DEFAULT_AUTHORIZATION_SERVER,
16
- atxpAuthClientToken: undefined, // Will be set in buildServerConfig
17
- payeeName: 'An ATXP Server',
18
- allowHttp: false, // May be overridden in buildServerConfig by process.env.NODE_ENV
19
- resource: null, // Set dynamically from the request URL
20
- };
21
- export function buildServerConfig(args) {
22
- if (!args.destination) {
23
- throw new Error('destination is required');
24
- }
25
- // Read environment variables at runtime, not module load time
26
- const envDefaults = {
27
- ...DEFAULT_CONFIG,
28
- atxpAuthClientToken: process.env.ATXP_AUTH_CLIENT_TOKEN,
29
- allowHttp: process.env.NODE_ENV === 'development',
30
- };
31
- const withDefaults = { ...envDefaults, ...args };
32
- const oAuthDb = withDefaults.oAuthDb ?? new MemoryOAuthDb();
33
- const oAuthClient = withDefaults.oAuthClient ?? new OAuthResourceClient({
34
- db: oAuthDb,
35
- allowInsecureRequests: withDefaults.allowHttp,
36
- clientName: withDefaults.payeeName,
37
- });
38
- const logger = withDefaults.logger ?? new ConsoleLogger();
39
- let paymentServer;
40
- if (withDefaults.paymentServer) {
41
- paymentServer = withDefaults.paymentServer;
42
- }
43
- else {
44
- if (!withDefaults.atxpAuthClientToken) {
45
- throw new Error('ATXP_AUTH_CLIENT_TOKEN is not set. If no payment server is provided, you must set ATXP_AUTH_CLIENT_TOKEN.');
46
- }
47
- paymentServer = new ATXPPaymentServer(withDefaults.server, withDefaults.atxpAuthClientToken, logger);
48
- }
49
- const built = { oAuthDb, oAuthClient, paymentServer, logger };
50
- return Object.freeze({ ...withDefaults, ...built });
51
- }
52
- ;
53
- export function atxpServer(args) {
54
- const config = buildServerConfig(args);
55
- const router = Router();
56
- // Regular middleware
57
- const atxpMiddleware = async (req, res, next) => {
58
- try {
59
- const logger = config.logger; // Capture logger in closure
60
- const requestUrl = new URL(req.url, req.protocol + '://' + req.host);
61
- logger.debug(`Handling ${req.method} ${requestUrl.toString()}`);
62
- const resource = getResource(config, requestUrl);
63
- const prmResponse = getPRMResponse(config, requestUrl);
64
- if (sendProtectedResourceMetadata(res, prmResponse)) {
65
- return;
66
- }
67
- // Some older clients don't use PRM and assume the MCP server is an OAuth server
68
- const oAuthMetadata = await getOAuthMetadata(config, requestUrl);
69
- if (sendOAuthMetadata(res, oAuthMetadata)) {
70
- return;
71
- }
72
- const mcpRequests = await parseMcpRequests(config, requestUrl, req, req.body);
73
- logger.debug(`${mcpRequests.length} MCP requests found in request`);
74
- if (mcpRequests.length === 0) {
75
- next();
76
- return;
77
- }
78
- logger.debug(`Request started - ${req.method} ${req.path}`);
79
- const tokenCheck = await checkToken(config, resource, req);
80
- const user = tokenCheck.data?.sub ?? null;
81
- // Listen for when the response is finished
82
- res.on('finish', async () => {
83
- logger.debug(`Request finished ${user ? `for user ${user} ` : ''}- ${req.method} ${req.path}`);
84
- });
85
- // Send the oauth challenge, if needed. If we do, we're done
86
- if (sendOAuthChallenge(res, tokenCheck)) {
87
- return;
88
- }
89
- return withATXPContext(config, resource, tokenCheck, next);
90
- }
91
- catch (error) {
92
- config.logger.error(`Critical error in atxp middleware - returning HTTP 500. Error: ${error instanceof Error ? error.message : String(error)}`);
93
- config.logger.debug(JSON.stringify(error, null, 2));
94
- res.status(500).json({ error: 'server_error', error_description: 'An internal server error occurred' });
95
- }
96
- };
97
- // Add middleware to the router
98
- router.use(atxpMiddleware);
99
- return router;
100
- }
101
- //# sourceMappingURL=atxpServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atxpServer.js","sourceRoot":"","sources":["../src/atxpServer.ts"],"names":[],"mappings":"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"}
@@ -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 DELETED
@@ -1,51 +0,0 @@
1
- import getRawBody from "raw-body";
2
- import contentType from "content-type";
3
- import { isJSONRPCRequest } from "@modelcontextprotocol/sdk/types.js";
4
- import { parseMcpMessages } from "@atxp/common";
5
- // Useful reference for dealing with low-level http requests:
6
- // https://github.com/modelcontextprotocol/typescript-sdk/blob/c6ac083b1b37b222b5bfba5563822daa5d03372e/src/server/streamableHttp.ts#L375
7
- // Using the same value as MCP SDK
8
- const MAXIMUM_MESSAGE_SIZE = "4mb";
9
- export async function parseMcpRequests(config, requestUrl, req, parsedBody) {
10
- if (!req.method) {
11
- return [];
12
- }
13
- if (req.method.toLowerCase() !== 'post') {
14
- return [];
15
- }
16
- // The middleware has to be mounted at the root to serve the protected resource metadata,
17
- // but the actual MCP server it's controlling is specified by the mountPath.
18
- const path = requestUrl.pathname.replace(/\/$/, '');
19
- const mountPath = config.mountPath.replace(/\/$/, '');
20
- if (path !== mountPath && path !== `${mountPath}/message`) {
21
- config.logger.debug(`Request path (${path}) does not match the mountPath (${mountPath}), skipping MCP middleware`);
22
- return [];
23
- }
24
- parsedBody = parsedBody ?? await parseBody(req, config.logger);
25
- const messages = await parseMcpMessages(parsedBody, config.logger);
26
- const requests = messages.filter(msg => isJSONRPCRequest(msg));
27
- if (requests.length !== messages.length) {
28
- config.logger.debug(`Dropped ${messages.length - requests.length} MCP messages that were not MCP requests`);
29
- }
30
- return requests;
31
- }
32
- export async function parseBody(req, logger) {
33
- try {
34
- const ct = req.headers["content-type"];
35
- let encoding = "utf-8";
36
- if (ct) {
37
- const parsedCt = contentType.parse(ct);
38
- encoding = parsedCt.parameters.charset ?? "utf-8";
39
- }
40
- const body = await getRawBody(req, {
41
- limit: MAXIMUM_MESSAGE_SIZE,
42
- encoding,
43
- });
44
- return JSON.parse(body.toString());
45
- }
46
- catch (error) {
47
- logger.error(error.message);
48
- return undefined;
49
- }
50
- }
51
- //# sourceMappingURL=http.js.map
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"}