diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 204824a..b8765f9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -103,14 +103,33 @@ jobs: - name: Install deps run: npm ci - - name: Build client - run: npm run build -w apps/client + - name: Bundle client with esbuild + run: | + cd apps/client + npx esbuild src/index.tsx \ + --bundle \ + --platform=node \ + --external:ink \ + --external:react \ + --external:eventsource \ + --external:node-notifier \ + --external:vax-core.*.node \ + --outfile=dist/index.js \ + --format=esm \ + --sourcemap + + - name: Copy runtime files + run: | + cp -r apps/client/dist release/ + cp apps/client/package.json release/client/ + cp package-lock.json release/client/ + cp install.sh release/ - name: Upload artifact uses: actions/upload-artifact@v4 with: name: client-dist - path: apps/client/dist + path: release retention-days: 5 # ─── Assemble release package ────────────────────────────────────────── @@ -134,7 +153,7 @@ jobs: uses: actions/download-artifact@v4 with: name: client-dist - path: release/client + path: release - name: Determine version id: version @@ -285,8 +304,9 @@ jobs: run: | cd release tar -czf client.tar.gz client/ + zip -r client.zip client/ echo "Client package size:" - du -sh client.tar.gz + du -sh client.tar.gz client.zip - name: Create Release uses: softprops/action-gh-release@v2 diff --git a/README.md b/README.md index e642a42..c9d4e56 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,70 @@ -# vox - Secure Terminal Chat +# VAX Chat — Secure Terminal Chat A cryptographically secure, end-to-end encrypted terminal chat application. ## Features -- **End-to-End Encryption**: All messages are encrypted using Ed25519 signatures and XChaCha20-Poly1305 -- **Zero-Knowledge**: Server never sees message content - only encrypted payloads +- **End-to-End Encryption**: All messages encrypted with Ed25519 signatures and XChaCha20-Poly1305 +- **Zero-Knowledge**: Server never sees message content — only encrypted payloads - **2FA Support**: TOTP-based two-factor authentication -- **Terminal-First**: Built with neo-blessed for a performant CLI experience +- **Terminal-First**: Built with Ink (React) for a reactive, modern CLI experience - **Real-Time**: Server-Sent Events (SSE) for instant message delivery +- **Cross-Platform**: Linux, macOS, and Windows binaries via GitHub Releases -## Architecture +## Install + +### Linux / macOS +```bash +curl -sSL https://raw.githubusercontent.com/LyeZinho/vox/main/install.sh | bash ``` -┌─────────────────────────────────────────────────────┐ -│ Terminal Client │ -│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │ -│ │ TUI │ │ State │ │ Rust │ │ -│ │ (blessed) │◄─┤ Manager │◄─┤ Core │ │ -│ └─────────────┘ └──────────────┘ │ (crypto) │ │ -│ └────────────┘ │ -└─────────────────────────────────────────────────────┘ - │ - HTTPS + SSE - │ -┌─────────────────────────────────────────────────────┐ -│ Relay Server │ -│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │ -│ │ NestJS │ │ Redis │ │ Postgres │ │ -│ │ API │◄─┤ Pub/Sub │ │ Database │ │ -│ └─────────────┘ └──────────────┘ └────────────┘ │ -└─────────────────────────────────────────────────────┘ + +### Windows + +```powershell +irm https://raw.githubusercontent.com/LyeZinho/vox/main/install.ps1 | iex +``` + +### Version + +```bash +# Install specific version +curl -sSL https://raw.githubusercontent.com/LyeZinho/vox/main/install.sh | bash -s 1.0.0 + +# Install latest pre-release (dev build) +curl -sSL https://raw.githubusercontent.com/LyeZinho/vox/ink-migration/install.sh | bash ``` -## Quick Start +### Custom Server + +```bash +VAX_SERVER=https://your-server.com vax +# or +export VAX_SERVER=https://your-server.com +vax +``` + +Default server: `https://vox.devscafe.org` + +## Development ### Prerequisites -- Node.js 20+ +- Node.js 22+ - Rust (for building the crypto core) - Docker & Docker Compose (for server) -### Development Setup +### Setup ```bash -# Clone the repository -git clone https://github.com/yourusername/tchat.git -cd tchat - -# Install dependencies +git clone https://github.com/LyeZinho/vox.git +cd vox npm install # Build the Rust crypto core npm run build:core -# Start the backend (requires Docker) +# Start the backend docker-compose up -d # Start the server @@ -64,14 +74,27 @@ npm run dev:server npm run dev:client ``` -### Production Deployment - -```bash -# Build everything -npm run build +## Architecture -# Deploy with Docker -docker-compose up -d --build +``` +┌─────────────────────────────────────────────────────┐ +│ Terminal Client │ +│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │ +│ │ TUI │ │ State │ │ Rust │ │ +│ │ (Ink) │◄─┤ (Store) │◄─┤ Core │ │ +│ │ React │ │ useReducer │ │ (crypto) │ │ +│ └─────────────┘ └──────────────┘ └────────────┘ │ +└─────────────────────────────────────────────────────┘ + │ + HTTPS + SSE + │ +┌─────────────────────────────────────────────────────┐ +│ Relay Server │ +│ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │ +│ │ NestJS │ │ Redis │ │ Postgres │ │ +│ │ API │◄─┤ Pub/Sub │ │ Database │ │ +│ └─────────────┘ └──────────────┘ └────────────┘ │ +└─────────────────────────────────────────────────────┘ ``` ## Usage @@ -79,7 +102,28 @@ docker-compose up -d --build 1. **First Launch**: Enter email and password to create your vault 2. **Subsequent Launches**: Enter password to unlock your private key 3. **Send Messages**: Type in the input bar and press Enter -4. **Navigate**: Use arrow keys to move between channels +4. **Commands**: Type `/help` to see all available commands + +### Commands + +| Command | Description | +|---------|-------------| +| `/join ` | Join a room | +| `/create ` | Create a new room | +| `/rooms` | List available rooms | +| `/leave` | Leave current room | +| `/theme ` | Switch theme (default, dracula, nord) | +| `/clear` | Clear chat | +| `/quit` | Exit VAX Chat | + +### Keybindings + +| Key | Action | +|-----|--------| +| `Ctrl+C` / `q` | Quit | +| `Ctrl+P` | Toggle privacy mode | +| `↑ / ↓` | Scroll chat history | +| `Tab` | Navigate form fields (onboarding) | ## Security @@ -97,38 +141,26 @@ docker-compose up -d --build 3. Only the public key is ever transmitted to the server 4. Messages are signed before encryption -## API Endpoints - -| Method | Endpoint | Description | -|--------|----------|-------------| -| POST | `/chat/messages` | Send encrypted message | -| GET | `/chat/stream?roomId=X` | SSE message stream | -| GET | `/chat/history/:roomId` | Message history | -| POST | `/users/:pubKey/2fa/setup` | Setup 2FA | -| POST | `/users/:pubKey/2fa/enable` | Enable 2FA | - ## Environment Variables -### Server +### Client | Variable | Default | Description | |----------|---------|-------------| -| DATABASE_URL | - | PostgreSQL connection string | -| REDIS_URL | redis://localhost:6379 | Redis connection string | -| PORT | 3000 | Server port | +| `VAX_API_URL` | `https://vox.devscafe.org` | Server URL | +| `VAX_SERVER` | `https://vox.devscafe.org` | Alias for `VAX_API_URL` | +| `VAX_HOME` | `~/.vax` | Installation directory | -### Client +### Server | Variable | Default | Description | |----------|---------|-------------| -| TCHAT_API_URL | http://localhost:3000 | Server URL | +| `DATABASE_URL` | — | PostgreSQL connection string | +| `REDIS_URL` | `redis://localhost:6379` | Redis connection string | +| `PORT` | `3000` | Server port | -## License - -MIT License - see LICENSE file +See `.env.example` for a full configuration template. -## Contributing +## License -1. Fork the repository -2. Create a feature branch -3. Submit a Pull Request +MIT License — see LICENSE file diff --git a/package-lock.json b/package-lock.json index 86a1f8b..448af0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,10 +25,477 @@ "@types/node": "^22.19.15", "@types/node-notifier": "^8.0.5", "@types/react": "^19.0.0", + "esbuild": "^0.24.0", "tsx": "^4.21.0", "typescript": "^5.9.3" } }, + "apps/client/node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "apps/client/node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, "apps/server": { "version": "0.0.1", "license": "UNLICENSED", @@ -11063,10 +11530,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/tchat-core": { - "resolved": "packages/core-rust", - "link": true - }, "node_modules/terminal-size": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/terminal-size/-/terminal-size-4.0.1.tgz", @@ -11865,6 +12328,10 @@ "node": ">= 0.8" } }, + "node_modules/vax-core": { + "resolved": "packages/core-rust", + "link": true + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -12368,13 +12835,13 @@ "license": "MIT" }, "packages/core-rust": { - "name": "tchat-core", + "name": "vax-core", "version": "1.0.0", "devDependencies": { "@napi-rs/cli": "^3.0.0" }, "engines": { - "node": ">= 10" + "node": ">= 18" } }, "packages/core-rust/node_modules/@inquirer/ansi": {