{ "name": "tractatus-website", "version": "0.1.2", "description": "Tractatus-Based LLM Safety Framework website platform", "main": "src/server.js", "scripts": { "start": "node src/server.js", "dev": "concurrently -n \"SERVER,WATCHDOG\" -c \"cyan,magenta\" \"nodemon src/server.js\" \"node scripts/framework-watchdog.js\"", "dev:simple": "nodemon src/server.js", "build:css": "npx tailwindcss -i ./public/css/src/tailwind.css -o ./public/css/tailwind.css --minify", "watch:css": "npx tailwindcss -i ./public/css/src/tailwind.css -o ./public/css/tailwind.css --watch", "update:cache": "node scripts/update-cache-version.js", "build": "npm run update:cache && npm run build:css", "test": "jest --coverage", "test:watch": "jest --watch", "test:unit": "jest tests/unit", "test:integration": "jest tests/integration --runInBand --forceExit", "test:security": "jest tests/security", "lint": "eslint src/ tests/", "lint:fix": "eslint src/ tests/ --fix", "migrate:docs": "node scripts/migrate-documents.js", "init:db": "node scripts/init-db.js", "init:koha": "node scripts/init-koha.js", "seed:admin": "node scripts/seed-admin.js", "seed:projects": "node scripts/seed-projects.js", "generate:pdfs": "node scripts/generate-pdfs.js", "deploy": "npm run build && bash scripts/deploy-frontend.sh", "framework:init": "node scripts/session-init.js", "framework:watchdog": "node scripts/framework-watchdog.js", "framework:check": "node scripts/pre-action-check.js", "framework:recover": "node scripts/recover-framework.js", "check:csp": "node scripts/check-csp-violations.js", "fix:csp": "node scripts/fix-csp-violations.js" }, "keywords": [ "ai-safety", "llm", "tractatus", "digital-sovereignty", "ai-governance" ], "author": "John Stroh ", "license": "Apache-2.0", "dependencies": { "axios": "^1.12.2", "bcrypt": "^5.1.1", "cookie-parser": "^1.4.7", "cors": "^2.8.5", "csurf": "^1.11.0", "dotenv": "^16.3.1", "express": "^4.18.2", "express-rate-limit": "^7.5.1", "handlebars": "^4.7.8", "helmet": "^7.1.0", "highlight.js": "^11.9.0", "html-to-text": "^9.0.5", "i18next": "^25.6.0", "i18next-browser-languagedetector": "^8.2.0", "i18next-http-backend": "^3.0.2", "jsonwebtoken": "^9.0.2", "marked": "^11.0.0", "mongodb": "^6.3.0", "mongoose": "^8.19.1", "multer": "^2.0.2", "node-cache": "^5.1.2", "nodemailer": "^7.0.10", "puppeteer": "^24.23.0", "sanitize-html": "^2.11.0", "stripe": "^19.1.0", "validator": "^13.15.15", "winston": "^3.11.0" }, "devDependencies": { "@anthropic-ai/sdk": "^0.65.0", "autoprefixer": "^10.4.21", "axe-core": "^4.10.3", "concurrently": "^9.2.1", "eslint": "^8.56.0", "jest": "^29.7.0", "nodemon": "^3.0.2", "pa11y": "^9.0.1", "pa11y-reporter-html": "^2.0.0", "postcss": "^8.5.6", "supertest": "^6.3.3", "tailwindcss": "^3.4.18" }, "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" } }