{ "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 server:build && yarn run server:lint && yarn run server:test && (pushd frontend/ && yarn run check && popd)", "test": "yarn run server:test", "lint": "yarn run server:lint", "build": "yarn run client:build && yarn run server:build", "clean": "yarn run client:clean && yarn run server:clean && rm -rf dist/", "dist": "yarn run clean && yarn run client:dist && yarn run server:dist && yarn run check && ./bin/dist-fix-symlinks.sh && yarn run dist:copy", "dist:copy": "mkdir -p dist/ && cp package.json LICENSE config.json.example dist/ && sed -i 's/\"private\": true,/\"private\": false,/' dist/package.json && rm -f dist/package.json.bak", "client:clean": "rm -rf dist/client/ && (pushd frontend/ && yarn run clean && popd)", "client:build": "(pushd frontend/ && yarn run build && popd)", "client:dist": "mkdir -p dist/ && (pushd frontend/ && yarn run dist && popd) && rsync -avzL frontend/dist/ dist/client/", "client:serve": "(pushd frontend/ && yarn run dev && popd)", "server:test": "jest --config=jest.server.config.js", "server:clean": "rm -rf dist/server/ server-build/", "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:dist": "mkdir -p dist/ && yarn run server:build && rsync -avzL --exclude='*/__mocks__/' --exclude='*.test.*' server-build/ dist/server/", "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", "connect-history-api-fallback": "^2.0.0", "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", "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.2" }, "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/connect-history-api-fallback": "^1.3.5", "@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", "escape-string-regexp": "^5.0.0", "eslint": "^8.22.0", "jest": "^29.1.2", "prettier": "^2.7.1", "time-grunt": "^2.0.0", "ts-jest": "^29.0.3", "typescript": "^4.8.4", "yarn-audit-fix": "^9.3.6" }, "engines": { "node": ">=16.0.0" } }