vibetunnel/web/package.json
Peter Steinberger 1ece7b2fd5 feat: add comprehensive unit tests for Rust server and update dependencies
- Add unit tests for protocol.rs (24 tests)
  - SessionInfo serialization/deserialization
  - AsciinemaHeader and event handling
  - StreamWriter UTF-8 and escape sequence processing

- Add unit tests for sessions.rs (23 tests)
  - Session listing and management
  - PID tracking and process lifecycle
  - Signal handling and cleanup operations
  - Named pipe operations with timeout protection

- Add unit tests for api_server.rs (12 tests)
  - API response serialization
  - MIME type detection
  - File operations and path resolution

- Add unit tests for http_server.rs (12 tests)
  - HTTP request parsing and response generation
  - Server-Sent Events (SSE) handling
  - Edge cases for malformed requests

- Update Rust dependencies
  - jiff: 0.1 -> 0.2
  - nix: 0.29.0 -> 0.30.1
  - Update term_socket.rs for nix 0.30 API changes

- Update npm dependencies
  - Express: ^4.18.2 -> ^5.1.0
  - Various dev dependencies updated

Test coverage: 24.22% overall (489/2019 lines)
- http_server.rs: 82.65% coverage
- sessions.rs: 76.88% coverage
- api_server.rs: 26.55% coverage
- protocol.rs: 5.48% coverage
2025-06-18 19:32:39 +02:00

88 lines
3.5 KiB
JSON

{
"name": "vibetunnel-web",
"version": "1.0.0",
"description": "Web frontend for terminal multiplexer",
"main": "dist/server.js",
"scripts": {
"dev": "npm run bundle:assets && npm run bundle:css && concurrently --kill-others-on-fail \"npm run watch:css\" \"npm run watch:assets\" \"npm run bundle:client -- --watch\" \"npm run bundle:test -- --watch\" \"npm run watch:server\"",
"watch:server": "tsx watch src/server.ts",
"watch:css": "npx tailwindcss -i ./src/input.css -o ./public/bundle/output.css --watch",
"watch:assets": "chokidar 'src/client/assets/**/*' -c 'npm run bundle:assets'",
"clean": "rm -rf public/* && rm -rf dist/",
"build": "npm run bundle",
"typecheck": "tsc --noEmit",
"bundle": "npm run clean && npm run bundle:assets && npm run bundle:css && npm run bundle:client && npm run bundle:test",
"bundle:assets": "mkdir -p public && cp -r src/client/assets/* public/",
"bundle:css": "mkdir -p public/bundle && npx tailwindcss -i ./src/input.css -o ./public/bundle/output.css --minify",
"bundle:client": "mkdir -p public/bundle && esbuild src/client/app-entry.ts --bundle --outfile=public/bundle/client-bundle.js --format=esm --sourcemap",
"bundle:test": "mkdir -p public/bundle && esbuild src/client/test-terminals-entry.ts --bundle --outfile=public/bundle/terminal.js --format=esm --sourcemap",
"start": "node dist/server.js",
"lint": "eslint 'src/**/*.{ts,tsx}'",
"lint:fix": "eslint 'src/**/*.{ts,tsx}' --fix",
"format": "prettier --write 'src/**/*.{ts,tsx,js,jsx,json,css,md}'",
"format:check": "prettier --check 'src/**/*.{ts,tsx,js,jsx,json,css,md}'",
"pre-commit": "./scripts/pre-commit-check.sh",
"test": "vitest",
"test:ui": "vitest --ui",
"test:run": "vitest run",
"test:coverage": "vitest run --coverage",
"test:unit": "vitest run src/test/unit",
"test:integration": "vitest run --config vitest.integration.config.ts",
"test:critical": "vitest run src/test/critical.test.ts src/test/smoke.test.ts",
"test:all": "npm run test:unit && npm run test:integration && npm run test:critical"
},
"dependencies": {
"@xterm/headless": "^5.5.0",
"express": "^5.1.0",
"lit": "^3.3.0",
"node-pty": "^1.0.0",
"ws": "^8.18.2"
},
"devDependencies": {
"@eslint/js": "^9.29.0",
"@testing-library/dom": "^10.4.0",
"@types/express": "^5.0.3",
"@types/jest": "^30.0.0",
"@types/node": "^24.0.3",
"@types/supertest": "^6.0.3",
"@types/uuid": "^10.0.0",
"@types/ws": "^8.18.1",
"@typescript-eslint/eslint-plugin": "^8.34.1",
"@typescript-eslint/parser": "^8.34.1",
"@vitest/coverage-v8": "^3.2.4",
"@vitest/ui": "^3.2.4",
"autoprefixer": "^10.4.21",
"chokidar": "^4.0.3",
"chokidar-cli": "^3.0.0",
"concurrently": "^9.1.2",
"esbuild": "^0.25.5",
"eslint": "^9.29.0",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-prettier": "^5.5.0",
"happy-dom": "^18.0.1",
"husky": "^9.1.7",
"jest": "^30.0.0",
"lint-staged": "^16.1.2",
"node-fetch": "^3.3.2",
"postcss": "^8.5.6",
"prettier": "^3.5.3",
"puppeteer": "^24.10.2",
"supertest": "^7.1.1",
"tailwindcss": "^4.1.10",
"ts-jest": "^29.4.0",
"tsx": "^4.20.3",
"typescript": "^5.8.3",
"typescript-eslint": "^8.34.1",
"uuid": "^11.1.0",
"vitest": "^3.2.4",
"ws-mock": "^0.1.0"
},
"keywords": [
"terminal",
"multiplexer",
"websocket",
"asciinema"
],
"author": "",
"license": "MIT"
}