zcode-pro 0.19.0__tar.gz → 0.20.1__tar.gz
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.
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/PKG-INFO +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/bin/zcode-pro +2 -2
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/bin/zcode-pro.cmd +4 -4
- zcode_pro-0.20.1/bin/zcode-pro.mjs +60 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/dist/inject.js +229 -127
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/package.json +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/helper.mjs +325 -35
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/main.mjs +8 -4
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/setup.mjs +45 -42
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/taskIndex.mjs +186 -6
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/core.js +23 -15
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/settings-dialog.js +85 -49
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/styles.js +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/task-order.js +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/title-gen.js +10 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/title-lock.js +59 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/ws-running.js +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/provider-fields.js +2 -2
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/zcode_pro/__init__.py +1 -1
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/zcode_pro/cli.py +2 -2
- zcode_pro-0.19.0/bin/zcode-pro.mjs +0 -37
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/.gitignore +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/LICENSE +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/README.en.md +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/README.md +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/bin/zcode-pro.vbs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/cli.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/pyproject.toml +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/cdp.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/paths.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/pickFolder.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/settings.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/taskOrder.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/host/webdav.mjs +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/alias.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/copy-path.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/file-menu.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/idle-reclaim.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/image-menu.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/open-folder.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/pinned-collapse.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/pinned-expand.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/plugin-updates.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/project-menu.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/relocate-dialog.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/session-switch.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/settings-entry.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/features/toolbar-icons.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/index.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/src/inject/ui.js +0 -0
- {zcode_pro-0.19.0 → zcode_pro-0.20.1}/zcode_pro/__main__.py +0 -0
|
@@ -43,10 +43,10 @@ find_zcode_binary() {
|
|
|
43
43
|
# 找不到 ZCode 可执行文件时才退回系统 node。
|
|
44
44
|
ZCODE_BIN=$(find_zcode_binary) || {
|
|
45
45
|
if command -v node >/dev/null 2>&1; then
|
|
46
|
-
exec node "$ENTRY" "$@"
|
|
46
|
+
exec node --no-warnings "$ENTRY" "$@"
|
|
47
47
|
fi
|
|
48
48
|
echo "[zcodepro] 未找到 node,也未找到 ZCode 可执行文件。请安装 Node.js >= 22 或设置 ZCODEPRO_ZCODE_PATH。" >&2
|
|
49
49
|
exit 1
|
|
50
50
|
}
|
|
51
51
|
# 用 ZCode 内置的 Node 运行时执行启动器(ELECTRON_RUN_AS_NODE 使其表现为纯 Node)
|
|
52
|
-
ELECTRON_RUN_AS_NODE=1 exec "$ZCODE_BIN" "$ENTRY" "$@"
|
|
52
|
+
ELECTRON_RUN_AS_NODE=1 exec "$ZCODE_BIN" --no-warnings "$ENTRY" "$@"
|
|
@@ -8,7 +8,7 @@ set "ENTRY=%APP_DIR%\cli.mjs"
|
|
|
8
8
|
|
|
9
9
|
where node >nul 2>nul
|
|
10
10
|
if %errorlevel%==0 (
|
|
11
|
-
node "%ENTRY%" %*
|
|
11
|
+
node --no-warnings "%ENTRY%" %*
|
|
12
12
|
exit /b %errorlevel%
|
|
13
13
|
)
|
|
14
14
|
|
|
@@ -36,13 +36,13 @@ if not exist "%ZCODE_BIN%" for /f "tokens=2*" %%A in (
|
|
|
36
36
|
) do if not defined ZCODEPRO_UNINST_DIR if exist "%%~dpBZCode.exe" set "ZCODEPRO_UNINST_DIR=%%~dpB"
|
|
37
37
|
if defined ZCODEPRO_UNINST_DIR set "ZCODE_BIN=%ZCODEPRO_UNINST_DIR%ZCode.exe"
|
|
38
38
|
if not exist "%ZCODE_BIN%" (
|
|
39
|
-
echo [zcodepro]
|
|
39
|
+
echo [zcodepro] neither node nor ZCode executable found. Install Node.js ^>= 22 or set ZCODEPRO_ZCODE_PATH. 1>&2
|
|
40
40
|
rem 快捷方式静默启动时看不到控制台输出,同步落盘诊断日志(issue #1);日志超 512KB 轮转
|
|
41
41
|
if not exist "%USERPROFILE%\.zcode" mkdir "%USERPROFILE%\.zcode" >nul 2>nul
|
|
42
42
|
for %%I in ("%USERPROFILE%\.zcode\zcodepro.log") do if exist "%%~I" if %%~zI GTR 524288 move /y "%%~I" "%%~dpnI.log.old" >nul 2>nul
|
|
43
|
-
echo [%DATE% %TIME%]
|
|
43
|
+
echo [%DATE% %TIME%] neither node nor ZCode executable found >> "%USERPROFILE%\.zcode\zcodepro.log"
|
|
44
44
|
exit /b 1
|
|
45
45
|
)
|
|
46
46
|
set "ELECTRON_RUN_AS_NODE=1"
|
|
47
|
-
"%ZCODE_BIN%" "%ENTRY%" %*
|
|
47
|
+
"%ZCODE_BIN%" --no-warnings "%ENTRY%" %*
|
|
48
48
|
exit /b %errorlevel%
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// ZCode Pro 启动器(npm 全局安装用,跨平台 Node 版;查找逻辑与 bin/zcode-pro shell 版一致)。
|
|
3
|
+
// 优先用 ZCode 自带的 Node 运行时(ELECTRON_RUN_AS_NODE),避免系统 node 过旧
|
|
4
|
+
// (<22.5 缺 node:sqlite、<22 缺全局 WebSocket)时启动失败;
|
|
5
|
+
// 找不到 ZCode 可执行文件时回退当前 node 进程(npm 环境必有 node)。
|
|
6
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
|
|
9
|
+
// 动态导入必须用 URL 对象:Windows 上绝对路径(C:\...)会被当作 c: 协议报错
|
|
10
|
+
const cliPath = fileURLToPath(new URL('../cli.mjs', import.meta.url));
|
|
11
|
+
const argv = process.argv.slice(2);
|
|
12
|
+
|
|
13
|
+
async function runWithZcodeRuntime() {
|
|
14
|
+
const { resolveZcodeExecutable } = await import('../src/host/paths.mjs');
|
|
15
|
+
const zcodeBin = resolveZcodeExecutable('');
|
|
16
|
+
const env = { ...process.env, ELECTRON_RUN_AS_NODE: '1' };
|
|
17
|
+
// 预检:注册表等来源找到的 ZCode 可能不完整(缺 resources/ICU 数据等),以 Node
|
|
18
|
+
// 模式跑不起来的直接抛错回退系统 node,避免启动器跟着报难懂的错误退出
|
|
19
|
+
// --no-warnings:node:sqlite 的 ExperimentalWarning 每次启动必然刷屏、用户
|
|
20
|
+
// 常误当成报错(在模块加载阶段同步打印,进程内拦不住),由调用方加旗标关闭
|
|
21
|
+
const pre = spawnSync(zcodeBin, ['-e', 'process.exit(0)'], { env, stdio: 'ignore' });
|
|
22
|
+
if (pre.status !== 0) throw new Error(`ZCode 运行时不可用(${zcodeBin})`);
|
|
23
|
+
await new Promise((resolve, reject) => {
|
|
24
|
+
const child = spawn(zcodeBin, ['--no-warnings', cliPath, ...argv], { stdio: 'inherit', env });
|
|
25
|
+
// spawn 成功才挂退出转发并 resolve。spawn 失败的 error 事件晚一拍才发,同步
|
|
26
|
+
// resolve 会把 reject 变成空操作(失败被吞、进程静默退 0、回退分支不触发);
|
|
27
|
+
// 且失败后 exit 是否触发文档未定义,退出转发提前挂载可能把回退拉起的进程
|
|
28
|
+
// 退成 0。失败时只走 reject → 回退分支
|
|
29
|
+
child.once('spawn', () => {
|
|
30
|
+
child.on('exit', (code, signal) => {
|
|
31
|
+
if (signal) process.kill(process.pid, signal);
|
|
32
|
+
else process.exit(code ?? 0);
|
|
33
|
+
});
|
|
34
|
+
resolve();
|
|
35
|
+
});
|
|
36
|
+
child.once('error', reject);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
await runWithZcodeRuntime();
|
|
42
|
+
} catch {
|
|
43
|
+
// 回退系统 node。不能在本进程 import cli.mjs:本进程没有 --no-warnings 旗标
|
|
44
|
+
//(进程已启动,无法追加),node:sqlite 的实验特性警告会刷屏——用户误当报错。
|
|
45
|
+
// 同样以带旗标的子进程重跑(npm 环境必有 node,spawn 自身路径可靠)
|
|
46
|
+
const child = spawn(process.execPath, ['--no-warnings', cliPath, ...argv], {
|
|
47
|
+
stdio: 'inherit', env: process.env,
|
|
48
|
+
});
|
|
49
|
+
child.once('error', (err) => {
|
|
50
|
+
console.error(`[zcodepro] failed to launch: ${err?.message || err}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
53
|
+
// 退出转发同样等 spawn 成功再挂(理由见 runWithZcodeRuntime 内注释)
|
|
54
|
+
child.once('spawn', () => {
|
|
55
|
+
child.on('exit', (code, signal) => {
|
|
56
|
+
if (signal) process.kill(process.pid, signal);
|
|
57
|
+
else process.exit(code ?? 0);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|