{ "name": "presentation-forge", "version": "0.1.0", "description": "Local-first generator for academic presentations and reports. Node + pptxgenjs + Ollama.", "main": "index.js", "scripts": { "test": "node --test", "render": "node --env-file-if-exists=.env src/render.js", "report": "node --env-file-if-exists=.env src/report.js", "preview": "node --env-file-if-exists=.env src/preview.js", "fonts": "node tools/install-fonts.mjs", "brand": "node tools/prep-brand.mjs", "api": "node --watch --env-file-if-exists=.env app/server/index.js", "web": "vite --config app/web/vite.config.js --port 5173 --strictPort", "dev": "concurrently -n api,web -c magenta,cyan \"npm:api\" \"npm:web\"", "mailsink": "node tools/mailsink.mjs", "api:mail": "FORGE_SMTP_HOST=127.0.0.1 FORGE_SMTP_PORT=2525 FORGE_SMTP_USER=dev FORGE_SMTP_PASS=dev FORGE_SMTP_FROM=forge@localhost FORGE_PUBLIC_URL=http://localhost:5173 npm run api", "dev:mail": "concurrently -n api,web,mail -c magenta,cyan,yellow \"npm:api:mail\" \"npm:web\" \"npm:mailsink\"", "search": "node --env-file-if-exists=.env src/search.js", "sweep": "node --env-file-if-exists=.env src/sweep.js", "compare": "node tools/compare.mjs", "gallery": "node --env-file-if-exists=.env tools/gallery.mjs", "forge": "node --env-file-if-exists=.env src/ai/pipeline.js", "searxng": "docker compose -f docker/docker-compose.yml up -d", "themeaudit": "node --env-file-if-exists=.env tools/themeaudit.mjs", "themematrix": "node --env-file-if-exists=.env tools/themematrix.mjs", "capstress": "node --env-file-if-exists=.env tools/capstress.mjs", "textcheck": "node --env-file-if-exists=.env tools/textcheck.mjs", "drawcheck": "node --env-file-if-exists=.env tools/drawcheck.mjs", "coverage": "node --env-file-if-exists=.env tools/coverage.mjs", "landing": "node --env-file-if-exists=.env tools/landing.mjs", "deckscore": "node --env-file-if-exists=.env tools/deckscore.mjs", "local:check": "node tools/local-check.mjs" }, "keywords": [], "author": "", "license": "MIT", "type": "module", "dependencies": { "@fontsource-variable/inter": "^5.3.0", "@fontsource/ibm-plex-mono": "^5.3.0", "@mozilla/readability": "^0.6.0", "@tailwindcss/typography": "^0.5.20", "ajv": "^8.20.0", "cors": "^2.8.6", "docx": "^9.7.1", "express": "^5.2.1", "gsap": "^3.15.0", "jszip": "^3.10.1", "linkedom": "^0.18.13", "marked": "^18.0.10", "pptxgenjs": "^4.0.1", "sharp": "^0.35.3", "turndown": "^7.2.4", "yaml": "^2.9.0" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", "@vitejs/plugin-react": "^6.0.5", "concurrently": "^10.0.4", "react": "^19.2.8", "react-dom": "^19.2.8", "tailwindcss": "^4.3.3", "vite": "^8.2.1" } }