create-fluxstack 1.10.1 → 1.12.1

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 (257) hide show
  1. package/.dockerignore +1 -2
  2. package/Dockerfile +8 -8
  3. package/LLMD/INDEX.md +64 -0
  4. package/LLMD/MAINTENANCE.md +197 -0
  5. package/LLMD/MIGRATION.md +156 -0
  6. package/LLMD/config/.gitkeep +1 -0
  7. package/LLMD/config/declarative-system.md +268 -0
  8. package/LLMD/config/environment-vars.md +327 -0
  9. package/LLMD/config/runtime-reload.md +401 -0
  10. package/LLMD/core/.gitkeep +1 -0
  11. package/LLMD/core/build-system.md +599 -0
  12. package/LLMD/core/framework-lifecycle.md +229 -0
  13. package/LLMD/core/plugin-system.md +451 -0
  14. package/LLMD/patterns/.gitkeep +1 -0
  15. package/LLMD/patterns/anti-patterns.md +297 -0
  16. package/LLMD/patterns/project-structure.md +264 -0
  17. package/LLMD/patterns/type-safety.md +440 -0
  18. package/LLMD/reference/.gitkeep +1 -0
  19. package/LLMD/reference/cli-commands.md +250 -0
  20. package/LLMD/reference/plugin-hooks.md +357 -0
  21. package/LLMD/reference/routing.md +39 -0
  22. package/LLMD/reference/troubleshooting.md +364 -0
  23. package/LLMD/resources/.gitkeep +1 -0
  24. package/LLMD/resources/controllers.md +465 -0
  25. package/LLMD/resources/live-components.md +703 -0
  26. package/LLMD/resources/live-rooms.md +482 -0
  27. package/LLMD/resources/live-upload.md +130 -0
  28. package/LLMD/resources/plugins-external.md +617 -0
  29. package/LLMD/resources/routes-eden.md +254 -0
  30. package/README.md +37 -17
  31. package/app/client/index.html +0 -1
  32. package/app/client/src/App.tsx +107 -150
  33. package/app/client/src/components/AppLayout.tsx +68 -0
  34. package/app/client/src/components/BackButton.tsx +13 -0
  35. package/app/client/src/components/DemoPage.tsx +20 -0
  36. package/app/client/src/components/LiveUploadWidget.tsx +204 -0
  37. package/app/client/src/lib/eden-api.ts +85 -60
  38. package/app/client/src/live/ChatDemo.tsx +107 -0
  39. package/app/client/src/live/CounterDemo.tsx +206 -0
  40. package/app/client/src/live/FormDemo.tsx +119 -0
  41. package/app/client/src/live/RoomChatDemo.tsx +161 -0
  42. package/app/client/src/live/UploadDemo.tsx +21 -0
  43. package/app/client/src/main.tsx +4 -1
  44. package/app/client/src/pages/ApiTestPage.tsx +108 -0
  45. package/app/client/src/pages/HomePage.tsx +76 -0
  46. package/app/server/app.ts +1 -4
  47. package/app/server/controllers/users.controller.ts +36 -44
  48. package/app/server/index.ts +25 -35
  49. package/app/server/live/LiveChat.ts +77 -0
  50. package/app/server/live/LiveCounter.ts +67 -0
  51. package/app/server/live/LiveForm.ts +63 -0
  52. package/app/server/live/LiveLocalCounter.ts +32 -0
  53. package/app/server/live/LiveRoomChat.ts +127 -0
  54. package/app/server/live/LiveUpload.ts +81 -0
  55. package/app/server/routes/index.ts +3 -1
  56. package/app/server/routes/room.routes.ts +117 -0
  57. package/app/server/routes/users.routes.ts +35 -27
  58. package/app/shared/types/index.ts +14 -2
  59. package/config/app.config.ts +2 -62
  60. package/config/client.config.ts +2 -95
  61. package/config/database.config.ts +2 -99
  62. package/config/fluxstack.config.ts +25 -45
  63. package/config/index.ts +57 -38
  64. package/config/monitoring.config.ts +2 -114
  65. package/config/plugins.config.ts +2 -80
  66. package/config/server.config.ts +2 -68
  67. package/config/services.config.ts +2 -130
  68. package/config/system/app.config.ts +29 -0
  69. package/config/system/build.config.ts +49 -0
  70. package/config/system/client.config.ts +68 -0
  71. package/config/system/database.config.ts +17 -0
  72. package/config/system/fluxstack.config.ts +114 -0
  73. package/config/{logger.config.ts → system/logger.config.ts} +3 -1
  74. package/config/system/monitoring.config.ts +114 -0
  75. package/config/system/plugins.config.ts +84 -0
  76. package/config/{runtime.config.ts → system/runtime.config.ts} +1 -1
  77. package/config/system/server.config.ts +68 -0
  78. package/config/system/services.config.ts +46 -0
  79. package/config/{system.config.ts → system/system.config.ts} +1 -1
  80. package/core/build/flux-plugins-generator.ts +325 -325
  81. package/core/build/index.ts +39 -27
  82. package/core/build/live-components-generator.ts +3 -3
  83. package/core/build/optimizer.ts +235 -235
  84. package/core/cli/command-registry.ts +6 -4
  85. package/core/cli/commands/build.ts +79 -0
  86. package/core/cli/commands/create.ts +54 -0
  87. package/core/cli/commands/dev.ts +101 -0
  88. package/core/cli/commands/help.ts +34 -0
  89. package/core/cli/commands/index.ts +34 -0
  90. package/core/cli/commands/make-plugin.ts +90 -0
  91. package/core/cli/commands/plugin-add.ts +197 -0
  92. package/core/cli/commands/plugin-deps.ts +2 -2
  93. package/core/cli/commands/plugin-list.ts +208 -0
  94. package/core/cli/commands/plugin-remove.ts +170 -0
  95. package/core/cli/generators/component.ts +769 -769
  96. package/core/cli/generators/controller.ts +1 -1
  97. package/core/cli/generators/index.ts +146 -146
  98. package/core/cli/generators/interactive.ts +227 -227
  99. package/core/cli/generators/plugin.ts +2 -2
  100. package/core/cli/generators/prompts.ts +82 -82
  101. package/core/cli/generators/route.ts +6 -6
  102. package/core/cli/generators/service.ts +2 -2
  103. package/core/cli/generators/template-engine.ts +4 -3
  104. package/core/cli/generators/types.ts +2 -2
  105. package/core/cli/generators/utils.ts +191 -191
  106. package/core/cli/index.ts +115 -686
  107. package/core/cli/plugin-discovery.ts +2 -2
  108. package/core/client/LiveComponentsProvider.tsx +60 -8
  109. package/core/client/api/eden.ts +183 -0
  110. package/core/client/api/index.ts +11 -0
  111. package/core/client/components/Live.tsx +104 -0
  112. package/core/client/fluxstack.ts +1 -9
  113. package/core/client/hooks/AdaptiveChunkSizer.ts +215 -215
  114. package/core/client/hooks/state-validator.ts +1 -1
  115. package/core/client/hooks/useAuth.ts +48 -48
  116. package/core/client/hooks/useChunkedUpload.ts +85 -35
  117. package/core/client/hooks/useLiveChunkedUpload.ts +87 -0
  118. package/core/client/hooks/useLiveComponent.ts +800 -0
  119. package/core/client/hooks/useLiveUpload.ts +71 -0
  120. package/core/client/hooks/useRoom.ts +409 -0
  121. package/core/client/hooks/useRoomProxy.ts +382 -0
  122. package/core/client/index.ts +17 -68
  123. package/core/client/standalone-entry.ts +8 -0
  124. package/core/client/standalone.ts +74 -53
  125. package/core/client/state/createStore.ts +192 -192
  126. package/core/client/state/index.ts +14 -14
  127. package/core/config/index.ts +70 -291
  128. package/core/config/schema.ts +42 -723
  129. package/core/framework/client.ts +131 -131
  130. package/core/framework/index.ts +7 -7
  131. package/core/framework/server.ts +47 -40
  132. package/core/framework/types.ts +2 -2
  133. package/core/index.ts +23 -4
  134. package/core/live/ComponentRegistry.ts +3 -3
  135. package/core/live/types.ts +77 -0
  136. package/core/plugins/built-in/index.ts +134 -134
  137. package/core/plugins/built-in/live-components/commands/create-live-component.ts +242 -1066
  138. package/core/plugins/built-in/live-components/index.ts +1 -1
  139. package/core/plugins/built-in/monitoring/index.ts +111 -47
  140. package/core/plugins/built-in/static/index.ts +1 -1
  141. package/core/plugins/built-in/swagger/index.ts +68 -265
  142. package/core/plugins/built-in/vite/index.ts +85 -185
  143. package/core/plugins/built-in/vite/vite-dev.ts +10 -16
  144. package/core/plugins/config.ts +9 -7
  145. package/core/plugins/dependency-manager.ts +31 -1
  146. package/core/plugins/discovery.ts +19 -7
  147. package/core/plugins/executor.ts +2 -2
  148. package/core/plugins/index.ts +203 -203
  149. package/core/plugins/manager.ts +27 -39
  150. package/core/plugins/module-resolver.ts +19 -8
  151. package/core/plugins/registry.ts +255 -19
  152. package/core/plugins/types.ts +20 -53
  153. package/core/server/framework.ts +66 -43
  154. package/core/server/index.ts +15 -15
  155. package/core/server/live/ComponentRegistry.ts +78 -71
  156. package/core/server/live/FileUploadManager.ts +23 -10
  157. package/core/server/live/LiveComponentPerformanceMonitor.ts +1 -1
  158. package/core/server/live/LiveRoomManager.ts +261 -0
  159. package/core/server/live/RoomEventBus.ts +234 -0
  160. package/core/server/live/RoomStateManager.ts +172 -0
  161. package/core/server/live/StateSignature.ts +643 -643
  162. package/core/server/live/WebSocketConnectionManager.ts +30 -19
  163. package/core/server/live/auto-generated-components.ts +21 -9
  164. package/core/server/live/index.ts +14 -0
  165. package/core/server/live/websocket-plugin.ts +214 -67
  166. package/core/server/middleware/elysia-helpers.ts +7 -2
  167. package/core/server/middleware/errorHandling.ts +1 -1
  168. package/core/server/middleware/index.ts +31 -31
  169. package/core/server/plugins/database.ts +180 -180
  170. package/core/server/plugins/static-files-plugin.ts +69 -69
  171. package/core/server/plugins/swagger.ts +1 -1
  172. package/core/server/rooms/RoomBroadcaster.ts +357 -0
  173. package/core/server/rooms/RoomSystem.ts +463 -0
  174. package/core/server/rooms/index.ts +13 -0
  175. package/core/server/services/BaseService.ts +1 -1
  176. package/core/server/services/ServiceContainer.ts +1 -1
  177. package/core/server/services/index.ts +8 -8
  178. package/core/templates/create-project.ts +12 -12
  179. package/core/testing/index.ts +9 -9
  180. package/core/testing/setup.ts +73 -73
  181. package/core/types/api.ts +168 -168
  182. package/core/types/build.ts +219 -219
  183. package/core/types/config.ts +56 -26
  184. package/core/types/index.ts +4 -4
  185. package/core/types/plugin.ts +107 -107
  186. package/core/types/types.ts +353 -14
  187. package/core/utils/build-logger.ts +324 -324
  188. package/core/utils/config-schema.ts +480 -480
  189. package/core/utils/env.ts +2 -8
  190. package/core/utils/errors/codes.ts +114 -114
  191. package/core/utils/errors/handlers.ts +36 -1
  192. package/core/utils/errors/index.ts +49 -5
  193. package/core/utils/errors/middleware.ts +113 -113
  194. package/core/utils/helpers.ts +6 -16
  195. package/core/utils/index.ts +17 -17
  196. package/core/utils/logger/colors.ts +114 -114
  197. package/core/utils/logger/config.ts +13 -9
  198. package/core/utils/logger/formatter.ts +82 -82
  199. package/core/utils/logger/group-logger.ts +101 -101
  200. package/core/utils/logger/index.ts +6 -1
  201. package/core/utils/logger/stack-trace.ts +3 -1
  202. package/core/utils/logger/startup-banner.ts +82 -82
  203. package/core/utils/logger/winston-logger.ts +152 -152
  204. package/core/utils/monitoring/index.ts +211 -211
  205. package/core/utils/sync-version.ts +66 -66
  206. package/core/utils/version.ts +1 -1
  207. package/create-fluxstack.ts +8 -7
  208. package/package.json +12 -13
  209. package/plugins/crypto-auth/cli/make-protected-route.command.ts +1 -1
  210. package/plugins/crypto-auth/client/CryptoAuthClient.ts +302 -302
  211. package/plugins/crypto-auth/client/components/index.ts +11 -11
  212. package/plugins/crypto-auth/client/index.ts +11 -11
  213. package/plugins/crypto-auth/config/index.ts +1 -1
  214. package/plugins/crypto-auth/index.ts +4 -4
  215. package/plugins/crypto-auth/package.json +65 -65
  216. package/plugins/crypto-auth/server/AuthMiddleware.ts +1 -1
  217. package/plugins/crypto-auth/server/CryptoAuthService.ts +185 -185
  218. package/plugins/crypto-auth/server/index.ts +21 -21
  219. package/plugins/crypto-auth/server/middlewares/cryptoAuthAdmin.ts +3 -3
  220. package/plugins/crypto-auth/server/middlewares/cryptoAuthOptional.ts +1 -1
  221. package/plugins/crypto-auth/server/middlewares/cryptoAuthPermissions.ts +2 -2
  222. package/plugins/crypto-auth/server/middlewares/cryptoAuthRequired.ts +2 -2
  223. package/plugins/crypto-auth/server/middlewares/helpers.ts +1 -1
  224. package/plugins/crypto-auth/server/middlewares/index.ts +22 -22
  225. package/tsconfig.api-strict.json +16 -0
  226. package/tsconfig.json +48 -52
  227. package/{app/client/tsconfig.node.json → tsconfig.node.json} +25 -25
  228. package/types/global.d.ts +29 -29
  229. package/types/vitest.d.ts +8 -8
  230. package/vite.config.ts +38 -62
  231. package/vitest.config.live.ts +10 -9
  232. package/vitest.config.ts +29 -17
  233. package/app/client/README.md +0 -69
  234. package/app/client/SIMPLIFICATION.md +0 -140
  235. package/app/client/frontend-only.ts +0 -12
  236. package/app/client/src/live/FileUploadExample.tsx +0 -359
  237. package/app/client/src/live/MinimalLiveClock.tsx +0 -47
  238. package/app/client/src/live/QuickUploadTest.tsx +0 -193
  239. package/app/client/tsconfig.app.json +0 -45
  240. package/app/client/tsconfig.json +0 -7
  241. package/app/client/zustand-setup.md +0 -65
  242. package/app/server/backend-only.ts +0 -18
  243. package/app/server/live/LiveClockComponent.ts +0 -215
  244. package/app/server/live/LiveFileUploadComponent.ts +0 -77
  245. package/app/server/routes/env-test.ts +0 -110
  246. package/core/client/hooks/index.ts +0 -7
  247. package/core/client/hooks/useHybridLiveComponent.ts +0 -685
  248. package/core/client/hooks/useTypedLiveComponent.ts +0 -133
  249. package/core/client/hooks/useWebSocket.ts +0 -361
  250. package/core/config/env.ts +0 -546
  251. package/core/config/loader.ts +0 -522
  252. package/core/config/runtime-config.ts +0 -327
  253. package/core/config/validator.ts +0 -540
  254. package/core/server/backend-entry.ts +0 -51
  255. package/core/server/standalone.ts +0 -106
  256. package/core/utils/regenerate-files.ts +0 -69
  257. package/fluxstack.config.ts +0 -354
