{
    "name": "ffffng",
    "version": "0.13.5-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": "npm run server:test",
        "build": "npm run server:build && grunt build",
        "clean": "rm -rf server-build/ && grunt clean",
        "dist": "npm run clean && npm run build && npm 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": "npm run server:build && node server-build/main.js"
    },
    "dependencies": {
        "async": "^3.1.0",
        "body-parser": "^1.19.0",
        "command-line-args": "^5.1.1",
        "command-line-usage": "^6.1.0",
        "compression": "^1.7.3",
        "deep-extend": "^0.6.0",
        "express": "^4.17.1",
        "glob": "^7.1.6",
        "graceful-fs": "^4.2.3",
        "html-to-text": "^5.1.1",
        "http-auth": "^4.1.2",
        "http-auth-connect": "^1.0.4",
        "http-errors": "^1.7.3",
        "lodash": "^4.17.19",
        "moment": "^2.27.0",
        "ng-admin": "^1.0.13",
        "node-cron": "^2.0.1",
        "nodemailer": "^6.4.10",
        "nodemailer-html-to-text": "^3.1.0",
        "request": "^2.88.2",
        "scribe-js": "^2.0.4",
        "serve-static": "^1.14.1",
        "sparkson": "^1.3.3",
        "sqlite": "^3.0.6"
    },
    "devDependencies": {
        "@types/async": "^3.2.0",
        "@types/command-line-args": "^5.0.0",
        "@types/command-line-usage": "^5.0.1",
        "@types/compression": "^1.7.0",
        "@types/deep-extend": "^0.4.31",
        "@types/express": "^4.17.4",
        "@types/glob": "^7.1.1",
        "@types/graceful-fs": "^4.1.3",
        "@types/html-to-text": "^5.1.1",
        "@types/jest": "^26.0.3",
        "@types/lodash": "^4.14.149",
        "@types/node": "^14.0.14",
        "@types/node-cron": "^2.0.3",
        "@types/nodemailer": "^6.4.0",
        "@types/request": "^2.48.4",
        "bower": "^1.8.8",
        "escape-string-regexp": "^4.0.0",
        "grunt": "^1.1.0",
        "grunt-autoprefixer": "^3.0.4",
        "grunt-cli": "^1.3.2",
        "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": "^1.0.1",
        "grunt-contrib-connect": "^2.1.0",
        "grunt-contrib-copy": "^1.0.0",
        "grunt-contrib-cssmin": "^3.0.0",
        "grunt-contrib-htmlmin": "^3.1.0",
        "grunt-contrib-imagemin": "^4.0.0",
        "grunt-contrib-jshint": "^2.0.0",
        "grunt-contrib-uglify": "^4.0.0",
        "grunt-contrib-watch": "^1.1.0",
        "grunt-develop": "^0.4.0",
        "grunt-html2js": "^0.7.1",
        "grunt-newer": "^1.3.0",
        "grunt-ng-annotate": "^4.0.0",
        "grunt-replace": "^1.0.1",
        "grunt-rev": "^0.1.0",
        "grunt-svgmin": "^6.0.0",
        "grunt-usemin": "^3.1.1",
        "grunt-wiredep": "^3.0.1",
        "imagemin-gifsicle": "^7.0.0",
        "jest": "^26.1.0",
        "jshint-stylish": "^2.2.1",
        "load-grunt-tasks": "^5.1.0",
        "time-grunt": "^2.0.0",
        "ts-jest": "^26.1.1",
        "typescript": "^3.9.5"
    },
    "engines": {
        "node": ">=10.0.0"
    }
}