@buenojs/bueno 0.8.6 → 0.8.7

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 +2 -2
  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,34 @@
1
+ /**
2
+ * Frontend Integration Module
3
+ *
4
+ * Provides development server, framework detection, bundler, and frontend-related
5
+ * capabilities for the Bueno Framework.
6
+ *
7
+ * @module frontend
8
+ */
9
+ export type { FrontendFramework, FrameworkDetectionMode, DevServerConfig, PartialDevServerConfig, DevServerState, RequestInfo, FileResolution, PackageDependencies, FrameworkDetectionResult, TransformResult, TransformOptions, DevServerMiddleware, DevServerEvent, DevServerEventListener, ErrorResponse, HMRClient, HMRUpdateError, HMRUpdate, HMRConfig, HMRDependencyNode, HMRModuleUpdate, HMRClientMessage, HMRServerMessage, FileChangeEvent, ConsoleMessageType, ConsoleMessage, ConsoleStreamConfig, PartialConsoleStreamConfig, ConsoleStreamClient, ConsoleClientMessage, ConsoleServerMessage, BuildPlugin, SourcemapOption, BuildTarget, OutputFormat, BundlerConfig, PartialBundlerConfig, BuildOutput, BuildError, BuildWarning, BuildResult, FrameworkBuildConfig, BuildManifest, BundleAnalysis, BuildWatchCallback, BundlerState, SSRElement, SSRContext, RenderResult, SSRPage, SSRConfig, PartialSSRConfig, FrameworkSSRRenderer, SSRHydrationData, SSRError, SSRRenderOptions, PreloadLink, } from "./types.js";
10
+ export { DevServer, createDevServer } from "./dev-server.js";
11
+ export { HMRManager, createHMRManager, isHMRBoundary, parseImports, } from "./hmr.js";
12
+ export { HMR_CLIENT_SCRIPT, getHMRClientScript, injectHMRScript, } from "./hmr-client.js";
13
+ export { ConsoleStreamManager, createConsoleStreamManager, injectConsoleScript, } from "./console-stream.js";
14
+ export { CONSOLE_CLIENT_SCRIPT, getConsoleClientScript, } from "./console-client.js";
15
+ export { Bundler, createBundler, build } from "./bundler.js";
16
+ export { getReactBuildConfig, isReactComponent, getReactRefreshPreamble, reactFrameworkMeta, getVueBuildConfig, isVueComponent, isVueJsx, getVueBlockTypes, vueFrameworkMeta, getSvelteBuildConfig, isSvelteComponent, getSveltePreprocessConfig, getSvelteCompilerOptions, svelteFrameworkMeta, getSolidBuildConfig, isSolidComponent, getSolidRefreshPreamble, getSolidTransformOptions, solidFrameworkMeta, getFrameworkConfig, getFrameworkMeta, detectFrameworkFromExtension, getAllSupportedExtensions, isSupportedExtension, } from "./frameworks/index.js";
17
+ export type { FrameworkMeta } from "./frameworks/index.js";
18
+ export { SSRRenderer, createSSRRenderer, createSSRContext, serializeHydrationData, deserializeHydrationData, generateHTML, createPreloadLink, mergeHeadElements, createReactSSRRenderer, createVueSSRRenderer, createSvelteSSRRenderer, createSolidSSRRenderer, } from "./ssr.js";
19
+ export type { ReactSSRRenderer, VueSSRRenderer, SvelteSSRRenderer, SolidSSRRenderer, } from "./ssr.js";
20
+ export { resetHead as resetReactHead, getHeadElements as getReactHeadElements, addHeadElement as addReactHeadElement, title as reactTitle, meta as reactMeta, link as reactLink, script as reactScript, style as reactStyle, ReactHelmet, helmet, ssrElementToString as reactSsrElementToString, } from "./ssr/react.js";
21
+ export { resetHead as resetVueHead, getHeadElements as getVueHeadElements, addHeadElement as addVueHeadElement, VueMeta, vueMeta, ssrElementToString as vueSsrElementToString, useHead as useVueHead, createVueSSRContext, } from "./ssr/vue.js";
22
+ export { resetHead as resetSvelteHead, getHeadElements as getSvelteHeadElements, addHeadElement as addSvelteHeadElement, getHeadString as getSvelteHeadString, SvelteHead, svelteHead, ssrElementToString as svelteSsrElementToString, loadSvelteComponent, createSvelteSSRContext, SveltePageStore, getPageStore, } from "./ssr/svelte.js";
23
+ export { resetHead as resetSolidHead, getHeadElements as getSolidHeadElements, addHeadElement as addSolidHeadElement, SolidMeta, solidMeta, ssrElementToString as solidSsrElementToString, createSolidSSRContext, createRouteData, SolidResource, createSolidResource, NO_HYDRATE, noHydrate, } from "./ssr/solid.js";
24
+ export type { ISRCacheEntry, ISRPageConfig, ISRConfig, PartialISRConfig, ISRRevalidationResult, ISRStats, } from "./types.js";
25
+ export { ISRManager, createISRManager, parseRevalidateHeader, generateCacheControlHeader, shouldRegenerate, } from "./isr.js";
26
+ export type { IslandHydrationStrategy, IslandConfig, IslandDefinition, IslandRegistry, IslandRenderResult, IslandState, IslandHydrationScript, } from "./types.js";
27
+ export { IslandManager, createIslandManager, defineIsland, isIslandElement, getIslandData, getIslandAttributes, createIslandElement, parseIslandsFromHTML, getHydrationPriority, sortIslandsByPriority, } from "./islands.js";
28
+ export type { RouteType, RouteDefinition, DynamicRoute, RouteMatch, RouteHandler, RouteMiddleware, FileRouterConfig, PartialFileRouterConfig, FileRouteOptions, } from "./types.js";
29
+ export { FileRouter, createFileRouter, isDynamicRoute, isCatchAllRoute, getRouteParams, normalizeRoutePath, compareRouteSpecificity, } from "./file-router.js";
30
+ export type { LayoutDefinition, LayoutNode, LayoutTree, LayoutProps, LayoutRenderer, LayoutMiddleware, LayoutConfig, PartialLayoutConfig, LayoutRenderResult, LayoutSegment, } from "./types.js";
31
+ export { LayoutManager, createLayoutManager, isLayoutFile, getLayoutSegmentFromPath, buildLayoutProps, createLayoutSegment, mergeLayoutHead, layoutTreeToString, } from "./layout.js";
32
+ export type { HTTPMethod, APIRouteDefinition, APIRouteHandler, APIResponse, APIMiddleware, APIContext, APIRouteModule, APIRouteConfig, PartialAPIRouteConfig, } from "./types.js";
33
+ export { APIRouteManager, createAPIRouteManager, json, text, html, redirect, error, notFound, unauthorized, forbidden, badRequest, created, noContent, isAPIRouteFile, isMiddlewareFile, getModuleMethods, } from "./api-routes.js";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Island Architecture Implementation
3
+ *
4
+ * Provides partial hydration capabilities:
5
+ * - Mark components as interactive islands
6
+ * - Framework-agnostic island definitions
7
+ * - Lazy/eager/visible hydration strategies
8
+ * - State serialization for islands
9
+ */
10
+ import type { FrontendFramework, IslandConfig, IslandDefinition, IslandHydrationStrategy, IslandRenderResult, IslandState, SSRElement } from "./types.js";
11
+ /**
12
+ * Island Manager handles partial hydration of components
13
+ *
14
+ * Features:
15
+ * - Register interactive components as islands
16
+ * - Multiple hydration strategies (lazy, eager, visible, idle)
17
+ * - Framework-agnostic island definitions
18
+ * - State serialization for client hydration
19
+ */
20
+ export declare class IslandManager {
21
+ private registry;
22
+ private logger;
23
+ private islandCounter;
24
+ private framework;
25
+ constructor(framework: FrontendFramework);
26
+ /**
27
+ * Register an island component
28
+ */
29
+ register(definition: IslandDefinition): string;
30
+ /**
31
+ * Register multiple islands
32
+ */
33
+ registerAll(definitions: IslandDefinition[]): string[];
34
+ /**
35
+ * Unregister an island
36
+ */
37
+ unregister(id: string): boolean;
38
+ /**
39
+ * Get island by ID
40
+ */
41
+ getIsland(id: string): IslandDefinition | undefined;
42
+ /**
43
+ * Get all registered islands
44
+ */
45
+ getAllIslands(): IslandDefinition[];
46
+ /**
47
+ * Render an island to HTML
48
+ */
49
+ renderIsland(componentName: string, props?: Record<string, unknown>, options?: Partial<IslandConfig>): IslandRenderResult;
50
+ /**
51
+ * Render island with SSR content
52
+ */
53
+ renderIslandSSR(componentName: string, ssrContent: string, props?: Record<string, unknown>, options?: Partial<IslandConfig>): IslandRenderResult;
54
+ /**
55
+ * Find island by component name
56
+ */
57
+ private findIslandByComponent;
58
+ /**
59
+ * Generate placeholder content
60
+ */
61
+ private generatePlaceholder;
62
+ /**
63
+ * Escape HTML in JSON string
64
+ */
65
+ private escapeHtml;
66
+ /**
67
+ * Get hydration script for all islands
68
+ */
69
+ getHydrationScript(): string;
70
+ /**
71
+ * Get client island script (minimal)
72
+ */
73
+ getClientScript(): string;
74
+ /**
75
+ * Get island count
76
+ */
77
+ getIslandCount(): number;
78
+ /**
79
+ * Clear all islands
80
+ */
81
+ clear(): void;
82
+ /**
83
+ * Get framework
84
+ */
85
+ getFramework(): FrontendFramework;
86
+ /**
87
+ * Set framework
88
+ */
89
+ setFramework(framework: FrontendFramework): void;
90
+ }
91
+ /**
92
+ * Create an island manager
93
+ */
94
+ export declare function createIslandManager(framework: FrontendFramework): IslandManager;
95
+ /**
96
+ * Create an island definition
97
+ */
98
+ export declare function defineIsland(component: string, entry: string, options?: Partial<IslandDefinition>): IslandDefinition;
99
+ /**
100
+ * Element-like interface for DOM elements (for type checking without DOM lib)
101
+ */
102
+ interface ElementLike {
103
+ hasAttribute(name: string): boolean;
104
+ getAttribute(name: string): string | null;
105
+ }
106
+ /**
107
+ * Check if an element is an island
108
+ */
109
+ export declare function isIslandElement(element: ElementLike): boolean;
110
+ /**
111
+ * Get island data from element
112
+ */
113
+ export declare function getIslandData(element: ElementLike): IslandState | null;
114
+ /**
115
+ * Generate island wrapper attributes
116
+ */
117
+ export declare function getIslandAttributes(id: string, component: string, props: Record<string, unknown>, strategy?: IslandHydrationStrategy): Record<string, string>;
118
+ /**
119
+ * Create island SSR element
120
+ */
121
+ export declare function createIslandElement(id: string, component: string, props: Record<string, unknown>, strategy?: IslandHydrationStrategy, children?: SSRElement[]): SSRElement;
122
+ /**
123
+ * Parse islands from HTML string
124
+ */
125
+ export declare function parseIslandsFromHTML(html: string): IslandState[];
126
+ /**
127
+ * Get hydration priority
128
+ */
129
+ export declare function getHydrationPriority(strategy: IslandHydrationStrategy): number;
130
+ /**
131
+ * Sort islands by hydration priority
132
+ */
133
+ export declare function sortIslandsByPriority(islands: IslandDefinition[]): IslandDefinition[];
134
+ export {};
135
+ //# sourceMappingURL=islands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/frontend/islands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Incremental Static Regeneration (ISR) Implementation
3
+ *
4
+ * Provides ISR capabilities that extend SSG with:
5
+ * - Time-based revalidation
6
+ * - On-demand revalidation
7
+ * - Stale-while-revalidate strategy
8
+ * - Distributed cache support via Bun.redis
9
+ */
10
+ import { type SSRRenderer } from "./ssr.js";
11
+ import type { ISRCacheEntry, ISRConfig, ISRPageConfig, ISRRevalidationResult, ISRStats, PartialISRConfig } from "./types.js";
12
+ import type { RenderResult } from "./types.js";
13
+ /**
14
+ * ISR Manager handles incremental static regeneration
15
+ *
16
+ * Features:
17
+ * - Time-based revalidation with configurable TTL
18
+ * - Stale-while-revalidate for instant responses
19
+ * - On-demand revalidation via API or webhook
20
+ * - Distributed cache support via Redis
21
+ */
22
+ export declare class ISRManager {
23
+ private config;
24
+ private logger;
25
+ private cache;
26
+ private pendingRegenerations;
27
+ private ssrRenderer;
28
+ private stats;
29
+ constructor(config: PartialISRConfig);
30
+ /**
31
+ * Normalize partial config to full config with defaults
32
+ */
33
+ private normalizeConfig;
34
+ /**
35
+ * Set the SSR renderer
36
+ */
37
+ setSSRRenderer(renderer: SSRRenderer): void;
38
+ /**
39
+ * Get a page from cache or render it
40
+ */
41
+ getPage(url: string, request: Request, pageConfig?: ISRPageConfig): Promise<RenderResult>;
42
+ /**
43
+ * Render a page using SSR
44
+ */
45
+ private renderPage;
46
+ /**
47
+ * Trigger background revalidation
48
+ */
49
+ private triggerBackgroundRevalidation;
50
+ /**
51
+ * Revalidate a page
52
+ */
53
+ revalidatePage(url: string, request: Request, pageConfig?: ISRPageConfig): Promise<ISRRevalidationResult>;
54
+ /**
55
+ * Invalidate a specific page
56
+ */
57
+ invalidatePage(url: string): Promise<boolean>;
58
+ /**
59
+ * Invalidate multiple pages by pattern
60
+ */
61
+ invalidatePattern(pattern: string | RegExp): Promise<number>;
62
+ /**
63
+ * Invalidate all pages
64
+ */
65
+ invalidateAll(): Promise<void>;
66
+ /**
67
+ * Get cache entry
68
+ */
69
+ private getCacheEntry;
70
+ /**
71
+ * Set cache entry
72
+ */
73
+ private setCacheEntry;
74
+ /**
75
+ * Evict oldest entries when cache is full
76
+ */
77
+ private evictOldestEntries;
78
+ /**
79
+ * Generate cache key from URL
80
+ */
81
+ private getCacheKey;
82
+ /**
83
+ * Get ISR statistics
84
+ */
85
+ getStats(): ISRStats;
86
+ /**
87
+ * Get all cached URLs
88
+ */
89
+ getCachedUrls(): string[];
90
+ /**
91
+ * Check if a page is cached
92
+ */
93
+ isCached(url: string): boolean;
94
+ /**
95
+ * Get cache entry info
96
+ */
97
+ getCacheInfo(url: string): Promise<{
98
+ cached: boolean;
99
+ timestamp?: number;
100
+ age?: number;
101
+ revalidate?: number;
102
+ tags?: string[];
103
+ } | null>;
104
+ /**
105
+ * Revalidate pages by tag
106
+ */
107
+ revalidateTag(tag: string): Promise<number>;
108
+ /**
109
+ * Prune expired entries
110
+ */
111
+ pruneExpired(): number;
112
+ /**
113
+ * Get configuration
114
+ */
115
+ getConfig(): ISRConfig;
116
+ /**
117
+ * Check if ISR is enabled
118
+ */
119
+ isEnabled(): boolean;
120
+ }
121
+ /**
122
+ * Create an ISR manager
123
+ */
124
+ export declare function createISRManager(config: PartialISRConfig): ISRManager;
125
+ /**
126
+ * Parse revalidation header
127
+ * Supports formats like:
128
+ * - "60" (seconds)
129
+ * - "60, stale-while-revalidate=30"
130
+ */
131
+ export declare function parseRevalidateHeader(header: string): {
132
+ revalidate: number;
133
+ staleWhileRevalidate: number;
134
+ };
135
+ /**
136
+ * Generate Cache-Control header for ISR
137
+ */
138
+ export declare function generateCacheControlHeader(revalidate: number, staleWhileRevalidate: number): string;
139
+ /**
140
+ * Check if a page should be regenerated
141
+ */
142
+ export declare function shouldRegenerate(entry: ISRCacheEntry, revalidate: number, staleWhileRevalidate: number): boolean;
143
+ //# sourceMappingURL=isr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isr.d.ts","sourceRoot":"","sources":["../../src/frontend/isr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Layout Nesting Implementation
3
+ *
4
+ * Provides Next.js-style layout nesting:
5
+ * - _layout.tsx convention for nested layouts
6
+ * - Layout inheritance down directory tree
7
+ * - Layout state preservation on navigation
8
+ * - Per-segment layouts
9
+ */
10
+ import type { LayoutConfig, LayoutDefinition, LayoutNode, LayoutProps, LayoutRenderResult, LayoutSegment, PartialLayoutConfig } from "./types.js";
11
+ import type { SSRContext, SSRElement } from "./types.js";
12
+ /**
13
+ * Layout Manager handles nested layout resolution and rendering
14
+ *
15
+ * Features:
16
+ * - _layout.tsx convention
17
+ * - Layout inheritance down directory tree
18
+ * - Layout state preservation
19
+ * - Per-segment layouts
20
+ */
21
+ export declare class LayoutManager {
22
+ private config;
23
+ private logger;
24
+ private layouts;
25
+ private layoutTree;
26
+ constructor(config?: PartialLayoutConfig);
27
+ /**
28
+ * Normalize partial config to full config with defaults
29
+ */
30
+ private normalizeConfig;
31
+ /**
32
+ * Initialize the layout manager by scanning for layout files
33
+ */
34
+ init(): Promise<void>;
35
+ /**
36
+ * Scan for layout files in the pages directory
37
+ */
38
+ private scanLayoutFiles;
39
+ /**
40
+ * Process a single layout file
41
+ */
42
+ private processLayoutFile;
43
+ /**
44
+ * Get layout segment from file path
45
+ */
46
+ private getLayoutSegment;
47
+ /**
48
+ * Calculate depth of layout segment
49
+ */
50
+ private calculateDepth;
51
+ /**
52
+ * Generate unique layout ID
53
+ */
54
+ private generateLayoutId;
55
+ /**
56
+ * Build the layout tree from collected layouts
57
+ */
58
+ private buildLayoutTree;
59
+ /**
60
+ * Build a layout tree node
61
+ */
62
+ private buildTreeNode;
63
+ /**
64
+ * Check if a segment is a direct child of another
65
+ */
66
+ private isDirectChild;
67
+ /**
68
+ * Get layout chain for a route
69
+ */
70
+ getLayoutChain(routePath: string): LayoutDefinition[];
71
+ /**
72
+ * Get route segments from path
73
+ */
74
+ private getRouteSegments;
75
+ /**
76
+ * Load layout module
77
+ */
78
+ private loadLayoutModule;
79
+ /**
80
+ * Render layouts with nested content
81
+ */
82
+ renderLayouts(routePath: string, content: string, context: SSRContext): Promise<LayoutRenderResult>;
83
+ /**
84
+ * Get layout for a segment
85
+ */
86
+ getLayout(segment: string): LayoutDefinition | undefined;
87
+ /**
88
+ * Get all layouts
89
+ */
90
+ getAllLayouts(): LayoutDefinition[];
91
+ /**
92
+ * Get layout tree
93
+ */
94
+ getLayoutTree(): LayoutNode | null;
95
+ /**
96
+ * Check if a route has a layout
97
+ */
98
+ hasLayout(routePath: string): boolean;
99
+ /**
100
+ * Get layout depth for a route
101
+ */
102
+ getLayoutDepth(routePath: string): number;
103
+ /**
104
+ * Reload layouts (for hot reload)
105
+ */
106
+ reload(): Promise<void>;
107
+ /**
108
+ * Get configuration
109
+ */
110
+ getConfig(): LayoutConfig;
111
+ }
112
+ /**
113
+ * Create a layout manager
114
+ */
115
+ export declare function createLayoutManager(config?: PartialLayoutConfig): LayoutManager;
116
+ /**
117
+ * Check if a file is a layout file
118
+ */
119
+ export declare function isLayoutFile(filename: string): boolean;
120
+ /**
121
+ * Get layout segment from file path
122
+ */
123
+ export declare function getLayoutSegmentFromPath(filePath: string): string;
124
+ /**
125
+ * Build layout props for a page
126
+ */
127
+ export declare function buildLayoutProps(children: string, context: SSRContext): LayoutProps;
128
+ /**
129
+ * Create a layout segment
130
+ */
131
+ export declare function createLayoutSegment(path: string, params?: Record<string, string>): LayoutSegment;
132
+ /**
133
+ * Merge layout head elements
134
+ */
135
+ export declare function mergeLayoutHead(...heads: SSRElement[][]): SSRElement[];
136
+ /**
137
+ * Render layout tree to string (for debugging)
138
+ */
139
+ export declare function layoutTreeToString(node: LayoutNode, indent?: number): string;
140
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/frontend/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAEhB,UAAU,EACV,WAAW,EACX,kBAAkB,EAElB,aAAa,EAEb,mBAAmB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAgB,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASvE;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,GAAE,mBAAwB;IAS5C;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAkBrD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACG,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIxD;;OAEG;IACH,aAAa,IAAI,gBAAgB,EAAE;IAInC;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAarC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;OAEG;IACH,SAAS,IAAI,YAAY;CAGzB;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,GAAE,mBAAwB,GAC9B,aAAa,CAEf;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GACjB,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,aAAa,CAMf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,CAetE;AAsBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,SAAI,GAAG,MAAM,CASvE"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * React SSR Renderer
3
+ *
4
+ * Provides server-side rendering for React components using:
5
+ * - renderToPipeableStream / renderToReadableStream for streaming
6
+ * - React Helmet for head management
7
+ * - Suspense boundary support
8
+ */
9
+ import type { FrameworkSSRRenderer, SSRContext, SSRElement, SSRPage } from "../types.js";
10
+ /**
11
+ * Reset head elements for a new render
12
+ */
13
+ export declare function resetHead(): void;
14
+ /**
15
+ * Get collected head elements
16
+ */
17
+ export declare function getHeadElements(): SSRElement[];
18
+ /**
19
+ * Add a head element
20
+ */
21
+ export declare function addHeadElement(element: SSRElement): void;
22
+ /**
23
+ * Create a title element for head
24
+ */
25
+ export declare function title(text: string): SSRElement;
26
+ /**
27
+ * Create a meta element for head
28
+ */
29
+ export declare function meta(attrs: Record<string, string>): SSRElement;
30
+ /**
31
+ * Create a link element for head
32
+ */
33
+ export declare function link(attrs: Record<string, string>): SSRElement;
34
+ /**
35
+ * Create a script element for head
36
+ */
37
+ export declare function script(attrs: Record<string, string>, innerHTML?: string): SSRElement;
38
+ /**
39
+ * Create a style element for head
40
+ */
41
+ export declare function style(innerHTML: string, attrs?: Record<string, string>): SSRElement;
42
+ /**
43
+ * React SSR Renderer implementation
44
+ */
45
+ export declare class ReactSSRRenderer implements FrameworkSSRRenderer {
46
+ private react;
47
+ private reactDomServer;
48
+ private initialized;
49
+ /**
50
+ * Initialize React modules
51
+ */
52
+ init(): Promise<void>;
53
+ /**
54
+ * Render a component to HTML string
55
+ */
56
+ renderToString(component: unknown, context: SSRContext): Promise<string>;
57
+ /**
58
+ * Render a component to a stream
59
+ */
60
+ renderToStream(component: unknown, context: SSRContext): ReadableStream<Uint8Array>;
61
+ /**
62
+ * Get head elements from component
63
+ */
64
+ getHeadElements(context: SSRContext): SSRElement[];
65
+ /**
66
+ * Create the framework-specific component
67
+ */
68
+ createComponent(page: SSRPage, context: SSRContext): unknown;
69
+ /**
70
+ * Render with Suspense support
71
+ */
72
+ renderWithSuspense(component: unknown, context: SSRContext, fallback?: string): Promise<string>;
73
+ /**
74
+ * Render to stream with all callbacks
75
+ */
76
+ renderToStreamWithCallbacks(component: unknown, context: SSRContext, options?: {
77
+ onAllReady?: () => void;
78
+ onShellReady?: () => void;
79
+ onShellError?: (error: Error) => void;
80
+ onError?: (error: Error) => void;
81
+ }): Promise<ReadableStream<Uint8Array>>;
82
+ }
83
+ /**
84
+ * Create a React SSR renderer
85
+ */
86
+ export declare function createReactSSRRenderer(): ReactSSRRenderer;
87
+ /**
88
+ * Convert SSRElement to HTML string
89
+ */
90
+ export declare function ssrElementToString(element: SSRElement): string;
91
+ /**
92
+ * React Helmet-like head management
93
+ */
94
+ export declare class ReactHelmet {
95
+ private static instance;
96
+ private title;
97
+ private metaTags;
98
+ private linkTags;
99
+ private scriptTags;
100
+ private styleTags;
101
+ static getInstance(): ReactHelmet;
102
+ setTitle(title: string): this;
103
+ addMeta(attrs: Record<string, string>): this;
104
+ addLink(attrs: Record<string, string>): this;
105
+ addScript(attrs: Record<string, string>, innerHTML?: string): this;
106
+ addStyle(innerHTML: string, attrs?: Record<string, string>): this;
107
+ reset(): void;
108
+ getTitle(): string;
109
+ getMetaTags(): SSRElement[];
110
+ getLinkTags(): SSRElement[];
111
+ getScriptTags(): SSRElement[];
112
+ getStyleTags(): SSRElement[];
113
+ }
114
+ /**
115
+ * Get React Helmet instance
116
+ */
117
+ export declare function helmet(): ReactHelmet;
118
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/frontend/ssr/react.ts"],"names":[],"mappings":"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"}