-
v2.1.3 Stable
released this
2026-01-29 17:30:01 +03:00 | 20 commits to main since this release📅 Originally published on GitHub: Thu, 29 Jan 2026 14:32:52 GMT
🏷️ Git tag created: Thu, 29 Jan 2026 14:30:01 GMTFixed
- 🪟 Windows Spawn Error: Fixed "spawn UNKNOWN" error on Windows
- Added Windows-specific spawn options (
windowsHide,shell,stdio) - Process now spawns correctly with proper path resolution on Windows
- Added helpful troubleshooting tips for Windows users when spawn fails
- Added Windows-specific spawn options (
Improved
- 🔧 Better Windows Error Guidance: Enhanced error messages for Windows users
- Detects common spawn errors (UNKNOWN, ENOENT)
- Provides actionable troubleshooting steps:
- Check Windows Defender/antivirus blocking
- Try running as Administrator
- Reinstall nport if needed
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- 🪟 Windows Spawn Error: Fixed "spawn UNKNOWN" error on Windows
-
v2.1.2 Stable
released this
2026-01-28 08:50:33 +03:00 | 21 commits to main since this release📅 Originally published on GitHub: Wed, 28 Jan 2026 05:51:30 GMT
🏷️ Git tag created: Wed, 28 Jan 2026 05:50:33 GMT[2.1.2] - 2026-01-28
Fixed
- 📊 Analytics Integration: Fixed GA4 Measurement Protocol implementation
- Created dedicated CLI analytics stream (
G-JJHG4DP1K9) separate from website - Fixed
session_idformat (now uses numeric timestamp as required by GA4) - Fixed
engagement_time_msecto use actual number instead of string - Added
timestamp_microsfor accurate event timing - Removed debug endpoint that was preventing events from being recorded
- Added proper debug logging when
NPORT_DEBUG=true
- Created dedicated CLI analytics stream (
Changed
- 📦 Optimized Bundle Size: Switched from
tsctoesbuildfor significantly smaller package- New
scripts/build.jsbundles and minifies CLI into single file - Tree-shaking removes unused code
- Disabled TypeScript declaration and source map generation
- Reduced files in npm package (only
postinstall.jsscript included)
- New
- ⚡ Faster Development: Improved watch mode with esbuild
- Minification disabled during development for faster rebuilds
- Concurrent watching for main CLI and bin-manager entry points
- Better console output showing active file monitoring
Improved
- 🧪 Enhanced Smoke Tests: Better npm package validation in CI
- Tests now simulate full npm pack/install flow
- Installation tested from generated tarball
- More accurate pre-publish validation
Technical Details
- esbuild Configuration:
- Target: Node.js 20
- Format: ESM
- External dependencies:
axios,chalk,ora(avoids CJS/ESM issues) - Shebang added via esbuild banner instead of source file
- tsconfig.json: Updated with
noEmit: true, esbuild handles output - Package Size: Significantly reduced dist folder size
- Analytics Events:
cli_start,tunnel_created,tunnel_error,tunnel_shutdown,update_available
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- 📊 Analytics Integration: Fixed GA4 Measurement Protocol implementation
-
v2.1.1 Stable
released this
2026-01-27 13:18:33 +03:00 | 34 commits to main since this release📅 Originally published on GitHub: Tue, 27 Jan 2026 10:20:03 GMT
🏷️ Git tag created: Tue, 27 Jan 2026 10:18:33 GMT[2.1.1] - 2026-01-27
Fixed
- 🐛 NPM Package Build: Fixed missing
dist/folder in published package- Added build step to npm-publish workflow before publishing
- Package now includes compiled JavaScript files correctly
Added
- 🚀 CI/CD Workflows: Added GitHub Actions for automated deployments
ci.yml: Runs tests on push to main and pull requestsdeploy-server.yml: Auto-deploys Cloudflare Worker on server changesdeploy-website.yml: Auto-deploys website to Cloudflare Pages on changes
- 🧪 Server Test Configuration: Fixed Vitest config for CI environment
- Added miniflare bindings for test environment variables
- Tests now pass in CI without
.dev.varsfile
- ⚙️ Wrangler Configuration: Added
preview_urlssetting to suppress warnings
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- 🐛 NPM Package Build: Fixed missing
-
v2.1.0 Stable
released this
2026-01-27 12:34:07 +03:00 | 35 commits to main since this release📅 Originally published on GitHub: Tue, 27 Jan 2026 09:35:39 GMT
🏷️ Git tag created: Tue, 27 Jan 2026 09:34:07 GMT[2.1.0] - 2026-01-27
Added
- 🔷 Full TypeScript Migration: Complete rewrite of CLI and Server in TypeScript
- Strict type checking enabled across the entire codebase
- All modules converted from JavaScript to TypeScript
- Type-safe interfaces for configuration, tunnels, analytics, and i18n
- Better IDE support with IntelliSense and autocompletion
- 📚 Comprehensive Documentation: New docs folder with detailed guides
docs/ARCHITECTURE.md: System overview, component diagrams, and data flowdocs/API.md: Complete API reference with endpoints and examplesdocs/CONTRIBUTING.md: Contribution guidelines and development setup
- 🤖 AI Context Support: Added
.ai/context.mdfor AI-assisted development- Project structure and key patterns documented
- Coding conventions and architecture decisions
- Makes AI pair programming more effective
- 🧪 Unit Testing with Vitest: Comprehensive test suite for CLI
- Tests for argument parsing (
tests/args.test.ts) - Tests for version comparison (
tests/version.test.ts) - Tests for state management (
tests/state.test.ts) - Easy to run with
npm test
- Tests for argument parsing (
- 📋 Code Ownership: Added
.github/CODEOWNERSfile- Clear ownership for code review assignments
- Faster PR reviews with automatic reviewer assignment
- 📝 Cursor Rules: Added
.cursorrulesfor consistent AI assistance- Project-specific coding conventions
- TypeScript and naming guidelines
- Common patterns and anti-patterns
- 🔄 Auto-download Cloudflared: Binary downloads automatically on first run
- No need to run separate install commands
- Seamless first-time user experience
- Progress indicator during download
- 🔒 Protected Subdomain Support: Enhanced error handling for reserved subdomains
- User-friendly error message when trying to create protected subdomains (like
api) - Formatted error output matching existing error style
- Helpful suggestions to use alternative subdomain names
- Prevents accidental use of backend service subdomains
- User-friendly error message when trying to create protected subdomains (like
- 📋 TODO Management: Added
TODO.mdfor tracking planned features- Move time limit enforcement to backend
- Update README powered-by section
- Track terminal link clicks
Changed
- 🏗️ Project Structure: Reorganized for better maintainability
- All source code in
src/directory - Type definitions in
src/types/ - Shared constants in
src/constants.ts - Tests in
tests/directory
- All source code in
- 📦 Build System: Updated to TypeScript compilation
- Uses
tscfor compilation - Output to
dist/directory - Source maps for debugging
- Uses
- 🔧 Development Workflow: Improved developer experience
npm run devfor watch modenpm run buildfor productionnpm testfor running testsnpm run lintfor type checking
- ⚙️ System Requirements: Updated to Node.js 20+
- Minimum Node.js version: 20.0.0
- Minimum npm version: 10.0.0
- Better security and performance with latest LTS
Improved
- ✨ Better Error Messages: Enhanced user feedback for protected subdomains
- Catches
SUBDOMAIN_PROTECTEDerrors from backend - Formats error messages consistently with other error types
- Shows actionable options when subdomain is reserved
- Catches
Fixed
- 🐛 Intel Mac Binary Download: Fixed cloudflared binary download on Intel Macs
- Node.js reports architecture as
x64, notamd64- now correctly mapped - Fixed ARM64 Macs to download the correct
cloudflared-darwin-arm64.tgzbinary - Previously ARM64 Macs were incorrectly downloading the AMD64 binary
- Node.js reports architecture as
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- 🔷 Full TypeScript Migration: Complete rewrite of CLI and Server in TypeScript
-
v2.0.7 Stable
released this
2026-01-16 07:26:34 +03:00 | 44 commits to main since this release📅 Originally published on GitHub: Fri, 16 Jan 2026 04:29:55 GMT
🏷️ Git tag created: Fri, 16 Jan 2026 04:26:34 GMT[2.0.7] - 2026-01-14
Added
- 🌐 Smart Network Warning System: Intelligent handling of QUIC/network connectivity issues
- Automatic detection and filtering of QUIC protocol errors
- User-friendly warning messages instead of scary red error spam
- Bilingual support (English & Vietnamese)
- Smart throttling: Shows warning only after 5 errors, max once per 30 seconds
- Clear explanations of what's happening and how to fix it
- Automatic reset when connection is restored
- 🔒 Protected Subdomain Support: Enhanced error handling for reserved subdomains
- User-friendly error message when trying to create protected subdomains (like
api) - Formatted error output matching existing error style
- Helpful suggestions to use alternative subdomain names
- Prevents accidental use of backend service subdomains
- User-friendly error message when trying to create protected subdomains (like
Improved
- 🔇 Cleaner Terminal Output: No more error spam from cloudflared
- QUIC timeout errors are now silently tracked instead of displayed
- Network warnings filtered: "failed to accept QUIC stream", "timeout: no recent network activity", etc.
- Only shows meaningful warnings when there's an actual persistent issue
- Terminal stays clean and readable during normal operation
- 📡 Better User Communication: Context-aware network issue reporting
- Explains that QUIC failures are usually not critical
- Tunnel continues working via HTTP/2 fallback
- Provides actionable troubleshooting steps
- Reassures users that the tunnel is still functional
- ✨ Better Error Messages: Enhanced user feedback for protected subdomains
- Catches
SUBDOMAIN_PROTECTEDerrors from backend - Formats error messages consistently with other error types
- Shows actionable options when subdomain is reserved
- Catches
Technical Details
- Network Error Patterns: Added detection for 7 common QUIC/network error patterns
- State Management: New network issue tracking in application state
networkIssueCount: Counter for network errorslastNetworkWarningTime: Timestamp tracking for cooldownshouldShowNetworkWarning(): Smart decision logic
- Configuration: New
NETWORK_CONFIGwith threshold and cooldown settings - Bilingual Messages: Complete translations for all network warning messages
- Protected Subdomain Handling: Enhanced error handling in
src/api.js- Added check for
SUBDOMAIN_PROTECTEDerror type - Consistent formatting with existing error messages
- Clear user guidance for alternative subdomain choices
- Added check for
User Experience
Before:
[Cloudflared] 2026-01-14T04:33:02Z ERR failed to accept QUIC stream... [Cloudflared] 2026-01-14T04:33:03Z ERR failed to accept QUIC stream... [Cloudflared] 2026-01-14T04:33:04Z ERR failed to accept QUIC stream... [Cloudflared] 2026-01-14T04:33:05Z ERR failed to accept QUIC stream...After:
✔ [1/2] Connection established... ✔ [2/2] Compression enabled... ⚠️ NETWORK CONNECTIVITY ISSUE DETECTED Cloudflared is having trouble maintaining a stable connection... 📡 Your tunnel is still working, but connection quality may be affected. 💡 Possible reasons: • Unstable internet connection or high packet loss • Firewall/Router blocking UDP traffic (QUIC protocol) • ISP throttling or network congestion 🔧 What to try: • Check your internet connection stability • Try connecting from a different network • Disable VPN/Proxy if you're using one ℹ️ This is usually not critical - your tunnel should continue working normally.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- 🌐 Smart Network Warning System: Intelligent handling of QUIC/network connectivity issues
mirror of
https://github.com/tuanngocptn/nport.git
synced 2026-04-26 05:35:48 +03:00