@kabyeon/nexusjs 0.6.5

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 (669) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +860 -0
  3. package/dist/auth/auth.controller.d.ts +175 -0
  4. package/dist/auth/auth.controller.d.ts.map +1 -0
  5. package/dist/auth/auth.d.ts +47 -0
  6. package/dist/auth/auth.d.ts.map +1 -0
  7. package/dist/auth/auth.module.d.ts +34 -0
  8. package/dist/auth/auth.module.d.ts.map +1 -0
  9. package/dist/auth/auth.service.d.ts +192 -0
  10. package/dist/auth/auth.service.d.ts.map +1 -0
  11. package/dist/auth/decorators/current-user.d.ts +58 -0
  12. package/dist/auth/decorators/current-user.d.ts.map +1 -0
  13. package/dist/auth/index.d.ts +43 -0
  14. package/dist/auth/index.d.ts.map +1 -0
  15. package/dist/auth/index.js +730 -0
  16. package/dist/auth/index.js.map +25 -0
  17. package/dist/auth/middleware.d.ts +50 -0
  18. package/dist/auth/middleware.d.ts.map +1 -0
  19. package/dist/auth/types.d.ts +135 -0
  20. package/dist/auth/types.d.ts.map +1 -0
  21. package/dist/cache/cache.module.d.ts +22 -0
  22. package/dist/cache/cache.module.d.ts.map +1 -0
  23. package/dist/cache/cache.service.d.ts +37 -0
  24. package/dist/cache/cache.service.d.ts.map +1 -0
  25. package/dist/cache/index.d.ts +9 -0
  26. package/dist/cache/index.d.ts.map +1 -0
  27. package/dist/cache/index.js +814 -0
  28. package/dist/cache/index.js.map +25 -0
  29. package/dist/cache/stores/drizzle.d.ts +76 -0
  30. package/dist/cache/stores/drizzle.d.ts.map +1 -0
  31. package/dist/cache/stores/index.d.ts +10 -0
  32. package/dist/cache/stores/index.d.ts.map +1 -0
  33. package/dist/cache/stores/memory.d.ts +34 -0
  34. package/dist/cache/stores/memory.d.ts.map +1 -0
  35. package/dist/cache/stores/redis.d.ts +46 -0
  36. package/dist/cache/stores/redis.d.ts.map +1 -0
  37. package/dist/cache/types.d.ts +88 -0
  38. package/dist/cache/types.d.ts.map +1 -0
  39. package/dist/cli/commands/config.d.ts +44 -0
  40. package/dist/cli/commands/config.d.ts.map +1 -0
  41. package/dist/cli/commands/db-generate.d.ts +20 -0
  42. package/dist/cli/commands/db-generate.d.ts.map +1 -0
  43. package/dist/cli/commands/db-migrate.d.ts +33 -0
  44. package/dist/cli/commands/db-migrate.d.ts.map +1 -0
  45. package/dist/cli/commands/db-seed.d.ts +43 -0
  46. package/dist/cli/commands/db-seed.d.ts.map +1 -0
  47. package/dist/cli/commands/index.d.ts +11 -0
  48. package/dist/cli/commands/index.d.ts.map +1 -0
  49. package/dist/cli/commands/info.d.ts +11 -0
  50. package/dist/cli/commands/info.d.ts.map +1 -0
  51. package/dist/cli/commands/init.d.ts +38 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/make-auth.d.ts +17 -0
  54. package/dist/cli/commands/make-auth.d.ts.map +1 -0
  55. package/dist/cli/commands/make-controller.d.ts +16 -0
  56. package/dist/cli/commands/make-controller.d.ts.map +1 -0
  57. package/dist/cli/commands/make-crud.d.ts +28 -0
  58. package/dist/cli/commands/make-crud.d.ts.map +1 -0
  59. package/dist/cli/commands/make-listener.d.ts +15 -0
  60. package/dist/cli/commands/make-listener.d.ts.map +1 -0
  61. package/dist/cli/commands/make-middleware.d.ts +7 -0
  62. package/dist/cli/commands/make-middleware.d.ts.map +1 -0
  63. package/dist/cli/commands/make-migration.d.ts +21 -0
  64. package/dist/cli/commands/make-migration.d.ts.map +1 -0
  65. package/dist/cli/commands/make-model.d.ts +22 -0
  66. package/dist/cli/commands/make-model.d.ts.map +1 -0
  67. package/dist/cli/commands/make-module.d.ts +11 -0
  68. package/dist/cli/commands/make-module.d.ts.map +1 -0
  69. package/dist/cli/commands/make-queue.d.ts +17 -0
  70. package/dist/cli/commands/make-queue.d.ts.map +1 -0
  71. package/dist/cli/commands/make-schedule.d.ts +17 -0
  72. package/dist/cli/commands/make-schedule.d.ts.map +1 -0
  73. package/dist/cli/commands/make-service.d.ts +7 -0
  74. package/dist/cli/commands/make-service.d.ts.map +1 -0
  75. package/dist/cli/commands/make-session.d.ts +15 -0
  76. package/dist/cli/commands/make-session.d.ts.map +1 -0
  77. package/dist/cli/commands/make-validator.d.ts +7 -0
  78. package/dist/cli/commands/make-validator.d.ts.map +1 -0
  79. package/dist/cli/commands/new.d.ts +14 -0
  80. package/dist/cli/commands/new.d.ts.map +1 -0
  81. package/dist/cli/commands/repl.d.ts +42 -0
  82. package/dist/cli/commands/repl.d.ts.map +1 -0
  83. package/dist/cli/commands/route-list.d.ts +12 -0
  84. package/dist/cli/commands/route-list.d.ts.map +1 -0
  85. package/dist/cli/core/args.d.ts +29 -0
  86. package/dist/cli/core/args.d.ts.map +1 -0
  87. package/dist/cli/core/config.d.ts +137 -0
  88. package/dist/cli/core/config.d.ts.map +1 -0
  89. package/dist/cli/core/fs.d.ts +38 -0
  90. package/dist/cli/core/fs.d.ts.map +1 -0
  91. package/dist/cli/core/index.d.ts +42 -0
  92. package/dist/cli/core/index.d.ts.map +1 -0
  93. package/dist/cli/core/logger.d.ts +46 -0
  94. package/dist/cli/core/logger.d.ts.map +1 -0
  95. package/dist/cli/core/loose-json.d.ts +26 -0
  96. package/dist/cli/core/loose-json.d.ts.map +1 -0
  97. package/dist/cli/core/prompts.d.ts +22 -0
  98. package/dist/cli/core/prompts.d.ts.map +1 -0
  99. package/dist/cli/core/template.d.ts +26 -0
  100. package/dist/cli/core/template.d.ts.map +1 -0
  101. package/dist/cli/index.d.ts +1 -0
  102. package/dist/cli/index.d.ts.map +1 -0
  103. package/dist/cli/index.js +6136 -0
  104. package/dist/cli/index.js.map +91 -0
  105. package/dist/cli/templates/controller/adonis.d.ts +10 -0
  106. package/dist/cli/templates/controller/adonis.d.ts.map +1 -0
  107. package/dist/cli/templates/controller/functional.d.ts +9 -0
  108. package/dist/cli/templates/controller/functional.d.ts.map +1 -0
  109. package/dist/cli/templates/controller/nest.d.ts +17 -0
  110. package/dist/cli/templates/controller/nest.d.ts.map +1 -0
  111. package/dist/cli/templates/crud/controller.d.ts +8 -0
  112. package/dist/cli/templates/crud/controller.d.ts.map +1 -0
  113. package/dist/cli/templates/crud/dto.d.ts +8 -0
  114. package/dist/cli/templates/crud/dto.d.ts.map +1 -0
  115. package/dist/cli/templates/crud/index.d.ts +33 -0
  116. package/dist/cli/templates/crud/index.d.ts.map +1 -0
  117. package/dist/cli/templates/crud/module.d.ts +6 -0
  118. package/dist/cli/templates/crud/module.d.ts.map +1 -0
  119. package/dist/cli/templates/crud/test.d.ts +10 -0
  120. package/dist/cli/templates/crud/test.d.ts.map +1 -0
  121. package/dist/cli/templates/index.d.ts +39 -0
  122. package/dist/cli/templates/index.d.ts.map +1 -0
  123. package/dist/cli/templates/middleware/middleware.d.ts +8 -0
  124. package/dist/cli/templates/middleware/middleware.d.ts.map +1 -0
  125. package/dist/cli/templates/migration/drizzle.d.ts +12 -0
  126. package/dist/cli/templates/migration/drizzle.d.ts.map +1 -0
  127. package/dist/cli/templates/migration/sql.d.ts +10 -0
  128. package/dist/cli/templates/migration/sql.d.ts.map +1 -0
  129. package/dist/cli/templates/model/drizzle-dialect.d.ts +29 -0
  130. package/dist/cli/templates/model/drizzle-dialect.d.ts.map +1 -0
  131. package/dist/cli/templates/model/drizzle.d.ts +14 -0
  132. package/dist/cli/templates/model/drizzle.d.ts.map +1 -0
  133. package/dist/cli/templates/model/kysely.d.ts +12 -0
  134. package/dist/cli/templates/model/kysely.d.ts.map +1 -0
  135. package/dist/cli/templates/model/prisma.d.ts +12 -0
  136. package/dist/cli/templates/model/prisma.d.ts.map +1 -0
  137. package/dist/cli/templates/module/module.d.ts +16 -0
  138. package/dist/cli/templates/module/module.d.ts.map +1 -0
  139. package/dist/cli/templates/project/drizzle.config.d.ts +12 -0
  140. package/dist/cli/templates/project/drizzle.config.d.ts.map +1 -0
  141. package/dist/cli/templates/project/nx.config.d.ts +7 -0
  142. package/dist/cli/templates/project/nx.config.d.ts.map +1 -0
  143. package/dist/cli/templates/repository/repository.d.ts +13 -0
  144. package/dist/cli/templates/repository/repository.d.ts.map +1 -0
  145. package/dist/cli/templates/service/service.d.ts +12 -0
  146. package/dist/cli/templates/service/service.d.ts.map +1 -0
  147. package/dist/cli/templates/validator/validator.d.ts +8 -0
  148. package/dist/cli/templates/validator/validator.d.ts.map +1 -0
  149. package/dist/config/config.module.d.ts +39 -0
  150. package/dist/config/config.module.d.ts.map +1 -0
  151. package/dist/config/config.service.d.ts +47 -0
  152. package/dist/config/config.service.d.ts.map +1 -0
  153. package/dist/config/index.d.ts +39 -0
  154. package/dist/config/index.d.ts.map +1 -0
  155. package/dist/config/index.js +436 -0
  156. package/dist/config/index.js.map +21 -0
  157. package/dist/config/types.d.ts +78 -0
  158. package/dist/config/types.d.ts.map +1 -0
  159. package/dist/core/application.d.ts +77 -0
  160. package/dist/core/application.d.ts.map +1 -0
  161. package/dist/core/constants.d.ts +48 -0
  162. package/dist/core/constants.d.ts.map +1 -0
  163. package/dist/core/decorators/controller.d.ts +21 -0
  164. package/dist/core/decorators/controller.d.ts.map +1 -0
  165. package/dist/core/decorators/http-methods.d.ts +33 -0
  166. package/dist/core/decorators/http-methods.d.ts.map +1 -0
  167. package/dist/core/decorators/index.d.ts +12 -0
  168. package/dist/core/decorators/index.d.ts.map +1 -0
  169. package/dist/core/decorators/injectable.d.ts +42 -0
  170. package/dist/core/decorators/injectable.d.ts.map +1 -0
  171. package/dist/core/decorators/metadata.d.ts +7 -0
  172. package/dist/core/decorators/metadata.d.ts.map +1 -0
  173. package/dist/core/decorators/module.d.ts +23 -0
  174. package/dist/core/decorators/module.d.ts.map +1 -0
  175. package/dist/core/decorators/params.d.ts +33 -0
  176. package/dist/core/decorators/params.d.ts.map +1 -0
  177. package/dist/core/decorators/repository.d.ts +24 -0
  178. package/dist/core/decorators/repository.d.ts.map +1 -0
  179. package/dist/core/decorators/validate.d.ts +21 -0
  180. package/dist/core/decorators/validate.d.ts.map +1 -0
  181. package/dist/core/di/container.d.ts +70 -0
  182. package/dist/core/di/container.d.ts.map +1 -0
  183. package/dist/core/di/index.d.ts +9 -0
  184. package/dist/core/di/index.d.ts.map +1 -0
  185. package/dist/core/di/request-middleware.d.ts +36 -0
  186. package/dist/core/di/request-middleware.d.ts.map +1 -0
  187. package/dist/core/di/request-scope.d.ts +45 -0
  188. package/dist/core/di/request-scope.d.ts.map +1 -0
  189. package/dist/core/di/scanner.d.ts +36 -0
  190. package/dist/core/di/scanner.d.ts.map +1 -0
  191. package/dist/core/di/tokens.d.ts +98 -0
  192. package/dist/core/di/tokens.d.ts.map +1 -0
  193. package/dist/core/http/context.d.ts +30 -0
  194. package/dist/core/http/context.d.ts.map +1 -0
  195. package/dist/core/http/index.d.ts +8 -0
  196. package/dist/core/http/index.d.ts.map +1 -0
  197. package/dist/core/http/middleware.d.ts +31 -0
  198. package/dist/core/http/middleware.d.ts.map +1 -0
  199. package/dist/core/http/router.d.ts +46 -0
  200. package/dist/core/http/router.d.ts.map +1 -0
  201. package/dist/core/http/server.d.ts +58 -0
  202. package/dist/core/http/server.d.ts.map +1 -0
  203. package/dist/core/index.d.ts +20 -0
  204. package/dist/core/index.d.ts.map +1 -0
  205. package/dist/core/orm/drizzle-adapter.d.ts +73 -0
  206. package/dist/core/orm/drizzle-adapter.d.ts.map +1 -0
  207. package/dist/core/orm/index.d.ts +5 -0
  208. package/dist/core/orm/index.d.ts.map +1 -0
  209. package/dist/core/runtime/bun.d.ts +13 -0
  210. package/dist/core/runtime/bun.d.ts.map +1 -0
  211. package/dist/core/runtime/cloudflare.d.ts +18 -0
  212. package/dist/core/runtime/cloudflare.d.ts.map +1 -0
  213. package/dist/core/runtime/index.d.ts +11 -0
  214. package/dist/core/runtime/index.d.ts.map +1 -0
  215. package/dist/core/runtime/node.d.ts +10 -0
  216. package/dist/core/runtime/node.d.ts.map +1 -0
  217. package/dist/core/validation/index.d.ts +5 -0
  218. package/dist/core/validation/index.d.ts.map +1 -0
  219. package/dist/core/validation/validator.d.ts +46 -0
  220. package/dist/core/validation/validator.d.ts.map +1 -0
  221. package/dist/crypto/encryption.d.ts +71 -0
  222. package/dist/crypto/encryption.d.ts.map +1 -0
  223. package/dist/crypto/hash.d.ts +52 -0
  224. package/dist/crypto/hash.d.ts.map +1 -0
  225. package/dist/crypto/index.d.ts +49 -0
  226. package/dist/crypto/index.d.ts.map +1 -0
  227. package/dist/crypto/index.js +533 -0
  228. package/dist/crypto/index.js.map +14 -0
  229. package/dist/crypto/module.d.ts +28 -0
  230. package/dist/crypto/module.d.ts.map +1 -0
  231. package/dist/crypto/types.d.ts +81 -0
  232. package/dist/crypto/types.d.ts.map +1 -0
  233. package/dist/drive/drive.module.d.ts +20 -0
  234. package/dist/drive/drive.module.d.ts.map +1 -0
  235. package/dist/drive/drive.service.d.ts +21 -0
  236. package/dist/drive/drive.service.d.ts.map +1 -0
  237. package/dist/drive/drivers/index.d.ts +9 -0
  238. package/dist/drive/drivers/index.d.ts.map +1 -0
  239. package/dist/drive/drivers/local.d.ts +24 -0
  240. package/dist/drive/drivers/local.d.ts.map +1 -0
  241. package/dist/drive/drivers/memory.d.ts +19 -0
  242. package/dist/drive/drivers/memory.d.ts.map +1 -0
  243. package/dist/drive/drivers/s3.d.ts +44 -0
  244. package/dist/drive/drivers/s3.d.ts.map +1 -0
  245. package/dist/drive/index.d.ts +9 -0
  246. package/dist/drive/index.d.ts.map +1 -0
  247. package/dist/drive/index.js +714 -0
  248. package/dist/drive/index.js.map +25 -0
  249. package/dist/drive/types.d.ts +97 -0
  250. package/dist/drive/types.d.ts.map +1 -0
  251. package/dist/drizzle/decorators/columns.d.ts +16 -0
  252. package/dist/drizzle/decorators/columns.d.ts.map +1 -0
  253. package/dist/drizzle/decorators/index.d.ts +6 -0
  254. package/dist/drizzle/decorators/index.d.ts.map +1 -0
  255. package/dist/drizzle/drivers/base.d.ts +32 -0
  256. package/dist/drizzle/drivers/base.d.ts.map +1 -0
  257. package/dist/drizzle/drivers/bun-sqlite.d.ts +6 -0
  258. package/dist/drizzle/drivers/bun-sqlite.d.ts.map +1 -0
  259. package/dist/drizzle/drivers/d1.d.ts +7 -0
  260. package/dist/drizzle/drivers/d1.d.ts.map +1 -0
  261. package/dist/drizzle/drivers/index.d.ts +14 -0
  262. package/dist/drizzle/drivers/index.d.ts.map +1 -0
  263. package/dist/drizzle/drivers/mysql.d.ts +6 -0
  264. package/dist/drizzle/drivers/mysql.d.ts.map +1 -0
  265. package/dist/drizzle/drivers/postgres.d.ts +12 -0
  266. package/dist/drizzle/drivers/postgres.d.ts.map +1 -0
  267. package/dist/drizzle/drivers/sqlite.d.ts +8 -0
  268. package/dist/drizzle/drivers/sqlite.d.ts.map +1 -0
  269. package/dist/drizzle/drizzle.module.d.ts +29 -0
  270. package/dist/drizzle/drizzle.module.d.ts.map +1 -0
  271. package/dist/drizzle/drizzle.service.d.ts +52 -0
  272. package/dist/drizzle/drizzle.service.d.ts.map +1 -0
  273. package/dist/drizzle/index.d.ts +13 -0
  274. package/dist/drizzle/index.d.ts.map +1 -0
  275. package/dist/drizzle/index.js +979 -0
  276. package/dist/drizzle/index.js.map +32 -0
  277. package/dist/drizzle/model.d.ts +26 -0
  278. package/dist/drizzle/model.d.ts.map +1 -0
  279. package/dist/drizzle/raw-query.d.ts +41 -0
  280. package/dist/drizzle/raw-query.d.ts.map +1 -0
  281. package/dist/drizzle/repository/index.d.ts +6 -0
  282. package/dist/drizzle/repository/index.d.ts.map +1 -0
  283. package/dist/drizzle/repository/repository.d.ts +60 -0
  284. package/dist/drizzle/repository/repository.d.ts.map +1 -0
  285. package/dist/drizzle/types.d.ts +160 -0
  286. package/dist/drizzle/types.d.ts.map +1 -0
  287. package/dist/events/decorators/on-event.d.ts +49 -0
  288. package/dist/events/decorators/on-event.d.ts.map +1 -0
  289. package/dist/events/emitter.d.ts +52 -0
  290. package/dist/events/emitter.d.ts.map +1 -0
  291. package/dist/events/event.service.d.ts +27 -0
  292. package/dist/events/event.service.d.ts.map +1 -0
  293. package/dist/events/events.module.d.ts +35 -0
  294. package/dist/events/events.module.d.ts.map +1 -0
  295. package/dist/events/index.d.ts +43 -0
  296. package/dist/events/index.d.ts.map +1 -0
  297. package/dist/events/index.js +646 -0
  298. package/dist/events/index.js.map +23 -0
  299. package/dist/events/types.d.ts +120 -0
  300. package/dist/events/types.d.ts.map +1 -0
  301. package/dist/grpc/decorators.d.ts +34 -0
  302. package/dist/grpc/decorators.d.ts.map +1 -0
  303. package/dist/grpc/index.d.ts +70 -0
  304. package/dist/grpc/index.d.ts.map +1 -0
  305. package/dist/grpc/index.js +528 -0
  306. package/dist/grpc/index.js.map +22 -0
  307. package/dist/grpc/module.d.ts +32 -0
  308. package/dist/grpc/module.d.ts.map +1 -0
  309. package/dist/grpc/service.d.ts +60 -0
  310. package/dist/grpc/service.d.ts.map +1 -0
  311. package/dist/grpc/types.d.ts +79 -0
  312. package/dist/grpc/types.d.ts.map +1 -0
  313. package/dist/health/health.controller.d.ts +61 -0
  314. package/dist/health/health.controller.d.ts.map +1 -0
  315. package/dist/health/health.module.d.ts +29 -0
  316. package/dist/health/health.module.d.ts.map +1 -0
  317. package/dist/health/health.service.d.ts +34 -0
  318. package/dist/health/health.service.d.ts.map +1 -0
  319. package/dist/health/index.d.ts +38 -0
  320. package/dist/health/index.d.ts.map +1 -0
  321. package/dist/health/index.js +599 -0
  322. package/dist/health/index.js.map +25 -0
  323. package/dist/health/indicators/drizzle.d.ts +18 -0
  324. package/dist/health/indicators/drizzle.d.ts.map +1 -0
  325. package/dist/health/indicators/index.d.ts +59 -0
  326. package/dist/health/indicators/index.d.ts.map +1 -0
  327. package/dist/health/types.d.ts +105 -0
  328. package/dist/health/types.d.ts.map +1 -0
  329. package/dist/i18n/decorators.d.ts +14 -0
  330. package/dist/i18n/decorators.d.ts.map +1 -0
  331. package/dist/i18n/index.d.ts +48 -0
  332. package/dist/i18n/index.d.ts.map +1 -0
  333. package/dist/i18n/index.js +589 -0
  334. package/dist/i18n/index.js.map +17 -0
  335. package/dist/i18n/middleware.d.ts +26 -0
  336. package/dist/i18n/middleware.d.ts.map +1 -0
  337. package/dist/i18n/module.d.ts +39 -0
  338. package/dist/i18n/module.d.ts.map +1 -0
  339. package/dist/i18n/service.d.ts +130 -0
  340. package/dist/i18n/service.d.ts.map +1 -0
  341. package/dist/i18n/types.d.ts +65 -0
  342. package/dist/i18n/types.d.ts.map +1 -0
  343. package/dist/index.d.ts +2 -0
  344. package/dist/index.js +2056 -0
  345. package/dist/index.js.map +53 -0
  346. package/dist/limiter/backends/drizzle.d.ts +40 -0
  347. package/dist/limiter/backends/drizzle.d.ts.map +1 -0
  348. package/dist/limiter/backends/index.d.ts +6 -0
  349. package/dist/limiter/backends/index.d.ts.map +1 -0
  350. package/dist/limiter/backends/memory.d.ts +28 -0
  351. package/dist/limiter/backends/memory.d.ts.map +1 -0
  352. package/dist/limiter/index.d.ts +9 -0
  353. package/dist/limiter/index.d.ts.map +1 -0
  354. package/dist/limiter/index.js +640 -0
  355. package/dist/limiter/index.js.map +25 -0
  356. package/dist/limiter/limiter.middleware.d.ts +11 -0
  357. package/dist/limiter/limiter.middleware.d.ts.map +1 -0
  358. package/dist/limiter/limiter.module.d.ts +23 -0
  359. package/dist/limiter/limiter.module.d.ts.map +1 -0
  360. package/dist/limiter/limiter.service.d.ts +18 -0
  361. package/dist/limiter/limiter.service.d.ts.map +1 -0
  362. package/dist/limiter/types.d.ts +99 -0
  363. package/dist/limiter/types.d.ts.map +1 -0
  364. package/dist/logger/index.d.ts +36 -0
  365. package/dist/logger/index.d.ts.map +1 -0
  366. package/dist/logger/index.js +538 -0
  367. package/dist/logger/index.js.map +22 -0
  368. package/dist/logger/logger.module.d.ts +35 -0
  369. package/dist/logger/logger.module.d.ts.map +1 -0
  370. package/dist/logger/logger.service.d.ts +55 -0
  371. package/dist/logger/logger.service.d.ts.map +1 -0
  372. package/dist/logger/transports/index.d.ts +35 -0
  373. package/dist/logger/transports/index.d.ts.map +1 -0
  374. package/dist/logger/types.d.ts +58 -0
  375. package/dist/logger/types.d.ts.map +1 -0
  376. package/dist/mail/index.d.ts +9 -0
  377. package/dist/mail/index.d.ts.map +1 -0
  378. package/dist/mail/index.js +479 -0
  379. package/dist/mail/index.js.map +25 -0
  380. package/dist/mail/mail.module.d.ts +21 -0
  381. package/dist/mail/mail.module.d.ts.map +1 -0
  382. package/dist/mail/mail.service.d.ts +18 -0
  383. package/dist/mail/mail.service.d.ts.map +1 -0
  384. package/dist/mail/transports/file.d.ts +19 -0
  385. package/dist/mail/transports/file.d.ts.map +1 -0
  386. package/dist/mail/transports/index.d.ts +9 -0
  387. package/dist/mail/transports/index.d.ts.map +1 -0
  388. package/dist/mail/transports/null.d.ts +11 -0
  389. package/dist/mail/transports/null.d.ts.map +1 -0
  390. package/dist/mail/transports/smtp.d.ts +40 -0
  391. package/dist/mail/transports/smtp.d.ts.map +1 -0
  392. package/dist/mail/types.d.ts +73 -0
  393. package/dist/mail/types.d.ts.map +1 -0
  394. package/dist/metrics/controller.d.ts +27 -0
  395. package/dist/metrics/controller.d.ts.map +1 -0
  396. package/dist/metrics/counter.d.ts +36 -0
  397. package/dist/metrics/counter.d.ts.map +1 -0
  398. package/dist/metrics/decorators/counted.d.ts +26 -0
  399. package/dist/metrics/decorators/counted.d.ts.map +1 -0
  400. package/dist/metrics/decorators/index.d.ts +3 -0
  401. package/dist/metrics/decorators/index.d.ts.map +1 -0
  402. package/dist/metrics/decorators/timed.d.ts +25 -0
  403. package/dist/metrics/decorators/timed.d.ts.map +1 -0
  404. package/dist/metrics/gauge.d.ts +38 -0
  405. package/dist/metrics/gauge.d.ts.map +1 -0
  406. package/dist/metrics/histogram.d.ts +52 -0
  407. package/dist/metrics/histogram.d.ts.map +1 -0
  408. package/dist/metrics/index.d.ts +35 -0
  409. package/dist/metrics/index.d.ts.map +1 -0
  410. package/dist/metrics/index.js +1033 -0
  411. package/dist/metrics/index.js.map +21 -0
  412. package/dist/metrics/module.d.ts +33 -0
  413. package/dist/metrics/module.d.ts.map +1 -0
  414. package/dist/metrics/registry.d.ts +52 -0
  415. package/dist/metrics/registry.d.ts.map +1 -0
  416. package/dist/metrics/service.d.ts +42 -0
  417. package/dist/metrics/service.d.ts.map +1 -0
  418. package/dist/metrics/summary.d.ts +50 -0
  419. package/dist/metrics/summary.d.ts.map +1 -0
  420. package/dist/metrics/types.d.ts +115 -0
  421. package/dist/metrics/types.d.ts.map +1 -0
  422. package/dist/openapi/decorators/body.d.ts +9 -0
  423. package/dist/openapi/decorators/body.d.ts.map +1 -0
  424. package/dist/openapi/decorators/index.d.ts +11 -0
  425. package/dist/openapi/decorators/index.d.ts.map +1 -0
  426. package/dist/openapi/decorators/operation.d.ts +9 -0
  427. package/dist/openapi/decorators/operation.d.ts.map +1 -0
  428. package/dist/openapi/decorators/param.d.ts +17 -0
  429. package/dist/openapi/decorators/param.d.ts.map +1 -0
  430. package/dist/openapi/decorators/property.d.ts +24 -0
  431. package/dist/openapi/decorators/property.d.ts.map +1 -0
  432. package/dist/openapi/decorators/response.d.ts +10 -0
  433. package/dist/openapi/decorators/response.d.ts.map +1 -0
  434. package/dist/openapi/decorators/security.d.ts +9 -0
  435. package/dist/openapi/decorators/security.d.ts.map +1 -0
  436. package/dist/openapi/decorators/tags.d.ts +2 -0
  437. package/dist/openapi/decorators/tags.d.ts.map +1 -0
  438. package/dist/openapi/index.d.ts +10 -0
  439. package/dist/openapi/index.d.ts.map +1 -0
  440. package/dist/openapi/index.js +974 -0
  441. package/dist/openapi/index.js.map +31 -0
  442. package/dist/openapi/openapi.module.d.ts +46 -0
  443. package/dist/openapi/openapi.module.d.ts.map +1 -0
  444. package/dist/openapi/openapi.service.d.ts +55 -0
  445. package/dist/openapi/openapi.service.d.ts.map +1 -0
  446. package/dist/openapi/scalar.d.ts +16 -0
  447. package/dist/openapi/scalar.d.ts.map +1 -0
  448. package/dist/openapi/types.d.ts +266 -0
  449. package/dist/openapi/types.d.ts.map +1 -0
  450. package/dist/openapi/zod-to-json-schema.d.ts +34 -0
  451. package/dist/openapi/zod-to-json-schema.d.ts.map +1 -0
  452. package/dist/package.json +59 -0
  453. package/dist/queue/backends/bullmq.d.ts +41 -0
  454. package/dist/queue/backends/bullmq.d.ts.map +1 -0
  455. package/dist/queue/backends/cloudflare.d.ts +84 -0
  456. package/dist/queue/backends/cloudflare.d.ts.map +1 -0
  457. package/dist/queue/backends/index.d.ts +7 -0
  458. package/dist/queue/backends/index.d.ts.map +1 -0
  459. package/dist/queue/backends/memory.d.ts +24 -0
  460. package/dist/queue/backends/memory.d.ts.map +1 -0
  461. package/dist/queue/decorators/on-queue-ready.d.ts +43 -0
  462. package/dist/queue/decorators/on-queue-ready.d.ts.map +1 -0
  463. package/dist/queue/index.d.ts +57 -0
  464. package/dist/queue/index.d.ts.map +1 -0
  465. package/dist/queue/index.js +961 -0
  466. package/dist/queue/index.js.map +25 -0
  467. package/dist/queue/queue.module.d.ts +46 -0
  468. package/dist/queue/queue.module.d.ts.map +1 -0
  469. package/dist/queue/queue.service.d.ts +61 -0
  470. package/dist/queue/queue.service.d.ts.map +1 -0
  471. package/dist/queue/types.d.ts +204 -0
  472. package/dist/queue/types.d.ts.map +1 -0
  473. package/dist/redis/adapters/bun.d.ts +27 -0
  474. package/dist/redis/adapters/bun.d.ts.map +1 -0
  475. package/dist/redis/adapters/cloudflare.d.ts +51 -0
  476. package/dist/redis/adapters/cloudflare.d.ts.map +1 -0
  477. package/dist/redis/adapters/index.d.ts +29 -0
  478. package/dist/redis/adapters/index.d.ts.map +1 -0
  479. package/dist/redis/adapters/memory.d.ts +28 -0
  480. package/dist/redis/adapters/memory.d.ts.map +1 -0
  481. package/dist/redis/adapters/node.d.ts +36 -0
  482. package/dist/redis/adapters/node.d.ts.map +1 -0
  483. package/dist/redis/index.d.ts +33 -0
  484. package/dist/redis/index.d.ts.map +1 -0
  485. package/dist/redis/index.js +667 -0
  486. package/dist/redis/index.js.map +25 -0
  487. package/dist/redis/module.d.ts +32 -0
  488. package/dist/redis/module.d.ts.map +1 -0
  489. package/dist/redis/types.d.ts +146 -0
  490. package/dist/redis/types.d.ts.map +1 -0
  491. package/dist/schedule/backends/cloudflare.d.ts +55 -0
  492. package/dist/schedule/backends/cloudflare.d.ts.map +1 -0
  493. package/dist/schedule/backends/index.d.ts +3 -0
  494. package/dist/schedule/backends/index.d.ts.map +1 -0
  495. package/dist/schedule/backends/memory.d.ts +39 -0
  496. package/dist/schedule/backends/memory.d.ts.map +1 -0
  497. package/dist/schedule/cron-parser.d.ts +48 -0
  498. package/dist/schedule/cron-parser.d.ts.map +1 -0
  499. package/dist/schedule/decorators/cron.d.ts +71 -0
  500. package/dist/schedule/decorators/cron.d.ts.map +1 -0
  501. package/dist/schedule/index.d.ts +51 -0
  502. package/dist/schedule/index.d.ts.map +1 -0
  503. package/dist/schedule/index.js +1108 -0
  504. package/dist/schedule/index.js.map +25 -0
  505. package/dist/schedule/schedule.module.d.ts +44 -0
  506. package/dist/schedule/schedule.module.d.ts.map +1 -0
  507. package/dist/schedule/schedule.service.d.ts +51 -0
  508. package/dist/schedule/schedule.service.d.ts.map +1 -0
  509. package/dist/schedule/types.d.ts +150 -0
  510. package/dist/schedule/types.d.ts.map +1 -0
  511. package/dist/session/backends/cookie.d.ts +56 -0
  512. package/dist/session/backends/cookie.d.ts.map +1 -0
  513. package/dist/session/backends/drizzle.d.ts +65 -0
  514. package/dist/session/backends/drizzle.d.ts.map +1 -0
  515. package/dist/session/backends/index.d.ts +6 -0
  516. package/dist/session/backends/index.d.ts.map +1 -0
  517. package/dist/session/backends/memory.d.ts +32 -0
  518. package/dist/session/backends/memory.d.ts.map +1 -0
  519. package/dist/session/backends/redis.d.ts +53 -0
  520. package/dist/session/backends/redis.d.ts.map +1 -0
  521. package/dist/session/decorators/current-session.d.ts +56 -0
  522. package/dist/session/decorators/current-session.d.ts.map +1 -0
  523. package/dist/session/index.d.ts +42 -0
  524. package/dist/session/index.d.ts.map +1 -0
  525. package/dist/session/index.js +1498 -0
  526. package/dist/session/index.js.map +28 -0
  527. package/dist/session/session-middleware.d.ts +29 -0
  528. package/dist/session/session-middleware.d.ts.map +1 -0
  529. package/dist/session/session.module.d.ts +35 -0
  530. package/dist/session/session.module.d.ts.map +1 -0
  531. package/dist/session/session.service.d.ts +49 -0
  532. package/dist/session/session.service.d.ts.map +1 -0
  533. package/dist/session/types.d.ts +201 -0
  534. package/dist/session/types.d.ts.map +1 -0
  535. package/dist/shield/guards/csrf.d.ts +33 -0
  536. package/dist/shield/guards/csrf.d.ts.map +1 -0
  537. package/dist/shield/guards/headers.d.ts +22 -0
  538. package/dist/shield/guards/headers.d.ts.map +1 -0
  539. package/dist/shield/guards/index.d.ts +6 -0
  540. package/dist/shield/guards/index.d.ts.map +1 -0
  541. package/dist/shield/index.d.ts +8 -0
  542. package/dist/shield/index.d.ts.map +1 -0
  543. package/dist/shield/index.js +728 -0
  544. package/dist/shield/index.js.map +25 -0
  545. package/dist/shield/shield.module.d.ts +25 -0
  546. package/dist/shield/shield.module.d.ts.map +1 -0
  547. package/dist/shield/shield.service.d.ts +21 -0
  548. package/dist/shield/shield.service.d.ts.map +1 -0
  549. package/dist/shield/types.d.ts +95 -0
  550. package/dist/shield/types.d.ts.map +1 -0
  551. package/dist/sse/index.d.ts +7 -0
  552. package/dist/sse/index.d.ts.map +1 -0
  553. package/dist/sse/index.js +214 -0
  554. package/dist/sse/index.js.map +13 -0
  555. package/dist/sse/sse-stream.d.ts +46 -0
  556. package/dist/sse/sse-stream.d.ts.map +1 -0
  557. package/dist/sse/sse.d.ts +24 -0
  558. package/dist/sse/sse.d.ts.map +1 -0
  559. package/dist/sse/types.d.ts +84 -0
  560. package/dist/sse/types.d.ts.map +1 -0
  561. package/dist/static/index.d.ts +41 -0
  562. package/dist/static/index.d.ts.map +1 -0
  563. package/dist/static/index.js +313 -0
  564. package/dist/static/index.js.map +13 -0
  565. package/dist/static/static.module.d.ts +41 -0
  566. package/dist/static/static.module.d.ts.map +1 -0
  567. package/dist/static/static.service.d.ts +38 -0
  568. package/dist/static/static.service.d.ts.map +1 -0
  569. package/dist/tracing/decorators/index.d.ts +2 -0
  570. package/dist/tracing/decorators/index.d.ts.map +1 -0
  571. package/dist/tracing/decorators/trace.d.ts +37 -0
  572. package/dist/tracing/decorators/trace.d.ts.map +1 -0
  573. package/dist/tracing/hono-instrumentation.d.ts +21 -0
  574. package/dist/tracing/hono-instrumentation.d.ts.map +1 -0
  575. package/dist/tracing/index.d.ts +29 -0
  576. package/dist/tracing/index.d.ts.map +1 -0
  577. package/dist/tracing/index.js +782 -0
  578. package/dist/tracing/index.js.map +24 -0
  579. package/dist/tracing/module.d.ts +45 -0
  580. package/dist/tracing/module.d.ts.map +1 -0
  581. package/dist/tracing/propagation.d.ts +53 -0
  582. package/dist/tracing/propagation.d.ts.map +1 -0
  583. package/dist/tracing/service.d.ts +95 -0
  584. package/dist/tracing/service.d.ts.map +1 -0
  585. package/dist/tracing/types.d.ts +90 -0
  586. package/dist/tracing/types.d.ts.map +1 -0
  587. package/dist/upload/decorators/index.d.ts +6 -0
  588. package/dist/upload/decorators/index.d.ts.map +1 -0
  589. package/dist/upload/decorators/upload.d.ts +16 -0
  590. package/dist/upload/decorators/upload.d.ts.map +1 -0
  591. package/dist/upload/decorators/uploaded-file.d.ts +10 -0
  592. package/dist/upload/decorators/uploaded-file.d.ts.map +1 -0
  593. package/dist/upload/index.d.ts +9 -0
  594. package/dist/upload/index.d.ts.map +1 -0
  595. package/dist/upload/index.js +553 -0
  596. package/dist/upload/index.js.map +25 -0
  597. package/dist/upload/types.d.ts +103 -0
  598. package/dist/upload/types.d.ts.map +1 -0
  599. package/dist/upload/upload.middleware.d.ts +15 -0
  600. package/dist/upload/upload.middleware.d.ts.map +1 -0
  601. package/dist/upload/upload.module.d.ts +33 -0
  602. package/dist/upload/upload.module.d.ts.map +1 -0
  603. package/dist/upload/upload.service.d.ts +29 -0
  604. package/dist/upload/upload.service.d.ts.map +1 -0
  605. package/dist/view/edge.d.ts +23 -0
  606. package/dist/view/edge.d.ts.map +1 -0
  607. package/dist/view/eta.d.ts +30 -0
  608. package/dist/view/eta.d.ts.map +1 -0
  609. package/dist/view/index.d.ts +34 -0
  610. package/dist/view/index.d.ts.map +1 -0
  611. package/dist/view/index.js +240 -0
  612. package/dist/view/index.js.map +14 -0
  613. package/dist/view/inertia/default-ssr.d.ts +15 -0
  614. package/dist/view/inertia/default-ssr.d.ts.map +1 -0
  615. package/dist/view/inertia/form-helper.d.ts +102 -0
  616. package/dist/view/inertia/form-helper.d.ts.map +1 -0
  617. package/dist/view/inertia/form-middleware.d.ts +53 -0
  618. package/dist/view/inertia/form-middleware.d.ts.map +1 -0
  619. package/dist/view/inertia/helpers.d.ts +149 -0
  620. package/dist/view/inertia/helpers.d.ts.map +1 -0
  621. package/dist/view/inertia/index.d.ts +18 -0
  622. package/dist/view/inertia/index.d.ts.map +1 -0
  623. package/dist/view/inertia/inertia-adapter.d.ts +93 -0
  624. package/dist/view/inertia/inertia-adapter.d.ts.map +1 -0
  625. package/dist/view/inertia/inertia-response.d.ts +51 -0
  626. package/dist/view/inertia/inertia-response.d.ts.map +1 -0
  627. package/dist/view/inertia/ssr/index.d.ts +13 -0
  628. package/dist/view/inertia/ssr/index.d.ts.map +1 -0
  629. package/dist/view/inertia/ssr/react-adapter.d.ts +33 -0
  630. package/dist/view/inertia/ssr/react-adapter.d.ts.map +1 -0
  631. package/dist/view/inertia/ssr/registry.d.ts +42 -0
  632. package/dist/view/inertia/ssr/registry.d.ts.map +1 -0
  633. package/dist/view/inertia/ssr/solid-adapter.d.ts +31 -0
  634. package/dist/view/inertia/ssr/solid-adapter.d.ts.map +1 -0
  635. package/dist/view/inertia/ssr/svelte-adapter.d.ts +31 -0
  636. package/dist/view/inertia/ssr/svelte-adapter.d.ts.map +1 -0
  637. package/dist/view/inertia/ssr/vue-adapter.d.ts +26 -0
  638. package/dist/view/inertia/ssr/vue-adapter.d.ts.map +1 -0
  639. package/dist/view/inertia/types.d.ts +131 -0
  640. package/dist/view/inertia/types.d.ts.map +1 -0
  641. package/dist/view/rendu.d.ts +11 -0
  642. package/dist/view/rendu.d.ts.map +1 -0
  643. package/dist/view/types.d.ts +52 -0
  644. package/dist/view/types.d.ts.map +1 -0
  645. package/dist/view/view-engine.d.ts +28 -0
  646. package/dist/view/view-engine.d.ts.map +1 -0
  647. package/dist/ws/client.d.ts +42 -0
  648. package/dist/ws/client.d.ts.map +1 -0
  649. package/dist/ws/decorators.d.ts +44 -0
  650. package/dist/ws/decorators.d.ts.map +1 -0
  651. package/dist/ws/index.d.ts +57 -0
  652. package/dist/ws/index.d.ts.map +1 -0
  653. package/dist/ws/index.js +796 -0
  654. package/dist/ws/index.js.map +26 -0
  655. package/dist/ws/module.d.ts +48 -0
  656. package/dist/ws/module.d.ts.map +1 -0
  657. package/dist/ws/runtime/bun.d.ts +41 -0
  658. package/dist/ws/runtime/bun.d.ts.map +1 -0
  659. package/dist/ws/runtime/index.d.ts +14 -0
  660. package/dist/ws/runtime/index.d.ts.map +1 -0
  661. package/dist/ws/runtime/node.d.ts +46 -0
  662. package/dist/ws/runtime/node.d.ts.map +1 -0
  663. package/dist/ws/runtime/types.d.ts +18 -0
  664. package/dist/ws/runtime/types.d.ts.map +1 -0
  665. package/dist/ws/service.d.ts +65 -0
  666. package/dist/ws/service.d.ts.map +1 -0
  667. package/dist/ws/types.d.ts +77 -0
  668. package/dist/ws/types.d.ts.map +1 -0
  669. package/package.json +262 -0
