@velajs/vela 1.18.0 → 1.19.1

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 (441) hide show
  1. package/CHANGELOG.md +78 -14
  2. package/dist/configurable-module.builder-5FGMaXG6.js +91 -0
  3. package/dist/configurable-module.builder-5FGMaXG6.js.map +1 -0
  4. package/dist/container-BqUHID4l.js +645 -0
  5. package/dist/container-BqUHID4l.js.map +1 -0
  6. package/dist/cron-matcher-C9qv5OUA.js +113 -0
  7. package/dist/cron-matcher-C9qv5OUA.js.map +1 -0
  8. package/dist/decorate-GcSMAbKn.js +528 -0
  9. package/dist/decorate-GcSMAbKn.js.map +1 -0
  10. package/dist/decorators-C8YBFCIk.js +53 -0
  11. package/dist/decorators-C8YBFCIk.js.map +1 -0
  12. package/dist/define-module-NOyOZNXD.js +235 -0
  13. package/dist/define-module-NOyOZNXD.js.map +1 -0
  14. package/dist/discovery.service-BYm95SSD.js +368 -0
  15. package/dist/discovery.service-BYm95SSD.js.map +1 -0
  16. package/dist/discovery.service-Cpf1QcZ5.d.ts +648 -0
  17. package/dist/i18n/index.d.ts +138 -10
  18. package/dist/i18n/index.js +270 -8
  19. package/dist/i18n/index.js.map +1 -0
  20. package/dist/index-D72EQfcC.d.ts +430 -0
  21. package/dist/index-DhShDLCM.d.ts +2310 -0
  22. package/dist/index.d.ts +6 -66
  23. package/dist/index.js +14 -71
  24. package/dist/internal.d.ts +13 -17
  25. package/dist/internal.js +6 -19
  26. package/dist/live/index.d.ts +2 -12
  27. package/dist/live/index.js +826 -16
  28. package/dist/live/index.js.map +1 -0
  29. package/dist/metadata.registry-D1od8ZBt.d.ts +842 -0
  30. package/dist/plugin-ByBlVOve.js +1387 -0
  31. package/dist/plugin-ByBlVOve.js.map +1 -0
  32. package/dist/queue/index.d.ts +247 -10
  33. package/dist/queue/index.js +384 -12
  34. package/dist/queue/index.js.map +1 -0
  35. package/dist/request-context-C3nCGJNd.js +26 -0
  36. package/dist/request-context-C3nCGJNd.js.map +1 -0
  37. package/dist/route.manager-DRAZ5X04.js +991 -0
  38. package/dist/route.manager-DRAZ5X04.js.map +1 -0
  39. package/dist/schedule-node/index.d.ts +32 -3
  40. package/dist/schedule-node/index.js +97 -3
  41. package/dist/schedule-node/index.js.map +1 -0
  42. package/dist/schedule.registry-DVm7Jp5w.d.ts +55 -0
  43. package/dist/seeder/index.d.ts +75 -5
  44. package/dist/seeder/index.js +105 -4
  45. package/dist/seeder/index.js.map +1 -0
  46. package/dist/signed-url-CMmi0SIb.js +56 -0
  47. package/dist/signed-url-CMmi0SIb.js.map +1 -0
  48. package/dist/signed-url-DKhgja4U.d.ts +16 -0
  49. package/dist/src-eb5CI6Xn.js +2151 -0
  50. package/dist/src-eb5CI6Xn.js.map +1 -0
  51. package/dist/storage/index.d.ts +57 -4
  52. package/dist/storage/index.js +22 -5
  53. package/dist/storage/index.js.map +1 -0
  54. package/dist/streaming/index.d.ts +2 -2
  55. package/dist/streaming/index.js +2 -1
  56. package/dist/websocket/index.d.ts +3 -12
  57. package/dist/websocket/index.js +2 -16
  58. package/dist/websocket-DXmB-MWJ.js +697 -0
  59. package/dist/websocket-DXmB-MWJ.js.map +1 -0
  60. package/dist/websocket-node/index.d.ts +108 -6
  61. package/dist/websocket-node/index.js +228 -6
  62. package/dist/websocket-node/index.js.map +1 -0
  63. package/package.json +67 -53
  64. package/dist/__tests__/workers/entry.d.ts +0 -9
  65. package/dist/__tests__/workers-als/entry-als.d.ts +0 -9
  66. package/dist/application.d.ts +0 -91
  67. package/dist/application.js +0 -308
  68. package/dist/cache/cache.decorators.d.ts +0 -2
  69. package/dist/cache/cache.decorators.js +0 -4
  70. package/dist/cache/cache.interceptor.d.ts +0 -9
  71. package/dist/cache/cache.interceptor.js +0 -60
  72. package/dist/cache/cache.module.d.ts +0 -7
  73. package/dist/cache/cache.module.js +0 -58
  74. package/dist/cache/cache.service.d.ts +0 -9
  75. package/dist/cache/cache.service.js +0 -42
  76. package/dist/cache/cache.store.d.ts +0 -12
  77. package/dist/cache/cache.store.js +0 -51
  78. package/dist/cache/cache.tokens.d.ts +0 -6
  79. package/dist/cache/cache.tokens.js +0 -5
  80. package/dist/cache/cache.types.d.ts +0 -41
  81. package/dist/cache/cache.types.js +0 -1
  82. package/dist/cache/index.d.ts +0 -8
  83. package/dist/cache/index.js +0 -7
  84. package/dist/cache/tiered-cache.store.d.ts +0 -19
  85. package/dist/cache/tiered-cache.store.js +0 -40
  86. package/dist/config/config.module.d.ts +0 -19
  87. package/dist/config/config.module.js +0 -98
  88. package/dist/config/config.service.d.ts +0 -20
  89. package/dist/config/config.service.js +0 -43
  90. package/dist/config/config.store.d.ts +0 -46
  91. package/dist/config/config.store.js +0 -119
  92. package/dist/config/config.tokens.d.ts +0 -13
  93. package/dist/config/config.tokens.js +0 -14
  94. package/dist/config/config.types.d.ts +0 -41
  95. package/dist/config/config.types.js +0 -4
  96. package/dist/config/index.d.ts +0 -7
  97. package/dist/config/index.js +0 -5
  98. package/dist/config/register-as.d.ts +0 -52
  99. package/dist/config/register-as.js +0 -39
  100. package/dist/constants.d.ts +0 -44
  101. package/dist/constants.js +0 -46
  102. package/dist/container/container.d.ts +0 -154
  103. package/dist/container/container.js +0 -849
  104. package/dist/container/decorators.d.ts +0 -17
  105. package/dist/container/decorators.js +0 -57
  106. package/dist/container/disposable.d.ts +0 -5
  107. package/dist/container/disposable.js +0 -33
  108. package/dist/container/index.d.ts +0 -6
  109. package/dist/container/index.js +0 -5
  110. package/dist/container/mixin.d.ts +0 -24
  111. package/dist/container/mixin.js +0 -26
  112. package/dist/container/module-ref.d.ts +0 -21
  113. package/dist/container/module-ref.js +0 -48
  114. package/dist/container/types.d.ts +0 -154
  115. package/dist/container/types.js +0 -49
  116. package/dist/cors/cors.module.d.ts +0 -7
  117. package/dist/cors/cors.module.js +0 -37
  118. package/dist/cors/cors.tokens.d.ts +0 -3
  119. package/dist/cors/cors.tokens.js +0 -2
  120. package/dist/cors/cors.types.d.ts +0 -8
  121. package/dist/cors/cors.types.js +0 -1
  122. package/dist/cors/index.d.ts +0 -3
  123. package/dist/cors/index.js +0 -2
  124. package/dist/crypto/signed-url.d.ts +0 -12
  125. package/dist/crypto/signed-url.js +0 -60
  126. package/dist/discovery/discoverable.decorator.d.ts +0 -38
  127. package/dist/discovery/discoverable.decorator.js +0 -42
  128. package/dist/discovery/discovery.service.d.ts +0 -102
  129. package/dist/discovery/discovery.service.js +0 -177
  130. package/dist/discovery/index.d.ts +0 -2
  131. package/dist/discovery/index.js +0 -2
  132. package/dist/entrypoint/entrypoint.registry.d.ts +0 -42
  133. package/dist/entrypoint/entrypoint.registry.js +0 -112
  134. package/dist/entrypoint/entrypoint.types.d.ts +0 -41
  135. package/dist/entrypoint/entrypoint.types.js +0 -3
  136. package/dist/entrypoint/execution-context.d.ts +0 -15
  137. package/dist/entrypoint/execution-context.js +0 -21
  138. package/dist/entrypoint/execution-scope.d.ts +0 -21
  139. package/dist/entrypoint/execution-scope.js +0 -28
  140. package/dist/entrypoint/index.d.ts +0 -4
  141. package/dist/entrypoint/index.js +0 -4
  142. package/dist/errors/http-exception.d.ts +0 -62
  143. package/dist/errors/http-exception.js +0 -134
  144. package/dist/errors/index.d.ts +0 -1
  145. package/dist/errors/index.js +0 -1
  146. package/dist/event-emitter/event-emitter.decorators.d.ts +0 -1
  147. package/dist/event-emitter/event-emitter.decorators.js +0 -10
  148. package/dist/event-emitter/event-emitter.module.d.ts +0 -2
  149. package/dist/event-emitter/event-emitter.module.js +0 -23
  150. package/dist/event-emitter/event-emitter.service.d.ts +0 -13
  151. package/dist/event-emitter/event-emitter.service.js +0 -127
  152. package/dist/event-emitter/event-emitter.subscriber.d.ts +0 -9
  153. package/dist/event-emitter/event-emitter.subscriber.js +0 -45
  154. package/dist/event-emitter/event-emitter.tokens.d.ts +0 -1
  155. package/dist/event-emitter/event-emitter.tokens.js +0 -1
  156. package/dist/event-emitter/event-emitter.types.d.ts +0 -5
  157. package/dist/event-emitter/event-emitter.types.js +0 -1
  158. package/dist/event-emitter/index.d.ts +0 -6
  159. package/dist/event-emitter/index.js +0 -5
  160. package/dist/factory/adapter.d.ts +0 -36
  161. package/dist/factory/adapter.js +0 -18
  162. package/dist/factory/bootstrap.d.ts +0 -23
  163. package/dist/factory/bootstrap.js +0 -108
  164. package/dist/factory.d.ts +0 -16
  165. package/dist/factory.js +0 -36
  166. package/dist/fetch/fetch.module.d.ts +0 -7
  167. package/dist/fetch/fetch.module.js +0 -31
  168. package/dist/fetch/fetch.service.d.ts +0 -24
  169. package/dist/fetch/fetch.service.js +0 -145
  170. package/dist/fetch/fetch.types.d.ts +0 -24
  171. package/dist/fetch/fetch.types.js +0 -1
  172. package/dist/fetch/index.d.ts +0 -3
  173. package/dist/fetch/index.js +0 -2
  174. package/dist/health/health.http.d.ts +0 -14
  175. package/dist/health/health.http.js +0 -75
  176. package/dist/health/health.indicator.d.ts +0 -9
  177. package/dist/health/health.indicator.js +0 -32
  178. package/dist/health/health.module.d.ts +0 -2
  179. package/dist/health/health.module.js +0 -26
  180. package/dist/health/health.service.d.ts +0 -7
  181. package/dist/health/health.service.js +0 -69
  182. package/dist/health/health.types.d.ts +0 -15
  183. package/dist/health/health.types.js +0 -1
  184. package/dist/health/index.d.ts +0 -6
  185. package/dist/health/index.js +0 -4
  186. package/dist/http/ambient.d.ts +0 -17
  187. package/dist/http/ambient.js +0 -44
  188. package/dist/http/argument-resolver.d.ts +0 -10
  189. package/dist/http/argument-resolver.js +0 -89
  190. package/dist/http/decorators.d.ts +0 -198
  191. package/dist/http/decorators.js +0 -321
  192. package/dist/http/execution-context.d.ts +0 -8
  193. package/dist/http/execution-context.js +0 -35
  194. package/dist/http/handler-executor.d.ts +0 -20
  195. package/dist/http/handler-executor.js +0 -111
  196. package/dist/http/index.d.ts +0 -12
  197. package/dist/http/index.js +0 -7
  198. package/dist/http/instantiate.d.ts +0 -4
  199. package/dist/http/instantiate.js +0 -45
  200. package/dist/http/lazy-param.decorator.d.ts +0 -37
  201. package/dist/http/lazy-param.decorator.js +0 -117
  202. package/dist/http/request-container.d.ts +0 -16
  203. package/dist/http/request-container.js +0 -19
  204. package/dist/http/request-context.d.ts +0 -13
  205. package/dist/http/request-context.js +0 -22
  206. package/dist/http/response-mapper.d.ts +0 -8
  207. package/dist/http/response-mapper.js +0 -42
  208. package/dist/http/route-contributor.d.ts +0 -68
  209. package/dist/http/route-contributor.js +0 -22
  210. package/dist/http/route-map.d.ts +0 -30
  211. package/dist/http/route-map.js +0 -27
  212. package/dist/http/route.manager.d.ts +0 -92
  213. package/dist/http/route.manager.js +0 -481
  214. package/dist/http/types.d.ts +0 -37
  215. package/dist/http/types.js +0 -1
  216. package/dist/http/url/index.d.ts +0 -4
  217. package/dist/http/url/index.js +0 -3
  218. package/dist/http/url/signed-url.guard.d.ts +0 -27
  219. package/dist/http/url/signed-url.guard.js +0 -62
  220. package/dist/http/url/signing-secret.d.ts +0 -20
  221. package/dist/http/url/signing-secret.js +0 -24
  222. package/dist/http/url/url-generator.service.d.ts +0 -52
  223. package/dist/http/url/url-generator.service.js +0 -104
  224. package/dist/i18n/deep-merge.d.ts +0 -2
  225. package/dist/i18n/deep-merge.js +0 -15
  226. package/dist/i18n/i18n.middleware.d.ts +0 -15
  227. package/dist/i18n/i18n.middleware.js +0 -94
  228. package/dist/i18n/i18n.module.d.ts +0 -13
  229. package/dist/i18n/i18n.module.js +0 -69
  230. package/dist/i18n/i18n.options.d.ts +0 -30
  231. package/dist/i18n/i18n.options.js +0 -16
  232. package/dist/i18n/i18n.service.d.ts +0 -20
  233. package/dist/i18n/i18n.service.js +0 -49
  234. package/dist/i18n/i18n.tokens.d.ts +0 -6
  235. package/dist/i18n/i18n.tokens.js +0 -3
  236. package/dist/i18n/i18n.types.d.ts +0 -6
  237. package/dist/i18n/i18n.types.js +0 -1
  238. package/dist/i18n/message-loader.service.d.ts +0 -21
  239. package/dist/i18n/message-loader.service.js +0 -90
  240. package/dist/i18n/message-registry.d.ts +0 -16
  241. package/dist/i18n/message-registry.js +0 -49
  242. package/dist/lifecycle/index.d.ts +0 -20
  243. package/dist/lifecycle/index.js +0 -15
  244. package/dist/live/live.cursor.d.ts +0 -22
  245. package/dist/live/live.cursor.js +0 -56
  246. package/dist/live/live.decorators.d.ts +0 -32
  247. package/dist/live/live.decorators.js +0 -46
  248. package/dist/live/live.delta.d.ts +0 -15
  249. package/dist/live/live.delta.js +0 -51
  250. package/dist/live/live.engine.d.ts +0 -81
  251. package/dist/live/live.engine.js +0 -448
  252. package/dist/live/live.invalidation.d.ts +0 -45
  253. package/dist/live/live.invalidation.js +0 -99
  254. package/dist/live/live.module.d.ts +0 -28
  255. package/dist/live/live.module.js +0 -87
  256. package/dist/live/live.tokens.d.ts +0 -9
  257. package/dist/live/live.tokens.js +0 -8
  258. package/dist/live/live.types.d.ts +0 -138
  259. package/dist/live/live.types.js +0 -1
  260. package/dist/live/presence.d.ts +0 -44
  261. package/dist/live/presence.js +0 -130
  262. package/dist/metadata.d.ts +0 -10
  263. package/dist/metadata.js +0 -20
  264. package/dist/module/configurable-module.builder.d.ts +0 -56
  265. package/dist/module/configurable-module.builder.js +0 -84
  266. package/dist/module/configurable-module.types.d.ts +0 -93
  267. package/dist/module/configurable-module.types.js +0 -5
  268. package/dist/module/decorators.d.ts +0 -10
  269. package/dist/module/decorators.js +0 -47
  270. package/dist/module/define-module.d.ts +0 -112
  271. package/dist/module/define-module.js +0 -232
  272. package/dist/module/graph.d.ts +0 -10
  273. package/dist/module/graph.js +0 -35
  274. package/dist/module/index.d.ts +0 -10
  275. package/dist/module/index.js +0 -7
  276. package/dist/module/lazy-modules.d.ts +0 -82
  277. package/dist/module/lazy-modules.js +0 -231
  278. package/dist/module/lazy-provider.d.ts +0 -65
  279. package/dist/module/lazy-provider.js +0 -111
  280. package/dist/module/middleware.d.ts +0 -30
  281. package/dist/module/middleware.js +0 -67
  282. package/dist/module/module-loader.d.ts +0 -58
  283. package/dist/module/module-loader.js +0 -484
  284. package/dist/module/stable-hash.d.ts +0 -15
  285. package/dist/module/stable-hash.js +0 -52
  286. package/dist/module/types.d.ts +0 -1
  287. package/dist/module/types.js +0 -1
  288. package/dist/openapi/decorators.d.ts +0 -34
  289. package/dist/openapi/decorators.js +0 -66
  290. package/dist/openapi/document.d.ts +0 -3
  291. package/dist/openapi/document.js +0 -316
  292. package/dist/openapi/index.d.ts +0 -7
  293. package/dist/openapi/index.js +0 -6
  294. package/dist/openapi/redoc-ui.d.ts +0 -1
  295. package/dist/openapi/redoc-ui.js +0 -19
  296. package/dist/openapi/scalar-ui.d.ts +0 -1
  297. package/dist/openapi/scalar-ui.js +0 -19
  298. package/dist/openapi/swagger-ui.d.ts +0 -1
  299. package/dist/openapi/swagger-ui.js +0 -23
  300. package/dist/openapi/types.d.ts +0 -182
  301. package/dist/openapi/types.js +0 -4
  302. package/dist/openapi/zod-to-json-schema.d.ts +0 -4
  303. package/dist/openapi/zod-to-json-schema.js +0 -57
  304. package/dist/pipeline/app-providers.d.ts +0 -10
  305. package/dist/pipeline/app-providers.js +0 -43
  306. package/dist/pipeline/component.manager.d.ts +0 -25
  307. package/dist/pipeline/component.manager.js +0 -66
  308. package/dist/pipeline/decorators.d.ts +0 -10
  309. package/dist/pipeline/decorators.js +0 -42
  310. package/dist/pipeline/index.d.ts +0 -12
  311. package/dist/pipeline/index.js +0 -7
  312. package/dist/pipeline/pipeline-runner.d.ts +0 -31
  313. package/dist/pipeline/pipeline-runner.js +0 -40
  314. package/dist/pipeline/pipes.d.ts +0 -48
  315. package/dist/pipeline/pipes.js +0 -104
  316. package/dist/pipeline/reflector.d.ts +0 -86
  317. package/dist/pipeline/reflector.js +0 -121
  318. package/dist/pipeline/scoped-components.d.ts +0 -26
  319. package/dist/pipeline/scoped-components.js +0 -27
  320. package/dist/pipeline/tokens.d.ts +0 -33
  321. package/dist/pipeline/tokens.js +0 -27
  322. package/dist/pipeline/types.d.ts +0 -64
  323. package/dist/pipeline/types.js +0 -1
  324. package/dist/plugin/plugin.d.ts +0 -31
  325. package/dist/plugin/plugin.js +0 -111
  326. package/dist/queue/inline.driver.d.ts +0 -30
  327. package/dist/queue/inline.driver.js +0 -58
  328. package/dist/queue/queue.binding.d.ts +0 -23
  329. package/dist/queue/queue.binding.js +0 -53
  330. package/dist/queue/queue.client.d.ts +0 -20
  331. package/dist/queue/queue.client.js +0 -33
  332. package/dist/queue/queue.decorators.d.ts +0 -23
  333. package/dist/queue/queue.decorators.js +0 -46
  334. package/dist/queue/queue.dispatch.d.ts +0 -36
  335. package/dist/queue/queue.dispatch.js +0 -102
  336. package/dist/queue/queue.module.d.ts +0 -32
  337. package/dist/queue/queue.module.js +0 -80
  338. package/dist/queue/queue.tokens.d.ts +0 -21
  339. package/dist/queue/queue.tokens.js +0 -34
  340. package/dist/queue/queue.types.d.ts +0 -61
  341. package/dist/queue/queue.types.js +0 -4
  342. package/dist/registry/index.d.ts +0 -2
  343. package/dist/registry/index.js +0 -1
  344. package/dist/registry/metadata.registry.d.ts +0 -73
  345. package/dist/registry/metadata.registry.js +0 -357
  346. package/dist/registry/paths.d.ts +0 -3
  347. package/dist/registry/paths.js +0 -15
  348. package/dist/registry/types.d.ts +0 -116
  349. package/dist/registry/types.js +0 -1
  350. package/dist/registry/util.d.ts +0 -3
  351. package/dist/registry/util.js +0 -8
  352. package/dist/schedule/cron-matcher.d.ts +0 -2
  353. package/dist/schedule/cron-matcher.js +0 -62
  354. package/dist/schedule/index.d.ts +0 -8
  355. package/dist/schedule/index.js +0 -5
  356. package/dist/schedule/schedule.decorators.d.ts +0 -2
  357. package/dist/schedule/schedule.decorators.js +0 -18
  358. package/dist/schedule/schedule.module.d.ts +0 -9
  359. package/dist/schedule/schedule.module.js +0 -28
  360. package/dist/schedule/schedule.registry.d.ts +0 -23
  361. package/dist/schedule/schedule.registry.js +0 -63
  362. package/dist/schedule/schedule.tokens.d.ts +0 -2
  363. package/dist/schedule/schedule.tokens.js +0 -2
  364. package/dist/schedule/schedule.types.d.ts +0 -8
  365. package/dist/schedule/schedule.types.js +0 -1
  366. package/dist/schedule-node/schedule-node.module.d.ts +0 -9
  367. package/dist/schedule-node/schedule-node.module.js +0 -28
  368. package/dist/schedule-node/schedule.executor.d.ts +0 -19
  369. package/dist/schedule-node/schedule.executor.js +0 -107
  370. package/dist/seeder/seeder.decorator.d.ts +0 -7
  371. package/dist/seeder/seeder.decorator.js +0 -15
  372. package/dist/seeder/seeder.module.d.ts +0 -16
  373. package/dist/seeder/seeder.module.js +0 -44
  374. package/dist/seeder/seeder.registry.d.ts +0 -23
  375. package/dist/seeder/seeder.registry.js +0 -83
  376. package/dist/seeder/seeder.tokens.d.ts +0 -2
  377. package/dist/seeder/seeder.tokens.js +0 -1
  378. package/dist/seeder/seeder.types.d.ts +0 -20
  379. package/dist/seeder/seeder.types.js +0 -1
  380. package/dist/serialization/index.d.ts +0 -2
  381. package/dist/serialization/index.js +0 -2
  382. package/dist/serialization/serialize.decorator.d.ts +0 -6
  383. package/dist/serialization/serialize.decorator.js +0 -7
  384. package/dist/serialization/serializer.interceptor.d.ts +0 -4
  385. package/dist/serialization/serializer.interceptor.js +0 -16
  386. package/dist/services/index.d.ts +0 -2
  387. package/dist/services/index.js +0 -1
  388. package/dist/services/logger.d.ts +0 -59
  389. package/dist/services/logger.js +0 -159
  390. package/dist/storage/path-template.d.ts +0 -9
  391. package/dist/storage/path-template.js +0 -20
  392. package/dist/storage/storage.types.d.ts +0 -41
  393. package/dist/storage/storage.types.js +0 -5
  394. package/dist/throttler/index.d.ts +0 -6
  395. package/dist/throttler/index.js +0 -5
  396. package/dist/throttler/throttler.decorators.d.ts +0 -3
  397. package/dist/throttler/throttler.decorators.js +0 -4
  398. package/dist/throttler/throttler.guard.d.ts +0 -9
  399. package/dist/throttler/throttler.guard.js +0 -72
  400. package/dist/throttler/throttler.module.d.ts +0 -7
  401. package/dist/throttler/throttler.module.js +0 -41
  402. package/dist/throttler/throttler.storage.d.ts +0 -10
  403. package/dist/throttler/throttler.storage.js +0 -44
  404. package/dist/throttler/throttler.tokens.d.ts +0 -6
  405. package/dist/throttler/throttler.tokens.js +0 -5
  406. package/dist/throttler/throttler.types.d.ts +0 -25
  407. package/dist/throttler/throttler.types.js +0 -1
  408. package/dist/validation/create-zod-dto.d.ts +0 -13
  409. package/dist/validation/create-zod-dto.js +0 -18
  410. package/dist/validation/index.d.ts +0 -3
  411. package/dist/validation/index.js +0 -2
  412. package/dist/validation/validation.pipe.d.ts +0 -4
  413. package/dist/validation/validation.pipe.js +0 -19
  414. package/dist/websocket/websocket.decorators.d.ts +0 -47
  415. package/dist/websocket/websocket.decorators.js +0 -80
  416. package/dist/websocket/websocket.module.d.ts +0 -35
  417. package/dist/websocket/websocket.module.js +0 -63
  418. package/dist/websocket/websocket.tokens.d.ts +0 -30
  419. package/dist/websocket/websocket.tokens.js +0 -27
  420. package/dist/websocket/websocket.types.d.ts +0 -102
  421. package/dist/websocket/websocket.types.js +0 -4
  422. package/dist/websocket/ws-argument-resolver.d.ts +0 -13
  423. package/dist/websocket/ws-argument-resolver.js +0 -40
  424. package/dist/websocket/ws-dispatcher.d.ts +0 -54
  425. package/dist/websocket/ws-dispatcher.js +0 -322
  426. package/dist/websocket/ws-exception.d.ts +0 -16
  427. package/dist/websocket/ws-exception.js +0 -32
  428. package/dist/websocket/ws-execution-context.d.ts +0 -9
  429. package/dist/websocket/ws-execution-context.js +0 -24
  430. package/dist/websocket/ws-server.d.ts +0 -31
  431. package/dist/websocket/ws-server.js +0 -74
  432. package/dist/websocket/ws-sync.d.ts +0 -47
  433. package/dist/websocket/ws-sync.js +0 -74
  434. package/dist/websocket-node/node-ws-client.d.ts +0 -24
  435. package/dist/websocket-node/node-ws-client.js +0 -49
  436. package/dist/websocket-node/redis-live.d.ts +0 -24
  437. package/dist/websocket-node/redis-live.js +0 -57
  438. package/dist/websocket-node/redis-sync.d.ts +0 -33
  439. package/dist/websocket-node/redis-sync.js +0 -56
  440. package/dist/websocket-node/register-gateways.d.ts +0 -20
  441. package/dist/websocket-node/register-gateways.js +0 -61