@@ -1,69 +0,0 @@
1
- /**
2
- * File Regeneration Utilities
3
- *
4
- * Provides functions to regenerate critical application files that might be
5
- * accidentally deleted by developers.
6
- */
7
-
8
- import { join } from "path"
9
- import { existsSync } from "fs"
10
-
11
- const BACKEND_ONLY_TEMPLATE = `/**
12
- * Backend Standalone Entry Point
13
- *
14
- * This is a minimal wrapper for starting the backend in standalone mode.
15
- * The core logic is protected in @/core/server/backend-entry.ts
16
- *
17
- * You can customize the configuration here if needed.
18
- */
19
-
20
- import { startBackend, createBackendConfig } from "@/core/server/backend-entry"
21
- import { apiRoutes } from "./routes"
22
- import { serverConfig } from "@/config/server.config"
23
-
24
- // Create backend configuration from declarative config
25
- const backendConfig = createBackendConfig(serverConfig)
26
-
27
- // Start backend in standalone mode
28
- startBackend(apiRoutes, backendConfig)
29
- `
30
-
31
- /**
32
- * Check if backend-only.ts exists, regenerate if missing
33
- */
34
- export async function ensureBackendEntry(projectRoot: string = process.cwd()): Promise<boolean> {
35
- const backendOnlyPath = join(projectRoot, "app/server/backend-only.ts")
36
-
37
- if (!existsSync(backendOnlyPath)) {
38
- console.log("⚠️ backend-only.ts not found, regenerating...")
39
-
40
- try {
41
- await Bun.write(backendOnlyPath, BACKEND_ONLY_TEMPLATE)
42
- console.log("✅ backend-only.ts regenerated successfully")
43
- return true
44
- } catch (error) {
45
- console.error("❌ Failed to regenerate backend-only.ts:", error)
46
- return false
47
- }
48
- }
49
-
50
- return true
51
- }
52
-
53
- /**
54
- * Regenerate backend-only.ts file
55
- */
56
- export async function regenerateBackendEntry(projectRoot: string = process.cwd()): Promise<boolean> {
57
- const backendOnlyPath = join(projectRoot, "app/server/backend-only.ts")
58
-
59
- console.log("🔄 Regenerating backend-only.ts...")
60
-
61
- try {
62
- await Bun.write(backendOnlyPath, BACKEND_ONLY_TEMPLATE)
63
- console.log("✅ backend-only.ts regenerated successfully")
64
- return true
65
- } catch (error) {
66
- console.error("❌ Failed to regenerate backend-only.ts:", error)
67
- return false
68
- }
69
- }
@@ -1,354 +0,0 @@
1
- /**
2
- * FluxStack Configuration
3
- * ✅ Refactored to use modular config system from /config
4
- *
5
- * This file composes configs from /config into the FluxStackConfig format
6
- * required by core/config/schema.ts for backward compatibility
7
- */
8
-
9
- import type { FluxStackConfig } from './core/config/schema'
10
- import { env, helpers } from './core/utils/env'
11
-
12
- // Import modular configs
13
- import { appConfig } from './config/app.config'
14
- import { serverConfig } from './config/server.config'
15
- import { clientConfig } from './config/client.config'
16
- import { databaseConfig } from './config/database.config'
17
- import { servicesConfig } from './config/services.config'
18
- import { loggerConfig } from './config/logger.config'
19
- import { pluginsConfig } from './config/plugins.config'
20
- import { monitoringConfig } from './config/monitoring.config'
21
-
22
- console.log(`🔧 Loading FluxStack config for ${appConfig.env} environment`)
23
-
24
- // ============================================================================
25
- // 🚀 MAIN FLUXSTACK CONFIGURATION (Composed from /config)
26
- // ============================================================================
27
-
28
- export const config: FluxStackConfig = {
29
- // Application metadata
30
- app: {
31
- name: appConfig.name,
32
- version: appConfig.version,
33
- description: appConfig.description
34
- },
35
-
36
- // Server configuration
37
- server: {
38
- port: serverConfig.server.port,
39
- host: serverConfig.server.host,
40
- apiPrefix: serverConfig.server.apiPrefix,
41
- cors: {
42
- origins: serverConfig.cors.origins,
43
- methods: serverConfig.cors.methods,
44
- headers: serverConfig.cors.headers,
45
- credentials: serverConfig.cors.credentials,
46
- maxAge: serverConfig.cors.maxAge
47
- },
48
- middleware: [],
49
- showBanner: serverConfig.server.showBanner
50
- },
51
-
52
- // Client configuration
53
- client: {
54
- port: clientConfig.vite.port,
55
- proxy: {
56
- target: clientConfig.proxy.target || helpers.getServerUrl(),
57
- changeOrigin: clientConfig.proxy.changeOrigin
58
- },
59
- build: {
60
- sourceMaps: clientConfig.build.sourceMaps,
61
- minify: clientConfig.build.minify,
62
- target: clientConfig.build.target,
63
- outDir: clientConfig.build.outDir
64
- }
65
- },
66
-
67
- // Build configuration
68
- build: {
69
- target: 'bun',
70
- mode: appConfig.env as 'development' | 'production' | 'test',
71
- outDir: 'dist',
72
- optimization: {
73
- minify: helpers.isProduction(),
74
- treeshake: helpers.isProduction(),
75
- compress: helpers.isProduction(),
76
- splitChunks: true,
77
- bundleAnalyzer: helpers.isDevelopment()
78
- },
79
- sourceMaps: !helpers.isProduction(),
80
- minify: helpers.isProduction(),
81
- treeshake: helpers.isProduction(),
82
- clean: true
83
- },
84
-
85
- // Plugin configuration
86
- plugins: {
87
- enabled: pluginsConfig.enabled,
88
- disabled: pluginsConfig.disabled,
89
- config: {
90
- logger: {
91
- // Logger plugin config handled by logging section
92
- },
93
- swagger: {
94
- title: pluginsConfig.swaggerTitle,
95
- version: pluginsConfig.swaggerVersion,
96
- description: pluginsConfig.swaggerDescription
97
- },
98
- staticFiles: {
99
- publicDir: pluginsConfig.staticPublicDir,
100
- uploadsDir: pluginsConfig.staticUploadsDir,
101
- cacheMaxAge: pluginsConfig.staticCacheMaxAge,
102
- enableUploads: pluginsConfig.staticEnableUploads,
103
- enablePublic: pluginsConfig.staticEnablePublic
104
- }
105
- // ✅ crypto-auth manages its own configuration
106
- // See: plugins/crypto-auth/config/index.ts
107
- }
108
- },
109
-
110
- // Logging configuration
111
- logging: {
112
- level: loggerConfig.level,
113
- format: helpers.isDevelopment() ? 'pretty' : 'json',
114
- transports: [
115
- {
116
- type: 'console' as const,
117
- level: loggerConfig.level,
118
- format: helpers.isDevelopment() ? 'pretty' : 'json'
119
- }
120
- ]
121
- },
122
-
123
- // Monitoring configuration
124
- monitoring: {
125
- enabled: monitoringConfig.monitoring.enabled,
126
- metrics: {
127
- enabled: monitoringConfig.metrics.enabled,
128
- collectInterval: monitoringConfig.metrics.collectInterval,
129
- httpMetrics: monitoringConfig.metrics.httpMetrics,
130
- systemMetrics: monitoringConfig.metrics.systemMetrics,
131
- customMetrics: monitoringConfig.metrics.customMetrics
132
- },
133
- profiling: {
134
- enabled: monitoringConfig.profiling.enabled,
135
- sampleRate: monitoringConfig.profiling.sampleRate,
136
- memoryProfiling: monitoringConfig.profiling.memoryProfiling,
137
- cpuProfiling: monitoringConfig.profiling.cpuProfiling
138
- },
139
- exporters: monitoringConfig.monitoring.exporters
140
- },
141
-
142
- // Optional configurations (only included if configured)
143
- ...(databaseConfig.url || databaseConfig.host
144
- ? {
145
- database: {
146
- url: databaseConfig.url,
147
- host: databaseConfig.host,
148
- port: databaseConfig.port,
149
- database: databaseConfig.database,
150
- user: databaseConfig.user,
151
- password: databaseConfig.password,
152
- ssl: databaseConfig.ssl,
153
- poolSize: databaseConfig.poolMax
154
- }
155
- }
156
- : {}),
157
-
158
- ...(servicesConfig.jwt.secret
159
- ? {
160
- auth: {
161
- secret: servicesConfig.jwt.secret,
162
- expiresIn: servicesConfig.jwt.expiresIn,
163
- algorithm: servicesConfig.jwt.algorithm,
164
- issuer: servicesConfig.jwt.issuer
165
- }
166
- }
167
- : {}),
168
-
169
- ...(servicesConfig.email.host
170
- ? {
171
- email: {
172
- host: servicesConfig.email.host,
173
- port: servicesConfig.email.port,
174
- user: servicesConfig.email.user,
175
- password: servicesConfig.email.password,
176
- secure: servicesConfig.email.secure,
177
- from: servicesConfig.email.from
178
- }
179
- }
180
- : {}),
181
-
182
- ...(servicesConfig.storage.uploadPath
183
- ? {
184
- storage: {
185
- uploadPath: servicesConfig.storage.uploadPath,
186
- maxFileSize: servicesConfig.storage.maxFileSize,
187
- allowedTypes: servicesConfig.storage.allowedTypes,
188
- provider: servicesConfig.storage.provider,
189
- config: {}
190
- }
191
- }
192
- : {}),
193
-
194
- // Environment-specific overrides
195
- environments: {
196
- development: {
197
- logging: {
198
- level: 'debug',
199
- format: 'pretty',
200
- transports: [
201
- {
202
- type: 'console',
203
- level: 'debug',
204
- format: 'pretty'
205
- }
206
- ]
207
- },
208
- client: {
209
- port: 5173,
210
- proxy: { target: 'http://localhost:3000' },
211
- build: {
212
- sourceMaps: true,
213
- minify: false,
214
- target: 'es2020',
215
- outDir: 'dist'
216
- }
217
- },
218
- build: {
219
- target: 'bun',
220
- outDir: 'dist',
221
- optimization: {
222
- minify: false,
223
- compress: false,
224
- treeshake: false,
225
- splitChunks: false,
226
- bundleAnalyzer: false
227
- },
228
- sourceMaps: true,
229
- minify: false,
230
- treeshake: false,
231
- clean: true
232
- },
233
- monitoring: {
234
- enabled: false,
235
- metrics: { enabled: false, collectInterval: 5000, httpMetrics: false, systemMetrics: false, customMetrics: false },
236
- profiling: { enabled: false, sampleRate: 0.1, memoryProfiling: false, cpuProfiling: false },
237
- exporters: []
238
- }
239
- },
240
-
241
- production: {
242
- logging: {
243
- level: 'warn',
244
- format: 'json',
245
- transports: [
246
- {
247
- type: 'console',
248
- level: 'warn',
249
- format: 'json'
250
- },
251
- {
252
- type: 'file',
253
- level: 'error',
254
- format: 'json',
255
- options: {
256
- filename: 'logs/error.log',
257
- maxSize: '10m',
258
- maxFiles: 5
259
- }
260
- }
261
- ]
262
- },
263
- client: {
264
- port: 5173,
265
- proxy: { target: 'http://localhost:3000' },
266
- build: {
267
- sourceMaps: false,
268
- minify: true,
269
- target: 'es2020',
270
- outDir: 'dist'
271
- }
272
- },
273
- build: {
274
- target: 'bun',
275
- outDir: 'dist',
276
- optimization: {
277
- minify: true,
278
- treeshake: false,
279
- compress: false,
280
- splitChunks: false,
281
- bundleAnalyzer: false
282
- },
283
- sourceMaps: false,
284
- minify: true,
285
- treeshake: false,
286
- clean: true
287
- },
288
- monitoring: {
289
- enabled: true,
290
- metrics: {
291
- enabled: true,
292
- collectInterval: 10000,
293
- httpMetrics: true,
294
- systemMetrics: true,
295
- customMetrics: false
296
- },
297
- profiling: {
298
- enabled: true,
299
- sampleRate: 0.01, // Lower sample rate in production
300
- memoryProfiling: true,
301
- cpuProfiling: false
302
- },
303
- exporters: ['console', 'file']
304
- }
305
- },
306
-
307
- test: {
308
- logging: {
309
- level: 'error',
310
- format: 'json',
311
- transports: [
312
- {
313
- type: 'console',
314
- level: 'error',
315
- format: 'json'
316
- }
317
- ]
318
- },
319
- server: {
320
- port: 0, // Use random available port
321
- host: 'localhost',
322
- apiPrefix: '/api',
323
- cors: { origins: [], methods: [], headers: [] },
324
- middleware: []
325
- },
326
- client: {
327
- port: 0, // Use random available port
328
- proxy: { target: 'http://localhost:3000' },
329
- build: { sourceMaps: true, minify: false, target: 'es2020', outDir: 'dist' }
330
- },
331
- monitoring: {
332
- enabled: false,
333
- metrics: { enabled: false, collectInterval: 5000, httpMetrics: false, systemMetrics: false, customMetrics: false },
334
- profiling: { enabled: false, sampleRate: 0.1, memoryProfiling: false, cpuProfiling: false },
335
- exporters: []
336
- }
337
- }
338
- },
339
-
340
- // Custom configuration for application-specific settings
341
- custom: {
342
- // Add any custom configuration here
343
- // This will be merged with environment variables prefixed with FLUXSTACK_
344
- }
345
- }
346
-
347
- // Export as default for ES modules
348
- export default config
349
-
350
- // Named export for backward compatibility
351
- export { config as fluxStackConfig }
352
-
353
- // Export type for TypeScript users
354
- export type { FluxStackConfig } from './core/config/schema'