{ "name": "nextjs-website-starter", "private": true, "version": "0.0.0", "type": "module", "scripts": { "prepare": "husky", "clean:public": "node scripts/clean-public.mjs", "images": "node scripts/optimize-images.mjs", "images:prune": "node scripts/optimize-images.mjs --prune", "images:strip-metadata": "node scripts/strip-image-metadata.mjs", "images:check-metadata": "node scripts/strip-image-metadata.mjs --check", "downloads:check-metadata": "node scripts/check-download-metadata.mjs", "media:migrate": "node scripts/migrate-media-sources.mjs", "post:new": "node scripts/new-trip-report.mjs", "dev": "next dev", "build": "npm run clean:public && if [ \"${SKIP_IMAGE_OPTIMIZATION:-false}\" != true ]; then npm run images:prune; fi && npm run images:strip-metadata && npm run downloads:check-metadata && next build", "build:with-images": "npm run build", "lint": "eslint .", "test": "vitest run", "test:watch": "vitest", "test:e2e": "node scripts/run-e2e.mjs", "typecheck": "tsc --noEmit", "preview": "next start", "content:new": "npm run post:new" }, "dependencies": { "@js-temporal/polyfill": "^0.5.1", "ical.js": "^2.2.1", "next": "16.3.4", "react": "^19.2.4", "react-dom": "^19.2.4", "rrule": "^2.8.1", "zod": "^4.3.6" }, "devDependencies": { "@eslint/js": "^9.39.3", "@types/node": "^24.13.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "eslint": "^9.39.3", "eslint-config-next": "16.3.4", "globals": "^17.3.0", "husky": "^9.1.0", "lint-staged": "^16.1.0", "sharp": "^0.35.4", "typescript": "~5.9.3", "typescript-eslint": "^8.56.0", "vitest": "^4.1.2" }, "overrides": { "esbuild": "0.28.1" }, "lint-staged": { "src/**/*.{ts,tsx}": [ "npm exec eslint -- --config eslint.config.js --fix" ], "scripts/**/*.mjs": [ "npm exec eslint -- --config eslint.config.js --fix" ], "eslint.config.js": [ "npm exec eslint -- --config eslint.config.js --fix" ] } }