1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
{
"name": "mullvad-vpn",
"version": "0.0.0",
"productName": "Mullvad VPN",
"private": true,
"description": "Mullvad VPN client",
"main": "build/main.js",
"author": {
"name": "Mullvad VPN",
"email": "support@mullvadvpn.net"
},
"repository": "https://github.com/mullvad/mullvadvpn-app",
"license": "GPL-3.0",
"dependencies": {
"@grpc/grpc-js": "^1.12.2",
"argv-split": "^2.0.1",
"gettext-parser": "^6.0.0",
"gl-matrix": "^3.4.3",
"google-protobuf": "^3.21.0",
"management-interface": "0.0.0",
"motion": "^12.23.22",
"node-gettext": "^3.0.0",
"nseventforwarder": "0.0.0",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-redux": "^9.2.0",
"react-router": "^5.3.4",
"redux": "^4.2.0",
"simple-plist": "^1.3.1",
"sprintf-js": "^1.1.2",
"styled-components": "^6.1.19",
"windows-utils": "0.0.0"
},
"devDependencies": {
"@playwright/test": "^1.55.1",
"@types/chai": "^4.3.3",
"@types/chai-as-promised": "^7.1.5",
"@types/chai-spies": "^1.0.3",
"@types/gettext-parser": "^4.0.1",
"@types/google-protobuf": "^3.15.6",
"@types/history": "^4.7.11",
"@types/mocha": "^10.0.0",
"@types/node-gettext": "^3.0.3",
"@types/react": "^19.1.9",
"@types/react-dom": "^19.1.7",
"@types/react-router": "^5.1.19",
"@types/sinon": "^10.0.13",
"@types/sprintf-js": "^1.1.2",
"@types/topojson-specification": "^1.0.2",
"@vitejs/plugin-react": "^4.7.0",
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
"chai-spies": "^1.0.0",
"cross-env": "^7.0.3",
"electron": "37.6.0",
"electron-builder": "26.0.18",
"electron-devtools-installer": "^3.2.0",
"eslint-plugin-react": "^7.36.1",
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
"eslint-plugin-react-hooks": "^5.2.0",
"gettext-extractor": "^3.5.4",
"globals": "^15.9.0",
"mocha": "^10.8.2",
"playwright": "^1.55.1",
"postject": "^1.0.0-alpha.6",
"sinon": "^14.0.1",
"vite": "7.1.11",
"vite-plugin-electron": "^0.29.0",
"xvfb-maybe": "^0.2.1"
},
"optionalDependencies": {
"@rollup/rollup-darwin-arm64": "4.34.6",
"@rollup/rollup-darwin-x64": "4.34.6",
"@rollup/rollup-linux-arm64-gnu": "4.34.6",
"@rollup/rollup-linux-x64-gnu": "4.34.6",
"@rollup/rollup-win32-arm64-msvc": "4.34.6",
"@rollup/rollup-win32-x64-msvc": "4.34.6"
},
"scripts": {
"preinstall": "test -d node_modules || mkdir node_modules",
"build": "node tasks/build-production.js",
"build:vite": "vite build",
"build:test": "node tasks/build-test.js",
"build:standalone": "node tasks/build-standalone.js",
"pack-test-executable": "./scripts/build-test-executable.sh",
"build-test-executable": "npm run pack-test-executable",
"lint": "eslint . --max-warnings 0",
"lint-fix": "eslint --fix .",
"e2e": "npm run build:test && npm run e2e:no-build",
"e2e:no-build": "xvfb-maybe -- playwright test mocked",
"e2e:sequential": "npm run build && npm run e2e:sequential:no-build",
"e2e:sequential:no-build": "xvfb-maybe -- playwright test -c test/e2e/installed/playwright.config.ts --workers 1",
"e2e:update-snapshots": "npm run e2e:no-build -- --update-snapshots",
"develop": "npm run develop:pre && npm run develop:vite",
"develop:pre": "node tasks/pre-develop.js",
"develop:vite": "vite",
"test": "cross-env NODE_ENV=test mocha --reporter spec --require ts-node/register --require \"test/unit/setup.ts\" \"test/unit/*.spec.ts\"",
"type-check": "tsc --noEmit",
"update-translations": "node scripts/extract-translations",
"pack:mac": "node tasks/pack-mac.js",
"pack:win": "node tasks/pack-windows.js",
"pack:linux": "node tasks/pack-linux.js"
},
"volta": {
"extends": "../../package.json"
}
}
|