livedesk 0.1.593 → 0.1.595
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/bin/livedesk.js +8 -8
- package/bootstrap/role-bootstrap-server.js +1 -1
- package/client/bin/livedesk-client-fast.js +1 -1
- package/client/bin/livedesk-client-node.js +1 -1
- package/client/bin/livedesk-client.js +30 -30
- package/client/package.json +6 -6
- package/client/src/runtime/client-runtime-server.js +4 -4
- package/diagnostics/livedesk-mac-physical-isolation.mjs +354 -354
- package/diagnostics/livedesk-transport-physical-core.mjs +702 -702
- package/electron/auth-config.mjs +10 -10
- package/electron/bounded-desktop-log.mjs +609 -609
- package/electron/electron-builder.win-dev.yml +1 -1
- package/electron/icon.svg +11 -11
- package/electron/main.mjs +5 -5
- package/electron/runtime-process-owner.mjs +287 -287
- package/hub/package.json +2 -2
- package/hub/src/server.js +2 -2
- package/package.json +6 -6
- package/runtime-core/package.json +1 -1
- package/runtime-core/src/auth-config.js +1 -1
- package/web/dist/app.webmanifest +1 -1
- package/web/dist/assets/LiveDeskApp-CvQUgQ08.js +178 -0
- package/web/dist/assets/{icons-DwJmccVC.js → icons-tFaWqIIe.js} +1 -1
- package/web/dist/assets/{index-DjIbOQxl.js → index-BDVKTkV3.js} +3 -3
- package/web/dist/assets/{index-DRI7OJI6.css → index-CpHNEjHy.css} +1 -1
- package/web/dist/assets/{react-DOZUPHF8.js → react-BQos8uGS.js} +1 -1
- package/web/dist/favicon.svg +11 -11
- package/web/dist/index.html +6 -6
- package/web/dist/livedesk-build-evidence.json +25 -25
- package/web/dist/sw.js +1 -1
- package/web/dist/assets/LiveDeskApp-Djx1CsIp.js +0 -178
package/bin/livedesk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
4
|
import net from 'node:net';
|
|
@@ -3135,10 +3135,10 @@ async function runManager(args, resolvedRole = null, runtimeLock = null, updateH
|
|
|
3135
3135
|
}
|
|
3136
3136
|
}
|
|
3137
3137
|
|
|
3138
|
-
async function runClient(args, resolvedRole = null, runtimeLock = null) {
|
|
3139
|
-
const runtimeOwner = runtimeLock?.payload || null;
|
|
3140
|
-
const internalClientEntry = resolve(packageRoot, 'client', 'bin', 'livedesk-client.js');
|
|
3141
|
-
const packagedWebDist = resolve(packageRoot, 'web', 'dist');
|
|
3138
|
+
async function runClient(args, resolvedRole = null, runtimeLock = null) {
|
|
3139
|
+
const runtimeOwner = runtimeLock?.payload || null;
|
|
3140
|
+
const internalClientEntry = resolve(packageRoot, 'client', 'bin', 'livedesk-client.js');
|
|
3141
|
+
const packagedWebDist = resolve(packageRoot, 'web', 'dist');
|
|
3142
3142
|
if (!existsSync(internalClientEntry)) {
|
|
3143
3143
|
throw new Error('The published livedesk package is missing its internal Client runtime. Rebuild the package with npm run build.');
|
|
3144
3144
|
}
|
|
@@ -3152,9 +3152,9 @@ async function runClient(args, resolvedRole = null, runtimeLock = null) {
|
|
|
3152
3152
|
LIVEDESK_NPM_LAUNCHER_VERSION: readVersion(),
|
|
3153
3153
|
LIVEDESK_RUNTIME_ROLE: 'client',
|
|
3154
3154
|
LIVEDESK_UNIFIED_RUNTIME: '1',
|
|
3155
|
-
LIVEDESK_WEB_DIST: existsSync(resolve(packagedWebDist, 'index.html'))
|
|
3156
|
-
? packagedWebDist
|
|
3157
|
-
: String(process.env.LIVEDESK_WEB_DIST || ''),
|
|
3155
|
+
LIVEDESK_WEB_DIST: existsSync(resolve(packagedWebDist, 'index.html'))
|
|
3156
|
+
? packagedWebDist
|
|
3157
|
+
: String(process.env.LIVEDESK_WEB_DIST || ''),
|
|
3158
3158
|
LIVEDESK_CLIENT_RUNTIME_PORT: String(process.env.LIVEDESK_CLIENT_RUNTIME_PORT || process.env.LIVEDESK_LOCAL_RUNTIME_PORT || DEFAULT_MANAGER_HTTP_PORT),
|
|
3159
3159
|
LIVEDESK_UNIFIED_LAUNCHER_ENTRY: String(process.argv[1] || ''),
|
|
3160
3160
|
LIVEDESK_ROLE_TRANSITION: resolvedRole?.roleTransition === true || process.env.LIVEDESK_ROLE_TRANSITION === '1'
|
|
@@ -253,7 +253,7 @@ export function createRoleBootstrapServer(options = {}) {
|
|
|
253
253
|
return;
|
|
254
254
|
}
|
|
255
255
|
if (url.pathname === '/api/health') {
|
|
256
|
-
sendJson(req, res, 200, { ok: true, product: 'LiveDesk', role: 'bootstrap' }, port);
|
|
256
|
+
sendJson(req, res, 200, { ok: true, product: 'LiveDesk', role: 'bootstrap' }, port);
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
259
|
if (url.pathname === '/api/bootstrap/status' || url.pathname === '/api/runtime/status' || url.pathname === '/api/runtime') {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { randomBytes } from 'node:crypto';
|
|
4
4
|
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statfsSync, statSync, writeFileSync } from 'node:fs';
|
|
@@ -54,10 +54,10 @@ const SESSION_REFRESH_SKEW_SECONDS = 60;
|
|
|
54
54
|
const SUPABASE_REQUEST_TIMEOUT_MS = 8_000;
|
|
55
55
|
const HUB_TARGET_CACHE_MAX_AGE_MS = 30 * 24 * 60 * 60 * 1000;
|
|
56
56
|
const HUB_TARGET_CACHE_FUTURE_SKEW_MS = 5 * 60 * 1000;
|
|
57
|
-
const WINDOWS_STARTUP_SCRIPT_NAME = 'VuvoDesk Desktop.vbs';
|
|
58
|
-
const WINDOWS_STARTUP_LEGACY_DESKTOP_SCRIPT_NAME = 'LiveDesk Desktop.vbs';
|
|
59
|
-
const WINDOWS_STARTUP_LEGACY_SCRIPT_NAME = 'LiveDesk Client.vbs';
|
|
60
|
-
const WINDOWS_STARTUP_LEGACY_CMD_NAME = 'LiveDesk Client.cmd';
|
|
57
|
+
const WINDOWS_STARTUP_SCRIPT_NAME = 'VuvoDesk Desktop.vbs';
|
|
58
|
+
const WINDOWS_STARTUP_LEGACY_DESKTOP_SCRIPT_NAME = 'LiveDesk Desktop.vbs';
|
|
59
|
+
const WINDOWS_STARTUP_LEGACY_SCRIPT_NAME = 'LiveDesk Client.vbs';
|
|
60
|
+
const WINDOWS_STARTUP_LEGACY_CMD_NAME = 'LiveDesk Client.cmd';
|
|
61
61
|
const SUPABASE_URL = process.env.LIVEDESK_SUPABASE_URL || 'https://otbyfkjxrkngvjziawki.supabase.co';
|
|
62
62
|
const SUPABASE_PUBLISHABLE_KEY = process.env.LIVEDESK_SUPABASE_PUBLISHABLE_KEY || 'sb_publishable_NpUs0RDJH2YnllsqTKO6TQ_1jTdSsNQ';
|
|
63
63
|
const CLIENT_STATE_DIR = process.env.LIVEDESK_CLIENT_STATE_DIR || join(os.homedir(), '.livedesk-client');
|
|
@@ -738,15 +738,15 @@ function getWindowsStartupScriptPath() {
|
|
|
738
738
|
return join(getWindowsStartupDir(), WINDOWS_STARTUP_SCRIPT_NAME);
|
|
739
739
|
}
|
|
740
740
|
|
|
741
|
-
function getLegacyWindowsStartupCommandPath() {
|
|
742
|
-
return join(getWindowsStartupDir(), WINDOWS_STARTUP_LEGACY_CMD_NAME);
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
function getLegacyWindowsDesktopStartupScriptPath() {
|
|
746
|
-
return join(getWindowsStartupDir(), WINDOWS_STARTUP_LEGACY_DESKTOP_SCRIPT_NAME);
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
function getLegacyWindowsStartupScriptPath() {
|
|
741
|
+
function getLegacyWindowsStartupCommandPath() {
|
|
742
|
+
return join(getWindowsStartupDir(), WINDOWS_STARTUP_LEGACY_CMD_NAME);
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
function getLegacyWindowsDesktopStartupScriptPath() {
|
|
746
|
+
return join(getWindowsStartupDir(), WINDOWS_STARTUP_LEGACY_DESKTOP_SCRIPT_NAME);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
function getLegacyWindowsStartupScriptPath() {
|
|
750
750
|
return join(getWindowsStartupDir(), WINDOWS_STARTUP_LEGACY_SCRIPT_NAME);
|
|
751
751
|
}
|
|
752
752
|
|
|
@@ -754,12 +754,12 @@ function isWindowsStartupSupported() {
|
|
|
754
754
|
return os.platform() === 'win32';
|
|
755
755
|
}
|
|
756
756
|
|
|
757
|
-
function isWindowsStartupRegistered() {
|
|
758
|
-
return isWindowsStartupSupported() && (
|
|
759
|
-
existsSync(getWindowsStartupScriptPath())
|
|
760
|
-
|| existsSync(getLegacyWindowsDesktopStartupScriptPath())
|
|
761
|
-
|| existsSync(getLegacyWindowsStartupScriptPath())
|
|
762
|
-
);
|
|
757
|
+
function isWindowsStartupRegistered() {
|
|
758
|
+
return isWindowsStartupSupported() && (
|
|
759
|
+
existsSync(getWindowsStartupScriptPath())
|
|
760
|
+
|| existsSync(getLegacyWindowsDesktopStartupScriptPath())
|
|
761
|
+
|| existsSync(getLegacyWindowsStartupScriptPath())
|
|
762
|
+
);
|
|
763
763
|
}
|
|
764
764
|
|
|
765
765
|
function quoteCommandArg(value) {
|
|
@@ -831,10 +831,10 @@ function registerWindowsStartup(startupArgs = []) {
|
|
|
831
831
|
''
|
|
832
832
|
].join('\r\n');
|
|
833
833
|
|
|
834
|
-
mkdirSync(startupDir, { recursive: true });
|
|
835
|
-
writeFileSync(scriptPath, script, 'utf8');
|
|
836
|
-
rmSync(getLegacyWindowsDesktopStartupScriptPath(), { force: true });
|
|
837
|
-
rmSync(getLegacyWindowsStartupScriptPath(), { force: true });
|
|
834
|
+
mkdirSync(startupDir, { recursive: true });
|
|
835
|
+
writeFileSync(scriptPath, script, 'utf8');
|
|
836
|
+
rmSync(getLegacyWindowsDesktopStartupScriptPath(), { force: true });
|
|
837
|
+
rmSync(getLegacyWindowsStartupScriptPath(), { force: true });
|
|
838
838
|
rmSync(getLegacyWindowsStartupCommandPath(), { force: true });
|
|
839
839
|
return { changed: true, supported: true, path: scriptPath };
|
|
840
840
|
}
|
|
@@ -844,12 +844,12 @@ function unregisterWindowsStartup() {
|
|
|
844
844
|
return { changed: false, supported: false, path: '' };
|
|
845
845
|
}
|
|
846
846
|
const scriptPath = getWindowsStartupScriptPath();
|
|
847
|
-
const existed = existsSync(scriptPath)
|
|
848
|
-
|| existsSync(getLegacyWindowsDesktopStartupScriptPath())
|
|
849
|
-
|| existsSync(getLegacyWindowsStartupScriptPath())
|
|
850
|
-
|| existsSync(getLegacyWindowsStartupCommandPath());
|
|
851
|
-
rmSync(scriptPath, { force: true });
|
|
852
|
-
rmSync(getLegacyWindowsDesktopStartupScriptPath(), { force: true });
|
|
847
|
+
const existed = existsSync(scriptPath)
|
|
848
|
+
|| existsSync(getLegacyWindowsDesktopStartupScriptPath())
|
|
849
|
+
|| existsSync(getLegacyWindowsStartupScriptPath())
|
|
850
|
+
|| existsSync(getLegacyWindowsStartupCommandPath());
|
|
851
|
+
rmSync(scriptPath, { force: true });
|
|
852
|
+
rmSync(getLegacyWindowsDesktopStartupScriptPath(), { force: true });
|
|
853
853
|
rmSync(getLegacyWindowsStartupScriptPath(), { force: true });
|
|
854
854
|
rmSync(getLegacyWindowsStartupCommandPath(), { force: true });
|
|
855
855
|
return { changed: existed, supported: true, path: scriptPath };
|
package/client/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livedesk/client",
|
|
3
|
-
"version": "0.1.252",
|
|
3
|
+
"version": "0.1.252",
|
|
4
4
|
"description": "VuvoDesk local remote client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,16 +36,16 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
|
38
38
|
"ffmpeg-static": "^5.3.0",
|
|
39
|
-
"@livedesk/runtime-core": "0.1.6",
|
|
39
|
+
"@livedesk/runtime-core": "0.1.6",
|
|
40
40
|
"@supabase/supabase-js": "^2.110.0",
|
|
41
41
|
"node-screenshots": "^0.2.8",
|
|
42
42
|
"ws": "^8.18.3"
|
|
43
43
|
},
|
|
44
44
|
"optionalDependencies": {
|
|
45
|
-
"@livedesk/fast-linux-x64": "0.1.448",
|
|
46
|
-
"@livedesk/fast-osx-arm64": "0.1.448",
|
|
47
|
-
"@livedesk/fast-osx-x64": "0.1.448",
|
|
48
|
-
"@livedesk/fast-win-x64": "0.1.448"
|
|
45
|
+
"@livedesk/fast-linux-x64": "0.1.448",
|
|
46
|
+
"@livedesk/fast-osx-arm64": "0.1.448",
|
|
47
|
+
"@livedesk/fast-osx-x64": "0.1.448",
|
|
48
|
+
"@livedesk/fast-win-x64": "0.1.448"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
@@ -20,9 +20,9 @@ const SUPABASE_URL = process.env.LIVEDESK_SUPABASE_URL || 'https://otbyfkjxrkngv
|
|
|
20
20
|
const SUPABASE_PUBLISHABLE_KEY = process.env.LIVEDESK_SUPABASE_PUBLISHABLE_KEY || 'sb_publishable_NpUs0RDJH2YnllsqTKO6TQ_1jTdSsNQ';
|
|
21
21
|
const CLIENT_STATE_DIR = process.env.LIVEDESK_STATE_DIR || (process.env.LIVEDESK_UNIFIED_RUNTIME === '1' ? join(os.homedir(), '.livedesk') : join(os.homedir(), '.livedesk-client'));
|
|
22
22
|
const CLIENT_AUTH_PATH = join(CLIENT_STATE_DIR, 'auth.json');
|
|
23
|
-
const DEFAULT_TRUSTED_WEB_ORIGINS = Object.freeze([
|
|
24
|
-
'https://vuvodesk.com',
|
|
25
|
-
'https://livedesk.pages.dev',
|
|
23
|
+
const DEFAULT_TRUSTED_WEB_ORIGINS = Object.freeze([
|
|
24
|
+
'https://vuvodesk.com',
|
|
25
|
+
'https://livedesk.pages.dev',
|
|
26
26
|
'http://127.0.0.1:5173',
|
|
27
27
|
'http://localhost:5173',
|
|
28
28
|
'http://127.0.0.1:4173',
|
|
@@ -1501,7 +1501,7 @@ export function createClientRuntimeServer(options = {}) {
|
|
|
1501
1501
|
return;
|
|
1502
1502
|
}
|
|
1503
1503
|
if (pathname === '/api/health') {
|
|
1504
|
-
respondJson(200, { ok: true, product: 'LiveDesk', role: 'client', timestamp: new Date().toISOString() });
|
|
1504
|
+
respondJson(200, { ok: true, product: 'LiveDesk', role: 'client', timestamp: new Date().toISOString() });
|
|
1505
1505
|
return;
|
|
1506
1506
|
}
|
|
1507
1507
|
if (pathname === '/api/client/diagnostics') {
|