@@ -0,0 +1,23 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/constants.ts", "../src/core/decorators/controller.ts", "../src/core/decorators/http-methods.ts", "../src/core/decorators/params.ts", "../src/core/decorators/validate.ts", "../src/events/emitter.ts", "../src/core/decorators/module.ts", "../src/core/decorators/index.ts", "../src/core/decorators/injectable.ts", "../src/core/decorators/repository.ts", "../src/core/decorators/metadata.ts", "../src/events/event.service.ts", "../src/events/events.module.ts", "../src/events/decorators/on-event.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Metadata keys used by reflect-metadata for storing decorator data.\n *\n * These constants are the contract between decorators and the framework\n * core (DI container, router, validator).\n */\nexport const METADATA_KEY = {\n\t/** Marks a class as a Nest-style controller, stores route prefix. */\n\tCONTROLLER: \"nexus:controller\",\n\n\t/** Marks a class as an injectable provider. */\n\tINJECTABLE: \"nexus:injectable\",\n\n\t/** Marks a class as a repository. */\n\tREPOSITORY: \"nexus:repository\",\n\n\t/** Marks a class as a module. Stores module options. */\n\tMODULE: \"nexus:module\",\n\n\t/** HTTP method routes registered on a controller (Get/Post/...). */\n\tROUTES: \"nexus:routes\",\n\n\t/** Method parameter type metadata (body/query/param/headers/ctx). */\n\tPARAMS: \"nexus:params\",\n\n\t/** Validation schema per method (Zod schema or class). */\n\tVALIDATE: \"nexus:validate\",\n\n\t/** Class-level design:paramtypes (built-in). */\n\tPARAMTYPES: \"design:paramtypes\",\n\n\t/** Class-level design:type (built-in). */\n\tTYPE: \"design:type\",\n\n\t/** Class-level design:returntype (built-in). */\n\tRETURNTYPE: \"design:returntype\",\n\n\t/** Provider token to inject for a parameter (for custom tokens). */\n\tINJECT: \"nexus:inject\",\n} as const;\n\nexport type MetadataKey = (typeof METADATA_KEY)[keyof typeof METADATA_KEY];\n\n/** Available parameter decorator locations. */\nexport const PARAM_TYPES = {\n\tREQUEST: 0,\n\tRESPONSE: 1,\n\tNEXT: 2,\n\tBODY: 3,\n\tQUERY: 4,\n\tPARAM: 5,\n\tHEADERS: 6,\n\tCTX: 7,\n\tUSER: 8,\n} as const;\n\nexport type ParamType = (typeof PARAM_TYPES)[keyof typeof PARAM_TYPES];\n\n/** HTTP methods supported by the router. */\nexport const HTTP_METHODS = [\n\t\"GET\",\n\t\"POST\",\n\t\"PUT\",\n\t\"DELETE\",\n\t\"PATCH\",\n\t\"OPTIONS\",\n\t\"HEAD\",\n] as const;\nexport type HttpMethod = (typeof HTTP_METHODS)[number];\n",
6
+ "/**\n * @Controller decorator.\n *\n * Marks a class as a controller and registers a route prefix.\n * Routes inside the controller class are decorated with @Get/@Post/etc.\n *\n * @example\n * ```ts\n * @Controller('/users')\n * class UserController {\n * @Get('/')\n * list() { ... }\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ControllerMetadata } from \"../di/tokens.js\";\n\nexport function Controller(prefix: string = \"/\"): ClassDecorator {\n\treturn (target: object) => {\n\t\tconst normalized = normalizePrefix(prefix);\n\t\tconst meta: ControllerMetadata = { prefix: normalized };\n\t\tReflect.defineMetadata(METADATA_KEY.CONTROLLER, meta, target);\n\t};\n}\n\nexport function getControllerMetadata(target: any): ControllerMetadata {\n\treturn (\n\t\tReflect.getMetadata(METADATA_KEY.CONTROLLER, target) ?? { prefix: \"/\" }\n\t);\n}\n\nexport function isController(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.CONTROLLER, target);\n}\n\n/**\n * Normalize a prefix so we can safely concatenate it with handler paths.\n * - Empty string becomes '/'.\n * - Trailing slashes are trimmed (we re-add them on the join).\n * - No leading slash is added; the router always joins with `/`.\n */\nfunction normalizePrefix(prefix: string): string {\n\tif (!prefix) return \"\";\n\tif (prefix !== \"/\" && prefix.endsWith(\"/\")) {\n\t\treturn prefix.slice(0, -1);\n\t}\n\treturn prefix;\n}\n",
7
+ "/**\n * HTTP method decorators.\n *\n * `@Get`, `@Post`, `@Put`, `@Delete`, `@Patch`, `@Options`, `@Head` mark a\n * controller method as a route handler. The path argument is appended to\n * the controller's prefix.\n *\n * @example\n * ```ts\n * @Controller('/users')\n * class UserController {\n * @Get('/')\n * list() {}\n *\n * @Post('/')\n * create(@Body() body: CreateUserDto) {}\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { HTTP_METHODS, METADATA_KEY, type HttpMethod } from \"../constants.js\";\nimport type { RouteMetadata } from \"../di/tokens.js\";\n\nfunction defineRoute(method: HttpMethod, path: string): MethodDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol,\n\t\tdescriptor: PropertyDescriptor,\n\t) => {\n\t\tconst routes: RouteMetadata[] =\n\t\t\tReflect.getMetadata(METADATA_KEY.ROUTES, target.constructor) ?? [];\n\n\t\troutes.push({\n\t\t\tmethod,\n\t\t\tpath: normalizePath(path),\n\t\t\tpropertyKey,\n\t\t\thandler: descriptor.value,\n\t\t});\n\n\t\tReflect.defineMetadata(METADATA_KEY.ROUTES, routes, target.constructor);\n\t};\n}\n\nfunction normalizePath(path: string): string {\n\tif (!path || path === \"/\") return \"/\";\n\treturn path.startsWith(\"/\") ? path : `/${path}`;\n}\n\nexport const Get = (path: string = \"/\") => defineRoute(\"GET\", path);\nexport const Post = (path: string = \"/\") => defineRoute(\"POST\", path);\nexport const Put = (path: string = \"/\") => defineRoute(\"PUT\", path);\nexport const Delete = (path: string = \"/\") => defineRoute(\"DELETE\", path);\nexport const Patch = (path: string = \"/\") => defineRoute(\"PATCH\", path);\nexport const Options = (path: string = \"/\") => defineRoute(\"OPTIONS\", path);\nexport const Head = (path: string = \"/\") => defineRoute(\"HEAD\", path);\n\nexport function getRoutes(target: any): RouteMetadata[] {\n\treturn Reflect.getMetadata(METADATA_KEY.ROUTES, target) ?? [];\n}\n\nexport { HTTP_METHODS };\nexport type { RouteMetadata };\n",
8
+ "/**\n * Parameter decorators.\n *\n * These mark a controller method argument as a source of request data:\n * - `@Req()` → Hono context\n * - `@Res()` → Response helper\n * - `@Next()` → next() callback (for middleware-style handlers)\n * - `@Body()` → request body (parsed)\n * - `@Query('key')` → a single query param, or full query object\n * - `@Param('key')` → a single path param, or full params object\n * - `@Headers('k')` → a single header, or full headers object\n * - `@Ctx()` → Hono context (alias for @Req)\n * - `@User()` → authenticated user (resolved via auth provider)\n *\n * The metadata is read by the router at mount time to build the\n * handler invocation list.\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY, PARAM_TYPES } from \"../constants.js\";\nimport type { ParamMetadata } from \"../di/tokens.js\";\n\nexport function createParamDecorator(\n\ttype: number,\n\tdata?: string | object,\n): ParameterDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol | undefined,\n\t\tparameterIndex: number,\n\t) => {\n\t\t// Method parameter: target is the prototype, propertyKey is the method name.\n\t\t// Constructor parameter: target is the class, propertyKey is undefined.\n\t\tif (propertyKey !== undefined) {\n\t\t\tconst params: ParamMetadata[] =\n\t\t\t\tReflect.getMetadata(METADATA_KEY.PARAMS, target, propertyKey) ?? [];\n\t\t\tparams.push({\n\t\t\t\tindex: parameterIndex,\n\t\t\t\ttype,\n\t\t\t\tname: typeof data === \"string\" ? data : undefined,\n\t\t\t\tdata: typeof data === \"object\" ? data : undefined,\n\t\t\t});\n\t\t\tReflect.defineMetadata(METADATA_KEY.PARAMS, params, target, propertyKey);\n\t\t} else {\n\t\t\tconst params: ParamMetadata[] =\n\t\t\t\tReflect.getMetadata(METADATA_KEY.PARAMS, target) ?? [];\n\t\t\tparams.push({\n\t\t\t\tindex: parameterIndex,\n\t\t\t\ttype,\n\t\t\t\tname: typeof data === \"string\" ? data : undefined,\n\t\t\t\tdata: typeof data === \"object\" ? data : undefined,\n\t\t\t});\n\t\t\tReflect.defineMetadata(METADATA_KEY.PARAMS, params, target);\n\t\t}\n\t};\n}\n\nexport const Req = () => createParamDecorator(PARAM_TYPES.REQUEST);\nexport const Res = () => createParamDecorator(PARAM_TYPES.RESPONSE);\nexport const Next = () => createParamDecorator(PARAM_TYPES.NEXT);\nexport const Body = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.BODY, key);\nexport const Query = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.QUERY, key);\nexport const Param = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.PARAM, key);\nexport const Headers = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.HEADERS, key);\nexport const Ctx = () => createParamDecorator(PARAM_TYPES.CTX);\nexport const User = () => createParamDecorator(PARAM_TYPES.USER);\n\nexport function getParamMetadata(\n\ttarget: any,\n\tpropertyKey: string | symbol,\n): ParamMetadata[] {\n\treturn Reflect.getMetadata(METADATA_KEY.PARAMS, target, propertyKey) ?? [];\n}\n\nexport { PARAM_TYPES };\n",
9
+ "/**\n * @Validate decorator.\n *\n * Attaches Zod schemas (or class validators) to a route handler. Each\n * schema is run against the corresponding request part before the handler\n * executes; failed validation throws or returns a 400 response.\n *\n * @example\n * ```ts\n * const UserSchema = z.object({ name: z.string(), email: z.email() });\n *\n * @Post('/')\n * @Validate({ body: UserSchema })\n * create(@Body() body: z.infer<typeof UserSchema>) { ... }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ValidationMetadata } from \"../di/tokens.js\";\n\nexport function Validate(options: ValidationMetadata): MethodDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol,\n\t\tdescriptor: PropertyDescriptor,\n\t) => {\n\t\tReflect.defineMetadata(\n\t\t\tMETADATA_KEY.VALIDATE,\n\t\t\toptions,\n\t\t\ttarget.constructor,\n\t\t\tpropertyKey,\n\t\t);\n\t};\n}\n\nexport function getValidationMetadata(\n\ttarget: any,\n\tpropertyKey: string | symbol,\n): ValidationMetadata | undefined {\n\treturn Reflect.getMetadata(METADATA_KEY.VALIDATE, target, propertyKey);\n}\n",
10
+ "/**\n * In-process event emitter with wildcard matching, priorities, and\n * guards. Mirrors `@nestjs/event-emitter` and AdonisJS's emitter.\n *\n * Wildcards:\n * - star (single segment) — `user.star` matches `user.created`\n * - double-star (multi segment) — `star-star` matches `user.created` and `user.profile.updated`\n * - exact — `user.created` matches only itself\n *\n * Priority: lower runs first (default 5). When two listeners have the\n * same priority, registration order is preserved (FIFO).\n *\n * Guards: a listener can register an `if(payload) → boolean` predicate;\n * when it returns false, the listener is skipped.\n *\n * Errors: by default, a throwing listener does NOT stop the rest of\n * the dispatch — errors are collected in `EmitResult.errors`. Set\n * `EventsConfig.throwOnError: true` to make `emit()` reject instead.\n */\n\nimport type {\n\tEventName,\n\tEventPriority,\n\tEventListener,\n\tListenerOptions,\n\tEmitResult,\n\tEventEmitter,\n\tEmitterEvent,\n\tEmitterEventListener,\n\tEventsConfig,\n} from \"./types.js\";\n\ninterface InternalListener {\n\tid: string;\n\tpattern: string;\n\tregex: RegExp | null; // null = exact match\n\tpriority: EventPriority;\n\tguard?: (payload: any) => boolean | Promise<boolean>;\n\tonce: boolean;\n\tlistener: EventListener;\n\tcreatedAt: number;\n}\n\nexport class NexusEventEmitter implements EventEmitter {\n\t#listeners: InternalListener[] = [];\n\t#emitterListeners = new Set<EmitterEventListener>();\n\t#maxPerPattern: number;\n\t#throwOnError: boolean;\n\t#defaultPriority: EventPriority;\n\t#nextId = 1;\n\n\tconstructor(config: EventsConfig = {}) {\n\t\tthis.#maxPerPattern = config.maxListenersPerPattern ?? 10;\n\t\tthis.#throwOnError = config.throwOnError ?? false;\n\t\tthis.#defaultPriority = config.defaultPriority ?? 5;\n\t}\n\n\t// ===========================================================================\n\t// Public API\n\t// ===========================================================================\n\n\ton<T = unknown>(\n\t\tpattern: EventName,\n\t\tlistener: EventListener<T>,\n\t\toptions: ListenerOptions = {},\n\t): string {\n\t\tconst existing = this.#listeners.filter((l) => l.pattern === pattern);\n\t\tif (existing.length >= this.#maxPerPattern) {\n\t\t\tthrow new Error(\n\t\t\t\t`[events] Too many listeners registered for \"${pattern}\" ` +\n\t\t\t\t\t`(max ${this.#maxPerPattern}). Increase \\`maxListenersPerPattern\\` ` +\n\t\t\t\t\t`or call \\`off()\\` on stale listeners.`,\n\t\t\t);\n\t\t}\n\t\tconst id = this.#allocateId();\n\t\tconst internal: InternalListener = {\n\t\t\tid,\n\t\t\tpattern,\n\t\t\tregex: compilePattern(pattern),\n\t\t\tpriority: options.priority ?? this.#defaultPriority,\n\t\t\tonce: options.once ?? false,\n\t\t\tlistener: listener as EventListener,\n\t\t\tcreatedAt: Date.now(),\n\t\t};\n\t\tif (options.if !== undefined) {\n\t\t\tinternal.guard = options.if as (\n\t\t\t\tpayload: any,\n\t\t\t) => boolean | Promise<boolean>;\n\t\t}\n\t\tthis.#listeners.push(internal);\n\t\tthis.#sortListeners();\n\t\tthis.#emitEmitterEvent({ kind: \"listener:registered\", id, pattern });\n\t\treturn id;\n\t}\n\n\tonce<T = unknown>(\n\t\tpattern: EventName,\n\t\tlistener: EventListener<T>,\n\t\toptions: Omit<ListenerOptions, \"once\"> = {},\n\t): string {\n\t\treturn this.on(pattern, listener, { ...options, once: true });\n\t}\n\n\toff(idOrPattern: string): number {\n\t\tconst before = this.#listeners.length;\n\t\tconst removed: InternalListener[] = [];\n\t\tthis.#listeners = this.#listeners.filter((l) => {\n\t\t\tconst match = l.id === idOrPattern || l.pattern === idOrPattern;\n\t\t\tif (match) removed.push(l);\n\t\t\treturn !match;\n\t\t});\n\t\tfor (const r of removed) {\n\t\t\tthis.#emitEmitterEvent({ kind: \"listener:removed\", id: r.id });\n\t\t}\n\t\treturn before - this.#listeners.length;\n\t}\n\n\tasync emit<T = unknown>(name: EventName, payload?: T): Promise<EmitResult> {\n\t\tconst result: EmitResult = {\n\t\t\tname,\n\t\t\tmatched: 0,\n\t\t\tcompleted: 0,\n\t\t\tfailed: 0,\n\t\t\terrors: [],\n\t\t};\n\t\tconst matches = this.#matchingListeners(name);\n\t\tresult.matched = matches.length;\n\t\tif (matches.length === 0) return result;\n\n\t\t// Run guards in parallel (they're cheap), then dispatch in priority order.\n\t\tconst eligible: Array<{ listener: InternalListener; payload: any }> = [];\n\t\tfor (const l of matches) {\n\t\t\tif (l.guard) {\n\t\t\t\ttry {\n\t\t\t\t\tconst ok = await l.guard(payload);\n\t\t\t\t\tif (!ok) {\n\t\t\t\t\t\tthis.#emitEmitterEvent({\n\t\t\t\t\t\t\tkind: \"listener:skipped\",\n\t\t\t\t\t\t\tid: l.id,\n\t\t\t\t\t\t\tpattern: l.pattern,\n\t\t\t\t\t\t\treason: \"guard\",\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Guard threw — skip.\n\t\t\t\t\tthis.#emitEmitterEvent({\n\t\t\t\t\t\tkind: \"listener:skipped\",\n\t\t\t\t\t\tid: l.id,\n\t\t\t\t\t\tpattern: l.pattern,\n\t\t\t\t\t\treason: \"guard\",\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\teligible.push({ listener: l, payload });\n\t\t}\n\n\t\t// Dispatch eligible listeners in priority order.\n\t\t// `once` listeners are removed on success or failure.\n\t\tconst toRemove: InternalListener[] = [];\n\t\tfor (const { listener, payload: p } of eligible) {\n\t\t\tconst start = Date.now();\n\t\t\ttry {\n\t\t\t\tawait listener.listener(p);\n\t\t\t\tresult.completed++;\n\t\t\t\tthis.#emitEmitterEvent({\n\t\t\t\t\tkind: \"listener:fired\",\n\t\t\t\t\tid: listener.id,\n\t\t\t\t\tpattern: listener.pattern,\n\t\t\t\t\tdurationMs: Date.now() - start,\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tresult.failed++;\n\t\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\t\tresult.errors.push({\n\t\t\t\t\tlistenerId: listener.id,\n\t\t\t\t\tlistenerName: listener.pattern,\n\t\t\t\t\terror: error.message,\n\t\t\t\t});\n\t\t\t\tthis.#emitEmitterEvent({\n\t\t\t\t\tkind: \"listener:failed\",\n\t\t\t\t\tid: listener.id,\n\t\t\t\t\tpattern: listener.pattern,\n\t\t\t\t\terror,\n\t\t\t\t});\n\t\t\t\tif (this.#throwOnError) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (listener.once) toRemove.push(listener);\n\t\t\t}\n\t\t}\n\t\tif (toRemove.length > 0) {\n\t\t\tconst ids = new Set(toRemove.map((l) => l.id));\n\t\t\tthis.#listeners = this.#listeners.filter((l) => !ids.has(l.id));\n\t\t}\n\t\treturn result;\n\t}\n\n\temitSync<T = unknown>(name: EventName, payload?: T): EmitResult {\n\t\tconst result: EmitResult = {\n\t\t\tname,\n\t\t\tmatched: 0,\n\t\t\tcompleted: 0,\n\t\t\tfailed: 0,\n\t\t\terrors: [],\n\t\t};\n\t\tconst matches = this.#matchingListeners(name);\n\t\tresult.matched = matches.length;\n\t\tif (matches.length === 0) return result;\n\n\t\tconst toRemove: InternalListener[] = [];\n\t\tfor (const l of matches) {\n\t\t\tif (l.guard) {\n\t\t\t\tlet ok: boolean;\n\t\t\t\ttry {\n\t\t\t\t\tok = l.guard(payload) as boolean;\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!ok) continue;\n\t\t\t}\n\t\t\tconst start = Date.now();\n\t\t\ttry {\n\t\t\t\tconst ret = l.listener(payload);\n\t\t\t\tif (ret && typeof (ret as Promise<unknown>).then === \"function\") {\n\t\t\t\t\t// Promise — fire-and-forget; not awaited in sync mode.\n\t\t\t\t\t(ret as Promise<unknown>).then(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tresult.completed++;\n\t\t\t\t\t\t\tif (l.once) toRemove.push(l);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(err: unknown) => {\n\t\t\t\t\t\t\tresult.failed++;\n\t\t\t\t\t\t\tresult.errors.push({\n\t\t\t\t\t\t\t\tlistenerId: l.id,\n\t\t\t\t\t\t\t\tlistenerName: l.pattern,\n\t\t\t\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (l.once) toRemove.push(l);\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tresult.completed++;\n\t\t\t\t\tif (l.once) toRemove.push(l);\n\t\t\t\t}\n\t\t\t\tthis.#emitEmitterEvent({\n\t\t\t\t\tkind: \"listener:fired\",\n\t\t\t\t\tid: l.id,\n\t\t\t\t\tpattern: l.pattern,\n\t\t\t\t\tdurationMs: Date.now() - start,\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tresult.failed++;\n\t\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\t\tresult.errors.push({\n\t\t\t\t\tlistenerId: l.id,\n\t\t\t\t\tlistenerName: l.pattern,\n\t\t\t\t\terror: error.message,\n\t\t\t\t});\n\t\t\t\tif (l.once) toRemove.push(l);\n\t\t\t}\n\t\t}\n\t\tif (toRemove.length > 0) {\n\t\t\tconst ids = new Set(toRemove.map((l) => l.id));\n\t\t\tthis.#listeners = this.#listeners.filter((l) => !ids.has(l.id));\n\t\t}\n\t\treturn result;\n\t}\n\n\tlistenerCount(pattern?: EventName): number {\n\t\tif (pattern === undefined) return this.#listeners.length;\n\t\treturn this.#listeners.filter((l) => l.pattern === pattern).length;\n\t}\n\n\tlistListeners(pattern?: EventName): Array<{\n\t\tid: string;\n\t\tpattern: string;\n\t\tpriority: EventPriority;\n\t\tonce: boolean;\n\t}> {\n\t\tconst list =\n\t\t\tpattern === undefined\n\t\t\t\t? this.#listeners\n\t\t\t\t: this.#listeners.filter((l) => l.pattern === pattern);\n\t\treturn list.map((l) => ({\n\t\t\tid: l.id,\n\t\t\tpattern: l.pattern,\n\t\t\tpriority: l.priority,\n\t\t\tonce: l.once,\n\t\t}));\n\t}\n\n\tremoveAllListeners(): void {\n\t\tconst ids = this.#listeners.map((l) => l.id);\n\t\tthis.#listeners = [];\n\t\tfor (const id of ids) {\n\t\t\tthis.#emitEmitterEvent({ kind: \"listener:removed\", id });\n\t\t}\n\t}\n\n\t/** Subscribe to emitter-internal events (registration, firing, etc.). */\n\tonEmitterEvent(listener: EmitterEventListener): () => void {\n\t\tthis.#emitterListeners.add(listener);\n\t\treturn () => this.#emitterListeners.delete(listener);\n\t}\n\n\t// ===========================================================================\n\t// Internal\n\t// ===========================================================================\n\n\t#allocateId(): string {\n\t\treturn `evt-${this.#nextId++}`;\n\t}\n\n\t#matchingListeners(name: EventName): InternalListener[] {\n\t\treturn this.#listeners.filter((l) => {\n\t\t\tif (l.regex === null) return l.pattern === name;\n\t\t\treturn l.regex.test(name);\n\t\t});\n\t}\n\n\t#sortListeners(): void {\n\t\t// Stable sort: by priority asc, then createdAt asc.\n\t\tthis.#listeners.sort((a, b) => {\n\t\t\tif (a.priority !== b.priority) return a.priority - b.priority;\n\t\t\treturn a.createdAt - b.createdAt;\n\t\t});\n\t}\n\n\t#emitEmitterEvent(event: EmitterEvent): void {\n\t\tfor (const l of this.#emitterListeners) {\n\t\t\tvoid Promise.resolve(l(event));\n\t\t}\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Pattern compiler\n// ---------------------------------------------------------------------------\n\n/**\n * Compile an event-name pattern into a RegExp. `null` means exact\n * match (no wildcards).\n *\n * Strategy:\n * 1. Replace `**` and `*` with sentinel placeholders that survive\n * regex escaping.\n * 2. Escape all other regex metacharacters.\n * 3. Replace placeholders with the actual regex fragments\n * (`**` → `.*`, `*` → `[^.]+`).\n */\nexport function compilePattern(pattern: string): RegExp | null {\n\tif (!pattern.includes(\"*\")) return null;\n\n\tconst DOUBLE = \"\\x00DOUBLE\\x00\";\n\tconst SINGLE = \"\\x00SINGLE\\x00\";\n\tlet p = pattern.split(\"**\").join(DOUBLE).split(\"*\").join(SINGLE);\n\n\t// Escape regex metacharacters (except our placeholders, which are\n\t// control characters that have no regex meaning).\n\tp = p.replace(/[.+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n\tp = p.split(DOUBLE).join(\".*\").split(SINGLE).join(\"[^.]+\");\n\treturn new RegExp(`^${p}$`);\n}\n",
11
+ "/**\n * @Module decorator.\n *\n * Marks a class as a Nest-style module: a logical grouping of\n * controllers and providers with explicit imports/exports.\n *\n * @example\n * ```ts\n * @Module({\n * imports: [UserModule],\n * controllers: [UserController],\n * providers: [UserService],\n * exports: [UserService],\n * })\n * class AppModule {}\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ModuleOptions, Type } from \"../di/tokens.js\";\n\nexport function Module(options: ModuleOptions = {}): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(METADATA_KEY.MODULE, options, target);\n\t};\n}\n\n/** Read the @Module options from a class. */\nexport function getModuleOptions(target: Type<any>): ModuleOptions {\n\treturn Reflect.getMetadata(METADATA_KEY.MODULE, target) ?? {};\n}\n",
12
+ "/**\n * Convenience barrel for all decorators.\n */\nexport * from \"./module.js\";\nexport * from \"./controller.js\";\nexport * from \"./injectable.js\";\nexport * from \"./http-methods.js\";\nexport * from \"./params.js\";\nexport * from \"./validate.js\";\nexport * from \"./repository.js\";\nexport * from \"./metadata.js\";\n",
13
+ "/**\n * @Injectable decorator.\n *\n * Marks a class as available for DI. The container uses reflect-metadata's\n * `design:paramtypes` to read constructor parameter types and resolve them\n * automatically.\n *\n * @example\n * ```ts\n * @Injectable()\n * class UserService {\n * constructor(private repo: UserRepository) {}\n * }\n *\n * @Injectable({ scope: 'request' })\n * class RequestContext {\n * constructor(@Inject(REQUEST) private req: any) {}\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\n\nexport interface InjectableOptions {\n\tscope?: \"singleton\" | \"request\" | \"transient\";\n}\n\nexport function Injectable(options: InjectableOptions = {}): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(METADATA_KEY.INJECTABLE, true, target);\n\t\tif (options.scope) {\n\t\t\tReflect.defineMetadata(\n\t\t\t\t\"nexus:di:scope\",\n\t\t\t\toptions.scope,\n\t\t\t\ttarget,\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport function isInjectable(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.INJECTABLE, target);\n}\n\n/**\n * Read the scope declared on a class via `@Injectable({ scope })`.\n * Returns undefined when no scope is declared (defaults to singleton).\n */\nexport function getScope(\n\ttarget: any,\n): \"singleton\" | \"request\" | \"transient\" | undefined {\n\treturn Reflect.getMetadata(\"nexus:di:scope\", target);\n}\n\n/**\n * Mark a parameter as resolved by a specific token instead of its declared\n * type. Useful for interfaces, abstract classes, or string tokens.\n *\n * @example\n * ```ts\n * constructor(@Inject('CONFIG') private config: AppConfig) {}\n * ```\n */\nexport function Inject<T = any>(token: any): ParameterDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol | undefined,\n\t\tparameterIndex: number,\n\t) => {\n\t\tconst existing: Map<number, any> =\n\t\t\tReflect.getMetadata(METADATA_KEY.INJECT, target) ?? new Map();\n\t\texisting.set(parameterIndex, token);\n\t\tReflect.defineMetadata(METADATA_KEY.INJECT, existing, target);\n\t};\n}",
14
+ "/**\n * @Repository decorator.\n *\n * Marks a class as a Spring-style repository. Repositories are normal\n * `@Injectable()` classes; the decorator is a marker so the framework\n * can register them with a database adapter (Drizzle/Prisma) and emit\n * a friendly error if you forget to wire one.\n *\n * @example\n * ```ts\n * @Repository()\n * class UserRepository {\n * findAll() { return db.select().from(users); }\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { InjectionToken } from \"../di/tokens.js\";\n\nexport function Repository(entityToken?: InjectionToken<any>): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(\n\t\t\tMETADATA_KEY.REPOSITORY,\n\t\t\t{ entity: entityToken },\n\t\t\ttarget,\n\t\t);\n\t\tReflect.defineMetadata(METADATA_KEY.INJECTABLE, true, target);\n\t};\n}\n\nexport function getRepositoryMetadata(\n\ttarget: any,\n): { entity?: InjectionToken<any> } | undefined {\n\treturn Reflect.getMetadata(METADATA_KEY.REPOSITORY, target);\n}\n\nexport function isRepository(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.REPOSITORY, target);\n}\n",
15
+ "/**\n * Reflect-metadata helper. Centralizes the keys the framework uses so\n * decorator files stay clean.\n */\nexport { METADATA_KEY, PARAM_TYPES, HTTP_METHODS } from \"../constants.js\";\nexport type { MetadataKey, ParamType, HttpMethod } from \"../constants.js\";\n",
16
+ "/**\n * `EventService` — DI-friendly facade over the emitter.\n *\n * Controllers and services inject this to emit events. Listeners\n * can either:\n * - Call `event.on(pattern, fn)` directly\n * - Use the `@OnEvent(pattern)` decorator + `scanForListeners`\n */\n\nimport { Inject, Injectable } from '../core/decorators/index.js';\nimport {\n\tNexusEventEmitter,\n\tcompilePattern,\n} from './emitter.js';\nimport type {\n\tEventEmitter,\n\tEventListener,\n\tEventName,\n\tEmitResult,\n\tListenerOptions,\n\tEventsConfig,\n\tEmitterEvent,\n\tEmitterEventListener,\n} from './types.js';\n\n@Injectable()\nexport class EventService {\n\t/** DI token — use with `@Inject(EventService.TOKEN)`. */\n\tstatic readonly TOKEN = Symbol.for('nexus:EventService');\n\n\treadonly emitter: EventEmitter;\n\n\tconstructor(@Inject('EVENTS_CONFIG') private readonly config: EventsConfig = {}) {\n\t\tthis.emitter = new NexusEventEmitter(config);\n\t}\n\n\t// ===========================================================================\n\t// Public API\n\t// ===========================================================================\n\n\ton<T = unknown>(\n\t\tpattern: EventName,\n\t\tlistener: EventListener<T>,\n\t\toptions?: ListenerOptions,\n\t): string {\n\t\treturn this.emitter.on(pattern, listener, options);\n\t}\n\n\tonce<T = unknown>(\n\t\tpattern: EventName,\n\t\tlistener: EventListener<T>,\n\t\toptions?: Omit<ListenerOptions, 'once'>,\n\t): string {\n\t\treturn this.emitter.once(pattern, listener, options);\n\t}\n\n\toff(idOrPattern: string): number {\n\t\treturn this.emitter.off(idOrPattern);\n\t}\n\n\temit<T = unknown>(name: EventName, payload?: T): Promise<EmitResult> {\n\t\treturn this.emitter.emit(name, payload);\n\t}\n\n\temitSync<T = unknown>(name: EventName, payload?: T): EmitResult {\n\t\treturn this.emitter.emitSync(name, payload);\n\t}\n\n\tlistenerCount(pattern?: EventName): number {\n\t\treturn this.emitter.listenerCount(pattern);\n\t}\n\n\tlistListeners(pattern?: EventName): ReturnType<EventEmitter['listListeners']> {\n\t\treturn this.emitter.listListeners(pattern);\n\t}\n\n\tremoveAllListeners(): void {\n\t\tthis.emitter.removeAllListeners();\n\t}\n\n\tonEmitterEvent(listener: EmitterEventListener): () => void {\n\t\tconst internal = this.emitter as NexusEventEmitter;\n\t\tif (typeof internal.onEmitterEvent === 'function') {\n\t\t\treturn internal.onEmitterEvent(listener);\n\t\t}\n\t\treturn () => {};\n\t}\n\n\t// ===========================================================================\n\t// Internal\n\t// ===========================================================================\n\n\t#bridgeEmitterEvents(): void {\n\t\t// Forward emitter events through our public EventService — useful\n\t\t// for testing / debugging.\n\t\tconst internal = this.emitter as NexusEventEmitter;\n\t\tif (typeof internal.onEmitterEvent === 'function') {\n\t\t\tinternal.onEmitterEvent((event: EmitterEvent) => {\n\t\t\t\t// Reserved for future log/metric integration.\n\t\t\t\tvoid event;\n\t\t\t});\n\t\t}\n\t}\n}",
17
+ "/**\n * `EventsModule` — drop-in module for adding pub/sub to a NexusJS app.\n *\n * Usage:\n * // src/app/app.module.ts\n * @Module({\n * imports: [EventsModule.forRoot()],\n * })\n * export class AppModule {}\n *\n * // any service\n * @Injectable()\n * class EmailListeners {\n * constructor(@Inject(EventService.TOKEN) private events: EventService) {}\n *\n * @OnEvent('user.created')\n * async onUserCreated(p: { email: string }) {\n * await sendEmail(p.email, 'welcome');\n * }\n * }\n *\n * // bootstrap\n * const app = new Application(AppModule);\n * const events = app.container.resolve(EventService);\n * scanForListeners(emailListenersInstance, events);\n * await events.emit('user.created', { email: 'a@b.c' });\n */\n\nimport \"reflect-metadata\";\nimport { Module } from \"../core/decorators/module.js\";\nimport { EventService } from \"./event.service.js\";\nimport type { EventsConfig } from \"./types.js\";\n\n@Module({\n\tproviders: [\n\t\tEventService,\n\t\t{ provide: EventService.TOKEN, useExisting: EventService },\n\t],\n\texports: [EventService, EventService.TOKEN],\n})\nexport class EventsModule {\n\tstatic forRoot(config: EventsConfig = {}) {\n\t\t@Module({\n\t\t\tproviders: [\n\t\t\t\tEventService,\n\t\t\t\t{ provide: EventService.TOKEN, useExisting: EventService },\n\t\t\t\t{ provide: \"EVENTS_CONFIG\", useValue: config },\n\t\t\t],\n\t\t\texports: [EventService, EventService.TOKEN],\n\t\t})\n\t\tclass ConfiguredEventsModule {}\n\n\t\tObject.defineProperty(ConfiguredEventsModule, \"name\", {\n\t\t\tvalue: \"ConfiguredEventsModule\",\n\t\t});\n\n\t\treturn ConfiguredEventsModule;\n\t}\n}\n",
18
+ "/**\n * `@OnEvent(pattern)` — register a method as an event listener.\n *\n * Mirrors `@nestjs/event-emitter`. Pair with\n * `EventModule.scanForListeners(instance, service)` at boot to wire\n * up all decorated methods.\n *\n * Usage:\n * @Injectable()\n * class UserListeners {\n * constructor(@Inject(EventService.TOKEN) private events: EventService) {}\n *\n * @OnEvent('user.created')\n * async onUserCreated(payload: { userId: string; email: string }) {\n * await this.sendWelcome(payload.email);\n * }\n *\n * @OnEvent('user.*', { priority: 1 })\n * async onAnyUser(payload: any) {\n * // logger\n * }\n *\n * @OnEvent('order.shipped', { once: true })\n * async onFirstShip(payload: any) {\n * // ...\n * }\n * }\n */\n\nimport \"reflect-metadata\";\nimport type { EventService } from \"../event.service.js\";\nimport type { EventName, ListenerOptions, EventListener } from \"../types.js\";\n\nconst ON_EVENT_META = \"nexus:events:on-event\";\n\ninterface StoredHook {\n\tmethod: string;\n\tpattern: EventName;\n\toptions: ListenerOptions;\n}\n\n/**\n * Mark a method as an event listener.\n */\nexport function OnEvent(\n\tpattern: EventName,\n\toptions: ListenerOptions = {},\n): MethodDecorator {\n\treturn (target, propertyKey, descriptor) => {\n\t\tif (!descriptor || typeof descriptor.value !== \"function\") {\n\t\t\tthrow new Error(\"@OnEvent can only decorate methods.\");\n\t\t}\n\t\tconst ctor = target.constructor as object;\n\t\tconst hooks: StoredHook[] =\n\t\t\t(Reflect.getMetadata(ON_EVENT_META, ctor) as StoredHook[] | undefined) ??\n\t\t\t[];\n\t\thooks.push({ method: String(propertyKey), pattern, options });\n\t\tReflect.defineMetadata(ON_EVENT_META, hooks, ctor);\n\t};\n}\n\n/** Get the on-event hooks declared on a class. */\nexport function getOnEventHooks(target: unknown): StoredHook[] {\n\tconst ctor =\n\t\t(target as { constructor?: object }).constructor ?? (target as object);\n\treturn (\n\t\t(Reflect.getMetadata(ON_EVENT_META, ctor) as StoredHook[] | undefined) ?? []\n\t);\n}\n\n/**\n * Scan an instance for `@OnEvent` hooks and register them with the\n * `EventService`. Returns the assigned listener ids.\n */\nexport function scanForListeners(\n\tinstance: object,\n\tservice: EventService,\n): string[] {\n\tconst ids: string[] = [];\n\tfor (const h of getOnEventHooks(instance)) {\n\t\tconst fn = (instance as Record<string, unknown>)[h.method] as\n\t\t\t| EventListener\n\t\t\t| undefined;\n\t\tif (typeof fn !== \"function\") continue;\n\t\tconst id = service.on(h.pattern, fn.bind(instance), {\n\t\t\tpriority: h.options.priority,\n\t\t\tonce: h.options.once,\n\t\t\tif: h.options.if as\n\t\t\t\t| ((payload: any) => boolean | Promise<boolean>)\n\t\t\t\t| undefined,\n\t\t});\n\t\tids.push(id);\n\t}\n\treturn ids;\n}\n\n// Re-export.\nexport type { EventService };\n"
19
+ ],
20
+ "mappings": "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",
21
+ "debugId": "CC457D1178A415F864756E2164756E21",
22
+ "names": []
23
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Event System types — the public contract for `nexusjs/events`.
3
+ *
4
+ * Mirrors `@nestjs/event-emitter` and AdonisJS's emitter:
5
+ * - `emit(name, payload)` to dispatch an event
6
+ * - `@OnEvent(name)` to subscribe
7
+ * - Wildcards: `*` (single segment) and `**` (multi-segment)
8
+ * - Priorities (lower runs first; default 5)
9
+ * - Guards (`if` predicate) for conditional handling
10
+ * - Sync and async listeners
11
+ *
12
+ * The events module is separate from `nexusjs/core` and ships as its
13
+ * own bundle entry point.
14
+ */
15
+ /**
16
+ * An event name. Convention: `domain.action` (e.g. `user.created`,
17
+ * `order.shipped`). Wildcards:
18
+ *
19
+ * - star — matches a single segment (`user.star` → user.created)
20
+ * - double-star — matches one or more segments (`star-star`)
21
+ * - exact — matches only the literal name
22
+ */
23
+ export type EventName = string;
24
+ /** Listener priority. Lower runs first. Default: 5. */
25
+ export type EventPriority = number;
26
+ /** A listener function. Sync or async. */
27
+ export type EventListener<T = unknown> = (payload: T) => void | Promise<void>;
28
+ /** Options attached to a listener registration. */
29
+ export interface ListenerOptions {
30
+ /** Lower runs first. Default: 5. */
31
+ priority?: EventPriority;
32
+ /** Skip this listener unless the predicate returns true. */
33
+ if?: (payload: any) => boolean | Promise<boolean>;
34
+ /** Mark the listener as a one-shot — auto-removed after the first match. */
35
+ once?: boolean;
36
+ }
37
+ /** Result of a single `emit()` call. */
38
+ export interface EmitResult {
39
+ name: EventName;
40
+ /** Number of listeners that matched the pattern. */
41
+ matched: number;
42
+ /** Number of listeners that completed (sync or async) without throwing. */
43
+ completed: number;
44
+ /** Number of listeners that threw or rejected. */
45
+ failed: number;
46
+ /** Per-listener error messages (if any). */
47
+ errors: Array<{
48
+ listenerId: string;
49
+ listenerName: string;
50
+ error: string;
51
+ }>;
52
+ }
53
+ /**
54
+ * Emitter contract — every backend (we ship one for now: in-process)
55
+ * implements this. The `EventService` is the user-facing facade.
56
+ */
57
+ export interface EventEmitter {
58
+ /** Register a listener. Returns the assigned listener id. */
59
+ on<T = unknown>(pattern: EventName, listener: EventListener<T>, options?: ListenerOptions): string;
60
+ /** Register a one-shot listener. Returns the assigned listener id. */
61
+ once<T = unknown>(pattern: EventName, listener: EventListener<T>, options?: Omit<ListenerOptions, "once">): string;
62
+ /** Remove a listener by id (or by pattern — all matching listeners). */
63
+ off(idOrPattern: string): number;
64
+ /** Emit an event. Returns the dispatch result. */
65
+ emit<T = unknown>(name: EventName, payload?: T): Promise<EmitResult>;
66
+ /** Synchronous variant — only awaits already-resolved listeners. */
67
+ emitSync<T = unknown>(name: EventName, payload?: T): EmitResult;
68
+ /** Number of registered listeners. */
69
+ listenerCount(pattern?: EventName): number;
70
+ /** List registered listeners (for debugging). */
71
+ listListeners(pattern?: EventName): Array<{
72
+ id: string;
73
+ pattern: string;
74
+ priority: EventPriority;
75
+ once: boolean;
76
+ }>;
77
+ /** Remove every listener. */
78
+ removeAllListeners(): void;
79
+ }
80
+ /** Internal events emitted by the emitter itself (not user-facing). */
81
+ export type EmitterEvent = {
82
+ kind: "listener:registered";
83
+ id: string;
84
+ pattern: string;
85
+ } | {
86
+ kind: "listener:removed";
87
+ id: string;
88
+ } | {
89
+ kind: "listener:fired";
90
+ id: string;
91
+ pattern: string;
92
+ durationMs: number;
93
+ } | {
94
+ kind: "listener:failed";
95
+ id: string;
96
+ pattern: string;
97
+ error: Error;
98
+ } | {
99
+ kind: "listener:skipped";
100
+ id: string;
101
+ pattern: string;
102
+ reason: "guard" | "once" | "pattern";
103
+ };
104
+ export type EmitterEventListener = (event: EmitterEvent) => void | Promise<void>;
105
+ export interface EventsConfig {
106
+ /**
107
+ * Maximum number of listeners that can be registered for a single
108
+ * pattern. Default: 10. Helps catch leaks.
109
+ */
110
+ maxListenersPerPattern?: number;
111
+ /**
112
+ * When true, `emit()` rejects (throws AggregateError-like) if any
113
+ * listener rejects. When false (default), errors are collected in
114
+ * `EmitResult.errors` and dispatch continues.
115
+ */
116
+ throwOnError?: boolean;
117
+ /** Default priority for new listeners. Default: 5. */
118
+ defaultPriority?: EventPriority;
119
+ }
120
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * gRPC decorators.
3
+ *
4
+ * @Injectable()
5
+ * @GrpcService("UserService")
6
+ * class UserServiceImpl {
7
+ * @GrpcMethod("FindById")
8
+ * async findById(request: { id: number }) {
9
+ * return { name: "Alice", email: "alice@example.com" };
10
+ * }
11
+ * }
12
+ *
13
+ * The framework reads the metadata at start time and wires
14
+ * each method to the corresponding gRPC handler. The method
15
+ * name in the decorator must match the .proto file's method
16
+ * name (e.g. `FindById`, not `findById`).
17
+ */
18
+ /**
19
+ * Mark a class as a gRPC service implementation. The `name`
20
+ * must match a `service` declaration in the .proto file.
21
+ */
22
+ export declare function GrpcService(name: string): ClassDecorator;
23
+ /**
24
+ * Mark a method as a gRPC handler. The `name` must match the
25
+ * method name in the .proto file. The method receives the
26
+ * request object and must return a `Promise<TResponse>` (for
27
+ * unary methods).
28
+ */
29
+ export declare function GrpcMethod(name: string): MethodDecorator;
30
+ /** Read the gRPC service name. Internal. */
31
+ export declare function getGrpcServiceName(target: object): string | undefined;
32
+ /** Read the bound method names for a gRPC service. Internal. */
33
+ export declare function getGrpcMethodNames(target: object): Record<string, string>;
34
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/grpc/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAaxD;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE;AAED,gEAAgE;AAChE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * `nexusjs/grpc` — gRPC integration for the Bun-native stack.
3
+ *
4
+ * Public API:
5
+ * - `GrpcService` — the main service. Owns the @grpc/grpc-js server
6
+ * and the loaded proto definition.
7
+ * - `GrpcModule.forRoot(config)` — wires the service into the DI
8
+ * container, registers service implementations, and prepares the
9
+ * handlers. The user calls `start()` to bind the server to a
10
+ * port.
11
+ * - `@GrpcService(name)` — class decorator marking an impl class.
12
+ * - `@GrpcMethod(name)` — method decorator binding a method to a
13
+ * gRPC method declared in the `.proto` file.
14
+ * - `client<T>(name, { url })` — build a typed client for a gRPC
15
+ * service. Methods return Promises.
16
+ *
17
+ * Optional peer dependencies:
18
+ * - `@grpc/grpc-js` (^1.10.0) — the server runtime
19
+ * - `@grpc/proto-loader` (^0.7.0) — loads `.proto` files
20
+ *
21
+ * Install with:
22
+ * bun add @grpc/grpc-js @grpc/proto-loader
23
+ *
24
+ * Quick start:
25
+ *
26
+ * // user.proto
27
+ * syntax = "proto3";
28
+ * package user;
29
+ * service UserService {
30
+ * rpc FindById (UserRequest) returns (UserResponse);
31
+ * }
32
+ * message UserRequest { int32 id = 1; }
33
+ * message UserResponse { string name = 1; string email = 2; }
34
+ *
35
+ * // user.grpc.ts
36
+ * @Injectable()
37
+ * @GrpcService("UserService")
38
+ * class UserServiceImpl {
39
+ * @GrpcMethod("FindById")
40
+ * async findById(req: { id: number }) {
41
+ * return { name: "Alice", email: "alice@example.com" };
42
+ * }
43
+ * }
44
+ *
45
+ * // app.module.ts
46
+ * @Module({
47
+ * imports: [GrpcModule.forRoot({
48
+ * protoPath: "./proto/user.proto",
49
+ * services: [UserServiceImpl],
50
+ * })],
51
+ * })
52
+ * class AppModule {}
53
+ *
54
+ * // main.ts
55
+ * const app = new Application(AppModule);
56
+ * const grpc = app.container.resolve(GrpcService);
57
+ * await grpc.start(); // binds to 0.0.0.0:50051
58
+ *
59
+ * // client usage (e.g. in another service)
60
+ * const userClient = grpc.client<{ findById(req: { id: number }): Promise<{ name: string; email: string }> }>("UserService");
61
+ * const user = await userClient.findById({ id: 1 });
62
+ *
63
+ * Unary methods only for v1. Streaming (server / client / bidi)
64
+ * is a future addition.
65
+ */
66
+ export { GrpcService, GRPC_SERVICE_TOKEN } from "./service.js";
67
+ export { GrpcModule } from "./module.js";
68
+ export { GrpcService as GrpcServiceDecorator, GrpcMethod, getGrpcServiceName, getGrpcMethodNames, } from "./decorators.js";
69
+ export type { GrpcConfig, GrpcMethodMeta, GrpcClient, GrpcClientOptions, } from "./types.js";
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grpc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACN,WAAW,IAAI,oBAAoB,EACnC,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,GACjB,MAAM,YAAY,CAAC"}