{ "name": "zinalog", "version": "0.3.3", "private": true, "scripts": { "dev": "next dev --webpack --port ${PORT:-4000}", "build": "next build", "start": "next start --port ${PORT:-4000}", "format": "prettier --write .", "format:check": "prettier --check .", "lint": "eslint", "verify": "npm run lint && npm run format:check && npm test && npm run test:coverage && npm run build", "test": "rm -rf .test-dist && tsc -p tsconfig.test.json && mkdir -p .test-dist/node_modules/next && cp tests/shims/next/server.js .test-dist/node_modules/next/server.js && node --test --test-concurrency=1 .test-dist/tests/*.test.js", "test:coverage": "rm -rf .test-dist && tsc -p tsconfig.test.json && mkdir -p .test-dist/node_modules/next && cp tests/shims/next/server.js .test-dist/node_modules/next/server.js && node --test --experimental-test-coverage '--test-coverage-include=.test-dist/lib/admin-rate-limit.js' '--test-coverage-include=.test-dist/lib/alert-settings.js' '--test-coverage-include=.test-dist/lib/auth-abuse.js' '--test-coverage-include=.test-dist/lib/csrf.js' '--test-coverage-include=.test-dist/lib/email.js' '--test-coverage-include=.test-dist/lib/export-csv.js' '--test-coverage-include=.test-dist/lib/secret-crypto.js' '--test-coverage-include=.test-dist/lib/migrations.js' '--test-coverage-include=.test-dist/lib/fingerprint.js' '--test-coverage-include=.test-dist/lib/monitors/fields.js' '--test-coverage-include=.test-dist/lib/monitors/validation.js' '--test-coverage-include=.test-dist/lib/monitors/checks.js' '--test-coverage-include=.test-dist/lib/monitors/scheduler.js' '--test-coverage-include=.test-dist/lib/domain-utils.js' '--test-coverage-include=.test-dist/lib/whois.js' '--test-coverage-exclude=.test-dist/node_modules/**' '--test-coverage-exclude=.test-dist/.module-cache/**' --test-concurrency=1 '.test-dist/tests/*.test.js'", "zina:make-migration": "node scripts/zina-migrate.mjs make", "zina:migrate": "node scripts/zina-migrate.mjs up", "zina:migrate:down": "node scripts/zina-migrate.mjs down", "zina:migrate:drop": "node scripts/zina-migrate.mjs drop", "zina:migrate:status": "node scripts/zina-migrate.mjs status", "zina:migrate:restore": "node scripts/zina-migrate.mjs restore" }, "dependencies": { "axios": "^1.19.0", "lucide-react": "^0.577.0", "next": "^16.2.4", "nodemailer": "^10.0.13", "react": "^19.2.5", "react-dom": "^19.2.5", "recharts": "^3.8.1", "resend": "^6.9.3", "sqlite": "^5.1.1", "sqlite3": "^6.0.1", "uuid": "^13.0.0" }, "overrides": { "brace-expansion": "^5.0.8", "minimatch": "^10.2.6", "next": { "postcss": "^8.5.10" }, "sharp": "^0.35.3" }, "devDependencies": { "@tailwindcss/postcss": "^4.2.4", "@types/node": "^20", "@types/nodemailer": "^7.0.11", "@types/react": "^19", "@types/react-dom": "^19", "@types/uuid": "^10.0.0", "eslint": "^9", "eslint-config-next": "^16.2.4", "prettier": "^3.6.2", "tailwindcss": "^4.2.4", "tslib": "^2.8.1", "typescript": "^5" }, "allowScripts": { "sharp@0.35.3": true, "sqlite3@6.0.1": true, "unrs-resolver@1.12.2": true } }