summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-03-19 18:04:19 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-19 18:04:19 +0100
commit33cd7ac10507fa06ced098db2d82d2e013360970 (patch)
tree28d0bb51b11ae7618bdcf861e553efdae8487894
parent01102af2d21cb2eadc36a422359a4eca1ed5fc17 (diff)
parent53ad0f1b82f0528649f544c243ff017b888f14ae (diff)
downloadmullvadvpn-33cd7ac10507fa06ced098db2d82d2e013360970.tar.xz
mullvadvpn-33cd7ac10507fa06ced098db2d82d2e013360970.zip
Merge branch 'rename-win-shortcuts'
-rw-r--r--CHANGELOG.md4
-rw-r--r--Cargo.lock18
-rw-r--r--Cargo.toml2
-rw-r--r--desktop/package-lock.json14
-rw-r--r--desktop/packages/mullvad-vpn/gulpfile.js2
-rw-r--r--desktop/packages/mullvad-vpn/package.json2
-rw-r--r--desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts2
-rw-r--r--desktop/packages/mullvad-vpn/tasks/distribution.js6
-rw-r--r--desktop/packages/mullvad-vpn/tasks/scripts.js8
-rw-r--r--desktop/packages/mullvad-vpn/vite.config.ts4
-rw-r--r--desktop/packages/windows-utils/.gitignore (renamed from desktop/packages/win-shortcuts/.gitignore)0
-rw-r--r--desktop/packages/windows-utils/Cargo.toml (renamed from desktop/packages/win-shortcuts/Cargo.toml)4
-rw-r--r--desktop/packages/windows-utils/README.md (renamed from desktop/packages/win-shortcuts/README.md)6
-rw-r--r--desktop/packages/windows-utils/eslint.config.mjs (renamed from desktop/packages/win-shortcuts/eslint.config.mjs)0
-rw-r--r--desktop/packages/windows-utils/package.json (renamed from desktop/packages/win-shortcuts/package.json)8
-rw-r--r--desktop/packages/windows-utils/src/index.cts (renamed from desktop/packages/win-shortcuts/src/index.cts)0
-rw-r--r--desktop/packages/windows-utils/src/index.mts (renamed from desktop/packages/win-shortcuts/src/index.mts)0
-rw-r--r--desktop/packages/windows-utils/src/load.cts (renamed from desktop/packages/win-shortcuts/src/load.cts)0
-rw-r--r--desktop/packages/windows-utils/tsconfig.json (renamed from desktop/packages/win-shortcuts/tsconfig.json)0
-rw-r--r--desktop/packages/windows-utils/windows-utils-rs/lib.rs12
-rw-r--r--desktop/packages/windows-utils/windows-utils-rs/shortcut.rs (renamed from desktop/packages/win-shortcuts/win-shortcuts-rs/lib.rs)11
21 files changed, 55 insertions, 48 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 72e2327d50..12a00f72aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,10 @@ Line wrap the file at 100 chars. Th
* **Security**: in case of vulnerabilities.
## [Unreleased]
+### Changed
+#### Windows
+- Rename `win-shortcuts` native module to `windows-utils`.
+
### Removed
- Remove "Any" option for tunnel protocol. The default is now WireGuard.
diff --git a/Cargo.lock b/Cargo.lock
index f6b3c2c335..5d4adf2281 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5813,15 +5813,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
[[package]]
-name = "win-shortcuts"
-version = "0.0.0"
-dependencies = [
- "neon",
- "thiserror 2.0.9",
- "windows 0.59.0",
-]
-
-[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6140,6 +6131,15 @@ dependencies = [
]
[[package]]
+name = "windows-utils"
+version = "0.0.0"
+dependencies = [
+ "neon",
+ "thiserror 2.0.9",
+ "windows 0.59.0",
+]
+
+[[package]]
name = "windows_aarch64_gnullvm"
version = "0.42.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index 4a10fcdb23..a52f66781e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,7 +11,7 @@ resolver = "2"
members = [
"android/translations-converter",
"desktop/packages/nseventforwarder",
- "desktop/packages/win-shortcuts",
+ "desktop/packages/windows-utils",
"mullvad-api",
"mullvad-cli",
"mullvad-daemon",
diff --git a/desktop/package-lock.json b/desktop/package-lock.json
index db77855a40..a0cd55a320 100644
--- a/desktop/package-lock.json
+++ b/desktop/package-lock.json
@@ -15246,8 +15246,8 @@
"string-width": "^1.0.2 || 2"
}
},
- "node_modules/win-shortcuts": {
- "resolved": "packages/win-shortcuts",
+ "node_modules/windows-utils": {
+ "resolved": "packages/windows-utils",
"link": true
},
"node_modules/word-wrap": {
@@ -15701,7 +15701,7 @@
"simple-plist": "^1.3.1",
"sprintf-js": "^1.1.2",
"styled-components": "^6.1.13",
- "win-shortcuts": "0.0.0"
+ "windows-utils": "0.0.0"
},
"devDependencies": {
"@playwright/test": "^1.41.1",
@@ -15765,7 +15765,7 @@
"@neon-rs/load": "^0.1.73"
}
},
- "packages/win-shortcuts": {
+ "packages/windows-utils": {
"version": "0.0.0",
"hasInstallScript": true,
"license": "GPL-3.0",
@@ -23989,7 +23989,7 @@
"vinyl-source-stream": "^2.0.0",
"vite": "6.2.0",
"vite-plugin-electron": "^0.29.0",
- "win-shortcuts": "0.0.0",
+ "windows-utils": "0.0.0",
"xvfb-maybe": "^0.2.1"
}
},
@@ -27378,8 +27378,8 @@
"string-width": "^1.0.2 || 2"
}
},
- "win-shortcuts": {
- "version": "file:packages/win-shortcuts",
+ "windows-utils": {
+ "version": "file:packages/windows-utils",
"requires": {
"@neon-rs/load": "^0.1.73"
}
diff --git a/desktop/packages/mullvad-vpn/gulpfile.js b/desktop/packages/mullvad-vpn/gulpfile.js
index 917878b977..90ebb8df13 100644
--- a/desktop/packages/mullvad-vpn/gulpfile.js
+++ b/desktop/packages/mullvad-vpn/gulpfile.js
@@ -41,7 +41,7 @@ task(
'clean',
'set-dev-env',
scripts.buildNseventforwarder,
- scripts.buildWinShortcuts,
+ scripts.buildWindowsUtils,
watch.start,
),
);
diff --git a/desktop/packages/mullvad-vpn/package.json b/desktop/packages/mullvad-vpn/package.json
index 57e415c9da..0cd951ed03 100644
--- a/desktop/packages/mullvad-vpn/package.json
+++ b/desktop/packages/mullvad-vpn/package.json
@@ -28,7 +28,7 @@
"simple-plist": "^1.3.1",
"sprintf-js": "^1.1.2",
"styled-components": "^6.1.13",
- "win-shortcuts": "0.0.0"
+ "windows-utils": "0.0.0"
},
"devDependencies": {
"@playwright/test": "^1.41.1",
diff --git a/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts b/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts
index f8052c8947..f2928bd433 100644
--- a/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts
+++ b/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts
@@ -1,7 +1,7 @@
import { app } from 'electron';
import fs from 'fs';
import path from 'path';
-import { readShortcut } from 'win-shortcuts';
+import { readShortcut } from 'windows-utils';
import {
ISplitTunnelingApplication,
diff --git a/desktop/packages/mullvad-vpn/tasks/distribution.js b/desktop/packages/mullvad-vpn/tasks/distribution.js
index 52a053d541..88fcfa65d6 100644
--- a/desktop/packages/mullvad-vpn/tasks/distribution.js
+++ b/desktop/packages/mullvad-vpn/tasks/distribution.js
@@ -57,7 +57,7 @@ function newConfig() {
'!node_modules/grpc-tools',
'!node_modules/@types',
'!node_modules/nseventforwarder/debug',
- '!node_modules/win-shortcuts/debug',
+ '!node_modules/windows-utils/debug',
],
// Make sure that all files declared in "extraResources" exists and abort if they don't.
@@ -291,7 +291,7 @@ async function packWin() {
process.env.TARGET_SUBDIR = 'x86_64-pc-windows-msvc';
process.env.DIST_SUBDIR = '';
- execFileSync('npm', ['-w', 'win-shortcuts', 'run', 'build-x86'], { shell: true });
+ execFileSync('npm', ['-w', 'windows-utils', 'run', 'build-x86'], { shell: true });
break;
case 'arm64':
process.env.TARGET_TRIPLE = 'aarch64-pc-windows-msvc';
@@ -299,7 +299,7 @@ async function packWin() {
process.env.TARGET_SUBDIR = 'aarch64-pc-windows-msvc';
process.env.DIST_SUBDIR = 'aarch64-pc-windows-msvc';
- execFileSync('npm', ['-w', 'win-shortcuts', 'run', 'build-arm'], { shell: true });
+ execFileSync('npm', ['-w', 'windows-utils', 'run', 'build-arm'], { shell: true });
break;
default:
throw new Error('Invalid or unknown target (only one may be specified)');
diff --git a/desktop/packages/mullvad-vpn/tasks/scripts.js b/desktop/packages/mullvad-vpn/tasks/scripts.js
index fb1372762b..f3a395a9be 100644
--- a/desktop/packages/mullvad-vpn/tasks/scripts.js
+++ b/desktop/packages/mullvad-vpn/tasks/scripts.js
@@ -117,9 +117,9 @@ function buildNseventforwarder(callback) {
}
}
-function buildWinShortcuts(callback) {
+function buildWindowsUtils(callback) {
if (process.platform === 'win32') {
- exec('npm -w win-shortcuts run build-debug', (err) => callback(err));
+ exec('npm -w windows-utils run build-debug', (err) => callback(err));
} else {
callback();
}
@@ -127,12 +127,12 @@ function buildWinShortcuts(callback) {
compileScripts.displayName = 'compile-scripts';
buildNseventforwarder.displayName = 'build-nseventforwarder';
-buildWinShortcuts.displayName = 'build-win-shortcuts';
+buildWindowsUtils.displayName = 'build-windows-utils';
exports.build = series(
compileScripts,
parallel(makeBrowserifyPreload(false), makeBrowserifyRenderer(false)),
);
exports.buildNseventforwarder = buildNseventforwarder;
-exports.buildWinShortcuts = buildWinShortcuts;
+exports.buildWindowsUtils = buildWindowsUtils;
exports.makeWatchCompiler = makeWatchCompiler;
diff --git a/desktop/packages/mullvad-vpn/vite.config.ts b/desktop/packages/mullvad-vpn/vite.config.ts
index 657111cf9a..bfcf6cf962 100644
--- a/desktop/packages/mullvad-vpn/vite.config.ts
+++ b/desktop/packages/mullvad-vpn/vite.config.ts
@@ -74,7 +74,7 @@ const viteConfig = defineConfig({
// Packages in workspace which exports common js
/management-interface/,
/nseventforwarder/,
- /win-shortcuts/,
+ /windows-utils/,
// External dependencies which exports common js
/node_modules/,
],
@@ -87,7 +87,7 @@ const viteConfig = defineConfig({
},
external: [
// Packages in workspace which can not be bundled
- 'win-shortcuts',
+ 'windows-utils',
// External dependencies
'@grpc/grpc-js',
'google-protobuf',
diff --git a/desktop/packages/win-shortcuts/.gitignore b/desktop/packages/windows-utils/.gitignore
index ec4fda9fef..ec4fda9fef 100644
--- a/desktop/packages/win-shortcuts/.gitignore
+++ b/desktop/packages/windows-utils/.gitignore
diff --git a/desktop/packages/win-shortcuts/Cargo.toml b/desktop/packages/windows-utils/Cargo.toml
index ed8f3f43af..377e17e208 100644
--- a/desktop/packages/win-shortcuts/Cargo.toml
+++ b/desktop/packages/windows-utils/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "win-shortcuts"
+name = "windows-utils"
description = ""
authors.workspace = true
repository.workspace = true
@@ -13,7 +13,7 @@ workspace = true
[lib]
crate-type = ["cdylib"]
-path = "win-shortcuts-rs/lib.rs"
+path = "windows-utils-rs/lib.rs"
[target.'cfg(target_os = "windows")'.dependencies]
neon = "1"
diff --git a/desktop/packages/win-shortcuts/README.md b/desktop/packages/windows-utils/README.md
index b837b8e6a6..6f15dedae7 100644
--- a/desktop/packages/win-shortcuts/README.md
+++ b/desktop/packages/windows-utils/README.md
@@ -1,8 +1,8 @@
-# win-shortcuts
+# windows-utils
-## Building win-shortcuts
+## Building windows-utils
-Building win-shortcuts requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support).
+Building windows-utils requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support).
To run the build, run:
diff --git a/desktop/packages/win-shortcuts/eslint.config.mjs b/desktop/packages/windows-utils/eslint.config.mjs
index 9e16ad57ea..9e16ad57ea 100644
--- a/desktop/packages/win-shortcuts/eslint.config.mjs
+++ b/desktop/packages/windows-utils/eslint.config.mjs
diff --git a/desktop/packages/win-shortcuts/package.json b/desktop/packages/windows-utils/package.json
index d549adcc89..e61266b999 100644
--- a/desktop/packages/win-shortcuts/package.json
+++ b/desktop/packages/windows-utils/package.json
@@ -1,5 +1,5 @@
{
- "name": "win-shortcuts",
+ "name": "windows-utils",
"version": "0.0.0",
"author": "Mullvad VPN",
"license": "GPL-3.0",
@@ -7,10 +7,10 @@
"main": "./lib/index.cjs",
"scripts": {
"cargo-build": "npm run build-typescript && cargo build",
- "build-debug": "npm run cargo-build && (test -d debug || mkdir debug) && cp ../../../target/debug/win_shortcuts.dll debug/index.node",
- "build-arm": "npm run cargo-build -- --release --target aarch64-pc-windows-msvc && (test -d dist || mkdir dist) && (test -d dist/win32-arm64-msvc || mkdir \"dist/win32-arm64-msvc\") && cp ../../../target/aarch64-pc-windows-msvc/release/win_shortcuts.dll dist/win32-arm64-msvc/index.node",
+ "build-debug": "npm run cargo-build && (test -d debug || mkdir debug) && cp ../../../target/debug/windows_utils.dll debug/index.node",
+ "build-arm": "npm run cargo-build -- --release --target aarch64-pc-windows-msvc && (test -d dist || mkdir dist) && (test -d dist/win32-arm64-msvc || mkdir \"dist/win32-arm64-msvc\") && cp ../../../target/aarch64-pc-windows-msvc/release/windows_utils.dll dist/win32-arm64-msvc/index.node",
"build-typescript": "tsc",
- "build-x86": "npm run cargo-build -- --release --target x86_64-pc-windows-msvc && (test -d dist || mkdir dist) && (test -d dist/win32-x64-msvc || mkdir \"dist/win32-x64-msvc\") && cp ../../../target/x86_64-pc-windows-msvc/release/win_shortcuts.dll dist/win32-x64-msvc/index.node",
+ "build-x86": "npm run cargo-build -- --release --target x86_64-pc-windows-msvc && (test -d dist || mkdir dist) && (test -d dist/win32-x64-msvc || mkdir \"dist/win32-x64-msvc\") && cp ../../../target/x86_64-pc-windows-msvc/release/windows_utils.dll dist/win32-x64-msvc/index.node",
"clean": "rm -rf debug; rm -rf dist",
"lint": "eslint .",
"lint-fix": "eslint --fix .",
diff --git a/desktop/packages/win-shortcuts/src/index.cts b/desktop/packages/windows-utils/src/index.cts
index 717968cda4..717968cda4 100644
--- a/desktop/packages/win-shortcuts/src/index.cts
+++ b/desktop/packages/windows-utils/src/index.cts
diff --git a/desktop/packages/win-shortcuts/src/index.mts b/desktop/packages/windows-utils/src/index.mts
index 5e1ab260f6..5e1ab260f6 100644
--- a/desktop/packages/win-shortcuts/src/index.mts
+++ b/desktop/packages/windows-utils/src/index.mts
diff --git a/desktop/packages/win-shortcuts/src/load.cts b/desktop/packages/windows-utils/src/load.cts
index e58b265901..e58b265901 100644
--- a/desktop/packages/win-shortcuts/src/load.cts
+++ b/desktop/packages/windows-utils/src/load.cts
diff --git a/desktop/packages/win-shortcuts/tsconfig.json b/desktop/packages/windows-utils/tsconfig.json
index 31e6603771..31e6603771 100644
--- a/desktop/packages/win-shortcuts/tsconfig.json
+++ b/desktop/packages/windows-utils/tsconfig.json
diff --git a/desktop/packages/windows-utils/windows-utils-rs/lib.rs b/desktop/packages/windows-utils/windows-utils-rs/lib.rs
new file mode 100644
index 0000000000..bdb0c90559
--- /dev/null
+++ b/desktop/packages/windows-utils/windows-utils-rs/lib.rs
@@ -0,0 +1,12 @@
+#![cfg(target_os = "windows")]
+
+use neon::{prelude::ModuleContext, result::NeonResult};
+
+mod shortcut;
+
+#[neon::main]
+fn main(mut cx: ModuleContext<'_>) -> NeonResult<()> {
+ cx.export_function("readShortcut", shortcut::read_shortcut)?;
+
+ Ok(())
+}
diff --git a/desktop/packages/win-shortcuts/win-shortcuts-rs/lib.rs b/desktop/packages/windows-utils/windows-utils-rs/shortcut.rs
index 9cc0cea0c6..3d912711e1 100644
--- a/desktop/packages/win-shortcuts/win-shortcuts-rs/lib.rs
+++ b/desktop/packages/windows-utils/windows-utils-rs/shortcut.rs
@@ -1,5 +1,3 @@
-#![cfg(target_os = "windows")]
-
use std::marker::PhantomData;
use std::string::FromUtf16Error;
use std::sync::{mpsc, OnceLock};
@@ -51,14 +49,7 @@ enum Error {
/// 32 KiB: https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
const MAX_PATH_LEN: usize = 0x7fff;
-#[neon::main]
-fn main(mut cx: ModuleContext<'_>) -> NeonResult<()> {
- cx.export_function("readShortcut", read_shortcut)?;
-
- Ok(())
-}
-
-fn read_shortcut(mut cx: FunctionContext<'_>) -> JsResult<'_, JsValue> {
+pub fn read_shortcut(mut cx: FunctionContext<'_>) -> JsResult<'_, JsValue> {
let link_path = cx.argument::<JsString>(0)?.value(&mut cx);
match read_shortcut_inner(link_path) {