nitrostack 1.0.83 → 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 (435) 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 -64
  241. package/dist/core/di/container.d.ts.map +0 -1
  242. package/dist/core/di/container.js +0 -105
  243. package/dist/core/di/container.js.map +0 -1
  244. package/dist/core/di/injectable.decorator.d.ts +0 -62
  245. package/dist/core/di/injectable.decorator.d.ts.map +0 -1
  246. package/dist/core/di/injectable.decorator.js +0 -66
  247. package/dist/core/di/injectable.decorator.js.map +0 -1
  248. package/dist/core/di/metadata-shim.d.ts +0 -31
  249. package/dist/core/di/metadata-shim.d.ts.map +0 -1
  250. package/dist/core/di/metadata-shim.js +0 -181
  251. package/dist/core/di/metadata-shim.js.map +0 -1
  252. package/dist/core/errors.d.ts +0 -54
  253. package/dist/core/errors.d.ts.map +0 -1
  254. package/dist/core/errors.js +0 -87
  255. package/dist/core/errors.js.map +0 -1
  256. package/dist/core/events/__tests__/events.test.d.ts +0 -2
  257. package/dist/core/events/__tests__/events.test.d.ts.map +0 -1
  258. package/dist/core/events/__tests__/events.test.js +0 -177
  259. package/dist/core/events/__tests__/events.test.js.map +0 -1
  260. package/dist/core/events/event-emitter.d.ts +0 -50
  261. package/dist/core/events/event-emitter.d.ts.map +0 -1
  262. package/dist/core/events/event-emitter.js +0 -94
  263. package/dist/core/events/event-emitter.js.map +0 -1
  264. package/dist/core/events/event.decorator.d.ts +0 -48
  265. package/dist/core/events/event.decorator.d.ts.map +0 -1
  266. package/dist/core/events/event.decorator.js +0 -72
  267. package/dist/core/events/event.decorator.js.map +0 -1
  268. package/dist/core/events/log-emitter.d.ts +0 -14
  269. package/dist/core/events/log-emitter.d.ts.map +0 -1
  270. package/dist/core/events/log-emitter.js +0 -20
  271. package/dist/core/events/log-emitter.js.map +0 -1
  272. package/dist/core/filters/__tests__/filters.test.d.ts +0 -2
  273. package/dist/core/filters/__tests__/filters.test.d.ts.map +0 -1
  274. package/dist/core/filters/__tests__/filters.test.js +0 -72
  275. package/dist/core/filters/__tests__/filters.test.js.map +0 -1
  276. package/dist/core/filters/exception-filter.decorator.d.ts +0 -40
  277. package/dist/core/filters/exception-filter.decorator.d.ts.map +0 -1
  278. package/dist/core/filters/exception-filter.decorator.js +0 -54
  279. package/dist/core/filters/exception-filter.decorator.js.map +0 -1
  280. package/dist/core/filters/exception-filter.interface.d.ts +0 -39
  281. package/dist/core/filters/exception-filter.interface.d.ts.map +0 -1
  282. package/dist/core/filters/exception-filter.interface.js +0 -2
  283. package/dist/core/filters/exception-filter.interface.js.map +0 -1
  284. package/dist/core/guards/__tests__/guards.test.d.ts +0 -2
  285. package/dist/core/guards/__tests__/guards.test.d.ts.map +0 -1
  286. package/dist/core/guards/__tests__/guards.test.js +0 -55
  287. package/dist/core/guards/__tests__/guards.test.js.map +0 -1
  288. package/dist/core/guards/apikey.guard.d.ts +0 -22
  289. package/dist/core/guards/apikey.guard.d.ts.map +0 -1
  290. package/dist/core/guards/apikey.guard.js +0 -11
  291. package/dist/core/guards/apikey.guard.js.map +0 -1
  292. package/dist/core/guards/guard.interface.d.ts +0 -18
  293. package/dist/core/guards/guard.interface.d.ts.map +0 -1
  294. package/dist/core/guards/guard.interface.js +0 -2
  295. package/dist/core/guards/guard.interface.js.map +0 -1
  296. package/dist/core/guards/jwt.guard.d.ts +0 -18
  297. package/dist/core/guards/jwt.guard.d.ts.map +0 -1
  298. package/dist/core/guards/jwt.guard.js +0 -2
  299. package/dist/core/guards/jwt.guard.js.map +0 -1
  300. package/dist/core/guards/oauth.guard.d.ts +0 -35
  301. package/dist/core/guards/oauth.guard.d.ts.map +0 -1
  302. package/dist/core/guards/oauth.guard.js +0 -2
  303. package/dist/core/guards/oauth.guard.js.map +0 -1
  304. package/dist/core/guards/use-guards.decorator.d.ts +0 -25
  305. package/dist/core/guards/use-guards.decorator.d.ts.map +0 -1
  306. package/dist/core/guards/use-guards.decorator.js +0 -32
  307. package/dist/core/guards/use-guards.decorator.js.map +0 -1
  308. package/dist/core/health/__tests__/health.test.d.ts +0 -2
  309. package/dist/core/health/__tests__/health.test.d.ts.map +0 -1
  310. package/dist/core/health/__tests__/health.test.js +0 -31
  311. package/dist/core/health/__tests__/health.test.js.map +0 -1
  312. package/dist/core/health/health-checks.resource.d.ts +0 -14
  313. package/dist/core/health/health-checks.resource.d.ts.map +0 -1
  314. package/dist/core/health/health-checks.resource.js +0 -29
  315. package/dist/core/health/health-checks.resource.js.map +0 -1
  316. package/dist/core/index.d.ts +0 -57
  317. package/dist/core/index.d.ts.map +0 -1
  318. package/dist/core/index.js +0 -59
  319. package/dist/core/index.js.map +0 -1
  320. package/dist/core/interceptors/__tests__/interceptors.test.d.ts +0 -2
  321. package/dist/core/interceptors/__tests__/interceptors.test.d.ts.map +0 -1
  322. package/dist/core/interceptors/__tests__/interceptors.test.js +0 -52
  323. package/dist/core/interceptors/__tests__/interceptors.test.js.map +0 -1
  324. package/dist/core/interceptors/interceptor.decorator.d.ts +0 -37
  325. package/dist/core/interceptors/interceptor.decorator.d.ts.map +0 -1
  326. package/dist/core/interceptors/interceptor.decorator.js +0 -51
  327. package/dist/core/interceptors/interceptor.decorator.js.map +0 -1
  328. package/dist/core/interceptors/interceptor.interface.d.ts +0 -31
  329. package/dist/core/interceptors/interceptor.interface.d.ts.map +0 -1
  330. package/dist/core/interceptors/interceptor.interface.js +0 -2
  331. package/dist/core/interceptors/interceptor.interface.js.map +0 -1
  332. package/dist/core/jwt-module.d.ts +0 -51
  333. package/dist/core/jwt-module.d.ts.map +0 -1
  334. package/dist/core/jwt-module.js +0 -52
  335. package/dist/core/jwt-module.js.map +0 -1
  336. package/dist/core/logger.d.ts +0 -18
  337. package/dist/core/logger.d.ts.map +0 -1
  338. package/dist/core/logger.js +0 -53
  339. package/dist/core/logger.js.map +0 -1
  340. package/dist/core/middleware/__tests__/middleware.test.d.ts +0 -2
  341. package/dist/core/middleware/__tests__/middleware.test.d.ts.map +0 -1
  342. package/dist/core/middleware/__tests__/middleware.test.js +0 -105
  343. package/dist/core/middleware/__tests__/middleware.test.js.map +0 -1
  344. package/dist/core/middleware/middleware.decorator.d.ts +0 -39
  345. package/dist/core/middleware/middleware.decorator.d.ts.map +0 -1
  346. package/dist/core/middleware/middleware.decorator.js +0 -53
  347. package/dist/core/middleware/middleware.decorator.js.map +0 -1
  348. package/dist/core/middleware/middleware.interface.d.ts +0 -29
  349. package/dist/core/middleware/middleware.interface.d.ts.map +0 -1
  350. package/dist/core/middleware/middleware.interface.js +0 -2
  351. package/dist/core/middleware/middleware.interface.js.map +0 -1
  352. package/dist/core/module.d.ts +0 -93
  353. package/dist/core/module.d.ts.map +0 -1
  354. package/dist/core/module.js +0 -87
  355. package/dist/core/module.js.map +0 -1
  356. package/dist/core/oauth-module.d.ts +0 -123
  357. package/dist/core/oauth-module.d.ts.map +0 -1
  358. package/dist/core/oauth-module.js +0 -324
  359. package/dist/core/oauth-module.js.map +0 -1
  360. package/dist/core/pipes/__tests__/pipes.test.d.ts +0 -2
  361. package/dist/core/pipes/__tests__/pipes.test.d.ts.map +0 -1
  362. package/dist/core/pipes/__tests__/pipes.test.js +0 -164
  363. package/dist/core/pipes/__tests__/pipes.test.js.map +0 -1
  364. package/dist/core/pipes/pipe.decorator.d.ts +0 -64
  365. package/dist/core/pipes/pipe.decorator.d.ts.map +0 -1
  366. package/dist/core/pipes/pipe.decorator.js +0 -85
  367. package/dist/core/pipes/pipe.decorator.js.map +0 -1
  368. package/dist/core/pipes/pipe.interface.d.ts +0 -41
  369. package/dist/core/pipes/pipe.interface.d.ts.map +0 -1
  370. package/dist/core/pipes/pipe.interface.js +0 -2
  371. package/dist/core/pipes/pipe.interface.js.map +0 -1
  372. package/dist/core/prompt.d.ts +0 -46
  373. package/dist/core/prompt.d.ts.map +0 -1
  374. package/dist/core/prompt.js +0 -76
  375. package/dist/core/prompt.js.map +0 -1
  376. package/dist/core/resource.d.ts +0 -47
  377. package/dist/core/resource.d.ts.map +0 -1
  378. package/dist/core/resource.js +0 -90
  379. package/dist/core/resource.js.map +0 -1
  380. package/dist/core/server.d.ts +0 -129
  381. package/dist/core/server.d.ts.map +0 -1
  382. package/dist/core/server.js +0 -617
  383. package/dist/core/server.js.map +0 -1
  384. package/dist/core/tool.d.ts +0 -108
  385. package/dist/core/tool.d.ts.map +0 -1
  386. package/dist/core/tool.js +0 -241
  387. package/dist/core/tool.js.map +0 -1
  388. package/dist/core/transports/__tests__/transports.test.d.ts +0 -2
  389. package/dist/core/transports/__tests__/transports.test.d.ts.map +0 -1
  390. package/dist/core/transports/__tests__/transports.test.js +0 -249
  391. package/dist/core/transports/__tests__/transports.test.js.map +0 -1
  392. package/dist/core/transports/discovery-http-server.d.ts +0 -19
  393. package/dist/core/transports/discovery-http-server.d.ts.map +0 -1
  394. package/dist/core/transports/discovery-http-server.js +0 -54
  395. package/dist/core/transports/discovery-http-server.js.map +0 -1
  396. package/dist/core/transports/http-server.d.ts +0 -108
  397. package/dist/core/transports/http-server.d.ts.map +0 -1
  398. package/dist/core/transports/http-server.js +0 -293
  399. package/dist/core/transports/http-server.js.map +0 -1
  400. package/dist/core/transports/streamable-http.d.ts +0 -177
  401. package/dist/core/transports/streamable-http.d.ts.map +0 -1
  402. package/dist/core/transports/streamable-http.js +0 -1287
  403. package/dist/core/transports/streamable-http.js.map +0 -1
  404. package/dist/core/types.d.ts +0 -195
  405. package/dist/core/types.d.ts.map +0 -1
  406. package/dist/core/types.js +0 -2
  407. package/dist/core/types.js.map +0 -1
  408. package/dist/core/widgets/__tests__/registry.test.d.ts +0 -2
  409. package/dist/core/widgets/__tests__/registry.test.d.ts.map +0 -1
  410. package/dist/core/widgets/__tests__/registry.test.js +0 -69
  411. package/dist/core/widgets/__tests__/registry.test.js.map +0 -1
  412. package/dist/core/widgets/widget-examples.resource.d.ts +0 -17
  413. package/dist/core/widgets/widget-examples.resource.d.ts.map +0 -1
  414. package/dist/core/widgets/widget-examples.resource.js +0 -28
  415. package/dist/core/widgets/widget-examples.resource.js.map +0 -1
  416. package/dist/core/widgets/widget-registry.d.ts +0 -56
  417. package/dist/core/widgets/widget-registry.d.ts.map +0 -1
  418. package/dist/core/widgets/widget-registry.js +0 -75
  419. package/dist/core/widgets/widget-registry.js.map +0 -1
  420. package/dist/testing/__tests__/testing.test.d.ts +0 -2
  421. package/dist/testing/__tests__/testing.test.d.ts.map +0 -1
  422. package/dist/testing/__tests__/testing.test.js +0 -167
  423. package/dist/testing/__tests__/testing.test.js.map +0 -1
  424. package/dist/testing/index.d.ts +0 -103
  425. package/dist/testing/index.d.ts.map +0 -1
  426. package/dist/testing/index.js +0 -161
  427. package/dist/testing/index.js.map +0 -1
  428. package/dist/ui-next/__tests__/ui-next.test.d.ts +0 -2
  429. package/dist/ui-next/__tests__/ui-next.test.d.ts.map +0 -1
  430. package/dist/ui-next/__tests__/ui-next.test.js +0 -74
  431. package/dist/ui-next/__tests__/ui-next.test.js.map +0 -1
  432. package/dist/ui-next/index.d.ts +0 -31
  433. package/dist/ui-next/index.d.ts.map +0 -1
  434. package/dist/ui-next/index.js +0 -687
  435. package/dist/ui-next/index.js.map +0 -1