package/package.json CHANGED
@@ -1,8 +1,41 @@
1
1
  {
2
2
  "name": "@velajs/vela",
3
- "version": "1.18.0",
3
+ "version": "1.19.1",
4
4
  "description": "NestJS-compatible framework for edge runtimes, powered by Hono",
5
+ "keywords": [
6
+ "bun",
7
+ "cloudflare-workers",
8
+ "decorators",
9
+ "deno",
10
+ "dependency-injection",
11
+ "edge",
12
+ "framework",
13
+ "hono",
14
+ "nestjs",
15
+ "typescript"
16
+ ],
17
+ "homepage": "https://github.com/velajs/vela#readme",
18
+ "bugs": {
19
+ "url": "https://github.com/velajs/vela/issues"
20
+ },
21
+ "license": "MIT",
22
+ "author": "ksh",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/velajs/vela.git"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "README.md",
30
+ "LICENSE",
31
+ "CHANGELOG.md"
32
+ ],
5
33
  "type": "module",
34
+ "sideEffects": [
35
+ "./dist/index.js",
36
+ "./dist/metadata.js",
37
+ "./dist/schedule-node/index.js"
38
+ ],
6
39
  "main": "./dist/index.js",
7
40
  "types": "./dist/index.d.ts",
8
41
  "exports": {
@@ -51,46 +84,29 @@
51
84
  "import": "./dist/seeder/index.js"
52
85
  }
