Files
dwroller/package.json
Alex 33342d1611 chore: update dependencies, gitignore, and add remaining tests
- .gitignore: add .drive-scratch.js (automated scratch file)
- package.json/package-lock.json: dependency updates
- docs/troubleshooting.md: documentation updates
- src/tests/login.test.js: login flow integration test
- src/tests/playthroughRun2.js: full mission playthrough simulation
2026-07-15 19:37:13 +02:00

95 lines
3.7 KiB
JSON
Executable File

{
"name": "deathwatch-roller",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:5000",
"dependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/user-event": "^13.5.0",
"bcrypt": "^5.1.0",
"cors": "^2.8.5",
"express": "^5.1.0",
"http-proxy-middleware": "^3.0.5",
"mysql2": "^3.14.4",
"pdf-parse": "^1.1.1",
"pdfjs-dist": "^3.9.179",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"start:with-tests": "npm test && react-scripts start",
"dev": "react-scripts start",
"build": "npm run test:unit && react-scripts build",
"build:with-integration": "npm run test:unit && npm run test:integration && react-scripts build && npm run pm2:start",
"build:fast": "react-scripts build && npm run pm2:reload",
"test-build-test": "npm run test:unit && npm run test:integration && npm run build && npm run test:unit",
"test": "jest --runInBand --passWithNoTests",
"test:unit": "jest --runInBand --passWithNoTests",
"test:integration": "npm run pm2:start && sleep 2 && jest --config jest.integration.config.js --runInBand --passWithNoTests && npm run pm2:stop",
"deploy:build": "npm run build && npm run pm2:start && npm run pm2:reload",
"eject": "react-scripts eject",
"serve": "npm test && serve -s build",
"extract:armoury": "node scripts/extract-armoury.js \"$PWD/Deathwatch-Core-Rulebook.pdf\" public/deathwatch-armoury.json",
"server": "npm test && cd database && node server.js",
"server:notest": "cd database && node server.js",
"rules:build": "python3 scripts/build-midgame-rules.py",
"rules:import": "node scripts/import-midgame-rules-to-db.js",
"rules:simulate": "node scripts/simulate-midplay-rules.js",
"rules:verify-scenarios": "node scripts/verify-rules-ingame-scenarios.js",
"bestiary:index:40krpgtools": "node scripts/import-40krpgtools-bestiary-index.js",
"bestiary:hydrate": "node scripts/hydrate-bestiary-from-40krpgtools.js",
"bestiary:import-hordes": "node scripts/import-40krpgtools-hordes.js",
"bestiary:import-db": "node scripts/import-bestiary-json-to-db.js",
"db:sqlite": "cd database && ./switch-db.sh sqlite",
"pm2:start": "cd database && pm2 start pm2.config.js --env production --update-env",
"pm2:stop": "pm2 stop deathwatch-server || true",
"pm2:reload": "cd database && pm2 reload pm2.config.js --env production --update-env",
"sanitize:openai": "node scripts/sanitize-rules-openai.js",
"generate:images": "node scripts/generate-weapon-images.js --provider huggingface",
"generate:images:test": "node scripts/generate-weapon-images.js --provider huggingface --limit 3",
"generate:images:openai": "node scripts/generate-weapon-images.js --provider openai",
"prestart": "",
"preserver": ""
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest",
"prettier"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.1",
"@testing-library/react": "^16.3.2",
"autoprefixer": "^10.4.14",
"axios": "^1.11.0",
"babel-loader": "^10.0.0",
"canvas": "^2.11.2",
"cheerio": "^1.1.2",
"eslint-config-prettier": "^10.1.8",
"html-webpack-plugin": "^5.6.4",
"node-fetch": "^2.7.0",
"pm2": "^5.2.0",
"postcss": "^8.4.23",
"prettier-eslint": "^16.4.2",
"react-scripts": "^5.0.1",
"tailwindcss": "^3.3.2",
"tesseract.js": "^4.1.1",
"webpack-dev-server": "^5.2.2"
}
}