@atxp/client 0.3.0 → 0.5.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 (40) hide show
  1. package/dist/index.cjs +745 -142
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +745 -142
  4. package/dist/index.js.map +1 -1
  5. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +369 -99
  6. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -1
  7. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +18 -18
  8. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -1
  9. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js +162 -0
  10. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js.map +1 -0
  11. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +86 -14
  12. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -1
  13. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +47 -9
  14. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -1
  15. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +64 -5
  16. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -1
  17. package/dist/node_modules/eventsource-parser/dist/index.js +1 -1
  18. package/dist/node_modules/eventsource-parser/dist/index.js.map +1 -1
  19. package/dist/node_modules/zod/{dist/esm/v3 → v3}/ZodError.js +3 -2
  20. package/dist/node_modules/zod/v3/ZodError.js.map +1 -0
  21. package/dist/node_modules/zod/v3/errors.js.map +1 -0
  22. package/dist/node_modules/zod/v3/helpers/errorUtil.js.map +1 -0
  23. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -0
  24. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -0
  25. package/dist/node_modules/zod/{dist/esm/v3 → v3}/locales/en.js +2 -0
  26. package/dist/node_modules/zod/v3/locales/en.js.map +1 -0
  27. package/dist/node_modules/zod/{dist/esm/v3 → v3}/types.js +5 -2
  28. package/dist/node_modules/zod/v3/types.js.map +1 -0
  29. package/package.json +2 -2
  30. package/dist/node_modules/zod/dist/esm/v3/ZodError.js.map +0 -1
  31. package/dist/node_modules/zod/dist/esm/v3/errors.js.map +0 -1
  32. package/dist/node_modules/zod/dist/esm/v3/helpers/errorUtil.js.map +0 -1
  33. package/dist/node_modules/zod/dist/esm/v3/helpers/parseUtil.js.map +0 -1
  34. package/dist/node_modules/zod/dist/esm/v3/helpers/util.js.map +0 -1
  35. package/dist/node_modules/zod/dist/esm/v3/locales/en.js.map +0 -1
  36. package/dist/node_modules/zod/dist/esm/v3/types.js.map +0 -1
  37. /package/dist/node_modules/zod/{dist/esm/v3 → v3}/errors.js +0 -0
  38. /package/dist/node_modules/zod/{dist/esm/v3 → v3}/helpers/errorUtil.js +0 -0
  39. /package/dist/node_modules/zod/{dist/esm/v3 → v3}/helpers/parseUtil.js +0 -0
  40. /package/dist/node_modules/zod/{dist/esm/v3 → v3}/helpers/util.js +0 -0
@@ -1,11 +1,29 @@
1
- import { object as objectType, boolean as booleanType, array as arrayType, string as stringType, number as numberType, any as anyType } from '../../../../../zod/dist/esm/v3/types.js';
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';
2
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" });
3
21
  /**
4
22
  * RFC 9728 OAuth Protected Resource Metadata
5
23
  */
