mirror of
https://github.com/jhbruhn/respira.git
synced 2026-01-27 10:23:41 +00:00
Resolved all 7 issues identified in PR review: 1. @testing-library/dom peer dependency already explicitly listed 2. Removed invalid eslint-disable comments (replaced with correct rule) 3. Fixed unstable callbacks in useMachinePolling using refs to prevent unnecessary re-renders 4. Fixed useAutoScroll options dependency with useMemo for stability 5. Fixed stale closure in BluetoothDevicePicker using functional setState 6. Fixed memory leak in useBluetoothDeviceListener by preventing re-registration of IPC listeners 7. Added proper eslint-disable for intentional setState in effect with detailed comment All tests passing (91/91), build successful, linter clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
90 lines
3 KiB
JSON
90 lines
3 KiB
JSON
{
|
|
"name": "respira",
|
|
"productName": "Respira",
|
|
"version": "0.0.0",
|
|
"description": "Desktop controller for the Brother PP-1 SKiTCH embroidery machine",
|
|
"author": "jhbruhn <respira@jhbruhn.de>",
|
|
"private": true,
|
|
"license": "Apache-2.0",
|
|
"main": ".vite/build/main.js",
|
|
"scripts": {
|
|
"lint": "eslint .",
|
|
"web:dev": "vite --host 0.0.0.0",
|
|
"web:preview": "vite preview",
|
|
"web:build": "tsc -b && vite build",
|
|
"test": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:run": "vitest run",
|
|
"electron:dev": "vite --mode electron",
|
|
"electron:start": "electron-forge start",
|
|
"electron:package": "electron-forge package",
|
|
"electron:make": "electron-forge make",
|
|
"electron:icons": "electron-icon-builder --input=./public/icons/icon.png --output=./public -f"
|
|
},
|
|
"dependencies": {
|
|
"@heroicons/react": "^2.2.0",
|
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-popover": "^1.1.15",
|
|
"@radix-ui/react-progress": "^1.1.8",
|
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.4",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tailwindcss/vite": "^4.1.17",
|
|
"@types/web-bluetooth": "^0.0.21",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"electron-squirrel-startup": "^1.0.1",
|
|
"electron-store": "^10.0.0",
|
|
"konva": "^10.0.12",
|
|
"lucide-react": "^0.562.0",
|
|
"pyodide": "^0.29.0",
|
|
"react": "^19.2.0",
|
|
"react-dom": "^19.2.0",
|
|
"react-konva": "^19.2.1",
|
|
"tailwind-merge": "^3.4.0",
|
|
"tailwindcss": "^4.1.17",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"tw-animate-css": "^1.4.0",
|
|
"update-electron-app": "^3.1.2",
|
|
"zustand": "^5.0.9"
|
|
},
|
|
"devDependencies": {
|
|
"@electron-forge/cli": "^7.10.2",
|
|
"@electron-forge/maker-deb": "^7.10.2",
|
|
"@electron-forge/maker-dmg": "^7.10.2",
|
|
"@electron-forge/maker-rpm": "^7.10.2",
|
|
"@electron-forge/maker-squirrel": "^7.10.2",
|
|
"@electron-forge/maker-zip": "^7.10.2",
|
|
"@electron-forge/plugin-vite": "^7.10.2",
|
|
"@electron/typescript-definitions": "^8.15.6",
|
|
"@eslint/js": "^9.39.1",
|
|
"@reforged/maker-appimage": "^5.1.1",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/react": "^16.3.1",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/electron-squirrel-startup": "^1.0.2",
|
|
"@types/node": "^24.10.1",
|
|
"@types/react": "^19.2.5",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^5.1.1",
|
|
"@vitest/ui": "^4.0.15",
|
|
"electron": "^39.2.6",
|
|
"electron-icon-builder": "^2.0.1",
|
|
"eslint": "^9.39.1",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-prettier": "^5.5.4",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-react-refresh": "^0.4.24",
|
|
"globals": "^16.5.0",
|
|
"jsdom": "^27.4.0",
|
|
"prettier": "3.7.4",
|
|
"shadcn": "^3.6.2",
|
|
"typescript": "~5.9.3",
|
|
"typescript-eslint": "^8.46.4",
|
|
"vite": "^7.2.4",
|
|
"vite-plugin-static-copy": "^3.1.4",
|
|
"vitest": "^4.0.15"
|
|
}
|
|
}
|