nitrostack 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 (290) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/CONTRIBUTING.md +182 -0
  3. package/LICENSE +201 -0
  4. package/LICENSE_URLS_UPDATE_COMPLETE.md +388 -0
  5. package/NOTICE +153 -0
  6. package/README.md +571 -0
  7. package/dist/auth/api-key.d.ts +118 -0
  8. package/dist/auth/api-key.d.ts.map +1 -0
  9. package/dist/auth/api-key.js +168 -0
  10. package/dist/auth/api-key.js.map +1 -0
  11. package/dist/auth/client.d.ts +151 -0
  12. package/dist/auth/client.d.ts.map +1 -0
  13. package/dist/auth/client.js +330 -0
  14. package/dist/auth/client.js.map +1 -0
  15. package/dist/auth/index.d.ts +30 -0
  16. package/dist/auth/index.d.ts.map +1 -0
  17. package/dist/auth/index.js +43 -0
  18. package/dist/auth/index.js.map +1 -0
  19. package/dist/auth/middleware.d.ts +95 -0
  20. package/dist/auth/middleware.d.ts.map +1 -0
  21. package/dist/auth/middleware.js +260 -0
  22. package/dist/auth/middleware.js.map +1 -0
  23. package/dist/auth/pkce.d.ts +53 -0
  24. package/dist/auth/pkce.d.ts.map +1 -0
  25. package/dist/auth/pkce.js +105 -0
  26. package/dist/auth/pkce.js.map +1 -0
  27. package/dist/auth/quick-setup.d.ts +94 -0
  28. package/dist/auth/quick-setup.d.ts.map +1 -0
  29. package/dist/auth/quick-setup.js +210 -0
  30. package/dist/auth/quick-setup.js.map +1 -0
  31. package/dist/auth/server-integration.d.ts +97 -0
  32. package/dist/auth/server-integration.d.ts.map +1 -0
  33. package/dist/auth/server-integration.js +182 -0
  34. package/dist/auth/server-integration.js.map +1 -0
  35. package/dist/auth/server-metadata.d.ts +51 -0
  36. package/dist/auth/server-metadata.d.ts.map +1 -0
  37. package/dist/auth/server-metadata.js +106 -0
  38. package/dist/auth/server-metadata.js.map +1 -0
  39. package/dist/auth/simple-jwt.d.ts +88 -0
  40. package/dist/auth/simple-jwt.d.ts.map +1 -0
  41. package/dist/auth/simple-jwt.js +152 -0
  42. package/dist/auth/simple-jwt.js.map +1 -0
  43. package/dist/auth/token-store.d.ts +104 -0
  44. package/dist/auth/token-store.d.ts.map +1 -0
  45. package/dist/auth/token-store.js +205 -0
  46. package/dist/auth/token-store.js.map +1 -0
  47. package/dist/auth/token-validation.d.ts +47 -0
  48. package/dist/auth/token-validation.d.ts.map +1 -0
  49. package/dist/auth/token-validation.js +237 -0
  50. package/dist/auth/token-validation.js.map +1 -0
  51. package/dist/auth/types.d.ts +215 -0
  52. package/dist/auth/types.d.ts.map +1 -0
  53. package/dist/auth/types.js +6 -0
  54. package/dist/auth/types.js.map +1 -0
  55. package/dist/cli/commands/build.d.ts +6 -0
  56. package/dist/cli/commands/build.d.ts.map +1 -0
  57. package/dist/cli/commands/build.js +104 -0
  58. package/dist/cli/commands/build.js.map +1 -0
  59. package/dist/cli/commands/dev.d.ts +7 -0
  60. package/dist/cli/commands/dev.d.ts.map +1 -0
  61. package/dist/cli/commands/dev.js +312 -0
  62. package/dist/cli/commands/dev.js.map +1 -0
  63. package/dist/cli/commands/generate-types.d.ts +8 -0
  64. package/dist/cli/commands/generate-types.d.ts.map +1 -0
  65. package/dist/cli/commands/generate-types.js +220 -0
  66. package/dist/cli/commands/generate-types.js.map +1 -0
  67. package/dist/cli/commands/generate.d.ts +5 -0
  68. package/dist/cli/commands/generate.d.ts.map +1 -0
  69. package/dist/cli/commands/generate.js +365 -0
  70. package/dist/cli/commands/generate.js.map +1 -0
  71. package/dist/cli/commands/init.d.ts +7 -0
  72. package/dist/cli/commands/init.d.ts.map +1 -0
  73. package/dist/cli/commands/init.js +365 -0
  74. package/dist/cli/commands/init.js.map +1 -0
  75. package/dist/cli/commands/start.d.ts +6 -0
  76. package/dist/cli/commands/start.d.ts.map +1 -0
  77. package/dist/cli/commands/start.js +61 -0
  78. package/dist/cli/commands/start.js.map +1 -0
  79. package/dist/cli/index.d.ts +3 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +47 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/mcp-dev-wrapper.d.ts +3 -0
  84. package/dist/cli/mcp-dev-wrapper.d.ts.map +1 -0
  85. package/dist/cli/mcp-dev-wrapper.js +116 -0
  86. package/dist/cli/mcp-dev-wrapper.js.map +1 -0
  87. package/dist/core/apikey-module.d.ts +69 -0
  88. package/dist/core/apikey-module.d.ts.map +1 -0
  89. package/dist/core/apikey-module.js +114 -0
  90. package/dist/core/apikey-module.js.map +1 -0
  91. package/dist/core/app-decorator.d.ts +58 -0
  92. package/dist/core/app-decorator.d.ts.map +1 -0
  93. package/dist/core/app-decorator.js +261 -0
  94. package/dist/core/app-decorator.js.map +1 -0
  95. package/dist/core/builders.d.ts +38 -0
  96. package/dist/core/builders.d.ts.map +1 -0
  97. package/dist/core/builders.js +129 -0
  98. package/dist/core/builders.js.map +1 -0
  99. package/dist/core/component.d.ts +105 -0
  100. package/dist/core/component.d.ts.map +1 -0
  101. package/dist/core/component.js +182 -0
  102. package/dist/core/component.js.map +1 -0
  103. package/dist/core/config-module.d.ts +55 -0
  104. package/dist/core/config-module.d.ts.map +1 -0
  105. package/dist/core/config-module.js +94 -0
  106. package/dist/core/config-module.js.map +1 -0
  107. package/dist/core/decorators/cache.decorator.d.ts +61 -0
  108. package/dist/core/decorators/cache.decorator.d.ts.map +1 -0
  109. package/dist/core/decorators/cache.decorator.js +115 -0
  110. package/dist/core/decorators/cache.decorator.js.map +1 -0
  111. package/dist/core/decorators/health-check.decorator.d.ts +80 -0
  112. package/dist/core/decorators/health-check.decorator.d.ts.map +1 -0
  113. package/dist/core/decorators/health-check.decorator.js +153 -0
  114. package/dist/core/decorators/health-check.decorator.js.map +1 -0
  115. package/dist/core/decorators/rate-limit.decorator.d.ts +62 -0
  116. package/dist/core/decorators/rate-limit.decorator.d.ts.map +1 -0
  117. package/dist/core/decorators/rate-limit.decorator.js +129 -0
  118. package/dist/core/decorators/rate-limit.decorator.js.map +1 -0
  119. package/dist/core/decorators.d.ts +151 -0
  120. package/dist/core/decorators.d.ts.map +1 -0
  121. package/dist/core/decorators.js +142 -0
  122. package/dist/core/decorators.js.map +1 -0
  123. package/dist/core/di/container.d.ts +42 -0
  124. package/dist/core/di/container.d.ts.map +1 -0
  125. package/dist/core/di/container.js +76 -0
  126. package/dist/core/di/container.js.map +1 -0
  127. package/dist/core/di/injectable.decorator.d.ts +35 -0
  128. package/dist/core/di/injectable.decorator.d.ts.map +1 -0
  129. package/dist/core/di/injectable.decorator.js +57 -0
  130. package/dist/core/di/injectable.decorator.js.map +1 -0
  131. package/dist/core/errors.d.ts +54 -0
  132. package/dist/core/errors.d.ts.map +1 -0
  133. package/dist/core/errors.js +87 -0
  134. package/dist/core/errors.js.map +1 -0
  135. package/dist/core/events/event-emitter.d.ts +50 -0
  136. package/dist/core/events/event-emitter.d.ts.map +1 -0
  137. package/dist/core/events/event-emitter.js +94 -0
  138. package/dist/core/events/event-emitter.js.map +1 -0
  139. package/dist/core/events/event.decorator.d.ts +48 -0
  140. package/dist/core/events/event.decorator.d.ts.map +1 -0
  141. package/dist/core/events/event.decorator.js +68 -0
  142. package/dist/core/events/event.decorator.js.map +1 -0
  143. package/dist/core/filters/exception-filter.decorator.d.ts +40 -0
  144. package/dist/core/filters/exception-filter.decorator.d.ts.map +1 -0
  145. package/dist/core/filters/exception-filter.decorator.js +54 -0
  146. package/dist/core/filters/exception-filter.decorator.js.map +1 -0
  147. package/dist/core/filters/exception-filter.interface.d.ts +30 -0
  148. package/dist/core/filters/exception-filter.interface.d.ts.map +1 -0
  149. package/dist/core/filters/exception-filter.interface.js +2 -0
  150. package/dist/core/filters/exception-filter.interface.js.map +1 -0
  151. package/dist/core/guards/apikey.guard.d.ts +22 -0
  152. package/dist/core/guards/apikey.guard.d.ts.map +1 -0
  153. package/dist/core/guards/apikey.guard.js +11 -0
  154. package/dist/core/guards/apikey.guard.js.map +1 -0
  155. package/dist/core/guards/guard.interface.d.ts +18 -0
  156. package/dist/core/guards/guard.interface.d.ts.map +1 -0
  157. package/dist/core/guards/guard.interface.js +2 -0
  158. package/dist/core/guards/guard.interface.js.map +1 -0
  159. package/dist/core/guards/jwt.guard.d.ts +18 -0
  160. package/dist/core/guards/jwt.guard.d.ts.map +1 -0
  161. package/dist/core/guards/jwt.guard.js +2 -0
  162. package/dist/core/guards/jwt.guard.js.map +1 -0
  163. package/dist/core/guards/oauth.guard.d.ts +35 -0
  164. package/dist/core/guards/oauth.guard.d.ts.map +1 -0
  165. package/dist/core/guards/oauth.guard.js +2 -0
  166. package/dist/core/guards/oauth.guard.js.map +1 -0
  167. package/dist/core/guards/use-guards.decorator.d.ts +25 -0
  168. package/dist/core/guards/use-guards.decorator.d.ts.map +1 -0
  169. package/dist/core/guards/use-guards.decorator.js +32 -0
  170. package/dist/core/guards/use-guards.decorator.js.map +1 -0
  171. package/dist/core/health/health-checks.resource.d.ts +14 -0
  172. package/dist/core/health/health-checks.resource.d.ts.map +1 -0
  173. package/dist/core/health/health-checks.resource.js +29 -0
  174. package/dist/core/health/health-checks.resource.js.map +1 -0
  175. package/dist/core/index.d.ts +55 -0
  176. package/dist/core/index.d.ts.map +1 -0
  177. package/dist/core/index.js +57 -0
  178. package/dist/core/index.js.map +1 -0
  179. package/dist/core/interceptors/interceptor.decorator.d.ts +37 -0
  180. package/dist/core/interceptors/interceptor.decorator.d.ts.map +1 -0
  181. package/dist/core/interceptors/interceptor.decorator.js +51 -0
  182. package/dist/core/interceptors/interceptor.decorator.js.map +1 -0
  183. package/dist/core/interceptors/interceptor.interface.d.ts +31 -0
  184. package/dist/core/interceptors/interceptor.interface.d.ts.map +1 -0
  185. package/dist/core/interceptors/interceptor.interface.js +2 -0
  186. package/dist/core/interceptors/interceptor.interface.js.map +1 -0
  187. package/dist/core/jwt-module.d.ts +51 -0
  188. package/dist/core/jwt-module.d.ts.map +1 -0
  189. package/dist/core/jwt-module.js +52 -0
  190. package/dist/core/jwt-module.js.map +1 -0
  191. package/dist/core/logger.d.ts +18 -0
  192. package/dist/core/logger.d.ts.map +1 -0
  193. package/dist/core/logger.js +51 -0
  194. package/dist/core/logger.js.map +1 -0
  195. package/dist/core/middleware/middleware.decorator.d.ts +39 -0
  196. package/dist/core/middleware/middleware.decorator.d.ts.map +1 -0
  197. package/dist/core/middleware/middleware.decorator.js +53 -0
  198. package/dist/core/middleware/middleware.decorator.js.map +1 -0
  199. package/dist/core/middleware/middleware.interface.d.ts +29 -0
  200. package/dist/core/middleware/middleware.interface.d.ts.map +1 -0
  201. package/dist/core/middleware/middleware.interface.js +2 -0
  202. package/dist/core/middleware/middleware.interface.js.map +1 -0
  203. package/dist/core/module.d.ts +74 -0
  204. package/dist/core/module.d.ts.map +1 -0
  205. package/dist/core/module.js +82 -0
  206. package/dist/core/module.js.map +1 -0
  207. package/dist/core/oauth-module.d.ts +144 -0
  208. package/dist/core/oauth-module.d.ts.map +1 -0
  209. package/dist/core/oauth-module.js +190 -0
  210. package/dist/core/oauth-module.js.map +1 -0
  211. package/dist/core/pipes/pipe.decorator.d.ts +55 -0
  212. package/dist/core/pipes/pipe.decorator.d.ts.map +1 -0
  213. package/dist/core/pipes/pipe.decorator.js +85 -0
  214. package/dist/core/pipes/pipe.decorator.js.map +1 -0
  215. package/dist/core/pipes/pipe.interface.d.ts +36 -0
  216. package/dist/core/pipes/pipe.interface.d.ts.map +1 -0
  217. package/dist/core/pipes/pipe.interface.js +2 -0
  218. package/dist/core/pipes/pipe.interface.js.map +1 -0
  219. package/dist/core/prompt.d.ts +37 -0
  220. package/dist/core/prompt.d.ts.map +1 -0
  221. package/dist/core/prompt.js +76 -0
  222. package/dist/core/prompt.js.map +1 -0
  223. package/dist/core/resource.d.ts +42 -0
  224. package/dist/core/resource.d.ts.map +1 -0
  225. package/dist/core/resource.js +90 -0
  226. package/dist/core/resource.js.map +1 -0
  227. package/dist/core/server.d.ts +72 -0
  228. package/dist/core/server.d.ts.map +1 -0
  229. package/dist/core/server.js +406 -0
  230. package/dist/core/server.js.map +1 -0
  231. package/dist/core/tool.d.ts +78 -0
  232. package/dist/core/tool.d.ts.map +1 -0
  233. package/dist/core/tool.js +190 -0
  234. package/dist/core/tool.js.map +1 -0
  235. package/dist/core/transports/http-server.d.ts +102 -0
  236. package/dist/core/transports/http-server.d.ts.map +1 -0
  237. package/dist/core/transports/http-server.js +265 -0
  238. package/dist/core/transports/http-server.js.map +1 -0
  239. package/dist/core/types.d.ts +123 -0
  240. package/dist/core/types.d.ts.map +1 -0
  241. package/dist/core/types.js +2 -0
  242. package/dist/core/types.js.map +1 -0
  243. package/dist/core/widgets/widget-examples.resource.d.ts +17 -0
  244. package/dist/core/widgets/widget-examples.resource.d.ts.map +1 -0
  245. package/dist/core/widgets/widget-examples.resource.js +28 -0
  246. package/dist/core/widgets/widget-examples.resource.js.map +1 -0
  247. package/dist/core/widgets/widget-registry.d.ts +56 -0
  248. package/dist/core/widgets/widget-registry.d.ts.map +1 -0
  249. package/dist/core/widgets/widget-registry.js +75 -0
  250. package/dist/core/widgets/widget-registry.js.map +1 -0
  251. package/dist/testing/index.d.ts +82 -0
  252. package/dist/testing/index.d.ts.map +1 -0
  253. package/dist/testing/index.js +164 -0
  254. package/dist/testing/index.js.map +1 -0
  255. package/dist/ui-next/index.d.ts +31 -0
  256. package/dist/ui-next/index.d.ts.map +1 -0
  257. package/dist/ui-next/index.js +687 -0
  258. package/dist/ui-next/index.js.map +1 -0
  259. package/dist/widgets/index.d.ts +9 -0
  260. package/dist/widgets/index.d.ts.map +1 -0
  261. package/dist/widgets/index.js +9 -0
  262. package/dist/widgets/index.js.map +1 -0
  263. package/dist/widgets/metadata.d.ts +53 -0
  264. package/dist/widgets/metadata.d.ts.map +1 -0
  265. package/dist/widgets/metadata.js +29 -0
  266. package/dist/widgets/metadata.js.map +1 -0
  267. package/dist/widgets/withToolData.d.ts +19 -0
  268. package/dist/widgets/withToolData.d.ts.map +1 -0
  269. package/dist/widgets/withToolData.js +240 -0
  270. package/dist/widgets/withToolData.js.map +1 -0
  271. package/jest.config.js +21 -0
  272. package/package.json +108 -0
  273. package/templates/typescript-auth/AI_AGENT_CLI_REFERENCE.md +702 -0
  274. package/templates/typescript-auth/AI_AGENT_SDK_REFERENCE.md +1260 -0
  275. package/templates/typescript-auth/README.md +400 -0
  276. package/templates/typescript-auth/package.json +44 -0
  277. package/templates/typescript-auth-api-key/AI_AGENT_CLI_REFERENCE.md +701 -0
  278. package/templates/typescript-auth-api-key/AI_AGENT_SDK_REFERENCE.md +1260 -0
  279. package/templates/typescript-auth-api-key/README.md +483 -0
  280. package/templates/typescript-auth-api-key/package-lock.json +124 -0
  281. package/templates/typescript-auth-api-key/package.json +29 -0
  282. package/templates/typescript-oauth/AI_AGENT_CLI_REFERENCE.md +701 -0
  283. package/templates/typescript-oauth/AI_AGENT_SDK_REFERENCE.md +1260 -0
  284. package/templates/typescript-oauth/OAUTH_SETUP.md +406 -0
  285. package/templates/typescript-oauth/README.md +350 -0
  286. package/templates/typescript-oauth/package.json +30 -0
  287. package/templates/typescript-starter/AI_AGENT_CLI_REFERENCE.md +701 -0
  288. package/templates/typescript-starter/AI_AGENT_SDK_REFERENCE.md +1260 -0
  289. package/templates/typescript-starter/README.md +312 -0
  290. package/templates/typescript-starter/package.json +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-guards.decorator.js","sourceRoot":"","sources":["../../../src/core/guards/use-guards.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,GAAG,MAA0B;IACrD,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,wCAAwC;QACxC,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAW,EAAE,UAAkB;IAC/D,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Health Checks Resource