53
86
  },
54
- "files": [
55
- "dist",
56
- "README.md",
57
- "LICENSE",
58
- "CHANGELOG.md"
59
- ],
60
- "sideEffects": [
61
- "./dist/index.js",
62
- "./dist/metadata.js",
63
- "./dist/schedule-node/index.js"
64
- ],
65
- "keywords": [
66
- "edge",
67
- "hono",
68
- "nestjs",
69
- "framework",
70
- "decorators",
71
- "dependency-injection",
72
- "cloudflare-workers",
73
- "deno",
74
- "bun",
75
- "typescript"
76
- ],
77
- "author": "ksh",
78
- "license": "MIT",
79
- "repository": {
80
- "type": "git",
81
- "url": "git+https://github.com/velajs/vela.git"
82
- },
83
- "homepage": "https://github.com/velajs/vela#readme",
84
- "bugs": {
85
- "url": "https://github.com/velajs/vela/issues"
86
- },
87
- "engines": {
88
- "node": ">=20"
89
- },
90
87
  "dependencies": {
88
+ "@velajs/errors": "^1.0.0",
91
89
  "@velajs/live-protocol": "^1.0.0",
92
90
  "hono": "^4.12.26"
93
91
  },
92
+ "devDependencies": {
93
+ "@arethetypeswrong/cli": "^0.18.5",
94
+ "@changesets/cli": "^2.31.0",
95
+ "@cloudflare/vitest-pool-workers": "^0.16.18",
96
+ "@swc/core": "^1.15.43",
97
+ "@types/bun": "latest",
98
+ "@vitest/runner": "^4.1.10",
99
+ "@vitest/snapshot": "^4.1.10",
100
+ "intl-messageformat": "^11.2.9",
101
+ "oxfmt": "^0.58.0",
102
+ "oxlint": "^1.73.0",
103
+ "publint": "^0.3.21",
104
+ "tsdown": "^0.22.4",
105
+ "typescript": "^7.0.2",
106
+ "unplugin-swc": "^1.5.9",
107
+ "vitest": "^4.1.10",
108
+ "zod": "^4.4.3"
109
+ },
94
110
  "peerDependencies": {
95
111
  "intl-messageformat": ">=10"
96
112
  },
