@buenojs/bueno 0.8.9 → 0.8.11

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 (708) hide show
  1. package/README.md +1 -1
  2. package/dist/cache/index.d.ts +187 -0
  3. package/dist/cache/index.d.ts.map +1 -0
  4. package/dist/cache/index.js +595 -0
  5. package/dist/cache/index.js.map +1 -0
  6. package/dist/cli/bin.d.ts +8 -0
  7. package/dist/cli/bin.d.ts.map +1 -0
  8. package/dist/cli/bin.js +9 -9
  9. package/dist/cli/bin.js.map +1 -0
  10. package/dist/cli/commands/add-frontend.d.ts +7 -0
  11. package/dist/cli/commands/add-frontend.d.ts.map +1 -0
  12. package/dist/cli/commands/add-frontend.js +376 -0
  13. package/dist/cli/commands/add-frontend.js.map +1 -0
  14. package/dist/cli/commands/build.d.ts +7 -0
  15. package/dist/cli/commands/build.d.ts.map +1 -0
  16. package/dist/cli/commands/build.js +347 -0
  17. package/dist/cli/commands/build.js.map +1 -0
  18. package/dist/cli/commands/dev.d.ts +7 -0
  19. package/dist/cli/commands/dev.d.ts.map +1 -0
  20. package/dist/cli/commands/dev.js +205 -0
  21. package/dist/cli/commands/dev.js.map +1 -0
  22. package/dist/cli/commands/generate.d.ts +7 -0
  23. package/dist/cli/commands/generate.d.ts.map +1 -0
  24. package/dist/cli/commands/generate.js +491 -0
  25. package/dist/cli/commands/generate.js.map +1 -0
  26. package/dist/cli/commands/help.d.ts +7 -0
  27. package/dist/cli/commands/help.d.ts.map +1 -0
  28. package/dist/cli/commands/help.js +51 -0
  29. package/dist/cli/commands/help.js.map +1 -0
  30. package/dist/cli/commands/index.d.ts +59 -0
  31. package/dist/cli/commands/index.d.ts.map +1 -0
  32. package/dist/cli/commands/index.js +77 -0
  33. package/dist/cli/commands/index.js.map +1 -0
  34. package/dist/cli/commands/migration.d.ts +7 -0
  35. package/dist/cli/commands/migration.d.ts.map +1 -0
  36. package/dist/cli/commands/migration.js +295 -0
  37. package/dist/cli/commands/migration.js.map +1 -0
  38. package/dist/cli/commands/new.d.ts +7 -0
  39. package/dist/cli/commands/new.d.ts.map +1 -0
  40. package/dist/cli/commands/new.js +641 -0
  41. package/dist/cli/commands/new.js.map +1 -0
  42. package/dist/cli/commands/start.d.ts +7 -0
  43. package/dist/cli/commands/start.d.ts.map +1 -0
  44. package/dist/cli/commands/start.js +171 -0
  45. package/dist/cli/commands/start.js.map +1 -0
  46. package/dist/cli/core/args.d.ts +61 -0
  47. package/dist/cli/core/args.d.ts.map +1 -0
  48. package/dist/cli/core/args.js +224 -0
  49. package/dist/cli/core/args.js.map +1 -0
  50. package/dist/cli/core/console.d.ts +135 -0
  51. package/dist/cli/core/console.d.ts.map +1 -0
  52. package/dist/cli/core/console.js +268 -0
  53. package/dist/cli/core/console.js.map +1 -0
  54. package/dist/cli/core/index.d.ts +10 -0
  55. package/dist/cli/core/index.d.ts.map +1 -0
  56. package/dist/cli/core/index.js +10 -0
  57. package/dist/cli/core/index.js.map +1 -0
  58. package/dist/cli/core/prompt.d.ts +63 -0
  59. package/dist/cli/core/prompt.d.ts.map +1 -0
  60. package/dist/cli/core/prompt.js +338 -0
  61. package/dist/cli/core/prompt.js.map +1 -0
  62. package/dist/cli/core/spinner.d.ts +111 -0
  63. package/dist/cli/core/spinner.d.ts.map +1 -0
  64. package/dist/cli/core/spinner.js +208 -0
  65. package/dist/cli/core/spinner.js.map +1 -0
  66. package/dist/cli/index.d.ts +47 -0
  67. package/dist/cli/index.d.ts.map +1 -0
  68. package/dist/cli/index.js +127 -0
  69. package/dist/cli/index.js.map +1 -0
  70. package/dist/cli/templates/database/index.d.ts +24 -0
  71. package/dist/cli/templates/database/index.d.ts.map +1 -0
  72. package/dist/cli/templates/database/index.js +49 -0
  73. package/dist/cli/templates/database/index.js.map +1 -0
  74. package/dist/cli/templates/database/mysql.d.ts +6 -0
  75. package/dist/cli/templates/database/mysql.d.ts.map +1 -0
  76. package/dist/cli/templates/database/mysql.js +12 -0
  77. package/dist/cli/templates/database/mysql.js.map +1 -0
  78. package/dist/cli/templates/database/none.d.ts +8 -0
  79. package/dist/cli/templates/database/none.d.ts.map +1 -0
  80. package/dist/cli/templates/database/none.js +14 -0
  81. package/dist/cli/templates/database/none.js.map +1 -0
  82. package/dist/cli/templates/database/postgresql.d.ts +6 -0
  83. package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
  84. package/dist/cli/templates/database/postgresql.js +12 -0
  85. package/dist/cli/templates/database/postgresql.js.map +1 -0
  86. package/dist/cli/templates/database/sqlite.d.ts +6 -0
  87. package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
  88. package/dist/cli/templates/database/sqlite.js +12 -0
  89. package/dist/cli/templates/database/sqlite.js.map +1 -0
  90. package/dist/cli/templates/deploy.d.ts +41 -0
  91. package/dist/cli/templates/deploy.d.ts.map +1 -0
  92. package/dist/cli/templates/deploy.js +278 -0
  93. package/dist/cli/templates/deploy.js.map +1 -0
  94. package/dist/cli/templates/docker.d.ts +30 -0
  95. package/dist/cli/templates/docker.d.ts.map +1 -0
  96. package/dist/cli/templates/docker.js +298 -0
  97. package/dist/cli/templates/docker.js.map +1 -0
  98. package/dist/cli/templates/frontend/index.d.ts +25 -0
  99. package/dist/cli/templates/frontend/index.d.ts.map +1 -0
  100. package/dist/cli/templates/frontend/index.js +40 -0
  101. package/dist/cli/templates/frontend/index.js.map +1 -0
  102. package/dist/cli/templates/frontend/none.d.ts +8 -0
  103. package/dist/cli/templates/frontend/none.d.ts.map +1 -0
  104. package/dist/cli/templates/frontend/none.js +15 -0
  105. package/dist/cli/templates/frontend/none.js.map +1 -0
  106. package/dist/cli/templates/frontend/react.d.ts +6 -0
  107. package/dist/cli/templates/frontend/react.d.ts.map +1 -0
  108. package/dist/cli/templates/frontend/react.js +139 -0
  109. package/dist/cli/templates/frontend/react.js.map +1 -0
  110. package/dist/cli/templates/frontend/solid.d.ts +6 -0
  111. package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
  112. package/dist/cli/templates/frontend/solid.js +133 -0
  113. package/dist/cli/templates/frontend/solid.js.map +1 -0
  114. package/dist/cli/templates/frontend/svelte.d.ts +6 -0
  115. package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
  116. package/dist/cli/templates/frontend/svelte.js +130 -0
  117. package/dist/cli/templates/frontend/svelte.js.map +1 -0
  118. package/dist/cli/templates/frontend/vue.d.ts +6 -0
  119. package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
  120. package/dist/cli/templates/frontend/vue.js +129 -0
  121. package/dist/cli/templates/frontend/vue.js.map +1 -0
  122. package/dist/cli/templates/generators/index.d.ts +29 -0
  123. package/dist/cli/templates/generators/index.d.ts.map +1 -0
  124. package/dist/cli/templates/generators/index.js +308 -0
  125. package/dist/cli/templates/generators/index.js.map +1 -0
  126. package/dist/cli/templates/generators/types.d.ts +32 -0
  127. package/dist/cli/templates/generators/types.d.ts.map +1 -0
  128. package/dist/cli/templates/generators/types.js +21 -0
  129. package/dist/cli/templates/generators/types.js.map +1 -0
  130. package/dist/cli/templates/index.d.ts +12 -0
  131. package/dist/cli/templates/index.d.ts.map +1 -0
  132. package/dist/cli/templates/index.js +18 -0
  133. package/dist/cli/templates/index.js.map +1 -0
  134. package/dist/cli/templates/project/api.d.ts +6 -0
  135. package/dist/cli/templates/project/api.d.ts.map +1 -0
  136. package/dist/cli/templates/project/api.js +79 -0
  137. package/dist/cli/templates/project/api.js.map +1 -0
  138. package/dist/cli/templates/project/default.d.ts +6 -0
  139. package/dist/cli/templates/project/default.d.ts.map +1 -0
  140. package/dist/cli/templates/project/default.js +136 -0
  141. package/dist/cli/templates/project/default.js.map +1 -0
  142. package/dist/cli/templates/project/fullstack.d.ts +14 -0
  143. package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
  144. package/dist/cli/templates/project/fullstack.js +19 -0
  145. package/dist/cli/templates/project/fullstack.js.map +1 -0
  146. package/dist/cli/templates/project/index.d.ts +26 -0
  147. package/dist/cli/templates/project/index.d.ts.map +1 -0
  148. package/dist/cli/templates/project/index.js +60 -0
  149. package/dist/cli/templates/project/index.js.map +1 -0
  150. package/dist/cli/templates/project/minimal.d.ts +6 -0
  151. package/dist/cli/templates/project/minimal.d.ts.map +1 -0
  152. package/dist/cli/templates/project/minimal.js +43 -0
  153. package/dist/cli/templates/project/minimal.js.map +1 -0
  154. package/dist/cli/templates/project/types.d.ts +80 -0
  155. package/dist/cli/templates/project/types.d.ts.map +1 -0
  156. package/dist/cli/templates/project/types.js +7 -0
  157. package/dist/cli/templates/project/types.js.map +1 -0
  158. package/dist/cli/templates/project/website.d.ts +8 -0
  159. package/dist/cli/templates/project/website.d.ts.map +1 -0
  160. package/dist/cli/templates/project/website.js +312 -0
  161. package/dist/cli/templates/project/website.js.map +1 -0
  162. package/dist/cli/utils/fs.d.ts +137 -0
  163. package/dist/cli/utils/fs.d.ts.map +1 -0
  164. package/dist/cli/utils/fs.js +350 -0
  165. package/dist/cli/utils/fs.js.map +1 -0
  166. package/dist/cli/utils/index.d.ts +9 -0
  167. package/dist/cli/utils/index.d.ts.map +1 -0
  168. package/dist/cli/utils/index.js +9 -0
  169. package/dist/cli/utils/index.js.map +1 -0
  170. package/dist/cli/utils/strings.d.ts +86 -0
  171. package/dist/cli/utils/strings.d.ts.map +1 -0
  172. package/dist/cli/utils/strings.js +190 -0
  173. package/dist/cli/utils/strings.js.map +1 -0
  174. package/dist/cli/utils/version.d.ts +15 -0
  175. package/dist/cli/utils/version.d.ts.map +1 -0
  176. package/dist/cli/utils/version.js +38 -0
  177. package/dist/cli/utils/version.js.map +1 -0
  178. package/dist/config/env-validation.d.ts +49 -0
  179. package/dist/config/env-validation.d.ts.map +1 -0
  180. package/dist/config/env-validation.js +77 -0
  181. package/dist/config/env-validation.js.map +1 -0
  182. package/dist/config/env.d.ts +167 -0
  183. package/dist/config/env.d.ts.map +1 -0
  184. package/dist/config/env.js +392 -0
  185. package/dist/config/env.js.map +1 -0
  186. package/dist/config/index.d.ts +168 -0
  187. package/dist/config/index.d.ts.map +1 -0
  188. package/dist/config/index.js +329 -0
  189. package/dist/config/index.js.map +1 -0
  190. package/dist/config/loader.d.ts +81 -0
  191. package/dist/config/loader.d.ts.map +1 -0
  192. package/dist/config/loader.js +242 -0
  193. package/dist/config/loader.js.map +1 -0
  194. package/dist/config/merge.d.ts +66 -0
  195. package/dist/config/merge.d.ts.map +1 -0
  196. package/dist/config/merge.js +226 -0
  197. package/dist/config/merge.js.map +1 -0
  198. package/dist/config/types.d.ts +322 -0
  199. package/dist/config/types.d.ts.map +1 -0
  200. package/dist/config/types.js +443 -0
  201. package/dist/config/types.js.map +1 -0
  202. package/dist/config/validation.d.ts +100 -0
  203. package/dist/config/validation.d.ts.map +1 -0
  204. package/dist/config/validation.js +548 -0
  205. package/dist/config/validation.js.map +1 -0
  206. package/dist/container/forward-ref.d.ts +116 -0
  207. package/dist/container/forward-ref.d.ts.map +1 -0
  208. package/dist/container/forward-ref.js +105 -0
  209. package/dist/container/forward-ref.js.map +1 -0
  210. package/dist/container/index.d.ts +95 -0
  211. package/dist/container/index.d.ts.map +1 -0
  212. package/dist/container/index.js.map +1 -0
  213. package/dist/context/index.d.ts +143 -0
  214. package/dist/context/index.d.ts.map +1 -0
  215. package/dist/context/index.js.map +1 -0
  216. package/dist/database/index.d.ts +219 -0
  217. package/dist/database/index.d.ts.map +1 -0
  218. package/dist/database/index.js.map +1 -0
  219. package/dist/database/migrations/index.d.ts +151 -0
  220. package/dist/database/migrations/index.d.ts.map +1 -0
  221. package/dist/database/migrations/index.js +258 -0
  222. package/dist/database/migrations/index.js.map +1 -0
  223. package/dist/database/orm/builder.d.ts +122 -0
  224. package/dist/database/orm/builder.d.ts.map +1 -0
  225. package/dist/database/orm/builder.js +355 -0
  226. package/dist/database/orm/builder.js.map +1 -0
  227. package/dist/database/orm/casts/index.d.ts +16 -0
  228. package/dist/database/orm/casts/index.d.ts.map +1 -0
  229. package/dist/database/orm/casts/index.js +131 -0
  230. package/dist/database/orm/casts/index.js.map +1 -0
  231. package/dist/database/orm/casts/types.d.ts +16 -0
  232. package/dist/database/orm/casts/types.d.ts.map +1 -0
  233. package/dist/database/orm/casts/types.js +5 -0
  234. package/dist/database/orm/casts/types.js.map +1 -0
  235. package/dist/database/orm/compiler.d.ts +90 -0
  236. package/dist/database/orm/compiler.d.ts.map +1 -0
  237. package/dist/database/orm/compiler.js +218 -0
  238. package/dist/database/orm/compiler.js.map +1 -0
  239. package/dist/database/orm/hooks/index.d.ts +53 -0
  240. package/dist/database/orm/hooks/index.d.ts.map +1 -0
  241. package/dist/database/orm/hooks/index.js +81 -0
  242. package/dist/database/orm/hooks/index.js.map +1 -0
  243. package/dist/database/orm/index.d.ts +21 -0
  244. package/dist/database/orm/index.d.ts.map +1 -0
  245. package/dist/database/orm/index.js +23 -0
  246. package/dist/database/orm/index.js.map +1 -0
  247. package/dist/database/orm/model-registry.d.ts +33 -0
  248. package/dist/database/orm/model-registry.d.ts.map +1 -0
  249. package/dist/database/orm/model-registry.js +49 -0
  250. package/dist/database/orm/model-registry.js.map +1 -0
  251. package/dist/database/orm/model.d.ts +245 -0
  252. package/dist/database/orm/model.d.ts.map +1 -0
  253. package/dist/database/orm/model.js +599 -0
  254. package/dist/database/orm/model.js.map +1 -0
  255. package/dist/database/orm/relationships/base.d.ts +69 -0
  256. package/dist/database/orm/relationships/base.d.ts.map +1 -0
  257. package/dist/database/orm/relationships/base.js +84 -0
  258. package/dist/database/orm/relationships/base.js.map +1 -0
  259. package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
  260. package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
  261. package/dist/database/orm/relationships/belongs-to-many.js +136 -0
  262. package/dist/database/orm/relationships/belongs-to-many.js.map +1 -0
  263. package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
  264. package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
  265. package/dist/database/orm/relationships/belongs-to.js +38 -0
  266. package/dist/database/orm/relationships/belongs-to.js.map +1 -0
  267. package/dist/database/orm/relationships/has-many.d.ts +14 -0
  268. package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
  269. package/dist/database/orm/relationships/has-many.js +35 -0
  270. package/dist/database/orm/relationships/has-many.js.map +1 -0
  271. package/dist/database/orm/relationships/has-one.d.ts +14 -0
  272. package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
  273. package/dist/database/orm/relationships/has-one.js +32 -0
  274. package/dist/database/orm/relationships/has-one.js.map +1 -0
  275. package/dist/database/orm/relationships/index.d.ts +10 -0
  276. package/dist/database/orm/relationships/index.d.ts.map +1 -0
  277. package/dist/database/orm/relationships/index.js +9 -0
  278. package/dist/database/orm/relationships/index.js.map +1 -0
  279. package/dist/database/orm/scopes/index.d.ts +36 -0
  280. package/dist/database/orm/scopes/index.d.ts.map +1 -0
  281. package/dist/database/orm/scopes/index.js +47 -0
  282. package/dist/database/orm/scopes/index.js.map +1 -0
  283. package/dist/database/schema/index.d.ts +155 -0
  284. package/dist/database/schema/index.d.ts.map +1 -0
  285. package/dist/database/schema/index.js +401 -0
  286. package/dist/database/schema/index.js.map +1 -0
  287. package/dist/frontend/api-routes.d.ts +189 -0
  288. package/dist/frontend/api-routes.d.ts.map +1 -0
  289. package/dist/frontend/api-routes.js +548 -0
  290. package/dist/frontend/api-routes.js.map +1 -0
  291. package/dist/frontend/bundler.d.ts +99 -0
  292. package/dist/frontend/bundler.d.ts.map +1 -0
  293. package/dist/frontend/bundler.js +555 -0
  294. package/dist/frontend/bundler.js.map +1 -0
  295. package/dist/frontend/console-client.d.ts +11 -0
  296. package/dist/frontend/console-client.d.ts.map +1 -0
  297. package/dist/frontend/console-client.js +414 -0
  298. package/dist/frontend/console-client.js.map +1 -0
  299. package/dist/frontend/console-stream.d.ts +138 -0
  300. package/dist/frontend/console-stream.d.ts.map +1 -0
  301. package/dist/frontend/console-stream.js +535 -0
  302. package/dist/frontend/console-stream.js.map +1 -0
  303. package/dist/frontend/dev-server.d.ts +174 -0
  304. package/dist/frontend/dev-server.d.ts.map +1 -0
  305. package/dist/frontend/dev-server.js +735 -0
  306. package/dist/frontend/dev-server.js.map +1 -0
  307. package/dist/frontend/file-router.d.ts +170 -0
  308. package/dist/frontend/file-router.d.ts.map +1 -0
  309. package/dist/frontend/file-router.js +531 -0
  310. package/dist/frontend/file-router.js.map +1 -0
  311. package/dist/frontend/frameworks/index.d.ts +41 -0
  312. package/dist/frontend/frameworks/index.d.ts.map +1 -0
  313. package/dist/frontend/frameworks/index.js +87 -0
  314. package/dist/frontend/frameworks/index.js.map +1 -0
  315. package/dist/frontend/frameworks/react.d.ts +32 -0
  316. package/dist/frontend/frameworks/react.d.ts.map +1 -0
  317. package/dist/frontend/frameworks/react.js +66 -0
  318. package/dist/frontend/frameworks/react.js.map +1 -0
  319. package/dist/frontend/frameworks/solid.d.ts +42 -0
  320. package/dist/frontend/frameworks/solid.d.ts.map +1 -0
  321. package/dist/frontend/frameworks/solid.js +84 -0
  322. package/dist/frontend/frameworks/solid.js.map +1 -0
  323. package/dist/frontend/frameworks/svelte.d.ts +57 -0
  324. package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
  325. package/dist/frontend/frameworks/svelte.js +90 -0
  326. package/dist/frontend/frameworks/svelte.js.map +1 -0
  327. package/dist/frontend/frameworks/vue.d.ts +36 -0
  328. package/dist/frontend/frameworks/vue.d.ts.map +1 -0
  329. package/dist/frontend/frameworks/vue.js +72 -0
  330. package/dist/frontend/frameworks/vue.js.map +1 -0
  331. package/dist/frontend/hmr-client.d.ts +22 -0
  332. package/dist/frontend/hmr-client.d.ts.map +1 -0
  333. package/dist/frontend/hmr-client.js +654 -0
  334. package/dist/frontend/hmr-client.js.map +1 -0
  335. package/dist/frontend/hmr.d.ts +185 -0
  336. package/dist/frontend/hmr.d.ts.map +1 -0
  337. package/dist/frontend/hmr.js +619 -0
  338. package/dist/frontend/hmr.js.map +1 -0
  339. package/dist/frontend/index.d.ts +34 -0
  340. package/dist/frontend/index.d.ts.map +1 -0
  341. package/dist/frontend/index.js.map +1 -0
  342. package/dist/frontend/islands.d.ts +135 -0
  343. package/dist/frontend/islands.d.ts.map +1 -0
  344. package/dist/frontend/islands.js +455 -0
  345. package/dist/frontend/islands.js.map +1 -0
  346. package/dist/frontend/isr.d.ts +143 -0
  347. package/dist/frontend/isr.d.ts.map +1 -0
  348. package/dist/frontend/isr.js +440 -0
  349. package/dist/frontend/isr.js.map +1 -0
  350. package/dist/frontend/layout.d.ts +140 -0
  351. package/dist/frontend/layout.d.ts.map +1 -0
  352. package/dist/frontend/layout.js +392 -0
  353. package/dist/frontend/layout.js.map +1 -0
  354. package/dist/frontend/ssr/react.d.ts +118 -0
  355. package/dist/frontend/ssr/react.d.ts.map +1 -0
  356. package/dist/frontend/ssr/react.js +373 -0
  357. package/dist/frontend/ssr/react.js.map +1 -0
  358. package/dist/frontend/ssr/solid.d.ts +141 -0
  359. package/dist/frontend/ssr/solid.d.ts.map +1 -0
  360. package/dist/frontend/ssr/solid.js +440 -0
  361. package/dist/frontend/ssr/solid.js.map +1 -0
  362. package/dist/frontend/ssr/svelte.d.ts +158 -0
  363. package/dist/frontend/ssr/svelte.d.ts.map +1 -0
  364. package/dist/frontend/ssr/svelte.js +439 -0
  365. package/dist/frontend/ssr/svelte.js.map +1 -0
  366. package/dist/frontend/ssr/vue.d.ts +161 -0
  367. package/dist/frontend/ssr/vue.d.ts.map +1 -0
  368. package/dist/frontend/ssr/vue.js +385 -0
  369. package/dist/frontend/ssr/vue.js.map +1 -0
  370. package/dist/frontend/ssr.d.ts +147 -0
  371. package/dist/frontend/ssr.d.ts.map +1 -0
  372. package/dist/frontend/ssr.js +609 -0
  373. package/dist/frontend/ssr.js.map +1 -0
  374. package/dist/frontend/types.d.ts +1902 -0
  375. package/dist/frontend/types.d.ts.map +1 -0
  376. package/dist/frontend/types.js +8 -0
  377. package/dist/frontend/types.js.map +1 -0
  378. package/dist/graphql/built-in-engine.d.ts +36 -0
  379. package/dist/graphql/built-in-engine.d.ts.map +1 -0
  380. package/dist/graphql/built-in-engine.js +443 -0
  381. package/dist/graphql/built-in-engine.js.map +1 -0
  382. package/dist/graphql/context-builder.d.ts +44 -0
  383. package/dist/graphql/context-builder.d.ts.map +1 -0
  384. package/dist/graphql/context-builder.js +91 -0
  385. package/dist/graphql/context-builder.js.map +1 -0
  386. package/dist/graphql/decorators.d.ts +162 -0
  387. package/dist/graphql/decorators.d.ts.map +1 -0
  388. package/dist/graphql/decorators.js +291 -0
  389. package/dist/graphql/decorators.js.map +1 -0
  390. package/dist/graphql/execution-pipeline.d.ts +67 -0
  391. package/dist/graphql/execution-pipeline.d.ts.map +1 -0
  392. package/dist/graphql/execution-pipeline.js +127 -0
  393. package/dist/graphql/execution-pipeline.js.map +1 -0
  394. package/dist/graphql/graphql-module.d.ts +70 -0
  395. package/dist/graphql/graphql-module.d.ts.map +1 -0
  396. package/dist/graphql/graphql-module.js +442 -0
  397. package/dist/graphql/graphql-module.js.map +1 -0
  398. package/dist/graphql/index.d.ts +48 -0
  399. package/dist/graphql/index.d.ts.map +1 -0
  400. package/dist/graphql/index.js.map +1 -0
  401. package/dist/graphql/metadata.d.ts +37 -0
  402. package/dist/graphql/metadata.d.ts.map +1 -0
  403. package/dist/graphql/metadata.js +130 -0
  404. package/dist/graphql/metadata.js.map +1 -0
  405. package/dist/graphql/schema-builder.d.ts +34 -0
  406. package/dist/graphql/schema-builder.d.ts.map +1 -0
  407. package/dist/graphql/schema-builder.js +251 -0
  408. package/dist/graphql/schema-builder.js.map +1 -0
  409. package/dist/graphql/subscription-handler.d.ts +47 -0
  410. package/dist/graphql/subscription-handler.d.ts.map +1 -0
  411. package/dist/graphql/subscription-handler.js +201 -0
  412. package/dist/graphql/subscription-handler.js.map +1 -0
  413. package/dist/graphql/types.d.ts +252 -0
  414. package/dist/graphql/types.d.ts.map +1 -0
  415. package/dist/graphql/types.js +28 -0
  416. package/dist/graphql/types.js.map +1 -0
  417. package/dist/health/index.d.ts +176 -0
  418. package/dist/health/index.d.ts.map +1 -0
  419. package/dist/health/index.js.map +1 -0
  420. package/dist/i18n/engine.d.ts +105 -0
  421. package/dist/i18n/engine.d.ts.map +1 -0
  422. package/dist/i18n/engine.js +248 -0
  423. package/dist/i18n/engine.js.map +1 -0
  424. package/dist/i18n/index.d.ts +13 -0
  425. package/dist/i18n/index.d.ts.map +1 -0
  426. package/dist/i18n/index.js.map +1 -0
  427. package/dist/i18n/loader.d.ts +79 -0
  428. package/dist/i18n/loader.d.ts.map +1 -0
  429. package/dist/i18n/loader.js +192 -0
  430. package/dist/i18n/loader.js.map +1 -0
  431. package/dist/i18n/middleware.d.ts +96 -0
  432. package/dist/i18n/middleware.d.ts.map +1 -0
  433. package/dist/i18n/middleware.js +126 -0
  434. package/dist/i18n/middleware.js.map +1 -0
  435. package/dist/i18n/negotiator.d.ts +84 -0
  436. package/dist/i18n/negotiator.d.ts.map +1 -0
  437. package/dist/i18n/negotiator.js +139 -0
  438. package/dist/i18n/negotiator.js.map +1 -0
  439. package/dist/i18n/types.d.ts +129 -0
  440. package/dist/i18n/types.d.ts.map +1 -0
  441. package/dist/i18n/types.js +8 -0
  442. package/dist/i18n/types.js.map +1 -0
  443. package/dist/index.d.ts +48 -0
  444. package/dist/index.d.ts.map +1 -0
  445. package/dist/index.js.map +1 -0
  446. package/dist/jobs/drivers/memory.d.ts +38 -0
  447. package/dist/jobs/drivers/memory.d.ts.map +1 -0
  448. package/dist/jobs/drivers/memory.js +246 -0
  449. package/dist/jobs/drivers/memory.js.map +1 -0
  450. package/dist/jobs/drivers/redis.d.ts +34 -0
  451. package/dist/jobs/drivers/redis.d.ts.map +1 -0
  452. package/dist/jobs/drivers/redis.js +355 -0
  453. package/dist/jobs/drivers/redis.js.map +1 -0
  454. package/dist/jobs/index.d.ts +12 -0
  455. package/dist/jobs/index.d.ts.map +1 -0
  456. package/dist/jobs/index.js.map +1 -0
  457. package/dist/jobs/queue.d.ts +93 -0
  458. package/dist/jobs/queue.d.ts.map +1 -0
  459. package/dist/jobs/queue.js +233 -0
  460. package/dist/jobs/queue.js.map +1 -0
  461. package/dist/jobs/types.d.ts +193 -0
  462. package/dist/jobs/types.d.ts.map +1 -0
  463. package/dist/jobs/types.js +8 -0
  464. package/dist/jobs/types.js.map +1 -0
  465. package/dist/jobs/worker.d.ts +91 -0
  466. package/dist/jobs/worker.d.ts.map +1 -0
  467. package/dist/jobs/worker.js +300 -0
  468. package/dist/jobs/worker.js.map +1 -0
  469. package/dist/lock/index.d.ts +141 -0
  470. package/dist/lock/index.d.ts.map +1 -0
  471. package/dist/lock/index.js.map +1 -0
  472. package/dist/logger/index.d.ts +156 -0
  473. package/dist/logger/index.d.ts.map +1 -0
  474. package/dist/logger/index.js.map +1 -0
  475. package/dist/logger/transports/index.d.ts +371 -0
  476. package/dist/logger/transports/index.d.ts.map +1 -0
  477. package/dist/logger/transports/index.js +740 -0
  478. package/dist/logger/transports/index.js.map +1 -0
  479. package/dist/metrics/index.d.ts +163 -0
  480. package/dist/metrics/index.d.ts.map +1 -0
  481. package/dist/metrics/index.js.map +1 -0
  482. package/dist/middleware/built-in.d.ts +50 -0
  483. package/dist/middleware/built-in.d.ts.map +1 -0
  484. package/dist/middleware/built-in.js +220 -0
  485. package/dist/middleware/built-in.js.map +1 -0
  486. package/dist/middleware/index.d.ts +40 -0
  487. package/dist/middleware/index.d.ts.map +1 -0
  488. package/dist/middleware/index.js.map +1 -0
  489. package/dist/migrations/index.d.ts +48 -0
  490. package/dist/migrations/index.d.ts.map +1 -0
  491. package/dist/migrations/index.js +3 -0
  492. package/dist/migrations/index.js.map +1 -0
  493. package/dist/modules/filters.d.ts +150 -0
  494. package/dist/modules/filters.d.ts.map +1 -0
  495. package/dist/modules/filters.js +338 -0
  496. package/dist/modules/filters.js.map +1 -0
  497. package/dist/modules/guards.d.ts +188 -0
  498. package/dist/modules/guards.d.ts.map +1 -0
  499. package/dist/modules/guards.js +278 -0
  500. package/dist/modules/guards.js.map +1 -0
  501. package/dist/modules/index.d.ts +266 -0
  502. package/dist/modules/index.d.ts.map +1 -0
  503. package/dist/modules/index.js.map +1 -0
  504. package/dist/modules/interceptors.d.ts +242 -0
  505. package/dist/modules/interceptors.d.ts.map +1 -0
  506. package/dist/modules/interceptors.js +407 -0
  507. package/dist/modules/interceptors.js.map +1 -0
  508. package/dist/modules/lazy.d.ts +187 -0
  509. package/dist/modules/lazy.d.ts.map +1 -0
  510. package/dist/modules/lazy.js +305 -0
  511. package/dist/modules/lazy.js.map +1 -0
  512. package/dist/modules/lifecycle.d.ts +221 -0
  513. package/dist/modules/lifecycle.d.ts.map +1 -0
  514. package/dist/modules/lifecycle.js +314 -0
  515. package/dist/modules/lifecycle.js.map +1 -0
  516. package/dist/modules/metadata.d.ts +32 -0
  517. package/dist/modules/metadata.d.ts.map +1 -0
  518. package/dist/modules/metadata.js +59 -0
  519. package/dist/modules/metadata.js.map +1 -0
  520. package/dist/modules/pipes.d.ts +287 -0
  521. package/dist/modules/pipes.d.ts.map +1 -0
  522. package/dist/modules/pipes.js +443 -0
  523. package/dist/modules/pipes.js.map +1 -0
  524. package/dist/notification/channels/base.d.ts +32 -0
  525. package/dist/notification/channels/base.d.ts.map +1 -0
  526. package/dist/notification/channels/base.js +37 -0
  527. package/dist/notification/channels/base.js.map +1 -0
  528. package/dist/notification/channels/email.d.ts +37 -0
  529. package/dist/notification/channels/email.d.ts.map +1 -0
  530. package/dist/notification/channels/email.js +85 -0
  531. package/dist/notification/channels/email.js.map +1 -0
  532. package/dist/notification/channels/push.d.ts +37 -0
  533. package/dist/notification/channels/push.d.ts.map +1 -0
  534. package/dist/notification/channels/push.js +84 -0
  535. package/dist/notification/channels/push.js.map +1 -0
  536. package/dist/notification/channels/sms.d.ts +37 -0
  537. package/dist/notification/channels/sms.d.ts.map +1 -0
  538. package/dist/notification/channels/sms.js +83 -0
  539. package/dist/notification/channels/sms.js.map +1 -0
  540. package/dist/notification/channels/whatsapp.d.ts +37 -0
  541. package/dist/notification/channels/whatsapp.d.ts.map +1 -0
  542. package/dist/notification/channels/whatsapp.js +81 -0
  543. package/dist/notification/channels/whatsapp.js.map +1 -0
  544. package/dist/notification/index.d.ts +15 -0
  545. package/dist/notification/index.d.ts.map +1 -0
  546. package/dist/notification/index.js.map +1 -0
  547. package/dist/notification/service.d.ts +100 -0
  548. package/dist/notification/service.d.ts.map +1 -0
  549. package/dist/notification/service.js +279 -0
  550. package/dist/notification/service.js.map +1 -0
  551. package/dist/notification/types.d.ts +253 -0
  552. package/dist/notification/types.d.ts.map +1 -0
  553. package/dist/notification/types.js +14 -0
  554. package/dist/notification/types.js.map +1 -0
  555. package/dist/observability/__tests__/observability.test.d.ts +2 -0
  556. package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
  557. package/dist/observability/__tests__/observability.test.js +404 -0
  558. package/dist/observability/__tests__/observability.test.js.map +1 -0
  559. package/dist/observability/breadcrumbs.d.ts +48 -0
  560. package/dist/observability/breadcrumbs.d.ts.map +1 -0
  561. package/dist/observability/breadcrumbs.js +97 -0
  562. package/dist/observability/breadcrumbs.js.map +1 -0
  563. package/dist/observability/index.d.ts +95 -0
  564. package/dist/observability/index.d.ts.map +1 -0
  565. package/dist/observability/index.js.map +1 -0
  566. package/dist/observability/interceptor.d.ts +19 -0
  567. package/dist/observability/interceptor.d.ts.map +1 -0
  568. package/dist/observability/interceptor.js +67 -0
  569. package/dist/observability/interceptor.js.map +1 -0
  570. package/dist/observability/service.d.ts +101 -0
  571. package/dist/observability/service.d.ts.map +1 -0
  572. package/dist/observability/service.js +249 -0
  573. package/dist/observability/service.js.map +1 -0
  574. package/dist/observability/trace.d.ts +21 -0
  575. package/dist/observability/trace.d.ts.map +1 -0
  576. package/dist/observability/trace.js +35 -0
  577. package/dist/observability/trace.js.map +1 -0
  578. package/dist/observability/types.d.ts +172 -0
  579. package/dist/observability/types.d.ts.map +1 -0
  580. package/dist/observability/types.js +8 -0
  581. package/dist/observability/types.js.map +1 -0
  582. package/dist/openapi/decorators.d.ts +173 -0
  583. package/dist/openapi/decorators.d.ts.map +1 -0
  584. package/dist/openapi/decorators.js +276 -0
  585. package/dist/openapi/decorators.js.map +1 -0
  586. package/dist/openapi/document-builder.d.ts +82 -0
  587. package/dist/openapi/document-builder.d.ts.map +1 -0
  588. package/dist/openapi/document-builder.js +228 -0
  589. package/dist/openapi/document-builder.js.map +1 -0
  590. package/dist/openapi/index.d.ts +48 -0
  591. package/dist/openapi/index.d.ts.map +1 -0
  592. package/dist/openapi/index.js.map +1 -0
  593. package/dist/openapi/metadata.d.ts +36 -0
  594. package/dist/openapi/metadata.d.ts.map +1 -0
  595. package/dist/openapi/metadata.js +78 -0
  596. package/dist/openapi/metadata.js.map +1 -0
  597. package/dist/openapi/route-scanner.d.ts +34 -0
  598. package/dist/openapi/route-scanner.d.ts.map +1 -0
  599. package/dist/openapi/route-scanner.js +174 -0
  600. package/dist/openapi/route-scanner.js.map +1 -0
  601. package/dist/openapi/schema-generator.d.ts +53 -0
  602. package/dist/openapi/schema-generator.d.ts.map +1 -0
  603. package/dist/openapi/schema-generator.js +236 -0
  604. package/dist/openapi/schema-generator.js.map +1 -0
  605. package/dist/openapi/swagger-module.d.ts +57 -0
  606. package/dist/openapi/swagger-module.d.ts.map +1 -0
  607. package/dist/openapi/swagger-module.js +143 -0
  608. package/dist/openapi/swagger-module.js.map +1 -0
  609. package/dist/openapi/types.d.ts +344 -0
  610. package/dist/openapi/types.d.ts.map +1 -0
  611. package/dist/openapi/types.js +7 -0
  612. package/dist/openapi/types.js.map +1 -0
  613. package/dist/orm/index.d.ts +10 -0
  614. package/dist/orm/index.d.ts.map +1 -0
  615. package/dist/orm/index.js.map +1 -0
  616. package/dist/router/index.d.ts +73 -0
  617. package/dist/router/index.d.ts.map +1 -0
  618. package/dist/router/index.js.map +1 -0
  619. package/dist/router/linear.d.ts +54 -0
  620. package/dist/router/linear.d.ts.map +1 -0
  621. package/dist/router/linear.js +261 -0
  622. package/dist/router/linear.js.map +1 -0
  623. package/dist/router/regex.d.ts +49 -0
  624. package/dist/router/regex.d.ts.map +1 -0
  625. package/dist/router/regex.js +201 -0
  626. package/dist/router/regex.js.map +1 -0
  627. package/dist/router/tree.d.ts +112 -0
  628. package/dist/router/tree.d.ts.map +1 -0
  629. package/dist/router/tree.js +360 -0
  630. package/dist/router/tree.js.map +1 -0
  631. package/dist/rpc/index.d.ts +321 -0
  632. package/dist/rpc/index.d.ts.map +1 -0
  633. package/dist/rpc/index.js.map +1 -0
  634. package/dist/schema/index.d.ts +10 -0
  635. package/dist/schema/index.d.ts.map +1 -0
  636. package/dist/schema/index.js.map +1 -0
  637. package/dist/security/index.d.ts +126 -0
  638. package/dist/security/index.d.ts.map +1 -0
  639. package/dist/security/index.js +309 -0
  640. package/dist/security/index.js.map +1 -0
  641. package/dist/ssg/index.d.ts +73 -0
  642. package/dist/ssg/index.d.ts.map +1 -0
  643. package/dist/ssg/index.js +464 -0
  644. package/dist/ssg/index.js.map +1 -0
  645. package/dist/storage/index.d.ts +99 -0
  646. package/dist/storage/index.d.ts.map +1 -0
  647. package/dist/storage/index.js +338 -0
  648. package/dist/storage/index.js.map +1 -0
  649. package/dist/telemetry/index.d.ts +376 -0
  650. package/dist/telemetry/index.d.ts.map +1 -0
  651. package/dist/telemetry/index.js.map +1 -0
  652. package/dist/template/index.d.ts +7 -0
  653. package/dist/template/index.d.ts.map +1 -0
  654. package/dist/template/index.js.map +1 -0
  655. package/dist/templates/engine.d.ts +60 -0
  656. package/dist/templates/engine.d.ts.map +1 -0
  657. package/dist/templates/engine.js +177 -0
  658. package/dist/templates/engine.js.map +1 -0
  659. package/dist/templates/index.d.ts +9 -0
  660. package/dist/templates/index.d.ts.map +1 -0
  661. package/dist/templates/index.js.map +1 -0
  662. package/dist/templates/loader.d.ts +45 -0
  663. package/dist/templates/loader.d.ts.map +1 -0
  664. package/dist/templates/loader.js +274 -0
  665. package/dist/templates/loader.js.map +1 -0
  666. package/dist/templates/renderers/markdown.d.ts +46 -0
  667. package/dist/templates/renderers/markdown.d.ts.map +1 -0
  668. package/dist/templates/renderers/markdown.js +181 -0
  669. package/dist/templates/renderers/markdown.js.map +1 -0
  670. package/dist/templates/renderers/simple.d.ts +35 -0
  671. package/dist/templates/renderers/simple.d.ts.map +1 -0
  672. package/dist/templates/renderers/simple.js +245 -0
  673. package/dist/templates/renderers/simple.js.map +1 -0
  674. package/dist/templates/types.d.ts +138 -0
  675. package/dist/templates/types.d.ts.map +1 -0
  676. package/dist/templates/types.js +8 -0
  677. package/dist/templates/types.js.map +1 -0
  678. package/dist/testing/index.d.ts +539 -0
  679. package/dist/testing/index.d.ts.map +1 -0
  680. package/dist/testing/index.js.map +1 -0
  681. package/dist/types/index.d.ts +116 -0
  682. package/dist/types/index.d.ts.map +1 -0
  683. package/dist/types/index.js.map +1 -0
  684. package/dist/validation/index.d.ts +89 -0
  685. package/dist/validation/index.d.ts.map +1 -0
  686. package/dist/validation/index.js +276 -0
  687. package/dist/validation/index.js.map +1 -0
  688. package/dist/validation/schemas.d.ts +283 -0
  689. package/dist/validation/schemas.d.ts.map +1 -0
  690. package/dist/validation/schemas.js +407 -0
  691. package/dist/validation/schemas.js.map +1 -0
  692. package/dist/websocket/index.d.ts +252 -0
  693. package/dist/websocket/index.d.ts.map +1 -0
  694. package/dist/websocket/index.js +749 -0
  695. package/dist/websocket/index.js.map +1 -0
  696. package/llms.txt +1 -1
  697. package/package.json +3 -3
  698. package/src/cli/commands/new.ts +1 -1
  699. package/src/cli/templates/frontend/react.ts +1 -1
  700. package/src/cli/templates/frontend/solid.ts +1 -1
  701. package/src/cli/templates/frontend/svelte.ts +1 -1
  702. package/src/cli/templates/frontend/vue.ts +1 -1
  703. package/src/cli/templates/project/default.ts +1 -1
  704. package/src/cli/templates/project/website.ts +3 -3
  705. package/src/database/migrations/index.ts +8 -0
  706. package/src/migrations/index.ts +40 -1
  707. package/src/types/index.ts +1 -1
  708. package/tsconfig.json +2 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/modules/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC3B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC;AAU/D,KAAK,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAkBvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,SAAS,CAEvE;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,KAAK,EAAE,GAAG,SAAS,CAErB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACxB,GAAG,MAAM,EAAE,KAAK,EAAE,GAChB,eAAe,GAAG,cAAc,CAoBlC;AAID;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,YAAW,WAAW;IAC5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAItC;AA2BD;;GAEG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,MAAM,EAAE,GAAG,SAAS,CAEtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAUzD;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACpB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,OAAO,QAAQ,YAAY,CAAC;IAC3B,UAAU,OAAO;QAChB,IAAI,CAAC,EAAE,IAAI,CAAC;KACZ;CACD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC7C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAkBtC;AAID;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,0CAA0C;IAC1C,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,mCAAmC;IACnC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IACtB,yBAAyB;IACzB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAyElB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,QAAQ,CAclD"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Guards System
