@atxp/client 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 (191) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +6 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/ajv.js +8 -0
  4. package/dist/_virtual/ajv.js.map +1 -0
  5. package/dist/_virtual/cache.js +4 -0
  6. package/dist/_virtual/cache.js.map +1 -0
  7. package/dist/_virtual/index.js +4 -0
  8. package/dist/_virtual/index.js.map +1 -0
  9. package/dist/_virtual/uri.all.js +4 -0
  10. package/dist/_virtual/uri.all.js.map +1 -0
  11. package/dist/atxpAccount.js +4 -2
  12. package/dist/atxpAccount.js.map +1 -1
  13. package/dist/atxpClient.js +12 -10
  14. package/dist/atxpClient.js.map +1 -1
  15. package/dist/atxpFetcher.js +10 -8
  16. package/dist/atxpFetcher.js.map +1 -1
  17. package/dist/baseAccount.js +5 -3
  18. package/dist/baseAccount.js.map +1 -1
  19. package/dist/baseConstants.js +4 -0
  20. package/dist/baseConstants.js.map +1 -0
  21. package/dist/basePaymentMaker.js +15 -12
  22. package/dist/basePaymentMaker.js.map +1 -1
  23. package/dist/index.cjs +16198 -0
  24. package/dist/index.cjs.map +1 -0
  25. package/dist/index.d.ts +250 -10
  26. package/dist/index.js +16161 -10
  27. package/dist/index.js.map +1 -1
  28. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +668 -0
  29. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -0
  30. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +273 -0
  31. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
  32. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +378 -0
  33. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -0
  34. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js +162 -0
  35. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js.map +1 -0
  36. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js +46 -0
  37. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js.map +1 -0
  38. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +192 -0
  39. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -0
  40. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +418 -0
  41. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  42. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1313 -0
  43. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  44. package/dist/node_modules/ajv/lib/ajv.js +531 -0
  45. package/dist/node_modules/ajv/lib/ajv.js.map +1 -0
  46. package/dist/node_modules/ajv/lib/cache.js +37 -0
  47. package/dist/node_modules/ajv/lib/cache.js.map +1 -0
  48. package/dist/node_modules/ajv/lib/compile/async.js +102 -0
  49. package/dist/node_modules/ajv/lib/compile/async.js.map +1 -0
  50. package/dist/node_modules/ajv/lib/compile/error_classes.js +46 -0
  51. package/dist/node_modules/ajv/lib/compile/error_classes.js.map +1 -0
  52. package/dist/node_modules/ajv/lib/compile/formats.js +154 -0
  53. package/dist/node_modules/ajv/lib/compile/formats.js.map +1 -0
  54. package/dist/node_modules/ajv/lib/compile/index.js +404 -0
  55. package/dist/node_modules/ajv/lib/compile/index.js.map +1 -0
  56. package/dist/node_modules/ajv/lib/compile/resolve.js +286 -0
  57. package/dist/node_modules/ajv/lib/compile/resolve.js.map +1 -0
  58. package/dist/node_modules/ajv/lib/compile/rules.js +79 -0
  59. package/dist/node_modules/ajv/lib/compile/rules.js.map +1 -0
  60. package/dist/node_modules/ajv/lib/compile/schema_obj.js +21 -0
  61. package/dist/node_modules/ajv/lib/compile/schema_obj.js.map +1 -0
  62. package/dist/node_modules/ajv/lib/compile/ucs2length.js +30 -0
  63. package/dist/node_modules/ajv/lib/compile/ucs2length.js.map +1 -0
  64. package/dist/node_modules/ajv/lib/compile/util.js +252 -0
  65. package/dist/node_modules/ajv/lib/compile/util.js.map +1 -0
  66. package/dist/node_modules/ajv/lib/data.js +59 -0
  67. package/dist/node_modules/ajv/lib/data.js.map +1 -0
  68. package/dist/node_modules/ajv/lib/definition_schema.js +49 -0
  69. package/dist/node_modules/ajv/lib/definition_schema.js.map +1 -0
  70. package/dist/node_modules/ajv/lib/dotjs/_limit.js +173 -0
  71. package/dist/node_modules/ajv/lib/dotjs/_limit.js.map +1 -0
  72. package/dist/node_modules/ajv/lib/dotjs/_limitItems.js +90 -0
  73. package/dist/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -0
  74. package/dist/node_modules/ajv/lib/dotjs/_limitLength.js +95 -0
  75. package/dist/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -0
  76. package/dist/node_modules/ajv/lib/dotjs/_limitProperties.js +90 -0
  77. package/dist/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -0
  78. package/dist/node_modules/ajv/lib/dotjs/allOf.js +52 -0
  79. package/dist/node_modules/ajv/lib/dotjs/allOf.js.map +1 -0
  80. package/dist/node_modules/ajv/lib/dotjs/anyOf.js +83 -0
  81. package/dist/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -0
  82. package/dist/node_modules/ajv/lib/dotjs/comment.js +24 -0
  83. package/dist/node_modules/ajv/lib/dotjs/comment.js.map +1 -0
  84. package/dist/node_modules/ajv/lib/dotjs/const.js +62 -0
  85. package/dist/node_modules/ajv/lib/dotjs/const.js.map +1 -0
  86. package/dist/node_modules/ajv/lib/dotjs/contains.js +91 -0
  87. package/dist/node_modules/ajv/lib/dotjs/contains.js.map +1 -0
  88. package/dist/node_modules/ajv/lib/dotjs/custom.js +238 -0
  89. package/dist/node_modules/ajv/lib/dotjs/custom.js.map +1 -0
  90. package/dist/node_modules/ajv/lib/dotjs/dependencies.js +178 -0
  91. package/dist/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -0
  92. package/dist/node_modules/ajv/lib/dotjs/enum.js +72 -0
  93. package/dist/node_modules/ajv/lib/dotjs/enum.js.map +1 -0
  94. package/dist/node_modules/ajv/lib/dotjs/format.js +160 -0
  95. package/dist/node_modules/ajv/lib/dotjs/format.js.map +1 -0
  96. package/dist/node_modules/ajv/lib/dotjs/if.js +113 -0
  97. package/dist/node_modules/ajv/lib/dotjs/if.js.map +1 -0
  98. package/dist/node_modules/ajv/lib/dotjs/index.js +68 -0
  99. package/dist/node_modules/ajv/lib/dotjs/index.js.map +1 -0
  100. package/dist/node_modules/ajv/lib/dotjs/items.js +150 -0
  101. package/dist/node_modules/ajv/lib/dotjs/items.js.map +1 -0
  102. package/dist/node_modules/ajv/lib/dotjs/multipleOf.js +90 -0
  103. package/dist/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -0
  104. package/dist/node_modules/ajv/lib/dotjs/not.js +94 -0
  105. package/dist/node_modules/ajv/lib/dotjs/not.js.map +1 -0
  106. package/dist/node_modules/ajv/lib/dotjs/oneOf.js +83 -0
  107. package/dist/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -0
  108. package/dist/node_modules/ajv/lib/dotjs/pattern.js +85 -0
  109. package/dist/node_modules/ajv/lib/dotjs/pattern.js.map +1 -0
  110. package/dist/node_modules/ajv/lib/dotjs/properties.js +345 -0
  111. package/dist/node_modules/ajv/lib/dotjs/properties.js.map +1 -0
  112. package/dist/node_modules/ajv/lib/dotjs/propertyNames.js +91 -0
  113. package/dist/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -0
  114. package/dist/node_modules/ajv/lib/dotjs/ref.js +134 -0
  115. package/dist/node_modules/ajv/lib/dotjs/ref.js.map +1 -0
  116. package/dist/node_modules/ajv/lib/dotjs/required.js +276 -0
  117. package/dist/node_modules/ajv/lib/dotjs/required.js.map +1 -0
  118. package/dist/node_modules/ajv/lib/dotjs/uniqueItems.js +96 -0
  119. package/dist/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -0
  120. package/dist/node_modules/ajv/lib/dotjs/validate.js +492 -0
  121. package/dist/node_modules/ajv/lib/dotjs/validate.js.map +1 -0
  122. package/dist/node_modules/ajv/lib/keyword.js +159 -0
  123. package/dist/node_modules/ajv/lib/keyword.js.map +1 -0
  124. package/dist/node_modules/ajv/lib/refs/data.json.js +33 -0
  125. package/dist/node_modules/ajv/lib/refs/data.json.js.map +1 -0
  126. package/dist/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +254 -0
  127. package/dist/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -0
  128. package/dist/node_modules/eventsource-parser/dist/index.js +104 -0
  129. package/dist/node_modules/eventsource-parser/dist/index.js.map +1 -0
  130. package/dist/node_modules/eventsource-parser/dist/stream.js +28 -0
  131. package/dist/node_modules/eventsource-parser/dist/stream.js.map +1 -0
  132. package/dist/node_modules/fast-deep-equal/index.js +56 -0
  133. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  134. package/dist/node_modules/fast-json-stable-stringify/index.js +69 -0
  135. package/dist/node_modules/fast-json-stable-stringify/index.js.map +1 -0
  136. package/dist/node_modules/json-schema-traverse/index.js +100 -0
  137. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  138. package/dist/node_modules/pkce-challenge/dist/index.browser.js +66 -0
  139. package/dist/node_modules/pkce-challenge/dist/index.browser.js.map +1 -0
  140. package/dist/node_modules/uri-js/dist/es5/uri.all.js +1418 -0
  141. package/dist/node_modules/uri-js/dist/es5/uri.all.js.map +1 -0
  142. package/dist/node_modules/zod/v3/ZodError.js +133 -0
  143. package/dist/node_modules/zod/v3/ZodError.js.map +1 -0
  144. package/dist/node_modules/zod/v3/errors.js +9 -0
  145. package/dist/node_modules/zod/v3/errors.js.map +1 -0
  146. package/dist/node_modules/zod/v3/helpers/errorUtil.js +9 -0
  147. package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  148. package/dist/node_modules/zod/v3/helpers/parseUtil.js +112 -0
  149. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  150. package/dist/node_modules/zod/v3/helpers/util.js +136 -0
  151. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -0
  152. package/dist/node_modules/zod/v3/locales/en.js +112 -0
  153. package/dist/node_modules/zod/v3/locales/en.js.map +1 -0
  154. package/dist/node_modules/zod/v3/types.js +3491 -0
  155. package/dist/node_modules/zod/v3/types.js.map +1 -0
  156. package/dist/oAuth.js +7 -6
  157. package/dist/oAuth.js.map +1 -1
  158. package/dist/solanaAccount.js +7 -4
  159. package/dist/solanaAccount.js.map +1 -1
  160. package/dist/solanaPaymentMaker.js +13 -11
  161. package/dist/solanaPaymentMaker.js.map +1 -1
  162. package/dist/types.js +5 -3
  163. package/dist/types.js.map +1 -1
  164. package/package.json +26 -10
  165. package/dist/atxpAccount.d.ts +0 -13
  166. package/dist/atxpAccount.d.ts.map +0 -1
  167. package/dist/atxpClient.d.ts +0 -14
  168. package/dist/atxpClient.d.ts.map +0 -1
  169. package/dist/atxpFetcher.d.ts +0 -72
  170. package/dist/atxpFetcher.d.ts.map +0 -1
  171. package/dist/baseAccount.d.ts +0 -10
  172. package/dist/baseAccount.d.ts.map +0 -1
  173. package/dist/basePaymentMaker.d.ts +0 -16
  174. package/dist/basePaymentMaker.d.ts.map +0 -1
  175. package/dist/clientTestHelpers.d.ts +0 -6
  176. package/dist/clientTestHelpers.d.ts.map +0 -1
  177. package/dist/clientTestHelpers.js +0 -94
  178. package/dist/clientTestHelpers.js.map +0 -1
  179. package/dist/index.d.ts.map +0 -1
  180. package/dist/oAuth.d.ts +0 -44
  181. package/dist/oAuth.d.ts.map +0 -1
  182. package/dist/setup.expo.d.ts +0 -2
  183. package/dist/setup.expo.d.ts.map +0 -1
  184. package/dist/setup.expo.js +0 -30
  185. package/dist/setup.expo.js.map +0 -1
  186. package/dist/solanaAccount.d.ts +0 -9
  187. package/dist/solanaAccount.d.ts.map +0 -1
  188. package/dist/solanaPaymentMaker.d.ts +0 -18
  189. package/dist/solanaPaymentMaker.d.ts.map +0 -1
  190. package/dist/types.d.ts +0 -70
  191. package/dist/types.d.ts.map +0 -1
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Utilities for handling OAuth resource URIs.
3
+ */
4
+ /**
5
+ * Converts a server URL to a resource URL by removing the fragment.
6
+ * RFC 8707 section 2 states that resource URIs "MUST NOT include a fragment component".
7
+ * Keeps everything else unchanged (scheme, domain, port, path, query).
8
+ */
9
+ function resourceUrlFromServerUrl(url) {
10
+ const resourceURL = typeof url === "string" ? new URL(url) : new URL(url.href);
11
+ resourceURL.hash = ''; // Remove fragment
12
+ return resourceURL;
13
+ }
14
+ /**
15
+ * Checks if a requested resource URL matches a configured resource URL.
16
+ * A requested resource matches if it has the same scheme, domain, port,
17
+ * and its path starts with the configured resource's path.
18
+ *
19
+ * @param requestedResource The resource URL being requested
20
+ * @param configuredResource The resource URL that has been configured
21
+ * @returns true if the requested resource matches the configured resource, false otherwise
22
+ */
23
+ function checkResourceAllowed({ requestedResource, configuredResource }) {
24
+ const requested = typeof requestedResource === "string" ? new URL(requestedResource) : new URL(requestedResource.href);
25
+ const configured = typeof configuredResource === "string" ? new URL(configuredResource) : new URL(configuredResource.href);
26
+ // Compare the origin (scheme, domain, and port)
27
+ if (requested.origin !== configured.origin) {
28
+ return false;
29
+ }
30
+ // Handle cases like requested=/foo and configured=/foo/
31
+ if (requested.pathname.length < configured.pathname.length) {
32
+ return false;
33
+ }
34
+ // Check if the requested path starts with the configured path
35
+ // Ensure both paths end with / for proper comparison
36
+ // This ensures that if we have paths like "/api" and "/api/users",
37
+ // we properly detect that "/api/users" is a subpath of "/api"
38
+ // By adding a trailing slash if missing, we avoid false positives
39
+ // where paths like "/api123" would incorrectly match "/api"
40
+ const requestedPath = requested.pathname.endsWith('/') ? requested.pathname : requested.pathname + '/';
41
+ const configuredPath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';
42
+ return requestedPath.startsWith(configuredPath);
43
+ }
44
+
45
+ export { checkResourceAllowed, resourceUrlFromServerUrl };
46
+ //# sourceMappingURL=auth-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-utils.js","sources":["../../../../../../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js"],"sourcesContent":["/**\n * Utilities for handling OAuth resource URIs.\n */\n/**\n * Converts a server URL to a resource URL by removing the fragment.\n * RFC 8707 section 2 states that resource URIs \"MUST NOT include a fragment component\".\n * Keeps everything else unchanged (scheme, domain, port, path, query).\n */\nexport function resourceUrlFromServerUrl(url) {\n const resourceURL = typeof url === \"string\" ? new URL(url) : new URL(url.href);\n resourceURL.hash = ''; // Remove fragment\n return resourceURL;\n}\n/**\n * Checks if a requested resource URL matches a configured resource URL.\n * A requested resource matches if it has the same scheme, domain, port,\n * and its path starts with the configured resource's path.\n *\n * @param requestedResource The resource URL being requested\n * @param configuredResource The resource URL that has been configured\n * @returns true if the requested resource matches the configured resource, false otherwise\n */\nexport function checkResourceAllowed({ requestedResource, configuredResource }) {\n const requested = typeof requestedResource === \"string\" ? new URL(requestedResource) : new URL(requestedResource.href);\n const configured = typeof configuredResource === \"string\" ? new URL(configuredResource) : new URL(configuredResource.href);\n // Compare the origin (scheme, domain, and port)\n if (requested.origin !== configured.origin) {\n return false;\n }\n // Handle cases like requested=/foo and configured=/foo/\n if (requested.pathname.length < configured.pathname.length) {\n return false;\n }\n // Check if the requested path starts with the configured path\n // Ensure both paths end with / for proper comparison\n // This ensures that if we have paths like \"/api\" and \"/api/users\",\n // we properly detect that \"/api/users\" is a subpath of \"/api\"\n // By adding a trailing slash if missing, we avoid false positives\n // where paths like \"/api123\" would incorrectly match \"/api\"\n const requestedPath = requested.pathname.endsWith('/') ? requested.pathname : requested.pathname + '/';\n const configuredPath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';\n return requestedPath.startsWith(configuredPath);\n}\n//# sourceMappingURL=auth-utils.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,CAAC,GAAG,EAAE;AAC9C,IAAI,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAClF,IAAI,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;AAC1B,IAAI,OAAO,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,EAAE;AAChF,IAAI,MAAM,SAAS,GAAG,OAAO,iBAAiB,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1H,IAAI,MAAM,UAAU,GAAG,OAAO,kBAAkB,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC9H;AACA,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AAChD,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChE,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,GAAG;AAC1G,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG;AAC9G,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,192 @@
1
+ import { string as stringType, NEVER, object as objectType, boolean as booleanType, array as arrayType, number as numberType, any as anyType } from '../../../../../zod/v3/types.js';
2
+ import { ZodIssueCode } from '../../../../../zod/v3/ZodError.js';
3
+
4
+ /**
5
+ * Reusable URL validation that disallows javascript: scheme
6
+ */
7
+ const SafeUrlSchema = stringType().url()
8
+ .superRefine((val, ctx) => {
9
+ if (!URL.canParse(val)) {
10
+ ctx.addIssue({
11
+ code: ZodIssueCode.custom,
12
+ message: "URL must be parseable",
13
+ fatal: true,
14
+ });
15
+ return NEVER;
16
+ }
17
+ }).refine((url) => {
18
+ const u = new URL(url);
19
+ return u.protocol !== 'javascript:' && u.protocol !== 'data:' && u.protocol !== 'vbscript:';
20
+ }, { message: "URL cannot use javascript:, data:, or vbscript: scheme" });
21
+ /**
22
+ * RFC 9728 OAuth Protected Resource Metadata
23
+ */
24
+ const OAuthProtectedResourceMetadataSchema = objectType({
25
+ resource: stringType().url(),
26
+ authorization_servers: arrayType(SafeUrlSchema).optional(),
27
+ jwks_uri: stringType().url().optional(),
28
+ scopes_supported: arrayType(stringType()).optional(),
29
+ bearer_methods_supported: arrayType(stringType()).optional(),
30
+ resource_signing_alg_values_supported: arrayType(stringType()).optional(),
31
+ resource_name: stringType().optional(),
32
+ resource_documentation: stringType().optional(),
33
+ resource_policy_uri: stringType().url().optional(),
34
+ resource_tos_uri: stringType().url().optional(),
35
+ tls_client_certificate_bound_access_tokens: booleanType().optional(),
36
+ authorization_details_types_supported: arrayType(stringType()).optional(),
37
+ dpop_signing_alg_values_supported: arrayType(stringType()).optional(),
38
+ dpop_bound_access_tokens_required: booleanType().optional(),
39
+ })
40
+ .passthrough();
41
+ /**
42
+ * RFC 8414 OAuth 2.0 Authorization Server Metadata
43
+ */
44
+ const OAuthMetadataSchema = objectType({
45
+ issuer: stringType(),
46
+ authorization_endpoint: SafeUrlSchema,
47
+ token_endpoint: SafeUrlSchema,
48
+ registration_endpoint: SafeUrlSchema.optional(),
49
+ scopes_supported: arrayType(stringType()).optional(),
50
+ response_types_supported: arrayType(stringType()),
51
+ response_modes_supported: arrayType(stringType()).optional(),
52
+ grant_types_supported: arrayType(stringType()).optional(),
53
+ token_endpoint_auth_methods_supported: arrayType(stringType()).optional(),
54
+ token_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
55
+ .optional(),
56
+ service_documentation: SafeUrlSchema.optional(),
57
+ revocation_endpoint: SafeUrlSchema.optional(),
58
+ revocation_endpoint_auth_methods_supported: arrayType(stringType()).optional(),
59
+ revocation_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
60
+ .optional(),
61
+ introspection_endpoint: stringType().optional(),
62
+ introspection_endpoint_auth_methods_supported: arrayType(stringType())
63
+ .optional(),
64
+ introspection_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
65
+ .optional(),
66
+ code_challenge_methods_supported: arrayType(stringType()).optional(),
67
+ })
68
+ .passthrough();
69
+ /**
70
+ * OpenID Connect Discovery 1.0 Provider Metadata
71
+ * see: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
72
+ */
73
+ const OpenIdProviderMetadataSchema = objectType({
74
+ issuer: stringType(),
75
+ authorization_endpoint: SafeUrlSchema,
76
+ token_endpoint: SafeUrlSchema,
77
+ userinfo_endpoint: SafeUrlSchema.optional(),
78
+ jwks_uri: SafeUrlSchema,
79
+ registration_endpoint: SafeUrlSchema.optional(),
80
+ scopes_supported: arrayType(stringType()).optional(),
81
+ response_types_supported: arrayType(stringType()),
82
+ response_modes_supported: arrayType(stringType()).optional(),
83
+ grant_types_supported: arrayType(stringType()).optional(),
84
+ acr_values_supported: arrayType(stringType()).optional(),
85
+ subject_types_supported: arrayType(stringType()),
86
+ id_token_signing_alg_values_supported: arrayType(stringType()),
87
+ id_token_encryption_alg_values_supported: arrayType(stringType()).optional(),
88
+ id_token_encryption_enc_values_supported: arrayType(stringType()).optional(),
89
+ userinfo_signing_alg_values_supported: arrayType(stringType()).optional(),
90
+ userinfo_encryption_alg_values_supported: arrayType(stringType()).optional(),
91
+ userinfo_encryption_enc_values_supported: arrayType(stringType()).optional(),
92
+ request_object_signing_alg_values_supported: arrayType(stringType()).optional(),
93
+ request_object_encryption_alg_values_supported: arrayType(stringType())
94
+ .optional(),
95
+ request_object_encryption_enc_values_supported: arrayType(stringType())
96
+ .optional(),
97
+ token_endpoint_auth_methods_supported: arrayType(stringType()).optional(),
98
+ token_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
99
+ .optional(),
100
+ display_values_supported: arrayType(stringType()).optional(),
101
+ claim_types_supported: arrayType(stringType()).optional(),
102
+ claims_supported: arrayType(stringType()).optional(),
103
+ service_documentation: stringType().optional(),
104
+ claims_locales_supported: arrayType(stringType()).optional(),
105
+ ui_locales_supported: arrayType(stringType()).optional(),
106
+ claims_parameter_supported: booleanType().optional(),
107
+ request_parameter_supported: booleanType().optional(),
108
+ request_uri_parameter_supported: booleanType().optional(),
109
+ require_request_uri_registration: booleanType().optional(),
110
+ op_policy_uri: SafeUrlSchema.optional(),
111
+ op_tos_uri: SafeUrlSchema.optional(),
112
+ })
113
+ .passthrough();
114
+ /**
115
+ * OpenID Connect Discovery metadata that may include OAuth 2.0 fields
116
+ * This schema represents the real-world scenario where OIDC providers
117
+ * return a mix of OpenID Connect and OAuth 2.0 metadata fields
118
+ */
119
+ const OpenIdProviderDiscoveryMetadataSchema = OpenIdProviderMetadataSchema.merge(OAuthMetadataSchema.pick({
120
+ code_challenge_methods_supported: true,
121
+ }));
122
+ /**
123
+ * OAuth 2.1 token response
124
+ */
125
+ const OAuthTokensSchema = objectType({
126
+ access_token: stringType(),
127
+ id_token: stringType().optional(), // Optional for OAuth 2.1, but necessary in OpenID Connect
128
+ token_type: stringType(),
129
+ expires_in: numberType().optional(),
130
+ scope: stringType().optional(),
131
+ refresh_token: stringType().optional(),
132
+ })
133
+ .strip();
134
+ /**
135
+ * OAuth 2.1 error response
136
+ */
137
+ const OAuthErrorResponseSchema = objectType({
138
+ error: stringType(),
139
+ error_description: stringType().optional(),
140
+ error_uri: stringType().optional(),
141
+ });
142
+ /**
143
+ * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata
144
+ */
145
+ const OAuthClientMetadataSchema = objectType({
146
+ redirect_uris: arrayType(SafeUrlSchema),
147
+ token_endpoint_auth_method: stringType().optional(),
148
+ grant_types: arrayType(stringType()).optional(),
149
+ response_types: arrayType(stringType()).optional(),
150
+ client_name: stringType().optional(),
151
+ client_uri: SafeUrlSchema.optional(),
152
+ logo_uri: SafeUrlSchema.optional(),
153
+ scope: stringType().optional(),
154
+ contacts: arrayType(stringType()).optional(),
155
+ tos_uri: SafeUrlSchema.optional(),
156
+ policy_uri: stringType().optional(),
157
+ jwks_uri: SafeUrlSchema.optional(),
158
+ jwks: anyType().optional(),
159
+ software_id: stringType().optional(),
160
+ software_version: stringType().optional(),
161
+ software_statement: stringType().optional(),
162
+ }).strip();
163
+ /**
164
+ * RFC 7591 OAuth 2.0 Dynamic Client Registration client information
165
+ */
166
+ const OAuthClientInformationSchema = objectType({
167
+ client_id: stringType(),
168
+ client_secret: stringType().optional(),
169
+ client_id_issued_at: numberType().optional(),
170
+ client_secret_expires_at: numberType().optional(),
171
+ }).strip();
172
+ /**
173
+ * RFC 7591 OAuth 2.0 Dynamic Client Registration full response (client information plus metadata)
174
+ */
175
+ const OAuthClientInformationFullSchema = OAuthClientMetadataSchema.merge(OAuthClientInformationSchema);
176
+ /**
177
+ * RFC 7591 OAuth 2.0 Dynamic Client Registration error response
178
+ */
179
+ objectType({
180
+ error: stringType(),
181
+ error_description: stringType().optional(),
182
+ }).strip();
183
+ /**
184
+ * RFC 7009 OAuth 2.0 Token Revocation request
185
+ */
186
+ objectType({
187
+ token: stringType(),
188
+ token_type_hint: stringType().optional(),
189
+ }).strip();
190
+
191
+ export { OAuthClientInformationFullSchema, OAuthClientInformationSchema, OAuthClientMetadataSchema, OAuthErrorResponseSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema, OpenIdProviderDiscoveryMetadataSchema, OpenIdProviderMetadataSchema, SafeUrlSchema };
192
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sources":["../../../../../../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js"],"sourcesContent":["import { z } from \"zod\";\n/**\n * Reusable URL validation that disallows javascript: scheme\n */\nexport const SafeUrlSchema = z.string().url()\n .superRefine((val, ctx) => {\n if (!URL.canParse(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"URL must be parseable\",\n fatal: true,\n });\n return z.NEVER;\n }\n}).refine((url) => {\n const u = new URL(url);\n return u.protocol !== 'javascript:' && u.protocol !== 'data:' && u.protocol !== 'vbscript:';\n}, { message: \"URL cannot use javascript:, data:, or vbscript: scheme\" });\n/**\n * RFC 9728 OAuth Protected Resource Metadata\n */\nexport const OAuthProtectedResourceMetadataSchema = z\n .object({\n resource: z.string().url(),\n authorization_servers: z.array(SafeUrlSchema).optional(),\n jwks_uri: z.string().url().optional(),\n scopes_supported: z.array(z.string()).optional(),\n bearer_methods_supported: z.array(z.string()).optional(),\n resource_signing_alg_values_supported: z.array(z.string()).optional(),\n resource_name: z.string().optional(),\n resource_documentation: z.string().optional(),\n resource_policy_uri: z.string().url().optional(),\n resource_tos_uri: z.string().url().optional(),\n tls_client_certificate_bound_access_tokens: z.boolean().optional(),\n authorization_details_types_supported: z.array(z.string()).optional(),\n dpop_signing_alg_values_supported: z.array(z.string()).optional(),\n dpop_bound_access_tokens_required: z.boolean().optional(),\n})\n .passthrough();\n/**\n * RFC 8414 OAuth 2.0 Authorization Server Metadata\n */\nexport const OAuthMetadataSchema = z\n .object({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z\n .array(z.string())\n .optional(),\n service_documentation: SafeUrlSchema.optional(),\n revocation_endpoint: SafeUrlSchema.optional(),\n revocation_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n revocation_endpoint_auth_signing_alg_values_supported: z\n .array(z.string())\n .optional(),\n introspection_endpoint: z.string().optional(),\n introspection_endpoint_auth_methods_supported: z\n .array(z.string())\n .optional(),\n introspection_endpoint_auth_signing_alg_values_supported: z\n .array(z.string())\n .optional(),\n code_challenge_methods_supported: z.array(z.string()).optional(),\n})\n .passthrough();\n/**\n * OpenID Connect Discovery 1.0 Provider Metadata\n * see: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\n */\nexport const OpenIdProviderMetadataSchema = z\n .object({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n userinfo_endpoint: SafeUrlSchema.optional(),\n jwks_uri: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n acr_values_supported: z.array(z.string()).optional(),\n subject_types_supported: z.array(z.string()),\n id_token_signing_alg_values_supported: z.array(z.string()),\n id_token_encryption_alg_values_supported: z.array(z.string()).optional(),\n id_token_encryption_enc_values_supported: z.array(z.string()).optional(),\n userinfo_signing_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_enc_values_supported: z.array(z.string()).optional(),\n request_object_signing_alg_values_supported: z.array(z.string()).optional(),\n request_object_encryption_alg_values_supported: z\n .array(z.string())\n .optional(),\n request_object_encryption_enc_values_supported: z\n .array(z.string())\n .optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z\n .array(z.string())\n .optional(),\n display_values_supported: z.array(z.string()).optional(),\n claim_types_supported: z.array(z.string()).optional(),\n claims_supported: z.array(z.string()).optional(),\n service_documentation: z.string().optional(),\n claims_locales_supported: z.array(z.string()).optional(),\n ui_locales_supported: z.array(z.string()).optional(),\n claims_parameter_supported: z.boolean().optional(),\n request_parameter_supported: z.boolean().optional(),\n request_uri_parameter_supported: z.boolean().optional(),\n require_request_uri_registration: z.boolean().optional(),\n op_policy_uri: SafeUrlSchema.optional(),\n op_tos_uri: SafeUrlSchema.optional(),\n})\n .passthrough();\n/**\n * OpenID Connect Discovery metadata that may include OAuth 2.0 fields\n * This schema represents the real-world scenario where OIDC providers\n * return a mix of OpenID Connect and OAuth 2.0 metadata fields\n */\nexport const OpenIdProviderDiscoveryMetadataSchema = OpenIdProviderMetadataSchema.merge(OAuthMetadataSchema.pick({\n code_challenge_methods_supported: true,\n}));\n/**\n * OAuth 2.1 token response\n */\nexport const OAuthTokensSchema = z\n .object({\n access_token: z.string(),\n id_token: z.string().optional(), // Optional for OAuth 2.1, but necessary in OpenID Connect\n token_type: z.string(),\n expires_in: z.number().optional(),\n scope: z.string().optional(),\n refresh_token: z.string().optional(),\n})\n .strip();\n/**\n * OAuth 2.1 error response\n */\nexport const OAuthErrorResponseSchema = z\n .object({\n error: z.string(),\n error_description: z.string().optional(),\n error_uri: z.string().optional(),\n});\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata\n */\nexport const OAuthClientMetadataSchema = z.object({\n redirect_uris: z.array(SafeUrlSchema),\n token_endpoint_auth_method: z.string().optional(),\n grant_types: z.array(z.string()).optional(),\n response_types: z.array(z.string()).optional(),\n client_name: z.string().optional(),\n client_uri: SafeUrlSchema.optional(),\n logo_uri: SafeUrlSchema.optional(),\n scope: z.string().optional(),\n contacts: z.array(z.string()).optional(),\n tos_uri: SafeUrlSchema.optional(),\n policy_uri: z.string().optional(),\n jwks_uri: SafeUrlSchema.optional(),\n jwks: z.any().optional(),\n software_id: z.string().optional(),\n software_version: z.string().optional(),\n software_statement: z.string().optional(),\n}).strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration client information\n */\nexport const OAuthClientInformationSchema = z.object({\n client_id: z.string(),\n client_secret: z.string().optional(),\n client_id_issued_at: z.number().optional(),\n client_secret_expires_at: z.number().optional(),\n}).strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration full response (client information plus metadata)\n */\nexport const OAuthClientInformationFullSchema = OAuthClientMetadataSchema.merge(OAuthClientInformationSchema);\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration error response\n */\nexport const OAuthClientRegistrationErrorSchema = z.object({\n error: z.string(),\n error_description: z.string().optional(),\n}).strip();\n/**\n * RFC 7009 OAuth 2.0 Token Revocation request\n */\nexport const OAuthTokenRevocationRequestSchema = z.object({\n token: z.string(),\n token_type_hint: z.string().optional(),\n}).strip();\n//# sourceMappingURL=auth.js.map"],"names":["z.string","z.ZodIssueCode","z.NEVER","z\n .object","z.array","z.boolean","z\n .array","z.number","z.object","z.any"],"mappings":"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","x_google_ignoreList":[0]}