@@ -99,28 +115,26 @@
99
115
  "optional": true
100
116
  }
101
117
  },
102
- "devDependencies": {
103
- "@cloudflare/vitest-pool-workers": "^0.16.18",
104
- "@swc/cli": "^0.8.1",
105
- "@swc/core": "^1.15.41",
106
- "@types/bun": "latest",
107
- "@vitest/runner": "^4.1.9",
108
- "@vitest/snapshot": "^4.1.9",
109
- "intl-messageformat": "^11.2.9",
110
- "typedoc": "~0.28.19",
111
- "typescript": "^6.0.3",
112
- "unplugin-swc": "^1.5.9",
113
- "vitest": "^4.1.9",
114
- "zod": "^4.4.3"
118
+ "engines": {
119
+ "node": ">=24"
115
120
  },
116
121
  "scripts": {
117
- "build": "rm -rf dist && swc src -d dist --strip-leading-paths && tsc --emitDeclarationOnly",
122
+ "build": "tsdown",
118
123
  "test": "vitest run",
119
124
  "test:workers": "vitest run --config vitest.config.workers.ts",
120
125
  "test:workers:als": "vitest run --config vitest.config.workers-als.ts",
121
126
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.type-tests.json",
122
127
  "check:skill": "node scripts/check-skill.mjs",
123
- "docs": "typedoc",
124
- "docs:check": "typedoc --emit none"
128
+ "docs": "pnpm --dir tools/docs docs",
129
+ "docs:check": "pnpm --dir tools/docs docs:check",
130
+ "lint": "oxlint .",
131
+ "format": "oxfmt .",
132
+ "format:check": "oxfmt --check .",
133
+ "publint": "publint",
134
+ "attw": "attw --pack . --profile esm-only",
135
+ "changeset": "changeset",
136
+ "version-packages": "changeset version && node scripts/sync-skill-version.mjs",
137
+ "release": "pnpm build && changeset publish",
138
+ "verify": "pnpm lint && pnpm format:check && pnpm build && pnpm typecheck && pnpm check:skill && pnpm docs:check && pnpm test && pnpm test:workers && pnpm test:workers:als && pnpm publint && pnpm attw"
125
139
  }
126
140
  }
