create-fluxstack 1.10.1 → 1.12.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 (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 +242 -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 +285 -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,22 +1,22 @@
1
- /**
2
- * Crypto Auth Middlewares
3
- * Exports centralizados de todos os middlewares
4
- */
5
-
6
- // Middlewares
7
- export { cryptoAuthRequired } from './cryptoAuthRequired'
8
- export { cryptoAuthAdmin } from './cryptoAuthAdmin'
9
- export { cryptoAuthOptional } from './cryptoAuthOptional'
10
- export { cryptoAuthPermissions } from './cryptoAuthPermissions'
11
-
12
- // Helpers
13
- export {
14
- getCryptoAuthUser,
15
- isCryptoAuthAuthenticated,
16
- isCryptoAuthAdmin,
17
- hasCryptoAuthPermission,
18
- type CryptoAuthUser
19
- } from './helpers'
20
-
21
- // Types
22
- export type { CryptoAuthMiddlewareOptions } from './cryptoAuthRequired'
1
+ /**
2
+ * Crypto Auth Middlewares
3
+ * Exports centralizados de todos os middlewares
4
+ */
5
+
6
+ // Middlewares
7
+ export { cryptoAuthRequired } from './cryptoAuthRequired'
8
+ export { cryptoAuthAdmin } from './cryptoAuthAdmin'
9
+ export { cryptoAuthOptional } from './cryptoAuthOptional'
10
+ export { cryptoAuthPermissions } from './cryptoAuthPermissions'
11
+
12
+ // Helpers
13
+ export {
14
+ getCryptoAuthUser,
15
+ isCryptoAuthAuthenticated,
16
+ isCryptoAuthAdmin,
17
+ hasCryptoAuthPermission,
18
+ type CryptoAuthUser
19
+ } from './helpers'
20
+
21
+ // Types
22
+ export type { CryptoAuthMiddlewareOptions } from './cryptoAuthRequired'
@@ -0,0 +1,16 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "strict": true,
5
+ "noImplicitAny": true,
6
+ "strictNullChecks": true,
7
+ "noImplicitReturns": true,
8
+ "noImplicitThis": true,
9
+ "exactOptionalPropertyTypes": true
10
+ },
11
+ "include": [
12
+ "app/server/routes/**/*",
13
+ "app/server/controllers/**/*",
14
+ "app/shared/types/**/*"
15
+ ]
16
+ }
package/tsconfig.json CHANGED
@@ -1,52 +1,48 @@
1
- {
2
- "compilerOptions": {
3
- // Enable latest features
4
- "lib": ["ESNext", "DOM", "DOM.Iterable"],
5
- "target": "ES2022",
6
- "module": "ES2022",
7
- "moduleDetection": "force",
8
- "jsx": "react-jsx",
9
- "allowJs": true,
10
- "types": ["node"],
11
- "typeRoots": ["./types", "./node_modules/@types"],
12
-
13
- // Bundler mode
14
- "moduleResolution": "bundler",
15
- "allowImportingTsExtensions": true,
16
- "verbatimModuleSyntax": true,
17
- "noEmit": true,
18
- "downlevelIteration": true,
19
-
20
- // Path mapping (alias support)
21
- "baseUrl": ".",
22
- "paths": {
23
- "@/*": ["./*"],
24
- "@/core/*": ["./core/*"],
25
- "@/app/*": ["./app/*"],
26
- "@/config/*": ["./config/*"],
27
- "@/shared/*": ["./app/shared/*"]
28
- },
29
-
30
- // Best practices
31
- "strict": false,
32
- "skipLibCheck": true,
33
- "noFallthroughCasesInSwitch": true,
34
- "noImplicitAny": false,
35
- "strictNullChecks": false,
36
- "strictFunctionTypes": false,
37
- "noImplicitReturns": false,
38
- "noImplicitThis": false,
39
-
40
- // Some stricter flags (disabled by default)
41
- "noUnusedLocals": false,
42
- "noUnusedParameters": false,
43
- "noPropertyAccessFromIndexSignature": false
44
- },
45
- "exclude": [
46
- "examples/**/*",
47
- "**/*.test.ts",
48
- "**/__tests__/**/*",
49
- "run-env-tests.ts",
50
- "plugins/**/scripts/**/*"
51
- ]
52
- }
1
+ {
2
+ "compilerOptions": {
3
+ // Enable latest features
4
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
5
+ "target": "ES2022",
6
+ "module": "ES2022",
7
+ "moduleDetection": "force",
8
+ "jsx": "react-jsx",
9
+ "allowJs": true,
10
+ "types": ["node"],
11
+ "typeRoots": ["./types", "./node_modules/@types"],
12
+
13
+ // Bundler mode
14
+ "moduleResolution": "bundler",
15
+ "allowImportingTsExtensions": true,
16
+ "verbatimModuleSyntax": true,
17
+ "noEmit": true,
18
+ "downlevelIteration": true,
19
+
20
+ // Path mapping (alias support)
21
+ "baseUrl": ".",
22
+ "paths": {
23
+ "@/*": ["./*"],
24
+ "@server/*": ["./app/server/*"],
25
+ "@client/*": ["./app/client/*"],
26
+ "@core/*": ["./core/*"],
27
+ "@config": ["./config/index.ts"],
28
+ "@config/*": ["./config/*"],
29
+ "@app/*": ["./app/*"],
30
+ "@shared/*": ["./app/shared/*"],
31
+ "@plugins/*": ["./plugins/*"]
32
+ },
33
+
34
+ // Best practices
35
+ "strict": true,
36
+ "skipLibCheck": true,
37
+ "noFallthroughCasesInSwitch": true,
38
+ "noUnusedLocals": false,
39
+ "noUnusedParameters": false
40
+ },
41
+ "exclude": [
42
+ "examples/**/*",
43
+ "**/*.test.ts",
44
+ "**/__tests__/**/*",
45
+ "run-env-tests.ts",
46
+ "plugins/**/scripts/**/*"
47
+ ]
48
+ }
@@ -1,25 +1,25 @@
1
- {
2
- "compilerOptions": {
3
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
- "target": "ES2023",
5
- "lib": ["ES2023"],
6
- "module": "ESNext",
7
- "skipLibCheck": true,
8
-
9
- /* Bundler mode */
10
- "moduleResolution": "bundler",
11
- "allowImportingTsExtensions": true,
12
- "verbatimModuleSyntax": true,
13
- "moduleDetection": "force",
14
- "noEmit": true,
15
-
16
- /* Linting */
17
- "strict": true,
18
- "noUnusedLocals": true,
19
- "noUnusedParameters": true,
20
- "erasableSyntaxOnly": true,
21
- "noFallthroughCasesInSwitch": true,
22
- "noUncheckedSideEffectImports": true
23
- },
24
- "include": ["vite.config.ts"]
25
- }
1
+ {
2
+ "compilerOptions": {
3
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
+ "target": "ES2023",
5
+ "lib": ["ES2023"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "verbatimModuleSyntax": true,
13
+ "moduleDetection": "force",
14
+ "noEmit": true,
15
+
16
+ /* Linting */
17
+ "strict": true,
18
+ "noUnusedLocals": true,
19
+ "noUnusedParameters": true,
20
+ "erasableSyntaxOnly": true,
21
+ "noFallthroughCasesInSwitch": true,
22
+ "noUncheckedSideEffectImports": true
23
+ },
24
+ "include": ["./config/vite.config.ts"]
25
+ }
package/types/global.d.ts CHANGED
@@ -1,30 +1,30 @@
1
- // Global type fixes for FluxStack
2
-
3
- declare global {
4
- interface Window {
5
- location: {
6
- hostname: string
7
- port: string
8
- protocol: string
9
- origin: string
10
- }
11
- }
12
- }
13
-
14
- // Fix for unknown types
15
- declare module "*" {
16
- const content: any
17
- export = content
18
- }
19
-
20
- // Environment types
21
- declare const process: {
22
- env: Record<string, string | undefined>
23
- }
24
-
25
- declare const Bun: {
26
- env: Record<string, string | undefined>
27
- spawn: (options: any) => any
28
- }
29
-
1
+ // Global type fixes for FluxStack
2
+
3
+ declare global {
4
+ interface Window {
5
+ location: {
6
+ hostname: string
7
+ port: string
8
+ protocol: string
9
+ origin: string
10
+ }
11
+ }
12
+ }
13
+
14
+ // Fix for unknown types
15
+ declare module "*" {
16
+ const content: any
17
+ export = content
18
+ }
19
+
20
+ // Environment types
21
+ declare const process: {
22
+ env: Record<string, string | undefined>
23
+ }
24
+
25
+ declare const Bun: {
26
+ env: Record<string, string | undefined>
27
+ spawn: (options: any) => any
28
+ }
29
+
30
30
  export {}
package/types/vitest.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- declare global {
2
- function beforeEach(fn: () => void): void
3
- function describe(name: string, fn: () => void): void
4
- function it(name: string, fn: () => void): void
5
- function test(name: string, fn: () => void): void
6
- function expect(value: any): any
7
- }
8
-
1
+ declare global {
2
+ function beforeEach(fn: () => void): void
3
+ function describe(name: string, fn: () => void): void
4
+ function it(name: string, fn: () => void): void
5
+ function test(name: string, fn: () => void): void
6
+ function expect(value: any): any
7
+ }
8
+
9
9
  export {}
package/vite.config.ts CHANGED
@@ -1,81 +1,57 @@
1
1
  import { defineConfig } from 'vite'
2
2
  import react from '@vitejs/plugin-react'
3
3
  import tailwindcss from '@tailwindcss/vite'
4
- import { nodePolyfills } from 'vite-plugin-node-polyfills'
4
+ import tsconfigPaths from 'vite-tsconfig-paths'
5
+ import checker from 'vite-plugin-checker'
5
6
  import { resolve } from 'path'
6
- import { fileURLToPath, URL } from 'node:url'
7
+ import { clientConfig } from './config/system/client.config'
8
+ import { helpers } from './core/utils/env'
7
9
 
8
- const __dirname = fileURLToPath(new URL('.', import.meta.url))
10
+ // Root directory (vite.config.ts is in project root)
11
+ const rootDir = import.meta.dirname
9
12
 
10
13
  // https://vite.dev/config/
11
14
  export default defineConfig({
12
15
  plugins: [
13
- react(),
16
+ react(),
14
17
  tailwindcss(),
15
- nodePolyfills({
16
- // Para adicionar polyfills específicos do Node.js
17
- include: ['process'],
18
- // Polyfill de globals específicos
19
- globals: {
20
- Buffer: false, // Não precisamos de Buffer
21
- global: true,
22
- process: true,
23
- },
18
+ tsconfigPaths({
19
+ projects: [resolve(rootDir, 'tsconfig.json')]
20
+ }),
21
+ // Only run type checker in development (saves ~5+ minutes in Docker builds)
22
+ helpers.isDevelopment() && checker({
23
+ typescript: true,
24
+ overlay: true
24
25
  })
25
- ],
26
- define: {
27
- __DEFINES__: JSON.stringify({}),
28
- global: 'globalThis',
29
- 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
30
- __HMR_CONFIG_NAME__: JSON.stringify('vite.config.ts'),
31
- __BASE__: JSON.stringify('/'),
32
- __SERVER_HOST__: JSON.stringify('localhost'),
33
- __HMR_PROTOCOL__: JSON.stringify('ws'),
34
- __HMR_PORT__: JSON.stringify(5173),
35
- __HMR_HOSTNAME__: JSON.stringify('localhost'),
36
- __HMR_BASE__: JSON.stringify('/'),
37
- __HMR_DIRECT_TARGET__: JSON.stringify('localhost:5173'),
38
- __HMR_ENABLE_OVERLAY__: JSON.stringify(true),
39
- __HMR_TIMEOUT__: JSON.stringify(30000),
40
- __WS_TOKEN__: JSON.stringify(''),
41
- },
42
- root: 'app/client',
26
+ ].filter(Boolean),
27
+
28
+ root: resolve(rootDir, 'app/client'),
29
+
30
+ // Aliases são lidos do tsconfig.json pelo plugin vite-tsconfig-paths
31
+
43
32
  server: {
44
- port: 5173,
45
- host: true,
46
- // Configuração explícita do HMR para evitar conflito com WebSocket do backend
33
+ port: clientConfig.vite.port, // ✅ From config
34
+ host: clientConfig.vite.host, // ✅ From config
35
+ strictPort: clientConfig.vite.strictPort, // From config
36
+ open: clientConfig.vite.open, // ✅ From config
37
+ allowedHosts: clientConfig.vite.allowedHosts, // ✅ From config (VITE_ALLOWED_HOSTS)
38
+
47
39
  hmr: {
48
40
  protocol: 'ws',
49
- host: 'localhost',
50
- port: 5173,
51
- clientPort: 5173,
52
- },
53
- proxy: {
54
- '/api': {
55
- target: 'http://localhost:3000',
56
- changeOrigin: true,
57
- secure: false,
58
- ws: true, // Habilita proxy WebSocket para live components
59
- }
41
+ host: clientConfig.vite.host,
42
+ port: clientConfig.vite.port,
43
+ clientPort: clientConfig.vite.port
60
44
  }
61
45
  },
46
+
62
47
  build: {
63
- outDir: '../../dist/client'
64
- },
65
- resolve: {
66
- alias: [
67
- { find: 'fluxstack', replacement: resolve(__dirname, './core/client/fluxstack') },
68
- { find: '@/core', replacement: resolve(__dirname, './core') },
69
- { find: '@', replacement: resolve(__dirname, './app/client/src') },
70
- { find: '@/app', replacement: resolve(__dirname, './app') },
71
- { find: '@/config', replacement: resolve(__dirname, './config') },
72
- { find: '@/shared', replacement: resolve(__dirname, './app/shared') },
73
- { find: '@/components', replacement: resolve(__dirname, './app/client/src/components') },
74
- { find: '@/utils', replacement: resolve(__dirname, './app/client/src/utils') },
75
- { find: '@/hooks', replacement: resolve(__dirname, './app/client/src/hooks') },
76
- { find: '@/assets', replacement: resolve(__dirname, './app/client/src/assets') },
77
- { find: '@/lib', replacement: resolve(__dirname, './app/client/src/lib') },
78
- { find: '@/types', replacement: resolve(__dirname, './app/client/src/types') }
79
- ]
48
+ target: clientConfig.build.target, // ✅ From config
49
+ outDir: resolve(rootDir, clientConfig.build.outDir ?? 'dist/client'), // ✅ From config
50
+ sourcemap: clientConfig.build.sourceMaps, // ✅ From config
51
+ minify: clientConfig.build.minify, // ✅ From config
52
+ assetsDir: clientConfig.build.assetsDir, // From config
53
+ cssCodeSplit: clientConfig.build.cssCodeSplit, // From config
54
+ chunkSizeWarningLimit: clientConfig.build.chunkSizeWarningLimit, // From config
55
+ emptyOutDir: clientConfig.build.emptyOutDir // From config
80
56
  }
81
57
  })
@@ -1,9 +1,13 @@
1
1
  // 🧪 Vitest Configuration for Live Components Tests
2
2
 
3
3
  import { defineConfig } from 'vitest/config'
4
- import path from 'path'
4
+ import tsconfigPaths from 'vite-tsconfig-paths'
5
5
 
6
6
  export default defineConfig({
7
+ plugins: [
8
+ tsconfigPaths() // ✅ Reads aliases from tsconfig.json automatically
9
+ ],
10
+
7
11
  test: {
8
12
  name: 'live-components',
9
13
  root: './core/server/live',
@@ -51,18 +55,15 @@ export default defineConfig({
51
55
  maxThreads: 4
52
56
  }
53
57
  },
54
- reporter: ['verbose', 'json'],
58
+ reporters: ['verbose', 'json'],
55
59
  outputFile: {
56
60
  json: './test-results/live-components.json'
57
61
  }
58
62
  },
59
- resolve: {
60
- alias: {
61
- '@': path.resolve(__dirname, './core'),
62
- '@tests': path.resolve(__dirname, './core/server/live/__tests__')
63
- }
64
- },
63
+
64
+ // ℹ️ resolve.alias removed: Automatically read from tsconfig.json via tsconfigPaths plugin
65
+
65
66
  esbuild: {
66
67
  target: 'node18'
67
68
  }
68
- })
69
+ })
package/vitest.config.ts CHANGED
@@ -1,33 +1,45 @@
1
1
  import { defineConfig } from 'vitest/config'
