nitrostack 1.0.83 → 1.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +42 -137
  3. package/assets/gif/nitrocli.gif +0 -0
  4. package/assets/gif/nitrostudio-chat.gif +0 -0
  5. package/assets/gif/nitrostudio-main.gif +0 -0
  6. package/assets/gif/nitrostudio-testing.gif +0 -0
  7. package/package.json +15 -50
  8. package/dist/auth/__tests__/api-key.test.d.ts +0 -2
  9. package/dist/auth/__tests__/api-key.test.d.ts.map +0 -1
  10. package/dist/auth/__tests__/api-key.test.js +0 -156
  11. package/dist/auth/__tests__/api-key.test.js.map +0 -1
  12. package/dist/auth/__tests__/client.test.d.ts +0 -2
  13. package/dist/auth/__tests__/client.test.d.ts.map +0 -1
  14. package/dist/auth/__tests__/client.test.js +0 -173
  15. package/dist/auth/__tests__/client.test.js.map +0 -1
  16. package/dist/auth/__tests__/middleware.test.d.ts +0 -2
  17. package/dist/auth/__tests__/middleware.test.d.ts.map +0 -1
  18. package/dist/auth/__tests__/middleware.test.js +0 -232
  19. package/dist/auth/__tests__/middleware.test.js.map +0 -1
  20. package/dist/auth/__tests__/pkce.test.d.ts +0 -2
  21. package/dist/auth/__tests__/pkce.test.d.ts.map +0 -1
  22. package/dist/auth/__tests__/pkce.test.js +0 -110
  23. package/dist/auth/__tests__/pkce.test.js.map +0 -1
  24. package/dist/auth/__tests__/quick-setup.test.d.ts +0 -2
  25. package/dist/auth/__tests__/quick-setup.test.d.ts.map +0 -1
  26. package/dist/auth/__tests__/quick-setup.test.js +0 -95
  27. package/dist/auth/__tests__/quick-setup.test.js.map +0 -1
  28. package/dist/auth/__tests__/secure-secret.test.d.ts +0 -2
  29. package/dist/auth/__tests__/secure-secret.test.d.ts.map +0 -1
  30. package/dist/auth/__tests__/secure-secret.test.js +0 -104
  31. package/dist/auth/__tests__/secure-secret.test.js.map +0 -1
  32. package/dist/auth/__tests__/server-integration.test.d.ts +0 -2
  33. package/dist/auth/__tests__/server-integration.test.d.ts.map +0 -1
  34. package/dist/auth/__tests__/server-integration.test.js +0 -156
  35. package/dist/auth/__tests__/server-integration.test.js.map +0 -1
  36. package/dist/auth/__tests__/server-metadata.test.d.ts +0 -2
  37. package/dist/auth/__tests__/server-metadata.test.d.ts.map +0 -1
  38. package/dist/auth/__tests__/server-metadata.test.js +0 -72
  39. package/dist/auth/__tests__/server-metadata.test.js.map +0 -1
  40. package/dist/auth/__tests__/simple-jwt.test.d.ts +0 -2
  41. package/dist/auth/__tests__/simple-jwt.test.d.ts.map +0 -1
  42. package/dist/auth/__tests__/simple-jwt.test.js +0 -125
  43. package/dist/auth/__tests__/simple-jwt.test.js.map +0 -1
  44. package/dist/auth/__tests__/token-store.test.d.ts +0 -2
  45. package/dist/auth/__tests__/token-store.test.d.ts.map +0 -1
  46. package/dist/auth/__tests__/token-store.test.js +0 -167
  47. package/dist/auth/__tests__/token-store.test.js.map +0 -1
  48. package/dist/auth/__tests__/token-validation.test.d.ts +0 -2
  49. package/dist/auth/__tests__/token-validation.test.d.ts.map +0 -1
  50. package/dist/auth/__tests__/token-validation.test.js +0 -219
  51. package/dist/auth/__tests__/token-validation.test.js.map +0 -1
  52. package/dist/auth/api-key.d.ts +0 -118
  53. package/dist/auth/api-key.d.ts.map +0 -1
  54. package/dist/auth/api-key.js +0 -168
  55. package/dist/auth/api-key.js.map +0 -1
  56. package/dist/auth/client.d.ts +0 -151
  57. package/dist/auth/client.d.ts.map +0 -1
  58. package/dist/auth/client.js +0 -330
  59. package/dist/auth/client.js.map +0 -1
  60. package/dist/auth/index.d.ts +0 -31
  61. package/dist/auth/index.d.ts.map +0 -1
  62. package/dist/auth/index.js +0 -46
  63. package/dist/auth/index.js.map +0 -1
  64. package/dist/auth/middleware.d.ts +0 -95
  65. package/dist/auth/middleware.d.ts.map +0 -1
  66. package/dist/auth/middleware.js +0 -260
  67. package/dist/auth/middleware.js.map +0 -1
  68. package/dist/auth/pkce.d.ts +0 -53
  69. package/dist/auth/pkce.d.ts.map +0 -1
  70. package/dist/auth/pkce.js +0 -105
  71. package/dist/auth/pkce.js.map +0 -1
  72. package/dist/auth/quick-setup.d.ts +0 -94
  73. package/dist/auth/quick-setup.d.ts.map +0 -1
  74. package/dist/auth/quick-setup.js +0 -210
  75. package/dist/auth/quick-setup.js.map +0 -1
  76. package/dist/auth/secure-secret.d.ts +0 -136
  77. package/dist/auth/secure-secret.d.ts.map +0 -1
  78. package/dist/auth/secure-secret.js +0 -182
  79. package/dist/auth/secure-secret.js.map +0 -1
  80. package/dist/auth/server-integration.d.ts +0 -97
  81. package/dist/auth/server-integration.d.ts.map +0 -1
  82. package/dist/auth/server-integration.js +0 -182
  83. package/dist/auth/server-integration.js.map +0 -1
  84. package/dist/auth/server-metadata.d.ts +0 -51
  85. package/dist/auth/server-metadata.d.ts.map +0 -1
  86. package/dist/auth/server-metadata.js +0 -106
  87. package/dist/auth/server-metadata.js.map +0 -1
  88. package/dist/auth/simple-jwt.d.ts +0 -174
  89. package/dist/auth/simple-jwt.d.ts.map +0 -1
  90. package/dist/auth/simple-jwt.js +0 -162
  91. package/dist/auth/simple-jwt.js.map +0 -1
  92. package/dist/auth/token-store.d.ts +0 -104
  93. package/dist/auth/token-store.d.ts.map +0 -1
  94. package/dist/auth/token-store.js +0 -205
  95. package/dist/auth/token-store.js.map +0 -1
  96. package/dist/auth/token-validation.d.ts +0 -59
  97. package/dist/auth/token-validation.d.ts.map +0 -1
  98. package/dist/auth/token-validation.js +0 -241
  99. package/dist/auth/token-validation.js.map +0 -1
  100. package/dist/auth/types.d.ts +0 -215
  101. package/dist/auth/types.d.ts.map +0 -1
  102. package/dist/auth/types.js +0 -6
  103. package/dist/auth/types.js.map +0 -1
  104. package/dist/core/__tests__/app-decorator.test.d.ts +0 -2
  105. package/dist/core/__tests__/app-decorator.test.d.ts.map +0 -1
  106. package/dist/core/__tests__/app-decorator.test.js +0 -100
  107. package/dist/core/__tests__/app-decorator.test.js.map +0 -1
  108. package/dist/core/__tests__/app-factory.extended.test.d.ts +0 -2
  109. package/dist/core/__tests__/app-factory.extended.test.d.ts.map +0 -1
  110. package/dist/core/__tests__/app-factory.extended.test.js +0 -244
  111. package/dist/core/__tests__/app-factory.extended.test.js.map +0 -1
  112. package/dist/core/__tests__/builders.test.d.ts +0 -2
  113. package/dist/core/__tests__/builders.test.d.ts.map +0 -1
  114. package/dist/core/__tests__/builders.test.js +0 -98
  115. package/dist/core/__tests__/builders.test.js.map +0 -1
  116. package/dist/core/__tests__/component.test.d.ts +0 -2
  117. package/dist/core/__tests__/component.test.d.ts.map +0 -1
  118. package/dist/core/__tests__/component.test.js +0 -151
  119. package/dist/core/__tests__/component.test.js.map +0 -1
  120. package/dist/core/__tests__/config-module.test.d.ts +0 -2
  121. package/dist/core/__tests__/config-module.test.d.ts.map +0 -1
  122. package/dist/core/__tests__/config-module.test.js +0 -90
  123. package/dist/core/__tests__/config-module.test.js.map +0 -1
  124. package/dist/core/__tests__/core-modules.test.d.ts +0 -2
  125. package/dist/core/__tests__/core-modules.test.d.ts.map +0 -1
  126. package/dist/core/__tests__/core-modules.test.js +0 -36
  127. package/dist/core/__tests__/core-modules.test.js.map +0 -1
  128. package/dist/core/__tests__/di.test.d.ts +0 -2
  129. package/dist/core/__tests__/di.test.d.ts.map +0 -1
  130. package/dist/core/__tests__/di.test.js +0 -101
  131. package/dist/core/__tests__/di.test.js.map +0 -1
  132. package/dist/core/__tests__/errors.test.d.ts +0 -2
  133. package/dist/core/__tests__/errors.test.d.ts.map +0 -1
  134. package/dist/core/__tests__/errors.test.js +0 -109
  135. package/dist/core/__tests__/errors.test.js.map +0 -1
  136. package/dist/core/__tests__/final.blitz.test.d.ts +0 -2
  137. package/dist/core/__tests__/final.blitz.test.d.ts.map +0 -1
  138. package/dist/core/__tests__/final.blitz.test.js +0 -327
  139. package/dist/core/__tests__/final.blitz.test.js.map +0 -1
  140. package/dist/core/__tests__/jwt-module.test.d.ts +0 -2
  141. package/dist/core/__tests__/jwt-module.test.d.ts.map +0 -1
  142. package/dist/core/__tests__/jwt-module.test.js +0 -60
  143. package/dist/core/__tests__/jwt-module.test.js.map +0 -1
  144. package/dist/core/__tests__/logger.test.d.ts +0 -2
  145. package/dist/core/__tests__/logger.test.d.ts.map +0 -1
  146. package/dist/core/__tests__/logger.test.js +0 -83
  147. package/dist/core/__tests__/logger.test.js.map +0 -1
  148. package/dist/core/__tests__/models.test.d.ts +0 -2
  149. package/dist/core/__tests__/models.test.d.ts.map +0 -1
  150. package/dist/core/__tests__/models.test.js +0 -142
  151. package/dist/core/__tests__/models.test.js.map +0 -1
  152. package/dist/core/__tests__/module.test.d.ts +0 -2
  153. package/dist/core/__tests__/module.test.d.ts.map +0 -1
  154. package/dist/core/__tests__/module.test.js +0 -58
  155. package/dist/core/__tests__/module.test.js.map +0 -1
  156. package/dist/core/__tests__/oauth-module.test.d.ts +0 -2
  157. package/dist/core/__tests__/oauth-module.test.d.ts.map +0 -1
  158. package/dist/core/__tests__/oauth-module.test.js +0 -168
  159. package/dist/core/__tests__/oauth-module.test.js.map +0 -1
  160. package/dist/core/__tests__/oauth.extended.test.d.ts +0 -2
  161. package/dist/core/__tests__/oauth.extended.test.d.ts.map +0 -1
  162. package/dist/core/__tests__/oauth.extended.test.js +0 -146
  163. package/dist/core/__tests__/oauth.extended.test.js.map +0 -1
  164. package/dist/core/__tests__/prompt.test.d.ts +0 -2
  165. package/dist/core/__tests__/prompt.test.d.ts.map +0 -1
  166. package/dist/core/__tests__/prompt.test.js +0 -126
  167. package/dist/core/__tests__/prompt.test.js.map +0 -1
  168. package/dist/core/__tests__/resource.test.d.ts +0 -2
  169. package/dist/core/__tests__/resource.test.d.ts.map +0 -1
  170. package/dist/core/__tests__/resource.test.js +0 -173
  171. package/dist/core/__tests__/resource.test.js.map +0 -1
  172. package/dist/core/__tests__/server.extended.test.d.ts +0 -2
  173. package/dist/core/__tests__/server.extended.test.d.ts.map +0 -1
  174. package/dist/core/__tests__/server.extended.test.js +0 -242
  175. package/dist/core/__tests__/server.extended.test.js.map +0 -1
  176. package/dist/core/__tests__/server.test.d.ts +0 -2
  177. package/dist/core/__tests__/server.test.d.ts.map +0 -1
  178. package/dist/core/__tests__/server.test.js +0 -120
  179. package/dist/core/__tests__/server.test.js.map +0 -1
  180. package/dist/core/__tests__/transport.http.test.d.ts +0 -2
  181. package/dist/core/__tests__/transport.http.test.d.ts.map +0 -1
  182. package/dist/core/__tests__/transport.http.test.js +0 -119
  183. package/dist/core/__tests__/transport.http.test.js.map +0 -1
  184. package/dist/core/__tests__/transport.streamable.test.d.ts +0 -2
  185. package/dist/core/__tests__/transport.streamable.test.d.ts.map +0 -1
  186. package/dist/core/__tests__/transport.streamable.test.js +0 -168
  187. package/dist/core/__tests__/transport.streamable.test.js.map +0 -1
  188. package/dist/core/__tests__/transports.test.d.ts +0 -2
  189. package/dist/core/__tests__/transports.test.d.ts.map +0 -1
  190. package/dist/core/__tests__/transports.test.js +0 -12
  191. package/dist/core/__tests__/transports.test.js.map +0 -1
  192. package/dist/core/apikey-module.d.ts +0 -69
  193. package/dist/core/apikey-module.d.ts.map +0 -1
  194. package/dist/core/apikey-module.js +0 -114
  195. package/dist/core/apikey-module.js.map +0 -1
  196. package/dist/core/app-decorator.d.ts +0 -59
  197. package/dist/core/app-decorator.d.ts.map +0 -1
  198. package/dist/core/app-decorator.js +0 -322
  199. package/dist/core/app-decorator.js.map +0 -1
  200. package/dist/core/builders.d.ts +0 -50
  201. package/dist/core/builders.d.ts.map +0 -1
  202. package/dist/core/builders.js +0 -139
  203. package/dist/core/builders.js.map +0 -1
  204. package/dist/core/component.d.ts +0 -111
  205. package/dist/core/component.d.ts.map +0 -1
  206. package/dist/core/component.js +0 -228
  207. package/dist/core/component.js.map +0 -1
  208. package/dist/core/config-module.d.ts +0 -62
  209. package/dist/core/config-module.d.ts.map +0 -1
  210. package/dist/core/config-module.js +0 -94
  211. package/dist/core/config-module.js.map +0 -1
  212. package/dist/core/decorators/__tests__/decorators.test.d.ts +0 -2
  213. package/dist/core/decorators/__tests__/decorators.test.d.ts.map +0 -1
  214. package/dist/core/decorators/__tests__/decorators.test.js +0 -103
  215. package/dist/core/decorators/__tests__/decorators.test.js.map +0 -1
  216. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts +0 -2
  217. package/dist/core/decorators/__tests__/extended-decorators.test.d.ts.map +0 -1
  218. package/dist/core/decorators/__tests__/extended-decorators.test.js +0 -194
  219. package/dist/core/decorators/__tests__/extended-decorators.test.js.map +0 -1
  220. package/dist/core/decorators/__tests__/health-check.test.d.ts +0 -2
  221. package/dist/core/decorators/__tests__/health-check.test.d.ts.map +0 -1
  222. package/dist/core/decorators/__tests__/health-check.test.js +0 -119
  223. package/dist/core/decorators/__tests__/health-check.test.js.map +0 -1
  224. package/dist/core/decorators/cache.decorator.d.ts +0 -61
  225. package/dist/core/decorators/cache.decorator.d.ts.map +0 -1
  226. package/dist/core/decorators/cache.decorator.js +0 -115
  227. package/dist/core/decorators/cache.decorator.js.map +0 -1
  228. package/dist/core/decorators/health-check.decorator.d.ts +0 -80
  229. package/dist/core/decorators/health-check.decorator.d.ts.map +0 -1
  230. package/dist/core/decorators/health-check.decorator.js +0 -153
  231. package/dist/core/decorators/health-check.decorator.js.map +0 -1
  232. package/dist/core/decorators/rate-limit.decorator.d.ts +0 -63
  233. package/dist/core/decorators/rate-limit.decorator.d.ts.map +0 -1
  234. package/dist/core/decorators/rate-limit.decorator.js +0 -129
  235. package/dist/core/decorators/rate-limit.decorator.js.map +0 -1
  236. package/dist/core/decorators.d.ts +0 -190
  237. package/dist/core/decorators.d.ts.map +0 -1
  238. package/dist/core/decorators.js +0 -170
  239. package/dist/core/decorators.js.map +0 -1
  240. package/dist/core/di/__tests__/container.test.d.ts +0 -2
  241. package/dist/core/di/__tests__/container.test.d.ts.map +0 -1
  242. package/dist/core/di/__tests__/container.test.js +0 -88
  243. package/dist/core/di/__tests__/container.test.js.map +0 -1
  244. package/dist/core/di/container.d.ts +0 -64
  245. package/dist/core/di/container.d.ts.map +0 -1
  246. package/dist/core/di/container.js +0 -105
  247. package/dist/core/di/container.js.map +0 -1
  248. package/dist/core/di/injectable.decorator.d.ts +0 -62
  249. package/dist/core/di/injectable.decorator.d.ts.map +0 -1
  250. package/dist/core/di/injectable.decorator.js +0 -66
  251. package/dist/core/di/injectable.decorator.js.map +0 -1
  252. package/dist/core/di/metadata-shim.d.ts +0 -31
  253. package/dist/core/di/metadata-shim.d.ts.map +0 -1
  254. package/dist/core/di/metadata-shim.js +0 -181
  255. package/dist/core/di/metadata-shim.js.map +0 -1
  256. package/dist/core/errors.d.ts +0 -54
  257. package/dist/core/errors.d.ts.map +0 -1
  258. package/dist/core/errors.js +0 -87
  259. package/dist/core/errors.js.map +0 -1
  260. package/dist/core/events/__tests__/events.test.d.ts +0 -2
  261. package/dist/core/events/__tests__/events.test.d.ts.map +0 -1
  262. package/dist/core/events/__tests__/events.test.js +0 -177
  263. package/dist/core/events/__tests__/events.test.js.map +0 -1
  264. package/dist/core/events/event-emitter.d.ts +0 -50
  265. package/dist/core/events/event-emitter.d.ts.map +0 -1
  266. package/dist/core/events/event-emitter.js +0 -94
  267. package/dist/core/events/event-emitter.js.map +0 -1
  268. package/dist/core/events/event.decorator.d.ts +0 -48
  269. package/dist/core/events/event.decorator.d.ts.map +0 -1
  270. package/dist/core/events/event.decorator.js +0 -72
  271. package/dist/core/events/event.decorator.js.map +0 -1
  272. package/dist/core/events/log-emitter.d.ts +0 -14
  273. package/dist/core/events/log-emitter.d.ts.map +0 -1
  274. package/dist/core/events/log-emitter.js +0 -20
  275. package/dist/core/events/log-emitter.js.map +0 -1
  276. package/dist/core/filters/__tests__/filters.test.d.ts +0 -2
  277. package/dist/core/filters/__tests__/filters.test.d.ts.map +0 -1
  278. package/dist/core/filters/__tests__/filters.test.js +0 -72
  279. package/dist/core/filters/__tests__/filters.test.js.map +0 -1
  280. package/dist/core/filters/exception-filter.decorator.d.ts +0 -40
  281. package/dist/core/filters/exception-filter.decorator.d.ts.map +0 -1
  282. package/dist/core/filters/exception-filter.decorator.js +0 -54
  283. package/dist/core/filters/exception-filter.decorator.js.map +0 -1
  284. package/dist/core/filters/exception-filter.interface.d.ts +0 -39
  285. package/dist/core/filters/exception-filter.interface.d.ts.map +0 -1
  286. package/dist/core/filters/exception-filter.interface.js +0 -2
  287. package/dist/core/filters/exception-filter.interface.js.map +0 -1
  288. package/dist/core/guards/__tests__/guards.test.d.ts +0 -2
  289. package/dist/core/guards/__tests__/guards.test.d.ts.map +0 -1
  290. package/dist/core/guards/__tests__/guards.test.js +0 -55
  291. package/dist/core/guards/__tests__/guards.test.js.map +0 -1
  292. package/dist/core/guards/apikey.guard.d.ts +0 -22
  293. package/dist/core/guards/apikey.guard.d.ts.map +0 -1
  294. package/dist/core/guards/apikey.guard.js +0 -11
  295. package/dist/core/guards/apikey.guard.js.map +0 -1
  296. package/dist/core/guards/guard.interface.d.ts +0 -18
  297. package/dist/core/guards/guard.interface.d.ts.map +0 -1
  298. package/dist/core/guards/guard.interface.js +0 -2
  299. package/dist/core/guards/guard.interface.js.map +0 -1
  300. package/dist/core/guards/jwt.guard.d.ts +0 -18
  301. package/dist/core/guards/jwt.guard.d.ts.map +0 -1
  302. package/dist/core/guards/jwt.guard.js +0 -2
  303. package/dist/core/guards/jwt.guard.js.map +0 -1
  304. package/dist/core/guards/oauth.guard.d.ts +0 -35
  305. package/dist/core/guards/oauth.guard.d.ts.map +0 -1
  306. package/dist/core/guards/oauth.guard.js +0 -2
  307. package/dist/core/guards/oauth.guard.js.map +0 -1
  308. package/dist/core/guards/use-guards.decorator.d.ts +0 -25
  309. package/dist/core/guards/use-guards.decorator.d.ts.map +0 -1
  310. package/dist/core/guards/use-guards.decorator.js +0 -32
  311. package/dist/core/guards/use-guards.decorator.js.map +0 -1
  312. package/dist/core/health/__tests__/health.test.d.ts +0 -2
  313. package/dist/core/health/__tests__/health.test.d.ts.map +0 -1
  314. package/dist/core/health/__tests__/health.test.js +0 -31
  315. package/dist/core/health/__tests__/health.test.js.map +0 -1
  316. package/dist/core/health/health-checks.resource.d.ts +0 -14
  317. package/dist/core/health/health-checks.resource.d.ts.map +0 -1
  318. package/dist/core/health/health-checks.resource.js +0 -29
  319. package/dist/core/health/health-checks.resource.js.map +0 -1
  320. package/dist/core/index.d.ts +0 -57
  321. package/dist/core/index.d.ts.map +0 -1
  322. package/dist/core/index.js +0 -59
  323. package/dist/core/index.js.map +0 -1
  324. package/dist/core/interceptors/__tests__/interceptors.test.d.ts +0 -2
  325. package/dist/core/interceptors/__tests__/interceptors.test.d.ts.map +0 -1
  326. package/dist/core/interceptors/__tests__/interceptors.test.js +0 -52
  327. package/dist/core/interceptors/__tests__/interceptors.test.js.map +0 -1
  328. package/dist/core/interceptors/interceptor.decorator.d.ts +0 -37
  329. package/dist/core/interceptors/interceptor.decorator.d.ts.map +0 -1
  330. package/dist/core/interceptors/interceptor.decorator.js +0 -51
  331. package/dist/core/interceptors/interceptor.decorator.js.map +0 -1
  332. package/dist/core/interceptors/interceptor.interface.d.ts +0 -31
  333. package/dist/core/interceptors/interceptor.interface.d.ts.map +0 -1
  334. package/dist/core/interceptors/interceptor.interface.js +0 -2
  335. package/dist/core/interceptors/interceptor.interface.js.map +0 -1
  336. package/dist/core/jwt-module.d.ts +0 -51
  337. package/dist/core/jwt-module.d.ts.map +0 -1
  338. package/dist/core/jwt-module.js +0 -52
  339. package/dist/core/jwt-module.js.map +0 -1
  340. package/dist/core/logger.d.ts +0 -18
  341. package/dist/core/logger.d.ts.map +0 -1
  342. package/dist/core/logger.js +0 -53
  343. package/dist/core/logger.js.map +0 -1
  344. package/dist/core/middleware/__tests__/middleware.test.d.ts +0 -2
  345. package/dist/core/middleware/__tests__/middleware.test.d.ts.map +0 -1
  346. package/dist/core/middleware/__tests__/middleware.test.js +0 -105
  347. package/dist/core/middleware/__tests__/middleware.test.js.map +0 -1
  348. package/dist/core/middleware/middleware.decorator.d.ts +0 -39
  349. package/dist/core/middleware/middleware.decorator.d.ts.map +0 -1
  350. package/dist/core/middleware/middleware.decorator.js +0 -53
  351. package/dist/core/middleware/middleware.decorator.js.map +0 -1
  352. package/dist/core/middleware/middleware.interface.d.ts +0 -29
  353. package/dist/core/middleware/middleware.interface.d.ts.map +0 -1
  354. package/dist/core/middleware/middleware.interface.js +0 -2
  355. package/dist/core/middleware/middleware.interface.js.map +0 -1
  356. package/dist/core/module.d.ts +0 -93
  357. package/dist/core/module.d.ts.map +0 -1
  358. package/dist/core/module.js +0 -87
  359. package/dist/core/module.js.map +0 -1
  360. package/dist/core/oauth-module.d.ts +0 -123
  361. package/dist/core/oauth-module.d.ts.map +0 -1
  362. package/dist/core/oauth-module.js +0 -324
  363. package/dist/core/oauth-module.js.map +0 -1
  364. package/dist/core/pipes/__tests__/pipes.test.d.ts +0 -2
  365. package/dist/core/pipes/__tests__/pipes.test.d.ts.map +0 -1
  366. package/dist/core/pipes/__tests__/pipes.test.js +0 -164
  367. package/dist/core/pipes/__tests__/pipes.test.js.map +0 -1
  368. package/dist/core/pipes/pipe.decorator.d.ts +0 -64
  369. package/dist/core/pipes/pipe.decorator.d.ts.map +0 -1
  370. package/dist/core/pipes/pipe.decorator.js +0 -85
  371. package/dist/core/pipes/pipe.decorator.js.map +0 -1
  372. package/dist/core/pipes/pipe.interface.d.ts +0 -41
  373. package/dist/core/pipes/pipe.interface.d.ts.map +0 -1
  374. package/dist/core/pipes/pipe.interface.js +0 -2
  375. package/dist/core/pipes/pipe.interface.js.map +0 -1
  376. package/dist/core/prompt.d.ts +0 -46
  377. package/dist/core/prompt.d.ts.map +0 -1
  378. package/dist/core/prompt.js +0 -76
  379. package/dist/core/prompt.js.map +0 -1
  380. package/dist/core/resource.d.ts +0 -47
  381. package/dist/core/resource.d.ts.map +0 -1
  382. package/dist/core/resource.js +0 -90
  383. package/dist/core/resource.js.map +0 -1
  384. package/dist/core/server.d.ts +0 -129
  385. package/dist/core/server.d.ts.map +0 -1
  386. package/dist/core/server.js +0 -617
  387. package/dist/core/server.js.map +0 -1
  388. package/dist/core/tool.d.ts +0 -108
  389. package/dist/core/tool.d.ts.map +0 -1
  390. package/dist/core/tool.js +0 -241
  391. package/dist/core/tool.js.map +0 -1
  392. package/dist/core/transports/__tests__/transports.test.d.ts +0 -2
  393. package/dist/core/transports/__tests__/transports.test.d.ts.map +0 -1
  394. package/dist/core/transports/__tests__/transports.test.js +0 -249
  395. package/dist/core/transports/__tests__/transports.test.js.map +0 -1
  396. package/dist/core/transports/discovery-http-server.d.ts +0 -19
  397. package/dist/core/transports/discovery-http-server.d.ts.map +0 -1
  398. package/dist/core/transports/discovery-http-server.js +0 -54
  399. package/dist/core/transports/discovery-http-server.js.map +0 -1
  400. package/dist/core/transports/http-server.d.ts +0 -108
  401. package/dist/core/transports/http-server.d.ts.map +0 -1
  402. package/dist/core/transports/http-server.js +0 -293
  403. package/dist/core/transports/http-server.js.map +0 -1
  404. package/dist/core/transports/streamable-http.d.ts +0 -177
  405. package/dist/core/transports/streamable-http.d.ts.map +0 -1
  406. package/dist/core/transports/streamable-http.js +0 -1287
  407. package/dist/core/transports/streamable-http.js.map +0 -1
  408. package/dist/core/types.d.ts +0 -195
  409. package/dist/core/types.d.ts.map +0 -1
  410. package/dist/core/types.js +0 -2
  411. package/dist/core/types.js.map +0 -1
  412. package/dist/core/widgets/__tests__/registry.test.d.ts +0 -2
  413. package/dist/core/widgets/__tests__/registry.test.d.ts.map +0 -1
  414. package/dist/core/widgets/__tests__/registry.test.js +0 -69
  415. package/dist/core/widgets/__tests__/registry.test.js.map +0 -1
  416. package/dist/core/widgets/widget-examples.resource.d.ts +0 -17
  417. package/dist/core/widgets/widget-examples.resource.d.ts.map +0 -1
  418. package/dist/core/widgets/widget-examples.resource.js +0 -28
  419. package/dist/core/widgets/widget-examples.resource.js.map +0 -1
  420. package/dist/core/widgets/widget-registry.d.ts +0 -56
  421. package/dist/core/widgets/widget-registry.d.ts.map +0 -1
  422. package/dist/core/widgets/widget-registry.js +0 -75
  423. package/dist/core/widgets/widget-registry.js.map +0 -1
  424. package/dist/testing/__tests__/testing.test.d.ts +0 -2
  425. package/dist/testing/__tests__/testing.test.d.ts.map +0 -1
  426. package/dist/testing/__tests__/testing.test.js +0 -167
  427. package/dist/testing/__tests__/testing.test.js.map +0 -1
  428. package/dist/testing/index.d.ts +0 -103
  429. package/dist/testing/index.d.ts.map +0 -1
  430. package/dist/testing/index.js +0 -161
  431. package/dist/testing/index.js.map +0 -1
  432. package/dist/ui-next/__tests__/ui-next.test.d.ts +0 -2
  433. package/dist/ui-next/__tests__/ui-next.test.d.ts.map +0 -1
  434. package/dist/ui-next/__tests__/ui-next.test.js +0 -74
  435. package/dist/ui-next/__tests__/ui-next.test.js.map +0 -1
  436. package/dist/ui-next/index.d.ts +0 -31
  437. package/dist/ui-next/index.d.ts.map +0 -1
  438. package/dist/ui-next/index.js +0 -687
  439. package/dist/ui-next/index.js.map +0 -1
