{ "name": "mullvad-vpn", "version": "2019.10.0", "productName": "Mullvad VPN", "private": true, "description": "Mullvad VPN client", "main": "init.js", "author": { "name": "Mullvad VPN", "email": "support@mullvad.net" }, "repository": "https://github.com/mullvad/mullvadvpn-app", "license": "GPL-3.0", "dependencies": { "connected-react-router": "^5.0.1", "d3-geo-projection": "^2.7.0", "electron-log": "^3.0.7", "gettext-parser": "^4.0.1", "history": "^4.6.1", "jsonrpc-lite": "^2.0.7", "mkdirp": "^0.5.1", "moment": "^2.24.0", "node-gettext": "^2.0.0", "rbush": "^2.0.2", "react": "^16.5.0", "react-dom": "^16.5.0", "react-redux": "^5.1.0", "react-router": "^4.3.1", "react-simple-maps": "^0.12.1", "reactxp": "^1.6.1", "redux": "^4.0.4", "sprintf-js": "^1.1.2", "stream-json": "^1.3.0", "uuid": "^3.0.1", "validated": "^2.0.1" }, "optionalDependencies": { "nseventmonitor": "^0.0.17" }, "devDependencies": { "@types/chai": "^4.1.7", "@types/chai-as-promised": "^7.1.0", "@types/chai-spies": "^1.0.0", "@types/d3-geo": "^1.11.0", "@types/enzyme": "^3.1.15", "@types/enzyme-adapter-react-16": "^1.0.3", "@types/geojson": "^7946.0.7", "@types/mkdirp": "^0.5.2", "@types/mocha": "^5.2.6", "@types/node": "^10.12.3", "@types/node-gettext": "^2.0.0", "@types/rbush": "^2.0.2", "@types/react": "^16.8.8", "@types/react-dom": "^16.8.2", "@types/react-redux": "^7.0.6", "@types/react-router": "^4.4.3", "@types/sinon": "^7.0.5", "@types/sprintf-js": "^1.1.2", "@types/stream-json": "^1.0.0", "@types/topojson-specification": "^1.0.1", "@types/uuid": "^3.4.4", "browser-sync": "^2.26.7", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chai-spies": "^1.0.0", "cross-env": "^5.1.3", "electron": "^7.1.10", "electron-builder": "^21.2.0", "electron-devtools-installer": "^2.2.1", "electron-mocha": "^8.1.1", "electron-notarize": "^0.1.1", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.7.0", "gettext-extractor": "^3.5.1", "gulp": "^4.0.2", "gulp-inject-string": "^1.1.2", "gulp-typescript": "^5.0.1", "prettier": "1.16.4", "rimraf": "^2.7.1", "sinon": "^7.1.1", "ts-node": "^8.3.0", "tsc-watch": "^2.4.0", "tslint": "^5.18.0", "tslint-config-prettier": "^1.18.0", "tslint-react": "^4.0.0", "typescript": "^3.5.3" }, "scripts": { "postinstall": "cross-env ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true electron-builder install-app-deps", "build": "gulp build", "lint": "tslint -t stylish -p .", "format": "npm run private:format -- --write", "check-format": "npm run private:format -- --list-different", "develop": "gulp develop", "test": "cross-env NODE_ENV=test electron-mocha --renderer --reporter spec --require-main \"test/setup/main.js\" --require ts-node/register --require \"test/setup/renderer.ts\" \"test/**/*.{ts,tsx}\"", "update-translations": "node scripts/extract-translations", "pack:mac": "gulp pack-mac", "pack:win": "gulp pack-win", "pack:linux": "gulp pack-linux", "private:format": "prettier \"**/*.{js,css,ts,tsx}\"" }, "engines": { "node": ">=12", "npm": ">=6.12" } }