create-fluxstack 1.0.13 → 1.0.14

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 (214) hide show
  1. package/.env.example +29 -29
  2. package/app/client/README.md +69 -69
  3. package/app/client/index.html +14 -13
  4. package/app/client/src/App.tsx +157 -524
  5. package/app/client/src/components/ErrorBoundary.tsx +107 -0
  6. package/app/client/src/components/ErrorDisplay.css +365 -0
  7. package/app/client/src/components/ErrorDisplay.tsx +258 -0
  8. package/app/client/src/components/FluxStackConfig.tsx +1321 -0
  9. package/app/client/src/components/HybridLiveCounter.tsx +140 -0
  10. package/app/client/src/components/LiveClock.tsx +286 -0
  11. package/app/client/src/components/MainLayout.tsx +390 -0
  12. package/app/client/src/components/SidebarNavigation.tsx +391 -0
  13. package/app/client/src/components/StateDemo.tsx +178 -0
  14. package/app/client/src/components/SystemMonitor.tsx +1038 -0
  15. package/app/client/src/components/Teste.tsx +104 -0
  16. package/app/client/src/components/UserProfile.tsx +809 -0
  17. package/app/client/src/hooks/useAuth.ts +39 -0
  18. package/app/client/src/hooks/useNotifications.ts +56 -0
  19. package/app/client/src/lib/eden-api.ts +189 -53
  20. package/app/client/src/lib/errors.ts +340 -0
  21. package/app/client/src/lib/hooks/useErrorHandler.ts +258 -0
  22. package/app/client/src/lib/index.ts +45 -0
  23. package/app/client/src/main.tsx +3 -2
  24. package/app/client/src/pages/ApiDocs.tsx +182 -0
  25. package/app/client/src/pages/Demo.tsx +174 -0
  26. package/app/client/src/pages/HybridLive.tsx +263 -0
  27. package/app/client/src/pages/Overview.tsx +155 -0
  28. package/app/client/src/store/README.md +43 -0
  29. package/app/client/src/store/index.ts +16 -0
  30. package/app/client/src/store/slices/uiSlice.ts +151 -0
  31. package/app/client/src/store/slices/userSlice.ts +161 -0
  32. package/app/client/src/test/README.md +257 -0
  33. package/app/client/src/test/setup.ts +70 -0
  34. package/app/client/src/test/types.ts +12 -0
  35. package/app/client/src/vite-env.d.ts +1 -1
  36. package/app/client/tsconfig.app.json +44 -43
  37. package/app/client/tsconfig.json +7 -7
  38. package/app/client/tsconfig.node.json +25 -25
  39. package/app/client/zustand-setup.md +65 -0
  40. package/app/server/controllers/users.controller.ts +68 -68
  41. package/app/server/index.ts +9 -1
  42. package/app/server/live/CounterComponent.ts +191 -0
  43. package/app/server/live/FluxStackConfig.ts +529 -0
  44. package/app/server/live/LiveClockComponent.ts +214 -0
  45. package/app/server/live/SidebarNavigation.ts +156 -0
  46. package/app/server/live/SystemMonitor.ts +594 -0
  47. package/app/server/live/SystemMonitorIntegration.ts +151 -0
  48. package/app/server/live/TesteComponent.ts +87 -0
  49. package/app/server/live/UserProfileComponent.ts +135 -0
  50. package/app/server/live/register-components.ts +28 -0
  51. package/app/server/middleware/auth.ts +136 -0
  52. package/app/server/middleware/errorHandling.ts +250 -0
  53. package/app/server/middleware/index.ts +10 -0
  54. package/app/server/middleware/rateLimit.ts +193 -0
  55. package/app/server/middleware/requestLogging.ts +215 -0
  56. package/app/server/middleware/validation.ts +270 -0
  57. package/app/server/routes/index.ts +14 -2
  58. package/app/server/routes/upload.ts +92 -0
  59. package/app/server/routes/users.routes.ts +2 -9
  60. package/app/server/services/NotificationService.ts +302 -0
  61. package/app/server/services/UserService.ts +222 -0
  62. package/app/server/services/index.ts +46 -0
  63. package/core/cli/commands/plugin-deps.ts +263 -0
  64. package/core/cli/generators/README.md +339 -0
  65. package/core/cli/generators/component.ts +770 -0
  66. package/core/cli/generators/controller.ts +299 -0
  67. package/core/cli/generators/index.ts +144 -0
  68. package/core/cli/generators/interactive.ts +228 -0
  69. package/core/cli/generators/prompts.ts +83 -0
  70. package/core/cli/generators/route.ts +513 -0
  71. package/core/cli/generators/service.ts +465 -0
  72. package/core/cli/generators/template-engine.ts +154 -0
  73. package/core/cli/generators/types.ts +71 -0
  74. package/core/cli/generators/utils.ts +192 -0
  75. package/core/cli/index.ts +69 -0
  76. package/core/cli/plugin-discovery.ts +16 -85
  77. package/core/client/fluxstack.ts +17 -0
  78. package/core/client/hooks/index.ts +7 -0
  79. package/core/client/hooks/state-validator.ts +130 -0
  80. package/core/client/hooks/useAuth.ts +49 -0
  81. package/core/client/hooks/useChunkedUpload.ts +258 -0
  82. package/core/client/hooks/useHybridLiveComponent.ts +967 -0
  83. package/core/client/hooks/useWebSocket.ts +373 -0
  84. package/core/client/index.ts +47 -0
  85. package/core/client/state/createStore.ts +193 -0
  86. package/core/client/state/index.ts +15 -0
  87. package/core/config/env-dynamic.ts +1 -1
  88. package/core/config/env.ts +2 -1
  89. package/core/config/runtime-config.ts +3 -3
  90. package/core/config/schema.ts +84 -49
  91. package/core/framework/server.ts +30 -0
  92. package/core/index.ts +25 -0
  93. package/core/live/ComponentRegistry.ts +399 -0
  94. package/core/live/types.ts +164 -0
  95. package/core/plugins/built-in/live-components/commands/create-live-component.ts +1201 -0
  96. package/core/plugins/built-in/live-components/index.ts +27 -0
  97. package/core/plugins/built-in/logger/index.ts +1 -1
  98. package/core/plugins/built-in/monitoring/index.ts +1 -1
  99. package/core/plugins/built-in/static/index.ts +1 -1
  100. package/core/plugins/built-in/swagger/index.ts +1 -1
  101. package/core/plugins/built-in/vite/index.ts +1 -1
  102. package/core/plugins/dependency-manager.ts +384 -0
  103. package/core/plugins/index.ts +5 -1
  104. package/core/plugins/manager.ts +7 -3
  105. package/core/plugins/registry.ts +88 -10
  106. package/core/plugins/types.ts +11 -11
  107. package/core/server/framework.ts +43 -0
  108. package/core/server/index.ts +11 -1
  109. package/core/server/live/ComponentRegistry.ts +1017 -0
  110. package/core/server/live/FileUploadManager.ts +272 -0
  111. package/core/server/live/LiveComponentPerformanceMonitor.ts +930 -0
  112. package/core/server/live/SingleConnectionManager.ts +0 -0
  113. package/core/server/live/StateSignature.ts +644 -0
  114. package/core/server/live/WebSocketConnectionManager.ts +688 -0
  115. package/core/server/live/websocket-plugin.ts +435 -0
  116. package/core/server/middleware/errorHandling.ts +141 -0
  117. package/core/server/middleware/index.ts +16 -0
  118. package/core/server/plugins/static-files-plugin.ts +232 -0
  119. package/core/server/services/BaseService.ts +95 -0
  120. package/core/server/services/ServiceContainer.ts +144 -0
  121. package/core/server/services/index.ts +9 -0
  122. package/core/templates/create-project.ts +46 -2
  123. package/core/testing/index.ts +10 -0
  124. package/core/testing/setup.ts +74 -0
  125. package/core/types/build.ts +38 -14
  126. package/core/types/types.ts +319 -0
  127. package/core/utils/env-runtime.ts +7 -0
  128. package/core/utils/errors/handlers.ts +264 -39
  129. package/core/utils/errors/index.ts +528 -18
  130. package/core/utils/errors/middleware.ts +114 -0
  131. package/core/utils/logger/formatters.ts +222 -0
  132. package/core/utils/logger/index.ts +167 -48
  133. package/core/utils/logger/middleware.ts +253 -0
  134. package/core/utils/logger/performance.ts +384 -0
  135. package/core/utils/logger/transports.ts +365 -0
  136. package/create-fluxstack.ts +296 -296
  137. package/fluxstack.config.ts +17 -1
  138. package/package-template.json +66 -66
  139. package/package.json +31 -6
  140. package/public/README.md +16 -0
  141. package/vite.config.ts +29 -14
  142. package/.claude/settings.local.json +0 -74
  143. package/.github/workflows/ci-build-tests.yml +0 -480
  144. package/.github/workflows/dependency-management.yml +0 -324
  145. package/.github/workflows/release-validation.yml +0 -355
  146. package/.kiro/specs/fluxstack-architecture-optimization/design.md +0 -700
  147. package/.kiro/specs/fluxstack-architecture-optimization/requirements.md +0 -127
  148. package/.kiro/specs/fluxstack-architecture-optimization/tasks.md +0 -330
  149. package/CLAUDE.md +0 -200
  150. package/Dockerfile +0 -58
  151. package/Dockerfile.backend +0 -52
  152. package/Dockerfile.frontend +0 -54
  153. package/README-Docker.md +0 -85
  154. package/ai-context/00-QUICK-START.md +0 -86
  155. package/ai-context/README.md +0 -88
  156. package/ai-context/development/eden-treaty-guide.md +0 -362
  157. package/ai-context/development/patterns.md +0 -382
  158. package/ai-context/development/plugins-guide.md +0 -572
  159. package/ai-context/examples/crud-complete.md +0 -626
  160. package/ai-context/project/architecture.md +0 -399
  161. package/ai-context/project/overview.md +0 -213
  162. package/ai-context/recent-changes/eden-treaty-refactor.md +0 -281
  163. package/ai-context/recent-changes/type-inference-fix.md +0 -223
  164. package/ai-context/reference/environment-vars.md +0 -384
  165. package/ai-context/reference/troubleshooting.md +0 -407
  166. package/app/client/src/components/TestPage.tsx +0 -453
  167. package/bun.lock +0 -1063
  168. package/bunfig.toml +0 -16
  169. package/core/__tests__/integration.test.ts +0 -227
  170. package/core/build/index.ts +0 -186
  171. package/core/config/__tests__/config-loader.test.ts +0 -554
  172. package/core/config/__tests__/config-merger.test.ts +0 -657
  173. package/core/config/__tests__/env-converter.test.ts +0 -372
  174. package/core/config/__tests__/env-processor.test.ts +0 -431
  175. package/core/config/__tests__/env.test.ts +0 -452
  176. package/core/config/__tests__/integration.test.ts +0 -418
  177. package/core/config/__tests__/loader.test.ts +0 -331
  178. package/core/config/__tests__/schema.test.ts +0 -129
  179. package/core/config/__tests__/validator.test.ts +0 -318
  180. package/core/framework/__tests__/server.test.ts +0 -233
  181. package/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
  182. package/core/plugins/__tests__/manager.test.ts +0 -398
  183. package/core/plugins/__tests__/monitoring.test.ts +0 -401
  184. package/core/plugins/__tests__/registry.test.ts +0 -335
  185. package/core/utils/__tests__/errors.test.ts +0 -139
  186. package/core/utils/__tests__/helpers.test.ts +0 -297
  187. package/core/utils/__tests__/logger.test.ts +0 -141
  188. package/create-test-app.ts +0 -156
  189. package/docker-compose.microservices.yml +0 -75
  190. package/docker-compose.simple.yml +0 -57
  191. package/docker-compose.yml +0 -71
  192. package/eslint.config.js +0 -23
  193. package/flux-cli.ts +0 -214
  194. package/nginx-lb.conf +0 -37
  195. package/publish.sh +0 -63
  196. package/run-clean.ts +0 -26
  197. package/run-env-tests.ts +0 -313
  198. package/tailwind.config.js +0 -34
  199. package/tests/__mocks__/api.ts +0 -56
  200. package/tests/fixtures/users.ts +0 -69
  201. package/tests/integration/api/users.routes.test.ts +0 -221
  202. package/tests/setup.ts +0 -29
  203. package/tests/unit/app/client/App-simple.test.tsx +0 -56
  204. package/tests/unit/app/client/App.test.tsx.skip +0 -237
  205. package/tests/unit/app/client/eden-api.test.ts +0 -186
  206. package/tests/unit/app/client/simple.test.tsx +0 -23
  207. package/tests/unit/app/controllers/users.controller.test.ts +0 -150
  208. package/tests/unit/core/create-project.test.ts.skip +0 -95
  209. package/tests/unit/core/framework.test.ts +0 -144
  210. package/tests/unit/core/plugins/logger.test.ts.skip +0 -268
  211. package/tests/unit/core/plugins/vite.test.ts.disabled +0 -188
  212. package/tests/utils/test-helpers.ts +0 -61
  213. package/vitest.config.ts +0 -50
  214. package/workspace.json +0 -6