3
+ *
4
+ * Exposes all registered health checks as an MCP resource
5
+ * so clients can query health status
6
+ */
7
+ export declare function buildHealthChecksResource(): Promise<{
8
+ uri: string;
9
+ name: string;
10
+ description: string;
11
+ mimeType: string;
12
+ read(): Promise<string>;
13
+ }>;
14
+ //# sourceMappingURL=health-checks.resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checks.resource.d.ts","sourceRoot":"","sources":["../../../src/core/health/health-checks.resource.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAsB,yBAAyB;;;;;;GAsB9C"}
@@ -0,0 +1,29 @@
1
+ import { getAllHealthChecks } from '../decorators/health-check.decorator.js';
2
+ /**
3
+ * Health Checks Resource
4
+ *
5
+ * Exposes all registered health checks as an MCP resource
6
+ * so clients can query health status
7
+ */
8
+ export async function buildHealthChecksResource() {
9
+ return {
10
+ uri: 'health://checks',
11
+ name: 'Health Checks',
12
+ description: 'Current health status of all registered health checks',
13
+ mimeType: 'application/json',
14
+ async read() {
15
+ const checks = await getAllHealthChecks();
16
+ // Transform to array format
17
+ const checksArray = Object.entries(checks).map(([name, result]) => ({
18
+ name,
19
+ ...result,
20
+ }));
21
+ return JSON.stringify({
22
+ checks: checksArray,
23
+ count: checksArray.length,
24
+ timestamp: new Date().toISOString(),
25
+ }, null, 2);
26
+ },
27
+ };
28
+ }
29
+ //# sourceMappingURL=health-checks.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checks.resource.js","sourceRoot":"","sources":["../../../src/core/health/health-checks.resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,OAAO;QACL,GAAG,EAAE,iBAAiB;QACtB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,CAAC,IAAI;YACR,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAE1C,4BAA4B;YAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI;gBACJ,GAAG,MAAM;aACV,CAAC,CAAC,CAAC;YAEJ,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,WAAW,CAAC,MAAM;gBACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * NitroStack Core Exports
3
+ */
4
+ export { createServer, NitroStackServer } from './server.js';
5
+ export { HttpServerTransport } from './transports/http-server.js';
6
+ export type { HttpServerTransportOptions } from './transports/http-server.js';
7
+ export { Tool } from './tool.js';
8
+ export { createResource, Resource } from './resource.js';
9
+ export { createPrompt, Prompt } from './prompt.js';
10
+ export { createComponent, Component } from './component.js';
11
+ export { createLogger, defaultLogger } from './logger.js';
12
+ export * from './errors.js';
13
+ export type { McpServerConfig, ToolDefinition, ResourceDefinition, PromptDefinition, ExecutionContext, Logger, } from './types.js';
14
+ export { Tool as ToolDecorator, Widget, Resource as ResourceDecorator, Prompt as PromptDecorator, extractTools, extractResources, extractPrompts, getWidgetMetadata, getGuardsMetadata, } from './decorators.js';
15
+ export type { ToolOptions, ResourceOptions, PromptOptions, } from './decorators.js';
16
+ export { Module, createModule, isModule, getModuleMetadata, } from './module.js';
17
+ export type { ModuleMetadata, } from './module.js';
18
+ export type { Guard, GuardConstructor } from './guards/guard.interface.js';
19
+ export { UseGuards, getGuardsMetadata as getGuardsMetadataFromDecorator } from './guards/use-guards.decorator.js';
20
+ export type { JWTPayload } from './guards/jwt.guard.js';
21
+ export type { ApiKeyMetadata } from './guards/apikey.guard.js';
22
+ export type { OAuthTokenPayload } from './guards/oauth.guard.js';
23
+ export { JWTModule } from './jwt-module.js';
24
+ export type { JWTModuleConfig } from './jwt-module.js';
25
+ export { ApiKeyModule } from './apikey-module.js';
26
+ export type { ApiKeyModuleConfig } from './apikey-module.js';
27
+ export { OAuthModule } from './oauth-module.js';
28
+ export type { OAuthModuleConfig } from './oauth-module.js';
29
+ export { buildTool, buildTools, buildResource, buildResources, buildPrompt, buildPrompts, buildController, } from './builders.js';
30
+ export type { MiddlewareInterface, MiddlewareConstructor } from './middleware/middleware.interface.js';
31
+ export { Middleware, UseMiddleware, getMiddlewareMetadata, isMiddleware } from './middleware/middleware.decorator.js';
32
+ export type { InterceptorInterface, InterceptorConstructor } from './interceptors/interceptor.interface.js';
33
+ export { Interceptor, UseInterceptors, getInterceptorMetadata, isInterceptor } from './interceptors/interceptor.decorator.js';
34
+ export type { PipeInterface, PipeConstructor, ArgumentMetadata } from './pipes/pipe.interface.js';
35
+ export { Pipe, UsePipes, Body, Validated, getPipeMetadata, getParamPipesMetadata, isPipe } from './pipes/pipe.decorator.js';
36
+ export type { ExceptionFilterInterface, ExceptionFilterConstructor } from './filters/exception-filter.interface.js';
37
+ export { ExceptionFilter, UseFilters, getExceptionFilterMetadata, isExceptionFilter } from './filters/exception-filter.decorator.js';
38
+ export { DIContainer } from './di/container.js';
39
+ export { Injectable, Inject, isInjectable, getInjectTokens } from './di/injectable.decorator.js';
40
+ export { Cache, clearCache, getCacheMetadata } from './decorators/cache.decorator.js';
41
+ export type { CacheOptions, CacheStorage } from './decorators/cache.decorator.js';
42
+ export { RateLimit, resetRateLimit, getRateLimitMetadata } from './decorators/rate-limit.decorator.js';
43
+ export type { RateLimitOptions, RateLimitStorage } from './decorators/rate-limit.decorator.js';
44
+ export { HealthCheck, registerHealthCheck, getAllHealthChecks, getHealthCheck, getOverallHealth, isHealthCheck, getHealthCheckMetadata } from './decorators/health-check.decorator.js';
45
+ export type { HealthCheckOptions, HealthCheckResult, HealthCheckInterface } from './decorators/health-check.decorator.js';
46
+ export { EventEmitter } from './events/event-emitter.js';
47
+ export { OnEvent, getEventHandlers, registerEventHandlers, emitEvent } from './events/event.decorator.js';
48
+ export { ConfigModule, ConfigService } from './config-module.js';
49
+ export type { ConfigModuleOptions } from './config-module.js';
50
+ export { McpApp, McpApplicationFactory, getMcpAppMetadata } from './app-decorator.js';
51
+ export type { McpAppOptions } from './app-decorator.js';
52
+ export { z } from 'zod';
53
+ export * from '../auth/index.js';
54
+ export { createComponentFromNext, createComponentFromNextRoute } from '../ui-next/index.js';
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * NitroStack Core Exports
3
+ */
4
+ // Server
5
+ export { createServer, NitroStackServer } from './server.js';
6
+ // Transports
7
+ export { HttpServerTransport } from './transports/http-server.js';
8
+ // Tool
9
+ export { Tool } from './tool.js';
10
+ // Resource
11
+ export { createResource, Resource } from './resource.js';
12
+ // Prompt
13
+ export { createPrompt, Prompt } from './prompt.js';
14
+ // Component (UI/UX)
15
+ export { createComponent, Component } from './component.js';
16
+ // Logger
17
+ export { createLogger, defaultLogger } from './logger.js';
18
+ // Errors
19
+ export * from './errors.js';
20
+ // ========== V3 Decorators ==========
21
+ export { Tool as ToolDecorator, Widget, Resource as ResourceDecorator, Prompt as PromptDecorator, extractTools, extractResources, extractPrompts, getWidgetMetadata, getGuardsMetadata, } from './decorators.js';
22
+ // ========== V3 Modules ==========
23
+ export { Module, createModule, isModule, getModuleMetadata, } from './module.js';
24
+ export { UseGuards, getGuardsMetadata as getGuardsMetadataFromDecorator } from './guards/use-guards.decorator.js';
25
+ // ========== V3 JWT Module ==========
26
+ export { JWTModule } from './jwt-module.js';
27
+ // ========== V3 API Key Module ==========
28
+ export { ApiKeyModule } from './apikey-module.js';
29
+ // ========== V3 OAuth Module ==========
30
+ export { OAuthModule } from './oauth-module.js';
31
+ // ========== V3 Builders ==========
32
+ export { buildTool, buildTools, buildResource, buildResources, buildPrompt, buildPrompts, buildController, } from './builders.js';
33
+ export { Middleware, UseMiddleware, getMiddlewareMetadata, isMiddleware } from './middleware/middleware.decorator.js';
34
+ export { Interceptor, UseInterceptors, getInterceptorMetadata, isInterceptor } from './interceptors/interceptor.decorator.js';
35
+ export { Pipe, UsePipes, Body, Validated, getPipeMetadata, getParamPipesMetadata, isPipe } from './pipes/pipe.decorator.js';
36
+ export { ExceptionFilter, UseFilters, getExceptionFilterMetadata, isExceptionFilter } from './filters/exception-filter.decorator.js';
37
+ // ========== V3 Dependency Injection ==========
38
+ export { DIContainer } from './di/container.js';
39
+ export { Injectable, Inject, isInjectable, getInjectTokens } from './di/injectable.decorator.js';
40
+ // ========== V3 Utility Decorators ==========
41
+ export { Cache, clearCache, getCacheMetadata } from './decorators/cache.decorator.js';
42
+ export { RateLimit, resetRateLimit, getRateLimitMetadata } from './decorators/rate-limit.decorator.js';
43
+ export { HealthCheck, registerHealthCheck, getAllHealthChecks, getHealthCheck, getOverallHealth, isHealthCheck, getHealthCheckMetadata } from './decorators/health-check.decorator.js';
44
+ // ========== V3 Event System ==========
45
+ export { EventEmitter } from './events/event-emitter.js';
46
+ export { OnEvent, getEventHandlers, registerEventHandlers, emitEvent } from './events/event.decorator.js';
47
+ // ========== V3 Configuration Module ==========
48
+ export { ConfigModule, ConfigService } from './config-module.js';
49
+ // ========== V3 Application Bootstrap ==========
50
+ export { McpApp, McpApplicationFactory, getMcpAppMetadata } from './app-decorator.js';
51
+ // Zod re-export for convenience
52
+ export { z } from 'zod';
53
+ // Auth module
54
+ export * from '../auth/index.js';
55
+ // UI Next adapter (optional)
56
+ export { createComponentFromNext, createComponentFromNextRoute } from '../ui-next/index.js';
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import 'reflect-metadata';
2
+ import { InterceptorConstructor } from './interceptor.interface.js';
3
+ /**
4
+ * Marks a class as an interceptor
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * @Interceptor()
9
+ * export class TransformInterceptor implements InterceptorInterface {
10
+ * async intercept(context: ExecutionContext, next: () => Promise<any>) {
11
+ * const result = await next();
12
+ * return { success: true, data: result, timestamp: Date.now() };
13
+ * }
14
+ * }
15
+ * ```
16
+ */
17
+ export declare function Interceptor(): ClassDecorator;
18
+ /**
19
+ * Apply interceptors to a tool method
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * @Tool({ name: 'get_user', ... })
24
+ * @UseInterceptors(TransformInterceptor, CacheInterceptor)
25
+ * async getUser(input: any) { }
26
+ * ```
27
+ */
28
+ export declare function UseInterceptors(...interceptors: InterceptorConstructor[]): MethodDecorator;
29
+ /**
30
+ * Get interceptors for a method
31
+ */
32
+ export declare function getInterceptorMetadata(target: any, propertyKey: string | symbol): InterceptorConstructor[];
33
+ /**
34
+ * Check if a class is marked as an interceptor
35
+ */
36
+ export declare function isInterceptor(target: any): boolean;
37
+ //# sourceMappingURL=interceptor.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/interceptors/interceptor.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,IAAI,cAAc,CAI5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,GAAG,YAAY,EAAE,sBAAsB,EAAE,GAAG,eAAe,CAU1F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,sBAAsB,EAAE,CAE1G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAElD"}
@@ -0,0 +1,51 @@
1
+ import 'reflect-metadata';
2
+ const INTERCEPTOR_KEY = 'nitrostack:interceptor';
3
+ const IS_INTERCEPTOR_KEY = 'nitrostack:is_interceptor';
4
+ /**
5
+ * Marks a class as an interceptor
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @Interceptor()
10
+ * export class TransformInterceptor implements InterceptorInterface {
11
+ * async intercept(context: ExecutionContext, next: () => Promise<any>) {
12
+ * const result = await next();
13
+ * return { success: true, data: result, timestamp: Date.now() };
14
+ * }
15
+ * }
16
+ * ```
17
+ */
18
+ export function Interceptor() {
19
+ return (target) => {
20
+ Reflect.defineMetadata(IS_INTERCEPTOR_KEY, true, target);
21
+ };
22
+ }
23
+ /**
24
+ * Apply interceptors to a tool method
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * @Tool({ name: 'get_user', ... })
29
+ * @UseInterceptors(TransformInterceptor, CacheInterceptor)
30
+ * async getUser(input: any) { }
31
+ * ```
32
+ */
33
+ export function UseInterceptors(...interceptors) {
34
+ return (target, propertyKey, descriptor) => {
35
+ const existingInterceptors = Reflect.getMetadata(INTERCEPTOR_KEY, target, propertyKey) || [];
36
+ Reflect.defineMetadata(INTERCEPTOR_KEY, [...existingInterceptors, ...interceptors], target, propertyKey);
37
+ };
38
+ }
39
+ /**
40
+ * Get interceptors for a method
41
+ */
42
+ export function getInterceptorMetadata(target, propertyKey) {
43
+ return Reflect.getMetadata(INTERCEPTOR_KEY, target, propertyKey) || [];
44
+ }
45
+ /**
46
+ * Check if a class is marked as an interceptor
47
+ */
48
+ export function isInterceptor(target) {
49
+ return Reflect.getMetadata(IS_INTERCEPTOR_KEY, target) === true;
50
+ }
51
+ //# sourceMappingURL=interceptor.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.decorator.js","sourceRoot":"","sources":["../../../src/core/interceptors/interceptor.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACjD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,GAAG,YAAsC;IACvE,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7F,OAAO,CAAC,cAAc,CACpB,eAAe,EACf,CAAC,GAAG,oBAAoB,EAAE,GAAG,YAAY,CAAC,EAC1C,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAW,EAAE,WAA4B;IAC9E,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAW;IACvC,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AAClE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import 'reflect-metadata';
2
+ import { ExecutionContext } from '../types.js';
3
+ /**
4
+ * Interceptor Interface
5
+ *
6
+ * Interceptors can transform the input or output of a tool execution.
7
+ * They're executed after guards but before the actual tool handler.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * @Interceptor()
12
+ * export class TransformInterceptor implements InterceptorInterface {
13
+ * async intercept(context: ExecutionContext, next: () => Promise<any>) {
14
+ * const result = await next();
15
+ * return {
16
+ * success: true,
17
+ * data: result,
18
+ * timestamp: new Date().toISOString()
19
+ * };
20
+ * }
21
+ * }
22
+ * ```
23
+ */
24
+ export interface InterceptorInterface {
25
+ intercept(context: ExecutionContext, next: () => Promise<any>): Promise<any>;
26
+ }
27
+ /**
28
+ * Interceptor constructor type
29
+ */
30
+ export type InterceptorConstructor = new (...args: any[]) => InterceptorInterface;
31
+ //# sourceMappingURL=interceptor.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.interface.d.ts","sourceRoot":"","sources":["../../../src/core/interceptors/interceptor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ //# sourceMappingURL=interceptor.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interceptor.interface.js","sourceRoot":"","sources":["../../../src/core/interceptors/interceptor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * JWT Module Configuration
4
+ */
5
+ export interface JWTModuleConfig {
6
+ /** JWT secret (or env var name to read from) */
7
+ secret?: string;
8
+ /** Environment variable to read secret from */
9
+ secretEnvVar?: string;
10
+ /** Token expiration time (e.g., '24h', '7d') */
11
+ expiresIn?: string;
12
+ /** JWT audience */
13
+ audience?: string;
14
+ /** JWT issuer */
15
+ issuer?: string;
16
+ }
17
+ /**
18
+ * JWT Module - Enable JWT authentication in your MCP server
19
+ *
20
+ * Import this module to indicate your server uses JWT authentication.
21
+ * Then use @UseGuards(JWTGuard) on your tools to protect them.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * import { createServer, JWTModule } from 'nitrostack';
26
+ *
27
+ * const server = createServer({ ... });
28
+ *
29
+ * // Enable JWT authentication
30
+ * server.use(JWTModule.forRoot({
31
+ * secretEnvVar: 'JWT_SECRET',
32
+ * expiresIn: '24h',
33
+ * }));
34
+ * ```
35
+ */
36
+ export declare class JWTModule {
37
+ private static config;
38
+ /**
39
+ * Configure JWT module for the application
40
+ */
41
+ static forRoot(config: JWTModuleConfig): JWTModuleConfig;
42
+ /**
43
+ * Get current JWT configuration
44
+ */
45
+ static getConfig(): JWTModuleConfig;
46
+ /**
47
+ * Get JWT secret from config or environment
48
+ */
49
+ static getSecret(): string | null;
50
+ }
51
+ //# sourceMappingURL=jwt-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-module.d.ts","sourceRoot":"","sources":["../../src/core/jwt-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAGnB;IAEF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAKxD;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,eAAe;IAInC;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI;CAWlC"}
@@ -0,0 +1,52 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * JWT Module - Enable JWT authentication in your MCP server
4
+ *
5
+ * Import this module to indicate your server uses JWT authentication.
6
+ * Then use @UseGuards(JWTGuard) on your tools to protect them.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createServer, JWTModule } from 'nitrostack';
11
+ *
12
+ * const server = createServer({ ... });
13
+ *
14
+ * // Enable JWT authentication
15
+ * server.use(JWTModule.forRoot({
16
+ * secretEnvVar: 'JWT_SECRET',
17
+ * expiresIn: '24h',
18
+ * }));
19
+ * ```
20
+ */
21
+ export class JWTModule {
22
+ static config = {
23
+ secretEnvVar: 'JWT_SECRET',
24
+ expiresIn: '24h',
25
+ };
26
+ /**
27
+ * Configure JWT module for the application
28
+ */
29
+ static forRoot(config) {
30
+ this.config = { ...this.config, ...config };
31
+ return this.config;
32
+ }
33
+ /**
34
+ * Get current JWT configuration
35
+ */
36
+ static getConfig() {
37
+ return this.config;
38
+ }
39
+ /**
40
+ * Get JWT secret from config or environment
41
+ */
42
+ static getSecret() {
43
+ if (this.config.secret) {
44
+ return this.config.secret;
45
+ }
46
+ if (this.config.secretEnvVar) {
47
+ return process.env[this.config.secretEnvVar] || null;
48
+ }
49
+ return null;
50
+ }
51
+ }
52
+ //# sourceMappingURL=jwt-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-module.js","sourceRoot":"","sources":["../../src/core/jwt-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAsB1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,CAAC,MAAM,GAAoB;QACvC,YAAY,EAAE,YAAY;QAC1B,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAuB;QACpC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Logger } from './types.js';
2
+ /**
3
+ * Create a logger instance with custom configuration
4
+ *
5
+ * IMPORTANT: For MCP servers, console logging is DISABLED by default
6
+ * as it breaks the JSON-RPC protocol over stdio. All logs go to files.
7
+ */
8
+ export declare function createLogger(options: {
9
+ level?: string;
10
+ file?: string;
11
+ serviceName?: string;
12
+ enableConsole?: boolean;
13
+ }): Logger;
14
+ /**
15
+ * Default logger instance
16
+ */
17
+ export declare const defaultLogger: Logger;
18
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,CAyDT;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAAkC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import winston from 'winston';
2
+ /**
3
+ * Create a logger instance with custom configuration
4
+ *
5
+ * IMPORTANT: For MCP servers, console logging is DISABLED by default
6
+ * as it breaks the JSON-RPC protocol over stdio. All logs go to files.
7
+ */
8
+ export function createLogger(options) {
9
+ const { level = 'info', file, serviceName = 'nitrostack', enableConsole = false } = options;
10
+ const transports = [];
11
+ // CRITICAL: Console logging disabled by default for MCP compatibility
12
+ // MCP uses stdio for JSON-RPC communication, console output breaks it
13
+ if (enableConsole) {
14
+ transports.push(new winston.transports.Console({
15
+ format: winston.format.combine(winston.format.colorize(), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf(({ timestamp, level, message, ...meta }) => {
16
+ const metaStr = Object.keys(meta).length > 0 ? `\n${JSON.stringify(meta, null, 2)}` : '';
17
+ return `${timestamp} [${serviceName}] ${level}: ${message}${metaStr}`;
18
+ })),
19
+ }));
20
+ }
21
+ // File logging - always recommended for MCP servers
22
+ if (file) {
23
+ transports.push(new winston.transports.File({
24
+ filename: file,
25
+ format: winston.format.combine(winston.format.timestamp(), winston.format.json()),
26
+ }));
27
+ }
28
+ // If no transports configured, use a null transport to avoid crashes
29
+ if (transports.length === 0) {
30
+ // Silent logger - logs nowhere (better than crashing)
31
+ transports.push(new winston.transports.File({
32
+ filename: '/dev/null', // Discard logs
33
+ silent: true,
34
+ }));
35
+ }
36
+ const winstonLogger = winston.createLogger({
37
+ level,
38
+ transports,
39
+ });
40
+ return {
41
+ debug: (message, meta) => winstonLogger.debug(message, meta),
42
+ info: (message, meta) => winstonLogger.info(message, meta),
43
+ warn: (message, meta) => winstonLogger.warn(message, meta),
44
+ error: (message, meta) => winstonLogger.error(message, meta),
45
+ };
46
+ }
47
+ /**
48
+ * Default logger instance
49
+ */
50
+ export const defaultLogger = createLogger({ level: 'info' });
51
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAK5B;IACC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE5F,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAC3D,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;gBAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,GAAG,SAAS,KAAK,WAAW,KAAK,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;YACxE,CAAC,CAAC,CACH;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,sDAAsD;QACtD,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,WAAW,EAAE,eAAe;YACtC,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,KAAK;QACL,UAAU;KACX,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1E,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QACxE,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QACxE,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import 'reflect-metadata';
2
+ import { MiddlewareConstructor } from './middleware.interface.js';
3
+ /**
4
+ * Marks a class as a middleware
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * @Middleware()
9
+ * export class LoggingMiddleware implements MiddlewareInterface {
10
+ * async use(context: ExecutionContext, next: () => Promise<any>) {
11
+ * console.log('Before');
12
+ * const result = await next();
13
+ * console.log('After');
14
+ * return result;
15
+ * }
16
+ * }
17
+ * ```
18
+ */
19
+ export declare function Middleware(): ClassDecorator;
20
+ /**
21
+ * Apply middleware to a tool method
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * @Tool({ name: 'my_tool', ... })
26
+ * @UseMiddleware(LoggingMiddleware, AuthMiddleware)
27
+ * async myTool(input: any, context: ExecutionContext) { }
28
+ * ```
29
+ */
30
+ export declare function UseMiddleware(...middlewares: MiddlewareConstructor[]): MethodDecorator;
31
+ /**
32
+ * Get middlewares for a method
33
+ */
34
+ export declare function getMiddlewareMetadata(target: any, propertyKey: string | symbol): MiddlewareConstructor[];
35
+ /**
36
+ * Check if a class is marked as middleware
37
+ */
38
+ export declare function isMiddleware(target: any): boolean;
39
+ //# sourceMappingURL=middleware.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/middleware/middleware.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKlE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,IAAI,cAAc,CAI3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE,GAAG,eAAe,CAUtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,qBAAqB,EAAE,CAExG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAEjD"}
@@ -0,0 +1,53 @@
1
+ import 'reflect-metadata';
2
+ const MIDDLEWARE_KEY = 'nitrostack:middleware';
3
+ const IS_MIDDLEWARE_KEY = 'nitrostack:is_middleware';
4
+ /**
5
+ * Marks a class as a middleware
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @Middleware()
10
+ * export class LoggingMiddleware implements MiddlewareInterface {
11
+ * async use(context: ExecutionContext, next: () => Promise<any>) {
12
+ * console.log('Before');
13
+ * const result = await next();
14
+ * console.log('After');
15
+ * return result;
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ export function Middleware() {
21
+ return (target) => {
22
+ Reflect.defineMetadata(IS_MIDDLEWARE_KEY, true, target);
23
+ };
24
+ }
25
+ /**
26
+ * Apply middleware to a tool method
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * @Tool({ name: 'my_tool', ... })
31
+ * @UseMiddleware(LoggingMiddleware, AuthMiddleware)
32
+ * async myTool(input: any, context: ExecutionContext) { }
33
+ * ```
34
+ */
35
+ export function UseMiddleware(...middlewares) {
36
+ return (target, propertyKey, descriptor) => {
37
+ const existingMiddlewares = Reflect.getMetadata(MIDDLEWARE_KEY, target, propertyKey) || [];
38
+ Reflect.defineMetadata(MIDDLEWARE_KEY, [...existingMiddlewares, ...middlewares], target, propertyKey);
39
+ };
40
+ }
41
+ /**
42
+ * Get middlewares for a method
43
+ */
44
+ export function getMiddlewareMetadata(target, propertyKey) {
45
+ return Reflect.getMetadata(MIDDLEWARE_KEY, target, propertyKey) || [];
46
+ }
47
+ /**
48
+ * Check if a class is marked as middleware
49
+ */
50
+ export function isMiddleware(target) {
51
+ return Reflect.getMetadata(IS_MIDDLEWARE_KEY, target) === true;
52
+ }
53
+ //# sourceMappingURL=middleware.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.decorator.js","sourceRoot":"","sources":["../../../src/core/middleware/middleware.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,GAAG,WAAoC;IACnE,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3F,OAAO,CAAC,cAAc,CACpB,cAAc,EACd,CAAC,GAAG,mBAAmB,EAAE,GAAG,WAAW,CAAC,EACxC,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAW,EAAE,WAA4B;IAC7E,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAW;IACtC,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AACjE,CAAC"}