@buenojs/bueno 0.8.0

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 (120) hide show
  1. package/.env.example +109 -0
  2. package/.github/workflows/ci.yml +31 -0
  3. package/LICENSE +21 -0
  4. package/README.md +892 -0
  5. package/architecture.md +652 -0
  6. package/bun.lock +70 -0
  7. package/dist/cli/index.js +3233 -0
  8. package/dist/index.js +9014 -0
  9. package/package.json +77 -0
  10. package/src/cache/index.ts +795 -0
  11. package/src/cli/ARCHITECTURE.md +837 -0
  12. package/src/cli/bin.ts +10 -0
  13. package/src/cli/commands/build.ts +425 -0
  14. package/src/cli/commands/dev.ts +248 -0
  15. package/src/cli/commands/generate.ts +541 -0
  16. package/src/cli/commands/help.ts +55 -0
  17. package/src/cli/commands/index.ts +112 -0
  18. package/src/cli/commands/migration.ts +355 -0
  19. package/src/cli/commands/new.ts +804 -0
  20. package/src/cli/commands/start.ts +208 -0
  21. package/src/cli/core/args.ts +283 -0
  22. package/src/cli/core/console.ts +349 -0
  23. package/src/cli/core/index.ts +60 -0
  24. package/src/cli/core/prompt.ts +424 -0
  25. package/src/cli/core/spinner.ts +265 -0
  26. package/src/cli/index.ts +135 -0
  27. package/src/cli/templates/deploy.ts +295 -0
  28. package/src/cli/templates/docker.ts +307 -0
  29. package/src/cli/templates/index.ts +24 -0
  30. package/src/cli/utils/fs.ts +428 -0
  31. package/src/cli/utils/index.ts +8 -0
  32. package/src/cli/utils/strings.ts +197 -0
  33. package/src/config/env.ts +408 -0
  34. package/src/config/index.ts +506 -0
  35. package/src/config/loader.ts +329 -0
  36. package/src/config/merge.ts +285 -0
  37. package/src/config/types.ts +320 -0
  38. package/src/config/validation.ts +441 -0
  39. package/src/container/forward-ref.ts +143 -0
  40. package/src/container/index.ts +386 -0
  41. package/src/context/index.ts +360 -0
  42. package/src/database/index.ts +1142 -0
  43. package/src/database/migrations/index.ts +371 -0
  44. package/src/database/schema/index.ts +619 -0
  45. package/src/frontend/api-routes.ts +640 -0
  46. package/src/frontend/bundler.ts +643 -0
  47. package/src/frontend/console-client.ts +419 -0
  48. package/src/frontend/console-stream.ts +587 -0
  49. package/src/frontend/dev-server.ts +846 -0
  50. package/src/frontend/file-router.ts +611 -0
  51. package/src/frontend/frameworks/index.ts +106 -0
  52. package/src/frontend/frameworks/react.ts +85 -0
  53. package/src/frontend/frameworks/solid.ts +104 -0
  54. package/src/frontend/frameworks/svelte.ts +110 -0
  55. package/src/frontend/frameworks/vue.ts +92 -0
  56. package/src/frontend/hmr-client.ts +663 -0
  57. package/src/frontend/hmr.ts +728 -0
  58. package/src/frontend/index.ts +342 -0
  59. package/src/frontend/islands.ts +552 -0
  60. package/src/frontend/isr.ts +555 -0
  61. package/src/frontend/layout.ts +475 -0
  62. package/src/frontend/ssr/react.ts +446 -0
  63. package/src/frontend/ssr/solid.ts +523 -0
  64. package/src/frontend/ssr/svelte.ts +546 -0
  65. package/src/frontend/ssr/vue.ts +504 -0
  66. package/src/frontend/ssr.ts +699 -0
  67. package/src/frontend/types.ts +2274 -0
  68. package/src/health/index.ts +604 -0
  69. package/src/index.ts +410 -0
  70. package/src/lock/index.ts +587 -0
  71. package/src/logger/index.ts +444 -0
  72. package/src/logger/transports/index.ts +969 -0
  73. package/src/metrics/index.ts +494 -0
  74. package/src/middleware/built-in.ts +360 -0
  75. package/src/middleware/index.ts +94 -0
  76. package/src/modules/filters.ts +458 -0
  77. package/src/modules/guards.ts +405 -0
  78. package/src/modules/index.ts +1256 -0
  79. package/src/modules/interceptors.ts +574 -0
  80. package/src/modules/lazy.ts +418 -0
  81. package/src/modules/lifecycle.ts +478 -0
  82. package/src/modules/metadata.ts +90 -0
  83. package/src/modules/pipes.ts +626 -0
  84. package/src/router/index.ts +339 -0
  85. package/src/router/linear.ts +371 -0
  86. package/src/router/regex.ts +292 -0
  87. package/src/router/tree.ts +562 -0
  88. package/src/rpc/index.ts +1263 -0
  89. package/src/security/index.ts +436 -0
  90. package/src/ssg/index.ts +631 -0
  91. package/src/storage/index.ts +456 -0
  92. package/src/telemetry/index.ts +1097 -0
  93. package/src/testing/index.ts +1586 -0
  94. package/src/types/index.ts +236 -0
  95. package/src/types/optional-deps.d.ts +219 -0
  96. package/src/validation/index.ts +276 -0
  97. package/src/websocket/index.ts +1004 -0
  98. package/tests/integration/cli.test.ts +1016 -0
  99. package/tests/integration/fullstack.test.ts +234 -0
  100. package/tests/unit/cache.test.ts +174 -0
  101. package/tests/unit/cli-commands.test.ts +892 -0
  102. package/tests/unit/cli.test.ts +1258 -0
  103. package/tests/unit/container.test.ts +279 -0
  104. package/tests/unit/context.test.ts +221 -0
  105. package/tests/unit/database.test.ts +183 -0
  106. package/tests/unit/linear-router.test.ts +280 -0
  107. package/tests/unit/lock.test.ts +336 -0
  108. package/tests/unit/middleware.test.ts +184 -0
  109. package/tests/unit/modules.test.ts +142 -0
  110. package/tests/unit/pubsub.test.ts +257 -0
  111. package/tests/unit/regex-router.test.ts +265 -0
  112. package/tests/unit/router.test.ts +373 -0
  113. package/tests/unit/rpc.test.ts +1248 -0
  114. package/tests/unit/security.test.ts +174 -0
  115. package/tests/unit/telemetry.test.ts +371 -0
  116. package/tests/unit/test-cache.test.ts +110 -0
  117. package/tests/unit/test-database.test.ts +282 -0
  118. package/tests/unit/tree-router.test.ts +325 -0
  119. package/tests/unit/validation.test.ts +794 -0
  120. package/tsconfig.json +27 -0