6
24
  const OAuthProtectedResourceMetadataSchema = objectType({
7
25
  resource: stringType().url(),
8
- authorization_servers: arrayType(stringType().url()).optional(),
26
+ authorization_servers: arrayType(SafeUrlSchema).optional(),
9
27
  jwks_uri: stringType().url().optional(),
10
28
  scopes_supported: arrayType(stringType()).optional(),
11
29
  bearer_methods_supported: arrayType(stringType()).optional(),
@@ -25,9 +43,9 @@ const OAuthProtectedResourceMetadataSchema = objectType({
25
43
  */
26
44
  const OAuthMetadataSchema = objectType({
27
45
  issuer: stringType(),
28
- authorization_endpoint: stringType(),
29
- token_endpoint: stringType(),
30
- registration_endpoint: stringType().optional(),
46
+ authorization_endpoint: SafeUrlSchema,
47
+ token_endpoint: SafeUrlSchema,
48
+ registration_endpoint: SafeUrlSchema.optional(),
31
49
  scopes_supported: arrayType(stringType()).optional(),
32
50
  response_types_supported: arrayType(stringType()),
33
51
  response_modes_supported: arrayType(stringType()).optional(),
@@ -35,8 +53,8 @@ const OAuthMetadataSchema = objectType({
35
53
  token_endpoint_auth_methods_supported: arrayType(stringType()).optional(),
36
54
  token_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
37
55
  .optional(),
38
- service_documentation: stringType().optional(),
39
- revocation_endpoint: stringType().optional(),
56
+ service_documentation: SafeUrlSchema.optional(),
57
+ revocation_endpoint: SafeUrlSchema.optional(),
40
58
  revocation_endpoint_auth_methods_supported: arrayType(stringType()).optional(),
41
59
  revocation_endpoint_auth_signing_alg_values_supported: arrayType(stringType())
42
60
  .optional(),
@@ -48,11 +66,65 @@ const OAuthMetadataSchema = objectType({
48
66
  code_challenge_methods_supported: arrayType(stringType()).optional(),
49
67
  })
50
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
+ }));
51
122
  /**
52
123
  * OAuth 2.1 token response
53
124
  */
54
125
  const OAuthTokensSchema = objectType({
55
126
  access_token: stringType(),
127
+ id_token: stringType().optional(), // Optional for OAuth 2.1, but necessary in OpenID Connect
56
128
  token_type: stringType(),
57
129
  expires_in: numberType().optional(),
58
130
  scope: stringType().optional(),
@@ -62,7 +134,7 @@ const OAuthTokensSchema = objectType({
62
134
  /**
63
135
  * OAuth 2.1 error response
64
136
  */
65
- objectType({
137
+ const OAuthErrorResponseSchema = objectType({
66
138
  error: stringType(),
67
139
  error_description: stringType().optional(),
68
140
  error_uri: stringType().optional(),
@@ -71,18 +143,18 @@ objectType({
71
143
  * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata
72
144
  */
73
145
  const OAuthClientMetadataSchema = objectType({
74
- redirect_uris: arrayType(stringType()).refine((uris) => uris.every((uri) => URL.canParse(uri)), { message: "redirect_uris must contain valid URLs" }),
146
+ redirect_uris: arrayType(SafeUrlSchema),
75
147
  token_endpoint_auth_method: stringType().optional(),
76
148
  grant_types: arrayType(stringType()).optional(),
77
149
  response_types: arrayType(stringType()).optional(),
78
150
  client_name: stringType().optional(),
79
- client_uri: stringType().optional(),
80
- logo_uri: stringType().optional(),
151
+ client_uri: SafeUrlSchema.optional(),
152
+ logo_uri: SafeUrlSchema.optional(),
81
153
  scope: stringType().optional(),
82
154
  contacts: arrayType(stringType()).optional(),
83
- tos_uri: stringType().optional(),
155
+ tos_uri: SafeUrlSchema.optional(),
84
156
  policy_uri: stringType().optional(),
85
- jwks_uri: stringType().optional(),
157
+ jwks_uri: SafeUrlSchema.optional(),
86
158
  jwks: anyType().optional(),
87
159
  software_id: stringType().optional(),
88
160
  software_version: stringType().optional(),
@@ -116,5 +188,5 @@ objectType({
116
188
  token_type_hint: stringType().optional(),
117
189
  }).strip();
118
190
 
119
- export { OAuthClientInformationFullSchema, OAuthClientInformationSchema, OAuthClientMetadataSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema };
191
+ export { OAuthClientInformationFullSchema, OAuthClientInformationSchema, OAuthClientMetadataSchema, OAuthErrorResponseSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema, OpenIdProviderDiscoveryMetadataSchema, OpenIdProviderMetadataSchema, SafeUrlSchema };
120
192
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sources":["../../../../../../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js"],"sourcesContent":["import { z } from \"zod\";\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(z.string().url()).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: z.string(),\n token_endpoint: z.string(),\n registration_endpoint: z.string().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: z.string().optional(),\n revocation_endpoint: z.string().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 * OAuth 2.1 token response\n */\nexport const OAuthTokensSchema = z\n .object({\n access_token: z.string(),\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(z.string()).refine((uris) => uris.every((uri) => URL.canParse(uri)), { message: \"redirect_uris must contain valid URLs\" }),\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: z.string().optional(),\n logo_uri: z.string().optional(),\n scope: z.string().optional(),\n contacts: z.array(z.string()).optional(),\n tos_uri: z.string().optional(),\n policy_uri: z.string().optional(),\n jwks_uri: z.string().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\n .object","z.string","z.array","z.boolean","z\n .array","z.number","z.object","z.any"],"mappings":"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","x_google_ignoreList":[0]}
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]}
@@ -18,6 +18,7 @@ class Protocol {
18
18
  this._responseHandlers = new Map();
19
19
  this._progressHandlers = new Map();
20
20
  this._timeoutInfo = new Map();
21
+ this._pendingDebouncedNotifications = new Set();
21
22
  this.setNotificationHandler(CancelledNotificationSchema, (notification) => {
22
23
  const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);
23
24
  controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);
@@ -100,6 +101,7 @@ class Protocol {
100
101
  const responseHandlers = this._responseHandlers;
101
102
  this._responseHandlers = new Map();
102
103
  this._progressHandlers.clear();
104
+ this._pendingDebouncedNotifications.clear();
103
105
  this._transport = undefined;
104
106
  (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
105
107
  const error = new McpError(ErrorCode.ConnectionClosed, "Connection closed");
@@ -124,10 +126,12 @@ class Protocol {
124
126
  .catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));
125
127
  }
126
128
  _onrequest(request, extra) {
127
- var _a, _b, _c, _d;
129
+ var _a, _b;
128
130
  const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;
131
+ // Capture the current transport at request time to ensure responses go to the correct client
132
+ const capturedTransport = this._transport;
129
133
  if (handler === undefined) {
130
- (_b = this._transport) === null || _b === void 0 ? void 0 : _b.send({
134
+ capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
131
135
  jsonrpc: "2.0",
132
136
  id: request.id,
133
137
  error: {
@@ -141,8 +145,8 @@ class Protocol {
141
145
  this._requestHandlerAbortControllers.set(request.id, abortController);
142
146
  const fullExtra = {
143
147
  signal: abortController.signal,
144
- sessionId: (_c = this._transport) === null || _c === void 0 ? void 0 : _c.sessionId,
145
- _meta: (_d = request.params) === null || _d === void 0 ? void 0 : _d._meta,
148
+ sessionId: capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.sessionId,
149
+ _meta: (_b = request.params) === null || _b === void 0 ? void 0 : _b._meta,
146
150
  sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),
147
151
  sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),
148
152
  authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,
@@ -153,28 +157,27 @@ class Protocol {
153
157
  Promise.resolve()
154
158
  .then(() => handler(request, fullExtra))
155
159
  .then((result) => {
156
- var _a;
157
160
  if (abortController.signal.aborted) {
158
161
  return;
159
162
  }
160
- return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
163
+ return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
161
164
  result,
162
165
  jsonrpc: "2.0",
163
166
  id: request.id,
164
167
  });
165
168
  }, (error) => {
166
- var _a, _b;
169
+ var _a;
167
170
  if (abortController.signal.aborted) {
168
171
  return;
169
172
  }
170
- return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({
173
+ return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({
171
174
  jsonrpc: "2.0",
172
175
  id: request.id,
173
176
  error: {
174
177
  code: Number.isSafeInteger(error["code"])
175
178
  ? error["code"]
176
179
  : ErrorCode.InternalError,
177
- message: (_b = error.message) !== null && _b !== void 0 ? _b : "Internal error",
180
+ message: (_a = error.message) !== null && _a !== void 0 ? _a : "Internal error",
178
181
  },
179
182
  });
180
183
  })
@@ -313,10 +316,45 @@ class Protocol {
313
316
  * Emits a notification, which is a one-way message that does not expect a response.
314
317
  */
315
318
  async notification(notification, options) {
319
+ var _a, _b;
316
320
  if (!this._transport) {
317
321
  throw new Error("Not connected");
318
322
  }
319
323
  this.assertNotificationCapability(notification.method);
324
+ const debouncedMethods = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.debouncedNotificationMethods) !== null && _b !== void 0 ? _b : [];
325
+ // A notification can only be debounced if it's in the list AND it's "simple"
326
+ // (i.e., has no parameters and no related request ID that could be lost).
327
+ const canDebounce = debouncedMethods.includes(notification.method)
328
+ && !notification.params
329
+ && !(options === null || options === void 0 ? void 0 : options.relatedRequestId);
330
+ if (canDebounce) {
331
+ // If a notification of this type is already scheduled, do nothing.
332
+ if (this._pendingDebouncedNotifications.has(notification.method)) {
333
+ return;
334
+ }
335
+ // Mark this notification type as pending.
336
+ this._pendingDebouncedNotifications.add(notification.method);
337
+ // Schedule the actual send to happen in the next microtask.
338
+ // This allows all synchronous calls in the current event loop tick to be coalesced.
339
+ Promise.resolve().then(() => {
340
+ var _a;
341
+ // Un-mark the notification so the next one can be scheduled.
342
+ this._pendingDebouncedNotifications.delete(notification.method);
343
+ // SAFETY CHECK: If the connection was closed while this was pending, abort.
344
+ if (!this._transport) {
345
+ return;
346
+ }
347
+ const jsonrpcNotification = {
348
+ ...notification,
349
+ jsonrpc: "2.0",
350
+ };
351
+ // Send the notification, but don't await it here to avoid blocking.
352
+ // Handle potential errors with a .catch().
353
+ (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send(jsonrpcNotification, options).catch(error => this._onerror(error));
354
+ });
355
+ // Return immediately.
356
+ return;
357
+ }
320
358
  const jsonrpcNotification = {
321
359
  ...notification,
322
360
  jsonrpc: "2.0",
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sources":["../../../../../../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js"],"sourcesContent":["import { CancelledNotificationSchema, ErrorCode, isJSONRPCError, isJSONRPCRequest, isJSONRPCResponse, isJSONRPCNotification, McpError, PingRequestSchema, ProgressNotificationSchema, } from \"../types.js\";\n/**\n * The default request timeout, in miliseconds.\n */\nexport const DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n/**\n * Implements MCP protocol framing on top of a pluggable transport, including\n * features like request/response linking, notifications, and progress.\n */\nexport class Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map();\n this._requestHandlerAbortControllers = new Map();\n this._notificationHandlers = new Map();\n this._responseHandlers = new Map();\n this._progressHandlers = new Map();\n this._timeoutInfo = new Map();\n this.setNotificationHandler(CancelledNotificationSchema, (notification) => {\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);\n });\n this.setNotificationHandler(ProgressNotificationSchema, (notification) => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, \n // Automatic pong by default.\n (_request) => ({}));\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw new McpError(ErrorCode.RequestTimeout, \"Maximum total timeout exceeded\", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n /**\n * Attaches to the given transport, starts it, and starts listening for messages.\n *\n * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.\n */\n async connect(transport) {\n var _a, _b, _c;\n this._transport = transport;\n const _onclose = (_a = this.transport) === null || _a === void 0 ? void 0 : _a.onclose;\n this._transport.onclose = () => {\n _onclose === null || _onclose === void 0 ? void 0 : _onclose();\n this._onclose();\n };\n const _onerror = (_b = this.transport) === null || _b === void 0 ? void 0 : _b.onerror;\n this._transport.onerror = (error) => {\n _onerror === null || _onerror === void 0 ? void 0 : _onerror(error);\n this._onerror(error);\n };\n const _onmessage = (_c = this._transport) === null || _c === void 0 ? void 0 : _c.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage === null || _onmessage === void 0 ? void 0 : _onmessage(message, extra);\n if (isJSONRPCResponse(message) || isJSONRPCError(message)) {\n this._onresponse(message);\n }\n else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n }\n else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n }\n else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n var _a;\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map();\n this._progressHandlers.clear();\n this._transport = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n const error = new McpError(ErrorCode.ConnectionClosed, \"Connection closed\");\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n var _a;\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n }\n _onnotification(notification) {\n var _a;\n const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== void 0 ? _a : this.fallbackNotificationHandler;\n // Ignore notifications not being subscribed to.\n if (handler === undefined) {\n return;\n }\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(notification))\n .catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n var _a, _b, _c, _d;\n const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;\n if (handler === undefined) {\n (_b = this._transport) === null || _b === void 0 ? void 0 : _b.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: \"Method not found\",\n },\n }).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n return;\n }\n const abortController = new AbortController();\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const fullExtra = {\n signal: abortController.signal,\n sessionId: (_c = this._transport) === null || _c === void 0 ? void 0 : _c.sessionId,\n _meta: (_d = request.params) === null || _d === void 0 ? void 0 : _d._meta,\n sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),\n sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),\n authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,\n requestId: request.id,\n requestInfo: extra === null || extra === void 0 ? void 0 : extra.requestInfo\n };\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(request, fullExtra))\n .then((result) => {\n var _a;\n if (abortController.signal.aborted) {\n return;\n }\n return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({\n result,\n jsonrpc: \"2.0\",\n id: request.id,\n });\n }, (error) => {\n var _a, _b;\n if (abortController.signal.aborted) {\n return;\n }\n return (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: Number.isSafeInteger(error[\"code\"])\n ? error[\"code\"]\n : ErrorCode.InternalError,\n message: (_b = error.message) !== null && _b !== void 0 ? _b : \"Internal error\",\n },\n });\n })\n .catch((error) => this._onerror(new Error(`Failed to send response: ${error}`)))\n .finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n }\n catch (error) {\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n if (isJSONRPCResponse(response)) {\n handler(response);\n }\n else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n /**\n * Closes the connection.\n */\n async close() {\n var _a;\n await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());\n }\n /**\n * Sends a request and wait for a response.\n *\n * Do not use this method to emit notifications! Use notification() instead.\n */\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== void 0 ? options : {};\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d, _e, _f;\n if (!this._transport) {\n reject(new Error(\"Not connected\"));\n return;\n }\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {\n this.assertCapabilityForMethod(request.method);\n }\n (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: \"2.0\",\n id: messageId,\n };\n if (options === null || options === void 0 ? void 0 : options.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...(((_c = request.params) === null || _c === void 0 ? void 0 : _c._meta) || {}),\n progressToken: messageId\n },\n };\n }\n const cancel = (reason) => {\n var _a;\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({\n jsonrpc: \"2.0\",\n method: \"notifications/cancelled\",\n params: {\n requestId: messageId,\n reason: String(reason),\n },\n }, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n reject(reason);\n };\n this._responseHandlers.set(messageId, (response) => {\n var _a;\n if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const result = resultSchema.parse(response.result);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n });\n (_d = options === null || options === void 0 ? void 0 : options.signal) === null || _d === void 0 ? void 0 : _d.addEventListener(\"abort\", () => {\n var _a;\n cancel((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.reason);\n });\n const timeout = (_e = options === null || options === void 0 ? void 0 : options.timeout) !== null && _e !== void 0 ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, \"Request timed out\", { timeout }));\n this._setupTimeout(messageId, timeout, options === null || options === void 0 ? void 0 : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === void 0 ? void 0 : options.resetTimeoutOnProgress) !== null && _f !== void 0 ? _f : false);\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n });\n }\n /**\n * Emits a notification, which is a one-way message that does not expect a response.\n */\n async notification(notification, options) {\n if (!this._transport) {\n throw new Error(\"Not connected\");\n }\n this.assertNotificationCapability(notification.method);\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: \"2.0\",\n };\n await this._transport.send(jsonrpcNotification, options);\n }\n /**\n * Registers a handler to invoke when this protocol object receives a request with the given method.\n *\n * Note that this will replace any previous request handler for the same method.\n */\n setRequestHandler(requestSchema, handler) {\n const method = requestSchema.shape.method.value;\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n return Promise.resolve(handler(requestSchema.parse(request), extra));\n });\n }\n /**\n * Removes the request handler for the given method.\n */\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n /**\n * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.\n */\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n /**\n * Registers a handler to invoke when this protocol object receives a notification with the given method.\n *\n * Note that this will replace any previous notification handler for the same method.\n */\n setNotificationHandler(notificationSchema, handler) {\n this._notificationHandlers.set(notificationSchema.shape.method.value, (notification) => Promise.resolve(handler(notificationSchema.parse(notification))));\n }\n /**\n * Removes the notification handler for the given method.\n */\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n}\nexport function mergeCapabilities(base, additional) {\n return Object.entries(additional).reduce((acc, [key, value]) => {\n if (value && typeof value === \"object\") {\n acc[key] = acc[key] ? { ...acc[key], ...value } : value;\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, { ...base });\n}\n//# sourceMappingURL=protocol.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"protocol.js","sources":["../../../../../../../../../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js"],"sourcesContent":["import { CancelledNotificationSchema, ErrorCode, isJSONRPCError, isJSONRPCRequest, isJSONRPCResponse, isJSONRPCNotification, McpError, PingRequestSchema, ProgressNotificationSchema, } from \"../types.js\";\n/**\n * The default request timeout, in miliseconds.\n */\nexport const DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n/**\n * Implements MCP protocol framing on top of a pluggable transport, including\n * features like request/response linking, notifications, and progress.\n */\nexport class Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map();\n this._requestHandlerAbortControllers = new Map();\n this._notificationHandlers = new Map();\n this._responseHandlers = new Map();\n this._progressHandlers = new Map();\n this._timeoutInfo = new Map();\n this._pendingDebouncedNotifications = new Set();\n this.setNotificationHandler(CancelledNotificationSchema, (notification) => {\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);\n });\n this.setNotificationHandler(ProgressNotificationSchema, (notification) => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, \n // Automatic pong by default.\n (_request) => ({}));\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw new McpError(ErrorCode.RequestTimeout, \"Maximum total timeout exceeded\", { maxTotalTimeout: info.maxTotalTimeout, totalElapsed });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n /**\n * Attaches to the given transport, starts it, and starts listening for messages.\n *\n * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.\n */\n async connect(transport) {\n var _a, _b, _c;\n this._transport = transport;\n const _onclose = (_a = this.transport) === null || _a === void 0 ? void 0 : _a.onclose;\n this._transport.onclose = () => {\n _onclose === null || _onclose === void 0 ? void 0 : _onclose();\n this._onclose();\n };\n const _onerror = (_b = this.transport) === null || _b === void 0 ? void 0 : _b.onerror;\n this._transport.onerror = (error) => {\n _onerror === null || _onerror === void 0 ? void 0 : _onerror(error);\n this._onerror(error);\n };\n const _onmessage = (_c = this._transport) === null || _c === void 0 ? void 0 : _c.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage === null || _onmessage === void 0 ? void 0 : _onmessage(message, extra);\n if (isJSONRPCResponse(message) || isJSONRPCError(message)) {\n this._onresponse(message);\n }\n else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n }\n else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n }\n else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n var _a;\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map();\n this._progressHandlers.clear();\n this._pendingDebouncedNotifications.clear();\n this._transport = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n const error = new McpError(ErrorCode.ConnectionClosed, \"Connection closed\");\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n var _a;\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n }\n _onnotification(notification) {\n var _a;\n const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== void 0 ? _a : this.fallbackNotificationHandler;\n // Ignore notifications not being subscribed to.\n if (handler === undefined) {\n return;\n }\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(notification))\n .catch((error) => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n var _a, _b;\n const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;\n // Capture the current transport at request time to ensure responses go to the correct client\n const capturedTransport = this._transport;\n if (handler === undefined) {\n capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: \"Method not found\",\n },\n }).catch((error) => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n return;\n }\n const abortController = new AbortController();\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const fullExtra = {\n signal: abortController.signal,\n sessionId: capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.sessionId,\n _meta: (_b = request.params) === null || _b === void 0 ? void 0 : _b._meta,\n sendNotification: (notification) => this.notification(notification, { relatedRequestId: request.id }),\n sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),\n authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,\n requestId: request.id,\n requestInfo: extra === null || extra === void 0 ? void 0 : extra.requestInfo\n };\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(request, fullExtra))\n .then((result) => {\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n result,\n jsonrpc: \"2.0\",\n id: request.id,\n });\n }, (error) => {\n var _a;\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n jsonrpc: \"2.0\",\n id: request.id,\n error: {\n code: Number.isSafeInteger(error[\"code\"])\n ? error[\"code\"]\n : ErrorCode.InternalError,\n message: (_a = error.message) !== null && _a !== void 0 ? _a : \"Internal error\",\n },\n });\n })\n .catch((error) => this._onerror(new Error(`Failed to send response: ${error}`)))\n .finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n }\n catch (error) {\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n if (isJSONRPCResponse(response)) {\n handler(response);\n }\n else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n /**\n * Closes the connection.\n */\n async close() {\n var _a;\n await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());\n }\n /**\n * Sends a request and wait for a response.\n *\n * Do not use this method to emit notifications! Use notification() instead.\n */\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== void 0 ? options : {};\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d, _e, _f;\n if (!this._transport) {\n reject(new Error(\"Not connected\"));\n return;\n }\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {\n this.assertCapabilityForMethod(request.method);\n }\n (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: \"2.0\",\n id: messageId,\n };\n if (options === null || options === void 0 ? void 0 : options.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...(((_c = request.params) === null || _c === void 0 ? void 0 : _c._meta) || {}),\n progressToken: messageId\n },\n };\n }\n const cancel = (reason) => {\n var _a;\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({\n jsonrpc: \"2.0\",\n method: \"notifications/cancelled\",\n params: {\n requestId: messageId,\n reason: String(reason),\n },\n }, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n reject(reason);\n };\n this._responseHandlers.set(messageId, (response) => {\n var _a;\n if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const result = resultSchema.parse(response.result);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n });\n (_d = options === null || options === void 0 ? void 0 : options.signal) === null || _d === void 0 ? void 0 : _d.addEventListener(\"abort\", () => {\n var _a;\n cancel((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.reason);\n });\n const timeout = (_e = options === null || options === void 0 ? void 0 : options.timeout) !== null && _e !== void 0 ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, \"Request timed out\", { timeout }));\n this._setupTimeout(messageId, timeout, options === null || options === void 0 ? void 0 : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === void 0 ? void 0 : options.resetTimeoutOnProgress) !== null && _f !== void 0 ? _f : false);\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n });\n }\n /**\n * Emits a notification, which is a one-way message that does not expect a response.\n */\n async notification(notification, options) {\n var _a, _b;\n if (!this._transport) {\n throw new Error(\"Not connected\");\n }\n this.assertNotificationCapability(notification.method);\n const debouncedMethods = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.debouncedNotificationMethods) !== null && _b !== void 0 ? _b : [];\n // A notification can only be debounced if it's in the list AND it's \"simple\"\n // (i.e., has no parameters and no related request ID that could be lost).\n const canDebounce = debouncedMethods.includes(notification.method)\n && !notification.params\n && !(options === null || options === void 0 ? void 0 : options.relatedRequestId);\n if (canDebounce) {\n // If a notification of this type is already scheduled, do nothing.\n if (this._pendingDebouncedNotifications.has(notification.method)) {\n return;\n }\n // Mark this notification type as pending.\n this._pendingDebouncedNotifications.add(notification.method);\n // Schedule the actual send to happen in the next microtask.\n // This allows all synchronous calls in the current event loop tick to be coalesced.\n Promise.resolve().then(() => {\n var _a;\n // Un-mark the notification so the next one can be scheduled.\n this._pendingDebouncedNotifications.delete(notification.method);\n // SAFETY CHECK: If the connection was closed while this was pending, abort.\n if (!this._transport) {\n return;\n }\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: \"2.0\",\n };\n // Send the notification, but don't await it here to avoid blocking.\n // Handle potential errors with a .catch().\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send(jsonrpcNotification, options).catch(error => this._onerror(error));\n });\n // Return immediately.\n return;\n }\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: \"2.0\",\n };\n await this._transport.send(jsonrpcNotification, options);\n }\n /**\n * Registers a handler to invoke when this protocol object receives a request with the given method.\n *\n * Note that this will replace any previous request handler for the same method.\n */\n setRequestHandler(requestSchema, handler) {\n const method = requestSchema.shape.method.value;\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n return Promise.resolve(handler(requestSchema.parse(request), extra));\n });\n }\n /**\n * Removes the request handler for the given method.\n */\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n /**\n * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.\n */\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n /**\n * Registers a handler to invoke when this protocol object receives a notification with the given method.\n *\n * Note that this will replace any previous notification handler for the same method.\n */\n setNotificationHandler(notificationSchema, handler) {\n this._notificationHandlers.set(notificationSchema.shape.method.value, (notification) => Promise.resolve(handler(notificationSchema.parse(notification))));\n }\n /**\n * Removes the notification handler for the given method.\n */\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n}\nexport function mergeCapabilities(base, additional) {\n return Object.entries(additional).reduce((acc, [key, value]) => {\n if (value && typeof value === \"object\") {\n acc[key] = acc[key] ? { ...acc[key], ...value } : value;\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, { ...base });\n}\n//# sourceMappingURL=protocol.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}