@@ -1,244 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { jest, describe, it, expect, beforeEach } from '@jest/globals';
11
- import { McpApp, McpApplicationFactory } from '../app-decorator.js';
12
- import { Module } from '../module.js';
13
- import { Tool as ToolDecorator } from '../decorators.js';
14
- import { Tool } from '../tool.js';
15
- import { DIContainer } from '../di/container.js';
16
- import { z } from 'zod';
17
- // Mock dependencies
18
- jest.mock('../health/health-checks.resource.js', () => ({
19
- // @ts-ignore
20
- buildHealthChecksResource: jest.fn().mockResolvedValue({
21
- uri: 'mcp://health',
22
- name: 'Health',
23
- description: 'Health',
24
- mimeType: 'text/plain',
25
- // @ts-ignore
26
- read: jest.fn().mockResolvedValue('ok')
27
- })
28
- }));
29
- describe('McpApplicationFactory & Tool Pipeline', () => {
30
- beforeEach(() => {
31
- DIContainer.getInstance().clear();
32
- jest.clearAllMocks();
33
- });
34
- it('should bootstrap a complex application with controllers and health checks', async () => {
35
- class MockHealthCheck {
36
- check() { return { status: 'ok' }; }
37
- }
38
- Reflect.defineMetadata('nitrostack:health_check', { name: 'DB' }, MockHealthCheck);
39
- class TestController {
40
- async hello() { return 'hi'; }
41
- }
42
- __decorate([
43
- ToolDecorator({ name: 'hello', description: 'desc', inputSchema: {} }),
44
- __metadata("design:type", Function),
45
- __metadata("design:paramtypes", []),
46
- __metadata("design:returntype", Promise)
47
- ], TestController.prototype, "hello", null);
48
- let SubModule = class SubModule {
49
- };
50
- SubModule = __decorate([
51
- Module({
52
- name: 'SubModule',
53
- providers: [
54
- { provide: 'Config', useValue: { api: 'test' } },
55
- MockHealthCheck
56
- ],
57
- controllers: [TestController]
58
- })
59
- ], SubModule);
60
- let RootModule = class RootModule {
61
- };
62
- RootModule = __decorate([
63
- Module({
64
- name: 'RootModule',
65
- imports: [
66
- SubModule,
67
- // Dynamic module style
68
- {
69
- module: class DynamicMod {
70
- },
71
- providers: [{ provide: 'Dynamic', useValue: 'val' }]
72
- }
73
- ],
74
- providers: [],
75
- controllers: []
76
- })
77
- ], RootModule);
78
- let App = class App {
79
- };
80
- App = __decorate([
81
- McpApp({
82
- module: RootModule,
83
- server: { name: 'TestApp', version: '1.2.3' },
84
- logging: { level: 'debug' }
85
- })
86
- ], App);
87
- const server = await McpApplicationFactory.create(App);
88
- expect(server).toBeDefined();
89
- expect(DIContainer.getInstance().resolve('Config')).toEqual({ api: 'test' });
90
- expect(DIContainer.getInstance().resolve('Dynamic')).toBe('val');
91
- });
92
- it('should throw if @McpApp is missing', async () => {
93
- class NoApp {
94
- }
95
- await expect(McpApplicationFactory.create(NoApp)).rejects.toThrow('is not decorated with @McpApp');
96
- });
97
- it('should throw if @Module is missing on the root module', async () => {
98
- class NoModule {
99
- }
100
- let App = class App {
101
- };
102
- App = __decorate([
103
- McpApp({ module: NoModule })
104
- ], App);
105
- await expect(McpApplicationFactory.create(App)).rejects.toThrow('is not decorated with @Module');
106
- });
107
- it('should auto-detect HTTP transport if OAuth is configured', async () => {
108
- // Mock OAuth configuration
109
- const { OAuthModule } = await import('../oauth-module.js');
110
- jest.spyOn(OAuthModule, 'getConfig').mockReturnValue({
111
- resourceUri: 'http://localhost:4000/mcp',
112
- authorizationServers: ['http://auth.com'],
113
- http: { port: 4001, host: '127.0.0.1' }
114
- });
115
- let RootModule = class RootModule {
116
- };
117
- RootModule = __decorate([
118
- Module({ name: 'RootModule' })
119
- ], RootModule);
120
- let App = class App {
121
- };
122
- App = __decorate([
123
- McpApp({ module: RootModule })
124
- ], App);
125
- const server = await McpApplicationFactory.create(App);
126
- const internal = server;
127
- expect(internal._transportType).toBe('dual');
128
- expect(internal._transportOptions.port).toBe(4001);
129
- });
130
- it('should execute tool with full pipeline (Guards, Middleware, Interceptors, Pipes)', async () => {
131
- const pipeline = [];
132
- class TestGuard {
133
- async canActivate() {
134
- pipeline.push('guard');
135
- return true;
136
- }
137
- }
138
- class TestMiddleware {
139
- async use(context, next) {
140
- pipeline.push('mw-before');
141
- const res = await next();
142
- pipeline.push('mw-after');
143
- return res;
144
- }
145
- }
146
- class TestInterceptor {
147
- async intercept(context, next) {
148
- pipeline.push('inter-before');
149
- const res = await next();
150
- pipeline.push('inter-after');
151
- return res;
152
- }
153
- }
154
- class TestPipe {
155
- async transform(value) {
156
- pipeline.push('pipe');
157
- return value + '!';
158
- }
159
- }
160
- const tool = new Tool({
161
- name: 'test-tool',
162
- description: 'desc',
163
- inputSchema: { type: 'string' },
164
- handler: async (input) => {
165
- pipeline.push('handler');
166
- return `Hello ${input}`;
167
- },
168
- guards: [TestGuard],
169
- middlewares: [TestMiddleware],
170
- interceptors: [TestInterceptor],
171
- pipes: [TestPipe]
172
- });
173
- const result = await tool.execute('World', {});
174
- expect(result).toBe('Hello World!');
175
- expect(pipeline).toEqual([
176
- 'guard',
177
- 'mw-before',
178
- 'inter-before',
179
- 'pipe',
180
- 'handler',
181
- 'inter-after',
182
- 'mw-after'
183
- ]);
184
- });
185
- it('should handle tool execution errors with Exception Filters', async () => {
186
- class TestFilter {
187
- async catch(error) {
188
- return `Handled: ${error.message}`;
189
- }
190
- }
191
- const tool = new Tool({
192
- name: 'error-tool',
193
- description: 'desc',
194
- inputSchema: { type: 'string' },
195
- handler: async () => {
196
- throw new Error('Boom');
197
- },
198
- filters: [TestFilter]
199
- });
200
- const result = await tool.execute({}, {});
201
- expect(result).toBe('Handled: Boom');
202
- });
203
- it('should convert Zod schema to MCP tool format', async () => {
204
- const tool = new Tool({
205
- name: 'zod-tool',
206
- description: 'zod desc',
207
- inputSchema: z.object({
208
- name: z.string().describe('User name'),
209
- age: z.number().optional()
210
- }),
211
- handler: async () => 'ok',
212
- examples: { request: { name: 'Alice' } },
213
- isInitial: true
214
- });
215
- const mcpTool = await tool.toMcpTool();
216
- expect(mcpTool.name).toBe('zod-tool');
217
- expect(mcpTool.inputSchema.type).toBe('object');
218
- // @ts-ignore
219
- expect(mcpTool.inputSchema.properties.name.description).toBe('User name');
220
- // @ts-ignore
221
- expect(mcpTool._meta['tool/initial']).toBe(true);
222
- // @ts-ignore
223
- expect(mcpTool._meta['tool/examples']).toEqual({ request: { name: 'Alice' } });
224
- });
225
- it('should integrate component metadata in toMcpTool', async () => {
226
- const mockComponent = {
227
- getResourceUri: () => 'mcp://widgets/test',
228
- getResourceMetadata: () => ({ 'openai/widgetDescription': 'A test widget' })
229
- };
230
- const tool = new Tool({
231
- name: 'ui-tool',
232
- description: 'desc',
233
- inputSchema: { type: 'object' },
234
- handler: async () => 'ok'
235
- });
236
- tool.setComponent(mockComponent);
237
- const mcpTool = await tool.toMcpTool();
238
- // @ts-ignore
239
- expect(mcpTool._meta['ui/template']).toBe('mcp://widgets/test');
240
- // @ts-ignore
241
- expect(mcpTool._meta['openai/widgetDescription']).toBe('A test widget');
242
- });
243
- });
244
- //# sourceMappingURL=app-factory.extended.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-factory.extended.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/app-factory.extended.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import 'reflect-metadata';
2
- //# sourceMappingURL=builders.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builders.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/builders.test.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC"}
@@ -1,98 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { describe, it, expect } from '@jest/globals';
11
- import { z } from 'zod';
12
- import 'reflect-metadata';
13
- import { buildTool, buildResource, buildPrompt, buildController } from '../builders.js';
14
- import { Tool } from '../tool.js';
15
- import { Resource } from '../resource.js';
16
- import { Prompt } from '../prompt.js';
17
- describe('Builders', () => {
18
- describe('buildTool', () => {
19
- it('should build a tool from a method', () => {
20
- class TestController {
21
- execute() { return 'ok'; }
22
- }
23
- const instance = new TestController();
24
- const tool = buildTool(instance, 'execute', {
25
- name: 'test-tool',
26
- description: 'desc',
27
- inputSchema: z.object({})
28
- });
29
- expect(tool).toBeInstanceOf(Tool);
30
- expect(tool.name).toBe('test-tool');
31
- });
32
- });
33
- describe('buildResource', () => {
34
- it('should build a resource from a method', () => {
35
- class TestController {
36
- async handle() { return { type: 'text', data: 'hi' }; }
37
- }
38
- const instance = new TestController();
39
- const resource = buildResource(instance, 'handle', {
40
- uri: 'test://uri',
41
- name: 'test-res',
42
- description: 'desc'
43
- });
44
- expect(resource).toBeInstanceOf(Resource);
45
- expect(resource.uri).toBe('test://uri');
46
- });
47
- });
48
- describe('buildPrompt', () => {
49
- it('should build a prompt from a method', () => {
50
- class TestController {
51
- async handle() { return [{ role: 'user', content: 'hi' }]; }
52
- }
53
- const instance = new TestController();
54
- const prompt = buildPrompt(instance, 'handle', {
55
- name: 'test-prompt',
56
- description: 'desc'
57
- });
58
- expect(prompt).toBeInstanceOf(Prompt);
59
- expect(prompt.name).toBe('test-prompt');
60
- });
61
- });
62
- describe('buildController', () => {
63
- it('should build all components from a decorated controller', async () => {
64
- const { Tool: ToolDec, Resource: ResDec, Prompt: PromptDec } = await import('../decorators.js');
65
- class TestController {
66
- t1() { }
67
- r1() { }
68
- p1() { }
69
- }
70
- __decorate([
71
- ToolDec({ name: 't1', description: 'd', inputSchema: z.object({}) }),
72
- __metadata("design:type", Function),
73
- __metadata("design:paramtypes", []),
74
- __metadata("design:returntype", void 0)
75
- ], TestController.prototype, "t1", null);
76
- __decorate([
77
- ResDec({ uri: 'r1', name: 'n', description: 'd' }),
78
- __metadata("design:type", Function),
79
- __metadata("design:paramtypes", []),
80
- __metadata("design:returntype", void 0)
81
- ], TestController.prototype, "r1", null);
82
- __decorate([
83
- PromptDec({ name: 'p1', description: 'd' }),
84
- __metadata("design:type", Function),
85
- __metadata("design:paramtypes", []),
86
- __metadata("design:returntype", void 0)
87
- ], TestController.prototype, "p1", null);
88
- const result = buildController(TestController);
89
- expect(result.tools).toHaveLength(1);
90
- expect(result.resources).toHaveLength(1);
91
- expect(result.prompts).toHaveLength(1);
92
- expect(result.tools[0].name).toBe('t1');
93
- expect(result.resources[0].uri).toBe('r1');
94
- expect(result.prompts[0].name).toBe('p1');
95
- });
96
- });
97
- });
98
- //# sourceMappingURL=builders.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builders.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/builders.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=component.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/component.test.ts"],"names":[],"mappings":""}
@@ -1,151 +0,0 @@
1
- import { jest, describe, it, expect } from '@jest/globals';
2
- // Mock fs and path
3
- jest.unstable_mockModule('fs', () => ({
4
- existsSync: jest.fn(),
5
- readFileSync: jest.fn(),
6
- }));
7
- jest.unstable_mockModule('path', () => ({
8
- resolve: (base, p) => `${base}/${p}`,
9
- join: (base, p) => `${base}/${p}`,
10
- }));
11
- const { Component, createComponent } = await import('../component');
12
- const fs = await import('fs');
13
- describe('Component', () => {
14
- it('should validate definition', () => {
15
- expect(() => new Component({ id: '', name: 'test', html: '<div></div>' })).toThrow('Component ID is required');
16
- expect(() => new Component({ id: 'test', name: '', html: '<div></div>' })).toThrow('Component name is required');
17
- });
18
- it('should have basic getters', () => {
19
- const comp = new Component({ id: 'c1', name: 'Name', description: 'Desc', html: 'h' });
20
- expect(comp.id).toBe('c1');
21
- expect(comp.name).toBe('Name');
22
- expect(comp.description).toBe('Desc');
23
- });
24
- describe('compile', () => {
25
- it('should use inline HTML/CSS/JS', async () => {
26
- const comp = new Component({
27
- id: 'inline',
28
- name: 'Inline',
29
- html: '<div></div>',
30
- css: 'div{color:red}',
31
- js: 'console.log(1)'
32
- });
33
- await comp.compile();
34
- const bundle = comp.getBundle();
35
- expect(bundle).toContain('<div></div>');
36
- expect(bundle).toContain('<style>div{color:red}</style>');
37
- expect(bundle).toContain('<script type="module">console.log(1)</script>');
38
- // Re-compiling should return early
39
- await comp.compile();
40
- });
41
- it('should load from static file if exists', async () => {
42
- fs.existsSync.mockReturnValue(true);
43
- fs.readFileSync.mockReturnValue('<html>FILE</html>');
44
- const comp = new Component({ id: 'f1', name: 'File', html: 'FALLBACK' });
45
- await comp.compile();
46
- expect(comp.getBundle()).toContain('<html>FILE</html>');
47
- });
48
- it('should handle next- prefix for static files', async () => {
49
- // First existsSync (exact match) returns false
50
- // Second existsSync (without next-) returns true
51
- fs.existsSync
52
- .mockReturnValueOnce(false)
53
- .mockReturnValueOnce(true);
54
- fs.readFileSync.mockReturnValue('<html>NEXT</html>');
55
- const comp = new Component({ id: 'next-real', name: 'Next', html: 'FALLBACK' });
56
- await comp.compile();
57
- expect(comp.getBundle()).toContain('<html>NEXT</html>');
58
- });
59
- it('should fallback to inline if file reading fails', async () => {
60
- fs.existsSync.mockReturnValue(true);
61
- fs.readFileSync.mockImplementation(() => { throw new Error('fail'); });
62
- const comp = new Component({ id: 'fail', name: 'Fail', html: 'INLINE' });
63
- await comp.compile();
64
- expect(comp.getBundle()).toContain('INLINE');
65
- });
66
- it('should warn if no HTML and not in dev mode', async () => {
67
- fs.existsSync.mockReturnValue(false);
68
- const comp = new Component({ id: 'empty', name: 'Empty' });
69
- await comp.compile();
70
- expect(comp.getBundle()).toBe('');
71
- });
72
- it('should throw getBundle if not compiled', () => {
73
- const comp = new Component({ id: 'c1', name: 'c1', html: 'h' });
74
- expect(() => comp.getBundle()).toThrow('Component not compiled');
75
- });
76
- });
77
- describe('metadata and uris', () => {
78
- it('should return correct resource URI', () => {
79
- const normal = new Component({ id: 'n1', name: 'n1', html: 'h' });
80
- expect(normal.getResourceUri()).toBe('ui://widget/n1.html');
81
- const dev = new Component({
82
- id: 'd1', name: 'd1', html: 'h',
83
- _meta: { devMode: true, devUrl: 'http://localhost:3000' }
84
- });
85
- expect(dev.getResourceUri()).toBe('http://localhost:3000');
86
- expect(dev.isDevMode()).toBe(true);
87
- expect(dev.getDevUrl()).toBe('http://localhost:3000');
88
- });
89
- it('should generate provider metadata', () => {
90
- const comp = new Component({
91
- id: 'c1',
92
- name: 'c1',
93
- html: 'h',
94
- description: 'desc',
95
- canInvokeTools: true,
96
- prefersBorder: true,
97
- subdomain: 'sub',
98
- csp: { connectDomains: ['a.com'], resourceDomains: ['b.com'] },
99
- providerMetadata: { custom: 'val' }
100
- });
101
- const openai = comp.getProviderMetadata('openai');
102
- expect(openai['openai/outputTemplate']).toBeDefined();
103
- const anthropic = comp.getProviderMetadata('anthropic');
104
- expect(anthropic['anthropic/ui']).toBeDefined();
105
- const generic = comp.getProviderMetadata('generic');
106
- expect(generic['ui/template']).toBeDefined();
107
- });
108
- it('should generate resource metadata', () => {
109
- const comp = new Component({
110
- id: 'c1',
111
- name: 'c1',
112
- html: 'h',
113
- description: 'desc',
114
- prefersBorder: true,
115
- csp: { connectDomains: ['a.com'] }
116
- });
117
- const meta = comp.getResourceMetadata();
118
- expect(meta.mimeType).toBe('text/html');
119
- expect(meta['openai/widgetPrefersBorder']).toBe(true);
120
- });
121
- });
122
- describe('transformations', () => {
123
- it('should use transformer and metaTransformer', async () => {
124
- const comp = new Component({
125
- id: 't1',
126
- name: 't1',
127
- html: 'h',
128
- transformer: (d) => ({ ...d, x: 1 }),
129
- metaTransformer: (d) => ({ ...d, y: 2 })
130
- });
131
- const data = { val: 0 };
132
- const context = {};
133
- expect((await comp.transformData(data, context)).x).toBe(1);
134
- expect((await comp.getWidgetMeta(data, context)).y).toBe(2);
135
- const simple = new Component({ id: 's1', name: 's1', html: 'h' });
136
- expect(await simple.transformData(data, context)).toEqual(data);
137
- expect(await simple.getWidgetMeta(data, context)).toBeNull();
138
- });
139
- it('should run initialize and onInit', async () => {
140
- const onInit = jest.fn();
141
- const comp = new Component({ id: 'i1', name: 'i1', html: 'h', onInit });
142
- await comp.initialize({});
143
- expect(onInit).toHaveBeenCalled();
144
- });
145
- });
146
- it('should helper function createComponent', () => {
147
- const comp = createComponent({ id: 'h1', name: 'h1', html: 'h' });
148
- expect(comp).toBeInstanceOf(Component);
149
- });
150
- });
151
- //# sourceMappingURL=component.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/component.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config-module.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-module.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/config-module.test.ts"],"names":[],"mappings":""}
@@ -1,90 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from '@jest/globals';
2
- import { ConfigService, ConfigModule } from '../config-module.js';
3
- describe('ConfigModule', () => {
4
- const originalEnv = process.env;
5
- beforeEach(() => {
6
- process.env = { ...originalEnv };
7
- });
8
- afterEach(() => {
9
- process.env = originalEnv;
10
- });
11
- describe('ConfigService', () => {
12
- it('should use defaults when no env vars set', () => {
13
- const service = new ConfigService({
14
- ignoreEnvFile: true,
15
- defaults: { MY_VAR: 'default-value' }
16
- });
17
- expect(service.get('MY_VAR')).toBe('default-value');
18
- });
19
- it('should return undefined for missing key without default', () => {
20
- const service = new ConfigService({ ignoreEnvFile: true });
21
- expect(service.get('MISSING_KEY')).toBeUndefined();
22
- });
23
- it('should return default value for missing key', () => {
24
- const service = new ConfigService({ ignoreEnvFile: true });
25
- expect(service.get('MISSING_KEY', 'fallback')).toBe('fallback');
26
- });
27
- it('should use process.env values', () => {
28
- process.env.TEST_VAR = 'from-env';
29
- const service = new ConfigService({ ignoreEnvFile: true });
30
- expect(service.get('TEST_VAR')).toBe('from-env');
31
- });
32
- it('should override defaults with process.env', () => {
33
- process.env.MY_VAR = 'env-value';
34
- const service = new ConfigService({
35
- ignoreEnvFile: true,
36
- defaults: { MY_VAR: 'default-value' }
37
- });
38
- expect(service.get('MY_VAR')).toBe('env-value');
39
- });
40
- describe('getOrThrow', () => {
41
- it('should return value if exists', () => {
42
- process.env.REQUIRED_VAR = 'required-value';
43
- const service = new ConfigService({ ignoreEnvFile: true });
44
- expect(service.getOrThrow('REQUIRED_VAR')).toBe('required-value');
45
- });
46
- it('should throw if value missing', () => {
47
- const service = new ConfigService({ ignoreEnvFile: true });
48
- expect(() => service.getOrThrow('MISSING_KEY')).toThrow('Configuration key "MISSING_KEY" is required but not found');
49
- });
50
- });
51
- describe('getAll', () => {
52
- it('should return all config values', () => {
53
- const service = new ConfigService({
54
- ignoreEnvFile: true,
55
- defaults: { FOO: 'bar', BAZ: 'qux' }
56
- });
57
- const all = service.getAll();
58
- expect(all.FOO).toBe('bar');
59
- expect(all.BAZ).toBe('qux');
60
- });
61
- });
62
- describe('validation', () => {
63
- it('should throw if validation fails', () => {
64
- expect(() => new ConfigService({
65
- ignoreEnvFile: true,
66
- validate: () => false
67
- })).toThrow('Environment variable validation failed');
68
- });
69
- it('should pass if validation succeeds', () => {
70
- expect(() => new ConfigService({
71
- ignoreEnvFile: true,
72
- validate: () => true
73
- })).not.toThrow();
74
- });
75
- });
76
- });
77
- describe('ConfigModule.forRoot', () => {
78
- it('should return providers with ConfigService', () => {
79
- const result = ConfigModule.forRoot({ ignoreEnvFile: true });
80
- expect(result.providers).toHaveLength(1);
81
- expect(result.providers[0].provide).toBe(ConfigService);
82
- expect(result.providers[0].useValue).toBeInstanceOf(ConfigService);
83
- });
84
- it('should export ConfigService', () => {
85
- const result = ConfigModule.forRoot({ ignoreEnvFile: true });
86
- expect(result.exports).toContain(ConfigService);
87
- });
88
- });
89
- });
90
- //# sourceMappingURL=config-module.test.js.map