Files
livedash-node/package.json
Kaj Kowalski bde0b44ea0 feat: Add authentication and session management with NextAuth.js and Prisma [broken]
- Implemented API session retrieval in `lib/api-auth.ts` to manage user sessions.
- Created authentication options in `lib/auth-options.ts` using NextAuth.js with credentials provider.
- Added migration scripts to create necessary tables for authentication in `migrations/0002_create_auth_tables.sql` and `prisma/migrations/20250601033219_add_nextauth_tables/migration.sql`.
- Configured ESLint with Next.js and TypeScript support in `eslint.config.mjs`.
- Updated Next.js configuration in `next.config.ts` for Cloudflare compatibility.
- Defined Cloudflare Worker configuration in `open-next.config.ts` and `wrangler.jsonc`.
- Enhanced type definitions for authentication in `types/auth.d.ts`.
- Created a Cloudflare Worker entry point in `src/index.ts.backup` to handle API requests and responses.
2025-06-01 16:34:54 +02:00

177 lines
5.3 KiB
JSON

{
"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"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.28.0",
"@playwright/test": "^1.52.0",
"@tailwindcss/postcss": "^4.1.8",
"@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
}
}