Files
dotcom-arcade/docs/12-reference/external-dependencies.md
branderson 4130adfe58 docs: document Dotcom Arcade, streaming, proxy sign-in and saves
A new README for the combined project with setup from the Flashpoint
Ultimate torrent. New feature docs for streaming, proxy sign-in and
game saves; deployment, upgrade and streaming READMEs updated for the
single compose file; the project renamed throughout.
2026-10-13 19:31:06 -07:00

117 lines
7.7 KiB
Markdown

# External Dependencies Reference
Reference for all npm packages used across the Dotcom Arcade monorepo.
## Backend Dependencies
| Package | Version | License | Purpose |
| --------------------- | ------- | ------------ | --------------------------------------------------------- |
| axios | ^1.13.2 | MIT | HTTP client for external requests |
| bcrypt | ^6.0.0 | MIT | Password hashing (cost factor: 10) |
| better-sqlite3 | ^12.6.0 | MIT | Synchronous SQLite database driver |
| compression | ^1.7.4 | MIT | Gzip/deflate response compression |
| cors | ^2.8.5 | MIT | CORS middleware for Express |
| dotenv | ^16.4.5 | BSD-2-Clause | Load environment variables from .env |
| express | ^4.18.3 | MIT | Web framework and routing |
| express-rate-limit | ^7.1.5 | MIT | Rate limiting middleware (login: 5/15min, API: 100/15min) |
| helmet | ^7.1.0 | MIT | Security headers (CSP, HSTS, X-Frame-Options) |
| http-proxy-middleware | ^2.0.6 | MIT | Proxy request handling for game content routes |
| jsonwebtoken | ^9.0.3 | MIT | JWT implementation (HS256, 1hr expiration) |
| node-stream-zip | ^1.15.0 | MIT | Stream files from ZIPs without extraction |
| winston | ^3.11.0 | MIT | Logging with multiple transports | | zod | ^3.22.4 |
MIT | TypeScript schema validation |
## Frontend Dependencies
| Package | Version | License | Purpose |
| ------------------------ | -------------- | -------------- | -------------------------------------------------------- |
| @hookform/resolvers | ^5.2.2 | MIT | Form validation resolvers for Zod |
| @radix-ui/react-\* | latest | MIT | Accessible UI primitives (dialogs, menus, selects, etc.) |
| @ruffle-rs/ruffle | ^0.2.0-nightly | MIT/Apache-2.0 | Flash emulator (WebAssembly) |
| @tanstack/react-query | ^5.28.9 | MIT | Server state caching and syncing |
| @tanstack/react-table | ^8.21.3 | MIT | Headless data table library |
| @tanstack/react-virtual | ^3.2.0 | MIT | Virtualization for large lists |
| axios | ^1.6.8 | MIT | HTTP client with interceptors |
| class-variance-authority | ^0.7.1 | MIT | Component variant styling |
| clsx | ^2.1.0 | MIT | Conditional className construction |
| cmdk | ^1.1.1 | MIT | Command palette interface |
| date-fns | ^3.6.0 | MIT | Date utilities (formatting, parsing, relative time) |
| lucide-react | ^0.358.0 | ISC | Icon library |
| next-themes | ^0.4.6 | MIT | Theme management (dark/light mode, system detection) |
| react | ^18.3.1 | MIT | UI library with hooks |
| react-dom | ^18.3.1 | MIT | React DOM rendering |
| react-hook-form | ^7.71.1 | MIT | Performant form library with validation |
| react-router-dom | ^6.22.3 | MIT | Client-side routing with nested routes |
| recharts | ^3.6.0 | MIT | Composable charting library |
| sonner | ^2.0.7 | MIT | Toast notifications (keyboard dismissal, promises) |
| tailwind-merge | ^3.4.0 | MIT | Merge Tailwind classes without conflicts |
| tailwindcss-animate | ^1.0.7 | MIT | Pre-built animations (fade, slide, scale, spin) |
| zod | ^4.3.5 | MIT | Schema validation |
| zustand | ^4.5.2 | MIT | Client state management (auth, theme, UI) |
## Backend Game Module Dependencies
Game content serving is now integrated into the backend service and uses the
following additional dependencies (already listed in Backend Dependencies):
- **node-stream-zip** (^1.15.0) - ZIP streaming for mounted archives
- **cors** (^2.8.5) - CORS headers for game content routes
- **axios** (^1.13.2) - HTTP client for CDN fallback requests
## Development Dependencies
### Backend
| Package | Purpose |
| --------------------- | ---------------------------------------------------------------------- |
| @types/\* | TypeScript definitions for bcrypt, better-sqlite3, cors, express, etc. |
| @typescript-eslint/\* | TypeScript linting and ESLint parser |
| concurrently | Run multiple npm scripts concurrently |
| eslint | Code quality linting |
| tsx | TypeScript runner with watch mode |
| typescript | TypeScript compiler |
| vitest | Fast unit test framework (Vite-powered, Jest API) |
### Frontend
| Package | Purpose |
| ----------------------- | --------------------------------------------- |
| @types/react | TypeScript definitions for React |
| @types/react-dom | TypeScript definitions for React DOM |
| @vitejs/plugin-react | React Fast Refresh and JSX transformation |
| autoprefixer | CSS vendor prefix injection |
| postcss | CSS transformation with plugins |
| shx | Cross-platform shell commands for npm scripts |
| tailwindcss | Utility-first CSS framework |
| typescript | TypeScript compiler |
| vite | Frontend build tool with HMR |
| vite-plugin-static-copy | Copy static assets to build output |
## License Summary
| License | Count | Permissive | Copyleft |
| ------------ | ----- | ---------- | -------- |
| MIT | ~95% | Yes | No |
| Apache-2.0 | ~3% | Yes | No |
| ISC | ~1% | Yes | No |
| BSD-2-Clause | ~1% | Yes | No |
All dependencies use permissive open-source licenses. **No GPL/LGPL/AGPL
licenses** are used.
## Security Audits
```bash
npm audit # Check for vulnerabilities
npm audit fix # Fix automatically (review breaking changes)
npm update # Update dependencies
```
## Related Documentation
- [Backend Services](../03-backend/services/README.md)
- [Environment Variables](../09-deployment/environment-variables.md)
- [Frontend Architecture](../04-frontend/README.md)