* Add separate frontend and backend port configuration for demo command
Implement ATXP-243: Allow users to specify separate frontend and backend ports
when running the demo, replacing the single --port option with more granular control.
## Changes Made
### Command Line Interface
- Replace `--port, -p` with `--frontend-port, --fp` and `--backend-port, --bp`
- Update default ports: frontend 3000, backend 3001 (matching atxp-express-example defaults)
- Maintain backward compatibility by using sensible defaults
### Updated Documentation
- Comprehensive help text with new port options and examples
- Clear usage examples showing frontend/backend port combinations
- Updated default port information throughout
## Implementation Details
The demo command now:
1. Parses separate frontend/backend port arguments
2. Creates appropriate .env files in the cloned repository
3. Passes environment variables to the demo process
4. Uses frontend port for browser opening and user messaging
This integrates seamlessly with the atxp-express-example repository's existing
port configuration system implemented in PR #6.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update default ports to maintain backward compatibility
- Frontend port: 8016 (original default, maintains backward compatibility)
- Backend port: 8017 (one number higher as requested)
- Updated help documentation with new default port values
- Verified .env file generation works correctly with new defaults
This preserves existing user expectations while providing the requested
port separation functionality.
* Fix backend port configuration issue
Remove global PORT environment variable that was overriding backend .env file.
Now each service (frontend/backend) reads its PORT from its own .env file,
allowing them to run on separate ports correctly.
Fixes issue where backend was running on frontend port instead of backend port,
causing ECONNREFUSED errors in the proxy connection.
Verified fix: Backend=8017, Frontend=8016, proxy connections working.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Show full help information when user enters an unrecognized command instead
of just displaying a brief error message. This provides better UX by letting
users immediately see available commands without needing to run help separately.
- Use shallow clone (--depth 1) to download only the latest commit
- Add --single-branch flag to avoid downloading other branches
- Explicitly target main branch with --branch main
- Optimize git pull to maintain shallow history during updates
- Add comprehensive tests documenting git optimization parameters
This reduces data transfer and improves clone performance for both demo and create commands.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
- Add dependency checking utility for git and npm
- Check dependencies before running demo and create commands
- Show friendly error messages with installation instructions
- Add tests for dependency checking functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
- Move argument parsing from run-demo.ts to index.ts for better separation of concerns
- Add --port/-p option to specify custom demo port (default: 8016)
- Add --dir/-d option to specify custom demo directory (default: ~/.cache/atxp/demo)
- Refactor runDemo() to accept DemoOptions parameter for type safety
- Update all helper functions to use passed parameters instead of global state
- Add comprehensive documentation in help text and README files
- Support path resolution for relative directory paths
New usage examples:
- npx atxp demo --port 3000
- npx atxp demo --dir ./my-demo
- npx atxp demo --port 9000 --dir ~/projects/demo --verbose
Resolves port conflicts and allows flexible demo installation locations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>