{
    "name": "ffffng",
    "version": "0.18.2-SNAPSHOT",
    "description": "Node management form for Freifunk",
    "license": "AGPL-3.0-only",
    "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": {
        "check": "yarn run build && yarn run lint && yarn run test",
        "test": "yarn run server:test",
        "lint": "yarn run server:lint",
        "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 && yarn run check && ./bin/dist-fix-symlinks.sh",
        "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:lint": "eslint server/ --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
        "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.2.0",
        "http-auth-connect": "^1.0.6",
        "http-errors": "^2.0.0",
        "lodash": "^4.17.21",
        "moment": "^2.29.4",
        "ng-admin": "^1.0.13",
        "node-cron": "^3.0.2",
        "nodemailer": "^6.8.0",
        "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.1.5"
    },
    "devDependencies": {
        "@rushstack/eslint-patch": "^1.2.0",
        "@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.14",
        "@types/glob": "^8.0.0",
        "@types/graceful-fs": "^4.1.5",
        "@types/html-to-text": "^8.1.1",
        "@types/jest": "^29.1.1",
        "@types/lodash": "^4.14.186",
        "@types/node": "^18.8.1",
        "@types/node-cron": "^3.0.4",
        "@types/nodemailer": "^6.4.6",
        "@types/request": "^2.48.8",
        "@vue/eslint-config-prettier": "^7.0.0",
        "@vue/eslint-config-typescript": "^11.0.2",
        "bower": "^1.8.13",
        "escape-string-regexp": "^5.0.0",
        "eslint": "^8.22.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": "^29.1.2",
        "jshint-stylish": "^2.2.1",
        "load-grunt-tasks": "^5.1.0",
        "prettier": "^2.7.1",
        "time-grunt": "^2.0.0",
        "ts-jest": "^29.0.3",
        "typescript": "^4.8.4",
        "yarn-audit-fix": "^9.3.6"
    },
    "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"
    }
}