{ "name": "mullvad-vpn", "version": "2021.6.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": { "@grpc/grpc-js": "^1.3.7", "argv-split": "^2.0.1", "d3-geo": "^1.12.1", "gettext-parser": "^4.0.3", "google-protobuf": "^3.14.0", "node-gettext": "^3.0.0", "rbush": "^2.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-redux": "^7.2.2", "react-router": "^5.1.2", "react-simple-maps": "^2.1.2", "redux": "^4.0.5", "sprintf-js": "^1.1.2", "styled-components": "^5.1.1" }, "optionalDependencies": { "grpc-tools": "^1.10.0", "nseventmonitor": "^1.0.1" }, "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/gettext-parser": "^4.0.0", "@types/google-protobuf": "^3.7.2", "@types/history": "^4.7.8", "@types/mocha": "^5.2.6", "@types/node": "^16.10.1", "@types/node-gettext": "^3.0.1", "@types/rbush": "^2.0.2", "@types/react": "^16.9.56", "@types/react-dom": "^16.9.9", "@types/react-redux": "^7.1.7", "@types/react-router": "^5.1.5", "@types/react-simple-maps": "^1.0.3", "@types/sinon": "^7.0.5", "@types/sprintf-js": "^1.1.2", "@types/styled-components": "^5.1.4", "@types/topojson-specification": "^1.0.1", "@typescript-eslint/eslint-plugin": "^5.7.0", "@typescript-eslint/parser": "^5.7.0", "browserify": "^17.0.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "chai-spies": "^1.0.0", "cross-env": "^5.1.3", "electron": "^16.0.4", "electron-builder": "^22.11.7", "electron-devtools-installer": "^3.2.0", "electron-mocha": "^9.3.3", "electron-notarize": "^0.1.1", "eslint": "^7.27.0", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-react": "^7.23.2", "gettext-extractor": "^3.5.2", "grpc_tools_node_protoc_ts": "^5.1.1", "gulp": "^4.0.2", "gulp-inject-string": "^1.1.2", "gulp-sourcemaps": "^2.6.5", "gulp-typescript": "^5.0.1", "prettier": "^2.2.1", "semver": "^7.3.2", "sinon": "^7.1.1", "ts-node": "^10.4.0", "tsc-watch": "^4.2.9", "typescript": "^4.5.4", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0" }, "scripts": { "postinstall": "cross-env ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true electron-builder install-app-deps", "build": "gulp build", "build-proto": "gulp build-proto", "lint": "eslint --ext tsx,ts .", "format": "prettier \"**/*.{js,css,ts,tsx}\" --write", "develop": "gulp develop", "test": "cross-env NODE_ENV=test electron-mocha --renderer --reporter spec --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" }, "engines": { "node": ">=12", "npm": ">=6.12" } }