Files
Termix/package.json
T

201 lines
8.1 KiB
JSON
Raw Normal View History

2025-08-07 02:20:27 -05:00
{
"name": "termix",
"private": true,
2026-06-21 15:55:41 -05:00
"version": "2.4.1",
2026-05-28 22:29:20 -05:00
"description": "Self-hosted SSH and remote desktop management.",
2025-09-12 14:42:00 -05:00
"author": "Karmaa",
"main": "electron/main.cjs",
2026-05-06 15:12:07 -05:00
"engines": {
"node": ">=22.12.0",
"npm": ">=11"
},
2025-08-07 02:20:27 -05:00
"scripts": {
+7
2025-11-05 10:36:16 -06:00
"format": "prettier --write .",
"format:check": "prettier --check .",
2026-05-28 22:29:20 -05:00
"postinstall": "node scripts/patch-app-builder-lib.cjs && node scripts/patch-guacamole-lite.cjs && node scripts/patch-better-sqlite3.cjs && node scripts/patch-nan.cjs",
2026-05-06 15:12:07 -05:00
"prebuild": "node scripts/write-electron-build-info.cjs",
+7
2025-11-05 10:36:16 -06:00
"lint": "eslint .",
"lint:fix": "eslint --fix .",
"type-check": "tsc --noEmit",
2026-06-04 15:16:53 -04:00
"test": "vitest run",
"test:watch": "vitest",
"test:ui": "vitest --ui",
"test:coverage": "vitest run --coverage",
2025-08-07 02:20:27 -05:00
"dev": "vite",
2026-05-28 22:29:20 -05:00
"build": "vite build && tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\"",
"build:backend": "tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\"",
"dev:backend": "tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\" && node ./dist/backend/backend/starter.js",
+4
2026-02-12 22:28:13 -06:00
"dev:docker": "docker stop termix-dev 2>nul & docker rm termix-dev 2>nul & docker build -f docker/Dockerfile -t termix:dev --no-cache . && docker run -d --name termix-dev -p 3000:3000 -p 8080:8080 -p 30001-30006:30001-30006 -v \"%cd%\\db\\data:/app/data\" termix:dev",
"dev:docker:restart": "docker stop termix-dev 2>nul & docker rm termix-dev 2>nul & docker run -d --name termix-dev -p 8080:8080 -p 30001-30006:30001-30006 -v \"%cd%\\db\\data:/app/data\" termix:dev",
2026-05-28 22:29:20 -05:00
"generate:openapi": "tsc -p tsconfig.node.json && node -e \"require('fs').copyFileSync('src/backend/package.json','dist/backend/package.json')\" && node ./dist/backend/backend/swagger.js",
2025-09-12 14:42:00 -05:00
"preview": "vite preview",
+7
2025-11-05 10:36:16 -06:00
"electron:dev": "concurrently \"npm run dev\" \"powershell -c \\\"Start-Sleep -Seconds 5\\\" && electron .\"",
2026-05-06 15:12:07 -05:00
"electron:patch-builder": "node scripts/patch-app-builder-lib.cjs",
+5
2026-03-08 18:02:14 -05:00
"electron:rebuild": "electron-rebuild -f -w better-sqlite3",
2026-05-06 15:12:07 -05:00
"build:win-portable": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --win --dir",
"build:win-installer": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --win --publish=never",
"build:linux-portable": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --linux --dir",
"build:linux-appimage": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --linux AppImage",
"build:linux-targz": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --linux tar.gz",
"build:mac": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --mac --universal",
"build:mac-dev": "npm run build && npm run electron:rebuild && npm run electron:patch-builder && electron-builder --mac dir --publish=never"
2025-08-07 02:20:27 -05:00
},
"dependencies": {
+2
2026-06-16 15:59:53 -05:00
"@types/ldapjs": "^3.0.6",
2026-06-21 15:55:41 -05:00
"axios": "^1.18.0",
2026-05-06 15:12:07 -05:00
"bcryptjs": "^3.0.3",
2026-06-21 15:55:41 -05:00
"better-sqlite3": "^12.11.1",
"body-parser": "^2.3.0",
2026-05-06 15:12:07 -05:00
"chalk": "^5.6.2",
+9
2026-04-22 16:55:23 -05:00
"cookie-parser": "^1.4.7",
2026-05-06 15:12:07 -05:00
"cors": "^2.8.6",
"dotenv": "^17.4.2",
"drizzle-orm": "^0.45.2",
"express": "^5.2.1",
+9
2026-04-22 16:55:23 -05:00
"guacamole-lite": "^1.2.0",
2026-05-06 15:12:07 -05:00
"jose": "^6.2.2",
+2
2026-06-16 15:59:53 -05:00
"js-yaml": "^4.2.0",
2026-05-06 15:12:07 -05:00
"jsonwebtoken": "^9.0.3",
+9
2026-04-22 16:55:23 -05:00
"jszip": "^3.10.1",
+2
2026-06-16 15:59:53 -05:00
"ldapjs": "^3.0.7",
2026-05-06 15:12:07 -05:00
"motion": "^12.38.0",
2026-06-21 15:55:41 -05:00
"multer": "^2.2.0",
2026-05-06 15:12:07 -05:00
"nanoid": "^5.1.9",
+9
2026-04-22 16:55:23 -05:00
"qrcode": "^1.5.4",
"socks": "^2.8.7",
"speakeasy": "^2.0.0",
2026-05-06 15:12:07 -05:00
"ssh2": "^1.17.0",
2026-06-21 15:55:41 -05:00
"undici": "^8.5.0",
2026-05-06 15:12:07 -05:00
"ws": "^8.20.0"
+9
2026-04-22 16:55:23 -05:00
},
"devDependencies": {
+2
2026-06-16 15:59:53 -05:00
"@codemirror/autocomplete": "^6.20.3",
2026-05-06 15:12:07 -05:00
"@codemirror/commands": "^6.10.3",
"@codemirror/search": "^6.7.0",
"@codemirror/theme-one-dark": "^6.1.3",
"@codemirror/view": "^6.41.1",
+2
2026-06-16 15:59:53 -05:00
"@commitlint/cli": "^21.0.2",
"@commitlint/config-conventional": "^21.0.2",
2026-05-06 15:12:07 -05:00
"@deadendjs/swagger-jsdoc": "^8.1.2",
"@electron/notarize": "^3.1.1",
"@electron/rebuild": "^4.0.4",
"@eslint/js": "^9.0.0",
2026-05-11 01:23:11 -05:00
"@fontsource-variable/jetbrains-mono": "^5.2.8",
2026-06-21 15:55:41 -05:00
"@fontsource/fira-code": "^5.2.7",
"@fontsource/jetbrains-mono": "^5.2.8",
"@fontsource/source-code-pro": "^5.2.7",
2025-10-01 15:40:10 -05:00
"@monaco-editor/react": "^4.7.0",
+2
2026-06-16 15:59:53 -05:00
"@radix-ui/react-accordion": "^1.2.13",
"@radix-ui/react-alert-dialog": "^1.1.16",
"@radix-ui/react-checkbox": "^1.3.4",
"@radix-ui/react-dialog": "^1.1.16",
"@radix-ui/react-dropdown-menu": "^2.1.17",
"@radix-ui/react-label": "^2.1.9",
"@radix-ui/react-popover": "^1.1.16",
"@radix-ui/react-progress": "^1.1.9",
"@radix-ui/react-scroll-area": "^1.2.11",
2026-06-21 15:55:41 -05:00
"@radix-ui/react-select": "^2.3.1",
+2
2026-06-16 15:59:53 -05:00
"@radix-ui/react-separator": "^1.1.9",
2026-06-21 15:55:41 -05:00
"@radix-ui/react-slider": "^1.4.1",
"@radix-ui/react-slot": "^1.3.0",
"@radix-ui/react-switch": "^1.3.1",
+2
2026-06-16 15:59:53 -05:00
"@radix-ui/react-tabs": "^1.1.14",
"@radix-ui/react-tooltip": "^1.2.9",
2026-05-06 15:12:07 -05:00
"@tailwindcss/vite": "^4.2.4",
2026-06-04 15:16:53 -04:00
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
+9
2026-04-22 16:55:23 -05:00
"@types/better-sqlite3": "^7.6.13",
2026-05-06 15:12:07 -05:00
"@types/cookie-parser": "^1.4.10",
+9
2026-04-22 16:55:23 -05:00
"@types/cors": "^2.8.19",
2026-05-06 15:12:07 -05:00
"@types/express": "^5.0.6",
2026-03-14 20:05:05 -05:00
"@types/guacamole-common-js": "^1.5.5",
+9
2026-04-22 16:55:23 -05:00
"@types/js-yaml": "^4.0.9",
"@types/jsonwebtoken": "^9.0.10",
2026-05-06 15:12:07 -05:00
"@types/multer": "^2.1.0",
+2
2026-06-16 15:59:53 -05:00
"@types/node": "^25.9.2",
2026-05-06 15:12:07 -05:00
"@types/qrcode": "^1.5.6",
+2
2026-06-16 15:59:53 -05:00
"@types/react": "^19.2.17",
2026-05-06 15:12:07 -05:00
"@types/react-dom": "^19.2.3",
"@types/speakeasy": "^2.0.10",
+9
2026-04-22 16:55:23 -05:00
"@types/ssh2": "^1.15.5",
"@types/ws": "^8.18.1",
2026-05-06 15:12:07 -05:00
"@uiw/codemirror-extensions-langs": "^4.25.9",
"@uiw/codemirror-theme-github": "^4.25.9",
"@uiw/react-codemirror": "^4.25.9",
"@vitejs/plugin-react": "^6.0.1",
2026-06-04 15:16:53 -04:00
"@vitest/coverage-v8": "^4.1.8",
"@vitest/ui": "^4.1.8",
+5
2026-03-08 18:02:14 -05:00
"@xterm/addon-clipboard": "^0.2.0",
2026-05-28 22:29:20 -05:00
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-unicode11": "^0.9.0",
"@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^6.0.0",
2025-08-07 02:20:27 -05:00
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
2025-11-17 09:46:05 -06:00
"cmdk": "^1.1.1",
+9
2026-04-22 16:55:23 -05:00
"concurrently": "^9.2.1",
2026-06-21 15:55:41 -05:00
"cytoscape": "^3.34.0",
"electron": "^42.4.1",
"electron-builder": "^26.15.3",
2026-05-06 15:12:07 -05:00
"eslint": "^9.0.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"eslint-plugin-unused-imports": "^4.4.1",
"globals": "^17.5.0",
2026-03-14 20:05:05 -05:00
"guacamole-common-js": "^1.5.0",
+9
2026-04-22 16:55:23 -05:00
"husky": "^9.1.7",
+2
2026-06-16 15:59:53 -05:00
"i18next": "^26.3.1",
2026-05-06 15:12:07 -05:00
"i18next-browser-languagedetector": "^8.2.1",
2026-06-04 15:16:53 -04:00
"jsdom": "^29.1.1",
+2
2026-06-16 15:59:53 -05:00
"lint-staged": "^17.0.7",
2026-06-21 15:55:41 -05:00
"lucide-react": "^1.20.0",
2026-05-06 15:12:07 -05:00
"prettier": "3.8.3",
2026-06-21 15:55:41 -05:00
"radix-ui": "^1.6.0",
+2
2026-06-16 15:59:53 -05:00
"react": "^19.2.7",
2026-01-24 19:49:42 -06:00
"react-cytoscapejs": "^2.0.0",
+2
2026-06-16 15:59:53 -05:00
"react-dom": "^19.2.7",
2026-05-06 15:12:07 -05:00
"react-h5-audio-player": "^3.10.2",
2026-06-21 15:55:41 -05:00
"react-hook-form": "^7.79.0",
2026-05-06 15:12:07 -05:00
"react-i18next": "^17.0.4",
"react-icons": "^5.6.0",
2025-10-01 15:40:10 -05:00
"react-markdown": "^10.1.0",
2026-05-06 15:12:07 -05:00
"react-pdf": "^10.4.1",
2025-10-01 15:40:10 -05:00
"react-photo-view": "^1.2.7",
2026-05-06 15:12:07 -05:00
"react-syntax-highlighter": "^16.1.1",
2025-08-07 02:20:27 -05:00
"react-xtermjs": "^1.0.10",
2025-10-01 15:40:10 -05:00
"remark-gfm": "^4.0.1",
2026-06-21 15:55:41 -05:00
"sharp": "^0.35.1",
"sonner": "^2.0.7",
2026-05-06 15:12:07 -05:00
"tailwind-merge": "^3.5.0",
"tailwindcss": "^4.2.4",
2026-05-11 01:23:11 -05:00
"tw-animate-css": "^1.4.0",
2026-05-06 15:12:07 -05:00
"typescript": "~6.0.3",
2026-06-21 15:55:41 -05:00
"typescript-eslint": "^8.61.1",
+2
2026-06-16 15:59:53 -05:00
"vite": "^8.0.16",
2026-06-04 15:16:53 -04:00
"vite-plugin-svgr": "^5.2.0",
"vitest": "^4.1.8"
+7
2025-11-05 10:36:16 -06:00
},
"lint-staged": {
2026-05-06 15:12:07 -05:00
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{js,jsx}": [
+7
2025-11-05 10:36:16 -06:00
"prettier --write"
],
"*.{json,css,md}": [
"prettier --write"
]
2026-05-06 15:12:07 -05:00
},
"overrides": {
"@electron/asar": "^4.2.0",
"@electron/get": "^5.0.0",
"dompurify": "^3.4.1",
"eslint-visitor-keys": "^4.2.1",
"prebuild-install": "npm:@mmomtchev/prebuild-install@1.0.2",
"rimraf": "file:vendor/rimraf-compat"
2025-08-07 02:20:27 -05:00
}
}