package/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2025 Abhishek Pandit
189
+ Copyright 2025 Nitrostack Inc
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -1,178 +1,73 @@
1
1
  # NitroStack ⚡
2
2
 
3
- Build productionready MCP (Model Context Protocol) servers with TypeScript — fast.
3
+ **The enterprise-grade framework for building production-ready MCP servers with TypeScript.**
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/nitrostack.svg)](https://www.npmjs.com/package/nitrostack)
6
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
- [![Website](https://img.shields.io/badge/Website-nitrostack.vercel.app-brightgreen)](https://nitrostack.ai/)
8
- [![Docs](https://img.shields.io/badge/Docs-nitrostack--docs.vercel.app-blue)](https://docs.nitrostack.ai/)
5
+ [![Website](https://img.shields.io/badge/Website-nitrostack.ai-blue?style=for-the-badge&logo=none)](https://nitrostack.ai)
6
+ [![Docs](https://img.shields.io/badge/Docs-docs.nitrostack.ai-brightgreen?style=for-the-badge&logo=none)](https://docs.nitrostack.ai)
7
+ [![Blog](https://img.shields.io/badge/Blog-blog.nitrostack.ai-orange?style=for-the-badge&logo=none)](https://blog.nitrostack.ai)
8
+ [![License](https://img.shields.io/badge/License-Apache%202.0-red?style=for-the-badge&logo=none)](https://opensource.org/licenses/Apache-2.0)
9
9
 
10
- NitroStack is a batteries‑included toolkit for creating real, shippable MCP servers. It combines a clean, declarative programming model with a built‑in visual Studio, authentication modules, widget UI system, hot‑reload dev workflow, and production‑grade tooling all focused on one goal: let you build great MCP servers with minimal ceremony.
10
+ NitroStack is a powerful, decoupled toolkit designed to let you build, test, and ship Model Context Protocol (MCP) servers with minimal ceremony and maximum reliability.
11
11
 
12
- ## Why NitroStack
13
-
14
- Developers typically struggle with:
15
- - **Boilerplate and wiring**: scattered logic, ad‑hoc conventions, manual glue code
16
- - **Auth and security**: JWT, OAuth 2.1 (PKCE), API keys, token validation, scopes, multi‑auth
17
- - **Testing UX**: no clean way to visually exercise tools, resources, prompts
18
- - **Performance & reliability**: caching, rate limiting, predictable runtime pipeline
19
- - **DX & iteration**: hot reload, consistent CLIs, starter templates, type generation
20
-
21
- NitroStack solves these pain points out of the box.
22
-
23
- ## What you get (inbuilt capabilities)
12
+ ---
24
13
 
25
- - **Declarative building blocks**
26
- - `@Tool`, `@Widget`, `@Resource`, `@Prompt`, `@Module`
27
- - `@UseGuards`, `@UseMiddleware`, `@UseInterceptors`, `@UsePipes`, `@UseFilters`
28
- - **Authentication modules (drop‑in)**
29
- - `JWTModule` (simple JWT)
30
- - `OAuthModule` (OAuth 2.1 with PKCE, discovery, scopes, dual transport ready)
31
- - `ApiKeyModule` (service‑to‑service keys)
32
- - Multi‑auth patterns (either/both) supported via guards
33
- - **Studio (built‑in visual test bench)**
34
- - Run and debug tools, browse resources, test prompts, preview widgets
35
- - AI chat integration and auto‑form generation from schemas
36
- - **Widgets UI system**
37
- - Attach Next.js pages to tools with `@Widget` for instant interactive demos
38
- - **Runtime pipeline**
39
- - Middleware, Interceptors, Pipes, Exception Filters for predictable request flow
40
- - **Performance controls**
41
- - `@Cache()` and `@RateLimit()` decorators
42
- - **Type safety**
43
- - CLI generates types from tool definitions for use across code and widgets
44
- - **Dev experience**
45
- - Hot reload, templates, code generators, **dual transport (STDIO + HTTP)** for flexibility
14
+ ## Ecosystem Structure
46
15
 
47
- ## Requirements
16
+ NitroStack is modular. Install only what you need:
48
17
 
49
- - **Node.js**: >= 18.0.0 (LTS versions recommended)
50
- - **npm**: >= 9.0.0
18
+ | Package | Purpose | Installation |
19
+ |:---|:---|:---|
20
+ | **[`@nitrostack/core`](./packages/core)** | **The Framework** - Decorators, dependency injection, and server logic. | `npm install @nitrostack/core` |
21
+ | **[`@nitrostack/cli`](./packages/cli)** | **The Tooling** - Scaffolding, dev server, and code generators. | `npm install -g @nitrostack/cli` |
22
+ | **[`@nitrostack/widgets`](./packages/widgets)** | **The UI** - React SDK for building interactive tool outputs. | `npm install @nitrostack/widgets` |
51
23
 
52
- ✅ Tested on Node.js 18.x, 20.x, and 22.x
24
+ ---
53
25
 
26
+ ## 🚀 Quick Start in 30 Seconds
54
27
 
55
- ## Install
28
+ The fastest way to get started is by using the CLI to scaffold a new project.
56
29
 
30
+ ### 1. Install Global CLI
57
31
  ```bash
58
- npm i -g nitrostack
32
+ npm install -g @nitrostack/cli
59
33
  ```
60
34
 
61
- Or use once without global install:
62
-
35
+ ### 2. Scaffold Your Server
63
36
  ```bash
64
- npx nitrostack init my-mcp-server
37
+ nitrostack-cli init my-server
65
38
  ```
66
39
 
67
- ## Quick Start (3 steps)
68
-
69
- 1) Initialize a project
40
+ ### 3. Start Development
70
41
  ```bash
71
- nitrostack init my-server --template typescript-starter
72
42
  cd my-server
73
43
  npm install
44
+ npm run dev
74
45
  ```
75
46
 
76
- 2) Start the dev environment
77
- ```bash
78
- nitrostack dev
79
- ```
80
- Studio opens at `http://localhost:3000` (widgets at `http://localhost:3001`).
81
-
82
- 3) Add your first tool
83
- ```ts
84
- // src/modules/hello/hello.tools.ts
85
- import { Tool, z, ExecutionContext, Module } from 'nitrostack';
86
-
87
- export class HelloTools {
88
- @Tool({
89
- name: 'say_hello',
90
- description: 'Greets a user',
91
- inputSchema: z.object({ name: z.string() })
92
- })
93
- async sayHello(input: { name: string }, ctx: ExecutionContext) {
94
- return { message: `Hello, ${input.name}!` };
95
- }
96
- }
97
-
98
- @Module({ name: 'hello', controllers: [HelloTools] })
99
- export class HelloModule {}
100
- ```
101
- Register the module in `app.module.ts`, save — and call the tool in Studio.
102
-
103
- ## Authentication (inbuilt)
104
-
105
- - **JWTModule**: Simple and fast token auth for user/session flows
106
- - **OAuthModule**: Full OAuth 2.1 with PKCE, discovery endpoints, scopes, and dual‑transport support (STDIO for MCP + HTTP for OAuth metadata)
107
- - **ApiKeyModule**: Issue and validate API keys for services and automations
108
- - **Multi‑auth**: compose guards so a tool can require one or multiple schemes
109
-
110
- ## Studio (visual workflow)
111
-
112
- - AI chat to drive tools
113
- - Auto‑generated forms from schemas
114
- - Resource browser & prompt explorer
115
- - Widget previews connected to live tool outputs
116
-
117
- ## CLI highlights
118
-
119
- ```bash
120
- # Create a project from templates
121
- nitrostack init <name> --template typescript-starter
122
- nitrostack init <name> --template typescript-oauth
123
-
124
- # Dev / Build
125
- nitrostack dev
126
- nitrostack build
127
-
128
- # Generators
129
- nitrostack generate module <name>
130
- nitrostack generate tool <name> --module <module>
131
- nitrostack generate guard <name>
132
- nitrostack generate middleware <name>
133
- nitrostack generate interceptor <name>
134
- nitrostack generate pipe <name>
135
- nitrostack generate filter <name>
136
-
137
- # Types from tools
138
- nitrostack generate types --output src/types/generated-tools.ts
139
- ```
140
-
141
- ## Templates
142
-
143
- - `typescript-starter` — clean starter with widgets and example tools
144
- - `typescript-auth` — JWT auth flows and end‑to‑end examples
145
- - `typescript-auth-api-key` — API key auth patterns and multi‑auth
146
- - `typescript-oauth` — OAuth 2.1 (PKCE, discovery, scopes) with dual transport
147
-
148
- Use any template with `nitrostack init` and start iterating immediately.
47
+ ---
149
48
 
150
- ## Production
49
+ ## 🎨 NitroStudio
151
50
 
152
- ```bash
153
- npm run build
154
- NODE_ENV=production node dist/index.js
155
- ```
51
+ NitroStudio is a desktop application for testing and debugging MCP servers. Simply open your project in the Studio—**it handles running the development server for you internally.**
156
52
 
157
- Consider enabling caching, rate limits, structured logging, and health checks for production. See the docs for deployment recipes and checklists.
53
+ **[Download NitroStudio](https://nitrostack.ai/studio)**
158
54
 
159
- ## Documentation
55
+ - **Real-time testing**: Execute tools and inspect request/response payloads.
56
+ - **AI Chat**: Interact with your MCP server using a built-in AI assistant.
57
+ - **Widget Preview**: Instantly visualize your interactive UI components.
160
58
 
161
- Full docs: `https://docs.nitrostack.ai/`
162
- - Getting started, SDK guides, decorators, CLI reference, templates, deployment
59
+ ---
163
60
 
164
- ## License
61
+ ## 📖 Learn More
165
62
 
166
- Apache License 2.0 see `LICENSE`. © 2025 Abhishek Pandit
63
+ - **[Official Documentation](https://docs.nitrostack.ai)** - Deep dives into server concepts, decorators, and implementation guides.
64
+ - **[Tutorials & Blog](https://blog.nitrostack.ai)** - Step-by-step guides for complex integrations and architectural patterns.
65
+ - **[Community & Support](https://nitrostack.ai/support)** - Get help from the team and other developers.
167
66
 
168
- ## Links
67
+ ## 🤝 Contributing
169
68
 
170
- - Website: `https://nitrostack.ai/`
171
- - Docs: `https://docs.nitrostack.ai/`
172
- - GitHub: `https://github.com/abhishekpanditofficial/nitrostack`
173
- - npm: `https://www.npmjs.com/package/nitrostack`
174
- - Model Context Protocol: `https://modelcontextprotocol.io`
69
+ We love contributions! Whether it's a bug fix, new feature, or documentation improvement, please check out our [Contributing Guide](./CONTRIBUTING.md) and [Architecture Overview](./ARCHITECTURE.md) to get started.
175
70
 
176
71
  ---
177
72
 
178
- Build boldly. Ship MCP servers people love. ⚡
73
+ Built with by the **NitroStack Team**.
package/package.json CHANGED
@@ -1,36 +1,17 @@
1
1
  {
2
2
  "name": "nitrostack",
3
- "version": "1.0.83",
4
- "description": "NitroStack - Build powerful MCP servers with TypeScript",
3
+ "version": "1.0.84",
4
+ "description": "NitroStack - Enterprise-grade MCP server framework. Decoupled into @nitrostack/core, @nitrostack/cli, and @nitrostack/widgets.",
5
5
  "type": "module",
6
- "main": "dist/core/index.js",
7
- "types": "dist/core/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/core/index.js",
11
- "require": "./dist/core/index.js",
12
- "types": "./dist/core/index.d.ts"
13
- },
14
- "./testing": {
15
- "import": "./dist/testing/index.js",
16
- "require": "./dist/testing/index.js",
17
- "types": "./dist/testing/index.d.ts"
18
- }
19
- },
20
6
  "files": [
21
- "dist/",
22
7
  "README.md",
23
8
  "LICENSE"
24
9
  ],
25
10
  "scripts": {
26
- "build": "tsc",
27
- "build:all": "npm run build && cd packages/widgets && npm run build && cd ../cli && npm run build",
28
- "dev": "tsc --watch",
29
- "test": "NODE_OPTIONS=--experimental-vm-modules jest",
30
- "test:coverage": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
31
- "link:all": "npm run build:all && npm link && cd packages/widgets && npm link && cd ../cli && npm link",
32
- "unlink:all": "npm unlink && cd packages/widgets && npm unlink && cd ../cli && npm unlink",
33
- "prepublishOnly": "npm run build"
11
+ "build": "cd packages/core && npm run build && cd ../widgets && npm run build && cd ../cli && npm run build",
12
+ "test": "cd packages/core && npm run test",
13
+ "test:coverage": "cd packages/core && npm run test:coverage",
14
+ "link:all": "npm run build && cd packages/core && npm link && cd ../widgets && npm link && cd ../cli && npm link"
34
15
  },
35
16
  "keywords": [
36
17
  "mcp",
@@ -40,28 +21,11 @@
40
21
  "tools",
41
22
  "typescript",
42
23
  "server",
43
- "framework",
44
- "decorator",
45
- "nestjs-inspired"
24
+ "framework"
46
25
  ],
47
- "author": "Abhishek Pandit <abhishekpanditofficial@gmail.com>",
26
+ "author": "Nitrostack Inc <hello@nitrostack.ai>",
48
27
  "license": "Apache-2.0",
49
- "dependencies": {
50
- "@modelcontextprotocol/sdk": "^1.0.4",
51
- "bcryptjs": "^2.4.3",
52
- "better-sqlite3": "^11.8.1",
53
- "cors": "^2.8.5",
54
- "dotenv": "^17.2.3",
55
- "express": "^4.21.2",
56
- "jose": "^6.1.0",
57
- "jsonwebtoken": "^9.0.2",
58
- "reflect-metadata": "^0.2.1",
59
- "uuid": "^11.0.5",
60
- "winston": "^3.17.0",
61
- "ws": "^8.18.3",
62
- "zod": "^3.24.1",
63
- "zod-to-json-schema": "^3.24.6"
64
- },
28
+ "dependencies": {},
65
29
  "devDependencies": {
66
30
  "@types/bcryptjs": "^2.4.6",
67
31
  "@types/better-sqlite3": "^7.6.12",
@@ -82,10 +46,10 @@
82
46
  },
83
47
  "repository": {
84
48
  "type": "git",
85
- "url": "https://github.com/abhishekpanditofficial/nitrostack.git"
49
+ "url": "https://github.com/nitrocloudofficial/nitrostack.git"
86
50
  },
87
51
  "bugs": {
88
- "url": "https://github.com/abhishekpanditofficial/nitrostack/issues"
52
+ "url": "https://github.com/nitrocloudofficial/nitrostack/issues"
89
53
  },
90
- "homepage": "https://nitrostack.vercel.app"
91
- }
54
+ "homepage": "https://nitrostack.ai"
55
+ }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=api-key.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key.test.d.ts","sourceRoot":"","sources":["../../../src/auth/__tests__/api-key.test.ts"],"names":[],"mappings":""}
@@ -1,156 +0,0 @@
1
- import { jest, describe, it, expect, beforeEach } from '@jest/globals';
2
- import { createAPIKeyAuth, generateAPIKey, hashAPIKey, isValidAPIKeyFormat, validateAPIKeyWithMetadata, generateAPIKeyWithMetadata } from '../api-key.js';
3
- describe('API Key Auth', () => {
4
- describe('Utilities', () => {
5
- it('should generate valid keys', () => {
6
- const key = generateAPIKey();
7
- expect(key.startsWith('sk_')).toBe(true);
8
- expect(isValidAPIKeyFormat(key)).toBe(true);
9
- });
10
- it('should hash keys consistently', () => {
11
- const key = 'test-key';
12
- const hash1 = hashAPIKey(key);
13
- const hash2 = hashAPIKey(key);
14
- expect(hash1).toBe(hash2);
15
- expect(hash1).not.toBe(key);
16
- });
17
- it('should validate format', () => {
18
- expect(isValidAPIKeyFormat('sk_12345678901234567890123456789012', 'sk')).toBe(true);
19
- expect(isValidAPIKeyFormat('invalid')).toBe(false);
20
- expect(isValidAPIKeyFormat('k'.repeat(32))).toBe(true);
21
- });
22
- it('should validate metadata', () => {
23
- const metadata = {
24
- hashed: 'hash',
25
- name: 'test',
26
- createdAt: new Date(),
27
- scopes: ['read']
28
- };
29
- const result = validateAPIKeyWithMetadata('key', metadata, ['read']);
30
- expect(result.valid).toBe(true);
31
- const failResult = validateAPIKeyWithMetadata('key', metadata, ['write']);
32
- expect(failResult.valid).toBe(false);
33
- const starredResult = validateAPIKeyWithMetadata('key', { ...metadata, scopes: ['*'] }, ['any']);
34
- expect(starredResult.valid).toBe(true);
35
- });
36
- });
37
- describe('Middleware', () => {
38
- let req;
39
- let res;
40
- let next;
41
- beforeEach(() => {
42
- req = { headers: {}, query: {} };
43
- res = {
44
- status: jest.fn().mockReturnThis(),
45
- json: jest.fn()
46
- };
47
- next = jest.fn();
48
- });
49
- it('should authenticate with valid key in header', async () => {
50
- const middleware = createAPIKeyAuth({ keys: ['valid-key'] });
51
- req.headers['x-api-key'] = 'valid-key';
52
- await middleware(req, res, next);
53
- expect(next).toHaveBeenCalled();
54
- expect(req.auth.authenticated).toBe(true);
55
- });
56
- it('should reject missing key', async () => {
57
- const middleware = createAPIKeyAuth({ keys: ['valid-key'], allowQueryParam: true });
58
- await middleware(req, res, next);
59
- expect(res.status).toHaveBeenCalledWith(401);
60
- expect(res.json).toHaveBeenCalledWith(expect.objectContaining({ message: expect.stringContaining('query parameter') }));
61
- const middlewareNoQuery = createAPIKeyAuth({ keys: ['k'] });
62
- await middlewareNoQuery(req, res, next);
63
- expect(res.json).toHaveBeenCalledWith(expect.objectContaining({ message: expect.not.stringContaining('query parameter') }));
64
- });
65
- it('should reject invalid key', async () => {
66
- const middleware = createAPIKeyAuth({ keys: ['valid-key'] });
67
- req.headers['x-api-key'] = 'invalid-key';
68
- await middleware(req, res, next);
69
- expect(res.status).toHaveBeenCalledWith(401);
70
- });
71
- it('should handle runtime errors', async () => {
72
- const middleware = createAPIKeyAuth({
73
- keys: ['k'],
74
- customValidation: () => { throw new Error('Runtime'); }
75
- });
76
- req.headers['x-api-key'] = 'k';
77
- await middleware(req, res, next);
78
- expect(res.status).toHaveBeenCalledWith(500);
79
- });
80
- it('should support hashed keys', async () => {
81
- const key = 'my-secret-key';
82
- const hashed = hashAPIKey(key);
83
- const middleware = createAPIKeyAuth({ keys: [hashed], hashed: true });
84
- req.headers['x-api-key'] = key;
85
- await middleware(req, res, next);
86
- expect(next).toHaveBeenCalled();
87
- });
88
- });
89
- describe('Extended Features', () => {
90
- let req;
91
- let res;
92
- let next;
93
- beforeEach(() => {
94
- req = { headers: {}, query: {} };
95
- res = {
96
- status: jest.fn().mockReturnThis(),
97
- json: jest.fn()
98
- };
99
- next = jest.fn();
100
- });
101
- it('should accept query parameters if configured', async () => {
102
- const middleware = createAPIKeyAuth({
103
- keys: ['k'],
104
- allowQueryParam: true
105
- });
106
- req.query['api_key'] = 'k';
107
- await middleware(req, res, next);
108
- expect(next).toHaveBeenCalled();
109
- });
110
- it('should use custom query param name', async () => {
111
- const middleware = createAPIKeyAuth({
112
- keys: ['k'],
113
- allowQueryParam: true,
114
- queryParamName: 'token'
115
- });
116
- req.query['token'] = 'k';
117
- await middleware(req, res, next);
118
- expect(next).toHaveBeenCalled();
119
- });
120
- it('should use custom validation', async () => {
121
- const middleware = createAPIKeyAuth({
122
- keys: ['k'],
123
- customValidation: async (key) => key === 'k'
124
- });
125
- req.headers['x-api-key'] = 'k';
126
- await middleware(req, res, next);
127
- expect(next).toHaveBeenCalled();
128
- middleware(req, res.status(0), next); // Reset mock? No, just call again.
129
- req.headers['x-api-key'] = 'wrong';
130
- await middleware(req, res, next);
131
- expect(res.status).toHaveBeenCalledWith(401);
132
- });
133
- it('should throw error if config invalid', () => {
134
- expect(() => createAPIKeyAuth({ keys: [] })).toThrow();
135
- });
136
- it('should generate metadata', () => {
137
- const meta = generateAPIKeyWithMetadata({
138
- name: 'test',
139
- prefix: 'test',
140
- expiresIn: 30,
141
- scopes: ['read']
142
- });
143
- expect(meta.key).toMatch(/^test_/);
144
- expect(meta.expiresAt).toBeDefined();
145
- expect(meta.scopes).toContain('read');
146
- });
147
- it('should validate expiration', () => {
148
- const entry = {
149
- name: 't', hashed: 'h', createdAt: new Date(),
150
- expiresAt: new Date(Date.now() - 1000) // expired
151
- };
152
- expect(validateAPIKeyWithMetadata('k', entry).valid).toBe(false);
153
- });
154
- });
155
- });
156
- //# sourceMappingURL=api-key.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key.test.js","sourceRoot":"","sources":["../../../src/auth/__tests__/api-key.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../../src/auth/__tests__/client.test.ts"],"names":[],"mappings":""}