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.
- package/.dockerignore +1 -2
- package/Dockerfile +8 -8
- package/LLMD/INDEX.md +64 -0
- package/LLMD/MAINTENANCE.md +197 -0
- package/LLMD/MIGRATION.md +156 -0
- package/LLMD/config/.gitkeep +1 -0
- package/LLMD/config/declarative-system.md +268 -0
- package/LLMD/config/environment-vars.md +327 -0
- package/LLMD/config/runtime-reload.md +401 -0
- package/LLMD/core/.gitkeep +1 -0
- package/LLMD/core/build-system.md +599 -0
- package/LLMD/core/framework-lifecycle.md +229 -0
- package/LLMD/core/plugin-system.md +451 -0
- package/LLMD/patterns/.gitkeep +1 -0
- package/LLMD/patterns/anti-patterns.md +297 -0
- package/LLMD/patterns/project-structure.md +264 -0
- package/LLMD/patterns/type-safety.md +440 -0
- package/LLMD/reference/.gitkeep +1 -0
- package/LLMD/reference/cli-commands.md +250 -0
- package/LLMD/reference/plugin-hooks.md +357 -0
- package/LLMD/reference/routing.md +39 -0
- package/LLMD/reference/troubleshooting.md +364 -0
- package/LLMD/resources/.gitkeep +1 -0
- package/LLMD/resources/controllers.md +465 -0
- package/LLMD/resources/live-components.md +703 -0
- package/LLMD/resources/live-rooms.md +482 -0
- package/LLMD/resources/live-upload.md +130 -0
- package/LLMD/resources/plugins-external.md +617 -0
- package/LLMD/resources/routes-eden.md +254 -0
- package/README.md +37 -17
- package/app/client/index.html +0 -1
- package/app/client/src/App.tsx +107 -150
- package/app/client/src/components/AppLayout.tsx +68 -0
- package/app/client/src/components/BackButton.tsx +13 -0
- package/app/client/src/components/DemoPage.tsx +20 -0
- package/app/client/src/components/LiveUploadWidget.tsx +204 -0
- package/app/client/src/lib/eden-api.ts +85 -60
- package/app/client/src/live/ChatDemo.tsx +107 -0
- package/app/client/src/live/CounterDemo.tsx +206 -0
- package/app/client/src/live/FormDemo.tsx +119 -0
- package/app/client/src/live/RoomChatDemo.tsx +242 -0
- package/app/client/src/live/UploadDemo.tsx +21 -0
- package/app/client/src/main.tsx +4 -1
- package/app/client/src/pages/ApiTestPage.tsx +108 -0
- package/app/client/src/pages/HomePage.tsx +76 -0
- package/app/server/app.ts +1 -4
- package/app/server/controllers/users.controller.ts +36 -44
- package/app/server/index.ts +25 -35
- package/app/server/live/LiveChat.ts +77 -0
- package/app/server/live/LiveCounter.ts +67 -0
- package/app/server/live/LiveForm.ts +63 -0
- package/app/server/live/LiveLocalCounter.ts +32 -0
- package/app/server/live/LiveRoomChat.ts +285 -0
- package/app/server/live/LiveUpload.ts +81 -0
- package/app/server/routes/index.ts +3 -1
- package/app/server/routes/room.routes.ts +117 -0
- package/app/server/routes/users.routes.ts +35 -27
- package/app/shared/types/index.ts +14 -2
- package/config/app.config.ts +2 -62
- package/config/client.config.ts +2 -95
- package/config/database.config.ts +2 -99
- package/config/fluxstack.config.ts +25 -45
- package/config/index.ts +57 -38
- package/config/monitoring.config.ts +2 -114
- package/config/plugins.config.ts +2 -80
- package/config/server.config.ts +2 -68
- package/config/services.config.ts +2 -130
- package/config/system/app.config.ts +29 -0
- package/config/system/build.config.ts +49 -0
- package/config/system/client.config.ts +68 -0
- package/config/system/database.config.ts +17 -0
- package/config/system/fluxstack.config.ts +114 -0
- package/config/{logger.config.ts → system/logger.config.ts} +3 -1
- package/config/system/monitoring.config.ts +114 -0
- package/config/system/plugins.config.ts +84 -0
- package/config/{runtime.config.ts → system/runtime.config.ts} +1 -1
- package/config/system/server.config.ts +68 -0
- package/config/system/services.config.ts +46 -0
- package/config/{system.config.ts → system/system.config.ts} +1 -1
- package/core/build/flux-plugins-generator.ts +325 -325
- package/core/build/index.ts +39 -27
- package/core/build/live-components-generator.ts +3 -3
- package/core/build/optimizer.ts +235 -235
- package/core/cli/command-registry.ts +6 -4
- package/core/cli/commands/build.ts +79 -0
- package/core/cli/commands/create.ts +54 -0
- package/core/cli/commands/dev.ts +101 -0
- package/core/cli/commands/help.ts +34 -0
- package/core/cli/commands/index.ts +34 -0
- package/core/cli/commands/make-plugin.ts +90 -0
- package/core/cli/commands/plugin-add.ts +197 -0
- package/core/cli/commands/plugin-deps.ts +2 -2
- package/core/cli/commands/plugin-list.ts +208 -0
- package/core/cli/commands/plugin-remove.ts +170 -0
- package/core/cli/generators/component.ts +769 -769
- package/core/cli/generators/controller.ts +1 -1
- package/core/cli/generators/index.ts +146 -146
- package/core/cli/generators/interactive.ts +227 -227
- package/core/cli/generators/plugin.ts +2 -2
- package/core/cli/generators/prompts.ts +82 -82
- package/core/cli/generators/route.ts +6 -6
- package/core/cli/generators/service.ts +2 -2
- package/core/cli/generators/template-engine.ts +4 -3
- package/core/cli/generators/types.ts +2 -2
- package/core/cli/generators/utils.ts +191 -191
- package/core/cli/index.ts +115 -686
- package/core/cli/plugin-discovery.ts +2 -2
- package/core/client/LiveComponentsProvider.tsx +60 -8
- package/core/client/api/eden.ts +183 -0
- package/core/client/api/index.ts +11 -0
- package/core/client/components/Live.tsx +104 -0
- package/core/client/fluxstack.ts +1 -9
- package/core/client/hooks/AdaptiveChunkSizer.ts +215 -215
- package/core/client/hooks/state-validator.ts +1 -1
- package/core/client/hooks/useAuth.ts +48 -48
- package/core/client/hooks/useChunkedUpload.ts +85 -35
- package/core/client/hooks/useLiveChunkedUpload.ts +87 -0
- package/core/client/hooks/useLiveComponent.ts +800 -0
- package/core/client/hooks/useLiveUpload.ts +71 -0
- package/core/client/hooks/useRoom.ts +409 -0
- package/core/client/hooks/useRoomProxy.ts +382 -0
- package/core/client/index.ts +17 -68
- package/core/client/standalone-entry.ts +8 -0
- package/core/client/standalone.ts +74 -53
- package/core/client/state/createStore.ts +192 -192
- package/core/client/state/index.ts +14 -14
- package/core/config/index.ts +70 -291
- package/core/config/schema.ts +42 -723
- package/core/framework/client.ts +131 -131
- package/core/framework/index.ts +7 -7
- package/core/framework/server.ts +47 -40
- package/core/framework/types.ts +2 -2
- package/core/index.ts +23 -4
- package/core/live/ComponentRegistry.ts +3 -3
- package/core/live/types.ts +77 -0
- package/core/plugins/built-in/index.ts +134 -134
- package/core/plugins/built-in/live-components/commands/create-live-component.ts +242 -1066
- package/core/plugins/built-in/live-components/index.ts +1 -1
- package/core/plugins/built-in/monitoring/index.ts +111 -47
- package/core/plugins/built-in/static/index.ts +1 -1
- package/core/plugins/built-in/swagger/index.ts +68 -265
- package/core/plugins/built-in/vite/index.ts +85 -185
- package/core/plugins/built-in/vite/vite-dev.ts +10 -16
- package/core/plugins/config.ts +9 -7
- package/core/plugins/dependency-manager.ts +31 -1
- package/core/plugins/discovery.ts +19 -7
- package/core/plugins/executor.ts +2 -2
- package/core/plugins/index.ts +203 -203
- package/core/plugins/manager.ts +27 -39
- package/core/plugins/module-resolver.ts +19 -8
- package/core/plugins/registry.ts +255 -19
- package/core/plugins/types.ts +20 -53
- package/core/server/framework.ts +66 -43
- package/core/server/index.ts +15 -15
- package/core/server/live/ComponentRegistry.ts +78 -71
- package/core/server/live/FileUploadManager.ts +23 -10
- package/core/server/live/LiveComponentPerformanceMonitor.ts +1 -1
- package/core/server/live/LiveRoomManager.ts +261 -0
- package/core/server/live/RoomEventBus.ts +234 -0
- package/core/server/live/RoomStateManager.ts +172 -0
- package/core/server/live/StateSignature.ts +643 -643
- package/core/server/live/WebSocketConnectionManager.ts +30 -19
- package/core/server/live/auto-generated-components.ts +21 -9
- package/core/server/live/index.ts +14 -0
- package/core/server/live/websocket-plugin.ts +214 -67
- package/core/server/middleware/elysia-helpers.ts +7 -2
- package/core/server/middleware/errorHandling.ts +1 -1
- package/core/server/middleware/index.ts +31 -31
- package/core/server/plugins/database.ts +180 -180
- package/core/server/plugins/static-files-plugin.ts +69 -69
- package/core/server/plugins/swagger.ts +1 -1
- package/core/server/rooms/RoomBroadcaster.ts +357 -0
- package/core/server/rooms/RoomSystem.ts +463 -0
- package/core/server/rooms/index.ts +13 -0
- package/core/server/services/BaseService.ts +1 -1
- package/core/server/services/ServiceContainer.ts +1 -1
- package/core/server/services/index.ts +8 -8
- package/core/templates/create-project.ts +12 -12
- package/core/testing/index.ts +9 -9
- package/core/testing/setup.ts +73 -73
- package/core/types/api.ts +168 -168
- package/core/types/build.ts +219 -219
- package/core/types/config.ts +56 -26
- package/core/types/index.ts +4 -4
- package/core/types/plugin.ts +107 -107
- package/core/types/types.ts +353 -14
- package/core/utils/build-logger.ts +324 -324
- package/core/utils/config-schema.ts +480 -480
- package/core/utils/env.ts +2 -8
- package/core/utils/errors/codes.ts +114 -114
- package/core/utils/errors/handlers.ts +36 -1
- package/core/utils/errors/index.ts +49 -5
- package/core/utils/errors/middleware.ts +113 -113
- package/core/utils/helpers.ts +6 -16
- package/core/utils/index.ts +17 -17
- package/core/utils/logger/colors.ts +114 -114
- package/core/utils/logger/config.ts +13 -9
- package/core/utils/logger/formatter.ts +82 -82
- package/core/utils/logger/group-logger.ts +101 -101
- package/core/utils/logger/index.ts +6 -1
- package/core/utils/logger/stack-trace.ts +3 -1
- package/core/utils/logger/startup-banner.ts +82 -82
- package/core/utils/logger/winston-logger.ts +152 -152
- package/core/utils/monitoring/index.ts +211 -211
- package/core/utils/sync-version.ts +66 -66
- package/core/utils/version.ts +1 -1
- package/create-fluxstack.ts +8 -7
- package/package.json +12 -13
- package/plugins/crypto-auth/cli/make-protected-route.command.ts +1 -1
- package/plugins/crypto-auth/client/CryptoAuthClient.ts +302 -302
- package/plugins/crypto-auth/client/components/index.ts +11 -11
- package/plugins/crypto-auth/client/index.ts +11 -11
- package/plugins/crypto-auth/config/index.ts +1 -1
- package/plugins/crypto-auth/index.ts +4 -4
- package/plugins/crypto-auth/package.json +65 -65
- package/plugins/crypto-auth/server/AuthMiddleware.ts +1 -1
- package/plugins/crypto-auth/server/CryptoAuthService.ts +185 -185
- package/plugins/crypto-auth/server/index.ts +21 -21
- package/plugins/crypto-auth/server/middlewares/cryptoAuthAdmin.ts +3 -3
- package/plugins/crypto-auth/server/middlewares/cryptoAuthOptional.ts +1 -1
- package/plugins/crypto-auth/server/middlewares/cryptoAuthPermissions.ts +2 -2
- package/plugins/crypto-auth/server/middlewares/cryptoAuthRequired.ts +2 -2
- package/plugins/crypto-auth/server/middlewares/helpers.ts +1 -1
- package/plugins/crypto-auth/server/middlewares/index.ts +22 -22
- package/tsconfig.api-strict.json +16 -0
- package/tsconfig.json +48 -52
- package/{app/client/tsconfig.node.json → tsconfig.node.json} +25 -25
- package/types/global.d.ts +29 -29
- package/types/vitest.d.ts +8 -8
- package/vite.config.ts +38 -62
- package/vitest.config.live.ts +10 -9
- package/vitest.config.ts +29 -17
- package/app/client/README.md +0 -69
- package/app/client/SIMPLIFICATION.md +0 -140
- package/app/client/frontend-only.ts +0 -12
- package/app/client/src/live/FileUploadExample.tsx +0 -359
- package/app/client/src/live/MinimalLiveClock.tsx +0 -47
- package/app/client/src/live/QuickUploadTest.tsx +0 -193
- package/app/client/tsconfig.app.json +0 -45
- package/app/client/tsconfig.json +0 -7
- package/app/client/zustand-setup.md +0 -65
- package/app/server/backend-only.ts +0 -18
- package/app/server/live/LiveClockComponent.ts +0 -215
- package/app/server/live/LiveFileUploadComponent.ts +0 -77
- package/app/server/routes/env-test.ts +0 -110
- package/core/client/hooks/index.ts +0 -7
- package/core/client/hooks/useHybridLiveComponent.ts +0 -685
- package/core/client/hooks/useTypedLiveComponent.ts +0 -133
- package/core/client/hooks/useWebSocket.ts +0 -361
- package/core/config/env.ts +0 -546
- package/core/config/loader.ts +0 -522
- package/core/config/runtime-config.ts +0 -327
- package/core/config/validator.ts +0 -540
- package/core/server/backend-entry.ts +0 -51
- package/core/server/standalone.ts +0 -106
- package/core/utils/regenerate-files.ts +0 -69
- 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
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
4
|
+
import tsconfigPaths from 'vite-tsconfig-paths'
|
|
5
|
+
import checker from 'vite-plugin-checker'
|
|
5
6
|
import { resolve } from 'path'
|
|
6
|
-
import {
|
|
7
|
+
import { clientConfig } from './config/system/client.config'
|
|
8
|
+
import { helpers } from './core/utils/env'
|
|
7
9
|
|
|
8
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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:
|
|
45
|
-
host:
|
|
46
|
-
//
|
|
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:
|
|
50
|
-
port:
|
|
51
|
-
clientPort:
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
})
|
package/vitest.config.live.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
// 🧪 Vitest Configuration for Live Components Tests
|
|
2
2
|
|
|
3
3
|
import { defineConfig } from 'vitest/config'
|
|
4
|
-
import
|
|
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
|
-
|
|
58
|
+
reporters: ['verbose', 'json'],
|
|
55
59
|
outputFile: {
|
|
56
60
|
json: './test-results/live-components.json'
|
|
57
61
|
}
|
|
58
62
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
3
|
-
import {
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
})
|
package/app/client/README.md
DELETED
|
@@ -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
|
-
```
|