Replaces all direct usage of browser globals and infrastructure service imports in UI components with dedicated application/state backend hooks. Introduces lint rules to prevent direct access to backend bridges and localStorage from components, promoting a cleaner separation of concerns and improved maintainability. Moves user preferences (e.g., port forwarding form mode) to persistent state hooks, updates port forwarding and SFTP logic to rely on backend hooks, and centralizes logging through a logger utility. Cleans up debug code and removes obsolete scripts from HTML. Improves testability, prepares for alternative backend implementations, and enforces architectural boundaries.
65 lines
2.0 KiB
JSON
Executable File
65 lines
2.0 KiB
JSON
Executable File
{
|
|
"name": "netcatty",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"main": "electron/main.cjs",
|
|
"scripts": {
|
|
"dev": "npm run lint && concurrently -k \"vite\" \"npm:dev:electron\"",
|
|
"dev:electron": "wait-on http-get://127.0.0.1:5173 && cross-env VITE_DEV_SERVER_URL=http://127.0.0.1:5173 node electron/launch.cjs",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"start": "node electron/launch.cjs",
|
|
"postinstall": "npx @electron/rebuild",
|
|
"rebuild": "npx @electron/rebuild",
|
|
"lint": "eslint .",
|
|
"lint:fix": "eslint . --fix"
|
|
},
|
|
"dependencies": {
|
|
"@google/genai": "1.33.0",
|
|
"@radix-ui/react-collapsible": "1.1.12",
|
|
"@radix-ui/react-context-menu": "2.2.16",
|
|
"@radix-ui/react-dialog": "1.1.15",
|
|
"@radix-ui/react-popover": "1.1.15",
|
|
"@radix-ui/react-scroll-area": "1.2.10",
|
|
"@radix-ui/react-select": "2.2.6",
|
|
"@radix-ui/react-slot": "1.2.4",
|
|
"@radix-ui/react-tabs": "1.1.13",
|
|
"@xterm/addon-fit": "^0.10.0",
|
|
"@xterm/addon-search": "^0.15.0",
|
|
"@xterm/addon-serialize": "^0.13.0",
|
|
"@xterm/addon-web-links": "^0.11.0",
|
|
"@xterm/addon-webgl": "^0.18.0",
|
|
"@xterm/xterm": "^5.5.0",
|
|
"clsx": "2.1.1",
|
|
"ghostty-web": "^0.4.0",
|
|
"lucide-react": "0.560.0",
|
|
"node-pty": "1.1.0-beta19",
|
|
"react": "^19.2.1",
|
|
"react-dom": "^19.2.1",
|
|
"ssh2-sftp-client": "^12.0.1",
|
|
"tailwind-merge": "3.4.0",
|
|
"uuid": "^13.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@electron/rebuild": "^4.0.2",
|
|
"@eslint/js": "^9.39.1",
|
|
"@tailwindcss/postcss": "^4.1.17",
|
|
"@tailwindcss/vite": "^4.1.17",
|
|
"@types/node": "^25.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.49.0",
|
|
"@typescript-eslint/parser": "^8.49.0",
|
|
"@vitejs/plugin-react": "^5.1.2",
|
|
"concurrently": "^9.2.1",
|
|
"cross-env": "^10.1.0",
|
|
"electron": "^39.2.6",
|
|
"eslint": "^9.39.1",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-unused-imports": "^4.3.0",
|
|
"tailwindcss": "^4.1.17",
|
|
"typescript": "~5.9.3",
|
|
"vite": "^7.2.7",
|
|
"wait-on": "^9.0.3"
|
|
}
|
|
}
|