@push.rocks/smartvpn 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_rust/smartvpn_daemon_linux_amd64_musl +0 -0
- package/dist_rust/smartvpn_daemon_linux_amd64_musl.tsrust-build.json +5 -5
- package/dist_rust/smartvpn_daemon_linux_arm64_musl +0 -0
- package/dist_rust/smartvpn_daemon_linux_arm64_musl.tsrust-build.json +5 -5
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/smartvpn.classes.vpnbridge.js +2 -2
- package/dist_ts/smartvpn.paths.d.ts +7 -0
- package/dist_ts/smartvpn.paths.js +13 -1
- package/dist_ts/smartvpn.plugins.d.ts +2 -1
- package/dist_ts/smartvpn.plugins.js +3 -2
- package/package.json +6 -5
- package/readme.md +11 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smartvpn.classes.vpnbridge.ts +1 -1
- package/ts/smartvpn.paths.ts +13 -0
- package/ts/smartvpn.plugins.ts +2 -1
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "9a5aed62511c9afb659443f5274fdf71fd168206722b3c474f17311e761f8683",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartvpn",
|
|
6
|
-
"projectVersion": "2.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "2.7.0",
|
|
7
|
+
"gitCommit": "02b302a29e212742fa3e1a9e2160f3858e0d6ea7",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-10-
|
|
10
|
-
"tsrustVersion": "4.
|
|
9
|
+
"builtAt": "2026-10-14T23:00:02.136Z",
|
|
10
|
+
"tsrustVersion": "4.5.1",
|
|
11
11
|
"binary": "smartvpn_daemon",
|
|
12
12
|
"target": "linux_amd64_musl"
|
|
13
13
|
}
|
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "tsrust.build-provenance.v2",
|
|
3
|
-
"binarySha256": "
|
|
3
|
+
"binarySha256": "c09d9af20517c278fbcee6db74e24a44447ab3e173e88955a2b595cd796b3603",
|
|
4
4
|
"buildInfo": {
|
|
5
5
|
"projectName": "@push.rocks/smartvpn",
|
|
6
|
-
"projectVersion": "2.
|
|
7
|
-
"gitCommit": "
|
|
6
|
+
"projectVersion": "2.7.0",
|
|
7
|
+
"gitCommit": "02b302a29e212742fa3e1a9e2160f3858e0d6ea7",
|
|
8
8
|
"gitDirty": false,
|
|
9
|
-
"builtAt": "2026-10-
|
|
10
|
-
"tsrustVersion": "4.
|
|
9
|
+
"builtAt": "2026-10-14T23:02:32.733Z",
|
|
10
|
+
"tsrustVersion": "4.5.1",
|
|
11
11
|
"binary": "smartvpn_daemon",
|
|
12
12
|
"target": "linux_arm64_musl"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartvpn',
|
|
6
|
-
version: '2.
|
|
6
|
+
version: '2.7.0',
|
|
7
7
|
description: 'A VPN solution with TypeScript control plane and Rust data plane daemon'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHlFQUF5RTtDQUN2RixDQUFBIn0=
|
|
@@ -27,7 +27,7 @@ export class VpnBridge extends plugins.events.EventEmitter {
|
|
|
27
27
|
this.bridge = new plugins.smartrust.RustBridge({
|
|
28
28
|
binaryName,
|
|
29
29
|
binaryPath: options.transport.transport === 'stdio'
|
|
30
|
-
? options.transport.binaryPath ?? paths.
|
|
30
|
+
? options.transport.binaryPath ?? paths.getStdioBinaryPath(binaryName)
|
|
31
31
|
: undefined,
|
|
32
32
|
localPaths: [],
|
|
33
33
|
searchSystemPath: false,
|
|
@@ -116,4 +116,4 @@ export class VpnBridge extends plugins.events.EventEmitter {
|
|
|
116
116
|
return this.bridge.running;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR2cG4uY2xhc3Nlcy52cG5icmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHZwbi5jbGFzc2VzLnZwbmJyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sS0FBSyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFVN0M7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFNBQXlDLFNBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBS3ZGLFlBQVksT0FLWDtRQUNDLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQy9DLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQzlHLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxHQUFHLENBQUMsSUFBSSxXQUFXLEdBQUcsV0FBVyxFQUFFLENBQUM7Z0JBQ25GLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztZQUMzRixDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksaUJBQWlCLENBQUM7UUFDM0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEtBQUssU0FBUztlQUNwRixDQUFDLE9BQU8sT0FBTyxD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
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
export declare const packageDir: string;
|
|
2
2
|
/** Select only an explicitly requested binary or this package's Linux musl artifact. */
|
|
3
3
|
export declare function getBinaryPath(binaryName: string, platform?: NodeJS.Platform, arch?: string, override?: string | undefined): string;
|
|
4
|
+
/**
|
|
5
|
+
* The executable a stdio VpnBridge hands smartrust when the caller names none: the
|
|
6
|
+
* SMARTVPN_RUST_BINARY override, else this package's artifact. Inside a Node.js single
|
|
7
|
+
* executable application without an override: none, so smartrust runs the sidecar the
|
|
8
|
+
* executable embeds under `binaryName`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getStdioBinaryPath(binaryName: string): string | undefined;
|
|
@@ -13,4 +13,16 @@ export function getBinaryPath(binaryName, platform = process.platform, arch = pr
|
|
|
13
13
|
const suffix = arch === 'x64' ? 'linux_amd64_musl' : 'linux_arm64_musl';
|
|
14
14
|
return plugins.path.join(packageDir, 'dist_rust', `${binaryName}_${suffix}`);
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The executable a stdio VpnBridge hands smartrust when the caller names none: the
|
|
18
|
+
* SMARTVPN_RUST_BINARY override, else this package's artifact. Inside a Node.js single
|
|
19
|
+
* executable application without an override: none, so smartrust runs the sidecar the
|
|
20
|
+
* executable embeds under `binaryName`.
|
|
21
|
+
*/
|
|
22
|
+
export function getStdioBinaryPath(binaryName) {
|
|
23
|
+
if (process.env.SMARTVPN_RUST_BINARY === undefined && plugins.smartsea.isSea()) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return getBinaryPath(binaryName);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR2cG4ucGF0aHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHZwbi5wYXRocy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDekMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQy9ELEtBQUssQ0FDTixDQUFDO0FBRUYsd0ZBQXdGO0FBQ3hGLE1BQU0sVUFBVSxhQUFhLENBQzNCLFVBQWtCLEVBQ2xCLFFBQVEsR0FBb0IsT0FBTyxDQUFDLFFBQVEsRUFDNUMsSUFBSSxHQUFXLE9BQU8sQ0FBQyxJQUFJLEVBQzNCLFFBQVEsR0FBdUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7SUFFL0QsaUZBQWlGO0lBQ2pGLDZFQUE2RTtJQUM3RSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxRQUFRLElBQUksSUFBSSx1RkFBdUYsQ0FBQyxDQUFDO0lBQ3BLLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7SUFDeEUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsVUFBVSxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQWtCO0lBQ25ELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQy9FLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuQyxDQUFDIn0=
|
|
@@ -7,4 +7,5 @@ export { path, fs, os, url, events };
|
|
|
7
7
|
import * as smartnftables from '@push.rocks/smartnftables';
|
|
8
8
|
import * as smartpath from '@push.rocks/smartpath';
|
|
9
9
|
import * as smartrust from '@push.rocks/smartrust';
|
|
10
|
-
|
|
10
|
+
import * as smartsea from '@push.rocks/smartsea';
|
|
11
|
+
export { smartnftables, smartpath, smartrust, smartsea };
|
|
@@ -9,5 +9,6 @@ export { path, fs, os, url, events };
|
|
|
9
9
|
import * as smartnftables from '@push.rocks/smartnftables';
|
|
10
10
|
import * as smartpath from '@push.rocks/smartpath';
|
|
11
11
|
import * as smartrust from '@push.rocks/smartrust';
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import * as smartsea from '@push.rocks/smartsea';
|
|
13
|
+
export { smartnftables, smartpath, smartrust, smartsea };
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR2cG4ucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0dnBuLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFckMsY0FBYztBQUNkLE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartvpn",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A VPN solution with TypeScript control plane and Rust data plane daemon",
|
|
6
6
|
"type": "module",
|
|
@@ -23,15 +23,16 @@
|
|
|
23
23
|
],
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@push.rocks/smartnftables": "^4.
|
|
26
|
+
"@push.rocks/smartnftables": "^4.8.0",
|
|
27
27
|
"@push.rocks/smartpath": "^6.0.0",
|
|
28
|
-
"@push.rocks/smartrust": "^2.
|
|
28
|
+
"@push.rocks/smartrust": "^2.6.0",
|
|
29
|
+
"@push.rocks/smartsea": "^1.0.1"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@git.zone/tsbuild": "^6.0.2",
|
|
32
33
|
"@git.zone/tsrun": "^3.0.3",
|
|
33
|
-
"@git.zone/tsrust": "^4.
|
|
34
|
-
"@git.zone/tstest": "^
|
|
34
|
+
"@git.zone/tsrust": "^4.5.1",
|
|
35
|
+
"@git.zone/tstest": "^8.0.0",
|
|
35
36
|
"@types/node": "^26.6.4"
|
|
36
37
|
},
|
|
37
38
|
"files": [
|
package/readme.md
CHANGED
|
@@ -1124,6 +1124,17 @@ directory's Rust builds, platform packages, or a daemon found on `PATH`.
|
|
|
1124
1124
|
Other platforms must provide that explicit executable. Socket transport connects
|
|
1125
1125
|
to an independently managed daemon and does not require a local binary.
|
|
1126
1126
|
|
|
1127
|
+
Inside a Node.js single executable application (SEA), a stdio bridge without a
|
|
1128
|
+
`binaryPath` and without `SMARTVPN_RUST_BINARY` names no executable:
|
|
1129
|
+
`@push.rocks/smartrust` runs the sidecar the executable embeds under the bridge's
|
|
1130
|
+
`binaryName` (`smartvpn_daemon` unless set), so a SEA build embeds the daemon
|
|
1131
|
+
under that name. A sidecar the executable cannot provide rejects `start()` with
|
|
1132
|
+
`RustBinaryLocatorError` code `ERR_RUST_BINARY_SEA_SIDECAR_UNAVAILABLE`. An
|
|
1133
|
+
explicit `binaryPath` or `SMARTVPN_RUST_BINARY` still selects that exact file.
|
|
1134
|
+
SmartVPN uses only `@push.rocks/smartnftables`' `SmartNftables` table API, which
|
|
1135
|
+
runs the host's `nft` command; it never starts the `smartnftables` sidecar, so a
|
|
1136
|
+
SEA build does not embed one.
|
|
1137
|
+
|
|
1127
1138
|
For an unprivileged build host, musl's upstream `musl-gcc` wrappers can provide
|
|
1128
1139
|
the C toolchains using existing native and cross GCC compilers. Build musl 1.2.5
|
|
1129
1140
|
in separate disposable prefixes for each architecture, with `--disable-shared`
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -47,7 +47,7 @@ export class VpnBridge<TCommands extends TCommandMap> extends plugins.events.Eve
|
|
|
47
47
|
this.bridge = new plugins.smartrust.RustBridge<TCommands>({
|
|
48
48
|
binaryName,
|
|
49
49
|
binaryPath: options.transport.transport === 'stdio'
|
|
50
|
-
? options.transport.binaryPath ?? paths.
|
|
50
|
+
? options.transport.binaryPath ?? paths.getStdioBinaryPath(binaryName)
|
|
51
51
|
: undefined,
|
|
52
52
|
localPaths: [],
|
|
53
53
|
searchSystemPath: false,
|
package/ts/smartvpn.paths.ts
CHANGED
|
@@ -23,3 +23,16 @@ export function getBinaryPath(
|
|
|
23
23
|
const suffix = arch === 'x64' ? 'linux_amd64_musl' : 'linux_arm64_musl';
|
|
24
24
|
return plugins.path.join(packageDir, 'dist_rust', `${binaryName}_${suffix}`);
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The executable a stdio VpnBridge hands smartrust when the caller names none: the
|
|
29
|
+
* SMARTVPN_RUST_BINARY override, else this package's artifact. Inside a Node.js single
|
|
30
|
+
* executable application without an override: none, so smartrust runs the sidecar the
|
|
31
|
+
* executable embeds under `binaryName`.
|
|
32
|
+
*/
|
|
33
|
+
export function getStdioBinaryPath(binaryName: string): string | undefined {
|
|
34
|
+
if (process.env.SMARTVPN_RUST_BINARY === undefined && plugins.smartsea.isSea()) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return getBinaryPath(binaryName);
|
|
38
|
+
}
|
package/ts/smartvpn.plugins.ts
CHANGED
|
@@ -11,5 +11,6 @@ export { path, fs, os, url, events };
|
|
|
11
11
|
import * as smartnftables from '@push.rocks/smartnftables';
|
|
12
12
|
import * as smartpath from '@push.rocks/smartpath';
|
|
13
13
|
import * as smartrust from '@push.rocks/smartrust';
|
|
14
|
+
import * as smartsea from '@push.rocks/smartsea';
|
|
14
15
|
|
|
15
|
-
export { smartnftables, smartpath, smartrust };
|
|
16
|
+
export { smartnftables, smartpath, smartrust, smartsea };
|