@@ -0,0 +1,342 @@
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
+
10
+ // ============= Types =============
11
+
12
+ export type {
13
+ FrontendFramework,
14
+ FrameworkDetectionMode,
15
+ DevServerConfig,
16
+ PartialDevServerConfig,
17
+ DevServerState,
18
+ RequestInfo,
19
+ FileResolution,
20
+ PackageDependencies,
21
+ FrameworkDetectionResult,
22
+ TransformResult,
23
+ TransformOptions,
24
+ DevServerMiddleware,
25
+ DevServerEvent,
26
+ DevServerEventListener,
27
+ ErrorResponse,
28
+ // HMR Types
29
+ HMRClient,
30
+ HMRUpdateError,
31
+ HMRUpdate,
32
+ HMRConfig,
33
+ HMRDependencyNode,
34
+ HMRModuleUpdate,
35
+ HMRClientMessage,
36
+ HMRServerMessage,
37
+ FileChangeEvent,
38
+ // Console Stream Types
39
+ ConsoleMessageType,
40
+ ConsoleMessage,
41
+ ConsoleStreamConfig,
42
+ PartialConsoleStreamConfig,
43
+ ConsoleStreamClient,
44
+ ConsoleClientMessage,
45
+ ConsoleServerMessage,
46
+ // Bundler Types
47
+ BuildPlugin,
48
+ SourcemapOption,
49
+ BuildTarget,
50
+ OutputFormat,
51
+ BundlerConfig,
52
+ PartialBundlerConfig,
53
+ BuildOutput,
54
+ BuildError,
55
+ BuildWarning,
56
+ BuildResult,
57
+ FrameworkBuildConfig,
58
+ BuildManifest,
59
+ BundleAnalysis,
60
+ BuildWatchCallback,
61
+ BundlerState,
62
+ // SSR Types
63
+ SSRElement,
64
+ SSRContext,
65
+ RenderResult,
66
+ SSRPage,
67
+ SSRConfig,
68
+ PartialSSRConfig,
69
+ FrameworkSSRRenderer,
70
+ SSRHydrationData,
71
+ SSRError,
72
+ SSRRenderOptions,
73
+ PreloadLink,
74
+ } from "./types.js";
75
+
76
+ // ============= Dev Server =============
77
+
78
+ export { DevServer, createDevServer } from "./dev-server.js";
79
+
80
+ // ============= HMR =============
81
+
82
+ export { HMRManager, createHMRManager, isHMRBoundary, parseImports } from "./hmr.js";
83
+ export { HMR_CLIENT_SCRIPT, getHMRClientScript, injectHMRScript } from "./hmr-client.js";
84
+
85
+ // ============= Console Stream =============
86
+
87
+ export {
88
+ ConsoleStreamManager,
89
+ createConsoleStreamManager,
90
+ injectConsoleScript
91
+ } from "./console-stream.js";
92
+ export {
93
+ CONSOLE_CLIENT_SCRIPT,
94
+ getConsoleClientScript
95
+ } from "./console-client.js";
96
+
97
+ // ============= Bundler =============
98
+
99
+ export { Bundler, createBundler, build } from "./bundler.js";
100
+
101
+ // ============= Framework Configurations =============
102
+
103
+ export {
104
+ // React
105
+ getReactBuildConfig,
106
+ isReactComponent,
107
+ getReactRefreshPreamble,
108
+ reactFrameworkMeta,
109
+ // Vue
110
+ getVueBuildConfig,
111
+ isVueComponent,
112
+ isVueJsx,
113
+ getVueBlockTypes,
114
+ vueFrameworkMeta,
115
+ // Svelte
116
+ getSvelteBuildConfig,
117
+ isSvelteComponent,
118
+ getSveltePreprocessConfig,
119
+ getSvelteCompilerOptions,
120
+ svelteFrameworkMeta,
121
+ // Solid
122
+ getSolidBuildConfig,
123
+ isSolidComponent,
124
+ getSolidRefreshPreamble,
125
+ getSolidTransformOptions,
126
+ solidFrameworkMeta,
127
+ // Utilities
128
+ getFrameworkConfig,
129
+ getFrameworkMeta,
130
+ detectFrameworkFromExtension,
131
+ getAllSupportedExtensions,
132
+ isSupportedExtension,
133
+ } from "./frameworks/index.js";
134
+
135
+ export type { FrameworkMeta } from "./frameworks/index.js";
136
+
137
+ // ============= SSR =============
138
+
139
+ export {
140
+ SSRRenderer,
141
+ createSSRRenderer,
142
+ createSSRContext,
143
+ serializeHydrationData,
144
+ deserializeHydrationData,
145
+ generateHTML,
146
+ createPreloadLink,
147
+ mergeHeadElements,
148
+ // Framework renderers
149
+ createReactSSRRenderer,
150
+ createVueSSRRenderer,
151
+ createSvelteSSRRenderer,
152
+ createSolidSSRRenderer,
153
+ } from "./ssr.js";
154
+
155
+ export type {
156
+ ReactSSRRenderer,
157
+ VueSSRRenderer,
158
+ SvelteSSRRenderer,
159
+ SolidSSRRenderer,
160
+ } from "./ssr.js";
161
+
162
+ // React SSR utilities
163
+ export {
164
+ resetHead as resetReactHead,
165
+ getHeadElements as getReactHeadElements,
166
+ addHeadElement as addReactHeadElement,
167
+ title as reactTitle,
168
+ meta as reactMeta,
169
+ link as reactLink,
170
+ script as reactScript,
171
+ style as reactStyle,
172
+ ReactHelmet,
173
+ helmet,
174
+ ssrElementToString as reactSsrElementToString,
175
+ } from "./ssr/react.js";
176
+
177
+ // Vue SSR utilities
178
+ export {
179
+ resetHead as resetVueHead,
180
+ getHeadElements as getVueHeadElements,
181
+ addHeadElement as addVueHeadElement,
182
+ VueMeta,
183
+ vueMeta,
184
+ ssrElementToString as vueSsrElementToString,
185
+ useHead as useVueHead,
186
+ createVueSSRContext,
187
+ } from "./ssr/vue.js";
188
+
189
+ // Svelte SSR utilities
190
+ export {
191
+ resetHead as resetSvelteHead,
192
+ getHeadElements as getSvelteHeadElements,
193
+ addHeadElement as addSvelteHeadElement,
194
+ getHeadString as getSvelteHeadString,
195
+ SvelteHead,
196
+ svelteHead,
197
+ ssrElementToString as svelteSsrElementToString,
198
+ loadSvelteComponent,
199
+ createSvelteSSRContext,
200
+ SveltePageStore,
201
+ getPageStore,
202
+ } from "./ssr/svelte.js";
203
+
204
+ // Solid SSR utilities
205
+ export {
206
+ resetHead as resetSolidHead,
207
+ getHeadElements as getSolidHeadElements,
208
+ addHeadElement as addSolidHeadElement,
209
+ SolidMeta,
210
+ solidMeta,
211
+ ssrElementToString as solidSsrElementToString,
212
+ createSolidSSRContext,
213
+ createRouteData,
214
+ SolidResource,
215
+ createSolidResource,
216
+ NO_HYDRATE,
217
+ noHydrate,
218
+ } from "./ssr/solid.js";
219
+ // ============= ISR Types =============
220
+ export type {
221
+ ISRCacheEntry,
222
+ ISRPageConfig,
223
+ ISRConfig,
224
+ PartialISRConfig,
225
+ ISRRevalidationResult,
226
+ ISRStats,
227
+ } from "./types.js";
228
+
229
+ // ============= ISR =============
230
+ export {
231
+ ISRManager,
232
+ createISRManager,
233
+ parseRevalidateHeader,
234
+ generateCacheControlHeader,
235
+ shouldRegenerate,
236
+ } from "./isr.js";
237
+ // ============= Island Types =============
238
+ export type {
239
+ IslandHydrationStrategy,
240
+ IslandConfig,
241
+ IslandDefinition,
242
+ IslandRegistry,
243
+ IslandRenderResult,
244
+ IslandState,
245
+ IslandHydrationScript,
246
+ } from "./types.js";
247
+
248
+ // ============= Islands =============
249
+ export {
250
+ IslandManager,
251
+ createIslandManager,
252
+ defineIsland,
253
+ isIslandElement,
254
+ getIslandData,
255
+ getIslandAttributes,
256
+ createIslandElement,
257
+ parseIslandsFromHTML,
258
+ getHydrationPriority,
259
+ sortIslandsByPriority,
260
+ } from "./islands.js";
261
+ // ============= File Router Types =============
262
+ export type {
263
+ RouteType,
264
+ RouteDefinition,
265
+ DynamicRoute,
266
+ RouteMatch,
267
+ RouteHandler,
268
+ RouteMiddleware,
269
+ FileRouterConfig,
270
+ PartialFileRouterConfig,
271
+ FileRouteOptions,
272
+ } from "./types.js";
273
+
274
+ // ============= File Router =============
275
+ export {
276
+ FileRouter,
277
+ createFileRouter,
278
+ isDynamicRoute,
279
+ isCatchAllRoute,
280
+ getRouteParams,
281
+ normalizeRoutePath,
282
+ compareRouteSpecificity,
283
+ } from "./file-router.js";
284
+ // ============= Layout Types =============
285
+ export type {
286
+ LayoutDefinition,
287
+ LayoutNode,
288
+ LayoutTree,
289
+ LayoutProps,
290
+ LayoutRenderer,
291
+ LayoutMiddleware,
292
+ LayoutConfig,
293
+ PartialLayoutConfig,
294
+ LayoutRenderResult,
295
+ LayoutSegment,
296
+ } from "./types.js";
297
+
298
+ // ============= Layout =============
299
+ export {
300
+ LayoutManager,
301
+ createLayoutManager,
302
+ isLayoutFile,
303
+ getLayoutSegmentFromPath,
304
+ buildLayoutProps,
305
+ createLayoutSegment,
306
+ mergeLayoutHead,
307
+ layoutTreeToString,
308
+ } from "./layout.js";
309
+ // ============= API Routes Types =============
310
+ export type {
311
+ HTTPMethod,
312
+ APIRouteDefinition,
313
+ APIRouteHandler,
314
+ APIResponse,
315
+ APIMiddleware,
316
+ APIContext,
317
+ APIRouteModule,
318
+ APIRouteConfig,
319
+ PartialAPIRouteConfig,
320
+ } from "./types.js";
321
+
322
+ // ============= API Routes =============
323
+ export {
324
+ APIRouteManager,
325
+ createAPIRouteManager,
326
+ // Response helpers
327
+ json,
328
+ text,
329
+ html,
330
+ redirect,
331
+ error,
332
+ notFound,
333
+ unauthorized,
334
+ forbidden,
335
+ badRequest,
336
+ created,
337
+ noContent,
338
+ // Utility functions
339
+ isAPIRouteFile,
340
+ isMiddlewareFile,
341
+ getModuleMethods,
342
+ } from "./api-routes.js";