@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.
- package/.env.example +109 -0
- package/.github/workflows/ci.yml +31 -0
- package/LICENSE +21 -0
- package/README.md +892 -0
- package/architecture.md +652 -0
- package/bun.lock +70 -0
- package/dist/cli/index.js +3233 -0
- package/dist/index.js +9014 -0
- package/package.json +77 -0
- package/src/cache/index.ts +795 -0
- package/src/cli/ARCHITECTURE.md +837 -0
- package/src/cli/bin.ts +10 -0
- package/src/cli/commands/build.ts +425 -0
- package/src/cli/commands/dev.ts +248 -0
- package/src/cli/commands/generate.ts +541 -0
- package/src/cli/commands/help.ts +55 -0
- package/src/cli/commands/index.ts +112 -0
- package/src/cli/commands/migration.ts +355 -0
- package/src/cli/commands/new.ts +804 -0
- package/src/cli/commands/start.ts +208 -0
- package/src/cli/core/args.ts +283 -0
- package/src/cli/core/console.ts +349 -0
- package/src/cli/core/index.ts +60 -0
- package/src/cli/core/prompt.ts +424 -0
- package/src/cli/core/spinner.ts +265 -0
- package/src/cli/index.ts +135 -0
- package/src/cli/templates/deploy.ts +295 -0
- package/src/cli/templates/docker.ts +307 -0
- package/src/cli/templates/index.ts +24 -0
- package/src/cli/utils/fs.ts +428 -0
- package/src/cli/utils/index.ts +8 -0
- package/src/cli/utils/strings.ts +197 -0
- package/src/config/env.ts +408 -0
- package/src/config/index.ts +506 -0
- package/src/config/loader.ts +329 -0
- package/src/config/merge.ts +285 -0
- package/src/config/types.ts +320 -0
- package/src/config/validation.ts +441 -0
- package/src/container/forward-ref.ts +143 -0
- package/src/container/index.ts +386 -0
- package/src/context/index.ts +360 -0
- package/src/database/index.ts +1142 -0
- package/src/database/migrations/index.ts +371 -0
- package/src/database/schema/index.ts +619 -0
- package/src/frontend/api-routes.ts +640 -0
- package/src/frontend/bundler.ts +643 -0
- package/src/frontend/console-client.ts +419 -0
- package/src/frontend/console-stream.ts +587 -0
- package/src/frontend/dev-server.ts +846 -0
- package/src/frontend/file-router.ts +611 -0
- package/src/frontend/frameworks/index.ts +106 -0
- package/src/frontend/frameworks/react.ts +85 -0
- package/src/frontend/frameworks/solid.ts +104 -0
- package/src/frontend/frameworks/svelte.ts +110 -0
- package/src/frontend/frameworks/vue.ts +92 -0
- package/src/frontend/hmr-client.ts +663 -0
- package/src/frontend/hmr.ts +728 -0
- package/src/frontend/index.ts +342 -0
- package/src/frontend/islands.ts +552 -0
- package/src/frontend/isr.ts +555 -0
- package/src/frontend/layout.ts +475 -0
- package/src/frontend/ssr/react.ts +446 -0
- package/src/frontend/ssr/solid.ts +523 -0
- package/src/frontend/ssr/svelte.ts +546 -0
- package/src/frontend/ssr/vue.ts +504 -0
- package/src/frontend/ssr.ts +699 -0
- package/src/frontend/types.ts +2274 -0
- package/src/health/index.ts +604 -0
- package/src/index.ts +410 -0
- package/src/lock/index.ts +587 -0
- package/src/logger/index.ts +444 -0
- package/src/logger/transports/index.ts +969 -0
- package/src/metrics/index.ts +494 -0
- package/src/middleware/built-in.ts +360 -0
- package/src/middleware/index.ts +94 -0
- package/src/modules/filters.ts +458 -0
- package/src/modules/guards.ts +405 -0
- package/src/modules/index.ts +1256 -0
- package/src/modules/interceptors.ts +574 -0
- package/src/modules/lazy.ts +418 -0
- package/src/modules/lifecycle.ts +478 -0
- package/src/modules/metadata.ts +90 -0
- package/src/modules/pipes.ts +626 -0
- package/src/router/index.ts +339 -0
- package/src/router/linear.ts +371 -0
- package/src/router/regex.ts +292 -0
- package/src/router/tree.ts +562 -0
- package/src/rpc/index.ts +1263 -0
- package/src/security/index.ts +436 -0
- package/src/ssg/index.ts +631 -0
- package/src/storage/index.ts +456 -0
- package/src/telemetry/index.ts +1097 -0
- package/src/testing/index.ts +1586 -0
- package/src/types/index.ts +236 -0
- package/src/types/optional-deps.d.ts +219 -0
- package/src/validation/index.ts +276 -0
- package/src/websocket/index.ts +1004 -0
- package/tests/integration/cli.test.ts +1016 -0
- package/tests/integration/fullstack.test.ts +234 -0
- package/tests/unit/cache.test.ts +174 -0
- package/tests/unit/cli-commands.test.ts +892 -0
- package/tests/unit/cli.test.ts +1258 -0
- package/tests/unit/container.test.ts +279 -0
- package/tests/unit/context.test.ts +221 -0
- package/tests/unit/database.test.ts +183 -0
- package/tests/unit/linear-router.test.ts +280 -0
- package/tests/unit/lock.test.ts +336 -0
- package/tests/unit/middleware.test.ts +184 -0
- package/tests/unit/modules.test.ts +142 -0
- package/tests/unit/pubsub.test.ts +257 -0
- package/tests/unit/regex-router.test.ts +265 -0
- package/tests/unit/router.test.ts +373 -0
- package/tests/unit/rpc.test.ts +1248 -0
- package/tests/unit/security.test.ts +174 -0
- package/tests/unit/telemetry.test.ts +371 -0
- package/tests/unit/test-cache.test.ts +110 -0
- package/tests/unit/test-database.test.ts +282 -0
- package/tests/unit/tree-router.test.ts +325 -0
- package/tests/unit/validation.test.ts +794 -0
- 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";
|