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":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGxB;IACA;IACA;IAJT,YACE,OAAe,EACR,IAAY,EACZ,aAAqB,GAAG,EACxB,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAc;QACxB,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,QAAgB;QAC1B,KAAK,CAAC,SAAS,QAAQ,aAAa,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,aAAa,GAAG,aAAa,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,UAAkB;QAC5B,KAAK,CAAC,WAAW,UAAU,aAAa,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,UAAkB,qBAAqB;QACjD,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,QAAgB,EAAE,aAAoB;QAChD,KAAK,CACH,yBAAyB,QAAQ,MAAM,aAAa,CAAC,OAAO,EAAE,EAC9D,sBAAsB,EACtB,GAAG,EACH,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CACrE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IAKtC,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Event handler type
4
+ */
5
+ type EventHandler = (...args: any[]) => void | Promise<void>;
6
+ /**
7
+ * Event Emitter
8
+ *
9
+ * Simple event bus for decoupled communication between modules
10
+ */
11
+ export declare class EventEmitter {
12
+ private static instance;
13
+ private listeners;
14
+ private constructor();
15
+ static getInstance(): EventEmitter;
16
+ /**
17
+ * Register an event listener
18
+ */
19
+ on(event: string, handler: EventHandler): void;
20
+ /**
21
+ * Register a one-time event listener
22
+ */
23
+ once(event: string, handler: EventHandler): void;
24
+ /**
25
+ * Remove an event listener
26
+ */
27
+ off(event: string, handler: EventHandler): void;
28
+ /**
29
+ * Emit an event
30
+ */
31
+ emit(event: string, ...args: any[]): Promise<void>;
32
+ /**
33
+ * Emit an event synchronously
34
+ */
35
+ emitSync(event: string, ...args: any[]): void;
36
+ /**
37
+ * Remove all listeners for an event
38
+ */
39
+ removeAllListeners(event?: string): void;
40
+ /**
41
+ * Get listener count for an event
42
+ */
43
+ listenerCount(event: string): number;
44
+ /**
45
+ * Get all event names
46
+ */
47
+ eventNames(): string[];
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../src/core/events/event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,SAAS,CAA0C;IAE3D,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAO9C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAQhD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAc/C;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAO7C;;OAEG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIpC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;CAGvB"}
@@ -0,0 +1,94 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Event Emitter
4
+ *
5
+ * Simple event bus for decoupled communication between modules
6
+ */
7
+ export class EventEmitter {
8
+ static instance;
9
+ listeners = new Map();
10
+ constructor() { }
11
+ static getInstance() {
12
+ if (!EventEmitter.instance) {
13
+ EventEmitter.instance = new EventEmitter();
14
+ }
15
+ return EventEmitter.instance;
16
+ }
17
+ /**
18
+ * Register an event listener
19
+ */
20
+ on(event, handler) {
21
+ if (!this.listeners.has(event)) {
22
+ this.listeners.set(event, []);
23
+ }
24
+ this.listeners.get(event).push(handler);
25
+ }
26
+ /**
27
+ * Register a one-time event listener
28
+ */
29
+ once(event, handler) {
30
+ const wrappedHandler = async (...args) => {
31
+ await handler(...args);
32
+ this.off(event, wrappedHandler);
33
+ };
34
+ this.on(event, wrappedHandler);
35
+ }
36
+ /**
37
+ * Remove an event listener
38
+ */
39
+ off(event, handler) {
40
+ const handlers = this.listeners.get(event);
41
+ if (!handlers)
42
+ return;
43
+ const index = handlers.indexOf(handler);
44
+ if (index > -1) {
45
+ handlers.splice(index, 1);
46
+ }
47
+ if (handlers.length === 0) {
48
+ this.listeners.delete(event);
49
+ }
50
+ }
51
+ /**
52
+ * Emit an event
53
+ */
54
+ async emit(event, ...args) {
55
+ const handlers = this.listeners.get(event);
56
+ if (!handlers || handlers.length === 0)
57
+ return;
58
+ // Execute all handlers in parallel
59
+ await Promise.all(handlers.map(handler => handler(...args)));
60
+ }
61
+ /**
62
+ * Emit an event synchronously
63
+ */
64
+ emitSync(event, ...args) {
65
+ const handlers = this.listeners.get(event);
66
+ if (!handlers || handlers.length === 0)
67
+ return;
68
+ handlers.forEach(handler => handler(...args));
69
+ }
70
+ /**
71
+ * Remove all listeners for an event
72
+ */
73
+ removeAllListeners(event) {
74
+ if (event) {
75
+ this.listeners.delete(event);
76
+ }
77
+ else {
78
+ this.listeners.clear();
79
+ }
80
+ }
81
+ /**
82
+ * Get listener count for an event
83
+ */
84
+ listenerCount(event) {
85
+ return this.listeners.get(event)?.length || 0;
86
+ }
87
+ /**
88
+ * Get all event names
89
+ */
90
+ eventNames() {
91
+ return Array.from(this.listeners.keys());
92
+ }
93
+ }
94
+ //# sourceMappingURL=event-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../src/core/events/event-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Event handler metadata
4
+ */
5
+ interface EventHandlerMetadata {
6
+ event: string;
7
+ methodName: string;
8
+ }
9
+ /**
10
+ * Marks a method as an event handler
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * export class OrderTools {
15
+ * @Tool({ name: 'create_order', ... })
16
+ * async createOrder(input: any, ctx: ExecutionContext) {
17
+ * const order = await this.saveOrder(input);
18
+ *
19
+ * // Emit event
20
+ * ctx.emit('order.created', order);
21
+ *
22
+ * return order;
23
+ * }
24
+ * }
25
+ *
26
+ * export class NotificationService {
27
+ * @OnEvent('order.created')
28
+ * async handleOrderCreated(order: any) {
29
+ * await this.sendConfirmationEmail(order);
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ export declare function OnEvent(event: string): MethodDecorator;
35
+ /**
36
+ * Get event handlers from a class
37
+ */
38
+ export declare function getEventHandlers(target: any): EventHandlerMetadata[];
39
+ /**
40
+ * Register all event handlers from a class instance
41
+ */
42
+ export declare function registerEventHandlers(instance: any): void;
43
+ /**
44
+ * Emit an event from execution context
45
+ */
46
+ export declare function emitEvent(event: string, ...args: any[]): void;
47
+ export {};
48
+ //# sourceMappingURL=event.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/events/event.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAK1B;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAStD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAQzD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAS7D"}
@@ -0,0 +1,68 @@
1
+ import 'reflect-metadata';
2
+ import { EventEmitter } from './event-emitter.js';
3
+ const EVENT_HANDLER_KEY = 'nitrostack:event_handler';
4
+ /**
5
+ * Marks a method as an event handler
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * export class OrderTools {
10
+ * @Tool({ name: 'create_order', ... })
11
+ * async createOrder(input: any, ctx: ExecutionContext) {
12
+ * const order = await this.saveOrder(input);
13
+ *
14
+ * // Emit event
15
+ * ctx.emit('order.created', order);
16
+ *
17
+ * return order;
18
+ * }
19
+ * }
20
+ *
21
+ * export class NotificationService {
22
+ * @OnEvent('order.created')
23
+ * async handleOrderCreated(order: any) {
24
+ * await this.sendConfirmationEmail(order);
25
+ * }
26
+ * }
27
+ * ```
28
+ */
29
+ export function OnEvent(event) {
30
+ return (target, propertyKey, descriptor) => {
31
+ const existingHandlers = Reflect.getMetadata(EVENT_HANDLER_KEY, target.constructor) || [];
32
+ existingHandlers.push({
33
+ event,
34
+ methodName: propertyKey,
35
+ });
36
+ Reflect.defineMetadata(EVENT_HANDLER_KEY, existingHandlers, target.constructor);
37
+ };
38
+ }
39
+ /**
40
+ * Get event handlers from a class
41
+ */
42
+ export function getEventHandlers(target) {
43
+ return Reflect.getMetadata(EVENT_HANDLER_KEY, target) || [];
44
+ }
45
+ /**
46
+ * Register all event handlers from a class instance
47
+ */
48
+ export function registerEventHandlers(instance) {
49
+ const emitter = EventEmitter.getInstance();
50
+ const handlers = getEventHandlers(instance.constructor);
51
+ for (const { event, methodName } of handlers) {
52
+ const handler = instance[methodName].bind(instance);
53
+ emitter.on(event, handler);
54
+ }
55
+ }
56
+ /**
57
+ * Emit an event from execution context
58
+ */
59
+ export function emitEvent(event, ...args) {
60
+ const emitter = EventEmitter.getInstance();
61
+ // Use sync emit to avoid blocking
62
+ emitter.emitSync(event, ...args);
63
+ // Also emit async in background
64
+ emitter.emit(event, ...args).catch(error => {
65
+ console.error(`Error in event handler for ${event}:`, error);
66
+ });
67
+ }
68
+ //# sourceMappingURL=event.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.decorator.js","sourceRoot":"","sources":["../../../src/core/events/event.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAUrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1F,gBAAgB,CAAC,IAAI,CAAC;YACpB,KAAK;YACL,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAClF,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW;IAC1C,OAAO,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAa;IACjD,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAExD,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,GAAG,IAAW;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC3C,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjC,gCAAgC;IAChC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,40 @@
1
+ import 'reflect-metadata';
2
+ import { ExceptionFilterConstructor } from './exception-filter.interface.js';
3
+ /**
4
+ * Marks a class as an exception filter
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * @ExceptionFilter()
9
+ * export class GlobalExceptionFilter implements ExceptionFilterInterface {
10
+ * catch(exception: any, context: ExecutionContext) {
11
+ * context.logger.error('Exception caught:', exception);
12
+ * return {
13
+ * error: exception.message,
14
+ * timestamp: new Date().toISOString(),
15
+ * };
16
+ * }
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function ExceptionFilter(): ClassDecorator;
21
+ /**
22
+ * Apply exception filters to a tool method
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * @Tool({ name: 'create_user', ... })
27
+ * @UseFilters(ValidationExceptionFilter, HttpExceptionFilter)
28
+ * async createUser(input: any) { }
29
+ * ```
30
+ */
31
+ export declare function UseFilters(...filters: ExceptionFilterConstructor[]): MethodDecorator;
32
+ /**
33
+ * Get exception filters for a method
34
+ */
35
+ export declare function getExceptionFilterMetadata(target: any, propertyKey: string | symbol): ExceptionFilterConstructor[];
36
+ /**
37
+ * Check if a class is marked as an exception filter
38
+ */
39
+ export declare function isExceptionFilter(target: any): boolean;
40
+ //# sourceMappingURL=exception-filter.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-filter.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/filters/exception-filter.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAK7E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,IAAI,cAAc,CAIhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,OAAO,EAAE,0BAA0B,EAAE,GAAG,eAAe,CAUpF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,0BAA0B,EAAE,CAElH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAEtD"}
@@ -0,0 +1,54 @@
1
+ import 'reflect-metadata';
2
+ const EXCEPTION_FILTER_KEY = 'nitrostack:exception_filter';
3
+ const IS_EXCEPTION_FILTER_KEY = 'nitrostack:is_exception_filter';
4
+ /**
5
+ * Marks a class as an exception filter
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @ExceptionFilter()
10
+ * export class GlobalExceptionFilter implements ExceptionFilterInterface {
11
+ * catch(exception: any, context: ExecutionContext) {
12
+ * context.logger.error('Exception caught:', exception);
13
+ * return {
14
+ * error: exception.message,
15
+ * timestamp: new Date().toISOString(),
16
+ * };
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ export function ExceptionFilter() {
22
+ return (target) => {
23
+ Reflect.defineMetadata(IS_EXCEPTION_FILTER_KEY, true, target);
24
+ };
25
+ }
26
+ /**
27
+ * Apply exception filters to a tool method
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * @Tool({ name: 'create_user', ... })
32
+ * @UseFilters(ValidationExceptionFilter, HttpExceptionFilter)
33
+ * async createUser(input: any) { }
34
+ * ```
35
+ */
36
+ export function UseFilters(...filters) {
37
+ return (target, propertyKey, descriptor) => {
38
+ const existingFilters = Reflect.getMetadata(EXCEPTION_FILTER_KEY, target, propertyKey) || [];
39
+ Reflect.defineMetadata(EXCEPTION_FILTER_KEY, [...existingFilters, ...filters], target, propertyKey);
40
+ };
41
+ }
42
+ /**
43
+ * Get exception filters for a method
44
+ */
45
+ export function getExceptionFilterMetadata(target, propertyKey) {
46
+ return Reflect.getMetadata(EXCEPTION_FILTER_KEY, target, propertyKey) || [];
47
+ }
48
+ /**
49
+ * Check if a class is marked as an exception filter
50
+ */
51
+ export function isExceptionFilter(target) {
52
+ return Reflect.getMetadata(IS_EXCEPTION_FILTER_KEY, target) === true;
53
+ }
54
+ //# sourceMappingURL=exception-filter.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-filter.decorator.js","sourceRoot":"","sources":["../../../src/core/filters/exception-filter.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAC3D,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAEjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,OAAqC;IACjE,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACnF,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7F,OAAO,CAAC,cAAc,CACpB,oBAAoB,EACpB,CAAC,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,EAChC,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAW,EAAE,WAA4B;IAClF,OAAO,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAW;IAC3C,OAAO,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AACvE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import 'reflect-metadata';
2
+ import { ExecutionContext } from '../types.js';
3
+ /**
4
+ * Exception Filter Interface
5
+ *
6
+ * Exception filters handle errors thrown during tool execution.
7
+ * They can transform errors into user-friendly responses.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * @ExceptionFilter()
12
+ * export class HttpExceptionFilter implements ExceptionFilterInterface {
13
+ * catch(exception: any, context: ExecutionContext) {
14
+ * return {
15
+ * statusCode: exception.status || 500,
16
+ * message: exception.message,
17
+ * timestamp: new Date().toISOString(),
18
+ * };
19
+ * }
20
+ * }
21
+ * ```
22
+ */
23
+ export interface ExceptionFilterInterface {
24
+ catch(exception: any, context: ExecutionContext): any | Promise<any>;
25
+ }
26
+ /**
27
+ * Exception filter constructor type
28
+ */
29
+ export type ExceptionFilterConstructor = new (...args: any[]) => ExceptionFilterInterface;
30
+ //# sourceMappingURL=exception-filter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-filter.interface.d.ts","sourceRoot":"","sources":["../../../src/core/filters/exception-filter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACtE;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ //# sourceMappingURL=exception-filter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-filter.interface.js","sourceRoot":"","sources":["../../../src/core/filters/exception-filter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * API Key Guard Interface
3
+ *
4
+ * This is exported from the SDK for type definitions.
5
+ * The actual ApiKeyGuard implementation should be in your project's guards folder.
6
+ *
7
+ * @example
8
+ * See templates/typescript-auth-api-key/src/guards/apikey.guard.ts for implementation
9
+ */
10
+ export interface ApiKeyMetadata {
11
+ /** The API key value (raw) */
12
+ key: string;
13
+ /** Optional: API key name/identifier */
14
+ name?: string;
15
+ /** Optional: Key prefix (e.g., 'sk' for secret key, 'pk' for public key) */
16
+ prefix?: string;
17
+ /** Optional: Scopes/permissions */
18
+ scopes?: string[];
19
+ /** Optional: Additional metadata */
20
+ [key: string]: any;
21
+ }
22
+ //# sourceMappingURL=apikey.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.guard.d.ts","sourceRoot":"","sources":["../../../src/core/guards/apikey.guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * API Key Guard Interface
3
+ *
4
+ * This is exported from the SDK for type definitions.
5
+ * The actual ApiKeyGuard implementation should be in your project's guards folder.
6
+ *
7
+ * @example
8
+ * See templates/typescript-auth-api-key/src/guards/apikey.guard.ts for implementation
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=apikey.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.guard.js","sourceRoot":"","sources":["../../../src/core/guards/apikey.guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,18 @@
1
+ import { ExecutionContext } from '../types.js';
2
+ /**
3
+ * Guard interface for protecting tool execution
4
+ * Guards can perform authentication, authorization, validation, etc.
5
+ */
6
+ export interface Guard {
7
+ /**
8
+ * Determines if the current execution context is allowed to proceed
9
+ * @param context Execution context with request metadata
10
+ * @returns true if allowed, false if denied, or throws an error
11
+ */
12
+ canActivate(context: ExecutionContext): boolean | Promise<boolean>;
13
+ }
14
+ /**
15
+ * Type for guard constructor
16
+ */
17
+ export type GuardConstructor = new (...args: any[]) => Guard;
18
+ //# sourceMappingURL=guard.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.interface.d.ts","sourceRoot":"","sources":["../../../src/core/guards/guard.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=guard.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.interface.js","sourceRoot":"","sources":["../../../src/core/guards/guard.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * JWT payload interface
3
+ *
4
+ * This is exported from the SDK for type definitions.
5
+ * The actual JWTGuard implementation should be in your project's guards folder.
6
+ *
7
+ * @example
8
+ * See templates/typescript-auth/src/guards/jwt.guard.ts for implementation
9
+ */
10
+ export interface JWTPayload {
11
+ sub: string;
12
+ email?: string;
13
+ name?: string;
14
+ iat?: number;
15
+ exp?: number;
16
+ [key: string]: any;
17
+ }
18
+ //# sourceMappingURL=jwt.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.guard.d.ts","sourceRoot":"","sources":["../../../src/core/guards/jwt.guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jwt.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.guard.js","sourceRoot":"","sources":["../../../src/core/guards/jwt.guard.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * OAuth Token Payload Interface
3
+ *
4
+ * Standard OAuth 2.1 / JWT claims (RFC 9068)
5
+ *
6
+ * This is exported from the SDK for type definitions.
7
+ * The actual OAuthGuard implementation should be in your project's guards folder.
8
+ *
9
+ * @example
10
+ * See templates/typescript-oauth/src/guards/oauth.guard.ts for implementation
11
+ */
12
+ export interface OAuthTokenPayload {
13
+ /** Subject - typically the user ID */
14
+ sub: string;
15
+ /** Issuer - the authorization server that issued the token */
16
+ iss?: string;
17
+ /** Audience - who the token is intended for (RFC 8707) */
18
+ aud?: string | string[];
19
+ /** Expiration time (Unix timestamp) */
20
+ exp?: number;
21
+ /** Issued at time (Unix timestamp) */
22
+ iat?: number;
23
+ /** Not before time (Unix timestamp) */
24
+ nbf?: number;
25
+ /** JWT ID - unique identifier for the token */
26
+ jti?: string;
27
+ /** Scopes - permissions granted to the token */
28
+ scope?: string;
29
+ scopes?: string[];
30
+ /** Client ID that requested the token */
31
+ client_id?: string;
32
+ /** Custom claims */
33
+ [key: string]: any;
34
+ }
35
+ //# sourceMappingURL=oauth.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.guard.d.ts","sourceRoot":"","sources":["../../../src/core/guards/oauth.guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IAEZ,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oBAAoB;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=oauth.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.guard.js","sourceRoot":"","sources":["../../../src/core/guards/oauth.guard.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import 'reflect-metadata';
2
+ import { GuardConstructor } from './guard.interface.js';
3
+ /**
4
+ * Metadata key for guards
5
+ */
6
+ export declare const GUARDS_METADATA: unique symbol;
7
+ /**
8
+ * UseGuards decorator - Applies guards to a tool method
9
+ * Guards are executed before the tool handler
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * @Tool({ name: 'whoami', ... })
14
+ * @UseGuards(JWTGuard)
15
+ * async whoami(input: any, context: ExecutionContext) {
16
+ * // This only executes if JWTGuard.canActivate returns true
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function UseGuards(...guards: GuardConstructor[]): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
21
+ /**
22
+ * Get guards metadata for a specific method
23
+ */
24
+ export declare function getGuardsMetadata(target: any, methodName: string): GuardConstructor[];
25
+ //# sourceMappingURL=use-guards.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-guards.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/guards/use-guards.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,MAAM,EAAE,gBAAgB,EAAE,IACpC,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAKlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAErF"}
@@ -0,0 +1,32 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Metadata key for guards
4
+ */
5
+ export const GUARDS_METADATA = Symbol('guards:metadata');
6
+ /**
7
+ * UseGuards decorator - Applies guards to a tool method
8
+ * Guards are executed before the tool handler
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Tool({ name: 'whoami', ... })
13
+ * @UseGuards(JWTGuard)
14
+ * async whoami(input: any, context: ExecutionContext) {
15
+ * // This only executes if JWTGuard.canActivate returns true
16
+ * }
17
+ * ```
18
+ */
19
+ export function UseGuards(...guards) {
20
+ return function (target, propertyKey, descriptor) {
21
+ // Store guards metadata for this method
22
+ Reflect.defineMetadata(GUARDS_METADATA, guards, target, propertyKey);
23
+ return descriptor;
24
+ };
25
+ }
26
+ /**
27
+ * Get guards metadata for a specific method
28
+ */
29
+ export function getGuardsMetadata(target, methodName) {
30
+ return Reflect.getMetadata(GUARDS_METADATA, target, methodName) || [];
31
+ }
32
+ //# sourceMappingURL=use-guards.decorator.js.map