nitrostack 1.0.83 → 1.0.85

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 (439) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +42 -137
  3. package/assets/gif/nitrocli.gif +0 -0
  4. package/assets/gif/nitrostudio-chat.gif +0 -0
  5. package/assets/gif/nitrostudio-main.gif +0 -0
  6. package/assets/gif/nitrostudio-testing.gif +0 -0
  7. package/package.json +15 -50
  8. package/dist/auth/__tests__/api-key.test.d.ts +0 -2
  9. package/dist/auth/__tests__/api-key.test.d.ts.map +0 -1
  10. package/dist/auth/__tests__/api-key.test.js +0 -156
  11. package/dist/auth/__tests__/api-key.test.js.map +0 -1
  12. package/dist/auth/__tests__/client.test.d.ts +0 -2
  13. package/dist/auth/__tests__/client.test.d.ts.map +0 -1
  14. package/dist/auth/__tests__/client.test.js +0 -173
  15. package/dist/auth/__tests__/client.test.js.map +0 -1
  16. package/dist/auth/__tests__/middleware.test.d.ts +0 -2
  17. package/dist/auth/__tests__/middleware.test.d.ts.map +0 -1
  18. package/dist/auth/__tests__/middleware.test.js +0 -232
  19. package/dist/auth/__tests__/middleware.test.js.map +0 -1
  20. package/dist/auth/__tests__/pkce.test.d.ts +0 -2
  21. package/dist/auth/__tests__/pkce.test.d.ts.map +0 -1
  22. package/dist/auth/__tests__/pkce.test.js +0 -110
  23. package/dist/auth/__tests__/pkce.test.js.map +0 -1
  24. package/dist/auth/__tests__/quick-setup.test.d.ts +0 -2
  25. package/dist/auth/__tests__/quick-setup.test.d.ts.map +0 -1
  26. package/dist/auth/__tests__/quick-setup.test.js +0 -95
  27. package/dist/auth/__tests__/quick-setup.test.js.map +0 -1
  28. package/dist/auth/__tests__/secure-secret.test.d.ts +0 -2
  29. package/dist/auth/__tests__/secure-secret.test.d.ts.map +0 -1
  30. package/dist/auth/__tests__/secure-secret.test.js +0 -104
  31. package/dist/auth/__tests__/secure-secret.test.js.map +0 -1
  32. package/dist/auth/__tests__/server-integration.test.d.ts +0 -2
  33. package/dist/auth/__tests__/server-integration.test.d.ts.map +0 -1
  34. package/dist/auth/__tests__/server-integration.test.js +0 -156
  35. package/dist/auth/__tests__/server-integration.test.js.map +0 -1
  36. package/dist/auth/__tests__/server-metadata.test.d.ts +0 -2
  37. package/dist/auth/__tests__/server-metadata.test.d.ts.map +0 -1
  38. package/dist/auth/__tests__/server-metadata.test.js +0 -72
  39. package/dist/auth/__tests__/server-metadata.test.js.map +0 -1
  40. package/dist/auth/__tests__/simple-jwt.test.d.ts +0 -2
  41. package/dist/auth/__tests__/simple-jwt.test.d.ts.map +0 -1
  42. package/dist/auth/__tests__/simple-jwt.test.js +0 -125
  43. package/dist/auth/__tests__/simple-jwt.test.js.map +0 -1
  44. package/dist/auth/__tests__/token-store.test.d.ts +0 -2
  45. package/dist/auth/__tests__/token-store.test.d.ts.map +0 -1
  46. package/dist/auth/__tests__/token-store.test.js +0 -167
  47. package/dist/auth/__tests__/token-store.test.js.map +0 -1
  48. package/dist/auth/__tests__/token-validation.test.d.ts +0 -2
  49. package/dist/auth/__tests__/token-validation.test.d.ts.map +0 -1
  50. package/dist/auth/__tests__/token-validation.test.js +0 -219
  51. package/dist/auth/__tests__/token-validation.test.js.map +0 -1
  52. package/dist/auth/api-key.d.ts +0 -118
  53. package/dist/auth/api-key.d.ts.map +0 -1
  54. package/dist/auth/api-key.js +0 -168
  55. package/dist/auth/api-key.js.map +0 -1
  56. package/dist/auth/client.d.ts +0 -151
  57. package/dist/auth/client.d.ts.map +0 -1
  58. package/dist/auth/client.js +0 -330
  59. package/dist/auth/client.js.map +0 -1
  60. package/dist/auth/index.d.ts +0 -31
  61. package/dist/auth/index.d.ts.map +0 -1
  62. package/dist/auth/index.js +0 -46
  63. package/dist/auth/index.js.map +0 -1
  64. package/dist/auth/middleware.d.ts +0 -95
  65. package/dist/auth/middleware.d.ts.map +0 -1
  66. package/dist/auth/middleware.js +0 -260
  67. package/dist/auth/middleware.js.map +0 -1
  68. package/dist/auth/pkce.d.ts +0 -53
  69. package/dist/auth/pkce.d.ts.map +0 -1
  70. package/dist/auth/pkce.js +0 -105
  71. package/dist/auth/pkce.js.map +0 -1
  72. package/dist/auth/quick-setup.d.ts +0 -94
  73. package/dist/auth/quick-setup.d.ts.map +0 -1
  74. package/dist/auth/quick-setup.js +0 -210
  75. package/dist/auth/quick-setup.js.map +0 -1
  76. package/dist/auth/secure-secret.d.ts +0 -136
  77. package/dist/auth/secure-secret.d.ts.map +0 -1
  78. package/dist/auth/secure-secret.js +0 -182
  79. package/dist/auth/secure-secret.js.map +0 -1
  80. package/dist/auth/server-integration.d.ts +0 -97
  81. package/dist/auth/server-integration.d.ts.map +0 -1
  82. package/dist/auth/server-integration.js +0 -182
  83. package/dist/auth/server-integration.js.map +0 -1
  84. package/dist/auth/server-metadata.d.ts +0 -51
  85. package/dist/auth/server-metadata.d.ts.map +0 -1
  86. package/dist/auth/server-metadata.js +0 -106
  87. package/dist/auth/server-metadata.js.map +0 -1
  88. package/dist/auth/simple-jwt.d.ts +0 -174
  89. package/dist/auth/simple-jwt.d.ts.map +0 -1
  90. package/dist/auth/simple-jwt.js +0 -162
  91. package/dist/auth/simple-jwt.js.map +0 -1
  92. package/dist/auth/token-store.d.ts +0 -104
  93. package/dist/auth/token-store.d.ts.map +0 -1
  94. package/dist/auth/token-store.js +0 -205
  95. package/dist/auth/token-store.js.map +0 -1
  96. package/dist/auth/token-validation.d.ts +0 -59
  97. package/dist/auth/token-validation.d.ts.map +0 -1
  98. package/dist/auth/token-validation.js +0 -241
  99. package/dist/auth/token-validation.js.map +0 -1
  100. package/dist/auth/types.d.ts +0 -215
  101. package/dist/auth/types.d.ts.map +0 -1
  102. package/dist/auth/types.js +0 -6
  103. package/dist/auth/types.js.map +0 -1
  104. package/dist/core/__tests__/app-decorator.test.d.ts +0 -2
  105. package/dist/core/__tests__/app-decorator.test.d.ts.map +0 -1
  106. package/dist/core/__tests__/app-decorator.test.js +0 -100
  107. package/dist/core/__tests__/app-decorator.test.js.map +0 -1
  108. package/dist/core/__tests__/app-factory.extended.test.d.ts +0 -2
  109. package/dist/core/__tests__/app-factory.extended.test.d.ts.map +0 -1
  110. package/dist/core/__tests__/app-factory.extended.test.js +0 -244
  111. package/dist/core/__tests__/app-factory.extended.test.js.map +0 -1
  112. package/dist/core/__tests__/builders.test.d.ts +0 -2
  113. package/dist/core/__tests__/builders.test.d.ts.map +0 -1
  114. package/dist/core/__tests__/builders.test.js +0 -98
  115. package/dist/core/__tests__/builders.test.js.map +0 -1
  116. package/dist/core/__tests__/component.test.d.ts +0 -2
  117. package/dist/core/__tests__/component.test.d.ts.map +0 -1
  118. package/dist/core/__tests__/component.test.js +0 -151
  119. package/dist/core/__tests__/component.test.js.map +0 -1
  120. package/dist/core/__tests__/config-module.test.d.ts +0 -2
  121. package/dist/core/__tests__/config-module.test.d.ts.map +0 -1
  122. package/dist/core/__tests__/config-module.test.js +0 -90
  123. package/dist/core/__tests__/config-module.test.js.map +0 -1
  124. package/dist/core/__tests__/core-modules.test.d.ts +0 -2
  125. package/dist/core/__tests__/core-modules.test.d.ts.map +0 -1
  126. package/dist/core/__tests__/core-modules.test.js +0 -36
  127. package/dist/core/__tests__/core-modules.test.js.map +0 -1
  128. package/dist/core/__tests__/di.test.d.ts +0 -2
  129. package/dist/core/__tests__/di.test.d.ts.map +0 -1
  130. package/dist/core/__tests__/di.test.js +0 -101
  131. package/dist/core/__tests__/di.test.js.map +0 -1
  132. package/dist/core/__tests__/errors.test.d.ts +0 -2
  133. package/dist/core/__tests__/errors.test.d.ts.map +0 -1
  134. package/dist/core/__tests__/errors.test.js +0 -109
  135. package/dist/core/__tests__/errors.test.js.map +0 -1
  136. package/dist/core/__tests__/final.blitz.test.d.ts +0 -2
  137. package/dist/core/__tests__/final.blitz.test.d.ts.map +0 -1
  138. package/dist/core/__tests__/final.blitz.test.js +0 -327
  139. package/dist/core/__tests__/final.blitz.test.js.map +0 -1
  140. package/dist/core/__tests__/jwt-module.test.d.ts +0 -2
  141. package/dist/core/__tests__/jwt-module.test.d.ts.map +0 -1
  142. package/dist/core/__tests__/jwt-module.test.js +0 -60
  143. package/dist/core/__tests__/jwt-module.test.js.map +0 -1
  144. package/dist/core/__tests__/logger.test.d.ts +0 -2
  145. package/dist/core/__tests__/logger.test.d.ts.map +0 -1
  146. package/dist/core/__tests__/logger.test.js +0 -83
  147. package/dist/core/__tests__/logger.test.js.map +0 -1
  148. package/dist/core/__tests__/models.test.d.ts +0 -2
  149. package/dist/core/__tests__/models.test.d.ts.map +0 -1
  150. package/dist/core/__tests__/models.test.js +0 -142
  151. package/dist/core/__tests__/models.test.js.map +0 -1
  152. package/dist/core/__tests__/module.test.d.ts +0 -2
  153. package/dist/core/__tests__/module.test.d.ts.map +0 -1
  154. package/dist/core/__tests__/module.test.js +0 -58
  155. package/dist/core/__tests__/module.test.js.map +0 -1
  156. package/dist/core/__tests__/oauth-module.test.d.ts +0 -2
  157. package/dist/core/__tests__/oauth-module.test.d.ts.map +0 -1
  158. package/dist/core/__tests__/oauth-module.test.js +0 -168
  159. package/dist/core/__tests__/oauth-module.test.js.map +0 -1
  160. package/dist/core/__tests__/oauth.extended.test.d.ts +0 -2
  161. package/dist/core/__tests__/oauth.extended.test.d.ts.map +0 -1
  162. package/dist/core/__tests__/oauth.extended.test.js +0 -146
  163. package/dist/core/__tests__/oauth.extended.test.js.map +0 -1
  164. package/dist/core/__tests__/prompt.test.d.ts +0 -2
  165. package/dist/core/__tests__/prompt.test.d.ts.map +0 -1
  166. package/dist/core/__tests__/prompt.test.js +0 -126
  167. package/dist/core/__tests__/prompt.test.js.map +0 -1
  168. package/dist/core/__tests__/resource.test.d.ts +0 -2
  169. package/dist/core/__tests__/resource.test.d.ts.map +0 -1
  170. package/dist/core/__tests__/resource.test.js +0 -173
  171. package/dist/core/__tests__/resource.test.js.map +0 -1
  172. package/dist/core/__tests__/server.extended.test.d.ts +0 -2
  173. package/dist/core/__tests__/server.extended.test.d.ts.map +0 -1
  174. package/dist/core/__tests__/server.extended.test.js +0 -242
  175. package/dist/core/__tests__/server.extended.test.js.map +0 -1
  176. package/dist/core/__tests__/server.test.d.ts +0 -2
  177. package/dist/core/__tests__/server.test.d.ts.map +0 -1
  178. package/dist/core/__tests__/server.test.js +0 -120
  179. package/dist/core/__tests__/server.test.js.map +0 -1
  180. package/dist/core/__tests__/transport.http.test.d.ts +0 -2
  181. package/dist/core/__tests__/transport.http.test.d.ts.map +0 -1
  182. package/dist/core/__tests__/transport.http.test.js +0 -119
  183. package/dist/core/__tests__/transport.http.test.js.map +0 -1
  184. package/dist/core/__tests__/transport.streamable.test.d.ts +0 -2
  185. package/dist/core/__tests__/transport.streamable.test.d.ts.map +0 -1
  186. package/dist/core/__tests__/transport.streamable.test.js +0 -168
  187. package/dist/core/__tests__/transport.streamable.test.js.map +0 -1
  188. package/dist/core/__tests__/transports.test.d.ts +0 -2
  189. package/dist/core/__tests__/transports.test.d.ts.map +0 -1
  190. package/dist/core/__tests__/transports.test.js +0 -12
  191. package/dist/core/__tests__/transports.test.js.map +0 -1
  192. package/dist/core/apikey-module.d.ts +0 -69
  193. package/dist/core/apikey-module.d.ts.map +0 -1
  194. package/dist/core/apikey-module.js +0 -114
  195. package/dist/core/apikey-module.js.map +0 -1
  196. package/dist/core/app-decorator.d.ts +0 -59
  197. package/dist/core/app-decorator.d.ts.map +0 -1
  198. package/dist/core/app-decorator.js +0 -322
  199. package/dist/core/app-decorator.js.map +0 -1
  200. package/dist/core/builders.d.ts +0 -50
  201. package/dist/core/builders.d.ts.map +0 -1
  202. package/dist/core/builders.js +0 -139
  203. package/dist/core/builders.js.map +0 -1
  204. package/dist/core/component.d.ts +0 -111
  205. package/dist/core/component.d.ts.map +0 -1
  206. package/dist/core/component.js +0 -228
  207. package/dist/core/component.js.map +0 -1
  208. package/dist/core/config-module.d.ts +0 -62
  209. package/dist/core/config-module.d.ts.map +0 -1
  210. package/dist/core/config-module.js +0 -94
  211. package/dist/core/config-module.js.map +0 -1
  212. package/dist/core/decorators/__tests__/decorators.test.d.ts +0 -2
  213. package/dist/core/decorators/__tests__/decorators.test.d.ts.map +0 -1
  214. package/dist/core/decorators/__tests__/decorators.test.js +0 -103
  215. package/dist/core/decorators/__tests__/decorators.test.js.map +0 -1
  216. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts +0 -2
  217. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts.map +0 -1
  218. package/dist/core/decorators/__tests__/extended-decorators.test.js +0 -194
  219. package/dist/core/decorators/__tests__/extended-decorators.test.js.map +0 -1
  220. package/dist/core/decorators/__tests__/health-check.test.d.ts +0 -2
  221. package/dist/core/decorators/__tests__/health-check.test.d.ts.map +0 -1
  222. package/dist/core/decorators/__tests__/health-check.test.js +0 -119
  223. package/dist/core/decorators/__tests__/health-check.test.js.map +0 -1
  224. package/dist/core/decorators/cache.decorator.d.ts +0 -61
  225. package/dist/core/decorators/cache.decorator.d.ts.map +0 -1
  226. package/dist/core/decorators/cache.decorator.js +0 -115
  227. package/dist/core/decorators/cache.decorator.js.map +0 -1
  228. package/dist/core/decorators/health-check.decorator.d.ts +0 -80
  229. package/dist/core/decorators/health-check.decorator.d.ts.map +0 -1
  230. package/dist/core/decorators/health-check.decorator.js +0 -153
  231. package/dist/core/decorators/health-check.decorator.js.map +0 -1
  232. package/dist/core/decorators/rate-limit.decorator.d.ts +0 -63
  233. package/dist/core/decorators/rate-limit.decorator.d.ts.map +0 -1
  234. package/dist/core/decorators/rate-limit.decorator.js +0 -129
  235. package/dist/core/decorators/rate-limit.decorator.js.map +0 -1
  236. package/dist/core/decorators.d.ts +0 -190
  237. package/dist/core/decorators.d.ts.map +0 -1
  238. package/dist/core/decorators.js +0 -170
  239. package/dist/core/decorators.js.map +0 -1
  240. package/dist/core/di/__tests__/container.test.d.ts +0 -2
  241. package/dist/core/di/__tests__/container.test.d.ts.map +0 -1
  242. package/dist/core/di/__tests__/container.test.js +0 -88
  243. package/dist/core/di/__tests__/container.test.js.map +0 -1
  244. package/dist/core/di/container.d.ts +0 -64
  245. package/dist/core/di/container.d.ts.map +0 -1
  246. package/dist/core/di/container.js +0 -105
  247. package/dist/core/di/container.js.map +0 -1
  248. package/dist/core/di/injectable.decorator.d.ts +0 -62
  249. package/dist/core/di/injectable.decorator.d.ts.map +0 -1
  250. package/dist/core/di/injectable.decorator.js +0 -66
  251. package/dist/core/di/injectable.decorator.js.map +0 -1
  252. package/dist/core/di/metadata-shim.d.ts +0 -31
  253. package/dist/core/di/metadata-shim.d.ts.map +0 -1
  254. package/dist/core/di/metadata-shim.js +0 -181
  255. package/dist/core/di/metadata-shim.js.map +0 -1
  256. package/dist/core/errors.d.ts +0 -54
  257. package/dist/core/errors.d.ts.map +0 -1
  258. package/dist/core/errors.js +0 -87
  259. package/dist/core/errors.js.map +0 -1
  260. package/dist/core/events/__tests__/events.test.d.ts +0 -2
  261. package/dist/core/events/__tests__/events.test.d.ts.map +0 -1
  262. package/dist/core/events/__tests__/events.test.js +0 -177
  263. package/dist/core/events/__tests__/events.test.js.map +0 -1
  264. package/dist/core/events/event-emitter.d.ts +0 -50
  265. package/dist/core/events/event-emitter.d.ts.map +0 -1
  266. package/dist/core/events/event-emitter.js +0 -94
  267. package/dist/core/events/event-emitter.js.map +0 -1
  268. package/dist/core/events/event.decorator.d.ts +0 -48
  269. package/dist/core/events/event.decorator.d.ts.map +0 -1
  270. package/dist/core/events/event.decorator.js +0 -72
  271. package/dist/core/events/event.decorator.js.map +0 -1
  272. package/dist/core/events/log-emitter.d.ts +0 -14
  273. package/dist/core/events/log-emitter.d.ts.map +0 -1
  274. package/dist/core/events/log-emitter.js +0 -20
  275. package/dist/core/events/log-emitter.js.map +0 -1
  276. package/dist/core/filters/__tests__/filters.test.d.ts +0 -2
  277. package/dist/core/filters/__tests__/filters.test.d.ts.map +0 -1
  278. package/dist/core/filters/__tests__/filters.test.js +0 -72
  279. package/dist/core/filters/__tests__/filters.test.js.map +0 -1
  280. package/dist/core/filters/exception-filter.decorator.d.ts +0 -40
  281. package/dist/core/filters/exception-filter.decorator.d.ts.map +0 -1
  282. package/dist/core/filters/exception-filter.decorator.js +0 -54
  283. package/dist/core/filters/exception-filter.decorator.js.map +0 -1
  284. package/dist/core/filters/exception-filter.interface.d.ts +0 -39
  285. package/dist/core/filters/exception-filter.interface.d.ts.map +0 -1
  286. package/dist/core/filters/exception-filter.interface.js +0 -2
  287. package/dist/core/filters/exception-filter.interface.js.map +0 -1
  288. package/dist/core/guards/__tests__/guards.test.d.ts +0 -2
  289. package/dist/core/guards/__tests__/guards.test.d.ts.map +0 -1
  290. package/dist/core/guards/__tests__/guards.test.js +0 -55
  291. package/dist/core/guards/__tests__/guards.test.js.map +0 -1
  292. package/dist/core/guards/apikey.guard.d.ts +0 -22
  293. package/dist/core/guards/apikey.guard.d.ts.map +0 -1
  294. package/dist/core/guards/apikey.guard.js +0 -11
  295. package/dist/core/guards/apikey.guard.js.map +0 -1
  296. package/dist/core/guards/guard.interface.d.ts +0 -18
  297. package/dist/core/guards/guard.interface.d.ts.map +0 -1
  298. package/dist/core/guards/guard.interface.js +0 -2
  299. package/dist/core/guards/guard.interface.js.map +0 -1
  300. package/dist/core/guards/jwt.guard.d.ts +0 -18
  301. package/dist/core/guards/jwt.guard.d.ts.map +0 -1
  302. package/dist/core/guards/jwt.guard.js +0 -2
  303. package/dist/core/guards/jwt.guard.js.map +0 -1
  304. package/dist/core/guards/oauth.guard.d.ts +0 -35
  305. package/dist/core/guards/oauth.guard.d.ts.map +0 -1
  306. package/dist/core/guards/oauth.guard.js +0 -2
  307. package/dist/core/guards/oauth.guard.js.map +0 -1
  308. package/dist/core/guards/use-guards.decorator.d.ts +0 -25
  309. package/dist/core/guards/use-guards.decorator.d.ts.map +0 -1
  310. package/dist/core/guards/use-guards.decorator.js +0 -32
  311. package/dist/core/guards/use-guards.decorator.js.map +0 -1
  312. package/dist/core/health/__tests__/health.test.d.ts +0 -2
  313. package/dist/core/health/__tests__/health.test.d.ts.map +0 -1
  314. package/dist/core/health/__tests__/health.test.js +0 -31
  315. package/dist/core/health/__tests__/health.test.js.map +0 -1
  316. package/dist/core/health/health-checks.resource.d.ts +0 -14
  317. package/dist/core/health/health-checks.resource.d.ts.map +0 -1
  318. package/dist/core/health/health-checks.resource.js +0 -29
  319. package/dist/core/health/health-checks.resource.js.map +0 -1
  320. package/dist/core/index.d.ts +0 -57
  321. package/dist/core/index.d.ts.map +0 -1
  322. package/dist/core/index.js +0 -59
  323. package/dist/core/index.js.map +0 -1
  324. package/dist/core/interceptors/__tests__/interceptors.test.d.ts +0 -2
  325. package/dist/core/interceptors/__tests__/interceptors.test.d.ts.map +0 -1
  326. package/dist/core/interceptors/__tests__/interceptors.test.js +0 -52
  327. package/dist/core/interceptors/__tests__/interceptors.test.js.map +0 -1
  328. package/dist/core/interceptors/interceptor.decorator.d.ts +0 -37
  329. package/dist/core/interceptors/interceptor.decorator.d.ts.map +0 -1
  330. package/dist/core/interceptors/interceptor.decorator.js +0 -51
  331. package/dist/core/interceptors/interceptor.decorator.js.map +0 -1
  332. package/dist/core/interceptors/interceptor.interface.d.ts +0 -31
  333. package/dist/core/interceptors/interceptor.interface.d.ts.map +0 -1
  334. package/dist/core/interceptors/interceptor.interface.js +0 -2
  335. package/dist/core/interceptors/interceptor.interface.js.map +0 -1
  336. package/dist/core/jwt-module.d.ts +0 -51
  337. package/dist/core/jwt-module.d.ts.map +0 -1
  338. package/dist/core/jwt-module.js +0 -52
  339. package/dist/core/jwt-module.js.map +0 -1
  340. package/dist/core/logger.d.ts +0 -18
  341. package/dist/core/logger.d.ts.map +0 -1
  342. package/dist/core/logger.js +0 -53
  343. package/dist/core/logger.js.map +0 -1
  344. package/dist/core/middleware/__tests__/middleware.test.d.ts +0 -2
  345. package/dist/core/middleware/__tests__/middleware.test.d.ts.map +0 -1
  346. package/dist/core/middleware/__tests__/middleware.test.js +0 -105
  347. package/dist/core/middleware/__tests__/middleware.test.js.map +0 -1
  348. package/dist/core/middleware/middleware.decorator.d.ts +0 -39
  349. package/dist/core/middleware/middleware.decorator.d.ts.map +0 -1
  350. package/dist/core/middleware/middleware.decorator.js +0 -53
  351. package/dist/core/middleware/middleware.decorator.js.map +0 -1
  352. package/dist/core/middleware/middleware.interface.d.ts +0 -29
  353. package/dist/core/middleware/middleware.interface.d.ts.map +0 -1
  354. package/dist/core/middleware/middleware.interface.js +0 -2
  355. package/dist/core/middleware/middleware.interface.js.map +0 -1
  356. package/dist/core/module.d.ts +0 -93
  357. package/dist/core/module.d.ts.map +0 -1
  358. package/dist/core/module.js +0 -87
  359. package/dist/core/module.js.map +0 -1
  360. package/dist/core/oauth-module.d.ts +0 -123
  361. package/dist/core/oauth-module.d.ts.map +0 -1
  362. package/dist/core/oauth-module.js +0 -324
  363. package/dist/core/oauth-module.js.map +0 -1
  364. package/dist/core/pipes/__tests__/pipes.test.d.ts +0 -2
  365. package/dist/core/pipes/__tests__/pipes.test.d.ts.map +0 -1
  366. package/dist/core/pipes/__tests__/pipes.test.js +0 -164
  367. package/dist/core/pipes/__tests__/pipes.test.js.map +0 -1
  368. package/dist/core/pipes/pipe.decorator.d.ts +0 -64
  369. package/dist/core/pipes/pipe.decorator.d.ts.map +0 -1
  370. package/dist/core/pipes/pipe.decorator.js +0 -85
  371. package/dist/core/pipes/pipe.decorator.js.map +0 -1
  372. package/dist/core/pipes/pipe.interface.d.ts +0 -41
  373. package/dist/core/pipes/pipe.interface.d.ts.map +0 -1
  374. package/dist/core/pipes/pipe.interface.js +0 -2
  375. package/dist/core/pipes/pipe.interface.js.map +0 -1
  376. package/dist/core/prompt.d.ts +0 -46
  377. package/dist/core/prompt.d.ts.map +0 -1
  378. package/dist/core/prompt.js +0 -76
  379. package/dist/core/prompt.js.map +0 -1
  380. package/dist/core/resource.d.ts +0 -47
  381. package/dist/core/resource.d.ts.map +0 -1
  382. package/dist/core/resource.js +0 -90
  383. package/dist/core/resource.js.map +0 -1
  384. package/dist/core/server.d.ts +0 -129
  385. package/dist/core/server.d.ts.map +0 -1
  386. package/dist/core/server.js +0 -617
  387. package/dist/core/server.js.map +0 -1
  388. package/dist/core/tool.d.ts +0 -108
  389. package/dist/core/tool.d.ts.map +0 -1
  390. package/dist/core/tool.js +0 -241
  391. package/dist/core/tool.js.map +0 -1
  392. package/dist/core/transports/__tests__/transports.test.d.ts +0 -2
  393. package/dist/core/transports/__tests__/transports.test.d.ts.map +0 -1
  394. package/dist/core/transports/__tests__/transports.test.js +0 -249
  395. package/dist/core/transports/__tests__/transports.test.js.map +0 -1
  396. package/dist/core/transports/discovery-http-server.d.ts +0 -19
  397. package/dist/core/transports/discovery-http-server.d.ts.map +0 -1
  398. package/dist/core/transports/discovery-http-server.js +0 -54
  399. package/dist/core/transports/discovery-http-server.js.map +0 -1
  400. package/dist/core/transports/http-server.d.ts +0 -108
  401. package/dist/core/transports/http-server.d.ts.map +0 -1
  402. package/dist/core/transports/http-server.js +0 -293
  403. package/dist/core/transports/http-server.js.map +0 -1
  404. package/dist/core/transports/streamable-http.d.ts +0 -177
  405. package/dist/core/transports/streamable-http.d.ts.map +0 -1
  406. package/dist/core/transports/streamable-http.js +0 -1287
  407. package/dist/core/transports/streamable-http.js.map +0 -1
  408. package/dist/core/types.d.ts +0 -195
  409. package/dist/core/types.d.ts.map +0 -1
  410. package/dist/core/types.js +0 -2
  411. package/dist/core/types.js.map +0 -1
  412. package/dist/core/widgets/__tests__/registry.test.d.ts +0 -2
  413. package/dist/core/widgets/__tests__/registry.test.d.ts.map +0 -1
  414. package/dist/core/widgets/__tests__/registry.test.js +0 -69
  415. package/dist/core/widgets/__tests__/registry.test.js.map +0 -1
  416. package/dist/core/widgets/widget-examples.resource.d.ts +0 -17
  417. package/dist/core/widgets/widget-examples.resource.d.ts.map +0 -1
  418. package/dist/core/widgets/widget-examples.resource.js +0 -28
  419. package/dist/core/widgets/widget-examples.resource.js.map +0 -1
  420. package/dist/core/widgets/widget-registry.d.ts +0 -56
  421. package/dist/core/widgets/widget-registry.d.ts.map +0 -1
  422. package/dist/core/widgets/widget-registry.js +0 -75
  423. package/dist/core/widgets/widget-registry.js.map +0 -1
  424. package/dist/testing/__tests__/testing.test.d.ts +0 -2
  425. package/dist/testing/__tests__/testing.test.d.ts.map +0 -1
  426. package/dist/testing/__tests__/testing.test.js +0 -167
  427. package/dist/testing/__tests__/testing.test.js.map +0 -1
  428. package/dist/testing/index.d.ts +0 -103
  429. package/dist/testing/index.d.ts.map +0 -1
  430. package/dist/testing/index.js +0 -161
  431. package/dist/testing/index.js.map +0 -1
  432. package/dist/ui-next/__tests__/ui-next.test.d.ts +0 -2
  433. package/dist/ui-next/__tests__/ui-next.test.d.ts.map +0 -1
  434. package/dist/ui-next/__tests__/ui-next.test.js +0 -74
  435. package/dist/ui-next/__tests__/ui-next.test.js.map +0 -1
  436. package/dist/ui-next/index.d.ts +0 -31
  437. package/dist/ui-next/index.d.ts.map +0 -1
  438. package/dist/ui-next/index.js +0 -687
  439. package/dist/ui-next/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-module.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/config-module.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core-modules.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-modules.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/core-modules.test.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- import { describe, it, expect } from '@jest/globals';