3
+ *
4
+ * Guards determine whether a request should be allowed to proceed to the handler.
5
+ * They run before interceptors and pipes in the request pipeline.
6
+ *
7
+ * Execution Order:
8
+ * Incoming Request → Guards → Interceptors → Pipes → Handler
9
+ *
10
+ * If any guard returns false, the request is rejected with 403 Forbidden.
11
+ */
12
+ /**
13
+ * Metadata key for storing guards on classes and methods
14
+ */
15
+ const GUARDS_METADATA_KEY = "guards";
16
+ // WeakMap for storing guards metadata on classes
17
+ const guardsClassMetadata = new WeakMap();
18
+ // WeakMap for storing guards metadata on method prototypes
19
+ const guardsMethodMetadata = new WeakMap();
20
+ /**
21
+ * Set guards on a class constructor
22
+ */
23
+ function setClassGuards(target, guards) {
24
+ guardsClassMetadata.set(target, guards);
25
+ }
26
+ /**
27
+ * Get guards from a class constructor
28
+ */
29
+ export function getClassGuards(target) {
30
+ return guardsClassMetadata.get(target);
31
+ }
32
+ /**
33
+ * Set guards on a method
34
+ */
35
+ function setMethodGuards(target, propertyKey, guards) {
36
+ if (!guardsMethodMetadata.has(target)) {
37
+ guardsMethodMetadata.set(target, new Map());
38
+ }
39
+ guardsMethodMetadata.get(target)?.set(propertyKey, guards);
40
+ }
41
+ /**
42
+ * Get guards from a method
43
+ */
44
+ export function getMethodGuards(target, propertyKey) {
45
+ return guardsMethodMetadata.get(target)?.get(propertyKey);
46
+ }
47
+ // ============= Decorators =============
48
+ /**
49
+ * Decorator to apply guards to a controller class or method.
50
+ * Guards are executed in the order they are provided.
51
+ *
52
+ * @param guards - Guards to apply
53
+ * @returns ClassDecorator & MethodDecorator
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * // Apply to all methods in controller
58
+ * @Controller('users')
59
+ * @UseGuards(AuthGuard)
60
+ * class UsersController {
61
+ * @Get()
62
+ * getUsers() {} // Protected by AuthGuard
63
+ *
64
+ * @Get(':id')
65
+ * @UseGuards(RolesGuard) // Additional guard
66
+ * getUser() {} // Protected by AuthGuard AND RolesGuard
67
+ * }
68
+ * ```
69
+ */
70
+ export function UseGuards(...guards) {
71
+ const decorator = (target, propertyKey, descriptor) => {
72
+ if (propertyKey !== undefined && descriptor !== undefined) {
73
+ // Method decorator
74
+ const targetObj = target;
75
+ const existingGuards = getMethodGuards(targetObj, propertyKey) ?? [];
76
+ setMethodGuards(targetObj, propertyKey, [...existingGuards, ...guards]);
77
+ return descriptor;
78
+ }
79
+ else {
80
+ // Class decorator
81
+ const targetClass = target;
82
+ const existingGuards = getClassGuards(targetClass) ?? [];
83
+ setClassGuards(targetClass, [...existingGuards, ...guards]);
84
+ }
85
+ };
86
+ return decorator;
87
+ }
88
+ // ============= Built-in Guards =============
89
+ /**
90
+ * AuthGuard - Checks for Authorization header
91
+ *
92
+ * This guard verifies that the request has an Authorization header.
93
+ * It does not validate the token - that should be done by a custom guard.
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * @Controller('api')
98
+ * @UseGuards(AuthGuard)
99
+ * class ApiController {
100
+ * @Get('protected')
101
+ * protectedRoute() {} // Requires Authorization header
102
+ * }
103
+ * ```
104
+ */
105
+ export class AuthGuard {
106
+ canActivate(context) {
107
+ const authHeader = context.req.headers.get("Authorization");
108
+ return authHeader !== null && authHeader.length > 0;
109
+ }
110
+ }
111
+ /**
112
+ * Role metadata key for storing required roles on methods
113
+ */
114
+ const ROLES_METADATA_KEY = "roles";
115
+ // WeakMap for storing roles metadata on method prototypes
116
+ const rolesMethodMetadata = new WeakMap();
117
+ /**
118
+ * Set required roles on a method
119
+ */
120
+ function setMethodRoles(target, propertyKey, roles) {
121
+ if (!rolesMethodMetadata.has(target)) {
122
+ rolesMethodMetadata.set(target, new Map());
123
+ }
124
+ rolesMethodMetadata.get(target)?.set(propertyKey, roles);
125
+ }
126
+ /**
127
+ * Get required roles from a method
128
+ */
129
+ export function getMethodRoles(target, propertyKey) {
130
+ return rolesMethodMetadata.get(target)?.get(propertyKey);
131
+ }
132
+ /**
133
+ * Decorator to specify required roles for a route
134
+ * Must be used in conjunction with RolesGuard
135
+ *
136
+ * @param roles - Required roles
137
+ * @returns MethodDecorator
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * @Controller('admin')
142
+ * @UseGuards(AuthGuard, RolesGuard)
143
+ * class AdminController {
144
+ * @Get('users')
145
+ * @Roles('admin', 'moderator')
146
+ * getUsers() {} // Requires 'admin' or 'moderator' role
147
+ * }
148
+ * ```
149
+ */
150
+ export function Roles(...roles) {
151
+ return (target, propertyKey, descriptor) => {
152
+ const targetObj = target;
153
+ setMethodRoles(targetObj, propertyKey, roles);
154
+ return descriptor;
155
+ };
156
+ }
157
+ /**
158
+ * RolesGuard - Checks user roles
159
+ *
160
+ * This guard checks if the authenticated user has the required roles.
161
+ * It should be used after AuthGuard in the guard chain.
162
+ *
163
+ * The user object must be set on the context before this guard runs.
164
+ * This is typically done by an authentication middleware or a previous guard.
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * @Controller('admin')
169
+ * @UseGuards(AuthGuard, RolesGuard)
170
+ * class AdminController {
171
+ * @Get('dashboard')
172
+ * @Roles('admin')
173
+ * getDashboard() {} // Requires 'admin' role
174
+ * }
175
+ * ```
176
+ */
177
+ export class RolesGuard {
178
+ canActivate(context) {
179
+ // Get required roles from context (set by the framework during route matching)
180
+ const requiredRoles = context
181
+ .requiredRoles;
182
+ // If no roles are required, allow access
183
+ if (!requiredRoles || requiredRoles.length === 0) {
184
+ return true;
185
+ }
186
+ // Check if user exists and has at least one required role
187
+ const user = context.user;
188
+ if (!user || !user.roles) {
189
+ return false;
190
+ }
191
+ return requiredRoles.some((role) => user.roles?.includes(role));
192
+ }
193
+ }
194
+ /**
195
+ * Execute guards in order and return whether the request should proceed
196
+ *
197
+ * @param context - Request context
198
+ * @param options - Guard executor options
199
+ * @returns true if all guards pass, false otherwise
200
+ */
201
+ export async function executeGuards(context, options) {
202
+ const { globalGuards = [], classGuards = [], methodGuards = [], resolveGuard, } = options;
203
+ // Combine all guards in execution order
204
+ const allGuards = [...globalGuards, ...classGuards, ...methodGuards];
205
+ // Execute each guard in order
206
+ for (const guard of allGuards) {
207
+ let guardInstance = null;
208
+ // Resolve the guard
209
+ if (typeof guard === "function") {
210
+ // Check if it's a guard function or a class constructor
211
+ const funcGuard = guard;
212
+ if (funcGuard.prototype &&
213
+ typeof funcGuard.prototype === "object" &&
214
+ "canActivate" in funcGuard.prototype) {
215
+ // It's a class constructor - try to resolve from container or create instance
216
+ guardInstance = resolveGuard ? resolveGuard(guard) : null;
217
+ if (!guardInstance) {
218
+ // Create a new instance if not in container
219
+ // Use unknown first to safely convert
220
+ const GuardClass = guard;
221
+ guardInstance = new GuardClass();
222
+ }
223
+ }
224
+ else {
225
+ // It's a guard function
226
+ guardInstance = guard;
227
+ }
228
+ }
229
+ else if (typeof guard === "object" && guard !== null) {
230
+ // It's a token or already an instance
231
+ const objGuard = guard;
232
+ if ("canActivate" in objGuard &&
233
+ typeof objGuard.canActivate === "function") {
234
+ // It's already a CanActivate instance
235
+ guardInstance = guard;
236
+ }
237
+ else {
238
+ // It's a token - try to resolve
239
+ guardInstance = resolveGuard ? resolveGuard(guard) : null;
240
+ }
241
+ }
242
+ if (!guardInstance) {
243
+ console.warn("Guard could not be resolved:", guard);
244
+ continue;
245
+ }
246
+ // Execute the guard
247
+ let result;
248
+ if (typeof guardInstance === "function") {
249
+ // Guard function
250
+ result = await guardInstance(context);
251
+ }
252
+ else {
253
+ // CanActivate instance
254
+ result = await guardInstance.canActivate(context);
255
+ }
256
+ // If any guard returns false, stop and return false
257
+ if (!result) {
258
+ return false;
259
+ }
260
+ }
261
+ return true;
262
+ }
263
+ /**
264
+ * Create a 403 Forbidden response
265
+ */
266
+ export function createForbiddenResponse() {
267
+ return new Response(JSON.stringify({
268
+ statusCode: 403,
269
+ error: "Forbidden",
270
+ message: "Access denied",
271
+ }), {
272
+ status: 403,
273
+ headers: {
274
+ "Content-Type": "application/json",
275
+ },
276
+ });
277
+ }
278
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/modules/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Module System
3
+ *
4
+ * NestJS-inspired module system with dependency injection,
5
+ * controllers, and provider management.
6
+ */
7
+ import { Container, type ForwardRef, type Provider, type Token } from "../container";
8
+ import { Router } from "../router";
9
+ import { type Filter } from "./filters";
10
+ import { type Guard } from "./guards";
11
+ import { type Interceptor } from "./interceptors";
12
+ import { ModuleLoader } from "./lazy";
13
+ import { type ApplicationLifecycle, type BeforeApplicationShutdown, type FullLifecycle, LifecycleHookManager, type OnAfterRequest, type OnApplicationBootstrap, type OnApplicationShutdown, type OnBeforeRequest, type OnModuleDestroy, type OnModuleInit, type OnRequestError, type RequestLifecycle, ShutdownSignalHandler, isBeforeApplicationShutdown, isOnAfterRequest, isOnApplicationBootstrap, isOnApplicationShutdown, isOnBeforeRequest, isOnModuleDestroy, isOnModuleInit, isOnRequestError } from "./lifecycle";
14
+ import { type Pipe } from "./pipes";
15
+ export type Constructor = new (...args: unknown[]) => unknown;
16
+ /**
17
+ * @deprecated Use individual lifecycle hook interfaces instead.
18
+ * Kept for backward compatibility.
19
+ */
20
+ export interface LifecycleHooks {
21
+ onModuleInit?(): void | Promise<void>;
22
+ onModuleDestroy?(): void | Promise<void>;
23
+ onApplicationBootstrap?(): void | Promise<void>;
24
+ onApplicationShutdown?(): void | Promise<void>;
25
+ }
26
+ import { Controller, Injectable, Module, type ModuleMetadata } from "./metadata";
27
+ export { Injectable, Controller, Module, type ModuleMetadata };
28
+ /**
29
+ * Inject a dependency by token.
30
+ * Supports both Token and ForwardRef<Token> for circular dependency resolution.
31
+ *
32
+ * @param token - The injection token or a forward reference to the token
33
+ * @returns A parameter decorator that registers the injection metadata
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Regular injection
38
+ * constructor(@Inject(MY_TOKEN) private service: MyService) {}
39
+ *
40
+ * // Forward reference for circular dependency
41
+ * constructor(@Inject(forwardRef(() => ServiceB)) private serviceB: ServiceB) {}
42
+ * ```
43
+ */
44
+ export declare function Inject(token: Token | ForwardRef<Token>): ParameterDecorator;
45
+ export declare const Get: (path?: string) => MethodDecorator;
46
+ export declare const Post: (path?: string) => MethodDecorator;
47
+ export declare const Put: (path?: string) => MethodDecorator;
48
+ export declare const Patch: (path?: string) => MethodDecorator;
49
+ export declare const Delete: (path?: string) => MethodDecorator;
50
+ export declare const Head: (path?: string) => MethodDecorator;
51
+ export declare const Options: (path?: string) => MethodDecorator;
52
+ export declare class AppModule {
53
+ private moduleClass;
54
+ private metadata;
55
+ private providers;
56
+ private controllers;
57
+ private visitedModules;
58
+ private lazyModules;
59
+ constructor(moduleClass: Constructor);
60
+ /**
61
+ * Process module and its imports recursively
62
+ * Skips lazy modules during initial processing
63
+ */
64
+ private processModule;
65
+ /**
66
+ * Get all collected providers
67
+ */
68
+ getProviders(): Provider[];
69
+ /**
70
+ * Get all collected controllers
71
+ */
72
+ getControllers(): Constructor[];
73
+ /**
74
+ * Get all lazy modules that were skipped during initial processing
75
+ */
76
+ getLazyModules(): Constructor[];
77
+ }
78
+ export declare class Application {
79
+ container: Container;
80
+ router: Router;
81
+ private appModule;
82
+ private lifecycleManager;
83
+ private shutdownHandler;
84
+ private server;
85
+ private providerInstances;
86
+ private controllerInstances;
87
+ private isInitialized;
88
+ private isShuttingDown;
89
+ private globalGuards;
90
+ private globalPipes;
91
+ private globalFilters;
92
+ private globalInterceptors;
93
+ private routeGuardMetadata;
94
+ private routePipeMetadata;
95
+ private routeFilterMetadata;
96
+ private routeInterceptorMetadata;
97
+ private moduleLoader;
98
+ private loadedLazyModules;
99
+ private websocketHandler;
100
+ constructor(moduleClass: Constructor);
101
+ /**
102
+ * Add global guards that apply to all routes
103
+ * Global guards run before controller and method guards
104
+ *
105
+ * @param guards - Guards to add
106
+ * @returns this (for chaining)
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const app = createApp(AppModule);
111
+ * app.useGlobalGuards(AuthGuard);
112
+ * await app.listen(3000);
113
+ * ```
114
+ */
115
+ useGlobalGuards(...guards: Guard[]): this;
116
+ /**
117
+ * Get the list of global guards (live reference).
118
+ * Used by the GraphQL module to run guards on resolver methods.
119
+ */
120
+ getGlobalGuards(): Guard[];
121
+ /**
122
+ * Get the list of global interceptors (live reference).
123
+ * Used by the GraphQL module to run interceptors on resolver methods.
124
+ */
125
+ getGlobalInterceptors(): Interceptor[];
126
+ /**
127
+ * Register a WebSocket handler to be used when the server starts.
128
+ * Called by the GraphQL module to enable subscriptions on the same port.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * app.setWebSocketHandler(subscriptionHandler.getWebSocketConfig());
133
+ * await app.listen(3000);
134
+ * ```
135
+ */
136
+ setWebSocketHandler(handler: Bun.WebSocketHandler<any>): void;
137
+ /**
138
+ * Add global pipes that apply to all parameters
139
+ * Global pipes run before parameter decorator pipes
140
+ *
141
+ * @param pipes - Pipes to add
142
+ * @returns this (for chaining)
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const app = createApp(AppModule);
147
+ * app.useGlobalPipes(new ValidationPipe());
148
+ * await app.listen(3000);
149
+ * ```
150
+ */
151
+ useGlobalPipes(...pipes: Pipe[]): this;
152
+ /**
153
+ * Add global filters that apply to all routes
154
+ * Global filters run after controller and method filters
155
+ *
156
+ * @param filters - Filters to add
157
+ * @returns this (for chaining)
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * const app = createApp(AppModule);
162
+ * app.useGlobalFilters(new AllExceptionsFilter());
163
+ * await app.listen(3000);
164
+ * ```
165
+ */
166
+ useGlobalFilters(...filters: Filter[]): this;
167
+ /**
168
+ * Add global interceptors that apply to all routes
169
+ * Global interceptors run before controller and method interceptors
170
+ *
171
+ * @param interceptors - Interceptors to add
172
+ * @returns this (for chaining)
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const app = createApp(AppModule);
177
+ * app.useGlobalInterceptors(new LoggingInterceptor());
178
+ * await app.listen(3000);
179
+ * ```
180
+ */
181
+ useGlobalInterceptors(...interceptors: Interceptor[]): this;
182
+ /**
183
+ * Register all providers in the container
184
+ */
185
+ private registerProviders;
186
+ /**
187
+ * Resolve all providers and register them with lifecycle manager
188
+ */
189
+ private resolveProviders;
190
+ /**
191
+ * Register all controllers and their routes
192
+ */
193
+ private registerControllers;
194
+ /**
195
+ * Register a single controller and its routes
196
+ */
197
+ private registerController;
198
+ /**
199
+ * Initialize the application
200
+ *
201
+ * Execution order:
202
+ * 1. Module Registration
203
+ * 2. Provider Resolution
204
+ * 3. onModuleInit() for each provider
205
+ * 4. Controller Registration
206
+ * 5. onApplicationBootstrap() for each provider
207
+ */
208
+ init(): Promise<void>;
209
+ /**
210
+ * Load a lazy module dynamically
211
+ * This is called by the ModuleLoader service when a lazy module is loaded
212
+ */
213
+ private loadLazyModule;
214
+ /**
215
+ * Get the ModuleLoader service for loading lazy modules
216
+ */
217
+ getModuleLoader(): ModuleLoader;
218
+ /**
219
+ * Setup graceful shutdown handlers
220
+ */
221
+ private setupShutdownHandlers;
222
+ /**
223
+ * Perform graceful shutdown
224
+ *
225
+ * Execution order:
226
+ * 1. Stop accepting new requests
227
+ * 2. beforeApplicationShutdown(signal)
228
+ * 3. Drain existing requests
229
+ * 4. onModuleDestroy() for each provider
230
+ * 5. onApplicationShutdown(signal)
231
+ */
232
+ shutdown(signal?: string): Promise<void>;
233
+ /**
234
+ * Start the HTTP server
235
+ */
236
+ listen(port?: number, hostname?: string): Promise<void>;
237
+ /**
238
+ * Handle request directly (for testing)
239
+ */
240
+ handle(request: Request): Promise<Response>;
241
+ /**
242
+ * Get the lifecycle manager for this application
243
+ */
244
+ getLifecycleManager(): LifecycleHookManager;
245
+ /**
246
+ * Check if the application is shutting down
247
+ */
248
+ isShuttingDownNow(): boolean;
249
+ /**
250
+ * Handle an exception using the filters system
251
+ * Filters are checked in order: method → class → global
252
+ */
253
+ private handleException;
254
+ }
255
+ /**
256
+ * Create an application from a module
257
+ */
258
+ export declare function createApp(moduleClass: Constructor): Application;
259
+ export { LifecycleHookManager, ShutdownSignalHandler, type OnModuleInit, type OnApplicationBootstrap, type OnModuleDestroy, type BeforeApplicationShutdown, type OnApplicationShutdown, type OnBeforeRequest, type OnAfterRequest, type OnRequestError, type ApplicationLifecycle, type RequestLifecycle, type FullLifecycle, isOnModuleInit, isOnApplicationBootstrap, isOnModuleDestroy, isBeforeApplicationShutdown, isOnApplicationShutdown, isOnBeforeRequest, isOnAfterRequest, isOnRequestError, };
260
+ export { type CanActivate, type GuardFn, type Guard, type User, UseGuards, AuthGuard, RolesGuard, Roles, getClassGuards, getMethodGuards, getMethodRoles, executeGuards, createForbiddenResponse, } from "./guards";
261
+ export { type PipeTransform, type PipeFn, type Pipe, type PipeContext, type ParameterMetadata, type ParameterPipeMetadata, UsePipes, Body, Query, Param, ValidationPipe, ParseIntPipe, ParseFloatPipe, ParseBoolPipe, DefaultValuePipe, TrimPipe, ParseJsonPipe, ParseArrayPipe, getMethodPipes, executePipes, extractParameterValue, createBadRequestResponse, isPipeTransform, isPipeFn, } from "./pipes";
262
+ export { type ExceptionFilter, type FilterFn, type Filter, type ExecuteFiltersOptions, UseFilters, Catch, getClassFilters, getMethodFilters, getCatchType, canHandleException, isExceptionFilter, isFilterFn, executeFilter, findAndExecuteFilter, HttpExceptionFilter, ValidationFilter, NotFoundFilter, AllExceptionsFilter, createDefaultErrorResponse, createInternalErrorResponse, } from "./filters";
263
+ export { type NestInterceptor, type InterceptorFn, type Interceptor, type CallHandler, type TransformResponse, type InterceptorExecutorOptions, UseInterceptors, LoggingInterceptor, TransformInterceptor, TimeoutInterceptor, CacheInterceptor, HeaderInterceptor, getClassInterceptors, getMethodInterceptors, executeInterceptors, isNestInterceptor, isInterceptorFn, } from "./interceptors";
264
+ export { type LazyModuleLoader, type Constructor as LazyModuleConstructor, type ModuleLoaderFn, type LazyModuleMetadata, type LoadModuleOptions, LazyModuleLoaderImpl, LazyModule, ModuleLoader, MODULE_LOADER_TOKEN, getLazyMetadata, isLazyModule, LazyModuleRegistry, createLazyLoader, areAllLazyModulesLoaded, getUnloadedLazyModules, } from "./lazy";
265
+ export { type ForwardRef, forwardRef, isForwardRef, resolveForwardRef, } from "../container";
266
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"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"}