@ananay-nag/mcp-decorators 1.0.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 (214) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +561 -0
  3. package/banner.svg +111 -0
  4. package/dist/cjs/index.d.ts +3 -0
  5. package/dist/cjs/index.d.ts.map +1 -0
  6. package/dist/cjs/index.js +36 -0
  7. package/dist/cjs/index.js.map +1 -0
  8. package/dist/cjs/package.json +1 -0
  9. package/dist/cjs/src/client/decorators/client.decorator.d.ts +66 -0
  10. package/dist/cjs/src/client/decorators/client.decorator.d.ts.map +1 -0
  11. package/dist/cjs/src/client/decorators/client.decorator.js +206 -0
  12. package/dist/cjs/src/client/decorators/client.decorator.js.map +1 -0
  13. package/dist/cjs/src/client/decorators/index.d.ts +4 -0
  14. package/dist/cjs/src/client/decorators/index.d.ts.map +1 -0
  15. package/dist/cjs/src/client/decorators/index.js +23 -0
  16. package/dist/cjs/src/client/decorators/index.js.map +1 -0
  17. package/dist/cjs/src/client/decorators/notification.decorator.d.ts +8 -0
  18. package/dist/cjs/src/client/decorators/notification.decorator.d.ts.map +1 -0
  19. package/dist/cjs/src/client/decorators/notification.decorator.js +19 -0
  20. package/dist/cjs/src/client/decorators/notification.decorator.js.map +1 -0
  21. package/dist/cjs/src/client/decorators/requestHandler.decorator.d.ts +7 -0
  22. package/dist/cjs/src/client/decorators/requestHandler.decorator.d.ts.map +1 -0
  23. package/dist/cjs/src/client/decorators/requestHandler.decorator.js +18 -0
  24. package/dist/cjs/src/client/decorators/requestHandler.decorator.js.map +1 -0
  25. package/dist/cjs/src/client/index.d.ts +4 -0
  26. package/dist/cjs/src/client/index.d.ts.map +1 -0
  27. package/dist/cjs/src/client/index.js +20 -0
  28. package/dist/cjs/src/client/index.js.map +1 -0
  29. package/dist/cjs/src/client/types/client/client.d.ts +14 -0
  30. package/dist/cjs/src/client/types/client/client.d.ts.map +1 -0
  31. package/dist/cjs/src/client/types/client/client.js +3 -0
  32. package/dist/cjs/src/client/types/client/client.js.map +1 -0
  33. package/dist/cjs/src/client/types/index.d.ts +3 -0
  34. package/dist/cjs/src/client/types/index.d.ts.map +1 -0
  35. package/dist/cjs/src/client/types/index.js +19 -0
  36. package/dist/cjs/src/client/types/index.js.map +1 -0
  37. package/dist/cjs/src/client/utils/clientRegistry.d.ts +10 -0
  38. package/dist/cjs/src/client/utils/clientRegistry.d.ts.map +1 -0
  39. package/dist/cjs/src/client/utils/clientRegistry.js +38 -0
  40. package/dist/cjs/src/client/utils/clientRegistry.js.map +1 -0
  41. package/dist/cjs/src/client/utils/index.d.ts +2 -0
  42. package/dist/cjs/src/client/utils/index.d.ts.map +1 -0
  43. package/dist/cjs/src/client/utils/index.js +18 -0
  44. package/dist/cjs/src/client/utils/index.js.map +1 -0
  45. package/dist/cjs/src/server/decorators/action.decorator.d.ts +11 -0
  46. package/dist/cjs/src/server/decorators/action.decorator.d.ts.map +1 -0
  47. package/dist/cjs/src/server/decorators/action.decorator.js +23 -0
  48. package/dist/cjs/src/server/decorators/action.decorator.js.map +1 -0
  49. package/dist/cjs/src/server/decorators/completion.decorator.d.ts +12 -0
  50. package/dist/cjs/src/server/decorators/completion.decorator.d.ts.map +1 -0
  51. package/dist/cjs/src/server/decorators/completion.decorator.js +22 -0
  52. package/dist/cjs/src/server/decorators/completion.decorator.js.map +1 -0
  53. package/dist/cjs/src/server/decorators/index.d.ts +10 -0
  54. package/dist/cjs/src/server/decorators/index.d.ts.map +1 -0
  55. package/dist/cjs/src/server/decorators/index.js +25 -0
  56. package/dist/cjs/src/server/decorators/index.js.map +1 -0
  57. package/dist/cjs/src/server/decorators/notification.decorator.d.ts +11 -0
  58. package/dist/cjs/src/server/decorators/notification.decorator.d.ts.map +1 -0
  59. package/dist/cjs/src/server/decorators/notification.decorator.js +23 -0
  60. package/dist/cjs/src/server/decorators/notification.decorator.js.map +1 -0
  61. package/dist/cjs/src/server/decorators/prompt.decorator.d.ts +19 -0
  62. package/dist/cjs/src/server/decorators/prompt.decorator.d.ts.map +1 -0
  63. package/dist/cjs/src/server/decorators/prompt.decorator.js +23 -0
  64. package/dist/cjs/src/server/decorators/prompt.decorator.js.map +1 -0
  65. package/dist/cjs/src/server/decorators/requestHandler.decorator.d.ts +10 -0
  66. package/dist/cjs/src/server/decorators/requestHandler.decorator.d.ts.map +1 -0
  67. package/dist/cjs/src/server/decorators/requestHandler.decorator.js +33 -0
  68. package/dist/cjs/src/server/decorators/requestHandler.decorator.js.map +1 -0
  69. package/dist/cjs/src/server/decorators/resource.decorator.d.ts +27 -0
  70. package/dist/cjs/src/server/decorators/resource.decorator.d.ts.map +1 -0
  71. package/dist/cjs/src/server/decorators/resource.decorator.js +40 -0
  72. package/dist/cjs/src/server/decorators/resource.decorator.js.map +1 -0
  73. package/dist/cjs/src/server/decorators/server.decorator.d.ts +18 -0
  74. package/dist/cjs/src/server/decorators/server.decorator.d.ts.map +1 -0
  75. package/dist/cjs/src/server/decorators/server.decorator.js +385 -0
  76. package/dist/cjs/src/server/decorators/server.decorator.js.map +1 -0
  77. package/dist/cjs/src/server/decorators/subscribe.decorator.d.ts +13 -0
  78. package/dist/cjs/src/server/decorators/subscribe.decorator.d.ts.map +1 -0
  79. package/dist/cjs/src/server/decorators/subscribe.decorator.js +26 -0
  80. package/dist/cjs/src/server/decorators/subscribe.decorator.js.map +1 -0
  81. package/dist/cjs/src/server/decorators/tool.decorator.d.ts +15 -0
  82. package/dist/cjs/src/server/decorators/tool.decorator.d.ts.map +1 -0
  83. package/dist/cjs/src/server/decorators/tool.decorator.js +23 -0
  84. package/dist/cjs/src/server/decorators/tool.decorator.js.map +1 -0
  85. package/dist/cjs/src/server/index.d.ts +4 -0
  86. package/dist/cjs/src/server/index.d.ts.map +1 -0
  87. package/dist/cjs/src/server/index.js +33 -0
  88. package/dist/cjs/src/server/index.js.map +1 -0
  89. package/dist/cjs/src/server/types/index.d.ts +3 -0
  90. package/dist/cjs/src/server/types/index.d.ts.map +1 -0
  91. package/dist/cjs/src/server/types/index.js +19 -0
  92. package/dist/cjs/src/server/types/index.js.map +1 -0
  93. package/dist/cjs/src/server/types/server/index.d.ts +2 -0
  94. package/dist/cjs/src/server/types/server/index.d.ts.map +1 -0
  95. package/dist/cjs/src/server/types/server/index.js +18 -0
  96. package/dist/cjs/src/server/types/server/index.js.map +1 -0
  97. package/dist/cjs/src/server/types/server/server.d.ts +35 -0
  98. package/dist/cjs/src/server/types/server/server.d.ts.map +1 -0
  99. package/dist/cjs/src/server/types/server/server.js +3 -0
  100. package/dist/cjs/src/server/types/server/server.js.map +1 -0
  101. package/dist/cjs/src/server/utils/index.d.ts +2 -0
  102. package/dist/cjs/src/server/utils/index.d.ts.map +1 -0
  103. package/dist/cjs/src/server/utils/index.js +18 -0
  104. package/dist/cjs/src/server/utils/index.js.map +1 -0
  105. package/dist/cjs/src/server/utils/serverRegistry.d.ts +81 -0
  106. package/dist/cjs/src/server/utils/serverRegistry.d.ts.map +1 -0
  107. package/dist/cjs/src/server/utils/serverRegistry.js +151 -0
  108. package/dist/cjs/src/server/utils/serverRegistry.js.map +1 -0
  109. package/dist/esm/index.d.ts +3 -0
  110. package/dist/esm/index.d.ts.map +1 -0
  111. package/dist/esm/index.js +3 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/esm/package.json +1 -0
  114. package/dist/esm/src/client/decorators/client.decorator.d.ts +66 -0
  115. package/dist/esm/src/client/decorators/client.decorator.d.ts.map +1 -0
  116. package/dist/esm/src/client/decorators/client.decorator.js +198 -0
  117. package/dist/esm/src/client/decorators/client.decorator.js.map +1 -0
  118. package/dist/esm/src/client/decorators/index.d.ts +4 -0
  119. package/dist/esm/src/client/decorators/index.d.ts.map +1 -0
  120. package/dist/esm/src/client/decorators/index.js +4 -0
  121. package/dist/esm/src/client/decorators/index.js.map +1 -0
  122. package/dist/esm/src/client/decorators/notification.decorator.d.ts +8 -0
  123. package/dist/esm/src/client/decorators/notification.decorator.d.ts.map +1 -0
  124. package/dist/esm/src/client/decorators/notification.decorator.js +15 -0
  125. package/dist/esm/src/client/decorators/notification.decorator.js.map +1 -0
  126. package/dist/esm/src/client/decorators/requestHandler.decorator.d.ts +7 -0
  127. package/dist/esm/src/client/decorators/requestHandler.decorator.d.ts.map +1 -0
  128. package/dist/esm/src/client/decorators/requestHandler.decorator.js +14 -0
  129. package/dist/esm/src/client/decorators/requestHandler.decorator.js.map +1 -0
  130. package/dist/esm/src/client/index.d.ts +4 -0
  131. package/dist/esm/src/client/index.d.ts.map +1 -0
  132. package/dist/esm/src/client/index.js +4 -0
  133. package/dist/esm/src/client/index.js.map +1 -0
  134. package/dist/esm/src/client/types/client/client.d.ts +14 -0
  135. package/dist/esm/src/client/types/client/client.d.ts.map +1 -0
  136. package/dist/esm/src/client/types/client/client.js +2 -0
  137. package/dist/esm/src/client/types/client/client.js.map +1 -0
  138. package/dist/esm/src/client/types/index.d.ts +3 -0
  139. package/dist/esm/src/client/types/index.d.ts.map +1 -0
  140. package/dist/esm/src/client/types/index.js +3 -0
  141. package/dist/esm/src/client/types/index.js.map +1 -0
  142. package/dist/esm/src/client/utils/clientRegistry.d.ts +10 -0
  143. package/dist/esm/src/client/utils/clientRegistry.d.ts.map +1 -0
  144. package/dist/esm/src/client/utils/clientRegistry.js +33 -0
  145. package/dist/esm/src/client/utils/clientRegistry.js.map +1 -0
  146. package/dist/esm/src/client/utils/index.d.ts +2 -0
  147. package/dist/esm/src/client/utils/index.d.ts.map +1 -0
  148. package/dist/esm/src/client/utils/index.js +2 -0
  149. package/dist/esm/src/client/utils/index.js.map +1 -0
  150. package/dist/esm/src/server/decorators/action.decorator.d.ts +11 -0
  151. package/dist/esm/src/server/decorators/action.decorator.d.ts.map +1 -0
  152. package/dist/esm/src/server/decorators/action.decorator.js +19 -0
  153. package/dist/esm/src/server/decorators/action.decorator.js.map +1 -0
  154. package/dist/esm/src/server/decorators/completion.decorator.d.ts +12 -0
  155. package/dist/esm/src/server/decorators/completion.decorator.d.ts.map +1 -0
  156. package/dist/esm/src/server/decorators/completion.decorator.js +18 -0
  157. package/dist/esm/src/server/decorators/completion.decorator.js.map +1 -0
  158. package/dist/esm/src/server/decorators/index.d.ts +10 -0
  159. package/dist/esm/src/server/decorators/index.d.ts.map +1 -0
  160. package/dist/esm/src/server/decorators/index.js +10 -0
  161. package/dist/esm/src/server/decorators/index.js.map +1 -0
  162. package/dist/esm/src/server/decorators/notification.decorator.d.ts +11 -0
  163. package/dist/esm/src/server/decorators/notification.decorator.d.ts.map +1 -0
  164. package/dist/esm/src/server/decorators/notification.decorator.js +19 -0
  165. package/dist/esm/src/server/decorators/notification.decorator.js.map +1 -0
  166. package/dist/esm/src/server/decorators/prompt.decorator.d.ts +19 -0
  167. package/dist/esm/src/server/decorators/prompt.decorator.d.ts.map +1 -0
  168. package/dist/esm/src/server/decorators/prompt.decorator.js +19 -0
  169. package/dist/esm/src/server/decorators/prompt.decorator.js.map +1 -0
  170. package/dist/esm/src/server/decorators/requestHandler.decorator.d.ts +10 -0
  171. package/dist/esm/src/server/decorators/requestHandler.decorator.d.ts.map +1 -0
  172. package/dist/esm/src/server/decorators/requestHandler.decorator.js +29 -0
  173. package/dist/esm/src/server/decorators/requestHandler.decorator.js.map +1 -0
  174. package/dist/esm/src/server/decorators/resource.decorator.d.ts +27 -0
  175. package/dist/esm/src/server/decorators/resource.decorator.d.ts.map +1 -0
  176. package/dist/esm/src/server/decorators/resource.decorator.js +35 -0
  177. package/dist/esm/src/server/decorators/resource.decorator.js.map +1 -0
  178. package/dist/esm/src/server/decorators/server.decorator.d.ts +18 -0
  179. package/dist/esm/src/server/decorators/server.decorator.d.ts.map +1 -0
  180. package/dist/esm/src/server/decorators/server.decorator.js +378 -0
  181. package/dist/esm/src/server/decorators/server.decorator.js.map +1 -0
  182. package/dist/esm/src/server/decorators/subscribe.decorator.d.ts +13 -0
  183. package/dist/esm/src/server/decorators/subscribe.decorator.d.ts.map +1 -0
  184. package/dist/esm/src/server/decorators/subscribe.decorator.js +21 -0
  185. package/dist/esm/src/server/decorators/subscribe.decorator.js.map +1 -0
  186. package/dist/esm/src/server/decorators/tool.decorator.d.ts +15 -0
  187. package/dist/esm/src/server/decorators/tool.decorator.d.ts.map +1 -0
  188. package/dist/esm/src/server/decorators/tool.decorator.js +19 -0
  189. package/dist/esm/src/server/decorators/tool.decorator.js.map +1 -0
  190. package/dist/esm/src/server/index.d.ts +4 -0
  191. package/dist/esm/src/server/index.d.ts.map +1 -0
  192. package/dist/esm/src/server/index.js +4 -0
  193. package/dist/esm/src/server/index.js.map +1 -0
  194. package/dist/esm/src/server/types/index.d.ts +3 -0
  195. package/dist/esm/src/server/types/index.d.ts.map +1 -0
  196. package/dist/esm/src/server/types/index.js +3 -0
  197. package/dist/esm/src/server/types/index.js.map +1 -0
  198. package/dist/esm/src/server/types/server/index.d.ts +2 -0
  199. package/dist/esm/src/server/types/server/index.d.ts.map +1 -0
  200. package/dist/esm/src/server/types/server/index.js +2 -0
  201. package/dist/esm/src/server/types/server/index.js.map +1 -0
  202. package/dist/esm/src/server/types/server/server.d.ts +35 -0
  203. package/dist/esm/src/server/types/server/server.d.ts.map +1 -0
  204. package/dist/esm/src/server/types/server/server.js +2 -0
  205. package/dist/esm/src/server/types/server/server.js.map +1 -0
  206. package/dist/esm/src/server/utils/index.d.ts +2 -0
  207. package/dist/esm/src/server/utils/index.d.ts.map +1 -0
  208. package/dist/esm/src/server/utils/index.js +2 -0
  209. package/dist/esm/src/server/utils/index.js.map +1 -0
  210. package/dist/esm/src/server/utils/serverRegistry.d.ts +81 -0
  211. package/dist/esm/src/server/utils/serverRegistry.d.ts.map +1 -0
  212. package/dist/esm/src/server/utils/serverRegistry.js +140 -0
  213. package/dist/esm/src/server/utils/serverRegistry.js.map +1 -0
  214. package/package.json +50 -0
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseServer = exports.registerNotificationHandlers = exports.registerRequestHandlers = exports.RegisterServer = void 0;
4
+ const serverRegistry_js_1 = require("../utils/serverRegistry.js");
5
+ const zod_1 = require("zod");
6
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
7
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
8
+ const notification_decorator_js_1 = require("./notification.decorator.js");
9
+ const tool_decorator_js_1 = require("./tool.decorator.js");
10
+ const prompt_decorator_js_1 = require("./prompt.decorator.js");
11
+ const resource_decorator_js_1 = require("./resource.decorator.js");
12
+ const subscribe_decorator_js_1 = require("./subscribe.decorator.js");
13
+ const completion_decorator_js_1 = require("./completion.decorator.js");
14
+ /**
15
+ * @description
16
+ * This decorator is used to register a server instance.
17
+ * @returns {ClassDecorator} A class decorator that registers the server instance.
18
+ */
19
+ function RegisterServer() {
20
+ return function (target) {
21
+ const originalConstructor = target;
22
+ const newConstructor = function (...args) {
23
+ let serverInfo = args[0];
24
+ const instance = new originalConstructor(...args);
25
+ console.log(`[Server] Registering server "${JSON.stringify(serverInfo)}"`);
26
+ // Relaxed check to support both SDK v1 Server and SDK v2 McpServer
27
+ if (instance && (typeof instance.connect === "function")) {
28
+ (0, serverRegistry_js_1.registerServer)(serverInfo, instance);
29
+ }
30
+ return instance;
31
+ };
32
+ newConstructor.prototype = originalConstructor.prototype;
33
+ return newConstructor;
34
+ };
35
+ }
36
+ exports.RegisterServer = RegisterServer;
37
+ // Modular: Register request handlers grouped by method string + actionName
38
+ function registerRequestHandlers(target, instance, server) {
39
+ const pendingHandlers = target.prototype._pendingHandlers || [];
40
+ const actionsMap = target.prototype._actionsMap || {};
41
+ console.error("[Server Debug] pendingHandlers:", pendingHandlers);
42
+ console.error("[Server Debug] actionsMap:", actionsMap);
43
+ const methodGroups = new Map();
44
+ for (const { schema, methodName } of pendingHandlers) {
45
+ const handlerFn = instance[methodName].bind(instance);
46
+ const actionName = actionsMap[methodName];
47
+ const methodKey = typeof schema === "string"
48
+ ? schema
49
+ : (schema && schema.shape && schema.shape.method && schema.shape.method.value)
50
+ ? schema.shape.method.value
51
+ : String(schema);
52
+ if (!methodGroups.has(methodKey)) {
53
+ methodGroups.set(methodKey, {
54
+ schema: null,
55
+ handlers: {}
56
+ });
57
+ }
58
+ const group = methodGroups.get(methodKey);
59
+ if (typeof schema !== "string") {
60
+ if (!group.schema) {
61
+ group.schema = schema;
62
+ }
63
+ }
64
+ if (actionName) {
65
+ group.handlers[actionName] = handlerFn;
66
+ console.log(`[Server] ✅ Registered action "${actionName}" for method "${methodKey}" -> ${String(methodName)}`);
67
+ }
68
+ else {
69
+ group.handlers["*"] = handlerFn;
70
+ console.log(`[Server] ✅ Registered fallback for method "${methodKey}" -> ${String(methodName)}`);
71
+ }
72
+ }
73
+ // Final dispatcher setup per method
74
+ for (const [methodKey, group] of methodGroups.entries()) {
75
+ let finalSchema = group.schema;
76
+ if (!finalSchema) {
77
+ finalSchema = zod_1.z.object({
78
+ method: zod_1.z.literal(methodKey),
79
+ params: zod_1.z.any().optional(),
80
+ });
81
+ }
82
+ const dispatcher = async (request, extra) => {
83
+ var _a;
84
+ const action = (_a = request === null || request === void 0 ? void 0 : request.params) === null || _a === void 0 ? void 0 : _a.name;
85
+ const handler = group.handlers[action] || group.handlers["*"];
86
+ if (!handler) {
87
+ throw new Error(`No handler for method "${methodKey}" / action "${action}".`);
88
+ }
89
+ return handler(request, extra);
90
+ };
91
+ server.setRequestHandler(finalSchema, dispatcher);
92
+ console.log(`[Server] ✅ Bound dispatcher for method "${methodKey}"`);
93
+ }
94
+ }
95
+ exports.registerRequestHandlers = registerRequestHandlers;
96
+ // Modular: Register notification handlers
97
+ function registerNotificationHandlers(target, instance, server) {
98
+ const pendingNotifications = target.prototype[notification_decorator_js_1.NOTIFICATION_META] || [];
99
+ for (const { method, methodName } of pendingNotifications) {
100
+ const handlerFn = instance[methodName].bind(instance);
101
+ // Normalize notification method if string is passed
102
+ let normalizedSchema = method;
103
+ if (typeof method === "string") {
104
+ normalizedSchema = zod_1.z.object({
105
+ method: zod_1.z.literal(method),
106
+ params: zod_1.z.any().optional(),
107
+ });
108
+ }
109
+ server.setNotificationHandler(normalizedSchema, handlerFn);
110
+ console.log(`[Server] ✅ Registered notification "${typeof method === "string" ? method : method.shape.method.value}" -> ${String(methodName)}`);
111
+ }
112
+ }
113
+ exports.registerNotificationHandlers = registerNotificationHandlers;
114
+ /**
115
+ * @description
116
+ * This decorator is used to inject a server instance into a class.
117
+ * It fetches the server instance from the registry and injects it into the class.
118
+ * @param {UseServerOptions} options - Options for the decorator.
119
+ * @returns {ClassDecorator} A class decorator that injects the server instance.
120
+ */
121
+ function UseServer(options) {
122
+ return function (target) {
123
+ const originalConstructor = target;
124
+ function newConstructor(...args) {
125
+ const instance = new originalConstructor(...args);
126
+ if (!options.name) {
127
+ throw new Error("Server name is required in @UseServer options.");
128
+ }
129
+ const server = (0, serverRegistry_js_1.getServer)(options);
130
+ if (!server) {
131
+ throw new Error(`Server with name "${options.name}" not found.`);
132
+ }
133
+ const isMcpServer = typeof server.registerTool === "function" || typeof server.tool === "function";
134
+ const underlyingServer = server.server || server;
135
+ instance.server = server;
136
+ // 1. Register low-level Request and Notification handlers
137
+ registerRequestHandlers(target, instance, underlyingServer);
138
+ registerNotificationHandlers(target, instance, underlyingServer);
139
+ // 2. Fetch/create server registration for decorators
140
+ const reg = (0, serverRegistry_js_1.getOrCreateServerRegistration)(underlyingServer);
141
+ // 3. Register Tools
142
+ const pendingTools = target.prototype[tool_decorator_js_1.TOOL_META] || [];
143
+ for (const { options: toolOpts, methodName } of pendingTools) {
144
+ const handlerFn = instance[methodName].bind(instance);
145
+ if (isMcpServer) {
146
+ const regTool = server.registerTool || server.tool;
147
+ regTool.call(server, toolOpts.name, {
148
+ description: toolOpts.description,
149
+ inputSchema: toolOpts.inputSchema
150
+ }, (args, extra) => handlerFn(args, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
151
+ console.log(`[Server] Registered Tool Decorator "${toolOpts.name}" natively on McpServer`);
152
+ }
153
+ else {
154
+ reg.tools.set(toolOpts.name, { options: toolOpts, handler: handlerFn });
155
+ console.log(`[Server] Registered Tool Decorator "${toolOpts.name}" -> ${String(methodName)}`);
156
+ }
157
+ }
158
+ // 4. Register Prompts
159
+ const pendingPrompts = target.prototype[prompt_decorator_js_1.PROMPT_META] || [];
160
+ for (const { options: promptOpts, methodName } of pendingPrompts) {
161
+ const handlerFn = instance[methodName].bind(instance);
162
+ if (isMcpServer) {
163
+ const regPrompt = server.registerPrompt || server.prompt;
164
+ regPrompt.call(server, promptOpts.name, {
165
+ description: promptOpts.description,
166
+ arguments: promptOpts.arguments
167
+ }, (args, extra) => handlerFn(args, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
168
+ console.log(`[Server] Registered Prompt Decorator "${promptOpts.name}" natively on McpServer`);
169
+ }
170
+ else {
171
+ reg.prompts.set(promptOpts.name, { options: promptOpts, handler: handlerFn });
172
+ console.log(`[Server] Registered Prompt Decorator "${promptOpts.name}" -> ${String(methodName)}`);
173
+ }
174
+ }
175
+ // 5. Register Resources
176
+ const pendingResources = target.prototype[resource_decorator_js_1.RESOURCE_META] || [];
177
+ for (const { options: resOpts, methodName } of pendingResources) {
178
+ const handlerFn = instance[methodName].bind(instance);
179
+ if (isMcpServer) {
180
+ const regRes = server.registerResource || server.resource;
181
+ regRes.call(server, resOpts.name, resOpts.uri, {
182
+ description: resOpts.description,
183
+ mimeType: resOpts.mimeType
184
+ }, (uri, extra) => handlerFn(uri.href || String(uri), extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra));
185
+ console.log(`[Server] Registered Resource Decorator "${resOpts.uri}" natively on McpServer`);
186
+ }
187
+ else {
188
+ reg.resources.set(resOpts.uri, { options: resOpts, handler: handlerFn });
189
+ console.log(`[Server] Registered Resource Decorator "${resOpts.uri}" -> ${String(methodName)}`);
190
+ }
191
+ }
192
+ // 6. Register Resource Templates
193
+ const pendingTemplates = target.prototype[resource_decorator_js_1.RESOURCE_TEMPLATE_META] || [];
194
+ for (const { options: tempOpts, methodName } of pendingTemplates) {
195
+ const handlerFn = instance[methodName].bind(instance);
196
+ if (isMcpServer) {
197
+ const regRes = server.registerResource || server.resource;
198
+ regRes.call(server, tempOpts.name, tempOpts.uriTemplate, {
199
+ description: tempOpts.description,
200
+ mimeType: tempOpts.mimeType
201
+ }, (uri, extra) => {
202
+ const uriStr = uri.href || String(uri);
203
+ const params = (0, serverRegistry_js_1.matchUriTemplate)(tempOpts.uriTemplate, uriStr) || {};
204
+ return handlerFn(params, uriStr, extra === null || extra === void 0 ? void 0 : extra.mcpReq, extra);
205
+ });
206
+ console.log(`[Server] Registered Resource Template Decorator "${tempOpts.uriTemplate}" natively on McpServer`);
207
+ }
208
+ else {
209
+ reg.resourceTemplates.set(tempOpts.uriTemplate, { options: tempOpts, handler: handlerFn });
210
+ console.log(`[Server] Registered Resource Template Decorator "${tempOpts.uriTemplate}" -> ${String(methodName)}`);
211
+ }
212
+ }
213
+ // 7. Register Subscribe/Unsubscribe
214
+ if (target.prototype[subscribe_decorator_js_1.SUBSCRIBE_META]) {
215
+ reg.subscribeHandler = instance[target.prototype[subscribe_decorator_js_1.SUBSCRIBE_META]].bind(instance);
216
+ console.log(`[Server] Registered Subscribe Decorator -> ${String(target.prototype[subscribe_decorator_js_1.SUBSCRIBE_META])}`);
217
+ }
218
+ if (target.prototype[subscribe_decorator_js_1.UNSUBSCRIBE_META]) {
219
+ reg.unsubscribeHandler = instance[target.prototype[subscribe_decorator_js_1.UNSUBSCRIBE_META]].bind(instance);
220
+ console.log(`[Server] Registered Unsubscribe Decorator -> ${String(target.prototype[subscribe_decorator_js_1.UNSUBSCRIBE_META])}`);
221
+ }
222
+ // 8. Register Completions
223
+ const pendingCompletions = target.prototype[completion_decorator_js_1.COMPLETION_META] || [];
224
+ for (const { ref, methodName } of pendingCompletions) {
225
+ const handlerFn = instance[methodName].bind(instance);
226
+ reg.completionHandlers.push({ ref, handler: handlerFn });
227
+ console.log(`[Server] Registered Completion Decorator for "${ref.type}:${ref.name}" -> ${String(methodName)}`);
228
+ }
229
+ // 9. Auto-register capabilities dynamically (For Server v1 only)
230
+ if (!isMcpServer) {
231
+ const caps = {};
232
+ if (reg.tools.size > 0)
233
+ caps.tools = {};
234
+ if (reg.prompts.size > 0)
235
+ caps.prompts = {};
236
+ if (reg.resources.size > 0 || reg.resourceTemplates.size > 0)
237
+ caps.resources = {};
238
+ if (reg.completionHandlers.length > 0)
239
+ caps.completions = {};
240
+ if (Object.keys(caps).length > 0) {
241
+ underlyingServer.registerCapabilities(caps);
242
+ }
243
+ }
244
+ // 10. Bind Aggregated Dispatchers
245
+ bindAggregatedDispatchers(underlyingServer, reg);
246
+ return instance;
247
+ }
248
+ newConstructor.prototype = originalConstructor.prototype;
249
+ return newConstructor;
250
+ };
251
+ }
252
+ exports.UseServer = UseServer;
253
+ /**
254
+ * Binds aggregated handlers to the server for core schemas.
255
+ */
256
+ function bindAggregatedDispatchers(server, reg) {
257
+ // --- Tools Dispatchers ---
258
+ if (reg.tools.size > 0) {
259
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
260
+ const tools = Array.from(reg.tools.values()).map((t) => {
261
+ let inputSchema = { type: "object", properties: {} };
262
+ if (t.options.inputSchema) {
263
+ if (t.options.inputSchema._def || t.options.inputSchema._zod) {
264
+ inputSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(t.options.inputSchema);
265
+ }
266
+ else {
267
+ inputSchema = t.options.inputSchema;
268
+ }
269
+ }
270
+ return {
271
+ name: t.options.name,
272
+ description: t.options.description,
273
+ inputSchema
274
+ };
275
+ });
276
+ return { tools };
277
+ });
278
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
279
+ const toolName = request.params.name;
280
+ const tool = reg.tools.get(toolName);
281
+ if (!tool) {
282
+ throw new Error(`Tool "${toolName}" not found.`);
283
+ }
284
+ return tool.handler(request.params.arguments || {}, request, extra);
285
+ });
286
+ }
287
+ // --- Prompts Dispatchers ---
288
+ if (reg.prompts.size > 0) {
289
+ server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => {
290
+ const prompts = Array.from(reg.prompts.values()).map((p) => ({
291
+ name: p.options.name,
292
+ description: p.options.description,
293
+ arguments: p.options.arguments
294
+ }));
295
+ return { prompts };
296
+ });
297
+ server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request, extra) => {
298
+ const promptName = request.params.name;
299
+ const prompt = reg.prompts.get(promptName);
300
+ if (!prompt) {
301
+ throw new Error(`Prompt "${promptName}" not found.`);
302
+ }
303
+ return prompt.handler(request.params.arguments || {}, request, extra);
304
+ });
305
+ }
306
+ // --- Resources & Templates Dispatchers ---
307
+ if (reg.resources.size > 0 || reg.resourceTemplates.size > 0) {
308
+ server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => {
309
+ const resources = Array.from(reg.resources.values()).map((r) => ({
310
+ uri: r.options.uri,
311
+ name: r.options.name,
312
+ description: r.options.description,
313
+ mimeType: r.options.mimeType
314
+ }));
315
+ return { resources };
316
+ });
317
+ server.setRequestHandler(types_js_1.ListResourceTemplatesRequestSchema, async () => {
318
+ const resourceTemplates = Array.from(reg.resourceTemplates.values()).map((rt) => ({
319
+ uriTemplate: rt.options.uriTemplate,
320
+ name: rt.options.name,
321
+ description: rt.options.description,
322
+ mimeType: rt.options.mimeType
323
+ }));
324
+ return { resourceTemplates };
325
+ });
326
+ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request, extra) => {
327
+ const uri = request.params.uri;
328
+ const resource = reg.resources.get(uri);
329
+ if (resource) {
330
+ return resource.handler(uri, request, extra);
331
+ }
332
+ for (const [uriTemplate, template] of reg.resourceTemplates.entries()) {
333
+ const params = (0, serverRegistry_js_1.matchUriTemplate)(uriTemplate, uri);
334
+ if (params) {
335
+ return template.handler(params, uri, request, extra);
336
+ }
337
+ }
338
+ throw new Error(`Resource "${uri}" not found.`);
339
+ });
340
+ }
341
+ // --- Subscriptions Dispatchers ---
342
+ server.setRequestHandler(types_js_1.SubscribeRequestSchema, async (request, extra) => {
343
+ const { uri } = request.params;
344
+ const sessionId = extra.sessionId || "default";
345
+ if (!reg.subscribers.has(uri)) {
346
+ reg.subscribers.set(uri, new Set());
347
+ }
348
+ reg.subscribers.get(uri).add(sessionId);
349
+ if (reg.subscribeHandler) {
350
+ const res = await reg.subscribeHandler(uri, request, extra);
351
+ return res !== undefined ? res : {};
352
+ }
353
+ return {};
354
+ });
355
+ server.setRequestHandler(types_js_1.UnsubscribeRequestSchema, async (request, extra) => {
356
+ const { uri } = request.params;
357
+ const sessionId = extra.sessionId || "default";
358
+ if (reg.subscribers.has(uri)) {
359
+ reg.subscribers.get(uri).delete(sessionId);
360
+ }
361
+ if (reg.unsubscribeHandler) {
362
+ const res = await reg.unsubscribeHandler(uri, request, extra);
363
+ return res !== undefined ? res : {};
364
+ }
365
+ return {};
366
+ });
367
+ // --- Completion Dispatchers ---
368
+ if (reg.completionHandlers.length > 0) {
369
+ server.setRequestHandler(types_js_1.CompleteRequestSchema, async (request, extra) => {
370
+ const { ref, argument } = request.params;
371
+ const normalizedType = ref.type === "ref/prompt" ? "prompt" : ref.type === "ref/resource" ? "resource" : ref.type;
372
+ const refName = ref.type === "ref/prompt" ? ref.name : ref.type === "ref/resource" ? ref.uri : "";
373
+ for (const item of reg.completionHandlers) {
374
+ if (item.ref.type === normalizedType && item.ref.name === refName) {
375
+ return item.handler({
376
+ argument: argument.name,
377
+ value: argument.value
378
+ }, request, extra);
379
+ }
380
+ }
381
+ return { completion: { values: [] } };
382
+ });
383
+ }
384
+ }
385
+ //# sourceMappingURL=server.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/server.decorator.ts"],"names":[],"mappings":";;;AAAA,kEAAwH;AAGxH,6BAAwB;AACxB,2DAAqD;AACrD,iEAW4C;AAE5C,2EAAgE;AAChE,2DAAgD;AAChD,+DAAoD;AACpD,mEAAgF;AAChF,qEAA4E;AAC5E,uEAA4D;AAE5D;;;;GAIG;AACH,SAAgB,cAAc;IAC5B,OAAO,UAAU,MAAW;QAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC;QAEnC,MAAM,cAAc,GAAQ,UAAU,GAAG,IAAW;YAClD,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAE3E,mEAAmE;YACnE,IAAI,QAAQ,IAAI,CAAC,OAAQ,QAAgB,CAAC,OAAO,KAAK,UAAU,CAAC,EAAE;gBACjE,IAAA,kCAAc,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;aACtC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,cAAc,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;QACzD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AApBD,wCAoBC;AAED,2EAA2E;AAC3E,SAAgB,uBAAuB,CAAC,MAAW,EAAE,QAAa,EAAE,MAAW;IAC7E,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;IAEtD,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,eAAe,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,IAAI,GAAG,EAGxB,CAAC;IAEL,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,eAAe,EAAE;QACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ;YAC1C,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5E,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;gBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE;gBAC1B,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;SACJ;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAE3C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACjB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;aACvB;SACF;QAED,IAAI,UAAU,EAAE;YACd,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,iBAAiB,SAAS,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAChH;aAAM;YACL,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,8CAA8C,SAAS,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAClG;KACF;IAED,oCAAoC;IACpC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;QACvD,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;gBACrB,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC5B,MAAM,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CAAC;SACJ;QAED,MAAM,UAAU,GAAG,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;;YACpD,MAAM,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,IAAI,CAAC;YACrC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,eAAe,MAAM,IAAI,CAAC,CAAC;aAC/E;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,2CAA2C,SAAS,GAAG,CAAC,CAAC;KACtE;AACH,CAAC;AApED,0DAoEC;AAED,0CAA0C;AAC1C,SAAgB,4BAA4B,CAAC,MAAW,EAAE,QAAa,EAAE,MAAW;IAClF,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,6CAAiB,CAAC,IAAI,EAAE,CAAC;IAEvE,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,oBAAoB,EAAE;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtD,oDAAoD;QACpD,IAAI,gBAAgB,GAAG,MAAM,CAAC;QAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzB,MAAM,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC3B,CAAC,CAAC;SACJ;QAED,MAAM,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;KACjJ;AACH,CAAC;AAlBD,oEAkBC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,OAAyB;IACjD,OAAO,UAAU,MAAW;QAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC;QAEnC,SAAS,cAAc,CAAC,GAAG,IAAW;YACpC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;aACnE;YAED,MAAM,MAAM,GAAQ,IAAA,6BAAS,EAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC;aAClE;YAED,MAAM,WAAW,GAAG,OAAQ,MAAc,CAAC,YAAY,KAAK,UAAU,IAAI,OAAQ,MAAc,CAAC,IAAI,KAAK,UAAU,CAAC;YACrH,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;YACjD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;YAEzB,0DAA0D;YAC1D,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC5D,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAEjE,qDAAqD;YACrD,MAAM,GAAG,GAAG,IAAA,iDAA6B,EAAC,gBAAgB,CAAC,CAAC;YAE5D,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,6BAAS,CAAC,IAAI,EAAE,CAAC;YACvD,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,YAAY,EAAE;gBAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,WAAW,EAAE;oBACf,MAAM,OAAO,GAAI,MAAc,CAAC,YAAY,IAAK,MAAc,CAAC,IAAI,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;wBAClC,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC,EAAE,CAAC,IAAS,EAAE,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,uCAAuC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;iBAC5F;qBAAM;oBACL,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,uCAAuC,QAAQ,CAAC,IAAI,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;iBAC/F;aACF;YAED,sBAAsB;YACtB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,iCAAW,CAAC,IAAI,EAAE,CAAC;YAC3D,KAAK,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,cAAc,EAAE;gBAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,WAAW,EAAE;oBACf,MAAM,SAAS,GAAI,MAAc,CAAC,cAAc,IAAK,MAAc,CAAC,MAAM,CAAC;oBAC3E,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE;wBACtC,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,SAAS,EAAE,UAAU,CAAC,SAAS;qBAChC,EAAE,CAAC,IAAS,EAAE,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,yCAAyC,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAC;iBAChG;qBAAM;oBACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,yCAAyC,UAAU,CAAC,IAAI,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;iBACnG;aACF;YAED,wBAAwB;YACxB,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,qCAAa,CAAC,IAAI,EAAE,CAAC;YAC/D,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,gBAAgB,EAAE;gBAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,WAAW,EAAE;oBACf,MAAM,MAAM,GAAI,MAAc,CAAC,gBAAgB,IAAK,MAAc,CAAC,QAAQ,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;wBAC7C,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;qBAC3B,EAAE,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;oBACvF,OAAO,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,GAAG,yBAAyB,CAAC,CAAC;iBAC9F;qBAAM;oBACL,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,GAAG,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;iBACjG;aACF;YAED,iCAAiC;YACjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,8CAAsB,CAAC,IAAI,EAAE,CAAC;YACxE,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,gBAAgB,EAAE;gBAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,WAAW,EAAE;oBACf,MAAM,MAAM,GAAI,MAAc,CAAC,gBAAgB,IAAK,MAAc,CAAC,QAAQ,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE;wBACvD,WAAW,EAAE,QAAQ,CAAC,WAAW;wBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC5B,EAAE,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;wBAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;wBACvC,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;wBACpE,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,oDAAoD,QAAQ,CAAC,WAAW,yBAAyB,CAAC,CAAC;iBAChH;qBAAM;oBACL,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC3F,OAAO,CAAC,GAAG,CAAC,oDAAoD,QAAQ,CAAC,WAAW,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;iBACnH;aACF;YAED,oCAAoC;YACpC,IAAI,MAAM,CAAC,SAAS,CAAC,uCAAc,CAAC,EAAE;gBACpC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,uCAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjF,OAAO,CAAC,GAAG,CAAC,8CAA8C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,uCAAc,CAAC,CAAC,EAAE,CAAC,CAAC;aACvG;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,yCAAgB,CAAC,EAAE;gBACtC,GAAG,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,yCAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,yCAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3G;YAED,0BAA0B;YAC1B,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,yCAAe,CAAC,IAAI,EAAE,CAAC;YACnE,KAAK,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,kBAAkB,EAAE;gBACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iDAAiD,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aAChH;YAED,iEAAiE;YACjE,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,GAAQ,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;oBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;oBAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;oBAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBAClF,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;oBAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBAE7D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;iBAC7C;aACF;YAED,kCAAkC;YAClC,yBAAyB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAEjD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,cAAc,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;QACzD,OAAO,cAAqB,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AA3ID,8BA2IC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,MAAW,EAAE,GAAQ;IACtD,4BAA4B;IAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;QACtB,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;gBAC1D,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;gBACrD,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE;oBACzB,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;wBAC5D,WAAW,GAAG,IAAA,oCAAe,EAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAQ,CAAC;qBAC7D;yBAAM;wBACL,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;qBACrC;iBACF;gBACD,OAAO;oBACL,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;oBACpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;oBAClC,WAAW;iBACZ,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;YACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,cAAc,CAAC,CAAC;aAClD;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;KACJ;IAED,8BAA8B;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE;QACxB,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAChE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBAClC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS;aAC/B,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;YAClF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;aACtD;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;KACJ;IAED,4CAA4C;IAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE;QAC5D,MAAM,CAAC,iBAAiB,CAAC,qCAA0B,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBACpE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG;gBAClB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;aAC7B,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,6CAAkC,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;gBACrF,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW;gBACnC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI;gBACrB,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW;gBACnC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;aAC9B,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,oCAAyB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;YACrF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE;gBACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aAC9C;YAED,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE;gBACrE,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAClD,IAAI,MAAM,EAAE;oBACV,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;iBACtD;aACF;YAED,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;KACJ;IAED,oCAAoC;IACpC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;QAClF,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;QAE/C,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;SACrC;QACD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,GAAG,CAAC,gBAAgB,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;QACpF,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;QAE/C,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5B,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC7C;QAED,IAAI,GAAG,CAAC,kBAAkB,EAAE;YAC1B,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAY,EAAE,KAAU,EAAE,EAAE;YACjF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAa,CAAC;YAChD,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAClH,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAElG,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,kBAAkB,EAAE;gBACzC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjE,OAAO,IAAI,CAAC,OAAO,CACjB;wBACE,QAAQ,EAAE,QAAQ,CAAC,IAAI;wBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACtB,EACD,OAAO,EACP,KAAK,CACN,CAAC;iBACH;aACF;YACD,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const SUBSCRIBE_META: unique symbol;
2
+ export declare const UNSUBSCRIBE_META: unique symbol;
3
+ /**
4
+ * @description
5
+ * Decorator to register a method as an MCP Resource Subscribe handler.
6
+ */
7
+ export declare function Subscribe(): MethodDecorator;
8
+ /**
9
+ * @description
10
+ * Decorator to register a method as an MCP Resource Unsubscribe handler.
11
+ */
12
+ export declare function Unsubscribe(): MethodDecorator;
13
+ //# sourceMappingURL=subscribe.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/server/decorators/subscribe.decorator.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAAyB,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAA2B,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAI3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAI7C"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Unsubscribe = exports.Subscribe = exports.UNSUBSCRIBE_META = exports.SUBSCRIBE_META = void 0;
4
+ exports.SUBSCRIBE_META = Symbol("mcpSubscribe");
5
+ exports.UNSUBSCRIBE_META = Symbol("mcpUnsubscribe");
6
+ /**
7
+ * @description
8
+ * Decorator to register a method as an MCP Resource Subscribe handler.
9
+ */
10
+ function Subscribe() {
11
+ return function (target, propertyKey) {
12
+ target[exports.SUBSCRIBE_META] = propertyKey;
13
+ };
14
+ }
15
+ exports.Subscribe = Subscribe;
16
+ /**
17
+ * @description
18
+ * Decorator to register a method as an MCP Resource Unsubscribe handler.
19
+ */
20
+ function Unsubscribe() {
21
+ return function (target, propertyKey) {
22
+ target[exports.UNSUBSCRIBE_META] = propertyKey;
23
+ };
24
+ }
25
+ exports.Unsubscribe = Unsubscribe;
26
+ //# sourceMappingURL=subscribe.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/subscribe.decorator.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,QAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzD;;;GAGG;AACH,SAAgB,SAAS;IACvB,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,MAAM,CAAC,sBAAc,CAAC,GAAG,WAAW,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAJD,8BAIC;AAED;;;GAGG;AACH,SAAgB,WAAW;IACzB,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,MAAM,CAAC,wBAAgB,CAAC,GAAG,WAAW,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ export interface ToolOptions {
3
+ name: string;
4
+ description: string;
5
+ inputSchema?: Record<string, any> | z.ZodObject<any>;
6
+ }
7
+ export declare const TOOL_META: unique symbol;
8
+ /**
9
+ * @description
10
+ * Decorator to register a method as an MCP Tool.
11
+ * Handlers are dynamically collected and registered on the server.
12
+ * @param options - Options for the tool including name, description, and schema.
13
+ */
14
+ export declare function Tool(options: ToolOptions): MethodDecorator;
15
+ //# sourceMappingURL=tool.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/server/decorators/tool.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACtD;AAED,eAAO,MAAM,SAAS,eAAqB,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAU1D"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tool = exports.TOOL_META = void 0;
4
+ exports.TOOL_META = Symbol("mcpTools");
5
+ /**
6
+ * @description
7
+ * Decorator to register a method as an MCP Tool.
8
+ * Handlers are dynamically collected and registered on the server.
9
+ * @param options - Options for the tool including name, description, and schema.
10
+ */
11
+ function Tool(options) {
12
+ return function (target, propertyKey) {
13
+ if (!target[exports.TOOL_META]) {
14
+ target[exports.TOOL_META] = [];
15
+ }
16
+ target[exports.TOOL_META].push({
17
+ options,
18
+ methodName: propertyKey,
19
+ });
20
+ };
21
+ }
22
+ exports.Tool = Tool;
23
+ //# sourceMappingURL=tool.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.js","sourceRoot":"","sources":["../../../../../src/server/decorators/tool.decorator.ts"],"names":[],"mappings":";;;AAQa,QAAA,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,SAAgB,IAAI,CAAC,OAAoB;IACvC,OAAO,UAAU,MAAW,EAAE,WAA4B;QACxD,IAAI,CAAC,MAAM,CAAC,iBAAS,CAAC,EAAE;YACtB,MAAM,CAAC,iBAAS,CAAC,GAAG,EAAE,CAAC;SACxB;QACD,MAAM,CAAC,iBAAS,CAAC,CAAC,IAAI,CAAC;YACrB,OAAO;YACP,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAVD,oBAUC"}
@@ -0,0 +1,4 @@
1
+ export * from "./types/index.js";
2
+ export * from "./utils/index.js";
3
+ export { RequestHandler, RegisterServer, UseServer, ActionHandler, NotificationHandler, Tool, Prompt, Resource, ResourceTemplate, Subscribe, Unsubscribe, Completion } from "./decorators/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,UAAU,EACX,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Completion = exports.Unsubscribe = exports.Subscribe = exports.ResourceTemplate = exports.Resource = exports.Prompt = exports.Tool = exports.NotificationHandler = exports.ActionHandler = exports.UseServer = exports.RegisterServer = exports.RequestHandler = void 0;
18
+ __exportStar(require("./types/index.js"), exports);
19
+ __exportStar(require("./utils/index.js"), exports);
20
+ var index_js_1 = require("./decorators/index.js");
21
+ Object.defineProperty(exports, "RequestHandler", { enumerable: true, get: function () { return index_js_1.RequestHandler; } });
22
+ Object.defineProperty(exports, "RegisterServer", { enumerable: true, get: function () { return index_js_1.RegisterServer; } });
23
+ Object.defineProperty(exports, "UseServer", { enumerable: true, get: function () { return index_js_1.UseServer; } });
24
+ Object.defineProperty(exports, "ActionHandler", { enumerable: true, get: function () { return index_js_1.ActionHandler; } });
25
+ Object.defineProperty(exports, "NotificationHandler", { enumerable: true, get: function () { return index_js_1.NotificationHandler; } });
26
+ Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return index_js_1.Tool; } });
27
+ Object.defineProperty(exports, "Prompt", { enumerable: true, get: function () { return index_js_1.Prompt; } });
28
+ Object.defineProperty(exports, "Resource", { enumerable: true, get: function () { return index_js_1.Resource; } });
29
+ Object.defineProperty(exports, "ResourceTemplate", { enumerable: true, get: function () { return index_js_1.ResourceTemplate; } });
30
+ Object.defineProperty(exports, "Subscribe", { enumerable: true, get: function () { return index_js_1.Subscribe; } });
31
+ Object.defineProperty(exports, "Unsubscribe", { enumerable: true, get: function () { return index_js_1.Unsubscribe; } });
32
+ Object.defineProperty(exports, "Completion", { enumerable: true, get: function () { return index_js_1.Completion; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,mDAAiC;AACjC,kDAa+B;AAZ7B,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,qGAAA,SAAS,OAAA;AACT,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,gGAAA,IAAI,OAAA;AACJ,kGAAA,MAAM,OAAA;AACN,oGAAA,QAAQ,OAAA;AACR,4GAAA,gBAAgB,OAAA;AAChB,qGAAA,SAAS,OAAA;AACT,uGAAA,WAAW,OAAA;AACX,sGAAA,UAAU,OAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "@modelcontextprotocol/sdk/types.js";
2
+ export * from "./server/server.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@modelcontextprotocol/sdk/types.js"), exports);
18
+ __exportStar(require("./server/server.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/server/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAkD;AAClD,qDAAkC"}
@@ -0,0 +1,2 @@
1
+ export * from "./server.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/types/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./server.js"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/types/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B"}