2
- import { fileURLToPath } from 'url'
3
- import { dirname, resolve } from 'path'
4
-
5
- // ES modules compatible __dirname
6
- const __filename = fileURLToPath(import.meta.url)
7
- const __dirname = dirname(__filename)
2
+ import tsconfigPaths from 'vite-tsconfig-paths'
3
+ import { resolve } from 'path'
8
4
 
9
5
  export default defineConfig({
6
+ plugins: [
7
+ tsconfigPaths()
8
+ ],
9
+
10
+ resolve: {
11
+ alias: {
12
+ '@/': resolve(__dirname, './') + '/',
13
+ '@server/': resolve(__dirname, './app/server/') + '/',
14
+ '@client/': resolve(__dirname, './app/client/') + '/',
15
+ '@core/': resolve(__dirname, './core/') + '/',
16
+ '@config/': resolve(__dirname, './config/') + '/',
17
+ '@app/': resolve(__dirname, './app/') + '/',
18
+ '@shared/': resolve(__dirname, './app/shared/') + '/',
19
+ }
20
+ },
21
+
10
22
  test: {
11
23
  globals: true,
12
24
  environment: 'node',
13
25
  include: ['tests/**/*.test.ts'],
14
26
  coverage: {
27
+ provider: 'v8',
15
28
  reporter: ['text', 'json', 'html'],
16
29
  exclude: [
17
30
  'node_modules/',
18
31
  'tests/',
19
32
  '*.config.ts',
20
- 'dist/'
21
- ]
22
- }
23
- },
24
- resolve: {
25
- alias: {
26
- '@': resolve(__dirname, '.'),
27
- '@/core': resolve(__dirname, './core'),
28
- '@/app': resolve(__dirname, './app'),
29
- '@/config': resolve(__dirname, './config'),
30
- '@/shared': resolve(__dirname, './app/shared')
33
+ 'dist/',
34
+ 'ai-context/',
35
+ 'examples/'
36
+ ],
37
+ thresholds: {
38
+ branches: 0,
39
+ functions: 0,
40
+ lines: 0,
41
+ statements: 0
42
+ }
31
43
  }
32
44
  }
33
45
  })
