nitrostack 1.0.82 → 1.0.84

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 (431) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +38 -143
  3. package/package.json +13 -49
  4. package/dist/auth/__tests__/api-key.test.d.ts +0 -2
  5. package/dist/auth/__tests__/api-key.test.d.ts.map +0 -1
  6. package/dist/auth/__tests__/api-key.test.js +0 -156
  7. package/dist/auth/__tests__/api-key.test.js.map +0 -1
  8. package/dist/auth/__tests__/client.test.d.ts +0 -2
  9. package/dist/auth/__tests__/client.test.d.ts.map +0 -1
  10. package/dist/auth/__tests__/client.test.js +0 -173
  11. package/dist/auth/__tests__/client.test.js.map +0 -1
  12. package/dist/auth/__tests__/middleware.test.d.ts +0 -2
  13. package/dist/auth/__tests__/middleware.test.d.ts.map +0 -1
  14. package/dist/auth/__tests__/middleware.test.js +0 -232
  15. package/dist/auth/__tests__/middleware.test.js.map +0 -1
  16. package/dist/auth/__tests__/pkce.test.d.ts +0 -2
  17. package/dist/auth/__tests__/pkce.test.d.ts.map +0 -1
  18. package/dist/auth/__tests__/pkce.test.js +0 -110
  19. package/dist/auth/__tests__/pkce.test.js.map +0 -1
  20. package/dist/auth/__tests__/quick-setup.test.d.ts +0 -2
  21. package/dist/auth/__tests__/quick-setup.test.d.ts.map +0 -1
  22. package/dist/auth/__tests__/quick-setup.test.js +0 -95
  23. package/dist/auth/__tests__/quick-setup.test.js.map +0 -1
  24. package/dist/auth/__tests__/secure-secret.test.d.ts +0 -2
  25. package/dist/auth/__tests__/secure-secret.test.d.ts.map +0 -1
  26. package/dist/auth/__tests__/secure-secret.test.js +0 -104
  27. package/dist/auth/__tests__/secure-secret.test.js.map +0 -1
  28. package/dist/auth/__tests__/server-integration.test.d.ts +0 -2
  29. package/dist/auth/__tests__/server-integration.test.d.ts.map +0 -1
  30. package/dist/auth/__tests__/server-integration.test.js +0 -156
  31. package/dist/auth/__tests__/server-integration.test.js.map +0 -1
  32. package/dist/auth/__tests__/server-metadata.test.d.ts +0 -2
  33. package/dist/auth/__tests__/server-metadata.test.d.ts.map +0 -1
  34. package/dist/auth/__tests__/server-metadata.test.js +0 -72
  35. package/dist/auth/__tests__/server-metadata.test.js.map +0 -1
  36. package/dist/auth/__tests__/simple-jwt.test.d.ts +0 -2
  37. package/dist/auth/__tests__/simple-jwt.test.d.ts.map +0 -1
  38. package/dist/auth/__tests__/simple-jwt.test.js +0 -125
  39. package/dist/auth/__tests__/simple-jwt.test.js.map +0 -1
  40. package/dist/auth/__tests__/token-store.test.d.ts +0 -2
  41. package/dist/auth/__tests__/token-store.test.d.ts.map +0 -1
  42. package/dist/auth/__tests__/token-store.test.js +0 -167
  43. package/dist/auth/__tests__/token-store.test.js.map +0 -1
  44. package/dist/auth/__tests__/token-validation.test.d.ts +0 -2
  45. package/dist/auth/__tests__/token-validation.test.d.ts.map +0 -1
  46. package/dist/auth/__tests__/token-validation.test.js +0 -219
  47. package/dist/auth/__tests__/token-validation.test.js.map +0 -1
  48. package/dist/auth/api-key.d.ts +0 -118
  49. package/dist/auth/api-key.d.ts.map +0 -1
  50. package/dist/auth/api-key.js +0 -168
  51. package/dist/auth/api-key.js.map +0 -1
  52. package/dist/auth/client.d.ts +0 -151
  53. package/dist/auth/client.d.ts.map +0 -1
  54. package/dist/auth/client.js +0 -330
  55. package/dist/auth/client.js.map +0 -1
  56. package/dist/auth/index.d.ts +0 -31
  57. package/dist/auth/index.d.ts.map +0 -1
  58. package/dist/auth/index.js +0 -46
  59. package/dist/auth/index.js.map +0 -1
  60. package/dist/auth/middleware.d.ts +0 -95
  61. package/dist/auth/middleware.d.ts.map +0 -1
  62. package/dist/auth/middleware.js +0 -260
  63. package/dist/auth/middleware.js.map +0 -1
  64. package/dist/auth/pkce.d.ts +0 -53
  65. package/dist/auth/pkce.d.ts.map +0 -1
  66. package/dist/auth/pkce.js +0 -105
  67. package/dist/auth/pkce.js.map +0 -1
  68. package/dist/auth/quick-setup.d.ts +0 -94
  69. package/dist/auth/quick-setup.d.ts.map +0 -1
  70. package/dist/auth/quick-setup.js +0 -210
  71. package/dist/auth/quick-setup.js.map +0 -1
  72. package/dist/auth/secure-secret.d.ts +0 -136
  73. package/dist/auth/secure-secret.d.ts.map +0 -1
  74. package/dist/auth/secure-secret.js +0 -182
  75. package/dist/auth/secure-secret.js.map +0 -1
  76. package/dist/auth/server-integration.d.ts +0 -97
  77. package/dist/auth/server-integration.d.ts.map +0 -1
  78. package/dist/auth/server-integration.js +0 -182
  79. package/dist/auth/server-integration.js.map +0 -1
  80. package/dist/auth/server-metadata.d.ts +0 -51
  81. package/dist/auth/server-metadata.d.ts.map +0 -1
  82. package/dist/auth/server-metadata.js +0 -106
  83. package/dist/auth/server-metadata.js.map +0 -1
  84. package/dist/auth/simple-jwt.d.ts +0 -174
  85. package/dist/auth/simple-jwt.d.ts.map +0 -1
  86. package/dist/auth/simple-jwt.js +0 -162
  87. package/dist/auth/simple-jwt.js.map +0 -1
  88. package/dist/auth/token-store.d.ts +0 -104
  89. package/dist/auth/token-store.d.ts.map +0 -1
  90. package/dist/auth/token-store.js +0 -205
  91. package/dist/auth/token-store.js.map +0 -1
  92. package/dist/auth/token-validation.d.ts +0 -59
  93. package/dist/auth/token-validation.d.ts.map +0 -1
  94. package/dist/auth/token-validation.js +0 -241
  95. package/dist/auth/token-validation.js.map +0 -1
  96. package/dist/auth/types.d.ts +0 -215
  97. package/dist/auth/types.d.ts.map +0 -1
  98. package/dist/auth/types.js +0 -6
  99. package/dist/auth/types.js.map +0 -1
  100. package/dist/core/__tests__/app-decorator.test.d.ts +0 -2
  101. package/dist/core/__tests__/app-decorator.test.d.ts.map +0 -1
  102. package/dist/core/__tests__/app-decorator.test.js +0 -100
  103. package/dist/core/__tests__/app-decorator.test.js.map +0 -1
  104. package/dist/core/__tests__/app-factory.extended.test.d.ts +0 -2
  105. package/dist/core/__tests__/app-factory.extended.test.d.ts.map +0 -1
  106. package/dist/core/__tests__/app-factory.extended.test.js +0 -244
  107. package/dist/core/__tests__/app-factory.extended.test.js.map +0 -1
  108. package/dist/core/__tests__/builders.test.d.ts +0 -2
  109. package/dist/core/__tests__/builders.test.d.ts.map +0 -1
  110. package/dist/core/__tests__/builders.test.js +0 -98
  111. package/dist/core/__tests__/builders.test.js.map +0 -1
  112. package/dist/core/__tests__/component.test.d.ts +0 -2
  113. package/dist/core/__tests__/component.test.d.ts.map +0 -1
  114. package/dist/core/__tests__/component.test.js +0 -151
  115. package/dist/core/__tests__/component.test.js.map +0 -1
  116. package/dist/core/__tests__/config-module.test.d.ts +0 -2
  117. package/dist/core/__tests__/config-module.test.d.ts.map +0 -1
  118. package/dist/core/__tests__/config-module.test.js +0 -90
  119. package/dist/core/__tests__/config-module.test.js.map +0 -1
  120. package/dist/core/__tests__/core-modules.test.d.ts +0 -2
  121. package/dist/core/__tests__/core-modules.test.d.ts.map +0 -1
  122. package/dist/core/__tests__/core-modules.test.js +0 -36
  123. package/dist/core/__tests__/core-modules.test.js.map +0 -1
  124. package/dist/core/__tests__/di.test.d.ts +0 -2
  125. package/dist/core/__tests__/di.test.d.ts.map +0 -1
  126. package/dist/core/__tests__/di.test.js +0 -101
  127. package/dist/core/__tests__/di.test.js.map +0 -1
  128. package/dist/core/__tests__/errors.test.d.ts +0 -2
  129. package/dist/core/__tests__/errors.test.d.ts.map +0 -1
  130. package/dist/core/__tests__/errors.test.js +0 -109
  131. package/dist/core/__tests__/errors.test.js.map +0 -1
  132. package/dist/core/__tests__/final.blitz.test.d.ts +0 -2
  133. package/dist/core/__tests__/final.blitz.test.d.ts.map +0 -1
  134. package/dist/core/__tests__/final.blitz.test.js +0 -327
  135. package/dist/core/__tests__/final.blitz.test.js.map +0 -1
  136. package/dist/core/__tests__/jwt-module.test.d.ts +0 -2
  137. package/dist/core/__tests__/jwt-module.test.d.ts.map +0 -1
  138. package/dist/core/__tests__/jwt-module.test.js +0 -60
  139. package/dist/core/__tests__/jwt-module.test.js.map +0 -1
  140. package/dist/core/__tests__/logger.test.d.ts +0 -2
  141. package/dist/core/__tests__/logger.test.d.ts.map +0 -1
  142. package/dist/core/__tests__/logger.test.js +0 -83
  143. package/dist/core/__tests__/logger.test.js.map +0 -1
  144. package/dist/core/__tests__/models.test.d.ts +0 -2
  145. package/dist/core/__tests__/models.test.d.ts.map +0 -1
  146. package/dist/core/__tests__/models.test.js +0 -142
  147. package/dist/core/__tests__/models.test.js.map +0 -1
  148. package/dist/core/__tests__/module.test.d.ts +0 -2
  149. package/dist/core/__tests__/module.test.d.ts.map +0 -1
  150. package/dist/core/__tests__/module.test.js +0 -58
  151. package/dist/core/__tests__/module.test.js.map +0 -1
  152. package/dist/core/__tests__/oauth-module.test.d.ts +0 -2
  153. package/dist/core/__tests__/oauth-module.test.d.ts.map +0 -1
  154. package/dist/core/__tests__/oauth-module.test.js +0 -168
  155. package/dist/core/__tests__/oauth-module.test.js.map +0 -1
  156. package/dist/core/__tests__/oauth.extended.test.d.ts +0 -2
  157. package/dist/core/__tests__/oauth.extended.test.d.ts.map +0 -1
  158. package/dist/core/__tests__/oauth.extended.test.js +0 -146
  159. package/dist/core/__tests__/oauth.extended.test.js.map +0 -1
  160. package/dist/core/__tests__/prompt.test.d.ts +0 -2
  161. package/dist/core/__tests__/prompt.test.d.ts.map +0 -1
  162. package/dist/core/__tests__/prompt.test.js +0 -126
  163. package/dist/core/__tests__/prompt.test.js.map +0 -1
  164. package/dist/core/__tests__/resource.test.d.ts +0 -2
  165. package/dist/core/__tests__/resource.test.d.ts.map +0 -1
  166. package/dist/core/__tests__/resource.test.js +0 -173
  167. package/dist/core/__tests__/resource.test.js.map +0 -1
  168. package/dist/core/__tests__/server.extended.test.d.ts +0 -2
  169. package/dist/core/__tests__/server.extended.test.d.ts.map +0 -1
  170. package/dist/core/__tests__/server.extended.test.js +0 -242
  171. package/dist/core/__tests__/server.extended.test.js.map +0 -1
  172. package/dist/core/__tests__/server.test.d.ts +0 -2
  173. package/dist/core/__tests__/server.test.d.ts.map +0 -1
  174. package/dist/core/__tests__/server.test.js +0 -120
  175. package/dist/core/__tests__/server.test.js.map +0 -1
  176. package/dist/core/__tests__/transport.http.test.d.ts +0 -2
  177. package/dist/core/__tests__/transport.http.test.d.ts.map +0 -1
  178. package/dist/core/__tests__/transport.http.test.js +0 -119
  179. package/dist/core/__tests__/transport.http.test.js.map +0 -1
  180. package/dist/core/__tests__/transport.streamable.test.d.ts +0 -2
  181. package/dist/core/__tests__/transport.streamable.test.d.ts.map +0 -1
  182. package/dist/core/__tests__/transport.streamable.test.js +0 -168
  183. package/dist/core/__tests__/transport.streamable.test.js.map +0 -1
  184. package/dist/core/__tests__/transports.test.d.ts +0 -2
  185. package/dist/core/__tests__/transports.test.d.ts.map +0 -1
  186. package/dist/core/__tests__/transports.test.js +0 -12
  187. package/dist/core/__tests__/transports.test.js.map +0 -1
  188. package/dist/core/apikey-module.d.ts +0 -69
  189. package/dist/core/apikey-module.d.ts.map +0 -1
  190. package/dist/core/apikey-module.js +0 -114
  191. package/dist/core/apikey-module.js.map +0 -1
  192. package/dist/core/app-decorator.d.ts +0 -59
  193. package/dist/core/app-decorator.d.ts.map +0 -1
  194. package/dist/core/app-decorator.js +0 -322
  195. package/dist/core/app-decorator.js.map +0 -1
  196. package/dist/core/builders.d.ts +0 -50
  197. package/dist/core/builders.d.ts.map +0 -1
  198. package/dist/core/builders.js +0 -139
  199. package/dist/core/builders.js.map +0 -1
  200. package/dist/core/component.d.ts +0 -111
  201. package/dist/core/component.d.ts.map +0 -1
  202. package/dist/core/component.js +0 -228
  203. package/dist/core/component.js.map +0 -1
  204. package/dist/core/config-module.d.ts +0 -62
  205. package/dist/core/config-module.d.ts.map +0 -1
  206. package/dist/core/config-module.js +0 -94
  207. package/dist/core/config-module.js.map +0 -1
  208. package/dist/core/decorators/__tests__/decorators.test.d.ts +0 -2
  209. package/dist/core/decorators/__tests__/decorators.test.d.ts.map +0 -1
  210. package/dist/core/decorators/__tests__/decorators.test.js +0 -103
  211. package/dist/core/decorators/__tests__/decorators.test.js.map +0 -1
  212. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts +0 -2
  213. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts.map +0 -1
  214. package/dist/core/decorators/__tests__/extended-decorators.test.js +0 -194
  215. package/dist/core/decorators/__tests__/extended-decorators.test.js.map +0 -1
  216. package/dist/core/decorators/__tests__/health-check.test.d.ts +0 -2
  217. package/dist/core/decorators/__tests__/health-check.test.d.ts.map +0 -1
  218. package/dist/core/decorators/__tests__/health-check.test.js +0 -119
  219. package/dist/core/decorators/__tests__/health-check.test.js.map +0 -1
  220. package/dist/core/decorators/cache.decorator.d.ts +0 -61
  221. package/dist/core/decorators/cache.decorator.d.ts.map +0 -1
  222. package/dist/core/decorators/cache.decorator.js +0 -115
  223. package/dist/core/decorators/cache.decorator.js.map +0 -1
  224. package/dist/core/decorators/health-check.decorator.d.ts +0 -80
  225. package/dist/core/decorators/health-check.decorator.d.ts.map +0 -1
  226. package/dist/core/decorators/health-check.decorator.js +0 -153
  227. package/dist/core/decorators/health-check.decorator.js.map +0 -1
  228. package/dist/core/decorators/rate-limit.decorator.d.ts +0 -63
  229. package/dist/core/decorators/rate-limit.decorator.d.ts.map +0 -1
  230. package/dist/core/decorators/rate-limit.decorator.js +0 -129
  231. package/dist/core/decorators/rate-limit.decorator.js.map +0 -1
  232. package/dist/core/decorators.d.ts +0 -190
  233. package/dist/core/decorators.d.ts.map +0 -1
  234. package/dist/core/decorators.js +0 -170
  235. package/dist/core/decorators.js.map +0 -1
  236. package/dist/core/di/__tests__/container.test.d.ts +0 -2
  237. package/dist/core/di/__tests__/container.test.d.ts.map +0 -1
  238. package/dist/core/di/__tests__/container.test.js +0 -88
  239. package/dist/core/di/__tests__/container.test.js.map +0 -1
  240. package/dist/core/di/container.d.ts +0 -59
  241. package/dist/core/di/container.d.ts.map +0 -1
  242. package/dist/core/di/container.js +0 -93
  243. package/dist/core/di/container.js.map +0 -1
  244. package/dist/core/di/injectable.decorator.d.ts +0 -37
  245. package/dist/core/di/injectable.decorator.d.ts.map +0 -1
  246. package/dist/core/di/injectable.decorator.js +0 -57
  247. package/dist/core/di/injectable.decorator.js.map +0 -1
  248. package/dist/core/errors.d.ts +0 -54
  249. package/dist/core/errors.d.ts.map +0 -1
  250. package/dist/core/errors.js +0 -87
  251. package/dist/core/errors.js.map +0 -1
  252. package/dist/core/events/__tests__/events.test.d.ts +0 -2
  253. package/dist/core/events/__tests__/events.test.d.ts.map +0 -1
  254. package/dist/core/events/__tests__/events.test.js +0 -177
  255. package/dist/core/events/__tests__/events.test.js.map +0 -1
  256. package/dist/core/events/event-emitter.d.ts +0 -50
  257. package/dist/core/events/event-emitter.d.ts.map +0 -1
  258. package/dist/core/events/event-emitter.js +0 -94
  259. package/dist/core/events/event-emitter.js.map +0 -1
  260. package/dist/core/events/event.decorator.d.ts +0 -48
  261. package/dist/core/events/event.decorator.d.ts.map +0 -1
  262. package/dist/core/events/event.decorator.js +0 -72
  263. package/dist/core/events/event.decorator.js.map +0 -1
  264. package/dist/core/events/log-emitter.d.ts +0 -14
  265. package/dist/core/events/log-emitter.d.ts.map +0 -1
  266. package/dist/core/events/log-emitter.js +0 -20
  267. package/dist/core/events/log-emitter.js.map +0 -1
  268. package/dist/core/filters/__tests__/filters.test.d.ts +0 -2
  269. package/dist/core/filters/__tests__/filters.test.d.ts.map +0 -1
  270. package/dist/core/filters/__tests__/filters.test.js +0 -72
  271. package/dist/core/filters/__tests__/filters.test.js.map +0 -1
  272. package/dist/core/filters/exception-filter.decorator.d.ts +0 -40
  273. package/dist/core/filters/exception-filter.decorator.d.ts.map +0 -1
  274. package/dist/core/filters/exception-filter.decorator.js +0 -54
  275. package/dist/core/filters/exception-filter.decorator.js.map +0 -1
  276. package/dist/core/filters/exception-filter.interface.d.ts +0 -39
  277. package/dist/core/filters/exception-filter.interface.d.ts.map +0 -1
  278. package/dist/core/filters/exception-filter.interface.js +0 -2
  279. package/dist/core/filters/exception-filter.interface.js.map +0 -1
  280. package/dist/core/guards/__tests__/guards.test.d.ts +0 -2
  281. package/dist/core/guards/__tests__/guards.test.d.ts.map +0 -1
  282. package/dist/core/guards/__tests__/guards.test.js +0 -55
  283. package/dist/core/guards/__tests__/guards.test.js.map +0 -1
  284. package/dist/core/guards/apikey.guard.d.ts +0 -22
  285. package/dist/core/guards/apikey.guard.d.ts.map +0 -1
  286. package/dist/core/guards/apikey.guard.js +0 -11
  287. package/dist/core/guards/apikey.guard.js.map +0 -1
  288. package/dist/core/guards/guard.interface.d.ts +0 -18
  289. package/dist/core/guards/guard.interface.d.ts.map +0 -1
  290. package/dist/core/guards/guard.interface.js +0 -2
  291. package/dist/core/guards/guard.interface.js.map +0 -1
  292. package/dist/core/guards/jwt.guard.d.ts +0 -18
  293. package/dist/core/guards/jwt.guard.d.ts.map +0 -1
  294. package/dist/core/guards/jwt.guard.js +0 -2
  295. package/dist/core/guards/jwt.guard.js.map +0 -1
  296. package/dist/core/guards/oauth.guard.d.ts +0 -35
  297. package/dist/core/guards/oauth.guard.d.ts.map +0 -1
  298. package/dist/core/guards/oauth.guard.js +0 -2
  299. package/dist/core/guards/oauth.guard.js.map +0 -1
  300. package/dist/core/guards/use-guards.decorator.d.ts +0 -25
  301. package/dist/core/guards/use-guards.decorator.d.ts.map +0 -1
  302. package/dist/core/guards/use-guards.decorator.js +0 -32
  303. package/dist/core/guards/use-guards.decorator.js.map +0 -1
  304. package/dist/core/health/__tests__/health.test.d.ts +0 -2
  305. package/dist/core/health/__tests__/health.test.d.ts.map +0 -1
  306. package/dist/core/health/__tests__/health.test.js +0 -31
  307. package/dist/core/health/__tests__/health.test.js.map +0 -1
  308. package/dist/core/health/health-checks.resource.d.ts +0 -14
  309. package/dist/core/health/health-checks.resource.d.ts.map +0 -1
  310. package/dist/core/health/health-checks.resource.js +0 -29
  311. package/dist/core/health/health-checks.resource.js.map +0 -1
  312. package/dist/core/index.d.ts +0 -56
  313. package/dist/core/index.d.ts.map +0 -1
  314. package/dist/core/index.js +0 -60
  315. package/dist/core/index.js.map +0 -1
  316. package/dist/core/interceptors/__tests__/interceptors.test.d.ts +0 -2
  317. package/dist/core/interceptors/__tests__/interceptors.test.d.ts.map +0 -1
  318. package/dist/core/interceptors/__tests__/interceptors.test.js +0 -52
  319. package/dist/core/interceptors/__tests__/interceptors.test.js.map +0 -1
  320. package/dist/core/interceptors/interceptor.decorator.d.ts +0 -37
  321. package/dist/core/interceptors/interceptor.decorator.d.ts.map +0 -1
  322. package/dist/core/interceptors/interceptor.decorator.js +0 -51
  323. package/dist/core/interceptors/interceptor.decorator.js.map +0 -1
  324. package/dist/core/interceptors/interceptor.interface.d.ts +0 -31
  325. package/dist/core/interceptors/interceptor.interface.d.ts.map +0 -1
  326. package/dist/core/interceptors/interceptor.interface.js +0 -2
  327. package/dist/core/interceptors/interceptor.interface.js.map +0 -1
  328. package/dist/core/jwt-module.d.ts +0 -51
  329. package/dist/core/jwt-module.d.ts.map +0 -1
  330. package/dist/core/jwt-module.js +0 -52
  331. package/dist/core/jwt-module.js.map +0 -1
  332. package/dist/core/logger.d.ts +0 -18
  333. package/dist/core/logger.d.ts.map +0 -1
  334. package/dist/core/logger.js +0 -53
  335. package/dist/core/logger.js.map +0 -1
  336. package/dist/core/middleware/__tests__/middleware.test.d.ts +0 -2
  337. package/dist/core/middleware/__tests__/middleware.test.d.ts.map +0 -1
  338. package/dist/core/middleware/__tests__/middleware.test.js +0 -105
  339. package/dist/core/middleware/__tests__/middleware.test.js.map +0 -1
  340. package/dist/core/middleware/middleware.decorator.d.ts +0 -39
  341. package/dist/core/middleware/middleware.decorator.d.ts.map +0 -1
  342. package/dist/core/middleware/middleware.decorator.js +0 -53
  343. package/dist/core/middleware/middleware.decorator.js.map +0 -1
  344. package/dist/core/middleware/middleware.interface.d.ts +0 -29
  345. package/dist/core/middleware/middleware.interface.d.ts.map +0 -1
  346. package/dist/core/middleware/middleware.interface.js +0 -2
  347. package/dist/core/middleware/middleware.interface.js.map +0 -1
  348. package/dist/core/module.d.ts +0 -93
  349. package/dist/core/module.d.ts.map +0 -1
  350. package/dist/core/module.js +0 -87
  351. package/dist/core/module.js.map +0 -1
  352. package/dist/core/oauth-module.d.ts +0 -123
  353. package/dist/core/oauth-module.d.ts.map +0 -1
  354. package/dist/core/oauth-module.js +0 -324
  355. package/dist/core/oauth-module.js.map +0 -1
  356. package/dist/core/pipes/__tests__/pipes.test.d.ts +0 -2
  357. package/dist/core/pipes/__tests__/pipes.test.d.ts.map +0 -1
  358. package/dist/core/pipes/__tests__/pipes.test.js +0 -164
  359. package/dist/core/pipes/__tests__/pipes.test.js.map +0 -1
  360. package/dist/core/pipes/pipe.decorator.d.ts +0 -64
  361. package/dist/core/pipes/pipe.decorator.d.ts.map +0 -1
  362. package/dist/core/pipes/pipe.decorator.js +0 -85
  363. package/dist/core/pipes/pipe.decorator.js.map +0 -1
  364. package/dist/core/pipes/pipe.interface.d.ts +0 -41
  365. package/dist/core/pipes/pipe.interface.d.ts.map +0 -1
  366. package/dist/core/pipes/pipe.interface.js +0 -2
  367. package/dist/core/pipes/pipe.interface.js.map +0 -1
  368. package/dist/core/prompt.d.ts +0 -46
  369. package/dist/core/prompt.d.ts.map +0 -1
  370. package/dist/core/prompt.js +0 -76
  371. package/dist/core/prompt.js.map +0 -1
  372. package/dist/core/resource.d.ts +0 -47
  373. package/dist/core/resource.d.ts.map +0 -1
  374. package/dist/core/resource.js +0 -90
  375. package/dist/core/resource.js.map +0 -1
  376. package/dist/core/server.d.ts +0 -129
  377. package/dist/core/server.d.ts.map +0 -1
  378. package/dist/core/server.js +0 -617
  379. package/dist/core/server.js.map +0 -1
  380. package/dist/core/tool.d.ts +0 -108
  381. package/dist/core/tool.d.ts.map +0 -1
  382. package/dist/core/tool.js +0 -241
  383. package/dist/core/tool.js.map +0 -1
  384. package/dist/core/transports/__tests__/transports.test.d.ts +0 -2
  385. package/dist/core/transports/__tests__/transports.test.d.ts.map +0 -1
  386. package/dist/core/transports/__tests__/transports.test.js +0 -249
  387. package/dist/core/transports/__tests__/transports.test.js.map +0 -1
  388. package/dist/core/transports/discovery-http-server.d.ts +0 -19
  389. package/dist/core/transports/discovery-http-server.d.ts.map +0 -1
  390. package/dist/core/transports/discovery-http-server.js +0 -54
  391. package/dist/core/transports/discovery-http-server.js.map +0 -1
  392. package/dist/core/transports/http-server.d.ts +0 -108
  393. package/dist/core/transports/http-server.d.ts.map +0 -1
  394. package/dist/core/transports/http-server.js +0 -293
  395. package/dist/core/transports/http-server.js.map +0 -1
  396. package/dist/core/transports/streamable-http.d.ts +0 -177
  397. package/dist/core/transports/streamable-http.d.ts.map +0 -1
  398. package/dist/core/transports/streamable-http.js +0 -1287
  399. package/dist/core/transports/streamable-http.js.map +0 -1
  400. package/dist/core/types.d.ts +0 -195
  401. package/dist/core/types.d.ts.map +0 -1
  402. package/dist/core/types.js +0 -2
  403. package/dist/core/types.js.map +0 -1
  404. package/dist/core/widgets/__tests__/registry.test.d.ts +0 -2
  405. package/dist/core/widgets/__tests__/registry.test.d.ts.map +0 -1
  406. package/dist/core/widgets/__tests__/registry.test.js +0 -69
  407. package/dist/core/widgets/__tests__/registry.test.js.map +0 -1
  408. package/dist/core/widgets/widget-examples.resource.d.ts +0 -17
  409. package/dist/core/widgets/widget-examples.resource.d.ts.map +0 -1
  410. package/dist/core/widgets/widget-examples.resource.js +0 -28
  411. package/dist/core/widgets/widget-examples.resource.js.map +0 -1
  412. package/dist/core/widgets/widget-registry.d.ts +0 -56
  413. package/dist/core/widgets/widget-registry.d.ts.map +0 -1
  414. package/dist/core/widgets/widget-registry.js +0 -75
  415. package/dist/core/widgets/widget-registry.js.map +0 -1
  416. package/dist/testing/__tests__/testing.test.d.ts +0 -2
  417. package/dist/testing/__tests__/testing.test.d.ts.map +0 -1
  418. package/dist/testing/__tests__/testing.test.js +0 -167
  419. package/dist/testing/__tests__/testing.test.js.map +0 -1
  420. package/dist/testing/index.d.ts +0 -103
  421. package/dist/testing/index.d.ts.map +0 -1
  422. package/dist/testing/index.js +0 -161
  423. package/dist/testing/index.js.map +0 -1
  424. package/dist/ui-next/__tests__/ui-next.test.d.ts +0 -2
  425. package/dist/ui-next/__tests__/ui-next.test.d.ts.map +0 -1
  426. package/dist/ui-next/__tests__/ui-next.test.js +0 -74
  427. package/dist/ui-next/__tests__/ui-next.test.js.map +0 -1
  428. package/dist/ui-next/index.d.ts +0 -31
  429. package/dist/ui-next/index.d.ts.map +0 -1
  430. package/dist/ui-next/index.js +0 -687
  431. package/dist/ui-next/index.js.map +0 -1
