{
  "name": "vibetunnel",
  "version": "1.0.0-beta.16",
  "description": "Terminal sharing server with web interface - supports macOS, Linux, and headless environments",
  "main": "dist/server/server.js",
  "bin": {
    "vibetunnel": "./bin/vibetunnel"
  },
  "files": [
    "dist/",
    "public/",
    "bin/",
    "scripts/ensure-native-modules.js",
    "scripts/postinstall-npm.js",
    "scripts/install-vt-command.js",
    "node-pty/lib/",
    "node-pty/package.json",
    "node-pty/binding.gyp",
    "node-pty/src/",
    "prebuilds/",
    "README.md"
  ],
  "os": [
    "darwin",
    "linux"
  ],
  "engines": {
    "node": ">=20.0.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/amantus-ai/vibetunnel.git",
    "directory": "web"
  },
  "homepage": "https://vibetunnel.sh",
  "bugs": {
    "url": "https://github.com/amantus-ai/vibetunnel/issues"
  },
  "scripts": {
    "clean": "node scripts/clean.js",
    "dev": "node scripts/dev.js",
    "dev:server": "tsx watch src/cli.ts --no-auth",
    "dev:client": "node scripts/dev.js --client-only",
    "build": "node scripts/build.js",
    "build:ci": "node scripts/build-ci.js",
    "build:npm": "node scripts/build-npm.js",
    "prepublishOnly": "npm run build:npm",
    "postinstall": "node scripts/postinstall-npm.js",
    "prebuild": "echo 'Skipping prebuild - handled by build-npm.js'",
    "prebuild:upload": "echo 'Skipping prebuild:upload - not used'",
    "lint": "concurrently -n biome,tsc-server,tsc-client,tsc-sw \"biome check src\" \"tsc --noEmit --project tsconfig.server.json\" \"tsc --noEmit --project tsconfig.client.json\" \"tsc --noEmit --project tsconfig.sw.json\"",
    "lint:fix": "biome check src --write",
    "lint:biome": "biome check src",
    "typecheck": "concurrently -n server,client,sw \"tsc --noEmit --project tsconfig.server.json\" \"tsc --noEmit --project tsconfig.client.json\" \"tsc --noEmit --project tsconfig.sw.json\"",
    "pretest": "node scripts/ensure-native-modules.js",
    "test": "vitest",
    "test:ci": "npm run pretest && vitest run --reporter=verbose",
    "test:coverage": "vitest run --coverage",
    "test:client": "vitest run --mode=client",
    "test:server": "vitest run --mode=server",
    "test:client:coverage": "vitest run --mode=client --coverage",
    "test:server:coverage": "vitest run --mode=server --coverage",
    "format": "biome format src --write",
    "format:check": "biome format src",
    "prettier": "prettier --write src --experimental-cli",
    "prettier:check": "prettier --check src --experimental-cli",
    "prettier:fast": "PRETTIER_EXPERIMENTAL_CLI=1 prettier --write src",
    "check": "./scripts/check-all.sh",
    "check:fix": "./scripts/check-fix-sequential.sh",
    "test:vt": "./scripts/test-vt-syntax.sh",
    "precommit": "pnpm run format && pnpm run lint:fix && pnpm run typecheck",
    "test:e2e": "playwright test",
    "test:e2e:headed": "playwright test --headed",
    "test:e2e:debug": "playwright test --debug",
    "test:e2e:skip-failing": "playwright test --config=playwright.config.skip-failing.ts",
    "test:e2e:fast": "playwright test --config=playwright.config.fast.ts",
    "test:e2e:ui": "playwright test --ui",
    "test:e2e:report": "playwright show-report",
    "test:e2e:parallel": "PLAYWRIGHT_PARALLEL=true playwright test",
    "test:e2e:parallel:headed": "PLAYWRIGHT_PARALLEL=true playwright test --headed",
    "test:e2e:parallel:workers": "PLAYWRIGHT_PARALLEL=true PLAYWRIGHT_WORKERS=4 playwright test",
    "test:e2e:perf": "playwright test --config=playwright.config.performance.ts",
    "prepare": "husky"
  },
  "pnpm": {
    "onlyBuiltDependencies": [
      "authenticate-pam",
      "esbuild",
      "node-pty",
      "puppeteer"
    ]
  },
  "dependencies": {
    "@codemirror/commands": "^6.8.1",
    "@codemirror/lang-css": "^6.3.1",
    "@codemirror/lang-html": "^6.4.9",
    "@codemirror/lang-javascript": "^6.2.4",
    "@codemirror/lang-json": "^6.0.2",
    "@codemirror/lang-markdown": "^6.3.4",
    "@codemirror/lang-python": "^6.2.1",
    "@codemirror/state": "^6.5.2",
    "@codemirror/theme-one-dark": "^6.1.3",
    "@codemirror/view": "^6.38.1",
    "@xterm/headless": "^5.5.0",
    "authenticate-pam": "^1.0.5",
    "bonjour-service": "^1.3.0",
    "chalk": "^5.4.1",
    "compression": "^1.8.1",
    "express": "^5.1.0",
    "helmet": "^8.1.0",
    "http-proxy-middleware": "^3.0.5",
    "jsonwebtoken": "^9.0.2",
    "lit": "^3.3.1",
    "mime-types": "^3.0.1",
    "monaco-editor": "^0.52.2",
    "multer": "^2.0.2",
    "node-pty": "file:node-pty",
    "postject": "1.0.0-alpha.6",
    "signal-exit": "^4.1.0",
    "web-push": "^3.6.7",
    "ws": "^8.18.3",
    "zod": "^4.0.14"
  },
  "devDependencies": {
    "@biomejs/biome": "^2.1.3",
    "@open-wc/testing": "^4.0.0",
    "@playwright/test": "^1.54.2",
    "@prettier/plugin-oxc": "^0.0.4",
    "@tailwindcss/postcss": "^4.1.11",
    "@testing-library/dom": "^10.4.1",
    "@types/compression": "^1.8.1",
    "@types/express": "^5.0.3",
    "@types/jsonwebtoken": "^9.0.10",
    "@types/mime-types": "^3.0.1",
    "@types/multer": "^2.0.0",
    "@types/node": "^24.1.0",
    "@types/supertest": "^6.0.3",
    "@types/uuid": "^10.0.0",
    "@types/web-push": "^3.6.4",
    "@types/ws": "^8.18.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.2.0",
    "esbuild": "^0.25.8",
    "happy-dom": "^18.0.1",
    "husky": "^9.1.7",
    "lint-staged": "^16.1.2",
    "node-fetch": "^3.3.2",
    "postcss": "^8.5.6",
    "postcss-cli": "^11.0.1",
    "prettier": "^3.6.2",
    "puppeteer": "^24.15.0",
    "supertest": "^7.1.4",
    "tailwindcss": "^4.1.11",
    "tsx": "^4.20.3",
    "typescript": "^5.9.2",
    "uuid": "^11.1.0",
    "vitest": "^3.2.4",
    "ws-mock": "^0.1.0"
  },
  "keywords": [
    "terminal",
    "multiplexer",
    "websocket",
    "asciinema"
  ],
  "author": "",
  "license": "MIT",
  "lint-staged": {
    "src/**/*.{ts,tsx,js,jsx}": [
      "biome check --write",
      "bash -c 'tsc --noEmit --project tsconfig.server.json'",
      "bash -c 'tsc --noEmit --project tsconfig.client.json'",
      "bash -c 'tsc --noEmit --project tsconfig.sw.json'"
    ],
    "../{ios,mac}/**/*.swift": [
      "bash -c 'cd ../ios && ./scripts/lint.sh'",
      "bash -c 'cd ../mac && ./scripts/lint.sh'"
    ]
  }
}