@@ -1,69 +0,0 @@
1
- # React + TypeScript + Vite
2
-
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
-
5
- Currently, two official plugins are available:
6
-
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
-
10
- ## Expanding the ESLint configuration
11
-
12
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
13
-
14
- ```js
15
- export default tseslint.config([
16
- globalIgnores(['dist']),
17
- {
18
- files: ['**/*.{ts,tsx}'],
19
- extends: [
20
- // Other configs...
21
-
22
- // Remove tseslint.configs.recommended and replace with this
23
- ...tseslint.configs.recommendedTypeChecked,
24
- // Alternatively, use this for stricter rules
25
- ...tseslint.configs.strictTypeChecked,
26
- // Optionally, add this for stylistic rules
27
- ...tseslint.configs.stylisticTypeChecked,
28
-
29
- // Other configs...
30
- ],
31
- languageOptions: {
32
- parserOptions: {
33
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
34
- tsconfigRootDir: import.meta.dirname,
35
- },
36
- // other options...
37
- },
38
- },
39
- ])
40
- ```
41
-
42
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
43
-
44
- ```js
45
- // eslint.config.js
46
- import reactX from 'eslint-plugin-react-x'
47
- import reactDom from 'eslint-plugin-react-dom'
48
-
49
- export default tseslint.config([
50
- globalIgnores(['dist']),
51
- {
52
- files: ['**/*.{ts,tsx}'],
53
- extends: [
54
- // Other configs...
55
- // Enable lint rules for React
56
- reactX.configs['recommended-typescript'],
57
- // Enable lint rules for React DOM
58
- reactDom.configs.recommended,
59
- ],
60
- languageOptions: {
61
- parserOptions: {
62
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
63
- tsconfigRootDir: import.meta.dirname,
64
- },
65
- // other options...
66
- },
67
- },
68
- ])
69
- ```