@postxl/generators 1.15.1 → 1.17.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/dist/backend-excel-io/excel-io.generator.d.ts +2 -1
- package/dist/backend-excel-io/excel-io.generator.js +2 -0
- package/dist/backend-excel-io/excel-io.generator.js.map +1 -1
- package/dist/backend-excel-io/template/excel-io.controller.ts +24 -54
- package/dist/backend-upload/index.d.ts +3 -0
- package/dist/backend-upload/index.js +40 -0
- package/dist/backend-upload/index.js.map +1 -0
- package/dist/backend-upload/template/src/index.ts +13 -0
- package/dist/backend-upload/template/src/upload.config.ts +15 -0
- package/dist/backend-upload/template/src/upload.controller.ts +53 -0
- package/dist/backend-upload/template/src/upload.guard.ts +39 -0
- package/dist/backend-upload/template/src/upload.module.ts +26 -0
- package/dist/backend-upload/template/src/upload.service.ts +333 -0
- package/dist/backend-upload/template/src/upload.types.ts +37 -0
- package/dist/backend-upload/template/src/uploaded-file.decorator.ts +12 -0
- package/dist/backend-upload/template/tsconfig.lib.json +10 -0
- package/dist/backend-upload/upload.generator.d.ts +16 -0
- package/dist/backend-upload/upload.generator.js +107 -0
- package/dist/backend-upload/upload.generator.js.map +1 -0
- package/dist/base/template/.claude/commands/README.md +65 -0
- package/dist/base/template/.claude/settings.json +3 -1
- package/dist/base/template/.github/.copilot-prompts.json +22 -0
- package/dist/e2e/e2e.generator.js +43 -1
- package/dist/e2e/e2e.generator.js.map +1 -1
- package/dist/e2e/template/.claude/commands/prepare-e2e-tests.md +251 -0
- package/dist/e2e/template/.claude/commands/run-e2e-tests.md +221 -0
- package/dist/e2e/template/scripts/e2e.sh +398 -0
- package/dist/frontend-forms/generators/model/forms.generator.js +191 -0
- package/dist/frontend-forms/generators/model/forms.generator.js.map +1 -1
- package/dist/frontend-tables/generators/model-table.generator.js +16 -2
- package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
- package/dist/generators.js +2 -0
- package/dist/generators.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# E2E Test Runner Script
|
|
4
|
+
# This script starts backend, frontend, and runs E2E tests in Docker automatically.
|
|
5
|
+
#
|
|
6
|
+
# The script auto-detects pnpm and Node.js 24+ regardless of how it's invoked
|
|
7
|
+
# (interactive shell, non-interactive subprocess, CI, Claude Code, etc.)
|
|
8
|
+
|
|
9
|
+
set -e # Exit on error
|
|
10
|
+
|
|
11
|
+
# Colors for output
|
|
12
|
+
RED='\033[0;31m'
|
|
13
|
+
GREEN='\033[0;32m'
|
|
14
|
+
YELLOW='\033[1;33m'
|
|
15
|
+
BLUE='\033[0;34m'
|
|
16
|
+
NC='\033[0m' # No Color
|
|
17
|
+
|
|
18
|
+
# Get the directory where this script is located
|
|
19
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
+
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
21
|
+
MONOREPO_ROOT=<% monorepoRootExpr %>
|
|
22
|
+
|
|
23
|
+
# Ports
|
|
24
|
+
BACKEND_PORT=3001
|
|
25
|
+
FRONTEND_PORT=3000
|
|
26
|
+
BACKEND_MAIN_PORT=4000
|
|
27
|
+
|
|
28
|
+
# PID file paths
|
|
29
|
+
BACKEND_PID_FILE="$PROJECT_DIR/.e2e-backend.pid"
|
|
30
|
+
FRONTEND_PID_FILE="$PROJECT_DIR/.e2e-frontend.pid"
|
|
31
|
+
|
|
32
|
+
# Docker image name
|
|
33
|
+
DOCKER_IMAGE="e2e-pxl-env"
|
|
34
|
+
|
|
35
|
+
# --------------------------------------------------------------------------
|
|
36
|
+
# Environment setup: resolve pnpm and Node.js 24+
|
|
37
|
+
# --------------------------------------------------------------------------
|
|
38
|
+
# This section ensures pnpm and the correct Node.js version are available
|
|
39
|
+
# even in non-interactive shells (e.g., Claude Code, CI, cron, subprocesses).
|
|
40
|
+
|
|
41
|
+
setup_environment() {
|
|
42
|
+
# Common paths where pnpm might be installed
|
|
43
|
+
local search_paths=(
|
|
44
|
+
"$HOME/.local/share/pnpm"
|
|
45
|
+
"$HOME/.pnpm"
|
|
46
|
+
"/opt/homebrew/bin"
|
|
47
|
+
"/usr/local/bin"
|
|
48
|
+
"$HOME/.corepack/bin"
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Add search paths to PATH if they exist and aren't already in PATH
|
|
52
|
+
for p in "${search_paths[@]}"; do
|
|
53
|
+
if [[ -d "$p" ]] && [[ ":$PATH:" != *":$p:"* ]]; then
|
|
54
|
+
export PATH="$p:$PATH"
|
|
55
|
+
fi
|
|
56
|
+
done
|
|
57
|
+
|
|
58
|
+
# Resolve pnpm
|
|
59
|
+
PNPM_BIN=$(command -v pnpm 2>/dev/null || true)
|
|
60
|
+
if [[ -z "$PNPM_BIN" ]]; then
|
|
61
|
+
echo -e "${RED}❌ pnpm not found. Please install pnpm (https://pnpm.io/installation)${NC}"
|
|
62
|
+
exit 1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
# Check current Node.js version - we need 24+ for ESM require() support
|
|
66
|
+
local node_version
|
|
67
|
+
node_version=$(node --version 2>/dev/null | sed 's/^v//' | cut -d. -f1)
|
|
68
|
+
|
|
69
|
+
if [[ -n "$node_version" ]] && [[ "$node_version" -ge 24 ]]; then
|
|
70
|
+
echo -e "${GREEN}✅ Node.js $(node --version) detected${NC}"
|
|
71
|
+
return 0
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# Try to activate Node.js 24+ via nvm
|
|
75
|
+
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
|
|
76
|
+
export NVM_DIR="$HOME/.nvm"
|
|
77
|
+
# shellcheck source=/dev/null
|
|
78
|
+
source "$NVM_DIR/nvm.sh" 2>/dev/null
|
|
79
|
+
|
|
80
|
+
# Find a Node.js 24+ version installed via nvm
|
|
81
|
+
local nvm_node
|
|
82
|
+
nvm_node=$(nvm ls --no-alias --no-colors 2>/dev/null | grep -oE 'v2[4-9]\.[0-9]+\.[0-9]+|v[3-9][0-9]\.[0-9]+\.[0-9]+' | sort -V | tail -1 || true)
|
|
83
|
+
|
|
84
|
+
if [[ -n "$nvm_node" ]]; then
|
|
85
|
+
echo -e "${BLUE}🔄 Activating $nvm_node via nvm...${NC}"
|
|
86
|
+
nvm use "$nvm_node" >/dev/null 2>&1
|
|
87
|
+
# Ensure nvm's bin dir is first in PATH so pnpm picks it up
|
|
88
|
+
export PATH="$NVM_BIN:$PATH"
|
|
89
|
+
echo -e "${GREEN}✅ Node.js $(node --version) activated via nvm${NC}"
|
|
90
|
+
return 0
|
|
91
|
+
fi
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
# Try to activate Node.js 24+ via fnm
|
|
95
|
+
if command -v fnm >/dev/null 2>&1; then
|
|
96
|
+
local fnm_node
|
|
97
|
+
fnm_node=$(fnm list 2>/dev/null | grep -oE 'v2[4-9]\.[0-9]+\.[0-9]+|v[3-9][0-9]\.[0-9]+\.[0-9]+' | sort -V | tail -1 || true)
|
|
98
|
+
|
|
99
|
+
if [[ -n "$fnm_node" ]]; then
|
|
100
|
+
echo -e "${BLUE}🔄 Activating $fnm_node via fnm...${NC}"
|
|
101
|
+
eval "$(fnm env)" 2>/dev/null
|
|
102
|
+
fnm use "$fnm_node" >/dev/null 2>&1
|
|
103
|
+
echo -e "${GREEN}✅ Node.js $(node --version) activated via fnm${NC}"
|
|
104
|
+
return 0
|
|
105
|
+
fi
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Try to activate Node.js 24+ via volta
|
|
109
|
+
if command -v volta >/dev/null 2>&1; then
|
|
110
|
+
echo -e "${BLUE}🔄 Using volta for Node.js management...${NC}"
|
|
111
|
+
# volta manages node automatically based on package.json
|
|
112
|
+
local volta_node
|
|
113
|
+
volta_node=$(node --version 2>/dev/null | sed 's/^v//' | cut -d. -f1)
|
|
114
|
+
if [[ "$volta_node" -ge 24 ]]; then
|
|
115
|
+
echo -e "${GREEN}✅ Node.js $(node --version) via volta${NC}"
|
|
116
|
+
return 0
|
|
117
|
+
fi
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
# Node.js 24+ not found - warn but don't fail (pnpm devEngines might handle it)
|
|
121
|
+
echo -e "${YELLOW}⚠️ Node.js 24+ not found (current: $(node --version 2>/dev/null || echo 'none')).${NC}"
|
|
122
|
+
echo -e "${YELLOW} The project requires Node.js 24+ for ESM support.${NC}"
|
|
123
|
+
echo -e "${YELLOW} Install via: nvm install 24 / fnm install 24 / volta install node@24${NC}"
|
|
124
|
+
echo -e "${YELLOW} Continuing anyway (pnpm devEngines.runtime may auto-download it)...${NC}"
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
# Kill a process and all its descendants (children, grandchildren, etc.)
|
|
128
|
+
kill_tree() {
|
|
129
|
+
local pid=$1
|
|
130
|
+
local children
|
|
131
|
+
children=$(pgrep -P "$pid" 2>/dev/null || true)
|
|
132
|
+
for child in $children; do
|
|
133
|
+
kill_tree "$child"
|
|
134
|
+
done
|
|
135
|
+
kill "$pid" 2>/dev/null || true
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# Kill any remaining process listening on a port
|
|
139
|
+
kill_port() {
|
|
140
|
+
local port=$1
|
|
141
|
+
local pids
|
|
142
|
+
pids=$(lsof -Pi :"$port" -sTCP:LISTEN -t 2>/dev/null || true)
|
|
143
|
+
if [[ -n "$pids" ]]; then
|
|
144
|
+
echo -e "${BLUE} Killing remaining process(es) on port $port...${NC}"
|
|
145
|
+
echo "$pids" | xargs kill 2>/dev/null || true
|
|
146
|
+
fi
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
# Cleanup function
|
|
150
|
+
cleanup() {
|
|
151
|
+
echo -e "\n${YELLOW}🧹 Cleaning up...${NC}"
|
|
152
|
+
|
|
153
|
+
# Kill backend if we started it
|
|
154
|
+
if [[ -f "$BACKEND_PID_FILE" ]]; then
|
|
155
|
+
BACKEND_PID=$(cat "$BACKEND_PID_FILE")
|
|
156
|
+
if ps -p "$BACKEND_PID" > /dev/null 2>&1; then
|
|
157
|
+
echo -e "${BLUE}⏹️ Stopping backend (PID: $BACKEND_PID)...${NC}"
|
|
158
|
+
kill_tree "$BACKEND_PID"
|
|
159
|
+
fi
|
|
160
|
+
rm -f "$BACKEND_PID_FILE"
|
|
161
|
+
# Ensure ports are fully released
|
|
162
|
+
sleep 0.5
|
|
163
|
+
kill_port $BACKEND_PORT
|
|
164
|
+
kill_port $BACKEND_MAIN_PORT
|
|
165
|
+
fi
|
|
166
|
+
|
|
167
|
+
# Kill frontend if we started it
|
|
168
|
+
if [[ -f "$FRONTEND_PID_FILE" ]]; then
|
|
169
|
+
FRONTEND_PID=$(cat "$FRONTEND_PID_FILE")
|
|
170
|
+
if ps -p "$FRONTEND_PID" > /dev/null 2>&1; then
|
|
171
|
+
echo -e "${BLUE}⏹️ Stopping frontend (PID: $FRONTEND_PID)...${NC}"
|
|
172
|
+
kill_tree "$FRONTEND_PID"
|
|
173
|
+
fi
|
|
174
|
+
rm -f "$FRONTEND_PID_FILE"
|
|
175
|
+
# Ensure port is fully released
|
|
176
|
+
sleep 0.5
|
|
177
|
+
kill_port $FRONTEND_PORT
|
|
178
|
+
fi
|
|
179
|
+
|
|
180
|
+
echo -e "${GREEN}✅ Cleanup complete${NC}"
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
# Register cleanup on script exit
|
|
184
|
+
trap cleanup EXIT INT TERM
|
|
185
|
+
|
|
186
|
+
# Check if services are already running
|
|
187
|
+
check_services() {
|
|
188
|
+
echo -e "${BLUE}🔍 Checking for existing services...${NC}"
|
|
189
|
+
|
|
190
|
+
BACKEND_RUNNING=false
|
|
191
|
+
FRONTEND_RUNNING=false
|
|
192
|
+
|
|
193
|
+
if lsof -Pi :$BACKEND_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
194
|
+
echo -e "${YELLOW}⚠️ Backend already running on port $BACKEND_PORT${NC}"
|
|
195
|
+
BACKEND_RUNNING=true
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
if lsof -Pi :$FRONTEND_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
199
|
+
echo -e "${YELLOW}⚠️ Frontend already running on port $FRONTEND_PORT${NC}"
|
|
200
|
+
FRONTEND_RUNNING=true
|
|
201
|
+
fi
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
# Wait for a service to be ready
|
|
205
|
+
wait_for_service() {
|
|
206
|
+
local port=$1
|
|
207
|
+
local service_name=$2
|
|
208
|
+
local max_attempts=60 # 60 seconds timeout
|
|
209
|
+
local attempt=0
|
|
210
|
+
|
|
211
|
+
echo -e "${BLUE}⏳ Waiting for $service_name to be ready on port $port...${NC}"
|
|
212
|
+
|
|
213
|
+
while ! lsof -Pi :$port -sTCP:LISTEN -t >/dev/null 2>&1; do
|
|
214
|
+
attempt=$((attempt + 1))
|
|
215
|
+
if [[ $attempt -gt $max_attempts ]]; then
|
|
216
|
+
echo -e "${RED}❌ Timeout waiting for $service_name to start${NC}"
|
|
217
|
+
return 1
|
|
218
|
+
fi
|
|
219
|
+
sleep 1
|
|
220
|
+
done
|
|
221
|
+
|
|
222
|
+
echo -e "${GREEN}✅ $service_name is ready${NC}"
|
|
223
|
+
return 0
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
# Start backend
|
|
227
|
+
start_backend() {
|
|
228
|
+
if [[ "$BACKEND_RUNNING" == "true" ]]; then
|
|
229
|
+
echo -e "${GREEN}✅ Using existing backend on port $BACKEND_PORT${NC}"
|
|
230
|
+
return 0
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
echo -e "${BLUE}🚀 Starting backend in E2E stateless mode...${NC}"
|
|
234
|
+
cd "$PROJECT_DIR/backend"
|
|
235
|
+
|
|
236
|
+
# Start backend in background and save PID
|
|
237
|
+
"$PNPM_BIN" e2e:stateless > "$PROJECT_DIR/.e2e-backend.log" 2>&1 &
|
|
238
|
+
echo $! > "$BACKEND_PID_FILE"
|
|
239
|
+
|
|
240
|
+
# Wait for backend to be ready
|
|
241
|
+
if ! wait_for_service $BACKEND_PORT "Backend"; then
|
|
242
|
+
echo -e "${RED}❌ Failed to start backend${NC}"
|
|
243
|
+
echo -e "${YELLOW}📋 Backend log (last 20 lines):${NC}"
|
|
244
|
+
tail -n 20 "$PROJECT_DIR/.e2e-backend.log"
|
|
245
|
+
return 1
|
|
246
|
+
fi
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
# Build and start frontend
|
|
250
|
+
start_frontend() {
|
|
251
|
+
if [[ "$FRONTEND_RUNNING" == "true" ]]; then
|
|
252
|
+
echo -e "${GREEN}✅ Using existing frontend on port $FRONTEND_PORT${NC}"
|
|
253
|
+
return 0
|
|
254
|
+
fi
|
|
255
|
+
|
|
256
|
+
echo -e "${BLUE}🏗️ Building frontend for E2E...${NC}"
|
|
257
|
+
cd "$PROJECT_DIR/frontend"
|
|
258
|
+
|
|
259
|
+
# Build frontend with Docker URLs (tests run inside Docker container accessing host services)
|
|
260
|
+
if ! VITE_PUBLIC_API_URL=http://host.docker.internal:3001 VITE_PUBLIC_BASE_URL=http://host.docker.internal:3000 NODE_V8_COVERAGE=.v8-coverage VITE_PUBLIC_MAPBOX_DISABLE_TRANSITIONS=true VITE_PUBLIC_USE_TEST_ASSETS=true VITE_AUTH=false "$PNPM_BIN" exec vite build; then
|
|
261
|
+
echo -e "${RED}❌ Failed to build frontend${NC}"
|
|
262
|
+
return 1
|
|
263
|
+
fi
|
|
264
|
+
|
|
265
|
+
echo -e "${BLUE}🚀 Starting frontend preview server...${NC}"
|
|
266
|
+
|
|
267
|
+
# Start frontend preview server in background and save PID
|
|
268
|
+
"$PNPM_BIN" exec vite preview --port 3000 > "$PROJECT_DIR/.e2e-frontend.log" 2>&1 &
|
|
269
|
+
echo $! > "$FRONTEND_PID_FILE"
|
|
270
|
+
|
|
271
|
+
# Wait for frontend to be ready
|
|
272
|
+
if ! wait_for_service $FRONTEND_PORT "Frontend"; then
|
|
273
|
+
echo -e "${RED}❌ Failed to start frontend${NC}"
|
|
274
|
+
echo -e "${YELLOW}📋 Frontend log (last 20 lines):${NC}"
|
|
275
|
+
tail -n 20 "$PROJECT_DIR/.e2e-frontend.log"
|
|
276
|
+
return 1
|
|
277
|
+
fi
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
# Build Docker image
|
|
281
|
+
build_docker_image() {
|
|
282
|
+
echo -e "${BLUE}🐳 Building Docker image...${NC}"
|
|
283
|
+
cd "$PROJECT_DIR"
|
|
284
|
+
|
|
285
|
+
if docker build -t $DOCKER_IMAGE ./e2e/; then
|
|
286
|
+
echo -e "${GREEN}✅ Docker image built successfully${NC}"
|
|
287
|
+
return 0
|
|
288
|
+
else
|
|
289
|
+
echo -e "${RED}❌ Failed to build Docker image${NC}"
|
|
290
|
+
return 1
|
|
291
|
+
fi
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
# Run E2E tests in Docker
|
|
295
|
+
run_tests() {
|
|
296
|
+
echo -e "${BLUE}🧪 Running E2E tests in Docker...${NC}"
|
|
297
|
+
|
|
298
|
+
# Build Docker image if it doesn't exist
|
|
299
|
+
if ! docker image inspect $DOCKER_IMAGE >/dev/null 2>&1; then
|
|
300
|
+
echo -e "${YELLOW}Docker image not found, building...${NC}"
|
|
301
|
+
if ! build_docker_image; then
|
|
302
|
+
return 1
|
|
303
|
+
fi
|
|
304
|
+
fi
|
|
305
|
+
|
|
306
|
+
echo -e "${BLUE}📦 Running tests in Docker container...${NC}"
|
|
307
|
+
|
|
308
|
+
# Clean test output directories so they can be recreated with correct permissions
|
|
309
|
+
rm -rf "$MONOREPO_ROOT/projects/demo/e2e/test-results" "$MONOREPO_ROOT/projects/demo/e2e/playwright-report" "$MONOREPO_ROOT/projects/demo/e2e/monocart-report"
|
|
310
|
+
|
|
311
|
+
# Run tests in Docker with proper volume mounting
|
|
312
|
+
# Use host user ID to avoid permission issues with mounted volumes
|
|
313
|
+
docker run --rm \
|
|
314
|
+
-v "$MONOREPO_ROOT:/pxl" \
|
|
315
|
+
-w <% dockerWorkDir %> \
|
|
316
|
+
--add-host=host.docker.internal:host-gateway \
|
|
317
|
+
$DOCKER_IMAGE \
|
|
318
|
+
/bin/bash -c "<% nodeShimsCleanup %>; pnpm e2e"
|
|
319
|
+
|
|
320
|
+
local test_exit_code=$?
|
|
321
|
+
|
|
322
|
+
if [[ $test_exit_code -eq 0 ]]; then
|
|
323
|
+
echo -e "${GREEN}✅ All tests passed!${NC}"
|
|
324
|
+
else
|
|
325
|
+
echo -e "${RED}❌ Tests failed with exit code $test_exit_code${NC}"
|
|
326
|
+
fi
|
|
327
|
+
|
|
328
|
+
return $test_exit_code
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
# Main execution
|
|
332
|
+
main() {
|
|
333
|
+
echo -e "${GREEN}╔═══════════════════╗${NC}"
|
|
334
|
+
echo -e "${GREEN}║ E2E Test Runner ║${NC}"
|
|
335
|
+
echo -e "${GREEN}╚═══════════════════╝${NC}\n"
|
|
336
|
+
|
|
337
|
+
echo -e "${BLUE}🐳 Running in Docker mode${NC}\n"
|
|
338
|
+
|
|
339
|
+
# Setup environment (resolve pnpm, activate Node.js 24+)
|
|
340
|
+
setup_environment
|
|
341
|
+
|
|
342
|
+
# Check for existing services
|
|
343
|
+
check_services
|
|
344
|
+
|
|
345
|
+
# Start backend
|
|
346
|
+
if ! start_backend; then
|
|
347
|
+
echo -e "${RED}❌ Failed to start backend. Exiting.${NC}"
|
|
348
|
+
exit 1
|
|
349
|
+
fi
|
|
350
|
+
|
|
351
|
+
# Start frontend
|
|
352
|
+
if ! start_frontend; then
|
|
353
|
+
echo -e "${RED}❌ Failed to start frontend. Exiting.${NC}"
|
|
354
|
+
exit 1
|
|
355
|
+
fi
|
|
356
|
+
|
|
357
|
+
# Run tests in Docker
|
|
358
|
+
run_tests
|
|
359
|
+
local exit_code=$?
|
|
360
|
+
|
|
361
|
+
exit $exit_code
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
# Parse command line arguments
|
|
365
|
+
case "${1:-}" in
|
|
366
|
+
--help|-h)
|
|
367
|
+
echo "Usage: $0 [OPTIONS]"
|
|
368
|
+
echo ""
|
|
369
|
+
echo "Options:"
|
|
370
|
+
echo " --help, -h Show this help message"
|
|
371
|
+
echo " --build-image Build Docker image and exit"
|
|
372
|
+
echo ""
|
|
373
|
+
echo "This script automatically:"
|
|
374
|
+
echo " 1. Detects pnpm and activates Node.js 24+ (via nvm/fnm/volta)"
|
|
375
|
+
echo " 2. Checks if backend/frontend are already running (reuses them)"
|
|
376
|
+
echo " 3. Starts backend in E2E stateless mode (if needed)"
|
|
377
|
+
echo " 4. Builds and starts frontend preview server (if needed)"
|
|
378
|
+
echo " 5. Runs E2E tests in Docker"
|
|
379
|
+
echo " 6. Cleans up all processes on exit (Ctrl+C safe)"
|
|
380
|
+
echo ""
|
|
381
|
+
echo "Examples:"
|
|
382
|
+
echo " $0 # Run E2E tests"
|
|
383
|
+
echo " $0 --build-image # Just build the Docker image"
|
|
384
|
+
echo ""
|
|
385
|
+
echo "Logs:"
|
|
386
|
+
echo " Backend log: .e2e-backend.log"
|
|
387
|
+
echo " Frontend log: .e2e-frontend.log"
|
|
388
|
+
exit 0
|
|
389
|
+
;;
|
|
390
|
+
--build-image)
|
|
391
|
+
setup_environment
|
|
392
|
+
build_docker_image
|
|
393
|
+
exit $?
|
|
394
|
+
;;
|
|
395
|
+
*)
|
|
396
|
+
main
|
|
397
|
+
;;
|
|
398
|
+
esac
|
|
@@ -14,6 +14,9 @@ function generateModelCreateForm({ model, context }) {
|
|
|
14
14
|
if (model.update.action.standardActions.create === undefined) {
|
|
15
15
|
throw new Error(`Cannot generate create form for model ${model.name} without create action`);
|
|
16
16
|
}
|
|
17
|
+
if (model._conjugated.camelCase === 'file') {
|
|
18
|
+
return generateFileCreateUploadForm({ model });
|
|
19
|
+
}
|
|
17
20
|
const imports = generator_1.ImportGenerator
|
|
18
21
|
//
|
|
19
22
|
.from(model.forms.create.location)
|
|
@@ -542,4 +545,192 @@ function generateModelFormField_DiscriminatedUnion({ imports, field, context, is
|
|
|
542
545
|
`),
|
|
543
546
|
};
|
|
544
547
|
}
|
|
548
|
+
function generateFileCreateUploadForm({ model }) {
|
|
549
|
+
const imports = generator_1.ImportGenerator
|
|
550
|
+
//
|
|
551
|
+
.from(model.forms.create.location)
|
|
552
|
+
.addImports({
|
|
553
|
+
[(0, generator_1.toPackageName)('react')]: [(0, generator_1.toFunctionName)('Fragment'), (0, generator_1.toFunctionName)('useCallback'), (0, generator_1.toFunctionName)('useState')],
|
|
554
|
+
[(0, generator_1.toPackageName)('@postxl/ui-components')]: [
|
|
555
|
+
(0, generator_1.toClassName)('Button'),
|
|
556
|
+
(0, generator_1.toClassName)('Dialog'),
|
|
557
|
+
(0, generator_1.toClassName)('DialogClose'),
|
|
558
|
+
(0, generator_1.toClassName)('DialogContent'),
|
|
559
|
+
(0, generator_1.toClassName)('DialogDescription'),
|
|
560
|
+
(0, generator_1.toClassName)('DialogFooter'),
|
|
561
|
+
(0, generator_1.toClassName)('DialogHeader'),
|
|
562
|
+
(0, generator_1.toClassName)('DialogTitle'),
|
|
563
|
+
(0, generator_1.toClassName)('Field'),
|
|
564
|
+
(0, generator_1.toClassName)('FieldGroup'),
|
|
565
|
+
(0, generator_1.toClassName)('FieldLabel'),
|
|
566
|
+
(0, generator_1.toClassName)('Input'),
|
|
567
|
+
],
|
|
568
|
+
})
|
|
569
|
+
.addImport({
|
|
570
|
+
from: (0, generator_1.toBackendModuleLocation)('@context-providers/auth-context-provider'),
|
|
571
|
+
items: [(0, generator_1.toFunctionName)('getAuthHeaders')],
|
|
572
|
+
})
|
|
573
|
+
.addImport({ from: (0, generator_1.toBackendModuleLocation)('@lib/config'), items: [(0, generator_1.toConstantName)('APP_CONFIG')] });
|
|
574
|
+
const outputType = `${model.types.name}Create`;
|
|
575
|
+
return `
|
|
576
|
+
${imports.generate()}
|
|
577
|
+
|
|
578
|
+
export type ${model.forms.create.name}Props = Readonly<{
|
|
579
|
+
/**
|
|
580
|
+
* When true, the form includes a \`DialogFooter\` with a button to close the dialog.
|
|
581
|
+
*/
|
|
582
|
+
modal?: boolean
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Optional custom submit callback. If provided, it will be used instead of the default upload endpoint.
|
|
586
|
+
*/
|
|
587
|
+
onSubmit?: (item: ${outputType}) => void
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* Callback invoked when a ${model.userFriendlyName} has been successfully created.
|
|
591
|
+
*/
|
|
592
|
+
onSuccess?: (item: ${outputType}) => void
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* Callback invoked when an error occurred during creation of a ${model.userFriendlyName}.
|
|
596
|
+
*/
|
|
597
|
+
onError?: (item: ${outputType}, error: unknown) => void
|
|
598
|
+
}>
|
|
599
|
+
|
|
600
|
+
export type ${outputType} = {
|
|
601
|
+
name: string
|
|
602
|
+
mimetype: string
|
|
603
|
+
size: number | null
|
|
604
|
+
url: string
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
export function ${model.forms.create.name}({ modal, onSubmit, onSuccess, onError }: ${model.forms.create.name}Props) {
|
|
608
|
+
const [selectedFile, setSelectedFile] = useState<File | null>(null)
|
|
609
|
+
const [isSubmitting, setIsSubmitting] = useState(false)
|
|
610
|
+
const Footer = modal ? DialogFooter : Fragment
|
|
611
|
+
|
|
612
|
+
const reset = useCallback(() => {
|
|
613
|
+
setSelectedFile(null)
|
|
614
|
+
}, [])
|
|
615
|
+
|
|
616
|
+
const handleSubmit = useCallback(
|
|
617
|
+
async (event: React.FormEvent) => {
|
|
618
|
+
event.preventDefault()
|
|
619
|
+
event.stopPropagation()
|
|
620
|
+
|
|
621
|
+
if (!selectedFile || isSubmitting) {
|
|
622
|
+
return
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
const data: ${outputType} = {
|
|
626
|
+
name: selectedFile.name,
|
|
627
|
+
mimetype: selectedFile.type || 'application/octet-stream',
|
|
628
|
+
size: selectedFile.size,
|
|
629
|
+
url: '',
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
try {
|
|
633
|
+
setIsSubmitting(true)
|
|
634
|
+
if (onSubmit) {
|
|
635
|
+
await onSubmit(data)
|
|
636
|
+
onSuccess?.(data)
|
|
637
|
+
return
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
const formData = new FormData()
|
|
641
|
+
formData.append('file', selectedFile)
|
|
642
|
+
|
|
643
|
+
const response = await fetch(\`\${APP_CONFIG.apiURL}/upload\`, {
|
|
644
|
+
method: 'POST',
|
|
645
|
+
body: formData,
|
|
646
|
+
headers: getAuthHeaders(),
|
|
647
|
+
credentials: 'include',
|
|
648
|
+
})
|
|
649
|
+
|
|
650
|
+
const payload = (await response.json().catch(() => undefined)) as
|
|
651
|
+
| { success: true; result: { file: ${outputType} } }
|
|
652
|
+
| { success: false; error?: string }
|
|
653
|
+
| undefined
|
|
654
|
+
|
|
655
|
+
if (!response.ok || !payload || payload.success !== true) {
|
|
656
|
+
const errorMessage =
|
|
657
|
+
payload && 'error' in payload && typeof payload.error === 'string' ? payload.error : 'Upload failed'
|
|
658
|
+
throw new Error(errorMessage)
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
onSuccess?.(payload.result.file)
|
|
662
|
+
reset()
|
|
663
|
+
} catch (error) {
|
|
664
|
+
onError?.(data, error)
|
|
665
|
+
} finally {
|
|
666
|
+
setIsSubmitting(false)
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
[isSubmitting, onError, onSubmit, onSuccess, reset, selectedFile],
|
|
670
|
+
)
|
|
671
|
+
|
|
672
|
+
return (
|
|
673
|
+
<form onSubmit={handleSubmit}>
|
|
674
|
+
<FieldGroup>
|
|
675
|
+
<Field>
|
|
676
|
+
<FieldLabel htmlFor="file-upload-input">File</FieldLabel>
|
|
677
|
+
<Input
|
|
678
|
+
id="file-upload-input"
|
|
679
|
+
type="file"
|
|
680
|
+
onChange={(event) => {
|
|
681
|
+
setSelectedFile(event.target.files?.[0] ?? null)
|
|
682
|
+
}}
|
|
683
|
+
/>
|
|
684
|
+
</Field>
|
|
685
|
+
</FieldGroup>
|
|
686
|
+
|
|
687
|
+
<Footer>
|
|
688
|
+
<Field orientation="horizontal">
|
|
689
|
+
{modal && (
|
|
690
|
+
<DialogClose asChild>
|
|
691
|
+
<Button type="button" variant="outline">
|
|
692
|
+
Cancel
|
|
693
|
+
</Button>
|
|
694
|
+
</DialogClose>
|
|
695
|
+
)}
|
|
696
|
+
|
|
697
|
+
<Button type="button" variant="outline" onClick={reset} disabled={isSubmitting}>
|
|
698
|
+
Reset
|
|
699
|
+
</Button>
|
|
700
|
+
|
|
701
|
+
<Button type="submit" disabled={!selectedFile || isSubmitting}>
|
|
702
|
+
{isSubmitting ? 'Uploading...' : 'Upload'}
|
|
703
|
+
</Button>
|
|
704
|
+
</Field>
|
|
705
|
+
</Footer>
|
|
706
|
+
</form>
|
|
707
|
+
)
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
export type ${model.forms.createModal.name}Props = Readonly<{
|
|
711
|
+
open?: boolean
|
|
712
|
+
children?: React.ReactNode
|
|
713
|
+
onClose?: () => void
|
|
714
|
+
} & Omit<${model.forms.create.name}Props, 'modal'>>
|
|
715
|
+
|
|
716
|
+
export function ${model.forms.createModal.name}({ open, children, onClose, ...props }: ${model.forms.createModal.name}Props) {
|
|
717
|
+
return (
|
|
718
|
+
<Dialog open={open} onOpenChange={onClose}>
|
|
719
|
+
{children}
|
|
720
|
+
|
|
721
|
+
<DialogContent>
|
|
722
|
+
<DialogHeader>
|
|
723
|
+
<DialogTitle>Create ${model.userFriendlyName}</DialogTitle>
|
|
724
|
+
<DialogDescription>
|
|
725
|
+
Upload a file to create a new ${model.userFriendlyName}.
|
|
726
|
+
</DialogDescription>
|
|
727
|
+
</DialogHeader>
|
|
728
|
+
|
|
729
|
+
<${model.forms.create.name} modal {...props} />
|
|
730
|
+
</DialogContent>
|
|
731
|
+
</Dialog>
|
|
732
|
+
)
|
|
733
|
+
}
|
|
734
|
+
`;
|
|
735
|
+
}
|
|
545
736
|
//# sourceMappingURL=forms.generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.generator.js","sourceRoot":"","sources":["../../../../src/frontend-forms/generators/model/forms.generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms.generator.js","sourceRoot":"","sources":["../../../../src/frontend-forms/generators/model/forms.generator.ts"],"names":[],"mappings":";;AAoBA,0DAkLC;AASD,0DAiLC;AAhYD,iDAO0B;AAE1B,yCAAqD;AAWrD,SAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAoC;IAC1F,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,IAAI,wBAAwB,CAAC,CAAA;IAC9F,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,4BAA4B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,2BAAe;QAC7B,EAAE;SACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;SACpB,UAAU,CAAC;QACV,CAAC,IAAA,yBAAa,EAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAc,EAAC,SAAS,CAAC,CAAC;QACpE,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAc,EAAC,UAAU,CAAC,EAAE,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAC;QACrF,CAAC,IAAA,yBAAa,EAAC,uBAAuB,CAAC,CAAC,EAAE;YACxC,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,eAAe,CAAC;YAC5B,IAAA,uBAAW,EAAC,mBAAmB,CAAC;YAChC,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,OAAO,CAAC;YACpB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,YAAY,CAAC;SAC1B;KACF,CAAC,CAAA;IAEJ,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAA;IAClD,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAA;IAE9C,+EAA+E;IAC/E,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;SAC3D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE7F,OAAO;IACL,OAAO,CAAC,QAAQ,EAAE;;;gBAGN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;;;iCAON,KAAK,CAAC,gBAAgB;;;;wBAI/B,UAAU;;;iCAGD,KAAK,CAAC,gBAAgB;;yBAE9B,UAAU;;;sEAGmC,KAAK,CAAC,gBAAgB;;uBAErE,UAAU;;;;MAI3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;;;gBAG5D,SAAS;gBACT,UAAU;;;MAGpB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;SACzE,SAAS;;oBAEE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,6CAA6C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;cACjG,KAAK,CAAC,SAAS,CAAC,MAAO,CAAC,IAAI,uBAAuB,KAAK,CAAC,SAAS,CAAC,IAAI;;mCAElD,SAAS;sBACtB,UAAU,eAAe,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+B7C,MAAM;SACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;SACxE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BP,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;aAI/B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;oBAEhB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,2CAA2C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;;;;kCAOrF,KAAK,CAAC,gBAAgB;;uDAED,KAAK,CAAC,gBAAgB;;;;aAIhE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;GAKjC,CAAA;AACH,CAAC;AASD,SAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAoC;IAC1F,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,IAAI,wBAAwB,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,OAAO,GAAG,2BAAe;QAC7B,EAAE;SACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;SAC9B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;SACpB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;SAC3B,UAAU,CAAC;QACV,CAAC,IAAA,yBAAa,EAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAc,EAAC,SAAS,CAAC,CAAC;QACpE,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAc,EAAC,UAAU,CAAC,EAAE,IAAA,0BAAc,EAAC,aAAa,CAAC,CAAC;QAErF,CAAC,IAAA,yBAAa,EAAC,uBAAuB,CAAC,CAAC,EAAE;YACxC,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,eAAe,CAAC;YAC5B,IAAA,uBAAW,EAAC,mBAAmB,CAAC;YAChC,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,OAAO,CAAC;YACpB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,YAAY,CAAC;SAC1B;KACF,CAAC,CAAA;IAEJ,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAA;IAClD,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAA;IAE9C,+EAA+E;IAC/E,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAC7C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;SACpC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAE9F,OAAO;IACL,OAAO,CAAC,QAAQ,EAAE;;;gBAGN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;eACxB,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;;;;;;;;iCAQR,KAAK,CAAC,gBAAgB;;;;wBAI/B,UAAU;;;iCAGD,KAAK,CAAC,gBAAgB;;yBAE9B,UAAU;;;oEAGiC,KAAK,CAAC,gBAAgB;;uBAEnE,UAAU;;;;MAI3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;;;gBAG5D,SAAS;gBACT,UAAU;;oBAEN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,sDAAsD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;cAC1G,KAAK,CAAC,SAAS,CAAC,MAAO,CAAC,IAAI,uBAAuB,KAAK,CAAC,SAAS,CAAC,IAAI;;mCAElD,SAAS;sBACtB,UAAU,iCAAiC,UAAU;;;;;;;;;;;;;UAajE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;aACxE,SAAS;;;;;;;;;;;;;;;;;;;YAmBV,MAAM;SACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;SACxE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BP,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;aAI/B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;oBAEhB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,2CAA2C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;;;;kCAOrF,KAAK,CAAC,gBAAgB;;6DAEK,KAAK,CAAC,gBAAgB;;;;aAItE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;GAKjC,CAAA;AACH,CAAC;AAWD,SAAS,qBAAqB,CAAC,KAAY,EAAE,KAAa;IACxD,OAAO;wBACe,KAAK,CAAC,IAAI;;;;;;;gBAOlB,KAAK,CAAC,KAAK;;;cAGb,KAAK;;;;;;;GAOhB,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,EAC9B,OAAO,EACP,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,GAOT;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,IAAI;YACP,OAAO;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;gBACxC,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI;aAChB,CAAA;QACH,KAAK,QAAQ;YACX,OAAO,6BAA6B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAE1D,KAAK,MAAM;YACT,OAAO,2BAA2B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAEjE,KAAK,UAAU;YACb,OAAO,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QAErE,KAAK,oBAAoB;YACvB,OAAO,yCAAyC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEzF;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,EACrC,OAAO,EACP,KAAK,GAIN;IACC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,IAAA,yBAAa,EAAC,uBAAuB,CAAC;gBAC5C,KAAK,EAAE,CAAC,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;aAC9B,CAAC,CAAA;YAEF,OAAO;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,MAAM,EAAE,aAAa,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;gBAC5D,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;;;;uBAIa,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB;;;;;;WAM9E,CACF;aACF,CAAA;QAEH,KAAK,QAAQ;YACX,OAAO,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,IAAA,yBAAa,EAAC,uBAAuB,CAAC;gBAC5C,KAAK,EAAE,CAAC,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;aAC9B,CAAC,CAAA;YAEF,OAAO;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,MAAM,EAAE,aAAa,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;gBAC5D,YAAY,EAAE,GAAG;gBACjB,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;;;;;uBAKa,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB;;;;;;WAM9E,CACF;aACF,CAAA;QAEH,KAAK,SAAS;YACZ,OAAO,CAAC,SAAS,CAAC;gBAChB,IAAI,EAAE,IAAA,yBAAa,EAAC,uBAAuB,CAAC;gBAC5C,KAAK,EAAE,CAAC,IAAA,uBAAW,EAAC,UAAU,CAAC,CAAC;aACjC,CAAC,CAAA;YAEF,OAAO;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,MAAM,EAAE,cAAc,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;gBAC7D,YAAY,EAAE,OAAO;gBACrB,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;;;;yBAIe,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB;;;;;WAK5E,CACF;aACF,CAAA;QAEH,KAAK,MAAM;YACT,OAAO;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,MAAM,EAAE,WAAW,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;gBAC1D,YAAY,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC3D,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;;WAEC,CACF;aACF,CAAA;QAEH;YACE,MAAM,IAAI,6BAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,EACnC,OAAO,EACP,KAAK,EACL,OAAO,GAKR;IACC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAA;IAEhD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEhC,OAAO;QACL,KAAK;QACL,GAAG,EAAE,KAAK,CAAC,IAAI;QACf,MAAM,EAAE,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;QACzD,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;QACvG,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;WACK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;;;;;;;;;SAS1B,CACJ;KACF,CAAA;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,EACvC,OAAO,EACP,KAAK,EACL,OAAO,GAKR;IACC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAE,CAAA;IAEnE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;IAErH,OAAO;QACL,KAAK;QACL,GAAG,EAAE,KAAK,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;QACvF,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC9C,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;WACK,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;;mBAGpC,KAAK,CAAC,UAAU;YACd,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,qBAAqB;YAC9D,CAAC,CAAC,uCAAuC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,qBACjF;kCACwB,YAAY,CAAC,UAAU,CAAC,IAAI;;;;;;;SAOrD,CACJ;KACF,CAAA;AACH,CAAC;AAED,SAAS,yCAAyC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,GAMT;IACC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAE,CAAA;IAElD,OAAO;SACJ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC;SAC3D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,CAAA;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,CAAA;IACxE,CAAC;IAED,OAAO;QACL,KAAK;QACL,GAAG,EAAE,KAAK,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;QACjH,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;QAC7G,SAAS,EAAE,qBAAqB,CAC9B,KAAK,EACL;WACK,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,IAAI;;;;;;;;;OAS/D,CACF;KACF,CAAA;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,EAAE,KAAK,EAAiC;IAC5E,MAAM,OAAO,GAAG,2BAAe;QAC7B,EAAE;SACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjC,UAAU,CAAC;QACV,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAc,EAAC,UAAU,CAAC,EAAE,IAAA,0BAAc,EAAC,aAAa,CAAC,EAAE,IAAA,0BAAc,EAAC,UAAU,CAAC,CAAC;QACjH,CAAC,IAAA,yBAAa,EAAC,uBAAuB,CAAC,CAAC,EAAE;YACxC,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,QAAQ,CAAC;YACrB,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,eAAe,CAAC;YAC5B,IAAA,uBAAW,EAAC,mBAAmB,CAAC;YAChC,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,cAAc,CAAC;YAC3B,IAAA,uBAAW,EAAC,aAAa,CAAC;YAC1B,IAAA,uBAAW,EAAC,OAAO,CAAC;YACpB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,YAAY,CAAC;YACzB,IAAA,uBAAW,EAAC,OAAO,CAAC;SACrB;KACF,CAAC;SACD,SAAS,CAAC;QACT,IAAI,EAAE,IAAA,mCAAuB,EAAC,0CAA0C,CAAC;QACzE,KAAK,EAAE,CAAC,IAAA,0BAAc,EAAC,gBAAgB,CAAC,CAAC;KAC1C,CAAC;SACD,SAAS,CAAC,EAAE,IAAI,EAAE,IAAA,mCAAuB,EAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,IAAA,0BAAc,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAA;IAErG,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAA;IAE9C,OAAO;IACL,OAAO,CAAC,QAAQ,EAAE;;gBAEN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;;;;;wBASf,UAAU;;;iCAGD,KAAK,CAAC,gBAAgB;;yBAE9B,UAAU;;;sEAGmC,KAAK,CAAC,gBAAgB;;uBAErE,UAAU;;;gBAGjB,UAAU;;;;;;;oBAON,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,6CAA6C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;sBAkBzF,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;iDA0BiB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA2D3C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;aAI/B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;oBAEhB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,2CAA2C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI;;;;;;;kCAOrF,KAAK,CAAC,gBAAgB;;8CAEV,KAAK,CAAC,gBAAgB;;;;aAIvD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;GAKjC,CAAA;AACH,CAAC"}
|