@@ -1,324 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- var OAuthModule_1;
14
- import 'reflect-metadata';
15
- /**
16
- * OAuth Module - Enable OAuth 2.1 authentication in your MCP server
17
- *
18
- * This module provides:
19
- * - Protected Resource Metadata (RFC 9728)
20
- * - Token validation with audience binding (RFC 8707)
21
- * - Token introspection (RFC 7662)
22
- * - PKCE support (RFC 7636)
23
- *
24
- * Compatible with OpenAI Apps SDK and MCP specification.
25
- *
26
- * @example
27
- * ```typescript
28
- * import { McpApplicationFactory, OAuthModule } from 'nitrostack';
29
- * import { AppModule } from './app.module.js';
30
- *
31
- * @McpApp({
32
- * module: AppModule,
33
- * server: {
34
- * name: 'OAuth MCP Server',
35
- * version: '1.0.0',
36
- * },
37
- * })
38
- * @Module({
39
- * name: 'app',
40
- * imports: [
41
- * // Enable OAuth 2.1 authentication
42
- * OAuthModule.forRoot({
43
- * resourceUri: process.env.RESOURCE_URI!,
44
- * authorizationServers: [process.env.AUTH_SERVER_URL!],
45
- * scopesSupported: ['mcp:read', 'mcp:write', 'tools:execute'],
46
- * tokenIntrospectionEndpoint: process.env.INTROSPECTION_ENDPOINT,
47
- * tokenIntrospectionClientId: process.env.INTROSPECTION_CLIENT_ID,
48
- * tokenIntrospectionClientSecret: process.env.INTROSPECTION_CLIENT_SECRET,
49
- * }),
50
- * ],
51
- * })
52
- * export class AppModule {}
53
- * ```
54
- */
55
- import { Injectable, Inject } from './di/injectable.decorator.js';
56
- import { NitroStackServer } from './server.js';
57
- import { DiscoveryHttpServer } from './transports/discovery-http-server.js';
58
- let OAuthModule = class OAuthModule {
59
- static { OAuthModule_1 = this; }
60
- config;
61
- server;
62
- logger;
63
- static config = null;
64
- discoveryServer = null;
65
- wellKnownHandler = (req, res) => {
66
- res.writeHead(200, { 'Content-Type': 'application/json' });
67
- res.end(JSON.stringify({
68
- issuer: this.config.issuer,
69
- token_endpoint: `${this.config.authorizationServers[0]}/oauth/token`,
70
- // Add other metadata as needed
71
- }));
72
- };
73
- resourceMetadataHandler = (req, res) => {
74
- res.writeHead(200, { 'Content-Type': 'application/json' });
75
- // RFC 9728 - Protected Resource Metadata format
76
- const metadata = {
77
- resource: this.config.resourceUri,
78
- authorization_servers: this.config.authorizationServers,
79
- };
80
- // Add optional fields
81
- if (this.config.scopesSupported && this.config.scopesSupported.length > 0) {
82
- metadata.scopes_supported = this.config.scopesSupported;
83
- }
84
- res.end(JSON.stringify(metadata));
85
- };
86
- constructor(config, server, logger) {
87
- this.config = config;
88
- this.server = server;
89
- this.logger = logger;
90
- OAuthModule_1.config = config;
91
- }
92
- onModuleInit() {
93
- // Register the discovery endpoints
94
- // Handlers are now arrow functions, so no need to bind
95
- }
96
- async start() {
97
- this.logger.info('OAuthModule: start method called');
98
- const transportType = this.server._transportType;
99
- // Get port from environment or config, fallback to 3005
100
- // Check MCP_SERVER_PORT first (set by dev command), then PORT, then config
101
- const port = process.env.MCP_SERVER_PORT
102
- ? parseInt(process.env.MCP_SERVER_PORT)
103
- : process.env.PORT
104
- ? parseInt(process.env.PORT)
105
- : (this.config.http?.port || 3005);
106
- if (transportType === 'stdio') {
107
- this.logger.info(`OAuthModule: Running in STDIO mode, starting DiscoveryHttpServer on port ${port}`);
108
- // In stdio mode, start a separate discovery server for OAuth endpoints
109
- this.discoveryServer = new DiscoveryHttpServer(port, this.logger);
110
- this.registerDiscoveryHandlers(this.discoveryServer);
111
- await this.discoveryServer.start();
112
- }
113
- else {
114
- this.logger.info(`OAuthModule: Running in ${transportType} mode, registering handlers with main server`);
115
- // In http or dual mode, register the handlers with the main server
116
- const httpTransport = this.server._httpTransport;
117
- if (httpTransport) {
118
- this.registerDiscoveryHandlers(httpTransport);
119
- }
120
- else {
121
- // Fallback: if httpTransport is not available, start a discovery server anyway
122
- // This handles edge cases where the transport setup fails or is delayed
123
- this.logger.warn(`OAuthModule: httpTransport not found for ${transportType} mode. Starting fallback DiscoveryHttpServer on port ${port}`);
124
- this.discoveryServer = new DiscoveryHttpServer(port, this.logger);
125
- this.registerDiscoveryHandlers(this.discoveryServer);
126
- await this.discoveryServer.start();
127
- }
128
- }
129
- }
130
- async stop() {
131
- if (this.discoveryServer) {
132
- await this.discoveryServer.stop();
133
- this.discoveryServer = null;
134
- }
135
- }
136
- registerDiscoveryHandlers(server) {
137
- server.on('/.well-known/oauth-authorization-server', this.wellKnownHandler);
138
- server.on('/.well-known/oauth-protected-resource', this.resourceMetadataHandler);
139
- }
140
- /**
141
- * Configure OAuth module for the application
142
- */
143
- static forRoot(config) {
144
- // Validate required fields
145
- if (!config.resourceUri) {
146
- throw new Error('OAuthModule: resourceUri is required');
147
- }
148
- if (!config.authorizationServers || config.authorizationServers.length === 0) {
149
- throw new Error('OAuthModule: at least one authorizationServer is required');
150
- }
151
- // Set default audience to resourceUri if not provided
152
- if (!config.audience) {
153
- config.audience = config.resourceUri;
154
- }
155
- this.config = config;
156
- return {
157
- module: OAuthModule_1,
158
- providers: [
159
- { provide: 'OAUTH_CONFIG', useValue: config }
160
- ],
161
- };
162
- }
163
- /**
164
- * Get current OAuth configuration
165
- */
166
- static getConfig() {
167
- return this.config;
168
- }
169
- /**
170
- * Validate an access token
171
- *
172
- * Performs:
173
- * 1. Token introspection (if endpoint configured)
174
- * 2. Audience validation (RFC 8807)
175
- * 3. Issuer validation (if configured)
176
- * 4. Custom validation (if configured)
177
- */
178
- static async validateToken(token) {
179
- if (!this.config) {
180
- return { valid: false, error: 'OAuth module not configured' };
181
- }
182
- try {
183
- // Decode the header to check token type and provide helpful error message
184
- try {
185
- const headerPart = token.split('.')[0];
186
- const decodedHeader = JSON.parse(Buffer.from(headerPart, 'base64').toString());
187
- // Check if we received a JWE (encrypted) token instead of JWT
188
- if (decodedHeader.alg === 'dir' || decodedHeader.enc) {
189
- return {
190
- valid: false,
191
- error: 'Received encrypted JWE token. MCP servers require unencrypted JWT access tokens. Check your OAuth provider application settings to ensure ID Token Encryption is disabled and that the "audience" parameter is being sent in authorization requests.'
192
- };
193
- }
194
- }
195
- catch (headerError) {
196
- // If header decode fails, continue with normal validation
197
- }
198
- // If introspection endpoint is configured, use it
199
- if (this.config.tokenIntrospectionEndpoint) {
200
- return await this.introspectToken(token);
201
- }
202
- // For JWT tokens without introspection, decode and validate
203
- // Note: In production, you should validate JWT signature
204
- const payload = this.decodeToken(token);
205
- if (!payload) {
206
- return { valid: false, error: 'Invalid token format' };
207
- }
208
- // Validate audience (RFC 8707 - critical for security)
209
- if (payload.aud) {
210
- const audiences = Array.isArray(payload.aud) ? payload.aud : [payload.aud];
211
- if (!audiences.includes(this.config.audience)) {
212
- return {
213
- valid: false,
214
- error: `Token audience mismatch. Expected: ${this.config.audience}, Got: ${audiences.join(', ')}`,
215
- };
216
- }
217
- }
218
- // Validate issuer
219
- if (this.config.issuer && payload.iss !== this.config.issuer) {
220
- return {
221
- valid: false,
222
- error: `Token issuer mismatch. Expected: ${this.config.issuer}, Got: ${payload.iss}`,
223
- };
224
- }
225
- // Check expiration
226
- const expiration = payload.exp;
227
- if (expiration && expiration < Date.now() / 1000) {
228
- return { valid: false, error: 'Token expired' };
229
- }
230
- // Custom validation
231
- if (this.config.customValidation) {
232
- const customValid = await this.config.customValidation(payload);
233
- if (!customValid) {
234
- return { valid: false, error: 'Custom validation failed' };
235
- }
236
- }
237
- return { valid: true, payload };
238
- }
239
- catch (error) {
240
- return { valid: false, error: error instanceof Error ? error.message : String(error) };
241
- }
242
- }
243
- /**
244
- * Introspect token using RFC 7662
245
- * @private
246
- */
247
- static async introspectToken(token) {
248
- if (!this.config?.tokenIntrospectionEndpoint) {
249
- return { valid: false, error: 'Introspection endpoint not configured' };
250
- }
251
- try {
252
- const auth = Buffer.from(`${this.config.tokenIntrospectionClientId}:${this.config.tokenIntrospectionClientSecret}`).toString('base64');
253
- const response = await fetch(this.config.tokenIntrospectionEndpoint, {
254
- method: 'POST',
255
- headers: {
256
- 'Content-Type': 'application/x-www-form-urlencoded',
257
- 'Authorization': `Basic ${auth}`,
258
- },
259
- body: new URLSearchParams({
260
- token: token,
261
- token_type_hint: 'access_token',
262
- }),
263
- });
264
- if (!response.ok) {
265
- return {
266
- valid: false,
267
- error: `Introspection failed: ${response.status} ${response.statusText}`,
268
- };
269
- }
270
- const result = await response.json();
271
- if (!result.active) {
272
- return { valid: false, error: 'Token is not active' };
273
- }
274
- // Validate audience from introspection response
275
- if (result.aud) {
276
- const audiences = Array.isArray(result.aud) ? result.aud : [result.aud];
277
- if (!audiences.includes(this.config.audience)) {
278
- return {
279
- valid: false,
280
- error: `Token audience mismatch. Expected: ${this.config.audience}`,
281
- };
282
- }
283
- }
284
- return { valid: true, payload: result };
285
- }
286
- catch (error) {
287
- return { valid: false, error: `Introspection error: ${error instanceof Error ? error.message : String(error)}` };
288
- }
289
- }
290
- /**
291
- * Decode JWT token (without validation)
292
- * @private
293
- */
294
- static decodeToken(token) {
295
- try {
296
- const parts = token.split('.');
297
- if (parts.length !== 3)
298
- return null;
299
- // Convert base64url to base64 by replacing URL-safe characters
300
- let base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
301
- // Add padding if necessary
302
- const padding = base64.length % 4;
303
- if (padding === 2) {
304
- base64 += '==';
305
- }
306
- else if (padding === 3) {
307
- base64 += '=';
308
- }
309
- const payload = JSON.parse(Buffer.from(base64, 'base64').toString('utf8'));
310
- return payload;
311
- }
312
- catch {
313
- return null;
314
- }
315
- }
316
- };
317
- OAuthModule = OAuthModule_1 = __decorate([
318
- Injectable(),
319
- __param(0, Inject('OAUTH_CONFIG')),
320
- __param(2, Inject('Logger')),
321
- __metadata("design:paramtypes", [Object, NitroStackServer, Object])
322
- ], OAuthModule);
323
- export { OAuthModule };
324
- //# sourceMappingURL=oauth-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-module.js","sourceRoot":"","sources":["../../src/core/oauth-module.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import 'reflect-metadata';
2
- //# sourceMappingURL=pipes.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipes.test.d.ts","sourceRoot":"","sources":["../../../../src/core/pipes/__tests__/pipes.test.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC"}
@@ -1,164 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { describe, it, expect } from '@jest/globals';
14
- import 'reflect-metadata';
15
- import { UsePipes, getPipeMetadata, Pipe, Body, Validated, getParamPipesMetadata, isPipe } from '../pipe.decorator.js';
16
- describe('Pipes Module', () => {
17
- describe('@Pipe Decorator', () => {
18
- it('should mark a class as a pipe', () => {
19
- let TestPipe = class TestPipe {
20
- transform(value) { return value; }
21
- };
22
- TestPipe = __decorate([
23
- Pipe()
24
- ], TestPipe);
25
- expect(isPipe(TestPipe)).toBe(true);
26
- });
27
- it('should return false for non-pipe classes', () => {
28
- class RegularClass {
29
- }
30
- expect(isPipe(RegularClass)).toBe(false);
31
- });
32
- });
33
- describe('@UsePipes Decorator', () => {
34
- it('should register pipes metadata', () => {
35
- class MockPipe {
36
- transform(value) { return value; }
37
- }
38
- class TestController {
39
- method() { }
40
- }
41
- __decorate([
42
- UsePipes(MockPipe),
43
- __metadata("design:type", Function),
44
- __metadata("design:paramtypes", []),
45
- __metadata("design:returntype", void 0)
46
- ], TestController.prototype, "method", null);
47
- const metadata = getPipeMetadata(TestController.prototype, 'method');
48
- expect(metadata).toEqual([MockPipe]);
49
- });
50
- it('should register multiple pipes', () => {
51
- class Pipe1 {
52
- transform(v) { return v; }
53
- }
54
- class Pipe2 {
55
- transform(v) { return v; }
56
- }
57
- class TestController {
58
- method() { }
59
- }
60
- __decorate([
61
- UsePipes(Pipe1, Pipe2),
62
- __metadata("design:type", Function),
63
- __metadata("design:paramtypes", []),
64
- __metadata("design:returntype", void 0)
65
- ], TestController.prototype, "method", null);
66
- const metadata = getPipeMetadata(TestController.prototype, 'method');
67
- expect(metadata).toEqual([Pipe1, Pipe2]);
68
- });
69
- it('should return empty array for methods without pipes', () => {
70
- class TestController {
71
- method() { }
72
- }
73
- const metadata = getPipeMetadata(TestController.prototype, 'method');
74
- expect(metadata).toEqual([]);
75
- });
76
- it('should accumulate pipes from multiple @UsePipes', () => {
77
- class Pipe1 {
78
- transform(v) { return v; }
79
- }
80
- class Pipe2 {
81
- transform(v) { return v; }
82
- }
83
- class TestController {
84
- method() { }
85
- }
86
- __decorate([
87
- UsePipes(Pipe1),
88
- UsePipes(Pipe2),
89
- __metadata("design:type", Function),
90
- __metadata("design:paramtypes", []),
91
- __metadata("design:returntype", void 0)
92
- ], TestController.prototype, "method", null);
93
- const metadata = getPipeMetadata(TestController.prototype, 'method');
94
- expect(metadata).toContain(Pipe1);
95
- expect(metadata).toContain(Pipe2);
96
- });
97
- });
98
- describe('@Body Decorator', () => {
99
- it('should register parameter pipe metadata', () => {
100
- class ValidationPipe {
101
- transform(v) { return v; }
102
- }
103
- class TestController {
104
- method(input) { }
105
- }
106
- __decorate([
107
- __param(0, Body(ValidationPipe)),
108
- __metadata("design:type", Function),
109
- __metadata("design:paramtypes", [Object]),
110
- __metadata("design:returntype", void 0)
111
- ], TestController.prototype, "method", null);
112
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
113
- expect(metadata[0]).toEqual({
114
- type: 'body',
115
- pipes: [ValidationPipe]
116
- });
117
- });
118
- it('should register multiple pipes for parameter', () => {
119
- class Pipe1 {
120
- transform(v) { return v; }
121
- }
122
- class Pipe2 {
123
- transform(v) { return v; }
124
- }
125
- class TestController {
126
- method(input) { }
127
- }
128
- __decorate([
129
- __param(0, Body(Pipe1, Pipe2)),
130
- __metadata("design:type", Function),
131
- __metadata("design:paramtypes", [Object]),
132
- __metadata("design:returntype", void 0)
133
- ], TestController.prototype, "method", null);
134
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
135
- expect(metadata[0].pipes).toEqual([Pipe1, Pipe2]);
136
- });
137
- it('should return empty object for methods without param pipes', () => {
138
- class TestController {
139
- method(input) { }
140
- }
141
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
142
- expect(metadata).toEqual({});
143
- });
144
- });
145
- describe('@Validated Decorator', () => {
146
- it('should register body type with empty pipes', () => {
147
- class TestController {
148
- method(input) { }
149
- }
150
- __decorate([
151
- __param(0, Validated()),
152
- __metadata("design:type", Function),
153
- __metadata("design:paramtypes", [Object]),
154
- __metadata("design:returntype", void 0)
155
- ], TestController.prototype, "method", null);
156
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
157
- expect(metadata[0]).toEqual({
158
- type: 'body',
159
- pipes: []
160
- });
161
- });
162
- });
163
- });
164
- //# sourceMappingURL=pipes.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipes.test.js","sourceRoot":"","sources":["../../../../src/core/pipes/__tests__/pipes.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAQ,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAErC,IAAM,QAAQ,GAAd,MAAM,QAAQ;gBACV,SAAS,CAAC,KAAU,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC;aAC1C,CAAA;YAFK,QAAQ;gBADb,IAAI,EAAE;eACD,QAAQ,CAEb;YAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,YAAY;aAAI;YAEtB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,QAAQ;gBACV,SAAS,CAAC,KAAU,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC;aAC1C;YAED,MAAM,cAAc;gBAEhB,MAAM,KAAK,CAAC;aACf;YADG;gBADC,QAAQ,CAAC,QAAQ,CAAC;;;;wDACP;YAGhB,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YACxE,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YAExE,MAAM,cAAc;gBAEhB,MAAM,KAAK,CAAC;aACf;YADG;gBADC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;;;;wDACX;YAGhB,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,cAAc;gBAChB,MAAM,KAAK,CAAC;aACf;YAED,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YACxE,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YAExE,MAAM,cAAc;gBAGhB,MAAM,KAAK,CAAC;aACf;YADG;gBAFC,QAAQ,CAAC,KAAK,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC;;;;wDACJ;YAGhB,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,cAAc;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YAEjF,MAAM,cAAc;gBAChB,MAAM,CAAuB,KAAU,IAAI,CAAC;aAC/C;YADG;gBAAQ,WAAA,IAAI,CAAC,cAAc,CAAC,CAAA;;;;wDAAgB;YAGhD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,cAAc,CAAC;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YACxE,MAAM,KAAK;gBAA4B,SAAS,CAAC,CAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aAAE;YAExE,MAAM,cAAc;gBAChB,MAAM,CAAqB,KAAU,IAAI,CAAC;aAC7C;YADG;gBAAQ,WAAA,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;;;;wDAAgB;YAG9C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YAClE,MAAM,cAAc;gBAChB,MAAM,CAAC,KAAU,IAAI,CAAC;aACzB;YAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAClD,MAAM,cAAc;gBAChB,MAAM,CAAc,KAAU,IAAI,CAAC;aACtC;YADG;gBAAQ,WAAA,SAAS,EAAE,CAAA;;;;wDAAgB;YAGvC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,EAAE;aACZ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,64 +0,0 @@
1
- import 'reflect-metadata';
2
- import { PipeConstructor } from './pipe.interface.js';
3
- import type { ClassConstructor } from '../types.js';
4
- /**
5
- * Marks a class as a pipe
6
- *
7
- * @example
8
- * ```typescript
9
- * @Pipe()
10
- * export class ValidationPipe implements PipeInterface {
11
- * transform(value: unknown, metadata: ArgumentMetadata) {
12
- * // Validate and transform
13
- * return value;
14
- * }
15
- * }
16
- * ```
17
- */
18
- export declare function Pipe(): ClassDecorator;
19
- /**
20
- * Apply pipes to tool input (entire input object)
21
- *
22
- * @example
23
- * ```typescript
24
- * @Tool({ name: 'create_user', ... })
25
- * @UsePipes(ValidationPipe, TransformPipe)
26
- * async createUser(input: unknown) { }
27
- * ```
28
- */
29
- export declare function UsePipes(...pipes: PipeConstructor[]): MethodDecorator;
30
- /**
31
- * Parameter decorator to apply pipes to specific parameters
32
- *
33
- * @example
34
- * ```typescript
35
- * @Tool({ name: 'create_user', ... })
36
- * async createUser(@Body(ValidationPipe) input: CreateUserDto) { }
37
- * ```
38
- */
39
- export declare function Body(...pipes: PipeConstructor[]): ParameterDecorator;
40
- /**
41
- * Shorthand for validation pipe
42
- */
43
- export declare function Validated(): ParameterDecorator;
44
- /**
45
- * Parameter pipes metadata
46
- */
47
- interface ParamPipeMetadata {
48
- type: string;
49
- pipes: PipeConstructor[];
50
- }
51
- /**
52
- * Get pipes for a method
53
- */
54
- export declare function getPipeMetadata(target: object, propertyKey: string | symbol): PipeConstructor[];
55
- /**
56
- * Get parameter pipes for a method
57
- */
58
- export declare function getParamPipesMetadata(target: object, propertyKey: string | symbol): Record<number, ParamPipeMetadata>;
59
- /**
60
- * Check if a class is marked as a pipe
61
- */
62
- export declare function isPipe(target: ClassConstructor): boolean;
63
- export {};
64
- //# sourceMappingURL=pipe.decorator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipe.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/pipes/pipe.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,IAAI,cAAc,CAIrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAUrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAWpE;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,EAAE,CAE/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAErH;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAExD"}
@@ -1,85 +0,0 @@
1
- import 'reflect-metadata';
2
- const PIPE_KEY = 'nitrostack:pipe';
3
- const IS_PIPE_KEY = 'nitrostack:is_pipe';
4
- const PARAM_PIPES_KEY = 'nitrostack:param_pipes';
5
- /**
6
- * Marks a class as a pipe
7
- *
8
- * @example
9
- * ```typescript
10
- * @Pipe()
11
- * export class ValidationPipe implements PipeInterface {
12
- * transform(value: unknown, metadata: ArgumentMetadata) {
13
- * // Validate and transform
14
- * return value;
15
- * }
16
- * }
17
- * ```
18
- */
19
- export function Pipe() {
20
- return (target) => {
21
- Reflect.defineMetadata(IS_PIPE_KEY, true, target);
22
- };
23
- }
24
- /**
25
- * Apply pipes to tool input (entire input object)
26
- *
27
- * @example
28
- * ```typescript
29
- * @Tool({ name: 'create_user', ... })
30
- * @UsePipes(ValidationPipe, TransformPipe)
31
- * async createUser(input: unknown) { }
32
- * ```
33
- */
34
- export function UsePipes(...pipes) {
35
- return (target, propertyKey, descriptor) => {
36
- const existingPipes = Reflect.getMetadata(PIPE_KEY, target, propertyKey) || [];
37
- Reflect.defineMetadata(PIPE_KEY, [...existingPipes, ...pipes], target, propertyKey);
38
- };
39
- }
40
- /**
41
- * Parameter decorator to apply pipes to specific parameters
42
- *
43
- * @example
44
- * ```typescript
45
- * @Tool({ name: 'create_user', ... })
46
- * async createUser(@Body(ValidationPipe) input: CreateUserDto) { }
47
- * ```
48
- */
49
- export function Body(...pipes) {
50
- return (target, propertyKey, parameterIndex) => {
51
- if (!propertyKey)
52
- return;
53
- const existingParams = Reflect.getMetadata(PARAM_PIPES_KEY, target, propertyKey) || {};
54
- existingParams[parameterIndex] = {
55
- type: 'body',
56
- pipes,
57
- };
58
- Reflect.defineMetadata(PARAM_PIPES_KEY, existingParams, target, propertyKey);
59
- };
60
- }
61
- /**
62
- * Shorthand for validation pipe
63
- */
64
- export function Validated() {
65
- return Body(); // Can be enhanced with default validation pipe
66
- }
67
- /**
68
- * Get pipes for a method
69
- */
70
- export function getPipeMetadata(target, propertyKey) {
71
- return Reflect.getMetadata(PIPE_KEY, target, propertyKey) || [];
72
- }
73
- /**
74
- * Get parameter pipes for a method
75
- */
76
- export function getParamPipesMetadata(target, propertyKey) {
77
- return Reflect.getMetadata(PARAM_PIPES_KEY, target, propertyKey) || {};
78
- }
79
- /**
80
- * Check if a class is marked as a pipe
81
- */
82
- export function isPipe(target) {
83
- return Reflect.getMetadata(IS_PIPE_KEY, target) === true;
84
- }
85
- //# sourceMappingURL=pipe.decorator.js.map