@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,99 @@
1
+ /**
2
+ * Storage Layer
3
+ *
4
+ * Unified interface over Bun.s3 for S3-compatible storage with local filesystem fallback.
5
+ * Uses Bun 1.3+ native S3 client for cloud storage.
6
+ */
7
+ export interface StorageConfig {
8
+ driver?: "s3" | "local";
9
+ bucket?: string;
10
+ region?: string;
11
+ endpoint?: string;
12
+ localPath?: string;
13
+ }
14
+ export interface UploadOptions {
15
+ key: string;
16
+ body: string | Buffer | ArrayBuffer | Blob | File;
17
+ contentType?: string;
18
+ }
19
+ export interface DownloadOptions {
20
+ key: string;
21
+ }
22
+ export interface PresignedURLOptions {
23
+ key: string;
24
+ expiresIn?: number;
25
+ method?: "GET" | "PUT";
26
+ }
27
+ export interface FileInfo {
28
+ key: string;
29
+ size: number;
30
+ lastModified?: Date;
31
+ }
32
+ export interface ListOptions {
33
+ prefix?: string;
34
+ }
35
+ export interface ListResult {
36
+ files: FileInfo[];
37
+ directories: string[];
38
+ }
39
+ export declare class Storage {
40
+ private driver;
41
+ private s3Storage;
42
+ private localStorage;
43
+ private _isConnected;
44
+ constructor(config?: StorageConfig);
45
+ connect(): Promise<void>;
46
+ get isConnected(): boolean;
47
+ getDriver(): "s3" | "local";
48
+ upload(options: UploadOptions): Promise<{
49
+ key: string;
50
+ }>;
51
+ download(options: DownloadOptions): Promise<Blob>;
52
+ downloadText(key: string): Promise<string>;
53
+ downloadBuffer(key: string): Promise<ArrayBuffer>;
54
+ stream(key: string): Promise<ReadableStream<Uint8Array>>;
55
+ delete(key: string): Promise<void>;
56
+ deleteMany(keys: string[]): Promise<void>;
57
+ exists(key: string): Promise<boolean>;
58
+ info(key: string): Promise<FileInfo | null>;
59
+ copy(sourceKey: string, destKey: string): Promise<void>;
60
+ move(sourceKey: string, destKey: string): Promise<void>;
61
+ list(options?: ListOptions): Promise<ListResult>;
62
+ getPresignedUrl(options: PresignedURLOptions): string;
63
+ getPublicUrl(key: string): string;
64
+ uploadFile(localPath: string, key: string): Promise<{
65
+ key: string;
66
+ }>;
67
+ }
68
+ export interface SecretOptions {
69
+ service: string;
70
+ name: string;
71
+ }
72
+ export interface SetSecretOptions extends SecretOptions {
73
+ value: string;
74
+ allowUnrestrictedAccess?: boolean;
75
+ }
76
+ export declare const Secrets: {
77
+ /**
78
+ * Get a secret from OS credential storage
79
+ */
80
+ get(options: SecretOptions): Promise<string | null>;
81
+ /**
82
+ * Store a secret in OS credential storage
83
+ */
84
+ set(options: SetSecretOptions): Promise<void>;
85
+ /**
86
+ * Delete a secret from OS credential storage
87
+ */
88
+ delete(options: SecretOptions): Promise<void>;
89
+ /**
90
+ * Get a secret or throw if not found
91
+ */
92
+ getOrThrow(options: SecretOptions): Promise<string>;
93
+ /**
94
+ * Get a secret or use a default value
95
+ */
96
+ getOrDefault(options: SecretOptions, defaultValue: string): Promise<string>;
97
+ };
98
+ export declare function createStorage(config?: StorageConfig): Storage;
99
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,376 @@
1
+ /**
2
+ * OpenTelemetry OTLP Trace Exporter
3
+ *
4
+ * Provides distributed tracing with OpenTelemetry Protocol (OTLP) export.
5
+ * Part of Layer 7 (Testing & Observability) implementation.
6
+ */
7
+ /**
8
+ * Span kind enumeration
9
+ */
10
+ export type SpanKind = "server" | "client" | "producer" | "consumer" | "internal";
11
+ /**
12
+ * Span status code
13
+ */
14
+ export type StatusCode = "ok" | "error" | "unset";
15
+ /**
16
+ * Event attached to a span
17
+ */
18
+ export interface SpanEvent {
19
+ /** Event name */
20
+ name: string;
21
+ /** Event timestamp in nanoseconds */
22
+ timestamp: number;
23
+ /** Event attributes */
24
+ attributes?: Record<string, string | number | boolean>;
25
+ }
26
+ /**
27
+ * Span status
28
+ */
29
+ export interface SpanStatus {
30
+ /** Status code */
31
+ code: StatusCode;
32
+ /** Optional status message */
33
+ message?: string;
34
+ }
35
+ /**
36
+ * Span represents a unit of work in distributed tracing
37
+ */
38
+ export interface Span {
39
+ /** Unique trace identifier (32 hex characters) */
40
+ traceId: string;
41
+ /** Unique span identifier (16 hex characters) */
42
+ spanId: string;
43
+ /** Parent span identifier if this is a child span */
44
+ parentSpanId?: string;
45
+ /** Span name (operation name) */
46
+ name: string;
47
+ /** Span kind */
48
+ kind: SpanKind;
49
+ /** Start time in nanoseconds */
50
+ startTime: number;
51
+ /** End time in nanoseconds */
52
+ endTime?: number;
53
+ /** Duration in nanoseconds */
54
+ duration?: number;
55
+ /** Span attributes */
56
+ attributes: Record<string, string | number | boolean>;
57
+ /** Events recorded during the span */
58
+ events: SpanEvent[];
59
+ /** Span status */
60
+ status: SpanStatus;
61
+ /** Whether the span has ended */
62
+ ended: boolean;
63
+ }
64
+ /**
65
+ * Options for starting a new span
66
+ */
67
+ export interface SpanOptions {
68
+ /** Span kind */
69
+ kind?: SpanKind;
70
+ /** Parent span (if any) */
71
+ parent?: Span;
72
+ /** Initial attributes */
73
+ attributes?: Record<string, string | number | boolean>;
74
+ /** Links to other spans */
75
+ links?: Array<{
76
+ traceId: string;
77
+ spanId: string;
78
+ attributes?: Record<string, string | number | boolean>;
79
+ }>;
80
+ /** Start time in nanoseconds (defaults to current time) */
81
+ startTime?: number;
82
+ }
83
+ /**
84
+ * OTLP Exporter options
85
+ */
86
+ export interface OTLPExporterOptions {
87
+ /** OTLP endpoint URL (e.g., http://localhost:4318/v1/traces) */
88
+ endpoint: string;
89
+ /** Additional headers to send with requests */
90
+ headers?: Record<string, string>;
91
+ /** Export interval in milliseconds (default: 5000) */
92
+ exportInterval?: number;
93
+ /** Maximum batch size before forcing export (default: 100) */
94
+ maxBatchSize?: number;
95
+ /** Maximum retry attempts on failure (default: 3) */
96
+ maxRetries?: number;
97
+ /** Initial retry delay in milliseconds (default: 1000) */
98
+ retryDelay?: number;
99
+ /** Timeout for export requests in milliseconds (default: 30000) */
100
+ timeout?: number;
101
+ }
102
+ /**
103
+ * Sampler type
104
+ */
105
+ export type SamplerType = "always" | "never" | "probabilistic";
106
+ /**
107
+ * Tracer options
108
+ */
109
+ export interface TracerOptions {
110
+ /** OTLP exporter instance */
111
+ exporter?: OTLPExporter;
112
+ /** Sampling strategy (default: "always") */
113
+ sampler?: SamplerType;
114
+ /** Probability for probabilistic sampling (0.0 to 1.0) */
115
+ probability?: number;
116
+ /** Service name for resource attributes */
117
+ serviceName?: string;
118
+ /** Additional resource attributes */
119
+ resourceAttributes?: Record<string, string | number | boolean>;
120
+ }
121
+ /**
122
+ * Trace context for propagation
123
+ */
124
+ export interface TraceContext {
125
+ traceId: string;
126
+ spanId: string;
127
+ traceFlags: number;
128
+ traceState?: string;
129
+ }
130
+ /**
131
+ * Generate a random trace ID (32 hex characters / 16 bytes)
132
+ */
133
+ export declare function generateTraceId(): string;
134
+ /**
135
+ * Generate a random span ID (16 hex characters / 8 bytes)
136
+ */
137
+ export declare function generateSpanId(): string;
138
+ /**
139
+ * Get current time in nanoseconds using Bun.nanoseconds()
140
+ */
141
+ export declare function nowNanoseconds(): number;
142
+ /**
143
+ * OTLP HTTP Trace Exporter
144
+ *
145
+ * Exports traces to an OTLP-compatible endpoint using HTTP/JSON.
146
+ */
147
+ export declare class OTLPExporter {
148
+ private endpoint;
149
+ private headers;
150
+ private exportInterval;
151
+ private maxBatchSize;
152
+ private maxRetries;
153
+ private retryDelay;
154
+ private timeout;
155
+ private pendingSpans;
156
+ private exportTimer;
157
+ private isShuttingDown;
158
+ private serviceName;
159
+ private resourceAttributes;
160
+ constructor(options: OTLPExporterOptions);
161
+ /**
162
+ * Set service name for resource attributes
163
+ */
164
+ setServiceName(name: string): void;
165
+ /**
166
+ * Set resource attributes
167
+ */
168
+ setResourceAttributes(attributes: Record<string, string | number | boolean>): void;
169
+ /**
170
+ * Start periodic export
171
+ */
172
+ start(): void;
173
+ /**
174
+ * Stop periodic export
175
+ */
176
+ stop(): void;
177
+ /**
178
+ * Add a span to the pending batch
179
+ */
180
+ addSpan(span: Span): void;
181
+ /**
182
+ * Export spans to OTLP endpoint
183
+ */
184
+ export(spans: Span[]): Promise<boolean>;
185
+ /**
186
+ * Flush all pending spans
187
+ */
188
+ flush(): Promise<void>;
189
+ /**
190
+ * Close the exporter and flush remaining spans
191
+ */
192
+ close(): Promise<void>;
193
+ /**
194
+ * Build OTLP export request from spans
195
+ */
196
+ private buildExportRequest;
197
+ /**
198
+ * Delay helper
199
+ */
200
+ private delay;
201
+ }
202
+ /**
203
+ * Tracer creates and manages spans for distributed tracing
204
+ */
205
+ export declare class Tracer {
206
+ private serviceName;
207
+ private exporter?;
208
+ private sampler;
209
+ private probability;
210
+ private resourceAttributes;
211
+ private currentSpan;
212
+ private spanStack;
213
+ constructor(options?: TracerOptions);
214
+ /**
215
+ * Check if a span should be sampled
216
+ */
217
+ private shouldSample;
218
+ /**
219
+ * Start a new span
220
+ */
221
+ startSpan(name: string, options?: SpanOptions): Span;
222
+ /**
223
+ * End a span
224
+ */
225
+ endSpan(span: Span, endTime?: number): void;
226
+ /**
227
+ * Get the current active span
228
+ */
229
+ getCurrentSpan(): Span | null;
230
+ /**
231
+ * Run a function within span context
232
+ */
233
+ withSpan<T>(name: string, fn: (span: Span) => T | Promise<T>, options?: SpanOptions): Promise<T>;
234
+ /**
235
+ * Add an event to a span
236
+ */
237
+ addEvent(span: Span, name: string, attributes?: Record<string, string | number | boolean>): void;
238
+ /**
239
+ * Set an attribute on a span
240
+ */
241
+ setAttribute(span: Span, key: string, value: string | number | boolean): void;
242
+ /**
243
+ * Set multiple attributes on a span
244
+ */
245
+ setAttributes(span: Span, attributes: Record<string, string | number | boolean>): void;
246
+ /**
247
+ * Set span status
248
+ */
249
+ setStatus(span: Span, code: StatusCode, message?: string): void;
250
+ /**
251
+ * Record an error on a span
252
+ */
253
+ setError(span: Span, error: Error): void;
254
+ /**
255
+ * Update span name
256
+ */
257
+ updateName(span: Span, name: string): void;
258
+ /**
259
+ * Inject trace context into a carrier (for W3C TraceContext propagation)
260
+ */
261
+ injectContext(carrier: Record<string, string>, span?: Span): void;
262
+ /**
263
+ * Extract trace context from a carrier (for W3C TraceContext propagation)
264
+ */
265
+ extractContext(carrier: Record<string, string>): TraceContext | null;
266
+ /**
267
+ * Create a child span from extracted context
268
+ */
269
+ startSpanFromContext(name: string, context: TraceContext, options?: SpanOptions): Span;
270
+ /**
271
+ * Flush pending spans
272
+ */
273
+ flush(): Promise<void>;
274
+ /**
275
+ * Close the tracer
276
+ */
277
+ close(): Promise<void>;
278
+ /**
279
+ * Create a no-op span (not sampled)
280
+ */
281
+ private createNoopSpan;
282
+ }
283
+ /**
284
+ * Create a configured tracer
285
+ */
286
+ export declare function createTracer(serviceName: string, options?: Omit<TracerOptions, "serviceName">): Tracer;
287
+ /**
288
+ * Request context for middleware
289
+ */
290
+ interface RequestContext {
291
+ method: string;
292
+ path: string;
293
+ url: URL;
294
+ headers: Record<string, string>;
295
+ getHeader: (name: string) => string | undefined;
296
+ setHeader: (name: string, value: string) => void;
297
+ status?: number;
298
+ }
299
+ /**
300
+ * Response context for middleware
301
+ */
302
+ interface ResponseContext {
303
+ status: number;
304
+ headers?: Record<string, string>;
305
+ }
306
+ /**
307
+ * Create middleware for automatic HTTP tracing
308
+ */
309
+ export declare function traceMiddleware(tracer: Tracer): (ctx: RequestContext, next: () => Promise<ResponseContext>) => Promise<ResponseContext>;
310
+ /**
311
+ * Database interface for tracing
312
+ */
313
+ interface TracedDatabase {
314
+ query?: (sql: string, params?: unknown[]) => Promise<unknown>;
315
+ execute?: (sql: string, params?: unknown[]) => Promise<unknown>;
316
+ [key: string]: unknown;
317
+ }
318
+ /**
319
+ * Wrap database with tracing
320
+ */
321
+ export declare function traceDatabase(tracer: Tracer, db: TracedDatabase, system?: string): TracedDatabase;
322
+ /**
323
+ * Options for traced fetch
324
+ */
325
+ interface TracedFetchOptions extends RequestInit {
326
+ /** Span to use as parent */
327
+ parentSpan?: Span;
328
+ /** Additional attributes to add to span */
329
+ attributes?: Record<string, string | number | boolean>;
330
+ }
331
+ /**
332
+ * Create a traced fetch function
333
+ */
334
+ export declare function createTracedFetch(tracer: Tracer): (url: string | URL, options?: TracedFetchOptions) => Promise<Response>;
335
+ /**
336
+ * Span builder for fluent API
337
+ */
338
+ export declare class SpanBuilder {
339
+ private span;
340
+ private tracer;
341
+ constructor(tracer: Tracer, name: string, options?: SpanOptions);
342
+ /**
343
+ * Set an attribute
344
+ */
345
+ setAttribute(key: string, value: string | number | boolean): this;
346
+ /**
347
+ * Set multiple attributes
348
+ */
349
+ setAttributes(attributes: Record<string, string | number | boolean>): this;
350
+ /**
351
+ * Add an event
352
+ */
353
+ addEvent(name: string, attributes?: Record<string, string | number | boolean>): this;
354
+ /**
355
+ * Set status
356
+ */
357
+ setStatus(code: StatusCode, message?: string): this;
358
+ /**
359
+ * Record error
360
+ */
361
+ setError(error: Error): this;
362
+ /**
363
+ * End the span
364
+ */
365
+ end(): Span;
366
+ /**
367
+ * Get the underlying span
368
+ */
369
+ getSpan(): Span;
370
+ }
371
+ /**
372
+ * Create a span builder
373
+ */
374
+ export declare function span(tracer: Tracer, name: string, options?: SpanOptions): SpanBuilder;
375
+ export {};
376
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Template System - Subpath Export
3
+ *
4
+ * Usage: import { TemplateEngine } from "@buenojs/bueno/template"
5
+ */
6
+ export * from "../templates/index";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Template Engine
3
+ *
4
+ * Main orchestration class for:
5
+ * - Loading templates (with caching)
6
+ * - Rendering with variable interpolation
7
+ * - Converting Markdown to HTML/text
8
+ * - Channel-specific variant selection
9
+ */
10
+ import type { RenderOptions, TemplateData, TemplateEngineConfig, TemplateEngineMetrics } from "./types";
11
+ /**
12
+ * Template engine
13
+ */
14
+ export declare class TemplateEngine {
15
+ private config;
16
+ private loader;
17
+ private simpleRenderer;
18
+ private metrics;
19
+ private renderTimes;
20
+ private channelVariantMap;
21
+ constructor(config: TemplateEngineConfig);
22
+ /**
23
+ * Render a template with data
24
+ */
25
+ render(templateId: string, data: TemplateData, options?: RenderOptions): Promise<string>;
26
+ /**
27
+ * Render template to HTML (convenience method)
28
+ */
29
+ renderToHtml(templateId: string, data: TemplateData, variant?: string): Promise<string>;
30
+ /**
31
+ * Render template to plain text (convenience method)
32
+ */
33
+ renderToText(templateId: string, data: TemplateData, variant?: string): Promise<string>;
34
+ /**
35
+ * Get variant for rendering
36
+ */
37
+ private _getVariant;
38
+ /**
39
+ * Get variant for a specific channel
40
+ * Useful for NotificationService to auto-detect correct variant
41
+ */
42
+ getVariantForChannel(channel: string): string;
43
+ /**
44
+ * Register custom filter
45
+ */
46
+ registerFilter(name: string, fn: (value: unknown, ...args: unknown[]) => unknown): void;
47
+ /**
48
+ * Update metrics
49
+ */
50
+ private _updateMetrics;
51
+ /**
52
+ * Get engine metrics
53
+ */
54
+ getMetrics(): TemplateEngineMetrics;
55
+ /**
56
+ * Clear caches
57
+ */
58
+ clear(): void;
59
+ }
60
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAcjB;;GAEG;AACH,qBAAa,cAAc;IAad,OAAO,CAAC,MAAM;IAZ1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAMb;IACF,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,iBAAiB,CAAyB;gBAE9B,MAAM,EAAE,oBAAoB;IAchD;;OAEG;IACG,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IAmDlB;;OAEG;IACG,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAOlB;;OAEG;IACG,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAOlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,cAAc,CACb,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACjD,IAAI;IAIP;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,UAAU,IAAI,qBAAqB;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGb"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Template System Public API
3
+ */
4
+ export * from "./types";
5
+ export { TemplateEngine } from "./engine";
6
+ export { TemplateLoader } from "./loader";
7
+ export { SimpleRenderer } from "./renderers/simple";
8
+ export { MarkdownRenderer } from "./renderers/markdown";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Template Loader
3
+ *
4
+ * Loads templates from the filesystem with support for:
5
+ * - YAML front matter (metadata)
6
+ * - Template variants (channel-specific sections)
7
+ * - In-memory caching with TTL
8
+ * - Hot reload in development mode
9
+ */
10
+ import type { Template, TemplateLoaderOptions } from "./types";
11
+ /**
12
+ * Template loader with caching and hot reload
13
+ */
14
+ export declare class TemplateLoader {
15
+ private options;
16
+ private cache;
17
+ private watchers;
18
+ private metrics;
19
+ constructor(options: TemplateLoaderOptions);
20
+ /**
21
+ * Load a template by ID (path like "emails/welcome")
22
+ */
23
+ load(templateId: string): Template;
24
+ /**
25
+ * Load template from disk with variant parsing
26
+ */
27
+ private _loadFromDisk;
28
+ /**
29
+ * Watch template file for changes (development mode)
30
+ */
31
+ private _watchTemplate;
32
+ /**
33
+ * Clear all caches and watchers
34
+ */
35
+ clear(): void;
36
+ /**
37
+ * Get loader metrics
38
+ */
39
+ getMetrics(): {
40
+ loads: number;
41
+ cacheHits: number;
42
+ cacheMisses: number;
43
+ };
44
+ }
45
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/templates/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACX,QAAQ,EACR,qBAAqB,EAErB,MAAM,SAAS,CAAC;AAuJjB;;GAEG;AACH,qBAAa,cAAc;IAUd,OAAO,CAAC,OAAO;IAT3B,OAAO,CAAC,KAAK,CACF;IACX,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,OAAO,CAIb;gBAEkB,OAAO,EAAE,qBAAqB;IAQlD;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IA+ClC;;OAEG;IACH,OAAO,CAAC,aAAa;IAiDrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,UAAU;;;;;CAGV"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Markdown Renderer
3
+ *
4
+ * Converts Markdown to HTML or plain text.
5
+ * Lightweight implementation supporting:
6
+ * - Headings (# ## ###)
7
+ * - Bold/italic (*text*, **text**)
8
+ * - Lists (- item, 1. item)
9
+ * - Links [text](url)
10
+ * - Code (`inline`)
11
+ * - Blockquotes (> quote)
12
+ * - Paragraphs (blank line separated)
13
+ *
14
+ * NOT supported (kept lightweight):
15
+ * - Tables
16
+ * - Code blocks with syntax highlighting
17
+ * - Complex nesting
18
+ * - Strikethrough
19
+ * - Footnotes
20
+ */
21
+ /**
22
+ * Markdown to HTML renderer
23
+ */
24
+ export declare class MarkdownRenderer {
25
+ /**
26
+ * Convert Markdown string to HTML
27
+ */
28
+ static toHtml(markdown: string): string;
29
+ /**
30
+ * Convert Markdown string to plain text
31
+ */
32
+ static toText(markdown: string): string;
33
+ /**
34
+ * Process ordered lists (1. 2. 3.)
35
+ */
36
+ private static _processOrderedLists;
37
+ /**
38
+ * Process unordered lists (- * +)
39
+ */
40
+ private static _processUnorderedLists;
41
+ /**
42
+ * Process paragraphs (blank line separated)
43
+ */
44
+ private static _processParagraphs;
45
+ }
46
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/templates/renderers/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;GAEG;AACH,qBAAa,gBAAgB;IAC5B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiDvC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmCnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAmCrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAmBjC"}