{
"name": "express-blog",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "commonjs",
"scripts": {
"combine:css": "node scripts/combine-css.js",
"test": "mocha test/**/*.unit.test.js test/**/*.property.test.js",
"start": "nodemon ./src/app.js --trace-exit",
"debug": "nodemon --inspect-brk ./src/app.js --trace-exit",
"maildev": "maildev",
"main": "pm2 start ecosystem.config.js --only expressjs-blog-main",
"testing": "pm2 start ecosystem.config.js --only expressjs-blog-testing",
"stop-main": "node_modules/pm2/bin/pm2 delete expressjs-blog-main",
"stop-testing": "node_modules/pm2/bin/pm2 delete expressjs-blog-testing",
"test:prepush": "node scripts/test-prepush.js",
"test:postreceive": "node scripts/test-postreceive.js",
"update-submodules": "git submodule update --init --recursive --remote"
},
"imports": {
"#src/*": "./src/*"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"better-sqlite3": "^12.2.0",
"body-parser": "^2.2.0",
"compression": "^1.8.0",
"cookie-parser": "^1.4.7",
"crypto": "^1.0.1",
"csurf": "^1.11.0",
"dotenv": "^16.5.0",
"express": "^5.1.0",
"express-handlebars": "^8.0.2",
"express-rate-limit": "^7.5.0",
"fast-glob": "^3.3.3",
"gray-matter": "^4.0.3",
"hbs": "^4.2.0",
"helmet": "^8.1.0",
"hpp": "^0.2.3",
"js-beautify": "^1.15.4",
"marked": "^15.0.11",
"morgan": "^1.10.0",
"node-disk-info": "^1.3.0",
"nodemailer": "^7.0.3",
"nodemon": "^3.1.10",
"path": "^0.12.7",
"puppeteer": "^24.12.1",
"rss": "^1.2.2",
"serve-favicon": "^2.5.1",
"sharp": "^0.34.3",
"sqlite3": "^5.1.7",
"to-ico": "^1.1.5",
"validator": "^13.15.15",
"winston": "^3.17.0",
"winston-daily-rotate-file": "^5.0.0",
"xss": "^1.0.15",
"xss-clean": "^0.1.4"
},
"devDependencies": {
"@faker-js/faker": "^9.8.0",
"chai": "^5.2.1",
"chai-as-promised": "^8.0.1",
"fast-check": "^4.2.0",
"mocha": "^11.7.1",
"mock-fs": "^5.5.0",
"node-fetch": "^2.7.0",
"pm2": "^6.0.6",
"postcss": "^8.5.6",
"postcss-import": "^16.1.1",
"proxyquire": "^2.1.3",
"sinon": "^21.0.0"
}
}