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
@@ -1,123 +0,0 @@
1
- import 'reflect-metadata';
2
- /**
3
- * OAuth 2.1 Module Configuration
4
- *
5
- * Compliant with:
6
- * - OAuth 2.1 (draft-ietf-oauth-v2-1-13)
7
- * - RFC 9728 - Protected Resource Metadata
8
- * - RFC 8414 - Authorization Server Metadata
9
- * - RFC 7591 - Dynamic Client Registration
10
- * - RFC 8707 - Resource Indicators (Token Audience Binding)
11
- * - RFC 7636 - PKCE
12
- * - RFC 7662 - Token Introspection
13
- */
14
- export interface OAuthModuleConfig {
15
- /**
16
- * Resource URI - The MCP server's public URL
17
- * Used for token audience validation (RFC 8707)
18
- */
19
- resourceUri: string;
20
- /**
21
- * Authorization Server(s)
22
- * The OAuth 2.1 authorization server URLs
23
- */
24
- authorizationServers: string[];
25
- /**
26
- * Supported scopes for this MCP server
27
- * Example: ['mcp:read', 'mcp:write', 'tools:execute']
28
- */
29
- scopesSupported?: string[];
30
- /**
31
- * HTTP server configuration
32
- * OAuth requires HTTP transport - port will be extracted from resourceUri or use this
33
- */
34
- http?: {
35
- port?: number;
36
- host?: string;
37
- basePath?: string;
38
- };
39
- /**
40
- * Token Introspection Endpoint (RFC 7662)
41
- * Required for validating opaque tokens
42
- */
43
- tokenIntrospectionEndpoint?: string;
44
- /**
45
- * Client ID for token introspection
46
- */
47
- tokenIntrospectionClientId?: string;
48
- /**
49
- * Client Secret for token introspection
50
- * Should be stored in environment variable
51
- */
52
- tokenIntrospectionClientSecret?: string;
53
- /**
54
- * Expected audience for tokens (RFC 8707)
55
- * If not provided, defaults to resourceUri
56
- */
57
- audience?: string;
58
- /**
59
- * Issuer validation
60
- * If provided, tokens must be from this issuer
61
- */
62
- issuer?: string;
63
- /**
64
- * Custom token validation
65
- * Additional validation logic beyond spec requirements
66
- */
67
- customValidation?: (token: unknown) => Promise<boolean> | boolean;
68
- }
69
- import { NitroStackServer } from './server.js';
70
- import { Logger } from './types.js';
71
- export declare class OAuthModule {
72
- private config;
73
- private server;
74
- private logger;
75
- private static config;
76
- private discoveryServer;
77
- private wellKnownHandler;
78
- private resourceMetadataHandler;
79
- constructor(config: OAuthModuleConfig, server: NitroStackServer, logger: Logger);
80
- onModuleInit(): void;
81
- start(): Promise<void>;
82
- stop(): Promise<void>;
83
- private registerDiscoveryHandlers;
84
- /**
85
- * Configure OAuth module for the application
86
- */
87
- static forRoot(config: OAuthModuleConfig): {
88
- module: typeof OAuthModule;
89
- providers: {
90
- provide: string;
91
- useValue: OAuthModuleConfig;
92
- }[];
93
- };
94
- /**
95
- * Get current OAuth configuration
96
- */
97
- static getConfig(): OAuthModuleConfig | null;
98
- /**
99
- * Validate an access token
100
- *
101
- * Performs:
102
- * 1. Token introspection (if endpoint configured)
103
- * 2. Audience validation (RFC 8807)
104
- * 3. Issuer validation (if configured)
105
- * 4. Custom validation (if configured)
106
- */
107
- static validateToken(token: string): Promise<{
108
- valid: boolean;
109
- payload?: Record<string, unknown>;
110
- error?: string;
111
- }>;
112
- /**
113
- * Introspect token using RFC 7662
114
- * @private
115
- */
116
- private static introspectToken;
117
- /**
118
- * Decode JWT token (without validation)
119
- * @private
120
- */
121
- private static decodeToken;
122
- }
123
- //# sourceMappingURL=oauth-module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-module.d.ts","sourceRoot":"","sources":["../../src/core/oauth-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;OAGG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACnE;AA2CD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,qBACa,WAAW;IA8BI,OAAO,CAAC,MAAM;IACtC,OAAO,CAAC,MAAM;IACI,OAAO,CAAC,MAAM;IA/BlC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkC;IACvD,OAAO,CAAC,eAAe,CAAoC;IAE3D,OAAO,CAAC,gBAAgB,CAOtB;IAEF,OAAO,CAAC,uBAAuB,CAc7B;gBAGgC,MAAM,EAAE,iBAAiB,EACjD,MAAM,EAAE,gBAAgB,EACN,MAAM,EAAE,MAAM;IAKnC,YAAY;IAKN,KAAK;IAmCL,IAAI;IAOjB,OAAO,CAAC,yBAAyB;IAKjC;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG;QAAE,MAAM,EAAE,OAAO,WAAW,CAAC;QAAC,SAAS,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,iBAAiB,CAAA;SAAE,EAAE,CAAA;KAAE;IAyBxI;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,iBAAiB,GAAG,IAAI;IAI5C;;;;;;;;OAQG;WACU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QACjD,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IA2EF;;;OAGG;mBACkB,eAAe;IAyDpC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAyB3B"}
@@ -1,324 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- var OAuthModule_1;
14
- import 'reflect-metadata';
15
- /**
16
- * OAuth Module - Enable OAuth 2.1 authentication in your MCP server
17
- *
18
- * This module provides:
19
- * - Protected Resource Metadata (RFC 9728)
20
- * - Token validation with audience binding (RFC 8707)
21
- * - Token introspection (RFC 7662)
22
- * - PKCE support (RFC 7636)
23
- *
24
- * Compatible with OpenAI Apps SDK and MCP specification.
25
- *
26
- * @example
27
- * ```typescript
28
- * import { McpApplicationFactory, OAuthModule } from 'nitrostack';
29
- * import { AppModule } from './app.module.js';
30
- *
31
- * @McpApp({
32
- * module: AppModule,
33
- * server: {
34
- * name: 'OAuth MCP Server',
35
- * version: '1.0.0',
36
- * },
37
- * })
38
- * @Module({
39
- * name: 'app',
40
- * imports: [
41
- * // Enable OAuth 2.1 authentication
42
- * OAuthModule.forRoot({
43
- * resourceUri: process.env.RESOURCE_URI!,
44
- * authorizationServers: [process.env.AUTH_SERVER_URL!],
45
- * scopesSupported: ['mcp:read', 'mcp:write', 'tools:execute'],
46
- * tokenIntrospectionEndpoint: process.env.INTROSPECTION_ENDPOINT,
47
- * tokenIntrospectionClientId: process.env.INTROSPECTION_CLIENT_ID,
48
- * tokenIntrospectionClientSecret: process.env.INTROSPECTION_CLIENT_SECRET,
49
- * }),
50
- * ],
51
- * })
52
- * export class AppModule {}
53
- * ```
54
- */
55
- import { Injectable, Inject } from './di/injectable.decorator.js';
56
- import { NitroStackServer } from './server.js';
57
- import { DiscoveryHttpServer } from './transports/discovery-http-server.js';
58
- let OAuthModule = class OAuthModule {
59
- static { OAuthModule_1 = this; }
60
- config;
61
- server;
62
- logger;
63
- static config = null;
64
- discoveryServer = null;
65
- wellKnownHandler = (req, res) => {
66
- res.writeHead(200, { 'Content-Type': 'application/json' });
67
- res.end(JSON.stringify({
68
- issuer: this.config.issuer,
69
- token_endpoint: `${this.config.authorizationServers[0]}/oauth/token`,
70
- // Add other metadata as needed
71
- }));
72
- };
73
- resourceMetadataHandler = (req, res) => {
74
- res.writeHead(200, { 'Content-Type': 'application/json' });
75
- // RFC 9728 - Protected Resource Metadata format
76
- const metadata = {
77
- resource: this.config.resourceUri,
78
- authorization_servers: this.config.authorizationServers,
79
- };
80
- // Add optional fields
81
- if (this.config.scopesSupported && this.config.scopesSupported.length > 0) {
82
- metadata.scopes_supported = this.config.scopesSupported;
83
- }
84
- res.end(JSON.stringify(metadata));
85
- };
86
- constructor(config, server, logger) {
87
- this.config = config;
88
- this.server = server;
89
- this.logger = logger;
90
- OAuthModule_1.config = config;
91
- }
92
- onModuleInit() {
93
- // Register the discovery endpoints
94
- // Handlers are now arrow functions, so no need to bind
95
- }
96
- async start() {
97
- this.logger.info('OAuthModule: start method called');
98
- const transportType = this.server._transportType;
99
- // Get port from environment or config, fallback to 3005
100
- // Check MCP_SERVER_PORT first (set by dev command), then PORT, then config
101
- const port = process.env.MCP_SERVER_PORT
102
- ? parseInt(process.env.MCP_SERVER_PORT)
103
- : process.env.PORT
104
- ? parseInt(process.env.PORT)
105
- : (this.config.http?.port || 3005);
106
- if (transportType === 'stdio') {
107
- this.logger.info(`OAuthModule: Running in STDIO mode, starting DiscoveryHttpServer on port ${port}`);
108
- // In stdio mode, start a separate discovery server for OAuth endpoints
109
- this.discoveryServer = new DiscoveryHttpServer(port, this.logger);
110
- this.registerDiscoveryHandlers(this.discoveryServer);
111
- await this.discoveryServer.start();
112
- }
113
- else {
114
- this.logger.info(`OAuthModule: Running in ${transportType} mode, registering handlers with main server`);
115
- // In http or dual mode, register the handlers with the main server
116
- const httpTransport = this.server._httpTransport;
117
- if (httpTransport) {
118
- this.registerDiscoveryHandlers(httpTransport);
119
- }
120
- else {
121
- // Fallback: if httpTransport is not available, start a discovery server anyway
122
- // This handles edge cases where the transport setup fails or is delayed
123
- this.logger.warn(`OAuthModule: httpTransport not found for ${transportType} mode. Starting fallback DiscoveryHttpServer on port ${port}`);
124
- this.discoveryServer = new DiscoveryHttpServer(port, this.logger);
125
- this.registerDiscoveryHandlers(this.discoveryServer);
126
- await this.discoveryServer.start();
127
- }
128
- }
129
- }
130
- async stop() {
131
- if (this.discoveryServer) {
132
- await this.discoveryServer.stop();
133
- this.discoveryServer = null;
134
- }
135
- }
136
- registerDiscoveryHandlers(server) {
137
- server.on('/.well-known/oauth-authorization-server', this.wellKnownHandler);
138
- server.on('/.well-known/oauth-protected-resource', this.resourceMetadataHandler);
139
- }
140
- /**
141
- * Configure OAuth module for the application
142
- */
143
- static forRoot(config) {
144
- // Validate required fields
145
- if (!config.resourceUri) {
146
- throw new Error('OAuthModule: resourceUri is required');
147
- }
148
- if (!config.authorizationServers || config.authorizationServers.length === 0) {
149
- throw new Error('OAuthModule: at least one authorizationServer is required');
150
- }
151
- // Set default audience to resourceUri if not provided
152
- if (!config.audience) {
153
- config.audience = config.resourceUri;
154
- }
155
- this.config = config;
156
- return {
157
- module: OAuthModule_1,
158
- providers: [
159
- { provide: 'OAUTH_CONFIG', useValue: config }
160
- ],
161
- };
162
- }
163
- /**
164
- * Get current OAuth configuration
165
- */
166
- static getConfig() {
167
- return this.config;
168
- }
169
- /**
170
- * Validate an access token
171
- *
172
- * Performs:
173
- * 1. Token introspection (if endpoint configured)
174
- * 2. Audience validation (RFC 8807)
175
- * 3. Issuer validation (if configured)
176
- * 4. Custom validation (if configured)
177
- */
178
- static async validateToken(token) {
179
- if (!this.config) {
180
- return { valid: false, error: 'OAuth module not configured' };
181
- }
182
- try {
183
- // Decode the header to check token type and provide helpful error message
184
- try {
185
- const headerPart = token.split('.')[0];
186
- const decodedHeader = JSON.parse(Buffer.from(headerPart, 'base64').toString());
187
- // Check if we received a JWE (encrypted) token instead of JWT
188
- if (decodedHeader.alg === 'dir' || decodedHeader.enc) {
189
- return {
190
- valid: false,
191
- error: 'Received encrypted JWE token. MCP servers require unencrypted JWT access tokens. Check your OAuth provider application settings to ensure ID Token Encryption is disabled and that the "audience" parameter is being sent in authorization requests.'
192
- };
193
- }
194
- }
195
- catch (headerError) {
196
- // If header decode fails, continue with normal validation
197
- }
198
- // If introspection endpoint is configured, use it
199
- if (this.config.tokenIntrospectionEndpoint) {
200
- return await this.introspectToken(token);
201
- }
202
- // For JWT tokens without introspection, decode and validate
203
- // Note: In production, you should validate JWT signature
204
- const payload = this.decodeToken(token);
205
- if (!payload) {
206
- return { valid: false, error: 'Invalid token format' };
207
- }
208
- // Validate audience (RFC 8707 - critical for security)
209
- if (payload.aud) {
210
- const audiences = Array.isArray(payload.aud) ? payload.aud : [payload.aud];
211
- if (!audiences.includes(this.config.audience)) {
212
- return {
213
- valid: false,
214
- error: `Token audience mismatch. Expected: ${this.config.audience}, Got: ${audiences.join(', ')}`,
215
- };
216
- }
217
- }
218
- // Validate issuer
219
- if (this.config.issuer && payload.iss !== this.config.issuer) {
220
- return {
221
- valid: false,
222
- error: `Token issuer mismatch. Expected: ${this.config.issuer}, Got: ${payload.iss}`,
223
- };
224
- }
225
- // Check expiration
226
- const expiration = payload.exp;
227
- if (expiration && expiration < Date.now() / 1000) {
228
- return { valid: false, error: 'Token expired' };
229
- }
230
- // Custom validation
231
- if (this.config.customValidation) {
232
- const customValid = await this.config.customValidation(payload);
233
- if (!customValid) {
234
- return { valid: false, error: 'Custom validation failed' };
235
- }
236
- }
237
- return { valid: true, payload };
238
- }
239
- catch (error) {
240
- return { valid: false, error: error instanceof Error ? error.message : String(error) };
241
- }
242
- }
243
- /**
244
- * Introspect token using RFC 7662
245
- * @private
246
- */
247
- static async introspectToken(token) {
248
- if (!this.config?.tokenIntrospectionEndpoint) {
249
- return { valid: false, error: 'Introspection endpoint not configured' };
250
- }
251
- try {
252
- const auth = Buffer.from(`${this.config.tokenIntrospectionClientId}:${this.config.tokenIntrospectionClientSecret}`).toString('base64');
253
- const response = await fetch(this.config.tokenIntrospectionEndpoint, {
254
- method: 'POST',
255
- headers: {
256
- 'Content-Type': 'application/x-www-form-urlencoded',
257
- 'Authorization': `Basic ${auth}`,
258
- },
259
- body: new URLSearchParams({
260
- token: token,
261
- token_type_hint: 'access_token',
262
- }),
263
- });
264
- if (!response.ok) {
265
- return {
266
- valid: false,
267
- error: `Introspection failed: ${response.status} ${response.statusText}`,
268
- };
269
- }
270
- const result = await response.json();
271
- if (!result.active) {
272
- return { valid: false, error: 'Token is not active' };
273
- }
274
- // Validate audience from introspection response
275
- if (result.aud) {
276
- const audiences = Array.isArray(result.aud) ? result.aud : [result.aud];
277
- if (!audiences.includes(this.config.audience)) {
278
- return {
279
- valid: false,
280
- error: `Token audience mismatch. Expected: ${this.config.audience}`,
281
- };
282
- }
283
- }
284
- return { valid: true, payload: result };
285
- }
286
- catch (error) {
287
- return { valid: false, error: `Introspection error: ${error instanceof Error ? error.message : String(error)}` };
288
- }
289
- }
290
- /**
291
- * Decode JWT token (without validation)
292
- * @private
293
- */
294
- static decodeToken(token) {
295
- try {
296
- const parts = token.split('.');
297
- if (parts.length !== 3)
298
- return null;
299
- // Convert base64url to base64 by replacing URL-safe characters
300
- let base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
301
- // Add padding if necessary
302
- const padding = base64.length % 4;
303
- if (padding === 2) {
304
- base64 += '==';
305
- }
306
- else if (padding === 3) {
307
- base64 += '=';
308
- }
309
- const payload = JSON.parse(Buffer.from(base64, 'base64').toString('utf8'));
310
- return payload;
311
- }
312
- catch {
313
- return null;
314
- }
315
- }
316
- };
317
- OAuthModule = OAuthModule_1 = __decorate([
318
- Injectable(),
319
- __param(0, Inject('OAUTH_CONFIG')),
320
- __param(2, Inject('Logger')),
321
- __metadata("design:paramtypes", [Object, NitroStackServer, Object])
322
- ], OAuthModule);
323
- export { OAuthModule };
324
- //# sourceMappingURL=oauth-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-module.js","sourceRoot":"","sources":["../../src/core/oauth-module.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import 'reflect-metadata';
2
- //# sourceMappingURL=pipes.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipes.test.d.ts","sourceRoot":"","sources":["../../../../src/core/pipes/__tests__/pipes.test.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC"}
@@ -1,164 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { describe, it, expect } from '@jest/globals';
14
- import 'reflect-metadata';
15
- import { UsePipes, getPipeMetadata, Pipe, Body, Validated, getParamPipesMetadata, isPipe } from '../pipe.decorator.js';
16
- describe('Pipes Module', () => {
17
- describe('@Pipe Decorator', () => {
18
- it('should mark a class as a pipe', () => {
19
- let TestPipe = class TestPipe {
20
- transform(value) { return value; }
21
- };
22
- TestPipe = __decorate([
23
- Pipe()
24
- ], TestPipe);
25
- expect(isPipe(TestPipe)).toBe(true);
26
- });
27
- it('should return false for non-pipe classes', () => {
28
- class RegularClass {
29
- }
30
- expect(isPipe(RegularClass)).toBe(false);
31
- });
32
- });
33
- describe('@UsePipes Decorator', () => {
34
- it('should register pipes metadata', () => {
35
- class MockPipe {
36
- transform(value) { return value; }
37
- }
38
- class TestController {
39
- method() { }
40
- }
41
- __decorate([
42
- UsePipes(MockPipe),
43
- __metadata("design:type", Function),
44
- __metadata("design:paramtypes", []),
45
- __metadata("design:returntype", void 0)
46
- ], TestController.prototype, "method", null);
47
- const metadata = getPipeMetadata(TestController.prototype, 'method');
48
- expect(metadata).toEqual([MockPipe]);
49
- });
50
- it('should register multiple pipes', () => {
51
- class Pipe1 {
52
- transform(v) { return v; }
53
- }
54
- class Pipe2 {
55
- transform(v) { return v; }
56
- }
57
- class TestController {
58
- method() { }
59
- }
60
- __decorate([
61
- UsePipes(Pipe1, Pipe2),
62
- __metadata("design:type", Function),
63
- __metadata("design:paramtypes", []),
64
- __metadata("design:returntype", void 0)
65
- ], TestController.prototype, "method", null);
66
- const metadata = getPipeMetadata(TestController.prototype, 'method');
67
- expect(metadata).toEqual([Pipe1, Pipe2]);
68
- });
69
- it('should return empty array for methods without pipes', () => {
70
- class TestController {
71
- method() { }
72
- }
73
- const metadata = getPipeMetadata(TestController.prototype, 'method');
74
- expect(metadata).toEqual([]);
75
- });
76
- it('should accumulate pipes from multiple @UsePipes', () => {
77
- class Pipe1 {
78
- transform(v) { return v; }
79
- }
80
- class Pipe2 {
81
- transform(v) { return v; }
82
- }
83
- class TestController {
84
- method() { }
85
- }
86
- __decorate([
87
- UsePipes(Pipe1),
88
- UsePipes(Pipe2),
89
- __metadata("design:type", Function),
90
- __metadata("design:paramtypes", []),
91
- __metadata("design:returntype", void 0)
92
- ], TestController.prototype, "method", null);
93
- const metadata = getPipeMetadata(TestController.prototype, 'method');
94
- expect(metadata).toContain(Pipe1);
95
- expect(metadata).toContain(Pipe2);
96
- });
97
- });
98
- describe('@Body Decorator', () => {
99
- it('should register parameter pipe metadata', () => {
100
- class ValidationPipe {
101
- transform(v) { return v; }
102
- }
103
- class TestController {
104
- method(input) { }
105
- }
106
- __decorate([
107
- __param(0, Body(ValidationPipe)),
108
- __metadata("design:type", Function),
109
- __metadata("design:paramtypes", [Object]),
110
- __metadata("design:returntype", void 0)
111
- ], TestController.prototype, "method", null);
112
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
113
- expect(metadata[0]).toEqual({
114
- type: 'body',
115
- pipes: [ValidationPipe]
116
- });
117
- });
118
- it('should register multiple pipes for parameter', () => {
119
- class Pipe1 {
120
- transform(v) { return v; }
121
- }
122
- class Pipe2 {
123
- transform(v) { return v; }
124
- }
125
- class TestController {
126
- method(input) { }
127
- }
128
- __decorate([
129
- __param(0, Body(Pipe1, Pipe2)),
130
- __metadata("design:type", Function),
131
- __metadata("design:paramtypes", [Object]),
132
- __metadata("design:returntype", void 0)
133
- ], TestController.prototype, "method", null);
134
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
135
- expect(metadata[0].pipes).toEqual([Pipe1, Pipe2]);
136
- });
137
- it('should return empty object for methods without param pipes', () => {
138
- class TestController {
139
- method(input) { }
140
- }
141
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
142
- expect(metadata).toEqual({});
143
- });
144
- });
145
- describe('@Validated Decorator', () => {
146
- it('should register body type with empty pipes', () => {
147
- class TestController {
148
- method(input) { }
149
- }
150
- __decorate([
151
- __param(0, Validated()),
152
- __metadata("design:type", Function),
153
- __metadata("design:paramtypes", [Object]),
154
- __metadata("design:returntype", void 0)
155
- ], TestController.prototype, "method", null);
156
- const metadata = getParamPipesMetadata(TestController.prototype, 'method');
157
- expect(metadata[0]).toEqual({
158
- type: 'body',
159
- pipes: []
160
- });
161
- });
162
- });
163
- });
164
- //# sourceMappingURL=pipes.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipes.test.js","sourceRoot":"","sources":["../../../../src/core/pipes/__tests__/pipes.test.ts"],"names":[],"mappings":"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"}