- next.config.ts builds standalone output with image optimization off, and scripts/bundle-standalone.mjs puts the static files beside the server, then drops what tracing swept in but the app never runs (the MediaMTX binary and sharp's platform binaries, 79 MB). The build is 27 MB and npm pack is 4.9 MB. - The CLI gained start, which runs that server from any directory with the remembered data folder and stored key in its environment, and admin, so the messages in the UI can name a command that exists. - Messages that said "npm run …" now say "onvif-dashboard …". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
80 lines
2.1 KiB
JSON
80 lines
2.1 KiB
JSON
{
|
|
"name": "onvif-dashboard",
|
|
"version": "0.1.0",
|
|
"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",
|
|
"src/lib/paths.ts",
|
|
"src/lib/first-run.ts",
|
|
"src/lib/mediamtx-install.ts",
|
|
"src/lib/admin-file.ts",
|
|
"scripts/create-admin.mts",
|
|
"scripts/install-mediamtx.mts",
|
|
"LICENSE",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build && node scripts/bundle-standalone.mjs",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"coverage": "vitest run --coverage",
|
|
"admin:create": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/create-admin.mts",
|
|
"video:install": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/install-mediamtx.mts"
|
|
},
|
|
"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"
|
|
}
|
|
}
|