@buenojs/bueno 0.8.6 → 0.8.8

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 (398) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/README.md +132 -15
  3. package/dist/cache/index.d.ts +187 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cli/bin.d.ts +8 -0
  6. package/dist/cli/bin.d.ts.map +1 -0
  7. package/dist/cli/bin.js +483 -155
  8. package/dist/cli/commands/add-frontend.d.ts +7 -0
  9. package/dist/cli/commands/add-frontend.d.ts.map +1 -0
  10. package/dist/cli/commands/build.d.ts +7 -0
  11. package/dist/cli/commands/build.d.ts.map +1 -0
  12. package/dist/cli/commands/dev.d.ts +7 -0
  13. package/dist/cli/commands/dev.d.ts.map +1 -0
  14. package/dist/cli/commands/generate.d.ts +7 -0
  15. package/dist/cli/commands/generate.d.ts.map +1 -0
  16. package/dist/cli/commands/help.d.ts +7 -0
  17. package/dist/cli/commands/help.d.ts.map +1 -0
  18. package/dist/cli/commands/index.d.ts +59 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/migration.d.ts +7 -0
  21. package/dist/cli/commands/migration.d.ts.map +1 -0
  22. package/dist/cli/commands/new.d.ts +7 -0
  23. package/dist/cli/commands/new.d.ts.map +1 -0
  24. package/dist/cli/commands/start.d.ts +7 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -0
  26. package/dist/cli/core/args.d.ts +61 -0
  27. package/dist/cli/core/args.d.ts.map +1 -0
  28. package/dist/cli/core/console.d.ts +135 -0
  29. package/dist/cli/core/console.d.ts.map +1 -0
  30. package/dist/cli/core/index.d.ts +10 -0
  31. package/dist/cli/core/index.d.ts.map +1 -0
  32. package/dist/cli/core/prompt.d.ts +63 -0
  33. package/dist/cli/core/prompt.d.ts.map +1 -0
  34. package/dist/cli/core/spinner.d.ts +111 -0
  35. package/dist/cli/core/spinner.d.ts.map +1 -0
  36. package/dist/cli/index.d.ts +47 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/templates/database/index.d.ts +24 -0
  39. package/dist/cli/templates/database/index.d.ts.map +1 -0
  40. package/dist/cli/templates/database/mysql.d.ts +6 -0
  41. package/dist/cli/templates/database/mysql.d.ts.map +1 -0
  42. package/dist/cli/templates/database/none.d.ts +8 -0
  43. package/dist/cli/templates/database/none.d.ts.map +1 -0
  44. package/dist/cli/templates/database/postgresql.d.ts +6 -0
  45. package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
  46. package/dist/cli/templates/database/sqlite.d.ts +6 -0
  47. package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
  48. package/dist/cli/templates/deploy.d.ts +41 -0
  49. package/dist/cli/templates/deploy.d.ts.map +1 -0
  50. package/dist/cli/templates/docker.d.ts +30 -0
  51. package/dist/cli/templates/docker.d.ts.map +1 -0
  52. package/dist/cli/templates/frontend/index.d.ts +25 -0
  53. package/dist/cli/templates/frontend/index.d.ts.map +1 -0
  54. package/dist/cli/templates/frontend/none.d.ts +8 -0
  55. package/dist/cli/templates/frontend/none.d.ts.map +1 -0
  56. package/dist/cli/templates/frontend/react.d.ts +6 -0
  57. package/dist/cli/templates/frontend/react.d.ts.map +1 -0
  58. package/dist/cli/templates/frontend/solid.d.ts +6 -0
  59. package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
  60. package/dist/cli/templates/frontend/svelte.d.ts +6 -0
  61. package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
  62. package/dist/cli/templates/frontend/vue.d.ts +6 -0
  63. package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
  64. package/dist/cli/templates/generators/index.d.ts +29 -0
  65. package/dist/cli/templates/generators/index.d.ts.map +1 -0
  66. package/dist/cli/templates/generators/types.d.ts +32 -0
  67. package/dist/cli/templates/generators/types.d.ts.map +1 -0
  68. package/dist/cli/templates/index.d.ts +12 -0
  69. package/dist/cli/templates/index.d.ts.map +1 -0
  70. package/dist/cli/templates/project/api.d.ts +6 -0
  71. package/dist/cli/templates/project/api.d.ts.map +1 -0
  72. package/dist/cli/templates/project/default.d.ts +6 -0
  73. package/dist/cli/templates/project/default.d.ts.map +1 -0
  74. package/dist/cli/templates/project/fullstack.d.ts +14 -0
  75. package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
  76. package/dist/cli/templates/project/index.d.ts +26 -0
  77. package/dist/cli/templates/project/index.d.ts.map +1 -0
  78. package/dist/cli/templates/project/minimal.d.ts +6 -0
  79. package/dist/cli/templates/project/minimal.d.ts.map +1 -0
  80. package/dist/cli/templates/project/types.d.ts +80 -0
  81. package/dist/cli/templates/project/types.d.ts.map +1 -0
  82. package/dist/cli/templates/project/website.d.ts +8 -0
  83. package/dist/cli/templates/project/website.d.ts.map +1 -0
  84. package/dist/cli/utils/fs.d.ts +137 -0
  85. package/dist/cli/utils/fs.d.ts.map +1 -0
  86. package/dist/cli/utils/index.d.ts +9 -0
  87. package/dist/cli/utils/index.d.ts.map +1 -0
  88. package/dist/cli/utils/strings.d.ts +86 -0
  89. package/dist/cli/utils/strings.d.ts.map +1 -0
  90. package/dist/cli/utils/version.d.ts +15 -0
  91. package/dist/cli/utils/version.d.ts.map +1 -0
  92. package/dist/config/env-validation.d.ts +49 -0
  93. package/dist/config/env-validation.d.ts.map +1 -0
  94. package/dist/config/env.d.ts +167 -0
  95. package/dist/config/env.d.ts.map +1 -0
  96. package/dist/config/index.d.ts +168 -0
  97. package/dist/config/index.d.ts.map +1 -0
  98. package/dist/config/loader.d.ts +81 -0
  99. package/dist/config/loader.d.ts.map +1 -0
  100. package/dist/config/merge.d.ts +66 -0
  101. package/dist/config/merge.d.ts.map +1 -0
  102. package/dist/config/types.d.ts +322 -0
  103. package/dist/config/types.d.ts.map +1 -0
  104. package/dist/config/validation.d.ts +100 -0
  105. package/dist/config/validation.d.ts.map +1 -0
  106. package/dist/container/forward-ref.d.ts +116 -0
  107. package/dist/container/forward-ref.d.ts.map +1 -0
  108. package/dist/container/index.d.ts +95 -0
  109. package/dist/container/index.d.ts.map +1 -0
  110. package/dist/context/index.d.ts +143 -0
  111. package/dist/context/index.d.ts.map +1 -0
  112. package/dist/database/index.d.ts +219 -0
  113. package/dist/database/index.d.ts.map +1 -0
  114. package/dist/database/migrations/index.d.ts +146 -0
  115. package/dist/database/migrations/index.d.ts.map +1 -0
  116. package/dist/database/orm/builder.d.ts +122 -0
  117. package/dist/database/orm/builder.d.ts.map +1 -0
  118. package/dist/database/orm/casts/index.d.ts +16 -0
  119. package/dist/database/orm/casts/index.d.ts.map +1 -0
  120. package/dist/database/orm/casts/types.d.ts +16 -0
  121. package/dist/database/orm/casts/types.d.ts.map +1 -0
  122. package/dist/database/orm/compiler.d.ts +90 -0
  123. package/dist/database/orm/compiler.d.ts.map +1 -0
  124. package/dist/database/orm/hooks/index.d.ts +53 -0
  125. package/dist/database/orm/hooks/index.d.ts.map +1 -0
  126. package/dist/database/orm/index.d.ts +21 -0
  127. package/dist/database/orm/index.d.ts.map +1 -0
  128. package/dist/database/orm/model-registry.d.ts +33 -0
  129. package/dist/database/orm/model-registry.d.ts.map +1 -0
  130. package/dist/database/orm/model.d.ts +245 -0
  131. package/dist/database/orm/model.d.ts.map +1 -0
  132. package/dist/database/orm/relationships/base.d.ts +69 -0
  133. package/dist/database/orm/relationships/base.d.ts.map +1 -0
  134. package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
  135. package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
  136. package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
  137. package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
  138. package/dist/database/orm/relationships/has-many.d.ts +14 -0
  139. package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
  140. package/dist/database/orm/relationships/has-one.d.ts +14 -0
  141. package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
  142. package/dist/database/orm/relationships/index.d.ts +10 -0
  143. package/dist/database/orm/relationships/index.d.ts.map +1 -0
  144. package/dist/database/orm/scopes/index.d.ts +36 -0
  145. package/dist/database/orm/scopes/index.d.ts.map +1 -0
  146. package/dist/database/schema/index.d.ts +155 -0
  147. package/dist/database/schema/index.d.ts.map +1 -0
  148. package/dist/events/__tests__/event-system.test.d.ts +2 -0
  149. package/dist/events/__tests__/event-system.test.d.ts.map +1 -0
  150. package/dist/events/config.d.ts +16 -0
  151. package/dist/events/config.d.ts.map +1 -0
  152. package/dist/events/example-usage.d.ts +12 -0
  153. package/dist/events/example-usage.d.ts.map +1 -0
  154. package/dist/events/index.d.ts +27 -0
  155. package/dist/events/index.d.ts.map +1 -0
  156. package/dist/events/manager.d.ts +33 -0
  157. package/dist/events/manager.d.ts.map +1 -0
  158. package/dist/events/registry.d.ts +31 -0
  159. package/dist/events/registry.d.ts.map +1 -0
  160. package/dist/events/types.d.ts +105 -0
  161. package/dist/events/types.d.ts.map +1 -0
  162. package/dist/frontend/api-routes.d.ts +189 -0
  163. package/dist/frontend/api-routes.d.ts.map +1 -0
  164. package/dist/frontend/bundler.d.ts +99 -0
  165. package/dist/frontend/bundler.d.ts.map +1 -0
  166. package/dist/frontend/console-client.d.ts +11 -0
  167. package/dist/frontend/console-client.d.ts.map +1 -0
  168. package/dist/frontend/console-stream.d.ts +138 -0
  169. package/dist/frontend/console-stream.d.ts.map +1 -0
  170. package/dist/frontend/dev-server.d.ts +174 -0
  171. package/dist/frontend/dev-server.d.ts.map +1 -0
  172. package/dist/frontend/file-router.d.ts +170 -0
  173. package/dist/frontend/file-router.d.ts.map +1 -0
  174. package/dist/frontend/frameworks/index.d.ts +41 -0
  175. package/dist/frontend/frameworks/index.d.ts.map +1 -0
  176. package/dist/frontend/frameworks/react.d.ts +32 -0
  177. package/dist/frontend/frameworks/react.d.ts.map +1 -0
  178. package/dist/frontend/frameworks/solid.d.ts +42 -0
  179. package/dist/frontend/frameworks/solid.d.ts.map +1 -0
  180. package/dist/frontend/frameworks/svelte.d.ts +57 -0
  181. package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
  182. package/dist/frontend/frameworks/vue.d.ts +36 -0
  183. package/dist/frontend/frameworks/vue.d.ts.map +1 -0
  184. package/dist/frontend/hmr-client.d.ts +22 -0
  185. package/dist/frontend/hmr-client.d.ts.map +1 -0
  186. package/dist/frontend/hmr.d.ts +185 -0
  187. package/dist/frontend/hmr.d.ts.map +1 -0
  188. package/dist/frontend/index.d.ts +34 -0
  189. package/dist/frontend/index.d.ts.map +1 -0
  190. package/dist/frontend/islands.d.ts +135 -0
  191. package/dist/frontend/islands.d.ts.map +1 -0
  192. package/dist/frontend/isr.d.ts +143 -0
  193. package/dist/frontend/isr.d.ts.map +1 -0
  194. package/dist/frontend/layout.d.ts +140 -0
  195. package/dist/frontend/layout.d.ts.map +1 -0
  196. package/dist/frontend/ssr/react.d.ts +118 -0
  197. package/dist/frontend/ssr/react.d.ts.map +1 -0
  198. package/dist/frontend/ssr/solid.d.ts +141 -0
  199. package/dist/frontend/ssr/solid.d.ts.map +1 -0
  200. package/dist/frontend/ssr/svelte.d.ts +158 -0
  201. package/dist/frontend/ssr/svelte.d.ts.map +1 -0
  202. package/dist/frontend/ssr/vue.d.ts +161 -0
  203. package/dist/frontend/ssr/vue.d.ts.map +1 -0
  204. package/dist/frontend/ssr.d.ts +147 -0
  205. package/dist/frontend/ssr.d.ts.map +1 -0
  206. package/dist/frontend/types.d.ts +1902 -0
  207. package/dist/frontend/types.d.ts.map +1 -0
  208. package/dist/graphql/built-in-engine.d.ts +36 -0
  209. package/dist/graphql/built-in-engine.d.ts.map +1 -0
  210. package/dist/graphql/context-builder.d.ts +44 -0
  211. package/dist/graphql/context-builder.d.ts.map +1 -0
  212. package/dist/graphql/decorators.d.ts +162 -0
  213. package/dist/graphql/decorators.d.ts.map +1 -0
  214. package/dist/graphql/execution-pipeline.d.ts +67 -0
  215. package/dist/graphql/execution-pipeline.d.ts.map +1 -0
  216. package/dist/graphql/graphql-module.d.ts +70 -0
  217. package/dist/graphql/graphql-module.d.ts.map +1 -0
  218. package/dist/graphql/index.d.ts +48 -0
  219. package/dist/graphql/index.d.ts.map +1 -0
  220. package/dist/graphql/metadata.d.ts +37 -0
  221. package/dist/graphql/metadata.d.ts.map +1 -0
  222. package/dist/graphql/schema-builder.d.ts +34 -0
  223. package/dist/graphql/schema-builder.d.ts.map +1 -0
  224. package/dist/graphql/subscription-handler.d.ts +47 -0
  225. package/dist/graphql/subscription-handler.d.ts.map +1 -0
  226. package/dist/graphql/types.d.ts +252 -0
  227. package/dist/graphql/types.d.ts.map +1 -0
  228. package/dist/health/index.d.ts +176 -0
  229. package/dist/health/index.d.ts.map +1 -0
  230. package/dist/i18n/engine.d.ts +105 -0
  231. package/dist/i18n/engine.d.ts.map +1 -0
  232. package/dist/i18n/index.d.ts +13 -0
  233. package/dist/i18n/index.d.ts.map +1 -0
  234. package/dist/i18n/loader.d.ts +79 -0
  235. package/dist/i18n/loader.d.ts.map +1 -0
  236. package/dist/i18n/middleware.d.ts +96 -0
  237. package/dist/i18n/middleware.d.ts.map +1 -0
  238. package/dist/i18n/negotiator.d.ts +84 -0
  239. package/dist/i18n/negotiator.d.ts.map +1 -0
  240. package/dist/i18n/types.d.ts +129 -0
  241. package/dist/i18n/types.d.ts.map +1 -0
  242. package/dist/index.d.ts +48 -0
  243. package/dist/index.d.ts.map +1 -0
  244. package/dist/jobs/drivers/memory.d.ts +38 -0
  245. package/dist/jobs/drivers/memory.d.ts.map +1 -0
  246. package/dist/jobs/drivers/redis.d.ts +34 -0
  247. package/dist/jobs/drivers/redis.d.ts.map +1 -0
  248. package/dist/jobs/index.d.ts +12 -0
  249. package/dist/jobs/index.d.ts.map +1 -0
  250. package/dist/jobs/queue.d.ts +93 -0
  251. package/dist/jobs/queue.d.ts.map +1 -0
  252. package/dist/jobs/types.d.ts +193 -0
  253. package/dist/jobs/types.d.ts.map +1 -0
  254. package/dist/jobs/worker.d.ts +91 -0
  255. package/dist/jobs/worker.d.ts.map +1 -0
  256. package/dist/lock/index.d.ts +141 -0
  257. package/dist/lock/index.d.ts.map +1 -0
  258. package/dist/logger/index.d.ts +156 -0
  259. package/dist/logger/index.d.ts.map +1 -0
  260. package/dist/logger/transports/index.d.ts +371 -0
  261. package/dist/logger/transports/index.d.ts.map +1 -0
  262. package/dist/metrics/index.d.ts +163 -0
  263. package/dist/metrics/index.d.ts.map +1 -0
  264. package/dist/middleware/built-in.d.ts +50 -0
  265. package/dist/middleware/built-in.d.ts.map +1 -0
  266. package/dist/middleware/index.d.ts +40 -0
  267. package/dist/middleware/index.d.ts.map +1 -0
  268. package/dist/migrations/index.d.ts +10 -0
  269. package/dist/migrations/index.d.ts.map +1 -0
  270. package/dist/modules/filters.d.ts +150 -0
  271. package/dist/modules/filters.d.ts.map +1 -0
  272. package/dist/modules/guards.d.ts +188 -0
  273. package/dist/modules/guards.d.ts.map +1 -0
  274. package/dist/modules/index.d.ts +266 -0
  275. package/dist/modules/index.d.ts.map +1 -0
  276. package/dist/modules/interceptors.d.ts +242 -0
  277. package/dist/modules/interceptors.d.ts.map +1 -0
  278. package/dist/modules/lazy.d.ts +187 -0
  279. package/dist/modules/lazy.d.ts.map +1 -0
  280. package/dist/modules/lifecycle.d.ts +221 -0
  281. package/dist/modules/lifecycle.d.ts.map +1 -0
  282. package/dist/modules/metadata.d.ts +32 -0
  283. package/dist/modules/metadata.d.ts.map +1 -0
  284. package/dist/modules/pipes.d.ts +287 -0
  285. package/dist/modules/pipes.d.ts.map +1 -0
  286. package/dist/notification/channels/base.d.ts +32 -0
  287. package/dist/notification/channels/base.d.ts.map +1 -0
  288. package/dist/notification/channels/email.d.ts +37 -0
  289. package/dist/notification/channels/email.d.ts.map +1 -0
  290. package/dist/notification/channels/push.d.ts +37 -0
  291. package/dist/notification/channels/push.d.ts.map +1 -0
  292. package/dist/notification/channels/sms.d.ts +37 -0
  293. package/dist/notification/channels/sms.d.ts.map +1 -0
  294. package/dist/notification/channels/whatsapp.d.ts +37 -0
  295. package/dist/notification/channels/whatsapp.d.ts.map +1 -0
  296. package/dist/notification/index.d.ts +15 -0
  297. package/dist/notification/index.d.ts.map +1 -0
  298. package/dist/notification/service.d.ts +100 -0
  299. package/dist/notification/service.d.ts.map +1 -0
  300. package/dist/notification/types.d.ts +253 -0
  301. package/dist/notification/types.d.ts.map +1 -0
  302. package/dist/observability/__tests__/observability.test.d.ts +2 -0
  303. package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
  304. package/dist/observability/breadcrumbs.d.ts +48 -0
  305. package/dist/observability/breadcrumbs.d.ts.map +1 -0
  306. package/dist/observability/index.d.ts +95 -0
  307. package/dist/observability/index.d.ts.map +1 -0
  308. package/dist/observability/interceptor.d.ts +19 -0
  309. package/dist/observability/interceptor.d.ts.map +1 -0
  310. package/dist/observability/service.d.ts +101 -0
  311. package/dist/observability/service.d.ts.map +1 -0
  312. package/dist/observability/trace.d.ts +21 -0
  313. package/dist/observability/trace.d.ts.map +1 -0
  314. package/dist/observability/types.d.ts +172 -0
  315. package/dist/observability/types.d.ts.map +1 -0
  316. package/dist/openapi/__tests__/decorators.test.d.ts +2 -0
  317. package/dist/openapi/__tests__/decorators.test.d.ts.map +1 -0
  318. package/dist/openapi/__tests__/document-builder.test.d.ts +2 -0
  319. package/dist/openapi/__tests__/document-builder.test.d.ts.map +1 -0
  320. package/dist/openapi/__tests__/route-scanner.test.d.ts +2 -0
  321. package/dist/openapi/__tests__/route-scanner.test.d.ts.map +1 -0
  322. package/dist/openapi/__tests__/schema-generator.test.d.ts +2 -0
  323. package/dist/openapi/__tests__/schema-generator.test.d.ts.map +1 -0
  324. package/dist/openapi/decorators.d.ts +173 -0
  325. package/dist/openapi/decorators.d.ts.map +1 -0
  326. package/dist/openapi/document-builder.d.ts +82 -0
  327. package/dist/openapi/document-builder.d.ts.map +1 -0
  328. package/dist/openapi/index.d.ts +48 -0
  329. package/dist/openapi/index.d.ts.map +1 -0
  330. package/dist/openapi/metadata.d.ts +36 -0
  331. package/dist/openapi/metadata.d.ts.map +1 -0
  332. package/dist/openapi/route-scanner.d.ts +34 -0
  333. package/dist/openapi/route-scanner.d.ts.map +1 -0
  334. package/dist/openapi/schema-generator.d.ts +53 -0
  335. package/dist/openapi/schema-generator.d.ts.map +1 -0
  336. package/dist/openapi/swagger-module.d.ts +57 -0
  337. package/dist/openapi/swagger-module.d.ts.map +1 -0
  338. package/dist/openapi/types.d.ts +344 -0
  339. package/dist/openapi/types.d.ts.map +1 -0
  340. package/dist/orm/index.d.ts +10 -0
  341. package/dist/orm/index.d.ts.map +1 -0
  342. package/dist/router/index.d.ts +73 -0
  343. package/dist/router/index.d.ts.map +1 -0
  344. package/dist/router/linear.d.ts +54 -0
  345. package/dist/router/linear.d.ts.map +1 -0
  346. package/dist/router/regex.d.ts +49 -0
  347. package/dist/router/regex.d.ts.map +1 -0
  348. package/dist/router/tree.d.ts +112 -0
  349. package/dist/router/tree.d.ts.map +1 -0
  350. package/dist/rpc/index.d.ts +321 -0
  351. package/dist/rpc/index.d.ts.map +1 -0
  352. package/dist/schema/index.d.ts +10 -0
  353. package/dist/schema/index.d.ts.map +1 -0
  354. package/dist/security/index.d.ts +126 -0
  355. package/dist/security/index.d.ts.map +1 -0
  356. package/dist/ssg/index.d.ts +73 -0
  357. package/dist/ssg/index.d.ts.map +1 -0
  358. package/dist/storage/index.d.ts +99 -0
  359. package/dist/storage/index.d.ts.map +1 -0
  360. package/dist/telemetry/index.d.ts +376 -0
  361. package/dist/telemetry/index.d.ts.map +1 -0
  362. package/dist/template/index.d.ts +7 -0
  363. package/dist/template/index.d.ts.map +1 -0
  364. package/dist/templates/engine.d.ts +60 -0
  365. package/dist/templates/engine.d.ts.map +1 -0
  366. package/dist/templates/index.d.ts +9 -0
  367. package/dist/templates/index.d.ts.map +1 -0
  368. package/dist/templates/loader.d.ts +45 -0
  369. package/dist/templates/loader.d.ts.map +1 -0
  370. package/dist/templates/renderers/markdown.d.ts +46 -0
  371. package/dist/templates/renderers/markdown.d.ts.map +1 -0
  372. package/dist/templates/renderers/simple.d.ts +35 -0
  373. package/dist/templates/renderers/simple.d.ts.map +1 -0
  374. package/dist/templates/types.d.ts +138 -0
  375. package/dist/templates/types.d.ts.map +1 -0
  376. package/dist/testing/index.d.ts +539 -0
  377. package/dist/testing/index.d.ts.map +1 -0
  378. package/dist/types/index.d.ts +116 -0
  379. package/dist/types/index.d.ts.map +1 -0
  380. package/dist/validation/index.d.ts +89 -0
  381. package/dist/validation/index.d.ts.map +1 -0
  382. package/dist/validation/schemas.d.ts +243 -0
  383. package/dist/validation/schemas.d.ts.map +1 -0
  384. package/dist/websocket/index.d.ts +252 -0
  385. package/dist/websocket/index.d.ts.map +1 -0
  386. package/package.json +3 -3
  387. package/src/cli/commands/add-frontend.ts +444 -0
  388. package/src/cli/commands/new.ts +23 -0
  389. package/src/cli/index.ts +1 -0
  390. package/src/cli/templates/frontend/react.ts +2 -1
  391. package/src/cli/templates/frontend/solid.ts +2 -1
  392. package/src/cli/templates/frontend/svelte.ts +2 -1
  393. package/src/cli/templates/frontend/vue.ts +2 -1
  394. package/src/cli/templates/project/api.ts +1 -1
  395. package/src/cli/templates/project/default.ts +1 -1
  396. package/src/cli/templates/project/fullstack.ts +14 -104
  397. package/src/cli/templates/project/website.ts +62 -11
  398. package/tsconfig.declaration.json +14 -0
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Context System
3
+ *
4
+ * Provides a rich request/response context for route handlers
5
+ * with convenient methods for accessing request data and building responses.
6
+ */
7
+ import type { PathParams, StatusCode } from "../types";
8
+ interface ContextVariables {
9
+ [key: string]: unknown;
10
+ }
11
+ export declare class Context<V extends ContextVariables = ContextVariables> {
12
+ /** Raw Request object */
13
+ readonly req: Request;
14
+ /** Path parameters extracted from route */
15
+ readonly params: PathParams;
16
+ /** Query parameters parsed from URL */
17
+ readonly query: Record<string, string>;
18
+ /** Cached cookies */
19
+ private _cookies?;
20
+ /** Cached body */
21
+ private _bodyCache?;
22
+ /** Response state for building responses */
23
+ private _response;
24
+ /** Context variables */
25
+ private _variables;
26
+ constructor(request: Request, params?: PathParams);
27
+ /** HTTP method */
28
+ get method(): string;
29
+ /** Parsed URL */
30
+ get url(): URL;
31
+ /** Path name */
32
+ get path(): string;
33
+ /**
34
+ * Get request header (case-insensitive)
35
+ */
36
+ getHeader(name: string): string | undefined;
37
+ /**
38
+ * Get cookie value
39
+ */
40
+ getCookie(name: string): string | undefined;
41
+ /**
42
+ * Get all cookies
43
+ */
44
+ get cookies(): Record<string, string>;
45
+ /**
46
+ * Parse body as JSON
47
+ */
48
+ body<T = unknown>(): Promise<T>;
49
+ /**
50
+ * Parse body as JSON (alias for body)
51
+ */
52
+ parseBody<T = unknown>(): Promise<T>;
53
+ /**
54
+ * Get body as text
55
+ */
56
+ bodyText(): Promise<string>;
57
+ /**
58
+ * Parse body as FormData
59
+ */
60
+ bodyFormData(): Promise<FormData>;
61
+ /**
62
+ * Get body as ArrayBuffer
63
+ */
64
+ bodyArrayBuffer(): Promise<ArrayBuffer>;
65
+ /**
66
+ * Get body as Blob
67
+ */
68
+ bodyBlob(): Promise<Blob>;
69
+ /**
70
+ * Set a context variable
71
+ */
72
+ set<K extends keyof V>(key: K, value: V[K]): this;
73
+ /**
74
+ * Get a context variable
75
+ */
76
+ get<K extends keyof V>(key: K): V[K] | undefined;
77
+ /**
78
+ * Check if variable exists
79
+ */
80
+ has(key: keyof V): boolean;
81
+ /**
82
+ * Set response status
83
+ */
84
+ status(code: StatusCode): this;
85
+ /**
86
+ * Set response header
87
+ */
88
+ setHeader(name: string, value: string): this;
89
+ /**
90
+ * Append response header
91
+ */
92
+ appendHeader(name: string, value: string): this;
93
+ /**
94
+ * Create JSON response
95
+ */
96
+ json<T>(data: T): Response;
97
+ /**
98
+ * Create text response
99
+ */
100
+ text(data: string): Response;
101
+ /**
102
+ * Create HTML response
103
+ */
104
+ html(data: string): Response;
105
+ /**
106
+ * Create redirect response
107
+ */
108
+ redirect(url: string, status?: StatusCode): Response;
109
+ /**
110
+ * Create 404 Not Found response
111
+ */
112
+ notFound(message?: string): Response;
113
+ /**
114
+ * Create error response
115
+ */
116
+ error(message: string, status?: StatusCode): Response;
117
+ /**
118
+ * Create a new Response with current state
119
+ */
120
+ newResponse(body: Blob | ArrayBuffer | FormData | URLSearchParams | ReadableStream<unknown> | string | null, options?: ResponseInit): Response;
121
+ /**
122
+ * Parse query parameters from URL
123
+ */
124
+ private parseQuery;
125
+ /**
126
+ * Check if request accepts a content type
127
+ */
128
+ accepts(...types: string[]): string | undefined;
129
+ /**
130
+ * Check if request is AJAX
131
+ */
132
+ get isXHR(): boolean;
133
+ /**
134
+ * Get client IP address
135
+ */
136
+ get ip(): string | undefined;
137
+ }
138
+ /**
139
+ * Create a new context
140
+ */
141
+ export declare function createContext(request: Request, params?: PathParams): Context;
142
+ export {};
143
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIvD,UAAU,gBAAgB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AA2BD,qBAAa,OAAO,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IACjE,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAEtB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAE1C,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,CAAU;IAE7B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAgB;IAEjC,wBAAwB;IACxB,OAAO,CAAC,UAAU,CAAc;gBAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,UAAe;IAYrD,kBAAkB;IAClB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,iBAAiB;IACjB,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,gBAAgB;IAChB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQ3C;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpC;IAID;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;IASrC;;OAEG;IACG,SAAS,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;IAI1C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIvC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC;IAI7C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAKjD;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAIhD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,OAAO;IAM1B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK9B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK5C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/C;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ;IAQ1B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAU5B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAQ5B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,UAAgB,GAAG,QAAQ;IASzD;;OAEG;IACH,QAAQ,CAAC,OAAO,SAAc,GAAG,QAAQ;IAOzC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,UAAgB,GAAG,QAAQ;IAO1D;;OAEG;IACH,WAAW,CACV,IAAI,EACD,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,eAAe,GACf,cAAc,CAAC,OAAO,CAAC,GACvB,MAAM,GACN,IAAI,EACP,OAAO,CAAC,EAAE,YAAY,GACpB,QAAQ;IAUX;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS;IAc/C;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,SAAS,CAM3B;CACD;AAID;;GAEG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,UAAe,GACrB,OAAO,CAET"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Database Layer
3
+ *
4
+ * Unified interface over Bun.SQL supporting PostgreSQL, MySQL, and SQLite.
5
+ * Uses Bun 1.3+ native SQL client with tagged template literals.
6
+ */
7
+ export type DatabaseDriver = "postgresql" | "mysql" | "sqlite";
8
+ /**
9
+ * Database metrics for observability
10
+ */
11
+ export interface DatabaseMetrics {
12
+ queries: number;
13
+ inserts: number;
14
+ updates: number;
15
+ deletes: number;
16
+ errors: number;
17
+ avgLatency: number;
18
+ totalLatency: number;
19
+ slowQueries: number;
20
+ totalOperations: number;
21
+ }
22
+ export interface DatabaseConfig {
23
+ url: string;
24
+ driver?: DatabaseDriver;
25
+ pool?: {
26
+ max?: number;
27
+ idleTimeout?: number;
28
+ maxLifetime?: number;
29
+ connectionTimeout?: number;
30
+ };
31
+ tls?: boolean | {
32
+ rejectUnauthorized?: boolean;
33
+ ca?: string;
34
+ key?: string;
35
+ cert?: string;
36
+ };
37
+ bigint?: boolean;
38
+ prepare?: boolean;
39
+ enableMetrics?: boolean;
40
+ slowQueryThreshold?: number;
41
+ }
42
+ export interface QueryResult {
43
+ rows: unknown[];
44
+ rowCount: number;
45
+ insertId?: number | string;
46
+ }
47
+ export interface Transaction {
48
+ query<T>(strings: TemplateStringsArray, ...params: unknown[]): Promise<T[]>;
49
+ queryOne<T>(strings: TemplateStringsArray, ...params: unknown[]): Promise<T | null>;
50
+ execute(strings: TemplateStringsArray, ...params: unknown[]): Promise<QueryResult>;
51
+ }
52
+ /**
53
+ * Query event types for event emission
54
+ */
55
+ export type QueryEventType = "query:start" | "query:end" | "query:error";
56
+ /**
57
+ * Query event data
58
+ */
59
+ export interface QueryEvent {
60
+ type: QueryEventType;
61
+ sql?: string;
62
+ params?: unknown[];
63
+ latency?: number;
64
+ error?: Error;
65
+ operationType?: "query" | "insert" | "update" | "delete" | "other";
66
+ }
67
+ /**
68
+ * Query event listener
69
+ */
70
+ export type QueryEventListener = (event: QueryEvent) => void;
71
+ /**
72
+ * Detect database driver from connection string
73
+ */
74
+ export declare function detectDriver(url: string): DatabaseDriver;
75
+ export declare class Database {
76
+ private config;
77
+ private driver;
78
+ private sql;
79
+ private _isConnected;
80
+ private enableMetrics;
81
+ private slowQueryThreshold;
82
+ private metrics;
83
+ private eventListeners;
84
+ constructor(config: DatabaseConfig | string);
85
+ /**
86
+ * Get current timestamp in milliseconds
87
+ */
88
+ private getTimestamp;
89
+ /**
90
+ * Get current metrics snapshot
91
+ */
92
+ getMetrics(): DatabaseMetrics;
93
+ /**
94
+ * Reset metrics counters
95
+ */
96
+ resetMetrics(): void;
97
+ /**
98
+ * Update metrics counters
99
+ */
100
+ private updateMetrics;
101
+ /**
102
+ * Emit a query event to all listeners
103
+ */
104
+ private emitEvent;
105
+ /**
106
+ * Subscribe to query events
107
+ */
108
+ on(eventType: QueryEventType, listener: QueryEventListener): void;
109
+ /**
110
+ * Unsubscribe from query events
111
+ */
112
+ off(eventType: QueryEventType, listener: QueryEventListener): void;
113
+ /**
114
+ * Remove all event listeners
115
+ */
116
+ removeAllListeners(eventType?: QueryEventType): void;
117
+ /**
118
+ * Get the driver type
119
+ */
120
+ getDriver(): DatabaseDriver;
121
+ /**
122
+ * Connect to the database using Bun.SQL
123
+ */
124
+ connect(): Promise<void>;
125
+ /**
126
+ * Check if connected
127
+ */
128
+ get isConnected(): boolean;
129
+ /**
130
+ * Get the underlying Bun.SQL instance
131
+ */
132
+ getSql(): unknown;
133
+ /**
134
+ * Execute a raw SQL query using tagged template literal
135
+ */
136
+ query<T = unknown>(strings: TemplateStringsArray, ...values: unknown[]): Promise<T[]>;
137
+ /**
138
+ * Execute a query and return a single row
139
+ */
140
+ queryOne<T = unknown>(strings: TemplateStringsArray, ...values: unknown[]): Promise<T | null>;
141
+ /**
142
+ * Execute a query that doesn't return rows
143
+ */
144
+ execute(strings: TemplateStringsArray, ...values: unknown[]): Promise<QueryResult>;
145
+ /**
146
+ * Execute raw SQL string (unsafe)
147
+ */
148
+ raw<T = unknown>(sqlString: string, params?: unknown[]): Promise<T[]>;
149
+ /**
150
+ * Execute a transaction
151
+ */
152
+ transaction<T>(callback: (tx: Transaction) => Promise<T>): Promise<T>;
153
+ /**
154
+ * Begin a distributed transaction (2PC)
155
+ */
156
+ beginDistributed<T>(name: string, callback: (tx: Transaction) => Promise<T>): Promise<T>;
157
+ /**
158
+ * Commit a distributed transaction
159
+ */
160
+ commitDistributed(name: string): Promise<void>;
161
+ /**
162
+ * Rollback a distributed transaction
163
+ */
164
+ rollbackDistributed(name: string): Promise<void>;
165
+ /**
166
+ * Reserve a connection from the pool
167
+ */
168
+ reserve(): Promise<ReservedConnection>;
169
+ /**
170
+ * Close the connection
171
+ */
172
+ close(options?: {
173
+ timeout?: number;
174
+ }): Promise<void>;
175
+ /**
176
+ * Get values format
177
+ */
178
+ values(strings: TemplateStringsArray, ...values: unknown[]): Promise<unknown[][]>;
179
+ /**
180
+ * Get raw format (Buffer arrays)
181
+ */
182
+ rawFormat(strings: TemplateStringsArray, ...values: unknown[]): Promise<Buffer[][]>;
183
+ /**
184
+ * Execute a simple query (multiple statements allowed)
185
+ */
186
+ simple(strings: TemplateStringsArray, ...values: unknown[]): Promise<unknown[]>;
187
+ /**
188
+ * Execute SQL from a file
189
+ */
190
+ file(path: string, params?: unknown[]): Promise<unknown[]>;
191
+ /**
192
+ * Ensure connection is established
193
+ */
194
+ private ensureConnection;
195
+ }
196
+ export declare class ReservedConnection {
197
+ private connection;
198
+ constructor(connection: unknown);
199
+ query<T>(strings: TemplateStringsArray, ...values: unknown[]): Promise<T[]>;
200
+ queryOne<T>(strings: TemplateStringsArray, ...values: unknown[]): Promise<T | null>;
201
+ release(): void;
202
+ [Symbol.dispose](): void;
203
+ }
204
+ /**
205
+ * Create a database connection
206
+ */
207
+ export declare function createConnection(config: DatabaseConfig | string): Promise<Database>;
208
+ /**
209
+ * Create a SQL fragment for safe table/column names
210
+ */
211
+ export declare function sqlFragment(name: string): string;
212
+ /**
213
+ * Build an IN clause
214
+ */
215
+ export declare function buildInClause(values: unknown[]): {
216
+ placeholder: string;
217
+ params: unknown[];
218
+ };
219
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Database Migration System
3
+ *
4
+ * Provides utilities for managing database migrations with
5
+ * up/down support, version tracking, and rollback capabilities.
6
+ */
7
+ import type { Database } from "../index";
8
+ import { type TableSchema } from "../schema";
9
+ export interface Migration {
10
+ id: string;
11
+ name: string;
12
+ up: (db: MigrationRunner) => Promise<void>;
13
+ down: (db: MigrationRunner) => Promise<void>;
14
+ }
15
+ export interface MigrationRecord {
16
+ id: string;
17
+ name: string;
18
+ executedAt: Date;
19
+ }
20
+ export interface MigrationOptions {
21
+ migrationsTable?: string;
22
+ migrationsDir?: string;
23
+ }
24
+ export declare class MigrationRunner {
25
+ private db;
26
+ private migrationsTable;
27
+ constructor(db: Database, options?: MigrationOptions);
28
+ /**
29
+ * Ensure migrations table exists
30
+ */
31
+ ensureMigrationsTable(): Promise<void>;
32
+ /**
33
+ * Get list of executed migrations
34
+ */
35
+ getExecutedMigrations(): Promise<MigrationRecord[]>;
36
+ /**
37
+ * Get pending migrations
38
+ */
39
+ getPendingMigrations(migrations: Migration[]): Promise<Migration[]>;
40
+ /**
41
+ * Run a single migration
42
+ */
43
+ runMigration(migration: Migration): Promise<void>;
44
+ /**
45
+ * Run all pending migrations
46
+ */
47
+ migrate(migrations: Migration[]): Promise<{
48
+ executed: string[];
49
+ }>;
50
+ /**
51
+ * Rollback last n migrations
52
+ */
53
+ rollback(migrations: Migration[], steps?: number): Promise<{
54
+ rolledBack: string[];
55
+ }>;
56
+ /**
57
+ * Reset all migrations
58
+ */
59
+ reset(migrations: Migration[]): Promise<{
60
+ rolledBack: string[];
61
+ }>;
62
+ /**
63
+ * Refresh migrations (rollback all, then migrate all)
64
+ */
65
+ refresh(migrations: Migration[]): Promise<{
66
+ rolledBack: string[];
67
+ executed: string[];
68
+ }>;
69
+ /**
70
+ * Create a table
71
+ */
72
+ createTable(schema: TableSchema): Promise<void>;
73
+ /**
74
+ * Drop a table
75
+ */
76
+ dropTable(name: string): Promise<void>;
77
+ /**
78
+ * Create an index
79
+ */
80
+ createIndex(tableName: string, index: {
81
+ name?: string;
82
+ columns: string[];
83
+ unique?: boolean;
84
+ }): Promise<void>;
85
+ /**
86
+ * Drop an index
87
+ */
88
+ dropIndex(name: string): Promise<void>;
89
+ /**
90
+ * Add a column
91
+ */
92
+ addColumn(table: string, name: string, type: string, options?: {
93
+ nullable?: boolean;
94
+ default?: unknown;
95
+ }): Promise<void>;
96
+ /**
97
+ * Drop a column
98
+ */
99
+ dropColumn(table: string, name: string): Promise<void>;
100
+ /**
101
+ * Rename a column
102
+ */
103
+ renameColumn(table: string, oldName: string, newName: string): Promise<void>;
104
+ /**
105
+ * Add a foreign key
106
+ */
107
+ addForeignKey(table: string, columns: string[], reference: {
108
+ table: string;
109
+ columns: string[];
110
+ }, options?: {
111
+ name?: string;
112
+ onDelete?: "CASCADE" | "SET NULL" | "RESTRICT" | "NO ACTION";
113
+ onUpdate?: "CASCADE" | "SET NULL" | "RESTRICT" | "NO ACTION";
114
+ }): Promise<void>;
115
+ /**
116
+ * Drop a foreign key
117
+ */
118
+ dropForeignKey(table: string, name: string): Promise<void>;
119
+ /**
120
+ * Execute raw SQL
121
+ */
122
+ raw(sql: string): Promise<void>;
123
+ }
124
+ export declare class MigrationBuilder {
125
+ private id;
126
+ private name;
127
+ private upFn;
128
+ private downFn;
129
+ constructor(id: string, name: string);
130
+ up(fn: (runner: MigrationRunner) => Promise<void>): this;
131
+ down(fn: (runner: MigrationRunner) => Promise<void>): this;
132
+ build(): Migration;
133
+ }
134
+ /**
135
+ * Create a migration builder
136
+ */
137
+ export declare function createMigration(id: string, name: string): MigrationBuilder;
138
+ /**
139
+ * Create a migration runner
140
+ */
141
+ export declare function createMigrationRunner(db: Database, options?: MigrationOptions): MigrationRunner;
142
+ /**
143
+ * Generate migration ID from timestamp
144
+ */
145
+ export declare function generateMigrationId(): string;
146
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,WAAW,CAAC;AAInB,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,eAAe;IAC3B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,eAAe,CAAS;gBAEpB,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,gBAAqB;IAKxD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5C;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBzD;;OAEG;IACG,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvD;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAavE;;OAEG;IACG,QAAQ,CACb,UAAU,EAAE,SAAS,EAAE,EACvB,KAAK,SAAI,GACP,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAmCpC;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAKvE;;OAEG;IACG,OAAO,CACZ,UAAU,EAAE,SAAS,EAAE,GACrB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAQxD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;IACG,WAAW,CAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3D,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACG,SAAS,CACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,GACC,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACG,YAAY,CACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACG,aAAa,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAC/C,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;QAC7D,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;KAC7D,GACC,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrC;AAID,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAA8D;IAC1E,OAAO,CAAC,MAAM,CAA8D;gBAEhE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKpC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKxD,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAK1D,KAAK,IAAI,SAAS;CAQlB;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAE1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,QAAQ,EACZ,OAAO,CAAC,EAAE,gBAAgB,GACxB,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAU5C"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * ORM Query Builder
3
+ *
4
+ * Fluent, chainable query builder for SELECT, INSERT, UPDATE, DELETE operations.
5
+ * Works independently of Model; can be used standalone.
6
+ */
7
+ import type { Database } from "../index";
8
+ import { QueryCompiler, type QueryState, type SqlDialect } from "./compiler";
9
+ export interface PaginationResult<T> {
10
+ data: T[];
11
+ total: number;
12
+ page: number;
13
+ limit: number;
14
+ totalPages: number;
15
+ }
16
+ /**
17
+ * Standalone ORM Query Builder
18
+ * Generic over the row type T returned by queries
19
+ */
20
+ export declare class OrmQueryBuilder<T extends Record<string, unknown> = Record<string, unknown>> {
21
+ protected state: QueryState;
22
+ protected compiler: QueryCompiler;
23
+ protected db: Database;
24
+ protected rowTransformer?: (row: Record<string, unknown>) => T;
25
+ constructor(db: Database, table: string, dialect?: SqlDialect);
26
+ /**
27
+ * Clone this builder to a new instance (used by scopes, relationships)
28
+ */
29
+ clone(): OrmQueryBuilder<T>;
30
+ /**
31
+ * Set row transformer (called after fetch, before return)
32
+ */
33
+ setRowTransformer(fn: (row: Record<string, unknown>) => T): this;
34
+ select(...columns: string[]): this;
35
+ addSelect(...columns: string[]): this;
36
+ distinct(): this;
37
+ where(column: string, operatorOrValue: unknown, value?: unknown): this;
38
+ orWhere(column: string, operatorOrValue: unknown, value?: unknown): this;
39
+ whereRaw(sql: string, params?: unknown[]): this;
40
+ whereIn(column: string, values: unknown[]): this;
41
+ whereNotIn(column: string, values: unknown[]): this;
42
+ whereNull(column: string): this;
43
+ whereNotNull(column: string): this;
44
+ whereBetween(column: string, min: unknown, max: unknown): this;
45
+ join(table: string, on: string, type?: "INNER" | "LEFT" | "RIGHT"): this;
46
+ leftJoin(table: string, on: string): this;
47
+ rightJoin(table: string, on: string): this;
48
+ crossJoin(table: string): this;
49
+ groupBy(...columns: string[]): this;
50
+ having(raw: string, params?: unknown[]): this;
51
+ orderBy(column: string, direction?: "ASC" | "DESC"): this;
52
+ orderByDesc(column: string): this;
53
+ limit(n: number): this;
54
+ offset(n: number): this;
55
+ lockForShare(): this;
56
+ lockForUpdate(): this;
57
+ /**
58
+ * Fetch all rows
59
+ */
60
+ get(): Promise<T[]>;
61
+ /**
62
+ * Fetch first row
63
+ */
64
+ first(): Promise<T | null>;
65
+ /**
66
+ * Fetch first row or throw
67
+ */
68
+ firstOrFail(): Promise<T>;
69
+ /**
70
+ * Find by primary key (assumes 'id' column)
71
+ */
72
+ find(id: unknown): Promise<T | null>;
73
+ /**
74
+ * Find by primary key or throw
75
+ */
76
+ findOrFail(id: unknown): Promise<T>;
77
+ /**
78
+ * Count rows
79
+ */
80
+ count(column?: string): Promise<number>;
81
+ /**
82
+ * Check if any rows exist
83
+ */
84
+ exists(): Promise<boolean>;
85
+ /**
86
+ * Pluck a single column
87
+ */
88
+ pluck<K extends keyof T>(column: K): Promise<T[K][]>;
89
+ /**
90
+ * Get a single column value
91
+ */
92
+ value<K extends keyof T>(column: K): Promise<T[K] | null>;
93
+ /**
94
+ * Paginate results
95
+ */
96
+ paginate(page: number, limit: number): Promise<PaginationResult<T>>;
97
+ /**
98
+ * Insert a single row
99
+ */
100
+ insert(data: Partial<T>): Promise<T>;
101
+ /**
102
+ * Insert multiple rows
103
+ */
104
+ insertMany(items: Partial<T>[]): Promise<T[]>;
105
+ /**
106
+ * Update rows matching the query
107
+ */
108
+ update(data: Partial<T>): Promise<number>;
109
+ /**
110
+ * Delete rows matching the query
111
+ */
112
+ delete(): Promise<number>;
113
+ /**
114
+ * Get last insert ID (SQLite/MySQL only)
115
+ */
116
+ private getLastInsertId;
117
+ }
118
+ /**
119
+ * Factory function to create a query builder
120
+ */
121
+ export declare function query<T extends Record<string, unknown> = Record<string, unknown>>(db: Database, table: string): OrmQueryBuilder<T>;
122
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/database/orm/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Cast Registry and Built-in Casts
3
+ */
4
+ import type { CastDefinition } from "./types";
5
+ export type { CastDefinition, CastObject, BuiltInCastName } from "./types";
6
+ export declare class CastRegistry {
7
+ /**
8
+ * Deserialize a value from database using a cast definition
9
+ */
10
+ static deserialize(castDef: CastDefinition, value: unknown): unknown;
11
+ /**
12
+ * Serialize a value to database using a cast definition
13
+ */
14
+ static serialize(castDef: CastDefinition, value: unknown): unknown;
15
+ }
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/orm/casts/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,SAAS,CAAC;AAE1D,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA+F3E,qBAAa,YAAY;IACxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAWpE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;CAUlE"}