- A scan no longer looks hung: the button counts seconds against the chosen timeout, the page says in words that it is listening for cameras and asking every address in turn, the refresh afterwards has its own state, and the result reports how many cameras were found, how long it took and how many addresses were checked. scanNetwork() returns that report; discoverCameras() still exists on top of it. - The config pointer now remembers the binary folder beside the data folder, so install-video and start can't disagree about where MediaMTX lives, whichever directory each is run from. Checked through an installed tarball against the real network: 2 cameras found, 4,093 addresses probed, 3.0 s. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
79 lines
2.0 KiB
JSON
79 lines
2.0 KiB
JSON
{
|
|
"name": "onvif-dashboard",
|
|
"version": "0.1.3",
|
|
"description": "Web dashboard for ONVIF cameras (Hikvision, Annke): discovery, live video over WebRTC, motion recording and settings, all on your own network.",
|
|
"keywords": [
|
|
"onvif",
|
|
"hikvision",
|
|
"annke",
|
|
"ip-camera",
|
|
"cctv",
|
|
"webrtc",
|
|
"nvr",
|
|
"surveillance",
|
|
"dashboard"
|
|
],
|
|
"license": "MIT",
|
|
"author": "Michael Mainguy",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://git.dasfad.com/mmainguy/cameras.git"
|
|
},
|
|
"engines": {
|
|
"node": ">=24.0.0"
|
|
},
|
|
"files": [
|
|
".next/standalone",
|
|
".next/static",
|
|
"public",
|
|
"cli",
|
|
"dist",
|
|
"scripts/create-admin.mjs",
|
|
"scripts/install-mediamtx.mjs",
|
|
"LICENSE",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build && npm run build:cli && node scripts/bundle-standalone.mjs",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"coverage": "vitest run --coverage",
|
|
"admin:create": "node scripts/create-admin.mjs",
|
|
"video:install": "node scripts/install-mediamtx.mjs",
|
|
"build:cli": "tsc --project tsconfig.cli.json",
|
|
"prepack": "npm run build"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "^5.103.1",
|
|
"lucide-react": "^1.47.0",
|
|
"next": "16.3.5",
|
|
"onvif": "github:mikemainguy/onvif#e8c340fdf97cf4a42da23ce810b4ecdd8c93dd4b",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"server-only": "^0.0.1",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4",
|
|
"@testing-library/dom": "^10.4.2",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@types/node": "^24.13.6",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"@vitejs/plugin-react": "^6.1.1",
|
|
"@vitest/coverage-v8": "^5.0.1",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.3.5",
|
|
"jsdom": "^29.1.1",
|
|
"tailwindcss": "^4",
|
|
"typescript": "^5",
|
|
"vitest": "^5.0.1"
|
|
},
|
|
"bin": {
|
|
"onvif-dashboard": "cli/onvif-dashboard.mjs"
|
|
}
|
|
}
|