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.
- package/.env.example +29 -29
- package/app/client/README.md +69 -69
- package/app/client/index.html +14 -13
- package/app/client/src/App.tsx +157 -524
- package/app/client/src/components/ErrorBoundary.tsx +107 -0
- package/app/client/src/components/ErrorDisplay.css +365 -0
- package/app/client/src/components/ErrorDisplay.tsx +258 -0
- package/app/client/src/components/FluxStackConfig.tsx +1321 -0
- package/app/client/src/components/HybridLiveCounter.tsx +140 -0
- package/app/client/src/components/LiveClock.tsx +286 -0
- package/app/client/src/components/MainLayout.tsx +390 -0
- package/app/client/src/components/SidebarNavigation.tsx +391 -0
- package/app/client/src/components/StateDemo.tsx +178 -0
- package/app/client/src/components/SystemMonitor.tsx +1038 -0
- package/app/client/src/components/Teste.tsx +104 -0
- package/app/client/src/components/UserProfile.tsx +809 -0
- package/app/client/src/hooks/useAuth.ts +39 -0
- package/app/client/src/hooks/useNotifications.ts +56 -0
- package/app/client/src/lib/eden-api.ts +189 -53
- package/app/client/src/lib/errors.ts +340 -0
- package/app/client/src/lib/hooks/useErrorHandler.ts +258 -0
- package/app/client/src/lib/index.ts +45 -0
- package/app/client/src/main.tsx +3 -2
- package/app/client/src/pages/ApiDocs.tsx +182 -0
- package/app/client/src/pages/Demo.tsx +174 -0
- package/app/client/src/pages/HybridLive.tsx +263 -0
- package/app/client/src/pages/Overview.tsx +155 -0
- package/app/client/src/store/README.md +43 -0
- package/app/client/src/store/index.ts +16 -0
- package/app/client/src/store/slices/uiSlice.ts +151 -0
- package/app/client/src/store/slices/userSlice.ts +161 -0
- package/app/client/src/test/README.md +257 -0
- package/app/client/src/test/setup.ts +70 -0
- package/app/client/src/test/types.ts +12 -0
- package/app/client/src/vite-env.d.ts +1 -1
- package/app/client/tsconfig.app.json +44 -43
- package/app/client/tsconfig.json +7 -7
- package/app/client/tsconfig.node.json +25 -25
- package/app/client/zustand-setup.md +65 -0
- package/app/server/controllers/users.controller.ts +68 -68
- package/app/server/index.ts +9 -1
- package/app/server/live/CounterComponent.ts +191 -0
- package/app/server/live/FluxStackConfig.ts +529 -0
- package/app/server/live/LiveClockComponent.ts +214 -0
- package/app/server/live/SidebarNavigation.ts +156 -0
- package/app/server/live/SystemMonitor.ts +594 -0
- package/app/server/live/SystemMonitorIntegration.ts +151 -0
- package/app/server/live/TesteComponent.ts +87 -0
- package/app/server/live/UserProfileComponent.ts +135 -0
- package/app/server/live/register-components.ts +28 -0
- package/app/server/middleware/auth.ts +136 -0
- package/app/server/middleware/errorHandling.ts +250 -0
- package/app/server/middleware/index.ts +10 -0
- package/app/server/middleware/rateLimit.ts +193 -0
- package/app/server/middleware/requestLogging.ts +215 -0
- package/app/server/middleware/validation.ts +270 -0
- package/app/server/routes/index.ts +14 -2
- package/app/server/routes/upload.ts +92 -0
- package/app/server/routes/users.routes.ts +2 -9
- package/app/server/services/NotificationService.ts +302 -0
- package/app/server/services/UserService.ts +222 -0
- package/app/server/services/index.ts +46 -0
- package/core/cli/commands/plugin-deps.ts +263 -0
- package/core/cli/generators/README.md +339 -0
- package/core/cli/generators/component.ts +770 -0
- package/core/cli/generators/controller.ts +299 -0
- package/core/cli/generators/index.ts +144 -0
- package/core/cli/generators/interactive.ts +228 -0
- package/core/cli/generators/prompts.ts +83 -0
- package/core/cli/generators/route.ts +513 -0
- package/core/cli/generators/service.ts +465 -0
- package/core/cli/generators/template-engine.ts +154 -0
- package/core/cli/generators/types.ts +71 -0
- package/core/cli/generators/utils.ts +192 -0
- package/core/cli/index.ts +69 -0
- package/core/cli/plugin-discovery.ts +16 -85
- package/core/client/fluxstack.ts +17 -0
- package/core/client/hooks/index.ts +7 -0
- package/core/client/hooks/state-validator.ts +130 -0
- package/core/client/hooks/useAuth.ts +49 -0
- package/core/client/hooks/useChunkedUpload.ts +258 -0
- package/core/client/hooks/useHybridLiveComponent.ts +967 -0
- package/core/client/hooks/useWebSocket.ts +373 -0
- package/core/client/index.ts +47 -0
- package/core/client/state/createStore.ts +193 -0
- package/core/client/state/index.ts +15 -0
- package/core/config/env-dynamic.ts +1 -1
- package/core/config/env.ts +2 -1
- package/core/config/runtime-config.ts +3 -3
- package/core/config/schema.ts +84 -49
- package/core/framework/server.ts +30 -0
- package/core/index.ts +25 -0
- package/core/live/ComponentRegistry.ts +399 -0
- package/core/live/types.ts +164 -0
- package/core/plugins/built-in/live-components/commands/create-live-component.ts +1201 -0
- package/core/plugins/built-in/live-components/index.ts +27 -0
- package/core/plugins/built-in/logger/index.ts +1 -1
- package/core/plugins/built-in/monitoring/index.ts +1 -1
- package/core/plugins/built-in/static/index.ts +1 -1
- package/core/plugins/built-in/swagger/index.ts +1 -1
- package/core/plugins/built-in/vite/index.ts +1 -1
- package/core/plugins/dependency-manager.ts +384 -0
- package/core/plugins/index.ts +5 -1
- package/core/plugins/manager.ts +7 -3
- package/core/plugins/registry.ts +88 -10
- package/core/plugins/types.ts +11 -11
- package/core/server/framework.ts +43 -0
- package/core/server/index.ts +11 -1
- package/core/server/live/ComponentRegistry.ts +1017 -0
- package/core/server/live/FileUploadManager.ts +272 -0
- package/core/server/live/LiveComponentPerformanceMonitor.ts +930 -0
- package/core/server/live/SingleConnectionManager.ts +0 -0
- package/core/server/live/StateSignature.ts +644 -0
- package/core/server/live/WebSocketConnectionManager.ts +688 -0
- package/core/server/live/websocket-plugin.ts +435 -0
- package/core/server/middleware/errorHandling.ts +141 -0
- package/core/server/middleware/index.ts +16 -0
- package/core/server/plugins/static-files-plugin.ts +232 -0
- package/core/server/services/BaseService.ts +95 -0
- package/core/server/services/ServiceContainer.ts +144 -0
- package/core/server/services/index.ts +9 -0
- package/core/templates/create-project.ts +46 -2
- package/core/testing/index.ts +10 -0
- package/core/testing/setup.ts +74 -0
- package/core/types/build.ts +38 -14
- package/core/types/types.ts +319 -0
- package/core/utils/env-runtime.ts +7 -0
- package/core/utils/errors/handlers.ts +264 -39
- package/core/utils/errors/index.ts +528 -18
- package/core/utils/errors/middleware.ts +114 -0
- package/core/utils/logger/formatters.ts +222 -0
- package/core/utils/logger/index.ts +167 -48
- package/core/utils/logger/middleware.ts +253 -0
- package/core/utils/logger/performance.ts +384 -0
- package/core/utils/logger/transports.ts +365 -0
- package/create-fluxstack.ts +296 -296
- package/fluxstack.config.ts +17 -1
- package/package-template.json +66 -66
- package/package.json +31 -6
- package/public/README.md +16 -0
- package/vite.config.ts +29 -14
- package/.claude/settings.local.json +0 -74
- package/.github/workflows/ci-build-tests.yml +0 -480
- package/.github/workflows/dependency-management.yml +0 -324
- package/.github/workflows/release-validation.yml +0 -355
- package/.kiro/specs/fluxstack-architecture-optimization/design.md +0 -700
- package/.kiro/specs/fluxstack-architecture-optimization/requirements.md +0 -127
- package/.kiro/specs/fluxstack-architecture-optimization/tasks.md +0 -330
- package/CLAUDE.md +0 -200
- package/Dockerfile +0 -58
- package/Dockerfile.backend +0 -52
- package/Dockerfile.frontend +0 -54
- package/README-Docker.md +0 -85
- package/ai-context/00-QUICK-START.md +0 -86
- package/ai-context/README.md +0 -88
- package/ai-context/development/eden-treaty-guide.md +0 -362
- package/ai-context/development/patterns.md +0 -382
- package/ai-context/development/plugins-guide.md +0 -572
- package/ai-context/examples/crud-complete.md +0 -626
- package/ai-context/project/architecture.md +0 -399
- package/ai-context/project/overview.md +0 -213
- package/ai-context/recent-changes/eden-treaty-refactor.md +0 -281
- package/ai-context/recent-changes/type-inference-fix.md +0 -223
- package/ai-context/reference/environment-vars.md +0 -384
- package/ai-context/reference/troubleshooting.md +0 -407
- package/app/client/src/components/TestPage.tsx +0 -453
- package/bun.lock +0 -1063
- package/bunfig.toml +0 -16
- package/core/__tests__/integration.test.ts +0 -227
- package/core/build/index.ts +0 -186
- package/core/config/__tests__/config-loader.test.ts +0 -554
- package/core/config/__tests__/config-merger.test.ts +0 -657
- package/core/config/__tests__/env-converter.test.ts +0 -372
- package/core/config/__tests__/env-processor.test.ts +0 -431
- package/core/config/__tests__/env.test.ts +0 -452
- package/core/config/__tests__/integration.test.ts +0 -418
- package/core/config/__tests__/loader.test.ts +0 -331
- package/core/config/__tests__/schema.test.ts +0 -129
- package/core/config/__tests__/validator.test.ts +0 -318
- package/core/framework/__tests__/server.test.ts +0 -233
- package/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
- package/core/plugins/__tests__/manager.test.ts +0 -398
- package/core/plugins/__tests__/monitoring.test.ts +0 -401
- package/core/plugins/__tests__/registry.test.ts +0 -335
- package/core/utils/__tests__/errors.test.ts +0 -139
- package/core/utils/__tests__/helpers.test.ts +0 -297
- package/core/utils/__tests__/logger.test.ts +0 -141
- package/create-test-app.ts +0 -156
- package/docker-compose.microservices.yml +0 -75
- package/docker-compose.simple.yml +0 -57
- package/docker-compose.yml +0 -71
- package/eslint.config.js +0 -23
- package/flux-cli.ts +0 -214
- package/nginx-lb.conf +0 -37
- package/publish.sh +0 -63
- package/run-clean.ts +0 -26
- package/run-env-tests.ts +0 -313
- package/tailwind.config.js +0 -34
- package/tests/__mocks__/api.ts +0 -56
- package/tests/fixtures/users.ts +0 -69
- package/tests/integration/api/users.routes.test.ts +0 -221
- package/tests/setup.ts +0 -29
- package/tests/unit/app/client/App-simple.test.tsx +0 -56
- package/tests/unit/app/client/App.test.tsx.skip +0 -237
- package/tests/unit/app/client/eden-api.test.ts +0 -186
- package/tests/unit/app/client/simple.test.tsx +0 -23
- package/tests/unit/app/controllers/users.controller.test.ts +0 -150
- package/tests/unit/core/create-project.test.ts.skip +0 -95
- package/tests/unit/core/framework.test.ts +0 -144
- package/tests/unit/core/plugins/logger.test.ts.skip +0 -268
- package/tests/unit/core/plugins/vite.test.ts.disabled +0 -188
- package/tests/utils/test-helpers.ts +0 -61
- package/vitest.config.ts +0 -50
- 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
|