{ "name": "countly-server", "version": "25.03.0", "description": "innovative, real-time, open source mobile analytics application", "keywords": [ "analytics", "mobile", "data", "analysis", "countly" ], "repository": { "type": "git", "url": "git://github.com/countly/countly-server.git" }, "scripts": { "test": "grunt --verbose", "lint": "eslint .", "lint:fix": "eslint . --fix", "test:merge-shepherd": "node --test .github/scripts/merge-shepherd.test.js", "geonames:update": "node bin/offline-geocoder/scripts/update_geonames_bundle.js", "prepare": "husky", "postinstall": "mkdir -p frontend/express/public/sdk/web && cp -rf node_modules/countly-sdk-web/lib/* frontend/express/public/sdk/web/" }, "lint-staged": { "*.{js,mjs,cjs}": [ "eslint --fix --no-quiet --pass-on-unpruned-suppressions" ] }, "devDependencies": { "@eslint/js": "^10.0.1", "@stylistic/eslint-plugin": "^5.10.0", "docdash": "^2.0.1", "eslint": "^10.13.0", "eslint-plugin-jsdoc": "^65.4.2", "eslint-plugin-no-unsanitized": "^4.1.5", "eslint-plugin-security": "^4.2.0", "globals": "^17.13.0", "grunt-contrib-watch": "1.1.0", "grunt-mocha-test": "0.13.3", "husky": "^9.1.7", "lint-staged": "^17.0.2", "mocha": "12.0.3", "should": "13.2.3", "supertest": "7.3.1", "typescript": "^7.0.2", "yauzl": "^3.3.1" }, "dependencies": { "@breejs/later": "4.2.0", "@json2csv/plainjs": "7.0.8", "all-the-cities": "3.1.0", "argon2": "0.45.2", "async": "3.2.6", "body-parser": "2.4.0", "bunyan": "file:api/utils/bunyan-compat", "connect-flash": "0.1.1", "cookie-parser": "1.4.7", "countly-request": "file:api/utils/countly-request", "countly-sdk-nodejs": "*", "countly-sdk-web": "*", "csrf": "^3.1.0", "csvtojson": "2.0.14", "ejs": "5.0.2", "errorhandler": "1.5.2", "express": "4.22.3", "express-rate-limit": "8.7.3", "express-session": "1.19.0", "form-data": "^4.0.0", "formidable": "2.1.5", "geoip-lite": "2.0.3", "grunt": "1.6.3", "grunt-cli": "1.5.0", "grunt-contrib-concat": "2.1.0", "grunt-contrib-copy": "1.0.0", "grunt-contrib-cssmin": "5.0.0", "grunt-contrib-sass": "2.0.0", "grunt-contrib-uglify": "5.2.2", "ipaddr.js": "^2.3.0", "jimp": "1.6.1", "jsonwebtoken": "^9.0.1", "lodash": "4.18.1", "lru-cache": "11.5.3", "mcc-mnc-list": "1.1.11", "method-override": "3.0.0", "moment": "2.31.0", "moment-timezone": "0.6.6", "mongodb": "7.8.0", "mongodb-connection-string-url": "^7.0.1", "nodemailer": "10.3.1", "object-hash": "3.0.0", "properties-parser": "0.6.0", "puppeteer": "^25.7.0", "rate-limiter-flexible": "^11.0.0", "sass": "1.107.1", "semver": "^7.7.1", "underscore": "1.13.8", "xlsx-write-stream": "^1.0.0" }, "overrides": { "sass": { "chokidar": "^4.0.3" }, "mocha": { "diff": "^8.0.4" }, "zod": "^4.6.7", "qs": "^6.17.0", "serialize-javascript": "^7.1.4", "uuid": "^11.1.1", "@tootallnate/once": "^2.0.1", "basic-ftp": "^5.3.1", "websocket-driver": "^0.7.5", "brace-expansion@^1.0.0": "^1.1.18", "brace-expansion@^2.0.0": "^2.1.4", "minimatch@^3.0.0": "^3.1.4", "minimatch@^10.0.0": "^11.0.4", "immutable": "^5.1.8", "ip-address": "^10.3.1", "brace-expansion@^5.0.0": "^5.0.9", "tar": "^7.5.22", "body-parser@^1.0.0": "^1.20.6", "js-yaml@^3.0.0": "^3.15.1", "js-yaml@^4.0.0": "^4.3.1" }, "allowScripts": { "@parcel/watcher": true, "argon2": true, "puppeteer": true }, "jshintConfig": { "esversion": 6, "node": true } }