@@ -1,9 +0,0 @@
1
- declare const _default: {
2
- fetch(request: Request, _env: unknown, _ctx: unknown): Promise<Response>;
3
- };
4
- export default _default;
5
- declare global {
6
- interface ExportedHandler<Env = unknown> {
7
- fetch?(request: Request, env: Env, ctx: unknown): Response | Promise<Response>;
8
- }
9
- }
@@ -1,9 +0,0 @@
1
- declare const _default: {
2
- fetch(request: Request): Promise<Response>;
3
- };
4
- export default _default;
5
- declare global {
6
- interface ExportedHandler<Env = unknown> {
7
- fetch?(request: Request, env: Env, ctx: unknown): Response | Promise<Response>;
8
- }
9
- }
@@ -1,91 +0,0 @@
1
- import type { Hono } from 'hono';
2
- import type { Container } from './container/container';
3
- import type { Token } from './container/types';
4
- import { EntrypointRegistry } from './entrypoint/entrypoint.registry';
5
- import type { RouteDescription, RouteManager } from './http/route.manager';
6
- import type { MountOpenApiOptions } from './openapi/types';
7
- import type { FilterType, GuardType, InterceptorType, PipeType } from './registry/types';
8
- export declare class VelaApplication {
9
- private readonly container;
10
- private readonly routeManager;
11
- private instances;
12
- private honoApp;
13
- private entrypointRegistry;
14
- private disposed;
15
- private readonly lazyManager;
16
- private readonly knownInstances;
17
- constructor(container: Container, routeManager: RouteManager);
18
- private trackNew;
19
- /** Pre-build routes (handles async CRUD imports). Called by VelaFactory. */
20
- initRoutes(): Promise<void>;
21
- private getApp;
22
- get fetch(): Hono['fetch'];
23
- getInstances(): unknown[];
24
- getContainer(): Container;
25
- setInstances(instances: unknown[]): void;
26
- get<T>(token: Token<T>): T;
27
- getHonoApp(): Hono;
28
- /**
29
- * Every explicit controller route as the framework registered it (fully
30
- * composed paths — the `vela route list` seam). Requires built routes;
31
- * contributed routes (`@velajs/crud`) mount directly on Hono and are
32
- * observable via `getHonoApp().routes` instead.
33
- */
34
- describeRoutes(): RouteDescription[];
35
- /** The global route prefix in effect ('' when none). */
36
- getGlobalPrefix(): string;
37
- useGlobalPipes(...pipes: PipeType[]): this;
38
- useGlobalGuards(...guards: GuardType[]): this;
39
- useGlobalInterceptors(...interceptors: InterceptorType[]): this;
40
- useGlobalFilters(...filters: FilterType[]): this;
41
- /**
42
- * Serve a pre-built OpenAPI document and one or more interactive doc UIs
43
- * (Swagger UI, Scalar, ReDoc) on the underlying Hono app, mirroring the
44
- * hono-crud docs convention. Edge-safe: each UI is a tiny self-contained
45
- * HTML shell that loads its renderer from a CDN at runtime so nothing is
46
- * bundled server-side and no extra dependency is required.
47
- *
48
- * Defaults: spec at `/openapi.json`, Scalar at `/scalar`, Swagger UI at
49
- * `/docs`, ReDoc at `/redoc`. The deprecated `path` / `uiPath` aliases are
50
- * retained for migration from the previous single-UI shape.
51
- *
52
- * ```ts
53
- * const doc = createOpenApiDocument(AppModule);
54
- * app.mountOpenApi({ document: doc }); // Scalar @ /scalar
55
- * app.mountOpenApi({ document: doc, ui: 'all' }); // swagger + scalar + redoc
56
- * ```
57
- */
58
- mountOpenApi(options: MountOpenApiOptions): this;
59
- /**
60
- * Pull instances materialized during the bootstrap phase (lazy modules
61
- * dragged in by eager consumers) into the front of the instance list —
62
- * dependency-before-consumer: a group absorbed because an eager provider
63
- * injected it must be initialized before that consumer's hooks read it.
64
- */
65
- private absorbLazyInstances;
66
- callOnModuleInit(): Promise<void>;
67
- callOnApplicationBootstrap(): Promise<void>;
68
- /**
69
- * Materialize every still-pending lazy module (async-safe): construct the
70
- * groups, replay their lifecycle hooks, and add their instances to the
71
- * shutdown flow. Warmup escape hatch for tests and node runtimes that want
72
- * eager-everything semantics back after bootstrap.
73
- */
74
- materializeLazyModules(): Promise<void>;
75
- /**
76
- * Every entrypoint contributed by the module graph, grouped by kind —
77
- * what runtime adapters/transports query instead of re-scanning providers:
78
- * `app.entrypoints.ofKind('websocket')`.
79
- */
80
- get entrypoints(): EntrypointRegistry;
81
- close(signal?: string): Promise<void>;
82
- /**
83
- * Full teardown: run shutdown lifecycle hooks ({@link close}) then dispose
84
- * container-held instances (LIFO) and clear cached singletons. Use for
85
- * graceful shutdown and dev HMR so old and new DI graphs never coexist.
86
- *
87
- * On runtimes/TS supporting explicit resource management this is also exposed
88
- * as `Symbol.asyncDispose`, enabling `await using app = await VelaFactory.create(...)`.
89
- */
90
- dispose(signal?: string): Promise<void>;
91
- }
@@ -1,308 +0,0 @@
1
- import { DiscoveryService } from "./discovery/discovery.service.js";
2
- import { EntrypointRegistry } from "./entrypoint/entrypoint.registry.js";
3
- import { LazyModuleManager } from "./module/lazy-modules.js";
4
- import { hasBeforeApplicationShutdown, hasOnApplicationBootstrap, hasOnApplicationShutdown, hasOnModuleDestroy, hasOnModuleInit } from "./lifecycle/index.js";
5
- import { renderScalarUi } from "./openapi/scalar-ui.js";
6
- import { renderSwaggerUi } from "./openapi/swagger-ui.js";
7
- import { renderRedocUi } from "./openapi/redoc-ui.js";
8
- export class VelaApplication {
9
- container;
10
- routeManager;
11
- instances = [];
12
- honoApp = null;
13
- entrypointRegistry = null;
14
- disposed = false;
15
- lazyManager;
16
- // Identity guard for the instance flow: a token registered by BOTH a lazy
17
- // and an eager module reaches us through the eager pass AND the absorbed
18
- // batch — without dedup its hooks would run twice.
19
- knownInstances = new Set();
20
- constructor(container, routeManager){
21
- this.container = container;
22
- this.routeManager = routeManager;
23
- // bootstrap() registers the manager; a hand-built container may not have
24
- // one (container unit tests) — lazy semantics simply don't engage then.
25
- this.lazyManager = container.has(LazyModuleManager) ? container.resolve(LazyModuleManager) : undefined;
26
- // Live-phase materializations join the instance flow so close()/dispose()
27
- // run shutdown hooks over them (LIFO — appended last, destroyed first).
28
- this.lazyManager?.setOnMaterialized((instances)=>{
29
- this.instances.push(...this.trackNew(instances));
30
- });
31
- }
32
- trackNew(batch) {
33
- const fresh = batch.filter((i)=>!this.knownInstances.has(i));
34
- for (const i of fresh)this.knownInstances.add(i);
35
- return fresh;
36
- }
37
- /** Pre-build routes (handles async CRUD imports). Called by VelaFactory. */ async initRoutes() {
38
- this.honoApp = await this.routeManager.build();
39
- }
40
- getApp() {
41
- if (!this.honoApp) {
42
- throw new Error('Routes not built. This should not happen — VelaFactory.create() builds routes automatically.');
43
- }
44
- return this.honoApp;
45
- }
46
- get fetch() {
47
- return this.getApp().fetch;
48
- }
49
- getInstances() {
50
- return this.instances;
51
- }
52
- getContainer() {
53
- return this.container;
54
- }
55
- setInstances(instances) {
56
- this.instances = instances;
57
- this.knownInstances.clear();
58
- for (const i of instances)this.knownInstances.add(i);
59
- }
60
- get(token) {
61
- return this.container.resolve(token);
62
- }
63
- getHonoApp() {
64
- return this.getApp();
65
- }
66
- /**
67
- * Every explicit controller route as the framework registered it (fully
68
- * composed paths — the `vela route list` seam). Requires built routes;
69
- * contributed routes (`@velajs/crud`) mount directly on Hono and are
70
- * observable via `getHonoApp().routes` instead.
71
- */ describeRoutes() {
72
- this.getApp(); // same routes-not-built guard as every HTTP accessor
73
- return this.routeManager.getRouteDescriptions();
74
- }
75
- /** The global route prefix in effect ('' when none). */ getGlobalPrefix() {
76
- return this.routeManager.getGlobalPrefix();
77
- }
78
- // Pipeline components — applied at request time, no rebuild needed
79
- useGlobalPipes(...pipes) {
80
- this.routeManager.useGlobalPipes(...pipes);
81
- return this;
82
- }
83
- useGlobalGuards(...guards) {
84
- this.routeManager.useGlobalGuards(...guards);
85
- return this;
86
- }
87
- useGlobalInterceptors(...interceptors) {
88
- this.routeManager.useGlobalInterceptors(...interceptors);
89
- return this;
90
- }
91
- useGlobalFilters(...filters) {
92
- this.routeManager.useGlobalFilters(...filters);
93
- return this;
94
- }
95
- /**
96
- * Serve a pre-built OpenAPI document and one or more interactive doc UIs
97
- * (Swagger UI, Scalar, ReDoc) on the underlying Hono app, mirroring the
98
- * hono-crud docs convention. Edge-safe: each UI is a tiny self-contained
99
- * HTML shell that loads its renderer from a CDN at runtime so nothing is
100
- * bundled server-side and no extra dependency is required.
101
- *
102
- * Defaults: spec at `/openapi.json`, Scalar at `/scalar`, Swagger UI at
103
- * `/docs`, ReDoc at `/redoc`. The deprecated `path` / `uiPath` aliases are
104
- * retained for migration from the previous single-UI shape.
105
- *
106
- * ```ts
107
- * const doc = createOpenApiDocument(AppModule);
108
- * app.mountOpenApi({ document: doc }); // Scalar @ /scalar
109
- * app.mountOpenApi({ document: doc, ui: 'all' }); // swagger + scalar + redoc
110
- * ```
111
- */ mountOpenApi(options) {
112
- const app = this.getApp();
113
- const doc = options.document;
114
- const title = options.title;
115
- // Spec JSON: new default `/openapi.json`. The deprecated `path` alias is
116
- // honored as an override only (does not change the default).
117
- const specPath = options.specPath ?? options.path ?? '/openapi.json';
118
- app.get(specPath, (c)=>c.json(doc));
119
- // Normalize the requested UI set. Default is Scalar only.
120
- const uiOption = options.ui;
121
- let uis;
122
- let singleStringUi = false;
123
- if (uiOption === undefined) {
124
- uis = [
125
- 'scalar'
126
- ];
127
- } else if (uiOption === 'all') {
128
- uis = [
129
- 'swagger',
130
- 'scalar',
131
- 'redoc'
132
- ];
133
- } else if (Array.isArray(uiOption)) {
134
- uis = uiOption;
135
- } else {
136
- uis = [
137
- uiOption
138
- ];
139
- singleStringUi = true;
140
- }
141
- for (const ui of uis){
142
- // Back-compat: the old `{ ui: 'scalar', uiPath }` form mapped a single
143
- // string UI to `uiPath`. Honor that only when exactly one UI was
144
- // requested as a string.
145
- const legacyPath = singleStringUi && uis.length === 1 ? options.uiPath : undefined;
146
- if (ui === 'swagger') {
147
- const path = legacyPath ?? options.swaggerPath ?? '/docs';
148
- const html = renderSwaggerUi(specPath, title);
149
- app.get(path, (c)=>c.html(html));
150
- } else if (ui === 'redoc') {
151
- const path = legacyPath ?? options.redocPath ?? '/redoc';
152
- const html = renderRedocUi(specPath, title);
153
- app.get(path, (c)=>c.html(html));
154
- } else {
155
- const path = legacyPath ?? options.scalarPath ?? '/scalar';
156
- const html = renderScalarUi(specPath, title);
157
- app.get(path, (c)=>c.html(html));
158
- }
159
- }
160
- return this;
161
- }
162
- // Lifecycle hooks
163
- /**
164
- * Pull instances materialized during the bootstrap phase (lazy modules
165
- * dragged in by eager consumers) into the front of the instance list —
166
- * dependency-before-consumer: a group absorbed because an eager provider
167
- * injected it must be initialized before that consumer's hooks read it.
168
- */ absorbLazyInstances(prepend) {
169
- const batch = this.trackNew(this.lazyManager?.takeAbsorbed() ?? []);
170
- if (batch.length === 0) return batch;
171
- if (prepend) {
172
- this.instances = [
173
- ...batch,
174
- ...this.instances
175
- ];
176
- } else {
177
- this.instances.push(...batch);
178
- }
179
- return batch;
180
- }
181
- async callOnModuleInit() {
182
- this.absorbLazyInstances(true);
183
- // Index loop: hooks can trigger further absorptions, which append —
184
- // the loop naturally covers them.
185
- for(let i = 0; i < this.instances.length; i++){
186
- const instance = this.instances[i];
187
- if (hasOnModuleInit(instance)) {
188
- await instance.onModuleInit();
189
- }
190
- this.absorbLazyInstances(false);
191
- }
192
- }
193
- async callOnApplicationBootstrap() {
194
- for(let i = 0; i < this.instances.length; i++){
195
- const instance = this.instances[i];
196
- if (hasOnApplicationBootstrap(instance)) {
197
- await instance.onApplicationBootstrap();
198
- }
199
- // Instances absorbed mid-phase already missed the init pass — run
200
- // onModuleInit now; the loop then reaches them for the bootstrap hook.
201
- for (const late of this.absorbLazyInstances(false)){
202
- if (hasOnModuleInit(late)) await late.onModuleInit();
203
- }
204
- }
205
- // Computed-entrypoint contributors (ContributesEntrypoints) in lazy
206
- // modules must exist before the snapshot below — materialize them now
207
- // (the documented cost of contributing computed entrypoints), then run
208
- // their hooks through the same absorb loop.
209
- if (this.lazyManager) {
210
- await this.lazyManager.materializeContributors();
211
- let batch;
212
- while((batch = this.absorbLazyInstances(false)).length > 0){
213
- for (const late of batch){
214
- if (hasOnModuleInit(late)) await late.onModuleInit();
215
- }
216
- for (const late of batch){
217
- if (hasOnApplicationBootstrap(late)) await late.onApplicationBootstrap();
218
- }
219
- }
220
- // From here on, materializations replay their hooks at the trigger.
221
- this.lazyManager.setPhaseLive();
222
- }
223
- // Build the per-app entrypoint registry AFTER the hooks: dispatchers that
224
- // implement ContributesEntrypoints (WsDispatcher) finish their own
225
- // discovery inside onApplicationBootstrap. Built here — not in
226
- // VelaFactory/initRoutes — so slim bootstrap paths that never build HTTP
227
- // routes (the Cloudflare Durable Object) still get `app.entrypoints`.
228
- // Lazy-pending providers of declared kinds yield metadata-only entries
229
- // (instance: undefined) — dispatchers re-resolve by token per event,
230
- // which materializes the owning module at dispatch time.
231
- const discovery = this.container.has(DiscoveryService) ? this.container.resolve(DiscoveryService) : new DiscoveryService(this.container);
232
- this.entrypointRegistry = await EntrypointRegistry.build(discovery, this.instances, {
233
- deferLazy: true
234
- });
235
- // Make the per-app registry injectable (global token): providers that
236
- // dispatch entrypoints themselves (the queue module's in-process driver
237
- // binding) resolve it instead of needing a back-reference to the app.
238
- // Registered AFTER build so anything resolving it sees the final registry;
239
- // pre-bootstrap resolution attempts fail the `has()` probe and defer.
240
- this.container.register({
241
- provide: EntrypointRegistry,
242
- useValue: this.entrypointRegistry
243
- });
244
- this.container.markGlobalToken(EntrypointRegistry);
245
- }
246
- /**
247
- * Materialize every still-pending lazy module (async-safe): construct the
248
- * groups, replay their lifecycle hooks, and add their instances to the
249
- * shutdown flow. Warmup escape hatch for tests and node runtimes that want
250
- * eager-everything semantics back after bootstrap.
251
- */ async materializeLazyModules() {
252
- await this.lazyManager?.materializeAll();
253
- }
254
- /**
255
- * Every entrypoint contributed by the module graph, grouped by kind —
256
- * what runtime adapters/transports query instead of re-scanning providers:
257
- * `app.entrypoints.ofKind('websocket')`.
258
- */ get entrypoints() {
259
- if (!this.entrypointRegistry) {
260
- throw new Error('Entrypoints are not built yet — they are assembled at the end of ' + 'callOnApplicationBootstrap(). Finish bootstrapping before querying them.');
261
- }
262
- return this.entrypointRegistry;
263
- }
264
- async close(signal) {
265
- const reversed = [
266
- ...this.instances
267
- ].reverse();
268
- for (const instance of reversed){
269
- if (hasBeforeApplicationShutdown(instance)) {
270
- await instance.beforeApplicationShutdown(signal);
271
- }
272
- }
273
- for (const instance of reversed){
274
- if (hasOnModuleDestroy(instance)) {
275
- await instance.onModuleDestroy();
276
- }
277
- }
278
- for (const instance of reversed){
279
- if (hasOnApplicationShutdown(instance)) {
280
- await instance.onApplicationShutdown(signal);
281
- }
282
- }
283
- }
284
- /**
285
- * Full teardown: run shutdown lifecycle hooks ({@link close}) then dispose
286
- * container-held instances (LIFO) and clear cached singletons. Use for
287
- * graceful shutdown and dev HMR so old and new DI graphs never coexist.
288
- *
289
- * On runtimes/TS supporting explicit resource management this is also exposed
290
- * as `Symbol.asyncDispose`, enabling `await using app = await VelaFactory.create(...)`.
291
- */ async dispose(signal) {
292
- // Idempotent: `await using` + an explicit dispose(), or repeated shutdown
293
- // signals, must not re-run shutdown lifecycle hooks.
294
- if (this.disposed) return;
295
- this.disposed = true;
296
- await this.close(signal);
297
- await this.container.dispose();
298
- }
299
- }
300
- // Attach the well-known async-dispose symbol at runtime (it is not in the
301
- // ES2022 lib the project compiles against) so `await using` works where
302
- // supported, without a type dependency on esnext.disposable.
303
- const ASYNC_DISPOSE = Symbol.asyncDispose;
304
- if (ASYNC_DISPOSE) {
305
- VelaApplication.prototype[ASYNC_DISPOSE] = function() {
306
- return this.dispose();
307
- };
308
- }
@@ -1,2 +0,0 @@
1
- export declare const CacheKey: (key: string) => (target: object, propertyKey?: string | symbol) => void;
2
- export declare const CacheTTL: (seconds: number) => (target: object, propertyKey?: string | symbol) => void;
@@ -1,4 +0,0 @@
1
- import { SetMetadata } from "../pipeline/reflector.js";
2
- import { CACHE_KEY_METADATA, CACHE_TTL_METADATA } from "./cache.tokens.js";
3
- export const CacheKey = (key)=>SetMetadata(CACHE_KEY_METADATA, key);
4
- export const CacheTTL = (seconds)=>SetMetadata(CACHE_TTL_METADATA, seconds);
@@ -1,9 +0,0 @@
1
- import type { ExecutionContext, CallHandler, NestInterceptor } from '../pipeline/types';
2
- import type { CacheModuleOptions, CacheStore } from './cache.types';
3
- export declare class CacheInterceptor implements NestInterceptor {
4
- private cacheStore;
5
- private options;
6
- private reflector;
7
- constructor(cacheStore: CacheStore, options: CacheModuleOptions);
8
- intercept(context: ExecutionContext, next: CallHandler): Promise<unknown>;
9
- }
@@ -1,60 +0,0 @@
1
- function _ts_decorate(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
- function _ts_metadata(k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- }
10
- function _ts_param(paramIndex, decorator) {
11
- return function(target, key) {
12
- decorator(target, key, paramIndex);
13
- };
14
- }
15
- import { Injectable, Inject } from "../container/decorators.js";
16
- import { Reflector } from "../pipeline/reflector.js";
17
- import { CACHE_MANAGER, CACHE_MODULE_OPTIONS, CACHE_KEY_METADATA, CACHE_TTL_METADATA } from "./cache.tokens.js";
18
- export class CacheInterceptor {
19
- cacheStore;
20
- options;
21
- reflector = new Reflector();
22
- constructor(cacheStore, options){
23
- this.cacheStore = cacheStore;
24
- this.options = options;
25
- }
26
- async intercept(context, next) {
27
- const request = context.getRequest();
28
- // Only cache GET requests
29
- if (request.method !== 'GET') {
30
- return next.handle();
31
- }
32
- // Determine cache key
33
- const customKey = this.reflector.getAllAndOverride(CACHE_KEY_METADATA, context);
34
- const url = new URL(request.url);
35
- const cacheKey = customKey ?? `cache:GET:${url.pathname}`;
36
- // Check cache
37
- const cached = this.cacheStore.get(cacheKey);
38
- if (cached !== undefined) {
39
- return cached;
40
- }
41
- // Execute handler
42
- const result = await next.handle();
43
- // Determine TTL
44
- const customTtl = this.reflector.getAllAndOverride(CACHE_TTL_METADATA, context);
45
- const ttl = customTtl ?? this.options.ttl ?? 5;
46
- // Store in cache
47
- this.cacheStore.set(cacheKey, result, ttl);
48
- return result;
49
- }
50
- }
51
- CacheInterceptor = _ts_decorate([
52
- Injectable(),
53
- _ts_param(0, Inject(CACHE_MANAGER)),
54
- _ts_param(1, Inject(CACHE_MODULE_OPTIONS)),
55
- _ts_metadata("design:type", Function),
56
- _ts_metadata("design:paramtypes", [
57
- typeof CacheStore === "undefined" ? Object : CacheStore,
58
- typeof CacheModuleOptions === "undefined" ? Object : CacheModuleOptions
59
- ])
60
- ], CacheInterceptor);
@@ -1,7 +0,0 @@
1
- import type { CacheModuleOptions } from './cache.types';
2
- declare const ConfigurableModuleClass: import("..").ConfigurableModuleClassType<CacheModuleOptions, "forRoot", "create", {
3
- isGlobal: boolean;
4
- }>;
5
- export declare class CacheModule extends ConfigurableModuleClass {
6
- }
7
- export {};