2
- import { ApiKeyModule } from '../apikey-module';
3
- import { ConfigModule } from '../config-module';
4
- import { JWTModule } from '../jwt-module';
5
- describe('Core Modules', () => {
6
- describe('ApiKeyModule', () => {
7
- it('should configure keys', () => {
8
- const config = ApiKeyModule.forRoot({ keys: ['key1'] });
9
- expect(config.keys).toContain('key1');
10
- expect(ApiKeyModule.getKeys()).toContain('key1');
11
- });
12
- it('should valid key', async () => {
13
- ApiKeyModule.forRoot({ keys: ['valid'] });
14
- expect(await ApiKeyModule.validate('valid')).toBe(true);
15
- expect(await ApiKeyModule.validate('invalid')).toBe(false);
16
- });
17
- });
18
- describe('ConfigModule', () => {
19
- it('should configure', () => {
20
- const result = ConfigModule.forRoot({ defaults: { TEST: 'val' } });
21
- expect(result.providers).toBeDefined();
22
- expect(result.exports).toContain(result.providers[0].provide);
23
- });
24
- });
25
- describe('JWTModule', () => {
26
- it('should configure', () => {
27
- const config = JWTModule.forRoot({ secret: 'test' });
28
- expect(config.secret).toBe('test');
29
- expect(JWTModule.getConfig().secret).toBe('test');
30
- });
31
- });
32
- // JWT and OAuth modules are likely similar static containers or have simple configuration logic
33
- // I'll skip detailed checks unless they have logic.
34
- // Verified via file list they exist.
35
- });
36
- //# sourceMappingURL=core-modules.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-modules.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/core-modules.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC9B,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACxB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACxB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,gGAAgG;IAChG,oDAAoD;IACpD,qCAAqC;AACzC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import 'reflect-metadata';
2
- //# sourceMappingURL=di.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"di.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/di.test.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC"}
@@ -1,101 +0,0 @@
1
- import { describe, it, expect, beforeEach } from '@jest/globals';
2
- import 'reflect-metadata';
3
- const { DIContainer } = await import('../di/container.js');
4
- describe('DIContainer', () => {
5
- let container;
6
- beforeEach(() => {
7
- container = DIContainer.getInstance();
8
- container.clear();
9
- });
10
- it('should be a singleton', () => {
11
- const c1 = DIContainer.getInstance();
12
- const c2 = DIContainer.getInstance();
13
- expect(c1).toBe(c2);
14
- });
15
- it('should register and has tokens', () => {
16
- class TestService {
17
- }
18
- container.register(TestService);
19
- expect(container.has(TestService)).toBe(true);
20
- expect(container.has('other')).toBe(false);
21
- });
22
- it('should register and resolve values', () => {
23
- const token = 'CONFIG';
24
- const value = { api: 'ok' };
25
- container.registerValue(token, value);
26
- expect(container.resolve(token)).toBe(value);
27
- });
28
- it('should resolve class with no dependencies', () => {
29
- class SimpleService {
30
- }
31
- const instance = container.resolve(SimpleService);
32
- expect(instance).toBeInstanceOf(SimpleService);
33
- // Should be singleton by default
34
- const instance2 = container.resolve(SimpleService);
35
- expect(instance2).toBe(instance);
36
- });
37
- it('should resolve class with dependencies via reflect-metadata', () => {
38
- class DepService {
39
- }
40
- class ParentService {
41
- dep;
42
- constructor(dep) {
43
- this.dep = dep;
44
- }
45
- }
46
- // Manually set metadata as if TypeScript did it
47
- Reflect.defineMetadata('design:paramtypes', [DepService], ParentService);
48
- const parent = container.resolve(ParentService);
49
- expect(parent).toBeInstanceOf(ParentService);
50
- expect(parent.dep).toBeInstanceOf(DepService);
51
- });
52
- it('should resolve class with explicit @Inject tokens', () => {
53
- class DepService {
54
- }
55
- class ParentService {
56
- dep;
57
- constructor(dep) {
58
- this.dep = dep;
59
- }
60
- }
61
- // Mock @Inject behavior
62
- Reflect.defineMetadata('design:paramtypes', [Object], ParentService);
63
- Reflect.defineMetadata('nitrostack:inject', [DepService], ParentService);
64
- const parent = container.resolve(ParentService);
65
- expect(parent).toBeInstanceOf(ParentService);
66
- expect(parent.dep).toBeInstanceOf(DepService);
67
- });
68
- it('should throw error for unregistered string tokens with no provider', () => {
69
- expect(() => container.resolve('UNREGISTERED')).toThrow('No value or provider registered');
70
- });
71
- it('should use custom provider class for a token', () => {
72
- class Base {
73
- }
74
- class Extended extends Base {
75
- }
76
- container.register(Base, Extended);
77
- const instance = container.resolve(Base);
78
- expect(instance).toBeInstanceOf(Extended);
79
- });
80
- it('should handle recursive deep dependencies', () => {
81
- class Level3 {
82
- }
83
- class Level2 {
84
- l3;
85
- constructor(l3) {
86
- this.l3 = l3;
87
- }
88
- }
89
- class Level1 {
90
- l2;
91
- constructor(l2) {
92
- this.l2 = l2;
93
- }
94
- }
95
- Reflect.defineMetadata('design:paramtypes', [Level3], Level2);
96
- Reflect.defineMetadata('design:paramtypes', [Level2], Level1);
97
- const l1 = container.resolve(Level1);
98
- expect(l1.l2.l3).toBeInstanceOf(Level3);
99
- });
100
- });
101
- //# sourceMappingURL=di.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"di.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/di.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=errors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/errors.test.ts"],"names":[],"mappings":""}
@@ -1,109 +0,0 @@
1
- import { describe, it, expect } from '@jest/globals';
2
- import { McpError, ValidationError, ToolNotFoundError, ResourceNotFoundError, PromptNotFoundError, RateLimitError, ToolExecutionError, formatError } from '../errors.js';
3
- describe('MCP Errors', () => {
4
- describe('McpError', () => {
5
- it('should create error with message, code, and statusCode', () => {
6
- const error = new McpError('Test message', 'TEST_CODE', 400);
7
- expect(error.message).toBe('Test message');
8
- expect(error.code).toBe('TEST_CODE');
9
- expect(error.statusCode).toBe(400);
10
- expect(error.name).toBe('McpError');
11
- });
12
- it('should default statusCode to 500', () => {
13
- const error = new McpError('Test', 'CODE');
14
- expect(error.statusCode).toBe(500);
15
- });
16
- it('should include details if provided', () => {
17
- const error = new McpError('Test', 'CODE', 500, { extra: 'data' });
18
- expect(error.details).toEqual({ extra: 'data' });
19
- });
20
- it('should be instanceof Error', () => {
21
- const error = new McpError('Test', 'CODE');
22
- expect(error).toBeInstanceOf(Error);
23
- });
24
- });
25
- describe('ValidationError', () => {
26
- it('should create with VALIDATION_ERROR code and 400 status', () => {
27
- const error = new ValidationError('Invalid input');
28
- expect(error.message).toBe('Invalid input');
29
- expect(error.code).toBe('VALIDATION_ERROR');
30
- expect(error.statusCode).toBe(400);
31
- expect(error.name).toBe('ValidationError');
32
- });
33
- it('should include details', () => {
34
- const error = new ValidationError('Invalid', { field: 'email' });
35
- expect(error.details).toEqual({ field: 'email' });
36
- });
37
- });
38
- describe('ToolNotFoundError', () => {
39
- it('should create with TOOL_NOT_FOUND code and 404 status', () => {
40
- const error = new ToolNotFoundError('myTool');
41
- expect(error.message).toBe("Tool 'myTool' not found");
42
- expect(error.code).toBe('TOOL_NOT_FOUND');
43
- expect(error.statusCode).toBe(404);
44
- expect(error.name).toBe('ToolNotFoundError');
45
- });
46
- });
47
- describe('ResourceNotFoundError', () => {
48
- it('should create with RESOURCE_NOT_FOUND code and 404 status', () => {
49
- const error = new ResourceNotFoundError('file://test.txt');
50
- expect(error.message).toBe("Resource 'file://test.txt' not found");
51
- expect(error.code).toBe('RESOURCE_NOT_FOUND');
52
- expect(error.statusCode).toBe(404);
53
- expect(error.name).toBe('ResourceNotFoundError');
54
- });
55
- });
56
- describe('PromptNotFoundError', () => {
57
- it('should create with PROMPT_NOT_FOUND code and 404 status', () => {
58
- const error = new PromptNotFoundError('greeting');
59
- expect(error.message).toBe("Prompt 'greeting' not found");
60
- expect(error.code).toBe('PROMPT_NOT_FOUND');
61
- expect(error.statusCode).toBe(404);
62
- expect(error.name).toBe('PromptNotFoundError');
63
- });
64
- });
65
- describe('RateLimitError', () => {
66
- it('should create with default message', () => {
67
- const error = new RateLimitError();
68
- expect(error.message).toBe('Rate limit exceeded');
69
- expect(error.code).toBe('RATE_LIMIT_EXCEEDED');
70
- expect(error.statusCode).toBe(429);
71
- expect(error.name).toBe('RateLimitError');
72
- });
73
- it('should allow custom message', () => {
74
- const error = new RateLimitError('Too many requests');
75
- expect(error.message).toBe('Too many requests');
76
- });
77
- });
78
- describe('ToolExecutionError', () => {
79
- it('should create with TOOL_EXECUTION_ERROR code and 500 status', () => {
80
- const originalError = new Error('Something went wrong');
81
- const error = new ToolExecutionError('myTool', originalError);
82
- expect(error.message).toBe("Error executing tool 'myTool': Something went wrong");
83
- expect(error.code).toBe('TOOL_EXECUTION_ERROR');
84
- expect(error.statusCode).toBe(500);
85
- expect(error.name).toBe('ToolExecutionError');
86
- expect(error.details).toMatchObject({ originalError: 'Something went wrong' });
87
- });
88
- });
89
- describe('formatError', () => {
90
- it('should format McpError', () => {
91
- const error = new ValidationError('Invalid input', { field: 'email' });
92
- const formatted = formatError(error);
93
- expect(formatted).toEqual({
94
- code: 'VALIDATION_ERROR',
95
- message: 'Invalid input',
96
- details: { field: 'email' }
97
- });
98
- });
99
- it('should format generic Error', () => {
100
- const error = new Error('Something went wrong');
101
- const formatted = formatError(error);
102
- expect(formatted).toEqual({
103
- code: 'INTERNAL_ERROR',
104
- message: 'Something went wrong'
105
- });
106
- });
107
- });
108
- });
109
- //# sourceMappingURL=errors.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/errors.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=final.blitz.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"final.blitz.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/final.blitz.test.ts"],"names":[],"mappings":""}
@@ -1,327 +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
- import { jest, describe, it, expect, beforeEach, afterEach } from '@jest/globals';
11
- import { StreamableHttpTransport } from '../transports/streamable-http.js';
12
- import { NitroStackServer } from '../server.js';
13
- import { DIContainer } from '../di/container.js';
14
- import { RateLimit, InMemoryRateLimitStorage, resetRateLimit } from '../decorators/rate-limit.decorator.js';
15
- import { registerHealthCheck, getAllHealthChecks, getHealthCheck, getOverallHealth } from '../decorators/health-check.decorator.js';
16
- import { EventEmitter } from '../events/event-emitter.js';
17
- import { OnEvent, registerEventHandlers, emitEvent } from '../events/event.decorator.js';
18
- describe('Final Blitz Coverage Tests', () => {
19
- const originalEnv = { ...process.env };
20
- beforeEach(() => {
21
- DIContainer.getInstance().clear();
22
- jest.useRealTimers();
23
- Object.keys(process.env).forEach(key => delete process.env[key]);
24
- Object.assign(process.env, originalEnv);
25
- delete process.env.MCP_TRANSPORT_TYPE;
26
- delete process.env.NODE_ENV;
27
- delete process.env.PORT;
28
- });
29
- afterEach(() => {
30
- Object.keys(process.env).forEach(key => delete process.env[key]);
31
- Object.assign(process.env, originalEnv);
32
- });
33
- describe('StreamableHttpTransport Setters & Routes', () => {
34
- let transport;
35
- const port = 3120;
36
- beforeEach(async () => {
37
- transport = new StreamableHttpTransport({ port, enableSessions: true });
38
- await transport.start();
39
- });
40
- afterEach(async () => {
41
- await transport.close();
42
- });
43
- it('should cover setters and close handler', () => {
44
- const onMsg = jest.fn();
45
- const onClose = jest.fn();
46
- const onError = jest.fn();
47
- // @ts-ignore
48
- transport.onmessage = onMsg;
49
- // @ts-ignore
50
- transport.onclose = onClose;
51
- // @ts-ignore
52
- transport.onerror = onError;
53
- expect(transport.messageHandler).toBe(onMsg);
54
- expect(transport.closeHandler).toBe(onClose);
55
- expect(transport.errorHandler).toBe(onError);
56
- // Trigger error handler manually
57
- transport.errorHandler(new Error('test'));
58
- expect(onError).toHaveBeenCalled();
59
- });
60
- it('should cover /mcp/message routes and handlePost errors', async () => {
61
- const baseUrl = `http://localhost:${port}/mcp`;
62
- // GET /mcp/message
63
- const res1 = await fetch(`${baseUrl}/message`);
64
- expect(res1.status).toBe(200);
65
- // POST /mcp/message (valid)
66
- const res2 = await fetch(`${baseUrl}/message`, {
67
- method: 'POST',
68
- headers: { 'Content-Type': 'application/json' },
69
- body: JSON.stringify({ jsonrpc: '2.0', method: 'ping' })
70
- });
71
- expect([200, 202]).toContain(res2.status);
72
- // POST /mcp/message (invalid)
73
- const res3 = await fetch(`${baseUrl}/message`, {
74
- method: 'POST',
75
- headers: { 'Content-Type': 'application/json' },
76
- body: JSON.stringify({ ping: true })
77
- });
78
- expect(res3.status).toBe(400);
79
- // POST /mcp (invalid jsonrpc version)
80
- const res4 = await fetch(baseUrl, {
81
- method: 'POST',
82
- headers: { 'Content-Type': 'application/json' },
83
- body: JSON.stringify({ jsonrpc: '1.0', method: 'ping' })
84
- });
85
- expect(res4.status).toBe(400);
86
- });
87
- it('should cover production documentation and host parsing', async () => {
88
- process.env.NODE_ENV = 'production';
89
- const prodTransport = new StreamableHttpTransport({ port: 3121 });
90
- await prodTransport.start();
91
- // Test documentation route
92
- const res = await fetch('http://localhost:3121/', {
93
- headers: { 'Host': 'localhost:3121', 'X-Forwarded-Proto': 'https' }
94
- });
95
- expect(res.status).toBe(200);
96
- const text = await res.text();
97
- expect(text).toContain('Documentation');
98
- await prodTransport.close();
99
- });
100
- });
101
- describe('NitroStackServer Transports & Error Paths', () => {
102
- it('should start in dual mode when configured', async () => {
103
- process.env.MCP_TRANSPORT_TYPE = 'dual';
104
- process.env.PORT = '3125';
105
- process.env.NODE_ENV = 'production';
106
- const server = new NitroStackServer({ name: 'DualServer', version: '1' });
107
- server.mcpServer = {
108
- connect: jest.fn().mockImplementation(() => Promise.resolve()),
109
- close: jest.fn().mockImplementation(() => Promise.resolve()),
110
- _requestHandlers: new Map()
111
- };
112
- await server.start();
113
- expect(server._transportType).toBe('dual');
114
- // Test dual-mode message forwarding
115
- const httpTransport = server._httpTransport;
116
- const mockHandler = jest.fn().mockImplementation(() => Promise.resolve({ result: 'success' }));
117
- server.mcpServer._requestHandlers = new Map([['test_method', mockHandler]]);
118
- const onMsg = httpTransport.messageHandler;
119
- await onMsg({ jsonrpc: '2.0', id: 1, method: 'test_method' });
120
- expect(mockHandler).toHaveBeenCalled();
121
- await server.stop();
122
- });
123
- it('should handle dual-mode message forwarding errors', async () => {
124
- const server = new NitroStackServer({ name: 'DualErrorServer', version: '1' });
125
- process.env.MCP_TRANSPORT_TYPE = 'dual';
126
- process.env.PORT = '3130';
127
- server.mcpServer = {
128
- connect: jest.fn().mockImplementation(() => Promise.resolve()),
129
- close: jest.fn().mockImplementation(() => Promise.resolve()),
130
- _requestHandlers: new Map([['fail_method', async () => { throw new Error('Forced failure'); }]])
131
- };
132
- await server.start();
133
- const httpTransport = server._httpTransport;
134
- const sendSpy = jest.spyOn(httpTransport, 'send');
135
- const onMsg = httpTransport.messageHandler;
136
- await onMsg({ jsonrpc: '2.0', id: 2, method: 'fail_method' });
137
- expect(sendSpy).toHaveBeenCalledWith(expect.objectContaining({
138
- error: expect.objectContaining({ message: 'Forced failure' })
139
- }));
140
- await server.stop();
141
- });
142
- it('should start in explicit http mode', async () => {
143
- process.env.MCP_TRANSPORT_TYPE = 'http';
144
- process.env.PORT = '3126';
145
- process.env.NODE_ENV = 'production';
146
- const server = new NitroStackServer({ name: 'HttpServer', version: '1' });
147
- server.mcpServer = {
148
- connect: jest.fn().mockImplementation(() => Promise.resolve()),
149
- close: jest.fn().mockImplementation(() => Promise.resolve())
150
- };
151
- await server.start();
152
- expect(server._transportType).toBe('http');
153
- await server.stop();
154
- });
155
- it('should handle start failure and log error', async () => {
156
- process.env.PORT = '3127';
157
- process.env.MCP_TRANSPORT_TYPE = 'http';
158
- const server = new NitroStackServer({ name: 'FailServer', version: '1' });
159
- server.mcpServer = {
160
- connect: jest.fn().mockImplementation(() => Promise.reject(new Error('Connect failed'))),
161
- close: jest.fn().mockImplementation(() => Promise.resolve())
162
- };
163
- const loggerSpy = jest.spyOn(server.logger, 'error');
164
- await expect(server.start()).rejects.toThrow('Connect failed');
165
- expect(loggerSpy).toHaveBeenCalledWith('Failed to start server', expect.any(Object));
166
- });
167
- });
168
- describe('Replay Logic & Error Paths', () => {
169
- it('should cover message replay logic in StreamableHttpTransport', async () => {
170
- const transport = new StreamableHttpTransport({ port: 3135, enableSessions: true });
171
- await transport.start();
172
- const sessionId = 'replay-session';
173
- const session = {
174
- id: sessionId,
175
- streams: new Map(),
176
- lastActivity: Date.now(),
177
- messageQueue: [{ event: 'message', data: { jsonrpc: '2.0', result: 'queued' }, id: 5 }],
178
- eventIdCounter: 5
179
- };
180
- transport.sessions.set(sessionId, session);
181
- await transport.replayMessages(session, 4);
182
- await transport.close();
183
- });
184
- it('should cover legacy message error path', async () => {
185
- const transport = new StreamableHttpTransport({ port: 3136 });
186
- await transport.start();
187
- transport.onmessage = (async () => { throw new Error('Legacy error'); });
188
- const res = await fetch('http://localhost:3136/mcp/message', {
189
- method: 'POST',
190
- headers: { 'Content-Type': 'application/json' },
191
- body: JSON.stringify({ jsonrpc: '2.0', method: 'test' })
192
- });
193
- expect(res.status).toBe(500);
194
- await transport.close();
195
- });
196
- });
197
- describe('Decorator Coverage (RateLimit & HealthCheck)', () => {
198
- it('should cover RateLimit decorator logic', async () => {
199
- const storage = new InMemoryRateLimitStorage();
200
- class TestTool {
201
- async testMethod(input, context) {
202
- return 'ok';
203
- }
204
- }
205
- __decorate([
206
- RateLimit({ requests: 2, window: '1m', storage }),
207
- __metadata("design:type", Function),
208
- __metadata("design:paramtypes", [Object, Object]),
209
- __metadata("design:returntype", Promise)
210
- ], TestTool.prototype, "testMethod", null);
211
- const tool = new TestTool();
212
- const context = { logger: { info: jest.fn(), warn: jest.fn() }, auth: { subject: 'user1' } };
213
- expect(await tool.testMethod({}, context)).toBe('ok');
214
- expect(await tool.testMethod({}, context)).toBe('ok');
215
- await expect(tool.testMethod({}, context)).rejects.toThrow('Rate limit exceeded');
216
- storage.reset('TestTool:testMethod:user1');
217
- expect(await tool.testMethod({}, context)).toBe('ok');
218
- });
219
- it('should cover HealthCheck registry logic', async () => {
220
- const checker = { check: jest.fn().mockImplementation(() => Promise.resolve({ status: 'up' })) };
221
- registerHealthCheck(checker, { name: 'test-check' });
222
- const results = await getAllHealthChecks();
223
- expect(results['test-check']).toBeDefined();
224
- // Test getHealthCheck
225
- const single = await getHealthCheck('test-check');
226
- expect(single?.status).toBe('up');
227
- expect(await getHealthCheck('missing')).toBeNull();
228
- // Test getOverallHealth
229
- const overall = await getOverallHealth();
230
- expect(overall.status).toBe('healthy');
231
- // Register with interval
232
- jest.useFakeTimers();
233
- const checker2 = { check: jest.fn().mockImplementation(() => Promise.resolve({ status: 'up' })) };
234
- registerHealthCheck(checker2, { name: 'interval-check', interval: 0.1 });
235
- await jest.advanceTimersByTimeAsync(200);
236
- const results2 = await getAllHealthChecks();
237
- expect(results2['interval-check'].timestamp).toBeDefined();
238
- jest.useRealTimers();
239
- });
240
- it('should cover HealthCheck failure paths', async () => {
241
- const checker = { check: jest.fn().mockImplementation(() => Promise.reject(new Error('Health fail'))) };
242
- registerHealthCheck(checker, { name: 'fail-check' });
243
- const results = await getAllHealthChecks();
244
- expect(results['fail-check'].status).toBe('down');
245
- const overall = await getOverallHealth();
246
- expect(overall.status).toBe('unhealthy');
247
- // Test getHealthCheck failure path
248
- const single = await getHealthCheck('fail-check');
249
- expect(single?.status).toBe('down');
250
- });
251
- });
252
- describe('RateLimit Edge Cases', () => {
253
- it('should cover resetRateLimit', async () => {
254
- await resetRateLimit('test-key');
255
- });
256
- });
257
- describe('Health Resource', () => {
258
- it('should cover health checks resource', async () => {
259
- const { buildHealthChecksResource } = await import('../health/health-checks.resource.js');
260
- const resource = await buildHealthChecksResource();
261
- const result = await resource.read();
262
- expect(JSON.parse(result).checks).toBeDefined();
263
- });
264
- });
265
- describe('RateLimit Edge Cases', () => {
266
- it('should cover invalid window format', () => {
267
- const storage = new InMemoryRateLimitStorage();
268
- expect(() => {
269
- class FailTool {
270
- async fail() { }
271
- }
272
- __decorate([
273
- RateLimit({ requests: 1, window: 'invalid', storage }),
274
- __metadata("design:type", Function),
275
- __metadata("design:paramtypes", []),
276
- __metadata("design:returntype", Promise)
277
- ], FailTool.prototype, "fail", null);
278
- }).toThrow('Invalid time window format');
279
- });
280
- });
281
- describe('Event System Coverage (EventEmitter & Decorators)', () => {
282
- it('should cover EventEmitter full API', async () => {
283
- const emitter = EventEmitter.getInstance();
284
- emitter.removeAllListeners();
285
- const handler1 = jest.fn();
286
- const handler2 = jest.fn();
287
- emitter.on('test-event', handler1);
288
- emitter.once('test-event', handler2);
289
- expect(emitter.listenerCount('test-event')).toBe(2);
290
- expect(emitter.eventNames()).toContain('test-event');
291
- await emitter.emit('test-event', 'data1');
292
- expect(handler1).toHaveBeenCalledWith('data1');
293
- expect(handler2).toHaveBeenCalledWith('data1');
294
- expect(emitter.listenerCount('test-event')).toBe(1); // once handler removed
295
- emitter.emitSync('test-event', 'data2');
296
- expect(handler1).toHaveBeenCalledWith('data2');
297
- emitter.off('test-event', handler1);
298
- expect(emitter.listenerCount('test-event')).toBe(0);
299
- emitter.on('other', handler1);
300
- emitter.removeAllListeners('other');
301
- expect(emitter.listenerCount('other')).toBe(0);
302
- });
303
- it('should cover OnEvent decorator and registerEventHandlers', async () => {
304
- const emitter = EventEmitter.getInstance();
305
- emitter.removeAllListeners();
306
- class EventSubscriber {
307
- async onOrderCreated(order) {
308
- this.lastOrder = order;
309
- }
310
- lastOrder;
311
- }
312
- __decorate([
313
- OnEvent('order.created'),
314
- __metadata("design:type", Function),
315
- __metadata("design:paramtypes", [Object]),
316
- __metadata("design:returntype", Promise)
317
- ], EventSubscriber.prototype, "onOrderCreated", null);
318
- const sub = new EventSubscriber();
319
- registerEventHandlers(sub);
320
- emitEvent('order.created', { id: 123 });
321
- // Wait for async background emit
322
- await new Promise(resolve => setTimeout(resolve, 50));
323
- expect(sub.lastOrder.id).toBe(123);
324
- });
325
- });
326
- });
327
- //# sourceMappingURL=final.blitz.test.js.map