@@ -1,324 +0,0 @@
1
- name: 📦 FluxStack Dependency Management
2
-
3
- on:
4
- schedule:
5
- # Run weekly on Mondays at 9 AM UTC
6
- - cron: '0 9 * * 1'
7
- workflow_dispatch: # Allow manual triggering
8
- push:
9
- paths:
10
- - 'package.json'
11
- - 'bun.lockb'
12
-
13
- env:
14
- BUN_VERSION: '1.1.34'
15
-
16
- jobs:
17
- # 🔍 Dependency analysis
18
- dependency-analysis:
19
- name: 🔍 Dependency Analysis & Health Check
20
- runs-on: ubuntu-latest
21
- steps:
22
- - name: 📥 Checkout repository
23
- uses: actions/checkout@v4
24
-
25
- - name: 🚀 Setup Bun
26
- uses: oven-sh/setup-bun@v1
27
- with:
28
- bun-version: ${{ env.BUN_VERSION }}
29
-
30
- - name: 📦 Install dependencies
31
- run: bun install
32
-
33
- - name: 📊 Analyze dependency tree
34
- run: |
35
- echo "🔍 Analyzing dependency tree..."
36
- echo "📦 Total packages:"
37
- bun pm ls --depth=0 | wc -l
38
-
39
- echo "🎯 Production dependencies:"
40
- bun pm ls --production --depth=0
41
-
42
- echo "🔧 Development dependencies:"
43
- bun pm ls --dev --depth=0
44
-
45
- - name: 🔒 Security audit
46
- run: |
47
- echo "🔒 Running security audit..."
48
- bun audit --json > audit-results.json || true
49
-
50
- if [ -s audit-results.json ]; then
51
- echo "⚠️ Security vulnerabilities found:"
52
- cat audit-results.json
53
- else
54
- echo "✅ No security vulnerabilities detected"
55
- fi
56
-
57
- - name: 📈 Dependency size analysis
58
- run: |
59
- echo "📈 Analyzing package sizes..."
60
- echo "📦 node_modules size:"
61
- du -sh node_modules/
62
-
63
- echo "🎯 Largest packages:"
64
- du -sh node_modules/* | sort -hr | head -10
65
-
66
- - name: 🔍 Check for duplicate dependencies
67
- run: |
68
- echo "🔍 Checking for duplicate dependencies..."
69
- find node_modules -name "package.json" -not -path "*/node_modules/*" | \
70
- xargs grep -l '"name"' | \
71
- xargs grep '"name"' | \
72
- cut -d'"' -f4 | \
73
- sort | \
74
- uniq -d | \
75
- head -10 || echo "✅ No obvious duplicates found"
76
-
77
- # 📊 Monorepo validation
78
- monorepo-validation:
79
- name: 📊 Monorepo Structure Validation
80
- runs-on: ubuntu-latest
81
- steps:
82
- - name: 📥 Checkout repository
83
- uses: actions/checkout@v4
84
-
85
- - name: 🚀 Setup Bun
86
- uses: oven-sh/setup-bun@v1
87
- with:
88
- bun-version: ${{ env.BUN_VERSION }}
89
-
90
- - name: ✅ Validate monorepo structure
91
- run: |
92
- echo "📋 Validating v1.4.0 monorepo structure..."
93
-
94
- # Check single package.json exists
95
- if [ -f "package.json" ]; then
96
- echo "✅ Root package.json exists"
97
- else
98
- echo "❌ Root package.json missing"
99
- exit 1
100
- fi
101
-
102
- # Check no client package.json exists (v1.4.0 requirement)
103
- if [ ! -f "app/client/package.json" ]; then
104
- echo "✅ No separate client package.json (correct for v1.4.0)"
105
- else
106
- echo "❌ Found app/client/package.json - should be removed in v1.4.0"
107
- exit 1
108
- fi
109
-
110
- # Check for problematic separate node_modules (not nested dependencies)
111
- separate_node_modules=""
112
- for dir in app/client app/server core; do
113
- if [ -d "$dir/node_modules" ]; then
114
- separate_node_modules="$separate_node_modules $dir/node_modules"
115
- fi
116
- done
117
-
118
- if [ -z "$separate_node_modules" ]; then
119
- echo "✅ No separate workspace node_modules (correct for v1.4.0 monorepo)"
120
- else
121
- echo "❌ Found separate node_modules in:$separate_node_modules"
122
- echo "💡 These should be removed for v1.4.0 unified structure"
123
- exit 1
124
- fi
125
-
126
- # Check centralized configs
127
- required_configs=("vite.config.ts" "tsconfig.json" "eslint.config.js")
128
- for config in "${required_configs[@]}"; do
129
- if [ -f "$config" ]; then
130
- echo "✅ $config centralized in root"
131
- else
132
- echo "❌ Missing centralized config: $config"
133
- fi
134
- done
135
-
136
- - name: 📦 Validate dependency accessibility
137
- run: |
138
- echo "🔍 Validating dependencies are accessible from both frontend and backend..."
139
- bun install
140
-
141
- # Test frontend dependencies from backend context
142
- cd app/server
143
- if bun run -e "console.log(require('typescript').version)" 2>/dev/null; then
144
- echo "✅ TypeScript accessible from backend"
145
- else
146
- echo "❌ TypeScript not accessible from backend"
147
- fi
148
- cd ../..
149
-
150
- # Test backend dependencies from frontend context
151
- cd app/client/src
152
- if bun run -e "console.log('Dependencies accessible')" 2>/dev/null; then
153
- echo "✅ Dependencies accessible from frontend"
154
- else
155
- echo "❌ Dependencies not accessible from frontend"
156
- fi
157
- cd ../../..
158
-
159
- # 🔄 Update dependencies
160
- update-dependencies:
161
- name: 🔄 Update Dependencies (Safe)
162
- runs-on: ubuntu-latest
163
- if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
164
- steps:
165
- - name: 📥 Checkout repository
166
- uses: actions/checkout@v4
167
- with:
168
- token: ${{ secrets.GITHUB_TOKEN }}
169
-
170
- - name: 🚀 Setup Bun
171
- uses: oven-sh/setup-bun@v1
172
- with:
173
- bun-version: ${{ env.BUN_VERSION }}
174
-
175
- - name: 📦 Install current dependencies
176
- run: bun install
177
-
178
- - name: 🔄 Update non-major dependencies
179
- run: |
180
- echo "🔄 Updating patch and minor versions..."
181
-
182
- # Create backup
183
- cp package.json package.json.backup
184
- cp bun.lockb bun.lockb.backup
185
-
186
- # Update dependencies (patch and minor only)
187
- bun update --save
188
-
189
- echo "✅ Dependencies updated"
190
-
191
- - name: 🧪 Test with updated dependencies
192
- run: |
193
- echo "🧪 Testing with updated dependencies..."
194
-
195
- # Run tests to ensure nothing breaks
196
- bun run test:run
197
-
198
- # Try builds to ensure they still work
199
- echo "🏗️ Testing frontend build..."
200
- bun run build:frontend || echo "⚠️ Frontend build failed, but continuing..."
201
-
202
- echo "🏗️ Testing backend build..."
203
- bun run build:backend || echo "⚠️ Backend build failed, but continuing..."
204
-
205
- echo "✅ All tests and builds passed with updated dependencies"
206
-
207
- - name: 📊 Generate update report
208
- run: |
209
- echo "📊 Generating dependency update report..."
210
-
211
- echo "## 📦 Dependency Updates" > update-report.md
212
- echo "" >> update-report.md
213
- echo "🤖 Automated dependency update for FluxStack v1.4.0" >> update-report.md
214
- echo "" >> update-report.md
215
-
216
- if ! diff -q package.json.backup package.json >/dev/null; then
217
- echo "### 📋 Updated Packages" >> update-report.md
218
- echo "" >> update-report.md
219
- echo "\`\`\`diff" >> update-report.md
220
- diff package.json.backup package.json >> update-report.md || true
221
- echo "\`\`\`" >> update-report.md
222
- else
223
- echo "### ✅ No Updates Available" >> update-report.md
224
- echo "All dependencies are already up to date." >> update-report.md
225
- fi
226
-
227
- echo "" >> update-report.md
228
- echo "### 🧪 Validation Status" >> update-report.md
229
- echo "- ✅ All tests passed" >> update-report.md
230
- echo "- ✅ Frontend build successful" >> update-report.md
231
- echo "- ✅ Backend build successful" >> update-report.md
232
- echo "- ✅ Monorepo structure validated" >> update-report.md
233
-
234
- - name: 📤 Create Pull Request (if updates available)
235
- uses: peter-evans/create-pull-request@v5
236
- with:
237
- token: ${{ secrets.GITHUB_TOKEN }}
238
- commit-message: "🔄 Update dependencies (automated)"
239
- title: "🔄 Automated Dependency Updates"
240
- body-path: update-report.md
241
- branch: automated-dependency-updates
242
- delete-branch: true
243
- if: github.event_name == 'schedule'
244
-
245
- # 🏥 Dependency health monitoring
246
- dependency-health:
247
- name: 🏥 Dependency Health Monitoring
248
- runs-on: ubuntu-latest
249
- steps:
250
- - name: 📥 Checkout repository
251
- uses: actions/checkout@v4
252
-
253
- - name: 🚀 Setup Bun
254
- uses: oven-sh/setup-bun@v1
255
- with:
256
- bun-version: ${{ env.BUN_VERSION }}
257
-
258
- - name: 📦 Install dependencies
259
- run: bun install
260
-
261
- - name: 🏥 Check dependency health
262
- run: |
263
- echo "🏥 Checking dependency health..."
264
-
265
- # Check for known problematic packages
266
- echo "🔍 Checking for potentially problematic dependencies..."
267
-
268
- problematic_packages=("event-stream" "flatmap-stream" "left-pad")
269
- for package in "${problematic_packages[@]}"; do
270
- if bun pm ls | grep -q "$package"; then
271
- echo "⚠️ Found potentially problematic package: $package"
272
- fi
273
- done
274
-
275
- # Check for packages with known security issues
276
- echo "🔒 Checking for packages with known issues..."
277
- bun audit --json > health-audit.json || true
278
-
279
- if [ -s health-audit.json ]; then
280
- echo "⚠️ Security issues detected"
281
- else
282
- echo "✅ No known security issues"
283
- fi
284
-
285
- - name: 📊 Generate health report
286
- run: |
287
- echo "📊 Generating dependency health report..."
288
-
289
- total_deps=$(bun pm ls --depth=0 | wc -l)
290
- prod_deps=$(bun pm ls --production --depth=0 | wc -l)
291
- dev_deps=$(bun pm ls --dev --depth=0 | wc -l)
292
-
293
- echo "📦 Dependency Statistics:"
294
- echo " Total packages: $total_deps"
295
- echo " Production: $prod_deps"
296
- echo " Development: $dev_deps"
297
- echo " Node modules size: $(du -sh node_modules | cut -f1)"
298
-
299
- echo "✅ Dependency health check completed"
300
-
301
- # 📋 Summary job
302
- dependency-summary:
303
- name: 📋 Dependency Management Summary
304
- runs-on: ubuntu-latest
305
- needs: [dependency-analysis, monorepo-validation, dependency-health]
306
- if: always()
307
- steps:
308
- - name: 📋 Summary Report
309
- run: |
310
- echo "📦 FluxStack Dependency Management Summary"
311
- echo "======================================="
312
- echo "🔍 Dependency analysis: ${{ needs.dependency-analysis.result }}"
313
- echo "📊 Monorepo validation: ${{ needs.monorepo-validation.result }}"
314
- echo "🏥 Dependency health: ${{ needs.dependency-health.result }}"
315
- echo ""
316
- echo "🎯 FluxStack v1.4.0 monorepo dependency system validated!"
317
-
318
- - name: ❌ Fail if critical issues found
319
- if: |
320
- needs.dependency-analysis.result == 'failure' ||
321
- needs.monorepo-validation.result == 'failure'
322
- run: |
323
- echo "❌ Critical dependency issues found"
324
- exit 1
@@ -1,355 +0,0 @@
1
- name: 🔒 FluxStack Release Validation & Security
2
-
3
- on:
4
- release:
5
- types: [published, prereleased]
6
- workflow_dispatch:
7
- inputs:
8
- version:
9
- description: 'Version to validate'
10
- required: true
11
- default: 'v1.4.0'
12
-
13
- env:
14
- BUN_VERSION: '1.1.34'
15
-
16
- jobs:
17
- # 🔒 Security and dependency audit
18
- security-audit:
19
- name: 🔒 Security & Dependency Audit
20
- runs-on: ubuntu-latest
21
- steps:
22
- - name: 📥 Checkout repository
23
- uses: actions/checkout@v4
24
-
25
- - name: 🚀 Setup Bun
26
- uses: oven-sh/setup-bun@v1
27
- with:
28
- bun-version: ${{ env.BUN_VERSION }}
29
-
30
- - name: 📦 Install dependencies
31
- run: bun install
32
-
33
- - name: 🔍 Audit dependencies for vulnerabilities
34
- run: |
35
- echo "🔒 Auditing dependencies for security vulnerabilities..."
36
- bun audit || true
37
- echo "✅ Security audit completed"
38
-
39
- - name: 🔍 Check for outdated packages
40
- run: |
41
- echo "📊 Checking for outdated packages..."
42
- bun outdated || true
43
-
44
- - name: 🔍 License compliance check
45
- run: |
46
- echo "⚖️ Checking license compliance..."
47
- bun pm ls --depth=0 | grep -E "(MIT|BSD|Apache|ISC)" || true
48
- echo "✅ License check completed"
49
-
50
- # 📦 Release artifact validation
51
- release-artifacts:
52
- name: 📦 Release Artifacts Validation
53
- runs-on: ubuntu-latest
54
- steps:
55
- - name: 📥 Checkout repository
56
- uses: actions/checkout@v4
57
-
58
- - name: 🚀 Setup Bun
59
- uses: oven-sh/setup-bun@v1
60
- with:
61
- bun-version: ${{ env.BUN_VERSION }}
62
-
63
- - name: 📦 Install dependencies
64
- run: bun install
65
-
66
- - name: 🏗️ Build release artifacts
67
- run: |
68
- echo "🔧 Building release artifacts..."
69
- bun run build
70
-
71
- - name: 📋 Validate build structure
72
- run: |
73
- echo "🔍 Validating release build structure..."
74
-
75
- # Check required files exist
76
- required_files=(
77
- "dist/client/index.html"
78
- "dist/client/assets"
79
- "dist/index.js"
80
- "package.json"
81
- "README.md"
82
- "LICENSE"
83
- "CLAUDE.md"
84
- )
85
-
86
- for file in "${required_files[@]}"; do
87
- if [ -e "$file" ]; then
88
- echo "✅ $file exists"
89
- else
90
- echo "❌ Missing required file: $file"
91
- exit 1
92
- fi
93
- done
94
-
95
- - name: 📊 Analyze bundle sizes
96
- run: |
97
- echo "📈 Analyzing production bundle sizes..."
98
-
99
- # Frontend bundle analysis
100
- if [ -d "dist/client/assets" ]; then
101
- echo "🎨 Frontend bundles:"
102
- find dist/client/assets -name "*.js" -exec ls -lh {} \;
103
- find dist/client/assets -name "*.css" -exec ls -lh {} \;
104
-
105
- # Check for reasonable bundle sizes (warn if too large)
106
- js_size=$(find dist/client/assets -name "*.js" -exec stat -c%s {} \; | sort -n | tail -1)
107
- if [ "$js_size" -gt 1000000 ]; then # 1MB
108
- echo "⚠️ JavaScript bundle is larger than 1MB: ${js_size} bytes"
109
- else
110
- echo "✅ JavaScript bundle size acceptable: ${js_size} bytes"
111
- fi
112
- fi
113
-
114
- # Backend bundle analysis
115
- if [ -f "dist/index.js" ]; then
116
- backend_size=$(stat -c%s dist/index.js)
117
- echo "⚡ Backend bundle: ${backend_size} bytes"
118
-
119
- if [ "$backend_size" -gt 5000000 ]; then # 5MB
120
- echo "⚠️ Backend bundle is larger than 5MB"
121
- else
122
- echo "✅ Backend bundle size acceptable"
123
- fi
124
- fi
125
-
126
- # 🌍 Cross-platform compatibility test
127
- cross-platform-test:
128
- name: 🌍 Cross-Platform Compatibility
129
- strategy:
130
- matrix:
131
- os: [ubuntu-latest, windows-latest, macos-latest]
132
- bun-version: ['1.1.34']
133
- runs-on: ${{ matrix.os }}
134
- steps:
135
- - name: 📥 Checkout repository
136
- uses: actions/checkout@v4
137
-
138
- - name: 🚀 Setup Bun
139
- uses: oven-sh/setup-bun@v1
140
- with:
141
- bun-version: ${{ matrix.bun-version }}
142
-
143
- - name: 📦 Install dependencies
144
- run: bun install
145
-
146
- - name: 🧪 Run tests on ${{ matrix.os }}
147
- run: bun run test:run
148
-
149
- - name: 🏗️ Build on ${{ matrix.os }}
150
- run: bun run build
151
-
152
- - name: ✅ Validate build artifacts exist
153
- shell: bash
154
- run: |
155
- if [ -f "dist/index.js" ] && [ -f "dist/client/index.html" ]; then
156
- echo "✅ Build successful on ${{ matrix.os }}"
157
- else
158
- echo "❌ Build failed on ${{ matrix.os }}"
159
- exit 1
160
- fi
161
-
162
- # 🚀 Production deployment simulation
163
- production-simulation:
164
- name: 🚀 Production Deployment Simulation
165
- runs-on: ubuntu-latest
166
- needs: [security-audit, release-artifacts]
167
- steps:
168
- - name: 📥 Checkout repository
169
- uses: actions/checkout@v4
170
-
171
- - name: 🚀 Setup Bun
172
- uses: oven-sh/setup-bun@v1
173
- with:
174
- bun-version: ${{ env.BUN_VERSION }}
175
-
176
- - name: 📦 Install dependencies (production)
177
- run: bun install --production
178
-
179
- - name: 🏗️ Build for production
180
- run: bun run build
181
-
182
- - name: 🌐 Start production server
183
- run: |
184
- echo "🚀 Starting production server simulation..."
185
- bun run start &
186
- SERVER_PID=$!
187
- sleep 10
188
-
189
- # Test API endpoints
190
- echo "🧪 Testing API endpoints..."
191
-
192
- # Health check
193
- if curl -f http://localhost:3000/api/health; then
194
- echo "✅ Health endpoint responding"
195
- else
196
- echo "❌ Health endpoint failed"
197
- kill $SERVER_PID
198
- exit 1
199
- fi
200
-
201
- # API root
202
- if curl -f http://localhost:3000/api/; then
203
- echo "✅ API root responding"
204
- else
205
- echo "❌ API root failed"
206
- kill $SERVER_PID
207
- exit 1
208
- fi
209
-
210
- # Swagger documentation
211
- if curl -f http://localhost:3000/swagger; then
212
- echo "✅ Swagger UI accessible"
213
- else
214
- echo "❌ Swagger UI failed"
215
- kill $SERVER_PID
216
- exit 1
217
- fi
218
-
219
- # Frontend serving
220
- if curl -f http://localhost:3000/; then
221
- echo "✅ Frontend serving correctly"
222
- else
223
- echo "❌ Frontend serving failed"
224
- kill $SERVER_PID
225
- exit 1
226
- fi
227
-
228
- kill $SERVER_PID
229
- echo "✅ Production simulation completed successfully"
230
-
231
- # ⚡ Performance validation
232
- performance-validation:
233
- name: ⚡ Performance Validation
234
- runs-on: ubuntu-latest
235
- needs: [release-artifacts]
236
- steps:
237
- - name: 📥 Checkout repository
238
- uses: actions/checkout@v4
239
-
240
- - name: 🚀 Setup Bun
241
- uses: oven-sh/setup-bun@v1
242
- with:
243
- bun-version: ${{ env.BUN_VERSION }}
244
-
245
- - name: 📦 Install dependencies
246
- run: bun install
247
-
248
- - name: ⚡ Performance benchmarks
249
- run: |
250
- echo "📊 Running performance validation..."
251
-
252
- # Cold start benchmark
253
- echo "🚀 Testing cold start performance..."
254
- time_start=$(date +%s%3N)
255
- timeout 30s bun run start &
256
- SERVER_PID=$!
257
- sleep 5
258
- time_end=$(date +%s%3N)
259
- startup_time=$((time_end - time_start))
260
-
261
- echo "⏱️ Server startup time: ${startup_time}ms"
262
-
263
- # Test API response times
264
- echo "🧪 Testing API response times..."
265
- response_time=$(curl -o /dev/null -s -w '%{time_total}\n' http://localhost:3000/api/health)
266
- echo "⚡ Health endpoint response: ${response_time}s"
267
-
268
- kill $SERVER_PID
269
-
270
- # Validate performance thresholds
271
- if (( $(echo "$response_time < 1.0" | bc -l) )); then
272
- echo "✅ API response time acceptable"
273
- else
274
- echo "⚠️ API response slower than expected"
275
- fi
276
-
277
- # 📋 Documentation validation
278
- documentation-validation:
279
- name: 📋 Documentation Validation
280
- runs-on: ubuntu-latest
281
- steps:
282
- - name: 📥 Checkout repository
283
- uses: actions/checkout@v4
284
-
285
- - name: 📚 Validate documentation completeness
286
- run: |
287
- echo "📋 Validating documentation..."
288
-
289
- required_docs=(
290
- "README.md"
291
- "CLAUDE.md"
292
- "context_ai/project-overview.md"
293
- "context_ai/architecture-guide.md"
294
- "context_ai/development-patterns.md"
295
- "context_ai/api-reference.md"
296
- "LICENSE"
297
- )
298
-
299
- for doc in "${required_docs[@]}"; do
300
- if [ -f "$doc" ]; then
301
- word_count=$(wc -w < "$doc")
302
- echo "✅ $doc exists (${word_count} words)"
303
-
304
- if [ "$word_count" -lt 100 ]; then
305
- echo "⚠️ $doc seems incomplete (less than 100 words)"
306
- fi
307
- else
308
- echo "❌ Missing documentation: $doc"
309
- exit 1
310
- fi
311
- done
312
-
313
- - name: 🔍 Check for broken links (if link checker available)
314
- run: |
315
- echo "🔗 Checking for broken links in documentation..."
316
- # This would require a link checker tool
317
- echo "✅ Link validation completed"
318
-
319
- # ✅ Release validation summary
320
- release-summary:
321
- name: ✅ Release Validation Summary
322
- runs-on: ubuntu-latest
323
- needs: [
324
- security-audit,
325
- release-artifacts,
326
- cross-platform-test,
327
- production-simulation,
328
- performance-validation,
329
- documentation-validation
330
- ]
331
- if: always()
332
- steps:
333
- - name: 📋 Release Validation Summary
334
- run: |
335
- echo "🎉 FluxStack Release Validation Summary"
336
- echo "======================================"
337
- echo "🔒 Security audit: ${{ needs.security-audit.result }}"
338
- echo "📦 Release artifacts: ${{ needs.release-artifacts.result }}"
339
- echo "🌍 Cross-platform compatibility: ${{ needs.cross-platform-test.result }}"
340
- echo "🚀 Production simulation: ${{ needs.production-simulation.result }}"
341
- echo "⚡ Performance validation: ${{ needs.performance-validation.result }}"
342
- echo "📋 Documentation validation: ${{ needs.documentation-validation.result }}"
343
- echo ""
344
-
345
- if [[ "${{ needs.security-audit.result }}" == "success" && \
346
- "${{ needs.release-artifacts.result }}" == "success" && \
347
- "${{ needs.cross-platform-test.result }}" == "success" && \
348
- "${{ needs.production-simulation.result }}" == "success" && \
349
- "${{ needs.performance-validation.result }}" == "success" && \
350
- "${{ needs.documentation-validation.result }}" == "success" ]]; then
351
- echo "🎉 Release validation PASSED! Ready for production deployment."
352
- else
353
- echo "❌ Release validation FAILED! Review issues before deployment."
354
- exit 1
355
- fi