@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
package/dist/index.d.ts CHANGED
@@ -1,5 +1,141 @@
1
- export * from './atxpServer.js';
2
- export * from './types.js';
3
- export * from './atxpContext.js';
4
- export * from './requirePayment.js';
5
- //# sourceMappingURL=index.d.ts.map
1
+ import { Currency, Network, AuthorizationServerUrl, UrlString, Logger, OAuthDb, OAuthResourceClient, PaymentRequestData, TokenData, RequirePaymentConfig } from '@atxp/common';
2
+ import { Router } from 'express';
3
+ import { IncomingMessage, ServerResponse } from 'http';
4
+ import { IncomingMessage as IncomingMessage$1 } from 'node:http';
5
+ import { JSONRPCRequest } from '@modelcontextprotocol/sdk/types.js';
6
+
7
+ 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
+ type McpName = string;
9
+ type McpNamePattern = McpName | '*';
10
+ type McpOperation = `${McpMethod}` | `${McpMethod}:${McpName}`;
11
+ type McpOperationPattern = McpOperation | '*' | `${McpMethod}:*`;
12
+ type RefundErrors = boolean | 'nonMcpOnly';
13
+ type Charge = Omit<PaymentRequestData, 'resource' | 'resourceName' | 'iss'>;
14
+ type ChargeResponse = {
15
+ success: boolean;
16
+ requiredPayment: PaymentRequestData | null;
17
+ };
18
+ type PaymentServer = {
19
+ charge: (args: Charge) => Promise<ChargeResponse>;
20
+ createPaymentRequest: (args: Charge) => Promise<string>;
21
+ };
22
+ type ATXPConfig = {
23
+ destination: string;
24
+ mountPath: string;
25
+ currency: Currency;
26
+ network: Network;
27
+ server: AuthorizationServerUrl;
28
+ payeeName: string;
29
+ resource: UrlString | null;
30
+ allowHttp: boolean;
31
+ logger: Logger;
32
+ oAuthDb: OAuthDb;
33
+ oAuthClient: OAuthResourceClient;
34
+ paymentServer: PaymentServer;
35
+ };
36
+ declare enum TokenProblem {
37
+ NO_TOKEN = "NO-TOKEN",
38
+ NON_BEARER_AUTH_HEADER = "NON-BEARER-AUTH-HEADER",
39
+ INVALID_TOKEN = "INVALID-TOKEN",
40
+ INVALID_AUDIENCE = "INVALID-AUDIENCE",
41
+ NON_SUFFICIENT_FUNDS = "NON-SUFFICIENT-FUNDS",
42
+ INTROSPECT_ERROR = "INTROSPECT-ERROR"
43
+ }
44
+ type TokenCheckPass = {
45
+ passes: true;
46
+ token: string;
47
+ data: TokenData;
48
+ };
49
+ type TokenCheckFail = {
50
+ passes: false;
51
+ problem: TokenProblem;
52
+ token: string | null;
53
+ data: TokenData | null;
54
+ resourceMetadataUrl: string | null;
55
+ };
56
+ type TokenCheck = TokenCheckPass | TokenCheckFail;
57
+ type ProtectedResourceMetadata = {
58
+ resource: URL;
59
+ resource_name: string;
60
+ authorization_servers: string[];
61
+ bearer_methods_supported: string[];
62
+ scopes_supported: string[];
63
+ };
64
+
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
+ declare function getATXPConfig(): ATXPConfig | null;
75
+ declare function getATXPResource(): URL | null;
76
+ declare function atxpAccountId(): string | null;
77
+ declare function withATXPContext(config: ATXPConfig, resource: URL, tokenInfo: Pick<TokenCheck, 'token' | 'data'> | null, next: () => void): Promise<void>;
78
+
79
+ /**
80
+ * Core platform-agnostic token checking logic
81
+ * Takes an authorization header string instead of platform-specific request objects
82
+ */
83
+ declare function checkTokenCore(config: ATXPConfig, resourceURL: URL, authorizationHeader: string | null): Promise<TokenCheck>;
84
+
85
+ /**
86
+ * Core platform-agnostic OAuth challenge response creation
87
+ * Returns the response data instead of writing to platform-specific response objects
88
+ */
89
+ declare function createOAuthChallengeResponseCore(tokenCheck: TokenCheck): {
90
+ status: number;
91
+ headers: Record<string, string>;
92
+ body: string;
93
+ } | null;
94
+
95
+ /**
96
+ * Core platform-agnostic MCP request parsing logic
97
+ * Takes parsed JSON and request metadata instead of platform-specific request objects
98
+ */
99
+ declare function parseMcpRequestsCore(config: ATXPConfig, requestUrl: URL, method: string, parsedBody: unknown): any[];
100
+
101
+ /**
102
+ * Node.js HTTP implementation of token checking
103
+ * Extracts data from Node.js IncomingMessage and delegates to core logic
104
+ */
105
+ declare function checkToken(config: ATXPConfig, resourceURL: URL, req: IncomingMessage): Promise<TokenCheck>;
106
+
107
+ /**
108
+ * Node.js HTTP implementation of OAuth challenge sending
109
+ * Uses Node.js ServerResponse and delegates to core logic
110
+ */
111
+ declare function sendOAuthChallenge(res: ServerResponse, tokenCheck: TokenCheck): boolean;
112
+
113
+ /**
114
+ * Node.js HTTP implementation of MCP request parsing
115
+ * Handles Node.js IncomingMessage parsing and delegates to core logic
116
+ */
117
+ declare function parseMcpRequests(config: ATXPConfig, requestUrl: URL, req: IncomingMessage$1, parsedBody?: unknown): Promise<JSONRPCRequest[]>;
118
+ declare function parseBody(req: IncomingMessage$1, logger: Logger): Promise<unknown>;
119
+
120
+ /**
121
+ * Web API implementation of token checking for Cloudflare Workers, Deno, etc.
122
+ * Extracts data from Web API Request and delegates to core logic
123
+ */
124
+ declare function checkTokenWebApi(config: ATXPConfig, resourceURL: URL, request: Request): Promise<TokenCheck>;
125
+
126
+ /**
127
+ * Web API implementation of OAuth challenge sending for Cloudflare Workers, Deno, etc.
128
+ * Uses Web API Response and delegates to core logic
129
+ */
130
+ declare function sendOAuthChallengeWebApi(tokenCheck: TokenCheck): Response | null;
131
+
132
+ /**
133
+ * Web API implementation of MCP request parsing for Cloudflare Workers, Deno, etc.
134
+ * Handles Web API Request parsing and delegates to core logic
135
+ */
136
+ declare function parseMcpRequestsWebApi(config: ATXPConfig, request: Request): Promise<any[]>;
137
+
138
+ declare function requirePayment(paymentConfig: RequirePaymentConfig): Promise<void>;
139
+
140
+ export { DEFAULT_CONFIG, TokenProblem, atxpAccountId, atxpServer, buildServerConfig, checkToken, checkTokenCore, checkTokenWebApi, createOAuthChallengeResponseCore, getATXPConfig, getATXPResource, parseBody, parseMcpRequests, parseMcpRequestsCore, parseMcpRequestsWebApi, requirePayment, sendOAuthChallenge, sendOAuthChallengeWebApi, withATXPContext };
141
+ export type { ATXPArgs, ATXPConfig, Charge, ChargeResponse, McpMethod, McpName, McpNamePattern, McpOperation, McpOperationPattern, PaymentServer, ProtectedResourceMetadata, RefundErrors, TokenCheck, TokenCheckFail, TokenCheckPass };