{ "name": "livedash-node", "type": "module", "version": "0.2.0", "private": true, "scripts": { "dev": "next dev --turbopack", "build": "next build", "start": "next start", "lint": "next lint", "deploy": "opennextjs-cloudflare build && opennextjs-cloudflare deploy", "preview": "opennextjs-cloudflare build && opennextjs-cloudflare preview", "cf-typegen": "wrangler types --env-interface CloudflareEnv ./cloudflare-env.d.ts", "deploy:worker": "pnpm deploy", "deploy:pages": "pnpm build && echo 'Upload the out/ directory to Cloudflare Pages'", "format": "pnpm run format:prettier", "format:check": "pnpm dlx prettier --check .", "format:prettier": "pnpm dlx prettier --write .", "format:standard": "pnpm dlx standard . --fix", "lint:fix": "pnpm dlx eslint --fix", "lint:md": "markdownlint-cli2 \"**/*.md\" \"!.trunk/**\" \"!.venv/**\" \"!node_modules/**\"", "lint:md:fix": "markdownlint-cli2 --fix \"**/*.md\" \"!.trunk/**\" \"!.venv/**\" \"!node_modules/**\"", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:seed": "node prisma/seed.mjs", "prisma:studio": "prisma studio", "check": "pnpm build && wrangler deploy --dry-run", "check:backup": "tsc && wrangler deploy --dry-run", "predeploy": "wrangler d1 migrations apply DB --remote", "predeploy:worker": "pnpm predeploy", "seedLocalD1": "wrangler d1 migrations apply DB --local", "d1:list": "wrangler d1 list", "d1:info": "wrangler d1 info d1-notso-livedash", "d1:info:remote": "wrangler d1 info d1-notso-livedash --remote", "d1:query": "node scripts/d1-query.js", "d1:export": "wrangler d1 export d1-notso-livedash", "d1:export:remote": "wrangler d1 export d1-notso-livedash --remote", "d1:backup": "wrangler d1 export d1-notso-livedash --output backups/$(date +%Y%m%d_%H%M%S)_backup.sql", "d1:schema": "wrangler d1 export d1-notso-livedash --no-data --output schema.sql", "d1": "node scripts/d1.js" }, "dependencies": { "@auth/d1-adapter": "^1.9.1", "@opennextjs/cloudflare": "^1.1.0", "@prisma/adapter-d1": "^6.8.2", "@prisma/client": "^6.8.2", "@rapideditor/country-coder": "^5.4.0", "@types/d3": "^7.4.3", "@types/d3-cloud": "^1.2.9", "@types/d3-selection": "^3.0.11", "@types/geojson": "^7946.0.16", "@types/jsonwebtoken": "^9.0.9", "@types/leaflet": "^1.9.18", "@types/node-fetch": "^2.6.12", "bcryptjs": "^3.0.2", "chart.js": "^4.4.9", "chartjs-plugin-annotation": "^3.1.0", "csv-parse": "^5.6.0", "d3": "^7.9.0", "d3-cloud": "^1.2.7", "d3-selection": "^3.0.0", "i18n-iso-countries": "^7.14.0", "iso-639-1": "^3.1.5", "jsonwebtoken": "^9.0.2", "leaflet": "^1.9.4", "next": "^15.3.3", "next-auth": "5.0.0-beta.28", "node-cron": "^4.1.0", "node-fetch": "^3.3.2", "react": "^19.1.0", "react-chartjs-2": "^5.3.0", "react-dom": "^19.1.0", "react-leaflet": "^5.0.0", "react-markdown": "^10.1.0", "rehype-raw": "^7.0.0", "@tailwindcss/postcss": "^4.1.8" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.28.0", "@playwright/test": "^1.52.0", "@types/bcryptjs": "^2.4.6", "@types/node": "^22.15.29", "@types/node-cron": "^3.0.11", "@types/react": "^19.1.6", "@types/react-dom": "^19.1.5", "@typescript-eslint/eslint-plugin": "^8.33.0", "@typescript-eslint/parser": "^8.33.0", "concurrently": "^9.1.2", "eslint": "^9.28.0", "eslint-config-next": "^15.3.3", "eslint-plugin-prettier": "^5.4.1", "markdownlint-cli2": "^0.18.1", "postcss": "^8.5.4", "prettier": "^3.5.3", "prettier-plugin-jinja-template": "^2.1.0", "prisma": "^6.8.2", "tailwindcss": "^4.1.8", "ts-node": "^10.9.2", "typescript": "^5.8.3", "wrangler": "4.18.0" }, "prettier": { "bracketSpacing": true, "endOfLine": "auto", "printWidth": 80, "semi": true, "singleQuote": false, "tabWidth": 2, "trailingComma": "es5", "useTabs": false, "overrides": [ { "files": [ "*.md", "*.markdown" ], "options": { "tabWidth": 2, "useTabs": false, "proseWrap": "preserve", "printWidth": 100 } } ], "plugins": [ "prettier-plugin-jinja-template" ] }, "markdownlint-cli2": { "config": { "MD007": { "indent": 4, "start_indented": false, "start_indent": 4 }, "MD013": false, "MD030": { "ul_single": 3, "ol_single": 2, "ul_multi": 3, "ol_multi": 2 }, "MD033": false }, "ignores": [ "node_modules", ".git", "*.json" ] }, "cloudflare": { "label": "Worker + D1 Database", "products": [ "Workers", "D1" ], "categories": [ "storage" ], "icon_urls": [ "https://imagedelivery.net/wSMYJvS3Xw-n339CbDyDIA/c6fc5da3-1e0a-4608-b2f1-9628577ec800/public", "https://imagedelivery.net/wSMYJvS3Xw-n339CbDyDIA/5ca0ca32-e897-4699-d4c1-6b680512f000/public" ], "docs_url": "https://developers.cloudflare.com/d1/", "preview_image_url": "https://imagedelivery.net/wSMYJvS3Xw-n339CbDyDIA/cb7cb0a9-6102-4822-633c-b76b7bb25900/public", "publish": true } }