{ "name": "ffffng", "version": "0.18.2-SNAPSHOT", "description": "Node management form for Freifunk", "license": "MIT", "author": { "name": "Andreas Baldeau", "email": "andreas@baldeau.net" }, "private": true, "repository": { "type": "git", "url": "https://github.com/freifunkhamburg/ffffng" }, "bugs": { "url": "https://github.com/freifunkhamburg/ffffng/issues" }, "bin": { "ffffng": "server/main.js" }, "scripts": { "test": "yarn run server:test", "build": "yarn run server:build && grunt build && rsync -avzL --exclude='*/__mocks__/' --exclude='*.test.*' server-build/ dist/server/", "clean": "rm -rf server-build/ dist/ && grunt clean", "dist": "yarn run clean && yarn run build && ./bin/dist-fix-symlinks.sh && yarn run test", "client:serve": "grunt serve", "server:test": "jest --config=jest.server.config.js", "server:build": "tsc -b server && ln -sfv ../../server/db/patches ./server-build/db/ && ln -sfv ../server/templates ./server-build/ && ln -sfv ../server/mailTemplates ./server-build/", "server:run": "yarn run server:build && node server-build/main.js" }, "dependencies": { "async": "^3.2.4", "bcrypt": "^5.0.1", "body-parser": "^1.19.1", "command-line-args": "^5.2.1", "command-line-usage": "^6.1.1", "compression": "^1.7.3", "deep-extend": "^0.6.0", "express": "^4.17.2", "glob": "^8.0.3", "graceful-fs": "^4.2.9", "html-to-text": "^8.2.1", "http-auth": "^4.1.9", "http-auth-connect": "^1.0.5", "http-errors": "^2.0.0", "lodash": "^4.17.21", "moment": "^2.29.4", "ng-admin": "^1.0.13", "node-cron": "^3.0.1", "nodemailer": "^6.7.7", "nodemailer-html-to-text": "^3.2.0", "request": "^2.88.2", "serve-static": "^1.14.1", "sparkson": "^1.3.6", "sqlite": "^4.1.2", "sqlite3": "^5.0.11" }, "devDependencies": { "@types/async": "^3.2.15", "@types/bcrypt": "^5.0.0", "@types/command-line-args": "^5.2.0", "@types/command-line-usage": "^5.0.2", "@types/compression": "^1.7.2", "@types/deep-extend": "^0.4.32", "@types/express": "^4.17.13", "@types/glob": "^7.2.0", "@types/graceful-fs": "^4.1.5", "@types/html-to-text": "^8.0.1", "@types/jest": "^28.1.6", "@types/lodash": "^4.14.178", "@types/node": "^18.6.3", "@types/node-cron": "^3.0.2", "@types/nodemailer": "^6.4.4", "@types/request": "^2.48.8", "bower": "^1.8.13", "escape-string-regexp": "^5.0.0", "grunt": "^1.4.1", "grunt-cli": "^1.4.3", "grunt-concurrent": "^3.0.0", "grunt-connect-proxy": "^0.2.0", "grunt-contrib-clean": "^2.0.0", "grunt-contrib-compass": "^1.1.1", "grunt-contrib-concat": "^2.0.0", "grunt-contrib-connect": "^3.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^4.0.0", "grunt-contrib-htmlmin": "^3.1.0", "grunt-contrib-jshint": "^3.1.1", "grunt-contrib-uglify": "^5.2.2", "grunt-contrib-watch": "^1.1.0", "grunt-develop": "^0.4.0", "grunt-html2js": "^0.8.0", "grunt-newer": "^1.3.0", "grunt-replace": "^2.0.2", "grunt-rev": "^0.1.0", "grunt-usemin": "^3.1.1", "grunt-wiredep": "^3.0.1", "jest": "^28.1.3", "jshint-stylish": "^2.2.1", "load-grunt-tasks": "^5.1.0", "time-grunt": "^2.0.0", "ts-jest": "^28.0.7", "typescript": "^4.7.4", "yarn-audit-fix": "^9.3.3" }, "resolutions": { "grunt-connect-proxy/**/http-proxy": "~1.18.1", "grunt-connect-proxy/**/lodash": "~4.17.21", "grunt-contrib-compass/**/semver-regex": "~3.1.4", "grunt-contrib-compass/**/trim-newlines": "~4.0.2", "grunt-wiredep/**/minimist": "~1.2.6", "ng-admin/**/angular": "~1.8.3", "ng-admin/**/papaparse": "~5.3.2", "ng-admin/**/underscore": "~1.13.4" }, "engines": { "node": ">=16.0.0" } }